2012년 5월 2일 수요일 오전 1:24
We've been asked to create a multi-row data entry function for a proprietary back-end system.
The backend system provides some proprietary dll’s to import data and we've already wrapped those dll’s in a WCF service that accepts a List<widget> and will update the backend system with those widgets. We’re told by the vendor that we can get the dll to operate in an all-or-none transactional manner, but haven’t seen that yet.
Users are currently using spreadsheet, developed by the back-end system vendor, to import widgets and users are accustomed to the excel UI, but we need to create some type of approval function before the widgets are actually sent to the backend, hence SharePoint.
So we want to create a similar (easy-to-use, multi-row) edit page in SharePoint to let users enter a batch of widgets. A ‘widget enterer’ will enter widgetbatch and a list of widgets. I'd like to do some preliminary validation against the backend system as individual widgets are entered to ensure that each widgets attributes are at least logical and provide contextual, interactive feedback as each widget is entered into the batch. The user would create a batch and then submit the batch of widgets for approval .A widget approver would then approve the batch to have it submitted to our backend WCF service via a custom action on the widgetbatch. The WCF Service will return a widgetId for each widget which will need to be added to the corresponding widget row in the SharePoint widget list.
Our Plan is to create a list of widgets and a list of widget batches, each widget belonging to a widgetbatch. Widget enterers would create a widgetbatch with the associated widgets and submit the widgetbatch for approval and submission to the backend database by a widget approver.
So we want to create a multiline edit user interface to let widget submitters create a widgetbatch along with a bunch of widgets. The UI will consist of both freeform and lookup columns (lookup columns will be against the backend database which will be exposed in a read-only manner through BCS), and probably some additional logic to do validations at the row level (hopefully SharePoint row level validation can be used for all of these- but we don’t know the rules yet)
So from my perspective we have these options
1: A standard multiline DataView webpart with the edit, insert add buttons (my current thinking is this is the safest bet as this is the standard out-of -the box solution and we have experience in this area). Should be able to use BCS Lookups, but I’ve been burnt by that assumption before!
2. A datasheet view. I'm not sure how programmable this is… could we validate rows after each line is entered and present an error message on the corresponding line if it failed my initial validation). I'm not sure what client components are required. We've used datasheet views, but have not explored how the validation works.
3. An OWC Excel Object (We have no experience with this). I don’t think this supports BCS Lookups… just a thought
4. An Excel services spreadsheet (We have no experience with this). I think It Supports BCS Lookups. But I don’t know if it supports in-line editing.
7. InfoPath Forms-- Don't think they can be used for BCS lookups. We have some experience in the area. We want all columns to be in SharePoint lists though. I don't think we want to use an InfoPath forms solution where all data is stored in the form.
9 DevExpress AspxGridview. No experience with it but it is already licensed (after looking at the site it looks nice and vendor support might be nice J
What options did we miss?
What are other people using for multi-row editing? What do you thing are the pros and cons of the different alternatives?