I have a 02 SharePoint lists, Total Budget and Invoice list. In the Total Budget list I have the budgets allocated to each section. What I need to do is, when an invoice amount is added to the Invoice list, it should be deducted from the Total Budget list and the balance should be displayed in the Balance Column in Total Budget list. Is this possible?

I am using SharePoint 2013 online version. Any inputs would be helpful. Thank you :)


No direct way to do this, you would need customization. Below are some high level techniques to achieve same.

  1. Using MSFlow - What you need to do is create a flow for your Invoice list when a item is created/updated. In Flow add logic to query list item from Budget list from based on your column(may be Section column) which is holding relation ship between this 2 list. Calculate balance based on current value in Balance column and Invoice amount(Balance from item in Budget list minus Invoice amount of current item). Update Budget list item with calculated balance. Below link will help you get direction on how logic should be.


  1. Using Remote event receiver - as you are on SharePoint online you would need to create remote event receiver. Remote event receiver would trigger on you invoice list and you can use CSOM to get/update data in SharePoint list by using same calculation as above

Ref link - https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/create-a-remote-event-receiver-in-sharepoint-add-ins

  1. Customize your invoice list add/update form using content editor web part and use JSOM to get/update data.

How to trigger the click event of the SharePoint OOTB list's new form Save button?

  1. Use custom forms to add/update data in Invoice list, use JSOM and perfrom crud operation based to both list accordingly.

  2. Use PowerApps forms to customize Invoice list and create datasource to budget list, keep a control hidden to user point to balance column in Budget list, write rules to calculate balance - I am not sure how this will work but might be an option.

Feel free to comment if you need more details.

Hope this helps...Happy Coding!!!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.