Symptom
When editing an account in the Accounts view of the Customer work center, this account is locked by your user. In such a case, you cannot update its header data using CorporateAccountCollection in OData Explorer at the same time. Instead, you receive the following error in OData Service Explorer: The specified HTTP method is not allowed for the resource identified by the Data Service Request URI.
But when you update the sales data using CorporateAccountSalesDataCollection, no error occurs. Instead, the account sales data will be updated successfully.
Environment
SAP Cloud for Customer
Reproducing the Issue
- Go to Customer work center
- Select any account
- Click on Edit
- Now go to Administrator work center
- Click on ODATA Service Explorer
- Select Standard OData Service c4codataapi
- Click on Test
- Select Entity Set CorporateAccountSalesDataCollection to update sales data
- Select Method Patch
- Insert the Object ID
- Click Execute
- You expect the account being locked by your user, but instead account sales data has been updated successfully
Resolution
The Edit button in the UI locks only the header object, but not the tab Sales Data. The account belongs to the underlying BO Customer. When you search for this account and click on Edit, then the main object will get locked.
However, sales data is not stored in BO Customer. The sales data is stored in a separate BO called Sales Arrangement. OData entity CorporateAccountSalesDataCollection is bound against BO SalesArrangement. The Sales Arrangement instances shown in the tab Sales Data will only get a lock if you do a real change. As long as you only edit an account without performing a real change, the OData call of CorporateAccountSalesDataCollection still works.
Keywords
Update customer data, standard OData service, record updated without any blocking , KBA , AP-RC-ODF , OData framework (C4C Only) , LOD-CRM-ACC , Account , AP-RC-ODC , OData Console , Problem