Scenario - A Salesperson creates an order in CRM against a Customer (Acccount). The Order is considered as complete only when the Work Order is attached/uploaded against the order. So we suggested to create a custom field (whole number) "No of Attachment" on SalesOrder entity to manage the number of attachments against the order. We are open to new suggestions.
Following are the configurations
Dynamics CRM 365 Online
Sharepoint Online
Folder Path - account/AccountName/salesorder/SalesOrderName_SalesOrderGuid/
Eg.
account/Chambers of Sample/salesorder/ORD-36762-Ch303-Chambers of Sample_A18F392C6D20E811A95600224800375D/
Document Location contains the following info
Relative URL - SalesOrderName_SalesOrderGuid
Eg. ORD-36762-Ch303-Chambers of Sample_A18F392C6D20E811A95600224800375D
Regarding - Lookup field that Contains the SalesOrderId (Guid)
Current Flow Setup
We used two variables
FolderName - Relative URL for the Attachment
No of Attachments - to retrieve the current attachment count from SalesOrder
Step:1
Trigger - When a file is created
Step:2-3
Intialise Variables
Step:4
Split the Folder Path by '/' (Folder path is Dynamic Content from Step:1)
[
"account",
"Chambers of Sample",
"salesorder",
"ORD-36762-Ch303-Chambers of Sample_A18F392C6D20E811A95600224800375D",
""
]
Step:5
Set FolderName by assigning the 4th Array Element
"ORD-36762-Ch303-Chambers of Sample_A18F392C6D20E811A95600224800375D"
Step:6
List of Records
Find Top 1 Document Location by Relative URL. This record contains the SalesOrderId (Guid) as Regarding.
Step:7
Get the SalesOrder Record by Regarding (Step:6)
Step:8
Assign the SalesOrder's "No of Attachment" to the local varilable
Step:9
Increment the local variable by 1
Step:10
Update the SalesOrder with "No of Attactment" (local variable)
This solution is working fine as expected. But I am looking for an alternative to search for number of attachment against the order rather than incrementing the count by 1.
Another issue, when a file is delete, we are not able to reduce the number by 1 as the body of the trigger contains very minimum info as below
{
"ID": 7888,
"Name": "07",
"FileNameWithExtension": "07.JPG",
"DeletedByUserName": "Admin User",
"TimeDeleted": "2018-06-11T17:28:19Z",
"IsFolder": false
}
Screenshot 1
Screenshot 2
Screenshot 3