Hello. I have a significant problem in sharepoint 2016 on premises , and I'm not sure of how to implement a solution. Most research I've done recommends I implement a sharepoint timer job, but I've been forbidden from doing so.
The data structure:
Master List, a Sharepoint External List. Contains all fields. Contains line item data, and a lot of redundant contract data
Line items, a Sharepoint Internal List. Contains the fields unique to a line item, along with the unique identifier for a contract
Contract, a Sharepoint Internal List. Contains all fields common to a contract. Plus two columns that sum the total value and amount paid
The problem:
Our client is providing a sharepoint external list, which is updated with new and updated information at midnight. I then have to take that data and do the following by the start of the next business day:
- Copy some of the fields of each new list item to another new list, called Line item.
- Copy the common fields to of each new item to the contract list. While avoiding contract line items. There is a unique contract ID provided
- Create a sum of the values of the line items for the contract field
- Update the line items with their new values. There is no single unique identifier for a line item, although a combination of three fields, including the contract number will provide a unique result.
- Update the contract when the line items are updated. Including any new total values.
- Trigger all of these effects at a specific time every day (I was thinking 1 AM, if it somehow matters.
As everything I've looked up says that I can't directly run a workflow on an external list. Thus, I simply can't create a pair of workflows to run on update or on creation on a my external list. So I'm rather lost Doing the above at runtime is not practical
due to the large performance cost.
Prior research:
I've done some research on using a workflow to copy an external list item to an internal list. Unfortunately, they all suggested to use a sharepoint runtime job. I'm also reasonably sure that I can some logic I've found to solve issue 5, so that's less important.
Note: The solution must use sharepoint workflows. The use of Sharepoint Timer Jobs or other actual server side code is explicitly not allowed, I've asked.
You may assume that the data that is being pulled from the external list and put into an internal list is not allowed
Please let me know if you need any more information.