We've got the following scenario:
From a site a user should be able to mark a file as archived. Doing so would send a copy of the file to an external DMS (non-sharepoint). When the document has been archived in external DMS, a documentID would be returned. This documentId should then be written to the files metadata in sharepoint (and the file should be locked in SP)
We will have Biztalk between SP and the external DMS. The flow would be:
- User clicks Archive document
- In the eventreceiver we could call a Archive function in a service application (returns imidiatly)
- The service applications calls a WS in Biztalk
- Biztalks calls the external DMS, and returns a documentId (might take some time)
- Biztalks calls the ServiceApplication with with the documentId
- The service applications updates the sharepoint file, adds the documentId and locks the file
Then (finally) comes my question:
Is a service application a good fit for this scenario?
From what I've read the service application could be pretty complex, so an alternative would be to skip the serviceapplication and have the following flow instead:
- User clicks Archive document
- In the eventreceiver we could call a WS in Biztalk (return imidiatly)
- Biztalks calls the external DMS, and returns a documentId (might take some time)
- Biztalks calls a SP WS that updates the sharepoint file, adds the documentId and locks the file
Or, maybe there are other options?
Thanks for any comments!
Larsi