We need to access data in custom tables--not built-in tables that come with iMIS or user-defined tables (UDT’s), but plain old tables that we write in SQL and place into the iMIS database. Although the iMIS application itself will leave these tables alone, they are used for custom development that involves integrating with iMIS. Otherwise, they are plain old sql database tables.
We’ve ruled out using Business Object Designer to create Business Objects to access these. Is better to access these custom tables with stored procedures or with an ORM tool such as NHibernate or Entity Framework? Will the fact that these tables are in the iMIS database and the fact that these are used for custom development to integrate with iMIS cause one or the other to not work, or otherwise have any problems?
RE: Adding SQL tables to iMIS
There are a few ways to handle this. Some off of the top of my head are as follows.
1. Keep usign custom tables and then when you need to interact with iMIS you can get at that data. For example, using the iMIS Business Objects, you can write a where clause to get contacts where the "where clause" looks at the custom tables.
2. You could migrate those tables to the iMIS way and then still have access to the data. For example, if you want to keep track of some general key value pairs consider usnig the General Lookup Tables. If you need a lot more data, you could create a user defined table in iMIS, put the data on one KEY record, and hide the tab from eveyone who doesn't need it. That will let you access the data from the iMIS Business Objects and down the road SOA Web Services.
Those are a couple of ways to hold data without the need to create custom tables outside fo the iMIS infrastructure. The final decision would be influenced by the number of tables, number of fields, and number of records.
I usually recommend that you try to keep in the iMIS infrastructue when possible to help with the upgrade path. Although I have created a number of custom tables outside of iMIS in my lifetime!
Thanks,
Randy