A client wants to have a lookup field for customer name found in a database as metadata on a Word document in a document library. They have a code which represents a group of customers and one of them should be used as customer name as metadata as well as the customer code inside the document.
Since editing the metadata in Word leaves no room for extra logic like external database lookup, right?, we have to tweak the EditForm.aspx with Asp.Net or java script to add the functionality to lookup external data.
The hard part is that we need to make the user fill in the metadata in SharePoint before the document is opened. Otherwise the user must create, close, edit me开发者_Go百科tadata and then re open the document. The default behavior of SharePoint is to open the document first and let the user edit the metadata inside Word.
My first thought was to create a custom action for each content type and redirects the user to a page that creates the document in code and then brings the user to the EditForm page. Alternatively use codebehind for the custom action to create the document and let the user edit metadata in the EditForm. Clicking OK after that would save the metadata and bring up the document itself.
Then I stumbled upon EventRecievers and thought that might solve my problem. To intercept the creation of the document and send the user to the EditForm page first.
What is your thoughts on this, and how would you solve this problem?
This sounds like a job for the Business Data Catalog, that allows for incorporating external data inside your sharepoint lists (i.e. as a column). This does require a SharePoint 2007 Enterprise license.
精彩评论