Delphi XE , Win32 Application , SQL Server 2005 Database.
I am implementing a Quality Management System. I have some predefined Process Maps to apply them inside my application/system. I am requested to have all the transactions (I am not sure if it is correct word for it) dynamic so whenever they modify the process maps it affects the application (Without recompilation or any patches of course)
Here is an example to explain more clear:
Assume a Document controlling module, We have a process map as :
- [Document Controller] Receives the document from Contractor
- [Document Controller] Checks the document with the checklist
- [Document Controller] Sends the document to the [Project Manager]
- [Project Manager] applies and Action in the document
- [project Manager] Sends the document to [Document Controller]
- [Document Controller] Archives the document.
Now application should read the parameters from a database for its functions. Let’s say Received and Checked the document (1 and 2) and now sends it. As soon as the “Save” Button is pressed the system should check who should be the receiver of this document and send the document to him/her. In our example, the receiver is the [project Manager]. however, sometime later they might decide to change the process map as - “3- [Document Controller] sends the document to the [Project Architect]”. Therefore, the system should act as defined in the process map.
I am wondering what Is the proper way to implement such system (Delphi XE , win32)?
I have some idea but not sure if it is proper : For each Process in the process map I can define a Service with a kind of unique Id and I read the service from the database and call it in the application layer (with relevant Parameters). In this case I am not sure if each service should be a dll or package file and I believe it is wrong to have that number of library files, since the services are going to not very few!
I hope I could explain my problem well and sorry if it is too long. Please let me know if it is not clear.
Thanks,
Mahya