將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去

i042416發表於2020-09-27

My series of Cloud Application Studio Blogs

Suppose you have implemented some logic in a given action of your custom BO via ABSL, it is possible to expose the logic via Custom OData service so that it could be consumed by external applications. Custom BO:

import AP.Common.GDT as apCommonGDT;import AP.FO.BusinessPartner.Global;businessobject TestBO {
  [Label("Agreement ID")] [AlternativeKey] element AgreementID:ID;
  [Label("Start Date")] element StartDate:Date;
  [Label("Close Date")] element CloseDate:Date;
  [Label("Duration")] element Duration:NumberValue;
  [Label("IsOverDue")] element IsOverDue:Indicator;
  action Calculate;}

And the logic of Calculate action is very simple, just make comparison between current date and the close date. If the current instance is over due, also store the duration to field “Duration”.

import ABSL;import AP.PC.IdentityManagement.Global;import AP.FO.BusinessPartner.Global;var current = Context.GetCurrentGlobalDateTime( );var close = this.CloseDate.ConvertToGlobalDateTime();this.IsOverDue = current.GreaterThan(close);this.Duration = 0;if( this.IsOverDue ){
   this.Duration = current.Delta(close).ConvertToDays();}

Then go to work center Administrator->OData Service Explorer, create a new Custom OData Service:


將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


Create a new function import for this OData service, choose Action as import type, specify “DueCheck” as import name, and bind the BO action Calculate to this function import.


將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


Now test the function import via this BO instance below:


將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


first get its object id by Agreement ID via OData filter operation:


將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


https:///sap/c4c/odata/cust/v1/zjerrytestodataservice/TestBORootCollection?$filter=AgreementID eq ‘JERRY2’ Then execute the url appended with the object id found in previous step plus the function import name: https:///sap/c4c/odata/cust/v1/zjerrytestodataservice/DueCheck?ObjectID=’00163E20C98D1EE7A6BD2FF6E7D3F03F’, and the BO action is successfully executed: you could observe the flag isOverDue and field Duration are correctly calculated and returned by this OData service.


將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

將SAP C4C Custom BO使用ABSL編寫的邏輯通過OData服務暴露出去


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2724413/,如需轉載,請註明出處,否則將追究法律責任。

相關文章