https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/Cloud-Integration-blog-posts.xml SAP Community - Cloud Integration 2024-07-26T23:00:09.516836+00:00 python-feedgen Cloud Integration blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-members/sap-btp-trial-account-creation-and-enabling-integration-suite-service-sap/ba-p/13702052 SAP BTP Trial Account Creation and Enabling Integration Suite service(SAP CPI) 2024-05-16T09:35:26.608000+02:00 Praveen_Kumar_Beera https://community.sap.com/t5/user/viewprofilepage/user-id/1401210 <OL><LI><SPAN>Create an SAP Account from&nbsp;</SPAN><A href="https://www.sap.com/" target="_blank" rel="noopener noreferrer"><SPAN>SAP.com</SPAN></A><SPAN>&nbsp;</SPAN><SPAN>&nbsp;<BR /></SPAN><SPAN>It Creates the SAP Universal ID</SPAN><SPAN>&nbsp;<BR /></SPAN><SPAN>Fill in the Required Fields and Click on Submit.</SPAN></LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_30-1715767172460.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110839i2CD03D7BB447C310/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_30-1715767172460.png" alt="Praveen_Kumar_B_30-1715767172460.png" /></span></P><P>&nbsp;</P><P><SPAN>2. After Clicking on the Submit button, SAP will send an email to finalize your SAP account.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_1-1715766302026.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110792iFBB5F6D892C3B377/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_1-1715766302026.png" alt="Praveen_Kumar_B_1-1715766302026.png" /></span></P><P>&nbsp;</P><P><SPAN>3. Open Your Mail and Click to activate your account</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_2-1715766302042.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110791i2F68F037602E347D/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_2-1715766302042.png" alt="Praveen_Kumar_B_2-1715766302042.png" /></span></P><P>&nbsp;</P><P><SPAN>4. Now We have to create the SAP BTP Trial Account, go to&nbsp;</SPAN><A href="https://account.hana.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>account.hana.ondemand.com</SPAN></A><SPAN>&nbsp;and click on sign in, give your email and password, and click on sign in.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_3-1715766301992.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110793i2BAD4429186A4EEC/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_3-1715766301992.png" alt="Praveen_Kumar_B_3-1715766301992.png" /></span></P><P>&nbsp;</P><P><SPAN>5. After logging into the BTP Cockpit, Click on Trial Home.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_4-1715766302053.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110795i00B1283B7C382709/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_4-1715766302053.png" alt="Praveen_Kumar_B_4-1715766302053.png" /></span></P><P>&nbsp;</P><P><SPAN>6. Choose the region you want and click on Create Account</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_5-1715766302036.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110794i95F8B2A461E2368C/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_5-1715766302036.png" alt="Praveen_Kumar_B_5-1715766302036.png" /></span></P><P>&nbsp;</P><P><SPAN>7. After clicking on Create Account, it creates a Global account and subaccount for you, then click on Continue.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_6-1715766302013.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110797i0A9D5E79EEB20815/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_6-1715766302013.png" alt="Praveen_Kumar_B_6-1715766302013.png" /></span></P><P>&nbsp;</P><P><SPAN>8. Click on Go To Your Trial Account.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_7-1715766302068.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110796iE02BB19A83B24DDA/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_7-1715766302068.png" alt="Praveen_Kumar_B_7-1715766302068.png" /></span></P><P>&nbsp;</P><P><SPAN>9. Click on Subaccount.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_8-1715766302027.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110798i6A3ABB7DDEB24ED1/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_8-1715766302027.png" alt="Praveen_Kumar_B_8-1715766302027.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;10.&nbsp;</SPAN><SPAN>Click on Instances and Subscriptions</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_9-1715766302127.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110800i9E612F69C993211C/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_9-1715766302127.png" alt="Praveen_Kumar_B_9-1715766302127.png" /></span></P><P>&nbsp;</P><P><SPAN>11. Here we can see the services we subscribed to.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P style=" padding-left : 30px; "><SPAN>To access the Integration Suite, first, we must Subscribe to it.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_10-1715766302184.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110801i7CEF985BAF0E5ED4/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_10-1715766302184.png" alt="Praveen_Kumar_B_10-1715766302184.png" /></span></P><P>&nbsp;</P><P><SPAN>12. To Subscribe to the Integration Suite, click on Service Marketplace and search for Integration Suite.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_11-1715766302031.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110802iBC55963A92D66F1A/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_11-1715766302031.png" alt="Praveen_Kumar_B_11-1715766302031.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;13.&nbsp;</SPAN><SPAN>Click on Integration Suite and click on Create.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_12-1715766302159.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110804i8DDF77B33C66B704/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_12-1715766302159.png" alt="Praveen_Kumar_B_12-1715766302159.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;14.&nbsp;</SPAN><SPAN>Click on create.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_13-1715766302176.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110805iDA714236F5F35A02/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_13-1715766302176.png" alt="Praveen_Kumar_B_13-1715766302176.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;15.&nbsp;</SPAN><SPAN>To check Whether the Integration Suite is created or not click on View Subscription.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_14-1715766302382.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110803iB484D760D0CD42A8/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_14-1715766302382.png" alt="Praveen_Kumar_B_14-1715766302382.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;16.&nbsp;</SPAN><SPAN>Now we can see the Integration suite in subscriptions.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Click on Integration Suite, it will open the Integration Suite.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_15-1715766302102.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110806i97BA2290000989B0/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_15-1715766302102.png" alt="Praveen_Kumar_B_15-1715766302102.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;17.&nbsp;</SPAN><SPAN>It will Show you the Authorization error because to access the Integration Suite we have to assign an&nbsp;</SPAN><STRONG><SPAN>Integration_Provisioner</SPAN></STRONG><SPAN>&nbsp;Role for the User.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_16-1715766302057.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110808iD6AACED8478B32AA/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_16-1715766302057.png" alt="Praveen_Kumar_B_16-1715766302057.png" /></span></P><P>&nbsp;</P><P><SPAN>18. To assign an&nbsp;</SPAN><STRONG><SPAN>Integration_Provisioner</SPAN></STRONG><SPAN>&nbsp;Role, Go back to the BTP Cockpit click on Users, and select the User.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_29-1715766964557.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110836i54720A6A59AD6944/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_29-1715766964557.png" alt="Praveen_Kumar_B_29-1715766964557.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;19.&nbsp;</SPAN><SPAN>After Selecting the User click on Assign Role Collection.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_18-1715766302054.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110809i2E59595CC56F0CCF/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_18-1715766302054.png" alt="Praveen_Kumar_B_18-1715766302054.png" /></span></P><P>&nbsp;</P><P><SPAN>20. Search for the&nbsp;</SPAN><SPAN>Integration_Provisioner</SPAN><SPAN>&nbsp;Role and click on&nbsp; Assign Role Collection.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_19-1715766302155.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110810iF5FB58E27FB45EC6/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_19-1715766302155.png" alt="Praveen_Kumar_B_19-1715766302155.png" /></span></P><P>&nbsp;</P><P><SPAN>21. After Assigning Role, Click on Instances and Subscriptions and then Click on Integration Suite.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_20-1715766302065.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110811i7C04024C2D5C2299/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_20-1715766302065.png" alt="Praveen_Kumar_B_20-1715766302065.png" /></span></P><P>&nbsp;</P><P><SPAN>22. Click on Add Capabilities.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Note: - Sometimes it will not show the add capabilities option, it will take time to resolve this Refresh the page or try sign-out and Sign in again.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_21-1715766302039.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110814iD1E8E29AFEBF3835/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_21-1715766302039.png" alt="Praveen_Kumar_B_21-1715766302039.png" /></span></P><P>&nbsp;</P><P><SPAN>23. After clicking on Add Capabilities, it will show you the list of Capabilities,</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Select the capabilities that you need and click on next.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_22-1715766302415.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110813iDC7FD4AD41BA21BD/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_22-1715766302415.png" alt="Praveen_Kumar_B_22-1715766302415.png" /></span></P><P>&nbsp;</P><P><SPAN>24. In capabilities if you select Manage APIs then this step will appear, select the two checkboxes and click on next.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_23-1715766302045.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110812iCCF912D7F81C81F7/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_23-1715766302045.png" alt="Praveen_Kumar_B_23-1715766302045.png" /></span></P><P>&nbsp;</P><P><SPAN>25. Click on Activate.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_24-1715766302168.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110816iAAFBC27ED1BCFFD4/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_24-1715766302168.png" alt="Praveen_Kumar_B_24-1715766302168.png" /></span></P><P>&nbsp;</P><P style=" text-align : left; "><SPAN>26. To activate Capabilities of Integration Suite it will take some time.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_25-1715766302155.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110815i7F3BCFBC0081DC78/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_25-1715766302155.png" alt="Praveen_Kumar_B_25-1715766302155.png" /></span></P><P>&nbsp;</P><P><SPAN>27. After the activation click on ok.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_26-1715766302119.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110817i808DF4F5AE1F4F03/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_26-1715766302119.png" alt="Praveen_Kumar_B_26-1715766302119.png" /></span></P><P>&nbsp;</P><P style=" text-align : left; "><SPAN>28. To create and monitor the Iflow we need to assign some roles related to Process Integration.</SPAN><SPAN>&nbsp;<BR /></SPAN><SPAN>Go back to BTP Cockpit-&gt;</SPAN><SPAN>User-&gt;</SPAN><SPAN>Assign the below Roles</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_27-1715766302059.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110819iFDAED0BE8C2B1967/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_27-1715766302059.png" alt="Praveen_Kumar_B_27-1715766302059.png" /></span></P><P>&nbsp;</P><P><SPAN>29.&nbsp; Now open the Integration Suite from BTP cockpit-&gt;</SPAN><SPAN>Instances and subscriptions.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Now You can create, edit, and monitor the Iflows.</SPAN><SPAN><BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Praveen_Kumar_B_28-1715766302403.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/110818i2528B8FD5E1F9607/image-size/medium?v=v2&amp;px=400" role="button" title="Praveen_Kumar_B_28-1715766302403.png" alt="Praveen_Kumar_B_28-1715766302403.png" /></span></P> 2024-05-16T09:35:26.608000+02:00 https://community.sap.com/t5/technology-blogs-by-members/syniti-rdg-provides-a-simplified-design-to-create-multi-value-validation/ba-p/13675776 Syniti RDG provides a simplified design to create Multi Value Validation and Derivation Rules 2024-05-17T12:35:22.385000+02:00 UmaArjunan https://community.sap.com/t5/user/viewprofilepage/user-id/1096 <P style=" text-align : justify; "><A href="https://www.sapappcenter.com/apps/59234" target="_blank" rel="noopener nofollow noreferrer">Syniti RDG</A>&nbsp;is an SAP-endorsed application on the Business Technology Platform (SAP BTP) to facilitate MDG<BR />implementation with intuitive UI and process automation. RDG automates many of the technical configuration<BR />steps that are required to implement SAP MDG and it offers a user-friendly interface to be more relatable<BR />to business users.</P><UL><LI>A multi-value check rule is for validating multiple attribute values against a logical condition.</LI><LI>A multi value derivation rule is to derive multiple attributes values based on a logical condition.</LI></UL><P>The below example is used to create Multi value validation to be triggered for a specific Change Request Type<BR />to validate attribute values of Entity&nbsp;‘BP_CENTRL’ of data model ‘BP’.</P><P>Step 1: Create <STRONG>Multi Validation Rule</STRONG> in Syniti RDG&nbsp;</P><P>In the main menu, select "Manage Business Rules".</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pic1.png" style="width: 754px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108593i543DCD1C97325410/image-dimensions/754x166?v=v2" width="754" height="166" role="button" title="pic1.png" alt="pic1.png" /></span></P><P>In the business Rules Page, define a New Rule: Start by creating a new rule, select the type of rule as "Multivalue Check Rule" to create.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic12.png" style="width: 929px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108596iA44AC91EC25F4D6E/image-size/large?v=v2&amp;px=999" role="button" title="fin_pic12.png" alt="fin_pic12.png" /></span></P><P>In the following steps, the user can choose a Change request type from the list and select the entity for which<BR />the rule must be created. The user then needs to select the type of Business Rule that he/she wants to create,<BR />Mutli Value Check Rule to create Validation Rule in BRFPlus and Derivation Rule to create Derivation Rule in<BR />BRFPlus.</P><P>Select Data model as ‘BP’, ‘ZBP1P1V1’ CR Type (select relevant CR type as required) , Entity as ‘BP_CENTRL’,<BR />Rule type: Multi Value Validation and then click on an option like "Rule1” to start defining a new validation rule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108611i155E061221F1806D/image-size/large?v=v2&amp;px=999" role="button" title="fin_pic1.png" alt="fin_pic1.png" /></span></P><P>Business Scenario: Only Green business partners are allowed to create. Choose the attributes<BR />BP_CENTRL~NAME_ORG1 that needs to be validated. If BP_CENTRL~NAME_ORG1 = ‘RED’, send a warning message ‘Enter name1 as Green’</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic2.png" style="width: 746px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108615i2EF3FE33E5D34B80/image-dimensions/746x302?v=v2" width="746" height="302" role="button" title="fin_pic2.png" alt="fin_pic2.png" /></span></P><P>Click’+’ to create "Rule2” validation rule. If BP_CENTRL~NAME_ORG1 = ‘YELLOW’, send a warning message ‘Enter name1 as Green’</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic3.png" style="width: 734px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108617i3C5E9E714B9B7E4F/image-dimensions/734x300?v=v2" width="734" height="300" role="button" title="fin_pic3.png" alt="fin_pic3.png" /></span></P><P>Click’+’ to create "Rule3” validation rule. Define a new condition&nbsp;</P><P>If BP_CENTRL~NAME_ORG1 = ‘GREEN’ and BP_CENTRL~NAME_ORG2 != ‘CORP’ , When the conditions are not met,&nbsp;send error message ‘Enter name2 as CORP’</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic4.png" style="width: 742px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108620iE7E2DCC99E01F9D8/image-dimensions/742x286?v=v2" width="742" height="286" role="button" title="fin_pic4.png" alt="fin_pic4.png" /></span></P><P>Multi value validation BADI implementation has bee created in the back end automatically to check the multi value validation.</P><P>Step 2: Trigger the rule in nwbc application.&nbsp;</P><UL><LI>The rules created in the previous step are triggered when creating a Change Request of the type for which&nbsp;the rules are created in RDG (ZBP1P1V1).</LI></UL><P>Validation Rule1 :</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="mv_nwbc_pic1.png" style="width: 731px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108629i178072F76875D494/image-dimensions/731x344?v=v2" width="731" height="344" role="button" title="mv_nwbc_pic1.png" alt="mv_nwbc_pic1.png" /></span></P><P>Now name1 is entered as GREEN, Error message appears for name 2</P><P>Validation Rule3:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="mv_nwbc_pic2.png" style="width: 737px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108634iB2DEA78722B234D6/image-size/large?v=v2&amp;px=999" role="button" title="mv_nwbc_pic2.png" alt="mv_nwbc_pic2.png" /></span></P><P>After successful verification of Validation Rule1 &amp; Rule 3 , ‘No Errors found’<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="mv_nwbc_pic3.png" style="width: 739px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108633iED4E117BC6D209DF/image-size/large?v=v2&amp;px=999" role="button" title="mv_nwbc_pic3.png" alt="mv_nwbc_pic3.png" /></span></P><P>Below is the Decision table that got automatically generated in BRFPlus through Syniti RDG.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic7_mv.png" style="width: 750px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108635iE712BA4A3B370436/image-dimensions/750x354?v=v2" width="750" height="354" role="button" title="fin_pic7_mv.png" alt="fin_pic7_mv.png" /></span></P><P>Validation Rules created in FMDM Catalog automatically in decision table format</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fin_pic6_mv.png" style="width: 765px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108637i92E0477F9A9C61C8/image-dimensions/765x360?v=v2" width="765" height="360" role="button" title="fin_pic6_mv.png" alt="fin_pic6_mv.png" /></span></P><P><STRONG>Multi Derivation Rule:</STRONG> Most of the steps are similar to Multi Validation rules, except here we have to mention<BR />the multiple deriving attributes which is derived based on satisfying certain condition</P><P>In the business Rules Page, define a New Rule: Start by creating a new rule, select the type of rule as "Multi Value Derivation Rule" to create.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MD_NEW_PIC.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108719i2752A91543C98B95/image-size/large?v=v2&amp;px=999" role="button" title="MD_NEW_PIC.png" alt="MD_NEW_PIC.png" /></span></P><P><STRONG>Step 1 :</STRONG> Select Data model as ‘BP’, ‘ZBP1P1V1’ CR Type (select relevant CR type as required) , Entity as ‘BP_CENTRL’,<BR />Rule type: Multi Derivation and then click on an option like "Rule1” to start defining a new derivation rule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="md_fin_pic11.png" style="width: 939px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108653i10A98D57F0ECC35A/image-size/large?v=v2&amp;px=999" role="button" title="md_fin_pic11.png" alt="md_fin_pic11.png" /></span></P><P>Business Scenario: For all Green business partners, derive multiple attributes like Salutation, Title, BU search term1,<BR />BU search term2 through multi value validation rules, for the ease of understanding, simple business derivations rules are taken and<BR />explained here, there is no restriction to create multiple rules with multiple condition.</P><P>If BP_CENTRL~NAME_ORG1 = ‘GREEN’, following attributes will be derived automatically upon successful validation rules&nbsp;</P><P>BP_CENTRL~BU_SORT1,&nbsp;BP_CENTRL~BU_SORT2,&nbsp;BP_CENTRL~TITLE_LET,&nbsp;BP_CENTRL~TITLE_BP</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="md_fin_pic4(derived attributes.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108664iE083D6CC526932F3/image-size/large?v=v2&amp;px=999" role="button" title="md_fin_pic4(derived attributes.png" alt="md_fin_pic4(derived attributes.png" /></span></P><P>After saving the Mutli value derivation business rule thru RDG,&nbsp;Multi value derivation BADI implementation has been<BR />created / updated in the back end automatically to derive multiple attributes&nbsp;&nbsp;</P><P>Step 2: Trigger the rule in NWBC application.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="md_fin_pic3(derived values).png" style="width: 757px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108665i19E9ED2C1B60CED2/image-dimensions/757x356?v=v2" width="757" height="356" role="button" title="md_fin_pic3(derived values).png" alt="md_fin_pic3(derived values).png" /></span></P><P>Multi Value Derivation Rules created in FMDM Catalog automatically in decision table format</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="md_fin_pic7_brf_plus_decision table.png" style="width: 755px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108666i3FA86DDEC6EE0871/image-dimensions/755x355?v=v2" width="755" height="355" role="button" title="md_fin_pic7_brf_plus_decision table.png" alt="md_fin_pic7_brf_plus_decision table.png" /></span></P><P>With the help of Syniti RDG, you can now create multi value validation / derivation rules without the effort of creating<BR />Custom BADI implementation in the backend and it simplifies the way of creating decision tables automatically&nbsp;in BRFPlus.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SAP Endorsed logo.png" style="width: 403px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108716iAD11FBE668E11017/image-dimensions/403x76?v=v2" width="403" height="76" role="button" title="SAP Endorsed logo.png" alt="SAP Endorsed logo.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P><A href="https://store.sap.com/dcp/en/product/display-2001014736_live_v1/syniti-rapid-data-governance" target="_blank" rel="noopener noreferrer"><SPAN>Syniti RDG</SPAN></A><SPAN> is a certified SAP BTP solution and is available on </SPAN><A href="https://store.sap.com/dcp/en/" target="_blank" rel="noopener noreferrer"><SPAN>SAP App Store</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN><SPAN>To know more details about the product, check the blog </SPAN><A href="https://blogs.sap.com/2021/02/05/how-partner-add-on-solutions-enhance-saps-master-data-governance/" target="_blank" rel="noopener noreferrer"><SPAN>Partner Add-on Solutions</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Your opinions and feedback are highly appreciated and feel free to post them in the comment section.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Please follow and read more interesting blogs on </SPAN><A href="https://blogs.sap.com/tags/67837800100800004488/" target="_blank" rel="noopener noreferrer"><SPAN>SAP Master Data Governance | SAP | SAP Blogs</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>You can also find and post questions about the product here: </SPAN><A href="https://answers.sap.com/tags/67837800100800004488" target="_blank" rel="noopener noreferrer"><SPAN>SAP Master Data Governance Community</SPAN></A><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P> 2024-05-17T12:35:22.385000+02:00 https://community.sap.com/t5/technology-blogs-by-members/rdg-eases-the-process-of-data-replication-through-soa-services-with-custom/ba-p/13699437 RDG eases the process of data replication through SOA services with custom enhancements. 2024-05-21T09:38:22.790000+02:00 ramyakotha https://community.sap.com/t5/user/viewprofilepage/user-id/16207 <P><SPAN><A href="https://store.sap.com/dcp/en/product/display-2001014736_live_v1/syniti-rapid-data-governance" target="_self" rel="noopener noreferrer">Syniti RDG</A>&nbsp;is an SAP-endorsed application on the Business Technology Platform (SAP BTP) to facilitate MDG implementation with intuitive UI and process automation</SPAN>.&nbsp;</P><P><SPAN>RDG eases the process of data replication by setting data replication configuration steps like data replication model, create and maintain business systems and can map standard and customized attributes with different mapping transformations. This simplifies the process onto one easy to navigate screen. RDG replication via IDoc or via services (WSDL and SOA) are available and are dependent on the outbound implementation selected.</SPAN><SPAN>&nbsp;Custom enhancements with replication of data can also be created in SOA proxy structure depending on business requirements.&nbsp;</SPAN></P><P><SPAN>In the main menu, select "Interface Configuration".</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_0-1715599386402.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109481i90A13896A00C8A7E/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_0-1715599386402.png" alt="ramyakotha_0-1715599386402.png" /></span></P><P><STRONG>Create New Replication Model:</STRONG></P><P><SPAN>Step 1: In the home screen, select ‘Interface Configuration.’</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Step 2: Create new Interface by selecting + .</SPAN></P><P><SPAN>Step 3: Enter required data:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Replication Model – ZSOABP (select or create new)</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Description – SOA for BP&nbsp;</SPAN></LI><LI><SPAN>Outbound Implementation – 986_1&nbsp;</SPAN></LI><LI><SPAN>Communication Channel – Defaults from Outbound Implementation setup</SPAN><SPAN>.&nbsp; For SOA services, the value is 1.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Data Model</SPAN><SPAN>&nbsp;- BP</SPAN></LI><LI><SPAN>Business System – T42CLNT100&nbsp;</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_2-1715599412772.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109484i93D297270EA7CAD9/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_2-1715599412772.png" alt="ramyakotha_2-1715599412772.png" /></span></P><P>&nbsp;</P><P><SPAN>Additional data is optional:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Sequence – Defaults to 00</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Filter Time</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>If the Business System is not set up it can be added.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG>New Business System:</STRONG></P><P><SPAN>Step 1: Select Manage Business System to add a New Business System</SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_3-1715599412776.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109483iBBEBBAB346CEAAAA/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_3-1715599412776.png" alt="ramyakotha_3-1715599412776.png" /></span></P><P>Step 2: Enter Business System – follow standard naming convention.&nbsp;</P><P><SPAN>Step 3: Additional data is optional.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_4-1715599412790.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109486i8C24AC8ED59273CA/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_4-1715599412790.png" alt="ramyakotha_4-1715599412790.png" /></span></P><P>Once the replication model is saved with all necessary configurations, select the business system for mapping to load the SOA Proxy ABAP structure like below.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_5-1715599412806.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109487i3596342A49302179/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_5-1715599412806.png" alt="ramyakotha_5-1715599412806.png" /></span></P><P><SPAN>For data replication involving SOA, enhancements with elements and attributes may be added in the Mapping Details table. An enhancement may have attribute(s) directly under it or may have element(s) that contain attribute(s).&nbsp; </SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG>Add Element and Attribute:&nbsp;</STRONG></P><P><SPAN>Depending on the requirement, enhancement can be created for elements or attributes.</SPAN></P><P><SPAN>Step 1: Highlight the segment. Click on Edit Proxy and click on Add.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_6-1715599412812.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109485iBF5C8C85B7E021A7/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_6-1715599412812.png" alt="ramyakotha_6-1715599412812.png" /></span></P><P><SPAN>Step 2: Choose Add Element. Or choose Add Attribute to add the attribute directly under the enhancement.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_7-1715599412817.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109488i9A86828EC74216B0/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_7-1715599412817.png" alt="ramyakotha_7-1715599412817.png" /></span></P><P>Step 3: Enter enhancement details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_8-1715599412828.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109490i7DCDA4E4EC4DF118/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_8-1715599412828.png" alt="ramyakotha_8-1715599412828.png" /></span></P><P>Step 4: Enter custom attributes that extends Business partner.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_9-1715599412837.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109489iD585BF877AB8D2F8/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_9-1715599412837.png" alt="ramyakotha_9-1715599412837.png" /></span></P><P><SPAN>Step 5: Click Save and select the correct TR and package.</SPAN><SPAN>&nbsp;</SPAN></P><P>Step 6: Receive a confirmation message that the changes have been submitted and that the details will load when completed.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_10-1715599412849.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109493iEDBA856BFEAAFFA2/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_10-1715599412849.png" alt="ramyakotha_10-1715599412849.png" /></span></P><P>Step 7: After the refresh, the new enhancement is now added to the proxy structure.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_11-1715599412865.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109491i8208A1608BEF9CD0/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_11-1715599412865.png" alt="ramyakotha_11-1715599412865.png" /></span></P><P><STRONG>Edit Mapping&nbsp;</STRONG></P><P>After the enhancement is created and loaded, additional mappings of different types can be made depending on the requirements.</P><P><SPAN>Step 1: Find a segment/field or enhancement/attribute by scrolling or by using the filter at the top of the table.&nbsp; Or filter by selecting the type of transformation.&nbsp; To change the mapping, click Edit Mapping. Then adjust the mapping by selecting fixed, bypass or mapped value transformation.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_12-1715599412869.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109492i4859B90D9CD50FA3/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_12-1715599412869.png" alt="ramyakotha_12-1715599412869.png" /></span></P><P>Step 2: Choose Fixed Value transformation and Mapped value for the attributes extended.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_13-1715599412875.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109496i73D963734FCA33B5/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_13-1715599412875.png" alt="ramyakotha_13-1715599412875.png" /></span></P><P>Step 3: For Mapped Value transformation, select table from the drop down list. It is mandatory to select and map the key values of table. The key value can be a static or dynamic change request data value.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_14-1715599412885.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109494i5F0413BC632D7808/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_14-1715599412885.png" alt="ramyakotha_14-1715599412885.png" /></span></P><P>To map dynamic change request key value, select the field from the proxy structure itself.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_15-1715599412890.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109495i2C9DA5E5168D500C/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_15-1715599412890.png" alt="ramyakotha_15-1715599412890.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_16-1715599412901.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109497i03C5F0F73E11538C/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_16-1715599412901.png" alt="ramyakotha_16-1715599412901.png" /></span></P><P>Step 4: Select the table field to map the value of table field to the field of enhanced proxy structure.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_19-1715600371743.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109510i491D38A5892F5A31/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_19-1715600371743.png" alt="ramyakotha_19-1715600371743.png" /></span></P><P><SPAN>Step 5: Complete the mapping according to the transformation:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI>If Fixed value is selected, enter the fixed value.&nbsp;</LI><LI>Bypass will not require additional information (only available for IDOC)&nbsp;</LI><LI>Mapped value will require a referencing table to be selected along with the key value. Then map it with the table field.</LI></UL><P><SPAN>Step 6:&nbsp;Save mapping, select transport and package to complete.&nbsp;</SPAN></P><P><SPAN>To check the enhancement details being replicated, approve a change request from BP. An outbound message is created in SRT_MONI, once the data is sent out successfully to the target business system with mappings.</SPAN></P><P><SPAN><STRONG>Note:</STRONG> SOA Manager Configurations are mandatory to set up, before replicating the data.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ramyakotha_18-1715599412917.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109498i454AAC6DE649FF9D/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_18-1715599412917.png" alt="ramyakotha_18-1715599412917.png" /></span></P><P><SPAN>With the help of Syniti RDG, you can now replicate data through SOA services with standard and custom enhancements made to the model.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ramyakotha_0-1715601571120.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109552i8E2A3766E7B6D59D/image-size/medium?v=v2&amp;px=400" role="button" title="ramyakotha_0-1715601571120.png" alt="ramyakotha_0-1715601571120.png" /></span></P><P><A href="https://store.sap.com/dcp/en/product/display-2001014736_live_v1/syniti-rapid-data-governance" target="_blank" rel="noopener noreferrer"><SPAN>Syniti RDG</SPAN></A><SPAN>  is a certified SAP BTP solution and is available on </SPAN><A href="https://store.sap.com/dcp/en/" target="_blank" rel="noopener noreferrer"><SPAN>SAP App Store</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN><SPAN>To know more details about the product, check the blog </SPAN><A href="https://blogs.sap.com/2021/02/05/how-partner-add-on-solutions-enhance-saps-master-data-governance/" target="_blank" rel="noopener noreferrer"><SPAN>Partner Add-on Solutions</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Your opinions and feedback are highly appreciated and feel free to post them in the comment section.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Please follow and read more interesting blogs on </SPAN><A href="https://blogs.sap.com/tags/67837800100800004488/" target="_blank" rel="noopener noreferrer"><SPAN>SAP Master Data Governance | SAP | SAP Blogs</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>You can also find and post questions about the product here: </SPAN><A href="https://answers.sap.com/tags/67837800100800004488" target="_blank" rel="noopener noreferrer"><SPAN>SAP Master Data Governance Community</SPAN></A><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P> 2024-05-21T09:38:22.790000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-for-sap-integration-suite-spring-2024/ba-p/13709235 What’s New for SAP Integration Suite – Spring 2024 2024-05-23T08:50:16.661000+02:00 GabrielaGahse https://community.sap.com/t5/user/viewprofilepage/user-id/4015 <P>Continuing the blogpost series, we want to share with you the SAP Integration Suite innovation highlights of spring:</P><UL><LI>New look of SAP Integration Suite with the Horizon theme</LI><LI>Get help using built-in support</LI><LI>Access policies on package level</LI><LI>Design guideline checks in integration flow editor</LI><LI>Importing of message mapping with message type</LI><LI>Introducing the new pipeline concept in Cloud Integration</LI><LI>Activate Edge Integration Cell on Google Cloud Platform</LI><LI>Rollback to last successful Edge Integration Cell deployment</LI><LI>Creation of APIs using edmx for deployment on Edge Integration Cell</LI><LI>UDFs with Imported Archives in message mapping</LI><LI>Further execution types in message mappings</LI><LI>Archiving of payload data created in trading partner management scenarios</LI><LI>Duplicate nodes on target side in a message guideline</LI><LI>Global code value mapping from multiple sources to one target node</LI><LI>Copy API artifacts in API Management</LI><LI>Configuration of additional virtual hosts in API Management</LI><LI>Composing APIs and customizing business data graphs leveraging Graph</LI><LI>Distributed tracing through the event mesh</LI><LI>Direct consumption of SAP S/4 HANA Cloud events in SAP Integration Suite, advanced event mesh</LI><LI>New release of the Cloud Connector</LI><LI>Additional partner content published on SAP Business Accelerator Hub</LI></UL><H2 id="toc-hId-1014896662">New look of SAP Integration Suite with the Horizon theme</H2><P>Probably you have seen it already, over the last days our user interface got a facelift and follows the Horizon theme with a modern, lightweight, and refreshed user experience. The icons, buttons, and texts change slightly but all functionality is still the same. Additionally, within our SAP Integration Suite home page we added a carousel that provides you with some spotlights. Enjoy the new look.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_0-1716375424126.png" style="width: 539px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113998i5C1554AE11817527/image-dimensions/539x277?v=v2" width="539" height="277" role="button" title="GabrielaGahse_0-1716375424126.png" alt="GabrielaGahse_0-1716375424126.png" /></span></P><H2 id="toc-hId-818383157">Get help using built-in support</H2><P>We have made a big step forward in the direction of embedded product support. This new feature assists you with a combined search across knowledge base articles and help documentation to achieve a better understanding and guides you towards a solution. Additionally, it lets you file incidents through the support platform, all in one single window. Check out the&nbsp;<A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/working-with-integration-suite-home?version=CLOUD" target="_blank" rel="noopener noreferrer">documentation</A>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_1-1716375424145.png" style="width: 554px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113997i5AA10B5B5C0B77EF/image-dimensions/554x218?v=v2" width="554" height="218" role="button" title="GabrielaGahse_1-1716375424145.png" alt="GabrielaGahse_1-1716375424145.png" /></span></P><H2 id="toc-hId-621869652">Cloud Integration</H2><H3 id="toc-hId-554438866">Access policies on package level</H3><P>Isolation of sensitive data for different lines of business is crucial. We have extended our access policies in that way that you can control the access in the design time not only on artifacts but also on package level. This simplifies the tenant admin’s experience while restricting access to all integration artifacts of a package at once. Access policies on artifacts released before are not disrupted. In future we will offer an overwrite option to allow package access policies to overwrite artifact access policies. Only with granted access developers can deploy, undeploy, start integration flows, or access local variables. Refer to the <A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-integration-suite-access-policies-for-integration-packages/ba-p/13648901" target="_blank">blogpost</A> and to the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/managing-access-policies?version=CLOUD" target="_blank" rel="noopener noreferrer">documentation</A> for all details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_2-1716375424152.png" style="width: 508px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113996iB67A693BFD843FAE/image-dimensions/508x279?v=v2" width="508" height="279" role="button" title="GabrielaGahse_2-1716375424152.png" alt="GabrielaGahse_2-1716375424152.png" /></span></P><H3 id="toc-hId-357925361">Design guideline checks in integration flow editor</H3><P>Our design guidelines aim to model enterprise-wide integration flows in a robust fashion to safeguard the business processes. They cover different areas such as applying the highest security standards, handling errors, scripting, and performance. Now the first ones are embedded within the integration flow designer as rules and help to programmatically validate integration flows against them.</P><P>As an integration lead, you may not only learn about all available <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration-internal/design-guidelines?state=DRAFT&amp;version=DEV" target="_blank" rel="noopener noreferrer">design guidelines</A> but also enable the applicable ones on your tenants. And as an integration developer, you can validate the integration flows against the enabled guidelines and if needed improve the quality of your integration flow. Additionally, a report can be downloaded for report purposes. Be aware that currently not all design guidelines are covered by the tool. The complete list can be found in our help documentation. More rules will be added in the next increments. &nbsp;Check out the&nbsp;<A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration-internal/design-guidelines-view?state=DRAFT&amp;version=DEV" target="_blank" rel="noopener noreferrer">documentation</A>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_3-1716375424156.jpeg" style="width: 536px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113999i781CA80935A3B067/image-dimensions/536x295?v=v2" width="536" height="295" role="button" title="GabrielaGahse_3-1716375424156.jpeg" alt="GabrielaGahse_3-1716375424156.jpeg" /></span></P><H3 id="toc-hId-161411856">Importing of message mapping with message type</H3><P>You can now import message mappings from ES Repository that contains message type objects. Earlier, during the import, the message type objects were converted as WSDL files. See the&nbsp;<A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/developing-message-mapping-as-artifact?version=CLOUD#import-a-message-mapping-from-es-repository" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H3 id="toc-hId--35101649">Introducing the new pipeline concept in Cloud Integration</H3><P>The pipeline concept is mainly addressed to existing SAP Process Orchestration customers which plan to migrate their scenarios to Cloud Integration, but it can also be generally applied to any asynchronous integration scenario. It contains a sequence of generic and scenario-specific integration flows, leverage the Partner Directory to define the message processing behaviour, use XSLT mappings to carry out the receiver determination, and handles all asynchronous scenarios with a reduced number of JMS queues. For more details read the <A href="https://community.sap.com/t5/technology-blogs-by-sap/introducing-the-new-pipeline-concept-in-cloud-integration/ba-p/13639651" target="_blank">blogpost</A>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_4-1716375424166.png" style="width: 651px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/114000i52AEFDA9CD981A8B/image-dimensions/651x184?v=v2" width="651" height="184" role="button" title="GabrielaGahse_4-1716375424166.png" alt="GabrielaGahse_4-1716375424166.png" /></span></P><H2 id="toc-hId--360697873">Edge Integration Cell</H2><H3 id="toc-hId--428128659">Activate Edge Integration Cell on Google Cloud Platform</H3><P>You can now activate the Edge Integration Cell runtime on Google Cloud Platform. Check out the <A href="https://help.sap.com/docs/PRODUCTS/0310c61ad9934f0e8cdb9df1be7bd432/a8e497ff502946ee940dee9e38d4ab97.html?locale=en-US" target="_blank" rel="noopener noreferrer">documentation</A> and read also <A href="https://help.sap.com/docs/link-disclaimer?site=https://me.sap.com/notes/3379690" target="_blank" rel="noopener noreferrer">#3379690</A> to get the full list of supported regions and the future availability schedule.</P><H3 id="toc-hId--624642164">Rollback the deployment</H3><P>As the Edge Integration Cell is updated at cloud speed you have to update your Kubernetes version monthly by using the Edge Lifecycle Management user interface. &nbsp;Now it is also possible to roll back to the last successful version if an upgrade or configuration modification operation fails. The option to downgrading back to a previous tried-and-trusted version is also on the roadmap. Read the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/rollback-edge-integration-cell-solution" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H3 id="toc-hId--896387038">Creation of APIs using edmx for deployment on Edge Integration Cell</H3><P>You can now create an OData API artifact using a .edmx file. This functionality enables users to easily generate and manage OData APIs by leveraging existing .edmx files. Details how to create the APIs can be found in the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/create-api-artifact-using-url" target="_blank" rel="noopener noreferrer">documentation</A><SPAN>.</SPAN></P><H2 id="toc-hId--799497536">Migration Assessment and migration tool</H2><P>Supporting our SAP Process Orchestration customers in their journey to SAP Integration Suite is one of our key investment areas. During last development takts we have released the innovations:</P><H3 id="toc-hId--1289414048">UDFs with Imported Archives in message mapping</H3><P>By introducing a new type of artifacts, <EM>Imported Archives</EM>, you are now able to import your user-defined functions (UDFs) which have a reference to imported archive objects (with XSLT or Java mappings) in Enterprise Services Repository directly into Cloud Integration. You can reuse the imported archive objects across multiple <EM>Function Libraries</EM> artifacts, which in turn are reused across multiple message mappings. Read the <A href="https://help.sap.com/docs/PRODUCTS/0310c61ad9934f0e8cdb9df1be7bd432/e00e81d27e1d4203bd09bd36302bc76c.html?locale=en-US&amp;state=DRAFT&amp;version=Internal" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H3 id="toc-hId--1485927553">Further execution types in message mappings</H3><P>As we want to increase reusability of message mapping artifacts from SAP Process Orchestration, we extended the import procedure of function library objects from the ES Repository by the execution types <EM>ALL_VALUES_OF_QUEUE</EM> and <EM>ALL_VALUES_OF_CONTEXT</EM>. Check out the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/import-function-library-from-es-repository" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H2 id="toc-hId--1389038051">B2B Integration</H2><H3 id="toc-hId--1878954563">Archiving of payload data created in trading partner management scenarios</H3><P>We are thrilled to announce that you can now archive the interchange payload of your transaction activities to meet your data-retention requirements for auditing purposes. This archiving feature is executed once a day. Both the payload and headers are stored as zip files on your own CMIS-compliant content management system. Refer to the documentation <A href="https://help.sap.com/docs/PRODUCTS/922bf2dbe0b646aaaa8cb5e077cfd799/9692cb19768145c7b265c14612a3e046.html?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">Creating an agreement template</A> and <A href="https://help.sap.com/docs/PRODUCTS/922bf2dbe0b646aaaa8cb5e077cfd799/9bd43c9ae064493286f321551bd0557c.html?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">Creating a trading partner agreement</A>.</P><H3 id="toc-hId--2075468068">Duplicate nodes on target side in a MAG</H3><P>In B2B integration scenarios, you may occasionally encounter situations where certain information, such as different types of partners or currencies, is distributed across the source structure. However, there may only be one node in the target structure. To address this, the mapping guidelines editor now offers the ability to duplicate or replicate group or leaf nodes. This allows each source alternative to be mapped to one of these duplicates. See the <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/mapping-source-and-target-nodes#duplicate-target-nodes" target="_blank" rel="noopener noreferrer">documentation</A>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GabrielaGahse_5-1716375424183.png" style="width: 527px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/114001i1D5558DDCACD8994/image-dimensions/527x226?v=v2" width="527" height="226" role="button" title="GabrielaGahse_5-1716375424183.png" alt="GabrielaGahse_5-1716375424183.png" /></span></P><H3 id="toc-hId-2022985723">Global code value mapping from multiple sources to one target node</H3><P>Additionally, we have news to tell regarding the global code value mappings. For the definition of more complex code value mapping scenarios, you may create a global code value mapping with multiple source code values to one on the target side. So, the value function now supports N:1 in addition to the existing 1:1 cardinality. Refer to the <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/global-code-value-mapping" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H2 id="toc-hId-2119875225">API Management</H2><H3 id="toc-hId-1629958713">Copy API artifacts</H3><P>You can now create a duplicate of an API artifact by copying it within the same package or in a different integration package within the same Integration Suite subscription. Read the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/copy-api-artifact?version=CLOUD" target="_blank" rel="noopener noreferrer">documentation</A><SPAN>.</SPAN>&nbsp;</P><H3 id="toc-hId-1601628899">Configuration of additional virtual hosts</H3><P>The recent update allows for the configuration of additional virtual hosts and client certificate-based authentication entirely as a self-service instead of the previously established procedure that involved creating ops tickets. This applies to the default as well as custom domains. Additionally, the keystore and trust store values can be maintained as a reference, thereby ensuring that the virtual host definitions are automatically updated whenever certificates and keys are rotated. For further details refer to the following documentation pages (<A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/requesting-additional-virtual-host-in-cloud-foundry-environment" target="_blank" rel="noopener noreferrer">this</A>, <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/configuring-references-to-keystore-and-truststore" target="_blank" rel="noopener noreferrer">this</A>).</P><H3 id="toc-hId-1405115394">Composing APIs and customizing business data graphs</H3><P>Get a better understanding how Graph can be used to compose different APIs into a single connected data graph you may walk through this <A href="https://community.sap.com/t5/technology-blogs-by-sap/api-composition-with-graph-customizing-your-business-data-graphs-with-model/ba-p/13639447" target="_blank">tutorial</A>.</P><H2 id="toc-hId-1502004896">Event Mesh</H2><H3 id="toc-hId-1012088384">Distributed tracing through the event mesh</H3><P>For diagnose problems SAP Integration Suite, advanced event mesh offers you an end-to-end tracing capability for tracking an event all the way from the producing to the receiving application and it's way across one or multiple event brokers. Common OpenTelemetry backends can be leveraged for troubleshooting the error message. Read the <A href="https://help.pubsub.em.services.cloud.sap/Features/Distributed-Tracing/Distributed-Tracing-Overview.htm" target="_blank" rel="noopener nofollow noreferrer">documentation</A>.</P><H3 id="toc-hId-815574879">Direct consumption of SAP S/4 HANA Cloud events</H3><P>Since March already it is also possible not only to receive SAP S/4HANA but also SAP S/4HANA Cloud events directly in SAP Integration Suite, advanced event mesh without any intermediate hops. &nbsp;This is very helpful for any large SAP S/4HANA projects, where performance is crucial. Check out the <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/9b34c841dfba4f82af0825a2f3196ecf.html?version=2402.500" target="_blank" rel="noopener noreferrer">documentation</A>.</P><H2 id="toc-hId-912464381">New release of the Cloud Connector</H2><P>A new release 2.17.0 of the SAP Cloud Connector has been recently published and can be downloaded. With this release we’ve not only ensured the highest security levels but also worked on improving the overall user experience and functionality. See the <A href="https://community.sap.com/t5/technology-blogs-by-sap/new-release-available-sap-cloud-connector-2-17-0/ba-p/13697681" target="_blank">blogpost</A> or all the details.</P><H2 id="toc-hId-715950876">SAP Business Accelerator Hub</H2><P>Additional partner content has been published on <A href="https://hub.sap.com/" target="_blank" rel="noopener noreferrer">SAP Business Accelerator Hub</A>,&nbsp;our public catalog hosted by SAP to discover, explore, and test SAP and partner APIs&nbsp;required to build extensions or process integrations. Examples are the integration of SAP S/4HANA with Shopify published by Flexso NV; or Effective People A/S an integration to replicate employee data from SAP SuccessFactors Central to SAP Concur; and NTT DATA Business Solutions AG an exchange of application and vendor data between SAP LeanIX and SAP Integration Suite. &nbsp;Please check out the separate <A href="https://community.sap.com/t5/technology-blogs-by-sap/new-partner-content-on-sap-business-accelerator-hub-q1-24/ba-p/13656895" target="_blank">blogpost</A> for more details.</P><H2 id="toc-hId-519437371">How to stay tuned to recent and upcoming innovations?</H2><P>The blog post ends with a list of links to websites that hopefully keep you up-to-dated:</P><UL><LI>SAP Road Map Explorer for&nbsp;<A href="https://roadmaps.sap.com/board?range=CURRENT-LAST&amp;PRODUCT=73554900100800003241" target="_blank" rel="noopener noreferrer">SAP Integration Suite</A>, <A href="https://roadmaps.sap.com/board?range=CURRENT-LAST&amp;PRODUCT=73554900100800004463" target="_blank" rel="noopener noreferrer">SAP Integration Suite, advanced event mesh</A>, and <A href="https://roadmaps.sap.com/board?range=CURRENT-LAST&amp;PRODUCT=73555000100800001091" target="_blank" rel="noopener noreferrer">SAP API Business Hub</A></LI><LI><A href="https://help.sap.com/whats-new/5793247a5d5741beb0decc5b7dee1160?locale=en-US" target="_blank" rel="noopener noreferrer">What’s New in SAP Integration Suite</A></LI><LI><A href="https://www.sap.com/cmp/nl/sap-cloud-platform-integration-suite/index.html?sap-outbound-id=6287F912007644D6C49C53EAA9594EE1B4431938&amp;smc_campaign_id=0000032983&amp;source=email-smc" target="_blank" rel="noopener noreferrer">Sign up</A> to get invitations to the upcoming monthly webinars hosted by the Product Management experts. Next one is scheduled for May 28th</LI><LI><A href="https://events.sap.com/sap-user-groups/en/ifg_for_integration" target="_blank" rel="noopener noreferrer">2024 Learning Sessions for SAP User Groups</A> for all recordings, presentations, and Q&amp;As in case you have missed a webinar</LI><LI><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#slide!SL_83EFB74698B85387" target="_blank" rel="noopener nofollow noreferrer">Release Navigator for SAP Integration Suite</A> easing you the way to find product release related notes, blogposts, and webpages</LI></UL> 2024-05-23T08:50:16.661000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-cloud-integration-advanced-event-mesh-adapter-oauth-authentication/ba-p/13704534 SAP Cloud Integration: Advanced Event Mesh Adapter: OAuth Authentication 2024-05-23T10:22:36.147000+02:00 CarlosRoggan https://community.sap.com/t5/user/viewprofilepage/user-id/5495 <P><STRONG>SAP Cloud Integration</STRONG>&nbsp;(aka CPI) offers an “Advanced Event Mesh Adapter” which is well integrated with the “Advanced Event Mesh” broker.<BR />This article shows how to set up a scenario where we send a message from iFlow via “Advanced Event Mesh Adapter” to&nbsp;<STRONG>SAP Integration</STRONG><STRONG> Suite</STRONG><STRONG>, Advanced Event Mesh (AEM)</STRONG>&nbsp;with&nbsp;<STRONG>OAuth</STRONG>&nbsp;Authentication.</P><P>Technologies covered in this blog post:<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>SAP Business Technology Platform, Cloud Foundry environment<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>SAP Cloud Integration<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>SAP Integration Suite, Advanced Event Mesh<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>XSUAA, OAuth 2.0</P><H2 id="toc-hId-1014750589">Content</H2><P style=" padding-left : 30px; ">0. Introduction<BR />1. BTP: Create OAuth Client with XSUAA<BR />2. AEM: Configure OAuth Settings<BR />3. CPI: Create iFlow<BR />4. Run Scenario</P><H2 id="toc-hId-818237084"><SPAN>Prerequisites</SPAN></H2><P style=" padding-left : 30px; "><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>To follow this tutorial, access to&nbsp;&nbsp;<A href="http://%20https/help.sap.com/docs/SAP_ADVANCED_EVENT_MESH" target="_blank" rel="noopener nofollow noreferrer">SAP Advanced Event Mesh</A>&nbsp;is required.<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Access To CPI Tenant is required.<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Access to Subaccount in BTP with permissions to create service instances<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>I recommend bookmarking the&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-btp-security-glossary/ba-p/13562676" target="_blank">Security Glossary</A><BR /><BR /></P><H2 id="toc-hId-621723579">0. Introduction</H2><P>We want to send a message from an iFlow to Advanced Event Mesh Broker.<BR />We want to use the “Advanced Event Mesh” adapter.<BR />Authentication should be configured with OAuth.</P><P><FONT color="#999999">What is OAuth?</FONT><BR />Let’s try to give a brief summary:<BR />We don’t send user/password to the endpoint.<BR />Instead, we send a token (a string containing some info).<BR />We fetch that token from a so-called “Authorization Server”.<BR />Beforehand, we have registered a “client” at that server.<BR />Upon registration, the client gets an ID and a password, called “secret”.</P><P>To fetch a token, one of several “OAuth flows” is used.<BR />Typical flow:<BR />(1) the web application (“client”) requests a token from “Auth Server” (with ID / secret).<BR />(2) The server asks the end user for consent (user enters name/password).<BR />(3) Web app receives token and sends it (4) to the endpoint (“Resource Server”).<BR />(5) The endpoint validates the token (with help from “Auth Server”) and responds to client.<BR />This flow is called “Authorization Code” and requires interaction from end user.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="diagram_oauth.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111941i68CB913F4E4BF536/image-size/medium?v=v2&amp;px=400" role="button" title="diagram_oauth.jpg" alt="diagram_oauth.jpg" /></span></P><P>&nbsp;</P><P>Summarizing, we have 4 participants:<BR /><FONT color="#0000FF"><EM>Resource Server</EM></FONT>, hosting the resources, that are requested by the web app (e.g. photos).<BR /><EM><FONT color="#FF6600">Client</FONT></EM>, the (web) application.<BR /><FONT color="#3366FF">Authorization Server</FONT>, the server which issues the access tokens and knows how to validate end users.<BR /><FONT color="#999999">End User</FONT>, human user who uses the web applications and owns the resources (e.g. own photos).</P><P><FONT color="#999999">What is a JWT token?<BR /></FONT>It stands for <EM>JSON Web token</EM>, it is a string that contains data in JSON format.<BR />The string is encoded with Base46.<BR />The data contains the client ID and permissions and more.</P><P><FONT color="#999999">How does it apply to CPI?</FONT><BR />If user interaction and user information is not required, we can use “Client Credentials flow”.<BR />It is simpler, because user consent can be skipped.<BR />This is what we use for our scenario.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="diagram2.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111942i8261B4F6A79C5156/image-size/medium?v=v2&amp;px=400" role="button" title="diagram2.jpg" alt="diagram2.jpg" /></span></P><P>We can see that XSUAA acts as “Authorization Server” which issues a JWT token.<BR />The AEM represents the “Resource Server” which hosts the protected resources, in this case we connect to it for sending messages.<BR />CPI takes the role of the client which requests a JWT token and sends client ID + secret.</P><P>To be more concrete:<BR />Beforehand, we create an instance of XSUAA service, which involves the registration of a client at XSUAA.<BR />The instance is the client and the credentials are obtained via service key (because we cannot bind).<BR />The credentials are then stored in CPI as a Security Artifact (in this case: “OAuth 2 Client Credentials”).<BR />This security artifact is configured in the AEM adapter.<BR />CPI is then able to automatically fetch a JWT token which is sent by the AEM adapter when connecting to AEM.<BR />At AEM side, we have to configure the information of XSUAA and the client credentials.<BR />This enables AEM to validate the incoming JWT token (with the help of XSUAA).</P><P>In the following hands-on tutorial, we’re going to take care of each of the 3 participants:</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Register an OAuth client at the Authorization Server (XSUAA).<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Configure the Resource Server to support OAuth (AEM).<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Configure the client application to use the OAuth client with “client credentials” flow (CPI).</P><H2 id="toc-hId-425210074">1. BTP: Create OAuth Client</H2><P>In this tutorial, we’re using XSUAA, but the approach should be similar when using other Authorization Servers like IAS.<BR />We create a service instance (which represents the OAuth client) and use the credentials for configuring CPI and AEM.</P><H3 id="toc-hId-357779288"><U>1.1. Create Service instance</U></H3><P>Go to your subaccount <EM>-&gt; Service Marketplace -&gt; Authorization and Trust Management -&gt; Create</EM><BR />Then select the service plan as “application” and enter a name of your choice.<BR />In my example: "xsuaaForAem".</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="createXsuaa0.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111956i999E3E6A82AA26E0/image-size/medium?v=v2&amp;px=400" role="button" title="createXsuaa0.jpg" alt="createXsuaa0.jpg" /></span></P><H3 id="toc-hId-161265783">&nbsp;<U>1.2. Create Service Key</U></H3><P>After service creation we click “view instance”.<BR />There, we press on “Create Service Key”.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="createXsuaa1.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111951iAE43F1681E3219E3/image-size/medium?v=v2&amp;px=400" role="button" title="createXsuaa1.jpg" alt="createXsuaa1.jpg" /></span></P><P>&nbsp;We can enter any name of our choice, e.g. "myKey".<BR />Press <EM>Create</EM>.</P><H3 id="toc-hId--35247722"><U>1.3. View Credentials</U></H3><P>After creating the service key, we can view the credentials, i.e. the content of the service key.<BR />We can either use the “View Credentials” button on the service details, or the context button of the new service key.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="createXsuaa2.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111952iE807E172255D4028/image-size/medium?v=v2&amp;px=400" role="button" title="createXsuaa2.jpg" alt="createXsuaa2.jpg" /></span></P><P>The content of the service key is a JSON object which contains 3 relevant properties:</P><P style=" padding-left : 30px; "><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>clientid</FONT><BR /><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>clientsecret</FONT><BR /><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>url</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="createXsuaa3.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111953i36077EB1384A1FA9/image-size/medium?v=v2&amp;px=400" role="button" title="createXsuaa3.jpg" alt="createXsuaa3.jpg" /></span></P><P>We should take a note of them.<BR /><FONT color="#999999">Why?</FONT><BR />This is the OAuth client, with its name and password, and the URL from where it can fetch an access token.<BR />We need this information to configure both AEM and CPI.&nbsp;</P><H2 id="toc-hId--360843946">2. AEM: Configure OAuth Authentication</H2><P>Now we head over to AEM for defining the configurations required for OAuth authentication.</P><P><FONT color="#999999">Why?</FONT><BR />Our iFlow will establish a connection and will have to authenticate.<BR />Instead of authenticating with username and password, we want to use OAuth.<BR />As a consequence, AEM will receive a JWT token.<BR />Which means that AEM will have to somehow validate the token content.<BR />Below configurations enables AEM to do this validation.</P><P>At AEM, 3 steps are required:</P><P style=" padding-left : 30px; "><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Enable OAuth (only once)<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Create OAuth Profile (for each OAuth client)<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Set default profile (in case of multiple profiles)</P><H3 id="toc-hId--428274732"><U>2.0. Enable OAuth Authentication</U></H3><P>We login to our <EM>SAP Integration Suite, advanced event mesh</EM>.<BR />We click on <EM>Cluster Manager</EM>, choose our broker and click on the <EM>Manage</EM> tab.<BR />In the section <EM>Event Broker Service Settings</EM>&nbsp;we click on <EM>Authentication</EM>.<BR />We enable <EM>OAuth Provider Authentication</EM>&nbsp;and <EM>Save</EM>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AEM_auth.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/112093iA373C134A9F3E9E1/image-size/medium?v=v2&amp;px=400" role="button" title="AEM_auth.jpg" alt="AEM_auth.jpg" /></span></P><P>&nbsp;</P><P>This step needs to be executed only once.</P><H3 id="toc-hId--624788237"><U>2.1. Create OAuth Profile</U></H3><P>In the <EM>Cluster Manager</EM>, we choose our broker and <EM>Open Broker Manager</EM>.<BR />There, we click on <EM>Messaging -&gt; Access Control</EM> on the left navigation pane.<BR />Below <EM>Client Authentication</EM>&nbsp;tab, we go to the sub-tab <EM>OAuth Profiles</EM>.<BR />To create a new profile, we click <EM><span class="lia-unicode-emoji" title=":heavy_plus_sign:">➕</span>OAuth Profile</EM>&nbsp;button and enter a name like "xsuaaForAem".<BR />After pressing <EM>Create</EM> we can configure this new profile.</P><P>Note:<BR />One profile corresponds to one OAuth client.<BR />In our case, the OAuth client is the service instance of XSUAA, but it could be an “Application” in IAS or Microsoft Azure AAD, etc</P><P><U>Settings</U></P><P><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><FONT face="courier new,courier">Enabled</FONT><BR />yes</P><P><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><FONT face="courier new,courier">OAuth Client ID<BR /></FONT>Here we enter the clientid which we copied in chapter 1.3.<BR />In my example, I enter <FONT face="courier new,courier">sb-na-a8e2450d-3c00...</FONT></P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Change OAuth Client Secret<BR /></FONT>We should not forget to click here, although it doesn’t seem to be a field.&nbsp;<span class="lia-unicode-emoji" title=":eyes:">👀</span><BR />Here we enter the clientsecret which we copied in chapter 1.3.<BR />In my example, I enter <FONT face="courier new,courier">0WUSE1jLm...<BR /></FONT>Note:<BR />The client secret is required for AEM to call the introspection endpoint of XSUAA.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>OAuth Role<BR /></FONT>This is a confusing setting.<BR />Anyways, in case of OAuth flow, we choose <EM>Resource Server</EM>.<BR />It makes sense, because in the OAuth diagram we assigned the role of Resource Server to AEM.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Issuer Identifier<BR /></FONT>Another confusing field.<BR />We can enter any string of our choice, as long as we use it when sending a request to AEM.<BR />This value is an ID which helps AEM to find the proper OAuth profile for an incoming JWT token.<BR />With other words:<BR />At the end of the day, we send a JWT token to AEM.<BR />AEM contains multiple OAuth profiles.<BR />So how does AEM know, which profile to use for validating the incoming token?<BR />The answer is easy to guess:<BR />It uses this field <span class="lia-unicode-emoji" title=":thumbs_up:">👍</span>.<BR />First of all, the validator reads the issuer which is carried by the JWT (the property name inside JWT token is <FONT face="courier new,courier">iss</FONT>).<BR />And it searches for a profile with the same Issuer Identifier.<BR />Alternatively, we can enter any unique string in this field.<BR />In that case, we have to send this same string in the request, as a special property.<BR />(Documentation can be found <A href="https://docs.solace.com/Security/Configuring-Client-Authentication.htm#OAuth" target="_blank" rel="noopener nofollow noreferrer">here</A>)</P><P data-unlink="true">In our tutorial, we use the url of XSUAA, which is our issuer and is contained in the JWT.<BR />We copy the url property from chapter 1.3<BR />In my example:<BR /><FONT color="#0000FF">https://subdomain.authentication.eu12.hana.ondemand.com</FONT>&nbsp;</P><P data-unlink="true"><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Discovery Endpoint<BR /></FONT>It is not required in our scenario.<BR />Optionally you can enter a URL like this:<BR /><FONT color="#0000FF">https://subdomain.authentication.eu12.hana.ondemand.com/.well-known/openid-configuration&nbsp;</FONT></P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>JWKS Endpoint<BR /></FONT>It is not required in our scenario<BR />Also, it is not required if the Discovery Endpoint is provided, because the JWKS Endpoint can be found in the metadata that are returned by the discovery endpoint.<BR />Anyways, in my example, the URL would be<BR /><FONT color="#0000FF"><A href="https://subdomain.authentication.eu12.hana.ondemand.com/token_keys" target="_blank" rel="noopener nofollow noreferrer">https://subdomain.authentication.eu12.hana.ondemand.com/token_keys</A>&nbsp;</FONT></P><P>Alternatively, the JWKS endpoint can be found when looking into a JWT token.<BR />The JWT token contains a header which contains a claim called <FONT face="courier new,courier">jku</FONT>.<BR />This is an abbreviation for <FONT face="courier new,courier">JWKS Url</FONT> and the value is the same as above.</P><P><FONT color="#999999">What is JWKS?</FONT><BR />It stands for <EM>JSON Web Key Set</EM>.<BR />It is a JSON object which contains a list of keys.<BR />These keys are public keys, exposed by the Authorization Server.<BR />A public key is used to verify a signature.<BR />It is required, because a JWT token is signed (with private key) by the Authorization Server and the signature is contained in the third segment of the JWT.<BR />Thus, the receiver of the JWT token can validate the token by extracting the signature and verifying it with the public key that is found via the first segment of the JWT<BR />In our example, we don’t need to enter the value, because the value can be read from the JWT token</P><P data-unlink="true"><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Introspection Endpoint<BR /></FONT>This is an endpoint which is offered by the Authorization Server (XSUAA).<BR />We compose the URL by appending <FONT color="#0000FF">/introspect</FONT> to the url property from chapter 1.3.<BR />In my example:<BR /><FONT color="#0000FF">https://subdomain.authentication.eu12.hana.ondemand.com/introspect</FONT>&nbsp;<BR />Docu can be found in the <A href="https://docs.cloudfoundry.org/api/uaa/version/77.5.0/index.html#introspect-token" target="_blank" rel="noopener nofollow noreferrer">Cloud Foundry UAA reference</A>.&nbsp;<BR />The introspect endpoint is called to validate the JWT token.<BR />The token is sent to the endpoint and the response contains a property (<FONT face="courier new,courier">active</FONT>) which indicates if the token is valid.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Authorization Groups Claim Name<BR /></FONT>We leave this empty.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Parse Access Token<BR /></FONT>We set to disabled.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Validate Access Token Audience<BR /></FONT>We enable the setting and enter the value of client ID into the field.<BR />The <FONT face="courier new,courier">aud</FONT> claim in a JWT token contains a list of receivers that are intended by this token.<BR />The client itself is always in the <FONT face="courier new,courier">aud</FONT>.<BR />As such, we can enter the clientid which we received in chapter 1.3</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Validate Access Token Issuer<BR /></FONT>We can enable this validation and enter the exact issuer which is contained in the <FONT face="courier new,courier">iss</FONT> claim of the JWT token.<BR />In our example, it is the token endpoint of XSUAA server, the value which we will need in chapter 3.1<BR />We enter the value of the <FONT face="courier new,courier">url</FONT> property of chapter 1.3<BR />However, that’s only the base URL, so we have to append the endpoint segments: <FONT color="#0000FF">/oauth/token</FONT></P><P data-unlink="true">In my example:<BR /><FONT color="#0000FF">https://subdomain.authentication.eu12.hana.ondemand.com/oauth/token</FONT>&nbsp;</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Validate Access Token Scope&nbsp;<BR /></FONT>We disable this validation, because we don’t require a specific scope.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>V</FONT><FONT face="courier new,courier">alidate Access Token Type<BR /></FONT>We can enable this validation and leave the default values as:<BR /><FONT face="courier new,courier">at+jwt</FONT> (accept access tokens and JWT tokens)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AEM_oauthprofile.jpg" style="width: 251px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/112095i8F1C886461924AB2/image-size/medium?v=v2&amp;px=400" role="button" title="AEM_oauthprofile.jpg" alt="AEM_oauthprofile.jpg" /></span></P><P>Finally, we can press “Apply” in the right upper corner.</P><H3 id="toc-hId--896533111"><U>2.2. Configure Default Profile</U></H3><P>After creating an OAuth profile, it is ready to be used.<BR />We've seen in the AEM dashboard that the new profile is added to a list of multiple OAuth profiles.<BR />Now there's another setting in the "Client Authentication" Tab which allows to define which of the existing profiles should be used as default.</P><P>Within "Broker Manager" we go to<BR /><EM>Access Control -&gt; Client Authentication -&gt; Settings<BR /></EM>and press "Edit"<BR />We make sure that <FONT face="courier new,courier">OAuth Authentication</FONT> is enabled.<BR />Now we select our OAuth Profile which we created above as <FONT face="courier new,courier">Default Profile Name.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AEM_selectProfile.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/112094i6F874003FEDB43D3/image-size/medium?v=v2&amp;px=400" role="button" title="AEM_selectProfile.jpg" alt="AEM_selectProfile.jpg" /></span></P><P>And as usual:<BR />Finally, we press “Apply”.</P><H3 id="toc-hId--1093046616"><U>2.3. Create Queue</U></H3><P>If not yet available, we create a queue to which we’ll send events from iFlow.<BR />To do so, we go to<BR /><EM>Broker Manager -&gt; Messaging -&gt; Queues<BR /></EM>and create a queue with name “testqueue”.</P><H3 id="toc-hId--1289560121"><U>Recap </U></H3><P>At AEM, we’ve configured OAuth via these 3 steps:</P><P><FONT face="courier new,courier">Broker Service</FONT><BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>enable OAuth Authentication<BR /><FONT face="courier new,courier">Broker Manager</FONT><BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>create OAuth Profile<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>define default OAuth Profile</P><H2 id="toc-hId--1192670619">3. CPI: Create iFlow</H2><P>At this point, the AEM broker is ready to receive JWT tokens issued for the OAuth client created in chapter 1.<BR />Now we head over to Cloud Integration dashboard where 2 tasks are waiting for us:<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>create a Security Artifact for handling the JWT token<BR /><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>create an iFlow with AEM adapter for sending messages</P><H3 id="toc-hId--1682587131"><U>3.1. Create Security Artifact</U></H3><P>We create a security artifact for securely storing the credentials which we received in chapter 1.3.<BR />CPI provides a special artifact type for OAuth 2 which is able to automatically fetch a JWT token with “Client Credentials” flow.<BR />We go to<BR /><EM>Monitor -&gt; Security Material<BR /></EM>and click on<EM><BR />Create -&gt; OAuth 2 Client Credentials</EM></P><P>In the dialog, we enter the following values:</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Name</FONT><BR />Any name of our choice.<BR />Note that this name will be used in the iFlow.<BR />In my example, I’m entering "xsuaaForAem".</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Token Service URL</FONT><BR />This is the endpoint provided by the Authorization Server, used for requesting a JWT token.<BR />We enter the value of the <FONT face="courier new,courier">url</FONT> property of chapter 1.3.<BR />However, that’s only the base URL, so we have to append the endpoint segments: <FONT color="#0000FF">/oauth/token<BR /></FONT>The full URL in my example:<BR /><FONT color="#0000FF"><A href="https://subdomain.authentication.eu12.hana.ondemand.com/oauth/token" target="_blank" rel="noopener nofollow noreferrer">https://subdomain.authentication.eu12.hana.ondemand.com/oauth/token</A></FONT></P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Client ID<BR /></FONT>Here we enter the value of the&nbsp;<FONT face="courier new,courier">clientid</FONT>&nbsp;property which we copied in chapter 1.3.<BR />In my example, I enter "sb-na-a8e2450d-3c00"</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Client Secret<BR /></FONT>Here we enter the <FONT face="courier new,courier">clientsecret</FONT>&nbsp;property which we copied in chapter 1.3.<BR />In my example, I enter "0WUSE1jLmsX/BcB0LlD"</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>Client Authentication<BR /></FONT>We choose “Send as Body Parameter”.</P><P><FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><SPAN>Content-Type<BR /></SPAN></FONT>We choose “application/x-www-form-urlencoded"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cpi_credentials.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113135i6D774BBEEF3B32C4/image-size/medium?v=v2&amp;px=400" role="button" title="cpi_credentials.jpg" alt="cpi_credentials.jpg" /></span></P><P>&nbsp;Finally, we press "Deploy".</P><P>With this, we’ve enabled CPI to fetch a JWT token for us.<BR />Note that the credentials have to be the same as we’ve configured in the AEM profile.</P><H3 id="toc-hId--1879100636">3.2. Create iFlow</H3><P>Now we can go ahead and create the iFlow.<BR />In this tutorial the iFlow is as minimalistic as possible, as we only want to show the usage of the AEM adapter.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="iFlow.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113142i013B16D43B4CA516/image-size/medium?v=v2&amp;px=400" role="button" title="iFlow.jpg" alt="iFlow.jpg" /></span></P><P>We create a simple iFlow which does really nothing but sending messages to the Event Broker.<BR />We define a hard-coded dummy message text.<BR />We just want to make sure that the OAuth authentication works fine.<BR />Let's quickly go through the steps:</P><P><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><FONT face="courier new,courier">Start Event</FONT><BR />The iFlow is triggered once after deploy, by a "Timer" start event.</P><P><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><FONT face="courier new,courier">Content Modifier</FONT><BR />In the "Message Body" tab we enter any dummy message text of our choice.</P><P><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span><FONT face="courier new,courier">AEM Adapter: Connection tab<BR />Host</FONT><BR />The value for host is copied from AEM and pasted as is, no need to cut or append anything.<BR />We go to<BR /><EM>AEM dashboard -&gt; Cluster Manager -&gt; Choose service -&gt; “Connect” tab</EM><BR />We expand “Solace Messaging” and copy <EM>Secured SMF Host Public Internet URL</EM>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="aem_adapter_host.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113162i60FA0446D86EE320/image-size/medium?v=v2&amp;px=400" role="button" title="aem_adapter_host.jpg" alt="aem_adapter_host.jpg" /></span></P><P>&nbsp;We paste the clipboard content into the “Host” field in AEM adapter.<BR /><FONT face="courier new,courier">Message VPN<BR /></FONT>Same procedure: copy the “Message VPN” value from the “Connect” tab of AEM.<BR />See screenshot above.<BR />Paste the clipboard content into the “Message VPN” field of the AEM-adapter in iFlow.<BR /><FONT face="courier new,courier">Username<BR /></FONT>We can leave the “default” user.<BR /><FONT face="courier new,courier">Authentication Type</FONT><BR />Select “OAuth2”.<BR /><FONT face="courier new,courier">OAuth2 Credential Type<BR /></FONT>Choose "OAuth2 Client Credentials".<BR /><FONT face="courier new,courier">OAuth2 Client Credentials Credential Name</FONT><BR />Here we enter the name of the security artifact created in chapter 3.1.<BR />In my example: "xsuaaForAem".</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="aem_adapter_conn.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113166i390143CD933F7068/image-size/medium?v=v2&amp;px=400" role="button" title="aem_adapter_conn.jpg" alt="aem_adapter_conn.jpg" /></span></P><P>&nbsp;<FONT face="courier new,courier"><span class="lia-unicode-emoji" title=":small_orange_diamond:">🔸</span>AEM Adapter: Processing tab<BR /></FONT>Here we configure our queue.<BR /><FONT face="courier new,courier">Endpoint Type</FONT><BR />We select "Queue".<BR /><FONT face="courier new,courier">Destination Name<BR /></FONT>Here we enter the name of the desired target queue.<BR />In my example: “testqueue”.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="aen_adapter_xsuaa_clicre2.jpg" style="width: 525px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113164iBD3D3CA29F3BBF79/image-size/large?v=v2&amp;px=999" role="button" title="aen_adapter_xsuaa_clicre2.jpg" alt="aen_adapter_xsuaa_clicre2.jpg" /></span></P><P>&nbsp;That’s it for iFlow creation.<BR />BTW, saving is always a good idea.</P><H2 id="toc-hId--1782211134">4. Run Scenario</H2><P>Now we can deploy the iFlow and check the result:<BR /><span class="lia-unicode-emoji" title=":large_blue_diamond:">🔷</span>In CPI :<BR />The log at “Monitor Message Processing” should show success message:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="result1.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113169i8BF75D3C94EE52CB/image-size/medium?v=v2&amp;px=400" role="button" title="result1.jpg" alt="result1.jpg" /></span><span class="lia-unicode-emoji" title=":large_blue_diamond:">🔷</span>In AEM:<BR />We go to “Broker Manager” and check the number of “Messages Queued” which should have increased.</P><P><span class="lia-unicode-emoji" title=":large_blue_diamond:">🔷</span>Consume:<BR />Another option would be to&nbsp;use the “Try-Me” tool in AEM to consume the messages sent from iFlow.</P><P>We go to <EM>Cluster Manager -&gt; Select Service -&gt; Connect</EM><BR />We expand <EM>Solace Web Messaging</EM> and copy the “Connection Details”.<BR />Then we go to<BR /><EM>Broker Manager -&gt; Try Me</EM>&nbsp;<BR />and enter the connection details and the queue name.<BR />Immediately, we receive the messages and can check the dummy content which we specified in the “Content Modifier” step of the iFlow.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="result2.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/113170i2A99DA1454054135/image-size/medium?v=v2&amp;px=400" role="button" title="result2.jpg" alt="result2.jpg" /></span></P><P>With that we can be happy. <span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:">😊</span><BR />We've confirmed that OAuth authentication can be realized with CPI and AEM via AEM adapter.</P><H2 id="toc-hId--1978724639">Troubleshooting</H2><P>If the authentication is not configured correctly, the iFlow would fail during deployment.<BR />The error could be seen in <EM>Monitor -&gt; Manage Integration Content</EM></P><P>Error message like below, security related error messages are usually not helpful:<BR /><FONT face="courier new,courier" color="#FF0000">com.solacesystems.jcsmp.JCSMPErrorResponseException: 401: Unauthorized</FONT></P><P>Status <FONT face="courier new,courier">401</FONT> indicates that the access is not allowed, token validation failed.<BR /><FONT color="#999999">Super</FONT><BR />This means that the OAuth configuration is not correct.<BR />Sorry that I don’t have a better explanation.</P><P>To fix it, we need to go through the tutorial again and check:<BR />- ClientID and secret: are they the same in CPI-Security-Artifact and in AEM-OAuth-Profile?<BR />- Is the correct Security Artifact configured in the CPI-AEM-adapter?<BR />- Go through the OAuth profile and check each setting and URLs, deactivate the validations.<BR />- You may want to fetch a JWT token manually (e.g. using Postman or curl) and introspect it (<A href="http://www.jwt.io" target="_blank" rel="nofollow noopener noreferrer">www.jwt.io</A>) to view the content of the iss claim.</P><P>Sorry that I cannot give better advice.</P><H2 id="toc-hId-2119729152">Summary</H2><P>In this blog post we've learned how to use OAuth authentication for sending messages from iFlow via AEM adapter.<BR />We've learned that 3 configuration steps are required at AEM:</P><P><FONT face="courier new,courier">AEM Broker Service:&nbsp;</FONT>enable OAuth Authentication<BR /><FONT face="courier new,courier">AEM Broker Manager:&nbsp;</FONT>create OAuth Profile<BR /><FONT face="courier new,courier">AEM Broker Manager:&nbsp;</FONT>define default OAuth Profile</P><P>And we've learned how to configure the AEM adapter for an iFlow receiver channel:<BR /><FONT face="courier new,courier">CPI Monitoring:</FONT> Create security artifact for "Client Credentials"<BR /><FONT face="courier new,courier">CPI iFlow AEM adapter:</FONT> use the security artifact for OAuth2 authentication.<BR /><FONT face="courier new,courier">CPI iFlow AEM adapter:</FONT> Connection details are copied from "Connection" tab in AEM.</P><P>In this blog post we've used XSUAA as Authorization Server.<BR />We've focused on the OAuth flow "Client Credentials".</P><H2 id="toc-hId-1923215647">Links</H2><P>OAuth spec <A href="https://datatracker.ietf.org/doc/html/rfc6749" target="_blank" rel="nofollow noopener noreferrer">https://datatracker.ietf.org/doc/html/rfc6749</A></P><P>AEM docu <A href="https://help.pubsub.em.services.cloud.sap/Cloud/cloud-lp.htm" target="_blank" rel="nofollow noopener noreferrer">https://help.pubsub.em.services.cloud.sap/Cloud/cloud-lp.htm</A></P><P><span class="lia-unicode-emoji" title=":glowing_star:">🌟</span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-05-23T10:22:36.147000+02:00 https://community.sap.com/t5/sap-codejam-blog-posts/sap-codejam-roadshow-2024-latin-america-edition-august-8th-21st-2024/ba-p/13710015 SAP CodeJam Roadshow 2024 - Latin America edition 🇧🇷 🇨🇱 🇦🇷 🇨🇴 (August 8th - 21st 2024) 2024-05-24T08:00:00.056000+02:00 ajmaradiaga https://community.sap.com/t5/user/viewprofilepage/user-id/107 <P>¡Hola SAP Developers!</P><P>I got some exciting news to share with you. Similar to the European Roadshow that our colleagues&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/139">@thomas_jung</a> and&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/97">@RichHeilman</a> have done in the past, this time, <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/148">@josh_bentley</a>&nbsp;and I will hit the road for the first-ever SAP CodeJam Roadshow in Latin America.&nbsp; We will have 4 stops on the roadshow&nbsp;<span class="lia-unicode-emoji" title=":brazil:">🇧🇷</span> <span class="lia-unicode-emoji" title=":chile:">🇨🇱</span>&nbsp;<span class="lia-unicode-emoji" title=":argentina:">🇦🇷</span> <span class="lia-unicode-emoji" title=":colombia:">🇨🇴</span> from August 8th - 21st 2024, doing a total of eight CodeJams, 2 per location :-).Event-driven integration using SAP Integration Suite, advanced event mesh.<BR /><BR /></P><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FfcasG0VbncQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DfcasG0VbncQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FfcasG0VbncQ%2Fhqdefault.jpg&amp;key=b0d40caa4f094c68be7c29880b16f56e&amp;type=text%2Fhtml&amp;schema=youtube" width="637" height="358" scrolling="no" title="SAP CodeJam Roadshow 2024 - Latin America edition 🇧🇷 🇨🇱 🇦🇷 🇨🇴 (August 8th - 21st 2024)" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><H3 id="toc-hId-1144632799">Event-driven integration with SAP Integration Suite, advanced event mesh</H3><P>This SAP CodeJam instance will be about event-driven architectures focusing on SAP Integration Suite, advanced event mesh. During the CodeJam, we will cover different technologies/tools: SAP Integration Suite, advanced event mesh, SAP Cloud Integration, SAP Business Application Studio, CloudEvents, and Node.js.</P><H3 id="toc-hId-948119294">SAP Build: Create apps and processes without code</H3><P data-unlink="true"><SPAN>This&nbsp;<A class="" href="https://groups.community.sap.com/t5/sap-codejam/gh-p/code-jam" target="_blank" rel="noopener noreferrer">SAP CodeJam</A>&nbsp;event will give you a hands-on experience with SAP Build for building apps and business processes without code (Low Code/No Code).&nbsp;</SPAN></P><P>You will get to know the environment by creating:</P><UL><LI>A business app for an online store (<STRONG><FONT color="#800080">SAP Build Apps</FONT>).</STRONG></LI><LI>A business process for approving purchases (<STRONG><FONT color="#800080">SAP Build Process Automation</FONT>).</STRONG></LI><LI>We will also demo desktop automations and a business site in which you can embed the app (<STRONG><FONT color="#800080">SAP Build Work Zone</FONT>).</STRONG></LI></UL><H3 id="toc-hId-751605789"><STRONG>SAP CodeJam events part of the roadshow (Register Now!)</STRONG></H3><P>Below is a listing of the SAP CodeJam events on the roadshow schedule:</P><TABLE width="718px"><TBODY><TR><TD width="176.733px"><P><STRONG>Dates</STRONG></P></TD><TD width="270.6px"><P><STRONG>CodeJam topic</STRONG></P></TD><TD width="224.683px"><P><STRONG>Location</STRONG></P></TD><TD width="44.9833px"><P><STRONG>Registration<BR /></STRONG></P></TD></TR><TR><TD width="176.733px"><P>8 August</P></TD><TD width="270.6px"><P>Event-driven integrations with SAP Integration Suite, advanced event mesh</P></TD><TD width="224.683px"><P>São Paulo, Brazil <span class="lia-unicode-emoji" title=":brazil:">🇧🇷</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/event-driven-integrations-with-sap-integration-suite-advanced-event-mesh/ev-p/13710583" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>9 August</P></TD><TD width="270.6px"><P>SAP Build: Create Apps and Processes Without Code</P></TD><TD width="224.683px"><P>São Paulo, Brazil <span class="lia-unicode-emoji" title=":brazil:">🇧🇷</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/sap-build-create-apps-and-processes-without-code-s%C3%A3o-paulo-brazil/ev-p/13710605" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>12 August</P></TD><TD width="270.6px"><P>Event-driven integrations with SAP Integration Suite, advanced event mesh</P></TD><TD width="224.683px"><P>Santiago, Chile <span class="lia-unicode-emoji" title=":chile:">🇨🇱</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/event-driven-integrations-with-sap-integration-suite-advanced-event-mesh/ev-p/13710613" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>13 August</P></TD><TD width="270.6px"><P>SAP Build: Create Apps and Processes Without Code</P></TD><TD width="224.683px"><P>Santiago, Chile <span class="lia-unicode-emoji" title=":chile:">🇨🇱</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/sap-build-create-apps-and-processes-without-code-santiago-chile/ev-p/13710617" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>15 August</P></TD><TD width="270.6px"><P>Event-driven integrations with SAP Integration Suite, advanced event mesh</P></TD><TD width="224.683px"><P>Buenos Aires, Argentina <span class="lia-unicode-emoji" title=":argentina:">🇦🇷</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/event-driven-integrations-with-sap-integration-suite-advanced-event-mesh/ev-p/13710622" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>16 August</P></TD><TD width="270.6px"><P>SAP Build: Create Apps and Processes Without Code</P></TD><TD width="224.683px"><P>Buenos Aires, Argentina <span class="lia-unicode-emoji" title=":argentina:">🇦🇷</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/sap-build-create-apps-and-processes-without-code-buenos-aires-argentina/ev-p/13710626" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>20 August</P></TD><TD width="270.6px"><P>Event-driven integrations with SAP Integration Suite, advanced event mesh</P></TD><TD width="224.683px"><P>Bogotá, Colombia <span class="lia-unicode-emoji" title=":colombia:">🇨🇴</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/event-driven-integrations-with-sap-integration-suite-advanced-event-mesh/ev-p/13710631" target="_self">Link</A></P></TD></TR><TR><TD width="176.733px"><P>21 August</P></TD><TD width="270.6px"><P>SAP Build: Create Apps and Processes Without Code</P></TD><TD width="224.683px"><P>Bogotá, Colombia <span class="lia-unicode-emoji" title=":colombia:">🇨🇴</span></P></TD><TD width="44.9833px"><P><A href="https://community.sap.com/t5/sap-codejam/sap-build-create-apps-and-processes-without-code-bogota-colombia/ev-p/13710641" target="_self">Link</A></P></TD></TR></TBODY></TABLE><P>Make sure to register to secure your place. It is likely that the places available will go fast.</P><P>&nbsp;</P><P>What if the CodeJam topics do not cover the SAP technology that you focus on? We may organise additional local events just to get together and have a chat.... similar to an <A href="https://community.sap.com/t5/welcome-corner-blog-posts/sap-stammtisch-what-is-it-about/ba-p/128787" target="_self">SAP Stammstich</A>.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="roadshow-2024-lac.jpg" style="width: 562px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/116385iCAC47FF3ACB10E13/image-size/large?v=v2&amp;px=999" role="button" title="roadshow-2024-lac.jpg" alt="roadshow-2024-lac.jpg" /></span></P><P>See you all somewhere in Latin America on the roadshow!</P> 2024-05-24T08:00:00.056000+02:00 https://community.sap.com/t5/technology-blogs-by-members/automatically-update-ssl-certificates-before-they-expire-in-sap-cpi/ba-p/13716756 Automatically update SSL Certificates before they expire in SAP CPI 2024-05-30T10:58:32.883000+02:00 SertapAvci https://community.sap.com/t5/user/viewprofilepage/user-id/180306 <P>I will explain how to automatically install SSL certificates on CPI using SAP's APIs.You can follow the steps below to set a timer and have it loaded automatically, without having to manually check whether it has expired or not.</P><H3 id="toc-hId-1144818397"><STRONG>Automatically update system certificates before they expire with SAP CPI and Groovy (openssl command)</STRONG></H3><P>Instead of manually updating the certificate, we can automatically install the certificate before it expires with this API created by SAP.</P><P>&nbsp;</P><P>You can use CPI APIs to update a certificate in Keystore.</P><P>In this scenario, we will perform a <STRONG>PUT</STRONG> operation to the <STRONG>/CertificateResources </STRONG>path of the CPI API below.</P><P><STRONG>&nbsp;</STRONG></P><TABLE><TBODY><TR><TD width="141px" height="50px"><P><STRONG>Method</STRONG></P></TD><TD width="369px" height="50px"><P><STRONG>Resource Path</STRONG></P></TD></TR><TR><TD width="141px" height="50px"><P>PUT</P></TD><TD width="369px" height="50px"><P>/CertificateResources('{Hexalias}')/$value</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_0-1716985798111.png" style="width: 840px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117081i60A7B2AC601059C2/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_0-1716985798111.png" alt="sertapavci1_0-1716985798111.png" /></span></P><P>We must convert the name (alias) of the certificate we want to update in CPI KeyStore to hexadecimal.</P><P>In this scenario, we will update the certificate for<STRONG> <EM>facebook</EM></STRONG></P><P>hexadecimal value for <STRONG><EM>facebook</EM></STRONG>: <STRONG><EM>66616365626F6F6B</EM></STRONG></P><P>Note: For hexadecimal format, you can use text to hexadecimal converter online.</P><P>The URL to be sent in the put operation:</P><P>https://&lt;host address&gt;/api/v1/CertificateResources(‘<EM>66616365626F6F6B</EM>)/$value?fingerprintVerified=true&amp;returnKeystoreEntries=false&amp;update=true</P><P>When you test the service with the hexadecimal value in Postman, you can manually import and update the certificate.</P><P>The current content of the certificate is written to the Request Body:</P><P>For Example:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>[---Begin Certificate----] AHcAdv+IPwq2..... ..... ..... 1tIQYIeaHKDHPA== [---End Certificate----]</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>Header, Params and Body fields are defined as in the service document.</P><P>Header:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_1-1716985970986.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117082i628674902D809C49/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_1-1716985970986.png" alt="sertapavci1_1-1716985970986.png" /></span></P><P>Request Body:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_2-1716985981932.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117083iD54F2A250E23BF91/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_2-1716985981932.png" alt="sertapavci1_2-1716985981932.png" /></span></P><P>We will now do the same operation we did manually in Postman in CPI using SAP's API.</P><P>The steps to be taken in CPI for this process are as follows.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="sertapavci1_3-1716985999819.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117084i427BFAF96A22486B/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_3-1716985999819.png" alt="sertapavci1_3-1716985999819.png" /></span></P><P>First, we get FetchToken to log into CPI.</P><P>We write the following information for Get Token.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_4-1716986036240.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117085i8F069AACBFBCA104/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_4-1716986036240.png" alt="sertapavci1_4-1716986036240.png" /></span></P><P>A user authorized in CPI is defined and the CPI link is written in the Address field.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_5-1716986053909.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117086i1858107DD73C88AA/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_5-1716986053909.png" alt="sertapavci1_5-1716986053909.png" /></span></P><P>&nbsp;</P><P>In the next step, we will check the SSL/TLS certificate of the server named " graph.facebook.com " with groovy and obtain the current certificate.</P><P>Code detail is as follows:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-java"><code>import java.security.cert.X509Certificate import java.util.Base64 import javax.net.ssl.SSLPeerUnverifiedException import javax.net.ssl.SSLSession import javax.net.ssl.SSLSocket import javax.net.ssl.SSLSocketFactory import com.sap.gateway.ip.core.customdev.util.Message def processData(Message message) { try { def factory = SSLSocketFactory.getDefault() as SSLSocketFactory def socket = factory.createSocket("graph.facebook.com", 443) as SSLSocket // Connect to the peer def session = socket.getSession() X509Certificate cert = session.peerCertificates[0] as X509Certificate def sDNName = cert.issuerDN.name // Server's DN Name def sDEREncoded = Base64.getEncoder().encodeToString(cert.encoded) // Set Properties message.setProperty("sDNName", sDNName) message.setProperty("sDEREncoded", sDEREncoded) return message } catch (SSLPeerUnverifiedException e) { throw new Exception("graph.facebook.com did not present a valid cert.") } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>Then we add a new content modifier.</P><P>Header details:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_6-1716986184244.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117089i8F17C2B32F899655/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_6-1716986184244.png" alt="sertapavci1_6-1716986184244.png" /></span></P><P>We store the certificate we received in our body.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_7-1716986198207.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117090i980BF0EF64ACA27B/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_7-1716986198207.png" alt="sertapavci1_7-1716986198207.png" /></span></P><P>&nbsp;</P><P>Put service details as follows:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_8-1716986198214.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117091iFDBF8E0BE90B0448/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_8-1716986198214.png" alt="sertapavci1_8-1716986198214.png" /></span></P><P>The part that should not be skipped here is; Http Session Reuse option should be On Exchange.</P><P>This option enables Http session reuse. More than one message can be exchanged with one http session. Since there will be no re-authentication in the second message, subsequent calls will be made faster.</P><P>You can find detailed information about this subject on this blog.</P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/cloud-integration-how-to-configure-session-handling-in-integration-flow/ba-p/13325908" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/cloud-integration-how-to-configure-session-handling-in-integration-flow/ba-p/13325908</A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="sertapavci1_9-1716986264158.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117092iD9C0D9FD33DE79E0/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_9-1716986264158.png" alt="sertapavci1_9-1716986264158.png" /></span></P><P>After saving and deploying the integration, we can view it from the logs.</P><P>In the following section, we write the sDEREncode of the certificate to the body and thus the certificate in the keystore is updated.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_10-1716986291402.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117093i5331539DE2BE6BA8/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_10-1716986291402.png" alt="sertapavci1_10-1716986291402.png" /></span></P><P>Certification dates before operation</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_11-1716986318095.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117094i0F2316D8A2CAE1CC/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_11-1716986318095.png" alt="sertapavci1_11-1716986318095.png" /></span></P><P>When we run the integration, it is updated as follows:</P><P>You can understand that the imported certificate has changed when the date below is updated.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sertapavci1_12-1716986337233.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/117095iFCD793B77FD59C00/image-size/large?v=v2&amp;px=999" role="button" title="sertapavci1_12-1716986337233.png" alt="sertapavci1_12-1716986337233.png" /></span></P> 2024-05-30T10:58:32.883000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/duplication-of-target-nodes-in-integration-advisor-leaf-nodes/ba-p/13610330 Duplication of Target Nodes in Integration Advisor (Leaf Nodes) 2024-06-12T11:03:18.395000+02:00 stefan_boller https://community.sap.com/t5/user/viewprofilepage/user-id/196798 <H2 id="toc-hId-986923869">Introduction</H2><P>Recently, we have introduced a new feature in Integration Advisor for the duplication of target nodes. This feature allows the duplication of leaf as well as group nodes of a target Message Implementation Guideline (MIG) in the Message Guideline (MAG) editor. This feature helps in special mapping situations where you have two sources which must be mapped to (multiple instances of) the same target node.</P><P>In this blog post, I will show a scenario which illustrates some of the benefits of this new feature when applying it to the duplication of leaf nodes. In a <A title="Duplication of Target Nodes in Integration Advisor (Group Nodes)" href="https://community.sap.com/t5/technology-blogs-by-sap/duplication-of-target-nodes-in-integration-advisor-group-nodes/ba-p/13589709" target="_blank">previous article</A>, a scenario with group nodes was presented.</P><H2 id="toc-hId-790410364">Scenario</H2><P>We use a similar scenario like in the&nbsp;<A title="Duplication of Target Nodes in Integration Advisor (Group Nodes)" href="https://community.sap.com/t5/technology-blogs-by-sap/duplication-of-target-nodes-in-integration-advisor-group-nodes/ba-p/13589709" target="_blank">previous article</A>: Assume you have a source MIG based on UN/EDIFACT message ORDERS (version <SPAN class="">D.21B S3, e.g.)&nbsp;</SPAN>which shall be mapped to an SAP IDoc&nbsp;<SPAN>ORDERS.ORDERS05. But now we consider the mapping between the date time segments (the document date) in the header. You agreed with your partner, which sends the UN/EDIFACT ORDERS message, that they can use one of two date time formats: CCYYMMDD or CCYYMMDDHHMMSS. However, on your own side, which receives the SAP IDoc ORDERS.ORDERS05, you want to have both the date (DATUM) and the time field (UZEIT) filled, the latter set to 120000 (noon) by default, if the sender doesn't specify a time. Furthermore, you again want to use Integration Advisor's <A title="Date Time Conversion" href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/date-time-conversion" target="_blank" rel="noopener noreferrer">Date Time Conversion</A> for the mapping:<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_0-1717678327781.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120359iF0E482C6CD7E328F/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_0-1717678327781.png" alt="stefan_boller_0-1717678327781.png" /></span></P><H2 id="toc-hId-593896859"><SPAN>Solution</SPAN></H2><P>Mapping in a classical way, you would map source node 2380 to both target nodes DATUM and UZEIT. Because of the two different source formats, you would need to implement two mapping functions (e.g. using if-statements) and wouldn’t be able to make use of the in-built date time conversion.</P><P>Integration Advisor offers you here a more elegant solution: In the Edifact source MIG, you can qualify node 2380 (Date or time) based on the value of node 2379 (Date or time format code). As a result, your source MIG structure now shows two different nodes 2380 [2379 = 102] and 2380 [2379 = 204]. For each of the nodes, the date time format is fixed and known. Please note that in the payload only one of the 2380 nodes will be filled.</P><P>Now you can use duplication of leaf target nodes in your mapping: Duplicate the DATUM field as well as the UZEIT field (see <A title="Duplication of Target Nodes" href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/mapping-source-and-target-nodes#duplicate-target-nodes" target="_blank" rel="noopener noreferrer">Duplicate Target Nodes</A>) of the target MIG and map the source field 2380 [2378 = 102] to the first instances and the source field 2380 [2379 = 204] to the second instances:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_1-1717678941786.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120364iFD92AB292B1301A6/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_1-1717678941786.png" alt="stefan_boller_1-1717678941786.png" /></span></P><P>Now switch all four mappings to "Date Time Mapping":</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_0-1717681555125.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120370i050A63C72EEB6CA0/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_0-1717681555125.png" alt="stefan_boller_0-1717681555125.png" /></span></P><P>And select the right date time formats, e.g.:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_1-1717681779568.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120374iA3E1062760D305D6/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_1-1717681779568.png" alt="stefan_boller_1-1717681779568.png" /></span></P><P>In this example you can also see how you can specify fixed values for target date time fields, for which there is no source field available. Now you can simulate the mapping with the attached example payloads:</P><OL><LI>&nbsp;<A title="Example Payload with DTM 102" href="https://community.sap.com/t5/blogs/blogworkflowpage/blog-id/technology-blog-sap/article-id/170248?attachment-id=695349" target="_self">Example with DTM in format 102</A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_1-1717683203122.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120383i71D56221001DF715/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_1-1717683203122.png" alt="stefan_boller_1-1717683203122.png" /></span></LI><LI><A title="Example Payload DTM 204" href="https://community.sap.com/t5/forums/editpage/board-id/technology-blog-sap/message-id/170248?attachment-id=695350" target="_self">Example with DTM in format 204</A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_boller_0-1717683098382.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120382i54D77BEBA299507F/image-size/large?v=v2&amp;px=999" role="button" title="stefan_boller_0-1717683098382.png" alt="stefan_boller_0-1717683098382.png" /></span></LI></OL><H2 id="toc-hId-397383354">Summary</H2><P><SPAN>In this blog article we showed how we can use the duplicate target nodes feature for solving a mapping challenge which involves leaf nodes in contrast to the&nbsp;<A title="Duplication of Target Nodes in Integration Advisor (Group Nodes)" href="https://community.sap.com/t5/technology-blogs-by-sap/duplication-of-target-nodes-in-integration-advisor-group-nodes/ba-p/13589709" target="_blank">previous article</A>, which considered group nodes. We also would be happy to know more about your use cases for this new feature.</SPAN><BR /><SPAN>Please, share your ideas and feedback in a comment. Furthermore, you can follow the&nbsp;</SPAN><A href="https://community.sap.com/topics/integration-suite" target="_blank">SAP Integration Suite topic page</A><SPAN>&nbsp;to get to know more about Integration Suite in general, or read other posts about </SPAN><A href="https://blogs.sap.com/tag/integration-advisor/" target="_blank" rel="noopener noreferrer">Integration Advisor</A><SPAN>. You can also follow my profile if you want to read similar content in the future.</SPAN></P> 2024-06-12T11:03:18.395000+02:00 https://community.sap.com/t5/spend-management-blogs-by-sap/concur-emea-fusion-2024-event-recap/ba-p/13728300 Concur EMEA Fusion 2024 Event Recap 2024-06-12T14:44:10.723000+02:00 yunhsuanlin https://community.sap.com/t5/user/viewprofilepage/user-id/151138 <P>On May 16 2024, SAP Concur hosted Fusion Exchange EMEA in London and I was honored to have the opportunity to attend this year. It was nothing short of an extraordinary experience! We have around 600 onsite attendance and the event was packed with insightful presentations, innovative demonstrations, and invaluable networking opportunities that left me feeling inspired and excited about the future of our industry.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yunhsuanlin_5-1718195647439.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122512iB071893E71423E26/image-size/medium?v=v2&amp;px=400" role="button" title="yunhsuanlin_5-1718195647439.jpeg" alt="yunhsuanlin_5-1718195647439.jpeg" /></span></P><P><STRONG>Keynote Highlights: The Power of AI in Spend Management</STRONG></P><P>One of the standout moments of the event was Fred Fredericks' keynote demo, which truly showcased the transformative potential of AI in the realm of spend management. Fred demonstrated how artificial intelligence can be harnessed to analyze massive volumes of receipts, significantly enhancing the efficiency and accuracy of our Spend Control Tower. This advanced capability not only streamlines the process but also provides deeper insights into business data, ultimately driving better decision-making and cost savings for our customers.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yunhsuanlin_6-1718195647472.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122513i0819076EEF4BB594/image-size/medium?v=v2&amp;px=400" role="button" title="yunhsuanlin_6-1718195647472.jpeg" alt="yunhsuanlin_6-1718195647472.jpeg" /></span></P><P>AI's role in travel policy compliance was another highlight. By leveraging AI, we can ensure that travel policies are adhered to more rigorously, reducing instances of non-compliance and associated costs. Gen AI is already embedded in Concur request to provide intelligent cost estimates for trip planning.</P><P>Furthermore, AI's ability to understand personal travel preferences offers a seamless and personalized experience for our users, making business travel more enjoyable and efficient.</P><P><STRONG>Session Highlights: <A href="https://www.youtube.com/watch?v=bWii9LiN1aU" target="_self" rel="nofollow noopener noreferrer">The New Travel Experience</A></STRONG></P><P>As travel continues to evolve, we are dedicated to creating new and improved experiences for our users. We have enhanced the user experience (UX) to make our mobile app more intuitive and now offer sustainability travel options for our customers. Our travel search capabilities are now more streamlined, allowing companies the freedom to choose from a diverse range of suppliers, sources, and content to meet global travel requirements. Additionally, with Microsoft integration, users can easily share their Concur Travel itineraries with colleagues or join the same trip, enhancing collaboration and convenience.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yunhsuanlin_7-1718195647485.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122511iBBA0EB720D045BD5/image-size/medium?v=v2&amp;px=400" role="button" title="yunhsuanlin_7-1718195647485.png" alt="yunhsuanlin_7-1718195647485.png" /></span></P><P><STRONG>Engaging with Customers: A Source of Inspiration</STRONG></P><P>Beyond the impressive technology and solutions showcased, what truly made Concur EMEA Fusion 2024 special was the opportunity to engage with our customers. I had the pleasure of participating in numerous insightful conversations, each offering a unique perspective and highlighting various challenges and opportunities within our field. We discussed topics such as invoice field matching, SAP ICS for Concur Invoice, and SuccessFactors Integration to Concur. Our customers expressed a keen interest in upgrading their integration strategies, making these discussions particularly valuable and forward-looking. These interactions are incredibly valuable, as they inspire us to continue innovating and improving our offerings to better meet the needs of our users.</P><P>We are also grateful for the feedback indicating that 97% of our attendees rated the educational sessions as good. Also a huge kudos to my amazing booth staffing colleagues who made this event such a success.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yunhsuanlin_8-1718195647505.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122516iDBCD5C257B94FA2A/image-size/medium?v=v2&amp;px=400" role="button" title="yunhsuanlin_8-1718195647505.jpeg" alt="yunhsuanlin_8-1718195647505.jpeg" /></span></P><P><STRONG>Looking Ahead: Continued Innovation and Growth</STRONG></P><P>As I reflect on my experience at Concur EMEA Fusion 2024, I am filled with optimism and excitement for the future. The advancements in AI, our new partnership with Mastercard, and the integration with our rail partners reaffirm our direction and motivate us to continue pushing the boundaries. In conclusion, Concur EMEA Fusion 2024 was more than just an event; it was a testament to the power of innovation, collaboration, and customer-centricity. Thank you to everyone who made this experience unforgettable, and here's to continued growth and innovation in the years to come!</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yunhsuanlin_9-1718195647524.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122517iDB8F261798642A6A/image-size/medium?v=v2&amp;px=400" role="button" title="yunhsuanlin_9-1718195647524.jpeg" alt="yunhsuanlin_9-1718195647524.jpeg" /></span></P><P>The sessions presentations could be downloaded <A href="https://go.concur.com/FXEMEA2024_SessionPresentations.html" target="_self" rel="nofollow noopener noreferrer">here</A></P> 2024-06-12T14:44:10.723000+02:00 https://community.sap.com/t5/technology-blogs-by-members/performance-form-custom-element-update-from-user-entity-via-odata-api/ba-p/13727102 Performance form custom element update from User entity via OData API upsert in CPI 2024-06-12T21:49:38.682000+02:00 ankitkumarpatel https://community.sap.com/t5/user/viewprofilepage/user-id/936889 <P><STRONG>Introduction:</STRONG></P><P style=" text-align : justify; ">Performance evaluation and performance management entail multiple steps for an employee within SuccessFactors. Beginning with Assessment, Signature, and Completion, the form template progresses through various evaluation stages for employees. The performance form template is configured to extract employee data such as LastName, FirstName, Department, Division, HireDate, Business Title, etc. While some information suffices for performance evaluation, for larger companies, considering additional details is crucial, which may not be directly fetched from the form template or available within its general settings.</P><P style=" text-align : justify; ">In such cases, custom sections within the form templates are utilized to incorporate the necessary data. This is achieved through custom elements sections nested under custom sections in the Performance Review Template.</P><P style=" text-align : justify; ">In this blog, we will delve into the steps to create custom elements in the Performance Review Template and allocate the requisite field permissions to facilitate its integration via the OData API, utilizing CPI as middleware.</P><P><STRONG>Objective:</STRONG></P><P style=" text-align : justify; ">The purpose of this blog is to illustrate the necessary steps for creating and updating custom field sections in performance forms and templates, which cannot be done via basic upsert or user sync jobs in the Integration Center. To address this, automation and updates through CPI can be an ideal approach for updating custom sections. The custom field section in performance forms consists of user-created objects, allowing for the input of any desired values during the completion of an employee's performance form.</P><P style=" text-align : justify; ">In our scenario, we assume there is data requiring updates from the User Entity to the custom Element form section. While manual updating is feasible in small-scale scenarios, it becomes exceedingly challenging for a significant number of employees. Therefore, automation is essential to facilitate data transition from User MDF to CustomFormSection.</P><P style=" text-align : justify; ">To accomplish this, CPI serves as a middleware to import the data and facilitate updates to the CustomFormSection. The image below illustrates the one-to-one mapping, demonstrating how CPI replicates values between these two entities.</P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 1: Demonstration of fields that need to be moved from User MDF to CustomFormSection in FormContent" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121844i24885CC3991B01E4/image-size/large?v=v2&amp;px=999" role="button" title="Picture1.jpg" alt="Fig 1: Demonstration of fields that need to be moved from User MDF to CustomFormSection in FormContent" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 1: Demonstration of fields that need to be moved from User MDF to CustomFormSection in FormContent</span></span></P><P><STRONG>Implementation:</STRONG></P><P style=" text-align : justify; ">The below architecture diagram shows the complete expectation and execution of the CPI job. The left-hand section is the query section which are the calls that CPI made to get the current data from FormContent (All performance form data of an employee) and the existing data in User MDF custom fields.</P><P style=" text-align : justify; ">The right-hand section shows the upsert operation performed by the CPI job. If any custom field data exists for the employee, then it gets replicated into the custom fields section by using the entity FormCustomSection to upsert all custom elements at once. (The screenshot for the same upsert is shown later down the blog).</P><P style=" text-align : justify; ">The CPI job can be scheduled so that all the delta changes or new forms' custom sections can get updated with the relevant data.</P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 2: Architecture for FormCustomSection update from User MDF via CPI" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121845i1183519CCC2A6125/image-size/large?v=v2&amp;px=999" role="button" title="Picture2.png" alt="Fig 2: Architecture for FormCustomSection update from User MDF via CPI" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 2: Architecture for FormCustomSection update from User MDF via CPI</span></span></P><P style=" text-align: center; ">&nbsp;</P><P style=" text-align : justify; ">For the custom elements permission setting navigate to Admin Center/Manage Templates/&lt;Choose your template name&gt; in SuccessFactors, under the custom field and section the custom elements are created as follows,</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 3: Custom Elements created for the custom section." style="width: 751px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121846i6C1114FA7E343752/image-size/large?v=v2&amp;px=999" role="button" title="Picture3.jpg" alt="Fig 3: Custom Elements created for the custom section." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 3: Custom Elements created for the custom section.</span></span></P><P>&nbsp;</P><P>For the section field permission select Type: Write and All for other API roles, this is shown below for example.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 4: Field Permission setting for Custom Fields created under the custom section." style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121848i4280B09E3E7C6785/image-size/large?v=v2&amp;px=999" role="button" title="Picture4.png" alt="Fig 4: Field Permission setting for Custom Fields created under the custom section." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 4: Field Permission setting for Custom Fields created under the custom section.</span></span></P><P>&nbsp;<SPAN>The section permission field can also be defined so that the API user can update it only when this gets launched in the inbox, and it is at step LAUNCH.</SPAN></P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 5: Custom Section Permission settings" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121860i391A58EF74D5A43D/image-size/large?v=v2&amp;px=999" role="button" title="Picture5.png" alt="Fig 5: Custom Section Permission settings" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 5: Custom Section Permission settings</span></span></P><P style=" text-align: center; ">&nbsp;</P><P style=" text-align : justify; "><SPAN>The newly created custom section will look somewhat like as shown below, and the values will be populated from User Entity (for ex. customString1 … 5) via CPI.</SPAN></P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 6: Custom Section in Performance Form" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121890i0D070AB8C4B5EF0C/image-size/large?v=v2&amp;px=999" role="button" title="Picture7.png" alt="Fig 6: Custom Section in Performance Form" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 6: Custom Section in Performance Form</span></span></P><P style=" text-align : justify; "><SPAN>To get and update the values related to each Form we will query the Entity FormContent from the SuccessFactors ODATA V2 API adaptor, see the screenshot below for reference. The FilterFormContent includes the formTemplate Id and lastModifiedDateTime string as this is dynamically set in each execution.</SPAN></P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 7: Odata API call to FormContent" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121980i1566D49C729ECB63/image-size/large?v=v2&amp;px=999" role="button" title="Picture8.png" alt="Fig 7: Odata API call to FormContent" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 7: Odata API call to FormContent</span></span></P><P>&nbsp;</P><P style=" text-align : justify; "><SPAN>After getting data from FormContent the same payload can be used to get User value, by navigating to FormContent/formHeader/FormHeader/formSubject/User/custom01 … custom05 the custom values can be extracted, and the payload can be prepared to update the customFormElement for each custom Elements created in the above steps.</SPAN></P><P style=" text-align : justify; ">To upsert the custom element the Upsert (POST) is used where the entity can be selected as FormCustomSection, this entity can be directly used to update all your custom elements all at once,</P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 8: OData API for Upsert FormCustomSection" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121983i27D33432D86FD7C2/image-size/large?v=v2&amp;px=999" role="button" title="Picture9.png" alt="Fig 8: OData API for Upsert FormCustomSection" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 8: OData API for Upsert FormCustomSection</span></span></P><P>&nbsp;</P><P>The payload FormCustomSection is prepared from FormContent and the payload is attached below to refer,</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>&lt;FormCustomSection&gt; &lt;FormCustomSection&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;customElement&gt; &lt;FormCustomElement&gt; &lt;elementKey&gt;ele_1&lt;/elementKey&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;itemId&gt;-1&lt;/itemId&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;valueKey&gt;wf_sect_1_e_ele_10&lt;/valueKey&gt; &lt;value&gt;custom string 1&lt;/value&gt; &lt;/FormCustomElement&gt; &lt;FormCustomElement&gt; &lt;elementKey&gt;ele_2&lt;/elementKey&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;itemId&gt;-1&lt;/itemId&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;valueKey&gt;wf_sect_1_e_ele_21&lt;/valueKey&gt; &lt;value&gt;custom string 2&lt;/value&gt; &lt;/FormCustomElement&gt; &lt;FormCustomElement&gt; &lt;elementKey&gt;ele_5&lt;/elementKey&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;itemId&gt;-1&lt;/itemId&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;valueKey&gt;wf_sect_1_e_ele_52&lt;/valueKey&gt; &lt;value&gt;custom string 3&lt;/value&gt; &lt;/FormCustomElement&gt; &lt;FormCustomElement&gt; &lt;elementKey&gt;ele_3&lt;/elementKey&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;itemId&gt;-1&lt;/itemId&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;valueKey&gt;wf_sect_1_e_ele_33&lt;/valueKey&gt; &lt;value&gt;custom string 4&lt;/value&gt; &lt;/FormCustomElement&gt; &lt;FormCustomElement&gt; &lt;elementKey&gt;ele_4&lt;/elementKey&gt; &lt;sectionIndex&gt;1&lt;/sectionIndex&gt; &lt;itemId&gt;-1&lt;/itemId&gt; &lt;formContentId&gt;6916&lt;/formContentId&gt; &lt;formDataId&gt;4352&lt;/formDataId&gt; &lt;valueKey&gt;wf_sect_1_e_ele_44&lt;/valueKey&gt; &lt;value&gt;custom string 5&lt;/value&gt; &lt;/FormCustomElement&gt; &lt;/customElement&gt; &lt;/FormCustomSection&gt; &lt;/FormCustomSection&gt;</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P style=" text-align : justify; ">As per the definition of FormCustomElement the elementKey, valueKey forms the unique to update a particular customElement, and combining formDataId and formContentId forms the unique value to update the customElement only for a particular employee. The above payload upsert will respond to successful upsert for elementKey, valueKey formDataId, and formContentId as a key pair.</P><P style=" text-align : justify; ">The mapping for the above payload can be shown below to understand the field's association for each custom element with the payload after the upsert.</P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 9: Output mapping of each custom element" style="width: 718px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121985i54F2C456C1D43100/image-size/large?v=v2&amp;px=999" role="button" title="Picture10.png" alt="Fig 9: Output mapping of each custom element" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 9: Output mapping of each custom element</span></span></P><P style=" text-align : left; ">&nbsp;<STRONG>Conclusion:</STRONG></P><P style=" text-align : justify; ">Thus, the custom Form section can be created and automated easily, which can be updated in a delta run from CPI. Custom section upsert enables the Route map to complete the initial launch step by itself thus eliminating the manual update of data within the form. This can be extended to re-route the form by itself by using RouteMap API. Custom Form sections add more value to Performance forms as they enable more insights for an employee to be passed down for performance evaluation. Thus, using FormCustomSection or customElement API upsert is useful to perform and set up the automation task.</P> 2024-06-12T21:49:38.682000+02:00 https://community.sap.com/t5/technology-blogs-by-members/introducing-dark-cpi-web-extension-for-sap-applications/ba-p/13728785 Introducing Dark CPI web extension For SAP Applications 2024-06-13T12:12:37.651000+02:00 incpi https://community.sap.com/t5/user/viewprofilepage/user-id/158927 <H4 id="toc-hId-1274884311">Hello Readers,</H4><P>This is my first blog. I want to share an open-source extension tool.</P><H6 id="toc-hId-1336536244">Extension provides control to change theme to dark mode for SAP CPI, SAP Build zone.</H6><DIV><SPAN>The Dark SAP CPI Web Extension is a versatile open-source tool that enhances the user interface of SAP CPI and SAP Build Work Zone. It offers a seamless transition to a dark theme, promoting a comfortable visual experience for users. In this guide, we'll show you how to use Dark CPI to get the most out of its features.</SPAN></DIV><H2 id="toc-hId-623691863"><SPAN>Key Features of Dark CPI</SPAN></H2><UL><LI><SPAN><STRONG>Ease of Use:</STRONG></SPAN><SPAN>&nbsp;Users can effortlessly switch to a dark theme, reducing eye strain.</SPAN></LI><LI><STRONG>Theme Variety:&nbsp;</STRONG><SPAN>The extension boasts a range of themes such as 'Morning Horizon', 'Evening Horizon', and 'Quartz Light', allowing users to personalize their interface according to their preference and the time of day.</SPAN></LI><LI><SPAN><STRONG>Accessibility:</STRONG></SPAN><SPAN>&nbsp;The dark theme can be activated via a simple click on the extension icon, making it easily accessible for all users.</SPAN></LI><LI><STRONG>Community Support:</STRONG><SPAN>&nbsp;Currently, there are 80+ weekly users. Thank you for the support and feedback given by you all.</SPAN></LI></UL><H2 id="toc-hId-427178358"><SPAN>Installation Guide</SPAN></H2><H3 id="toc-hId-359747572"><SPAN>Step 1: Download and Install from the Extension Store</SPAN></H3><OL><LI><SPAN>Go to the Extension Store:&nbsp;</SPAN><SPAN><A href="https://chromewebstore.google.com/detail/dark-sap-cpi/lmegddleeigeddljmdkonofmppbefneo" target="_self" rel="nofollow noopener noreferrer">Chrome Store</A>&nbsp;or&nbsp;</SPAN><A href="https://microsoftedge.microsoft.com/addons/detail/gpafgeambljleonppfbeieehlmdiffop" target="_self" rel="nofollow noopener noreferrer"><SPAN>EDGE Store</SPAN></A>&nbsp;(version 1.3 will be released very soon)</LI><LI><SPAN>Search for Dark CPI.</SPAN></LI><LI><SPAN>Click on "Add to Browser".</SPAN></LI></OL><H4 id="toc-hId-292316786"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="installation-step1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122734iA94E107022F11956/image-size/large?v=v2&amp;px=999" role="button" title="installation-step1.png" alt="installation-step1.png" /></span></SPAN></H4><H4 id="toc-hId-95803281"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="installation-step1_b.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122733iD9D260B09A5975DC/image-size/medium?v=v2&amp;px=400" role="button" title="installation-step1_b.png" alt="installation-step1_b.png" /></span></SPAN></H4><P><SPAN>Step 2: Enable the Extension</SPAN></P><P><SPAN>After installation, click on the Dark CPI icon in your browser toolbar.</SPAN></P><H4 id="toc-hId--100710224"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="installation-step2.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122735i66470F9A56AFCA70/image-size/medium?v=v2&amp;px=400" role="button" title="installation-step2.png" alt="installation-step2.png" /></span></SPAN></H4><H3 id="toc-hId--426306448"><SPAN>Alternative Installation from GitHub</SPAN></H3><OL><LI><SPAN>Visit the </SPAN><A title="Dark CPI GitHub Repository " href="https://github.com/incpi/Dark-CPI-Web-Extension" target="_self" rel="nofollow noopener noreferrer"><SPAN>Dark CPI GitHub Repository</SPAN></A></LI><LI><SPAN>Download the latest release.</SPAN></LI><LI><SPAN>Unzip the downloaded file.</SPAN></LI><LI><SPAN>Open your browser and navigate to the extensions page (e.g., </SPAN><SPAN>`chrome://extensions/`</SPAN><SPAN>).</SPAN></LI><LI><SPAN>Enable Developer Mode.</SPAN></LI><LI><SPAN>Click on "Load unpacked" and select the unzipped folder.</SPAN><H4 id="toc-hId--493737234"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="installation-step3.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122736i1E30AFAC0FFDD519/image-size/medium?v=v2&amp;px=400" role="button" title="installation-step3.png" alt="installation-step3.png" /></span></SPAN></H4></LI></OL><H3 id="toc-hId--894564827"><SPAN>How to Use Dark CPI</SPAN></H3><H5 id="toc-hId--1677884346"><SPAN>Popup on click appears as below under these conditions:</SPAN></H5><UL><LI><SPAN>If you click on Extension Icon which is besides URL if extension is pinned, or you can pin it by clicking on extension manager of browser.</SPAN></LI><LI><SPAN>If active tab is not supported,&nbsp;</SPAN><H4 id="toc-hId--1580994844"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="image.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122730iF10346E0EBC4403B/image-size/medium?v=v2&amp;px=400" role="button" title="image.png" alt="image.png" /></span></SPAN></H4></LI><LI><SPAN>It supported then you can see the name of application and current theme.</SPAN><H4 id="toc-hId--1777508349"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="image-1.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122731i066D8CC7FF04FE14/image-size/medium?v=v2&amp;px=400" role="button" title="image-1.png" alt="image-1.png" /></span></SPAN></H4></LI><LI><SPAN>Launchpad supports theme are displayed in below buttons.</SPAN><H4 id="toc-hId--1974021854"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="image-2.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122732iF709D59A90D34D6D/image-size/medium?v=v2&amp;px=400" role="button" title="image-2.png" alt="image-2.png" /></span></SPAN></H4></LI></UL><H5 id="toc-hId-1831028930"><SPAN>The options available are:</SPAN></H5><UL><LI><SPAN>Default Theme:</SPAN><SPAN>&nbsp;Provided by SAP.</SPAN></LI><LI><SPAN>Dark UI: Corresponding</SPAN><SPAN>&nbsp;dark UI to the default theme.</SPAN></LI><LI><SPAN>Old UI: Rollback</SPAN><SPAN>&nbsp;option (only visual, no functionality change).</SPAN></LI></UL><H2 id="toc-hId--1780242850"><SPAN>Applying Themes</SPAN></H2><H3 id="toc-hId-2024807934"><SPAN>1.</SPAN> <SPAN>SAP CPI (from v1.0):</SPAN></H3><UL><LI><SPAN>&nbsp;</SPAN><SPAN>Open the SAP CPI application.</SPAN></LI><LI><SPAN>&nbsp;</SPAN><SPAN>Choose your desired theme from the extension popup.</SPAN></LI><LI><SPAN>&nbsp;</SPAN><SPAN>This will enhance the SAP UI with the selected dark theme.</SPAN></LI></UL><P><SPAN>&nbsp; &nbsp;Before Theme:</SPAN></P><H4 id="toc-hId-1534891422"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cpi__dafult.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122725iC3AF3E3B79138E9A/image-size/medium?v=v2&amp;px=400" role="button" title="cpi__dafult.png" alt="cpi__dafult.png" /></span></SPAN></H4><P><SPAN>&nbsp; &nbsp;After Applying Theme:</SPAN></P><H4 id="toc-hId-1338377917"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cpi_Dark.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122726iD585C7CBF275671E/image-size/medium?v=v2&amp;px=400" role="button" title="cpi_Dark.png" alt="cpi_Dark.png" /></span></SPAN></H4><P><SPAN><STRONG>Design page of evening Horizon theme</STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="CPI design.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122724i0DCCFB81A4845FCA/image-size/medium?v=v2&amp;px=400" role="button" title="CPI design.png" alt="CPI design.png" /></span></SPAN></P><P><SPAN>&nbsp; &nbsp;Rollback Theme (Old):</SPAN></P><H4 id="toc-hId-1310048103"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cpi_old.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122727iDFDAFDAF838A2724/image-size/medium?v=v2&amp;px=400" role="button" title="cpi_old.png" alt="cpi_old.png" /></span></SPAN></H4><P>By default, the right-side navigation (home, monitor design, etc.) is open. Dark CPI will close it by default to avoid clutter.</P><UL><LI><SPAN>Navigation Open:</SPAN><SPAN>&nbsp;</SPAN></LI></UL><H4 id="toc-hId-1113534598"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cpi__dafult.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122725iC3AF3E3B79138E9A/image-size/medium?v=v2&amp;px=400" role="button" title="cpi__dafult.png" alt="cpi__dafult.png" /></span></SPAN></H4><UL><LI><SPAN>Navigation Closed:</SPAN></LI></UL><H4 id="toc-hId-917021093"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="dafult_cpi.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122728i8DA586A96B5695DA/image-size/medium?v=v2&amp;px=400" role="button" title="dafult_cpi.png" alt="dafult_cpi.png" /></span></SPAN></H4><H3 id="toc-hId-1013910595"><SPAN>2.</SPAN> <SPAN>SAP Build Work Zone (from v1.3):</SPAN></H3><UL><LI><SPAN>&nbsp;</SPAN><SPAN>Launch the SAP Build Work Zone application.</SPAN></LI><LI><SPAN>&nbsp;</SPAN><SPAN>Select your preferred theme from the extension popup.</SPAN></LI></UL><P>&nbsp; &nbsp;<STRONG>It has user settings to switch theme. Keep same theme in extension popup.</STRONG></P><P><SPAN>&nbsp; &nbsp;As you can see below, SAP does not support dark theme properly. This will enhance its UI.</SPAN></P><H4 id="toc-hId-523994083"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="default_site.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122729i2E391AF1679BAED6/image-size/medium?v=v2&amp;px=400" role="button" title="default_site.png" alt="default_site.png" /></span></SPAN></H4><P><SPAN>&nbsp; &nbsp;Before Applying Theme:</SPAN><SPAN>&nbsp;</SPAN></P><H4 id="toc-hId-327480578"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="4.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122721iB15F53729F5685DB/image-size/medium?v=v2&amp;px=400" role="button" title="4.png" alt="4.png" /></span></SPAN></H4><P><SPAN>&nbsp; &nbsp;After Applying Theme:</SPAN><SPAN>&nbsp;</SPAN></P><H4 id="toc-hId-130967073"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="3.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122722i1BB442D7D31D2900/image-size/medium?v=v2&amp;px=400" role="button" title="3.png" alt="3.png" /></span></SPAN></H4><H3 id="toc-hId-227856575"><SPAN>3.</SPAN> <SPAN>Theme Designer (from v1.3):</SPAN></H3><P><SPAN>&nbsp; &nbsp;</SPAN><SPAN>-</SPAN><SPAN> Open the Theme Designer.</SPAN></P><P><SPAN>&nbsp; &nbsp;</SPAN><SPAN>-</SPAN><SPAN> Choose your desired theme from the extension popup.</SPAN></P><P><SPAN>&nbsp; &nbsp;Before Applying Theme:</SPAN><SPAN>&nbsp;</SPAN></P><H4 id="toc-hId--262059937"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122720iED16AEB395C6B3EA/image-size/medium?v=v2&amp;px=400" role="button" title="2.png" alt="2.png" /></span></SPAN></H4><P><SPAN>&nbsp; &nbsp;After Applying Theme:</SPAN></P><H4 id="toc-hId--458573442"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122723i47096CB6BC024117/image-size/medium?v=v2&amp;px=400" role="button" title="1.png" alt="1.png" /></span></SPAN></H4><H2 id="toc-hId-99902758"><SPAN>Privacy and Transparency</SPAN></H2><P><SPAN>The extension does not collect any personal data or tenant information, ensuring user privacy. Being open-source, users are encouraged to review the source code and monitor network activity for complete transparency.</SPAN></P><H2 id="toc-hId--96610747"><SPAN>Troubleshooting Tips</SPAN></H2><P><STRONG>Theme Not Applying:&nbsp;</STRONG><SPAN>Ensure the extension is enabled and you have selected the theme from the extension popup.</SPAN></P><P><STRONG>Visual Bugs:</STRONG><SPAN>&nbsp;Report any issues on the </SPAN><A href="https://github.com/incpi/Dark-CPI-Web-Extension/issues" target="_self" rel="nofollow noopener noreferrer"><SPAN>GitHub repository</SPAN></A><SPAN>&nbsp;for prompt assistance.</SPAN></P><H2 id="toc-hId--293124252"><SPAN>Conclusion</SPAN></H2><P><SPAN>Dark CPI is your go-to extension for enhancing and customizing the look and feel of your SAP applications. With its comprehensive features, it caters to all your needs from theme customization to fixing SAP UI issues automatically. Install Dark CPI today and transform your user experience.</SPAN></P><P><SPAN>For more detailed information, visit the </SPAN><A href="https://github.com/incpi/Dark-CPI-Web-Extension" target="_self" rel="nofollow noopener noreferrer"><SPAN>Dark CPI GitHub Repository.</SPAN></A></P> 2024-06-13T12:12:37.651000+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/sap-cloud-integration-manage-artifacts-of-design-time/ba-p/13735336 SAP Cloud Integration Manage Artifacts Of Design Time 2024-06-19T03:51:11.200000+02:00 DenizZilyas https://community.sap.com/t5/user/viewprofilepage/user-id/171723 <H3 id="toc-hId-1146631742"><STRONG>Introduction :</STRONG></H3><P><STRONG>I</STRONG>n cloud integration, the processes of creating, deleting, or modifying a flow are done manually by entering the package. I will show how to perform these processes through the CPI link. The aim of this blog is to highlight the flexible structure of CPI.</P><P><EM>Required:</EM></P><UL class="lia-list-style-type-circle"><LI><STRONG>SAP BTP and Integration Suite&nbsp;</STRONG></LI></UL><H5 id="toc-hId-1208283675"><STRONG>Cloud Integration Steps:</STRONG></H5><P>To demonstrate how all the processes work, I have covered them all in a single flow. This includes flow deletion, updating, creation, and the information we can retrieve related to the flow.</P><P>For a more straightforward architecture, I utilized process calls. Based on the type of request, process calls will be executed via the router.</P><P><STRONG>The API we will use:&nbsp;</STRONG>https://{Account Short Name}-tmn.{SSL Host}.{region}.hana.ondemand.com/api/v1/IntegrationDesigntimeArtifacts</P><P><STRONG>1-&nbsp;The overall view of the flow:</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_1-1718759428048.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125242iD724A6F5695E25FD/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_1-1718759428048.png" alt="DenizZilyas_1-1718759428048.png" /></span></STRONG></P><P>&nbsp;</P><P><STRONG>Local Process 1 : POST</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_3-1718756007145.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125214i80D9E0A68DFBA770/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_3-1718756007145.png" alt="DenizZilyas_3-1718756007145.png" /></span></STRONG></P><P>&nbsp;</P><P><STRONG>Local Process 2 : PUT</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_4-1718756021553.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125215iBE9D4B4E93283A6A/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_4-1718756021553.png" alt="DenizZilyas_4-1718756021553.png" /></span></STRONG></P><P><STRONG>Local Process 3: GET</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_6-1718756102227.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125218i4FF917C5F1BF359B/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_6-1718756102227.png" alt="DenizZilyas_6-1718756102227.png" /></span></STRONG></P><P><STRONG>Local Process 4: DELETE</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_7-1718756131666.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125219i56D87207D6214E0E/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_7-1718756131666.png" alt="DenizZilyas_7-1718756131666.png" /></span></STRONG></P><P>The reason we separate with the router is that some processes require mapping, while others do not.</P><P><STRONG>2-CM_Headers&amp;Properties:</STRONG></P><P>Our service works with a CSRF token, so we need to obtain the token first. In the initial content modifier, we store the request headers of the service.</P><P><STRONG>Headers:</STRONG></P><P>&nbsp;</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_8-1718756835261.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125226i2747B30E0F167FDE/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_8-1718756835261.png" alt="DenizZilyas_8-1718756835261.png" /></span></STRONG></P><P><STRONG>Properties:</STRONG></P><P>We are storing parameters like Name, Id, PackageId, and Version in properties because we will use them in our services.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_10-1718757189049.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125228i52809D2A6A162ACA/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_10-1718757189049.png" alt="DenizZilyas_10-1718757189049.png" /></span></STRONG></P><P><STRONG>3-HTTP Fetch Token:</STRONG></P><P>A defined user must access CPI as an authorized user. After defining security materials, credentials are provided in the flow.</P><P>&nbsp;</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_9-1718756947238.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125227i16017DE16E730784/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_9-1718756947238.png" alt="DenizZilyas_9-1718756947238.png" /></span></STRONG></P><P><STRONG>4-CM_SetHeaders:</STRONG></P><P><STRONG>The service's response headers:</STRONG></P><P><STRONG>Content-type:</STRONG>application/atom+xml;type=entry;charset=utf-8</P><P><STRONG>fetch-cookie :</STRONG>${header.set-cookie}</P><P><STRONG>cookie :&nbsp;</STRONG>${header.fetch-cookie.replace("[","").replace("]","").replace("; path=/; secure; HttpOnly","").replace("path=/, ","")}</P><P>I defined "fetch cookie" to avoid getting a forbidden error due to cookies in the service.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_17-1718758080726.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125235i7FAEFEC90BD13581/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_17-1718758080726.png" alt="DenizZilyas_17-1718758080726.png" /></span></STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_11-1718757291724.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125229i77299E7C254710A3/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_11-1718757291724.png" alt="DenizZilyas_11-1718757291724.png" /></span></STRONG></P><P><STRONG>5-Router:</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_12-1718757320862.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125230i8580AA23B12382AA/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_12-1718757320862.png" alt="DenizZilyas_12-1718757320862.png" /></span></STRONG></P><P><STRONG>6- First Method : POST&nbsp;</STRONG></P><P>Since our goal is to create a flow using the POST method, here is the body we will send:</P><P>{<BR />"Name": "string",<BR />"Id": "string",<BR />"PackageId": "Id of Package"<BR />}</P><P><STRONG>Message Mapping:</STRONG></P><P>We stored the sent fields in properties in the content modifier. In the mapping, we will retrieve them from the properties.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_13-1718757608676.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125231iFCE1978266DCFC30/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_13-1718757608676.png" alt="DenizZilyas_13-1718757608676.png" /></span></STRONG></P><P><STRONG>OData V2- Connection and Processing:</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_16-1718757818495.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125234iFBEFACCBB5C28F2F/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_16-1718757818495.png" alt="DenizZilyas_16-1718757818495.png" /></span></STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_14-1718757743031.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125232i2A245CF92CC2717E/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_14-1718757743031.png" alt="DenizZilyas_14-1718757743031.png" /></span></STRONG></P><P><STRONG>Content Modifier :</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_1-1718758438890.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125237i227055244E2810C1/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_1-1718758438890.png" alt="DenizZilyas_1-1718758438890.png" /></span></STRONG></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_0-1718758409610.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125236iABD3BB5E5A401184/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_0-1718758409610.png" alt="DenizZilyas_0-1718758409610.png" /></span></STRONG></P><P>Let's try it now in Postman.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_0-1718759371068.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125241i66E2A13B056EE98B/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_0-1718759371068.png" alt="DenizZilyas_0-1718759371068.png" /></span></STRONG></P><P>&nbsp;</P><DIV><STRONG>Authorization:</STRONG></DIV><DIV>CPI Technical User&nbsp;</DIV><DIV>&nbsp;</DIV><DIV><STRONG>Body:</STRONG></DIV><DIV>&lt;Root&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Id&gt;TestFlow&lt;/Id&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Name&gt;TestFlow&lt;/Name&gt;</DIV><DIV>&nbsp; &nbsp; &lt;PackageId&gt;Testing&lt;/PackageId&gt;</DIV><DIV>&lt;/Root&gt;</DIV><DIV>&nbsp;</DIV><DIV><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_2-1718759019341.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125240i8C6E3502098EDA57/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_2-1718759019341.png" alt="DenizZilyas_2-1718759019341.png" /></span></STRONG><P><STRONG>GET METHOD:</STRONG></P><P>We will obtain information about these artifacts by providing the Id and Version details from within the package.</P><P>/api/v1/IntegrationDesigntimeArtifacts(Id='${property.Id}',Version='${property.Version}')</P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_2-1718759583926.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125243i7EA3A000B3D761F9/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_2-1718759583926.png" alt="DenizZilyas_2-1718759583926.png" /></span></STRONG><DIV class="">&nbsp;</DIV><P><STRONG>Content Modifier:</STRONG></P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_5-1718759805781.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125247i01ECA7301924F609/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_5-1718759805781.png" alt="DenizZilyas_5-1718759805781.png" /></span></STRONG><P><STRONG>Postman :</STRONG></P><DIV><DIV>&lt;Root&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Id&gt;TestFlow&lt;/Id&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Version&gt;1.0.0&lt;/Version&gt;</DIV><DIV>&lt;/Root&gt;</DIV></DIV><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_4-1718759781213.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125246i0CA3FC64F8E92026/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_4-1718759781213.png" alt="DenizZilyas_4-1718759781213.png" /></span></STRONG><P><STRONG>&nbsp;PUT METHOD:</STRONG></P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_6-1718760515861.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125251iA5D24842A4127913/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_6-1718760515861.png" alt="DenizZilyas_6-1718760515861.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_9-1718760693621.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125255i5157261E7110F5DD/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_9-1718760693621.png" alt="DenizZilyas_9-1718760693621.png" /></span></STRONG><P><STRONG>Postman:</STRONG></P><P><STRONG>Body:</STRONG></P><DIV><DIV>&lt;Root&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Name&gt;ChangingNameTestFlow&lt;/Name&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Id&gt;TestFlow&lt;/Id&gt;</DIV><DIV>&nbsp; &nbsp; &lt;Version&gt;1.0.0&lt;/Version&gt;</DIV><DIV>&lt;/Root&gt;</DIV></DIV><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_7-1718760588069.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125253i0F357EE2CE56AA6D/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_7-1718760588069.png" alt="DenizZilyas_7-1718760588069.png" /></span></STRONG><P><STRONG>&nbsp;</STRONG></P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_8-1718760649556.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125254iB28632791BC389EE/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_8-1718760649556.png" alt="DenizZilyas_8-1718760649556.png" /></span></STRONG><P><STRONG>&nbsp;DELETE METHOD:</STRONG></P><P>/api/v1/IntegrationDesigntimeArtifacts(Id='${property.Id}',Version='${property.Version}')</P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_10-1718760761577.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125256i159FCF3BB5DDE57F/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_10-1718760761577.png" alt="DenizZilyas_10-1718760761577.png" /></span></STRONG><P><STRONG>Content Modifier:</STRONG></P><P><STRONG>&nbsp;</STRONG></P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_12-1718760834785.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125258i8E399C03F2AEEF02/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_12-1718760834785.png" alt="DenizZilyas_12-1718760834785.png" /></span></STRONG><P><STRONG>Postman:</STRONG></P><P>&nbsp;<STRONG>Body:</STRONG></P><DIV><DIV><SPAN>&lt;</SPAN><SPAN>Root</SPAN><SPAN>&gt;</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; </SPAN><SPAN>&lt;</SPAN><SPAN>Id</SPAN><SPAN>&gt;</SPAN><SPAN>TestFlow</SPAN><SPAN>&lt;/</SPAN><SPAN>Id</SPAN><SPAN>&gt;</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; </SPAN><SPAN>&lt;</SPAN><SPAN>Version</SPAN><SPAN>&gt;</SPAN><SPAN>1.0.0</SPAN><SPAN>&lt;/</SPAN><SPAN>Version</SPAN><SPAN>&gt;</SPAN></DIV><DIV><SPAN>&lt;/</SPAN><SPAN>Root</SPAN><SPAN>&gt;</SPAN></DIV></DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_15-1718761274105.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125263iE81B7505EB5BF926/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_15-1718761274105.png" alt="DenizZilyas_15-1718761274105.png" /></span><P>&nbsp;</P><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DenizZilyas_14-1718760950140.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/125262iC5BE7F672A055659/image-size/large?v=v2&amp;px=999" role="button" title="DenizZilyas_14-1718760950140.png" alt="DenizZilyas_14-1718760950140.png" /></span><P><STRONG>Additional :</STRONG>&nbsp;A Groovy script exists within the subprocess to catch exceptions.I have embedded it into all local processes.Sometimes, error details don't propagate to the exception subprocess in the main flow, so you can embed them into local processes.</P><P><STRONG>References:</STRONG>&nbsp;</P><P><A title="SAP Help" href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/integration-content?locale=en-US" target="_self" rel="noopener noreferrer">https://help.sap.com/docs/cloud-integration/sap-cloud-integration/integration-content?locale=en-US</A>&nbsp;</P><P><A title="SAP Help" href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/handle-exceptions?locale=en-US&amp;q=exception%20handling" target="_self" rel="noopener noreferrer">https://help.sap.com/docs/cloud-integration/sap-cloud-integration/handle-exceptions?locale=en-US&amp;q=exception%20handling</A>&nbsp;</P></DIV><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-06-19T03:51:11.200000+02:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-create-api-to-upload-file-to-azure-blob-by-integration-suite/ba-p/13736920 How to create API to upload file to Azure Blob by Integration Suite 2024-06-20T15:51:10.318000+02:00 koichiro_ogawa01 https://community.sap.com/t5/user/viewprofilepage/user-id/713369 <P>In this blog, I'll introduce how to consume Azure Blob API via SAP Integration Suite.</P><P>This picture is what I explain in this blog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_0-1718891083584.png" style="width: 836px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126342i80B0D6510F4862E1/image-dimensions/836x324?v=v2" width="836" height="324" role="button" title="koichiro_ogawa01_0-1718891083584.png" alt="koichiro_ogawa01_0-1718891083584.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-1017584543">Prerequisite</H2><OL><LI>You have Azure account</LI><LI>You have created Blob storage account</LI><LI>You have BTP Trial Account</LI><LI>Subscribe Integration Suite</LI></OL><P>Regarding 3 &amp; 4, you can refer this tutorial, <A href="https://developers.sap.com/mission.btp-integration-suite-nonsapconnectivity.html" target="_self" rel="noopener noreferrer">Connectivity to Non-SAP Applications using SAP Integration Suite</A>&nbsp;.</P><P>&nbsp;</P><H2 id="toc-hId-821071038">API Details</H2><P>Before send HTTP request, in general we have to confirm the information of HTTP method(Get/Post/Put, etc) and query parameters.</P><P>But on <A href="https://api.sap.com/integrationadapter/AzureStorage" target="_self" rel="noopener noreferrer">this page</A>, we cannot find them.</P><P>So this time, I refer to API Docs of Open connecter, which I'm not sure that it matches with Azure Adapter.</P><P>Integration Suite &gt; Capability &gt; Extend Non-SAP Connectivity &gt; Connector &gt; Azure Blob</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_1-1718887900477.png" style="width: 564px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126299iA385F62B354E284B/image-dimensions/564x403?v=v2" width="564" height="403" role="button" title="koichiro_ogawa01_1-1718887900477.png" alt="koichiro_ogawa01_1-1718887900477.png" /></span></P><P>See API Docs &gt; files Create a file.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_2-1718888117555.png" style="width: 597px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126302iD16139155F3605B2/image-dimensions/597x469?v=v2" width="597" height="469" role="button" title="koichiro_ogawa01_2-1718888117555.png" alt="koichiro_ogawa01_2-1718888117555.png" /></span></P><P>We can now confirm we need following parameters.</P><TABLE border="1" width="44.44414247979542%"><TBODY><TR><TD width="33.333333333333336%" height="30px">Parameter Name</TD><TD width="33.333333333333336%" height="30px">&nbsp;</TD></TR><TR><TD width="33.333333333333336%" height="30px">Authorization</TD><TD width="33.333333333333336%" height="30px">header</TD></TR><TR><TD width="33.333333333333336%" height="30px">containerName</TD><TD width="33.333333333333336%" height="30px">query&nbsp;</TD></TR><TR><TD width="33.333333333333336%" height="30px">path</TD><TD width="33.333333333333336%" height="30px">query&nbsp;</TD></TR><TR><TD width="33.333333333333336%" height="30px">file</TD><TD width="33.333333333333336%" height="30px">body</TD></TR></TBODY></TABLE><P>&nbsp;</P><H2 id="toc-hId-624557533">Create Security material</H2><P>There're several ways to authorize Azure resources.</P><P>For more information, please refer to the following link.</P><P><A href="https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage" target="_self" rel="nofollow noopener noreferrer">Authorize requests to Azure Storage</A>&nbsp;</P><P>In this article, I explain the way to use "Shared Key".&nbsp;</P><P>But please note that Shared key authorization is not recommended.</P><P><A href="http://Put Block List" target="_self" rel="nofollow noopener noreferrer">Put Block List</A>&nbsp;</P><P>Go to Monitor &gt; Integrations and APIs &gt; Manage Security &gt; Security material.</P><P>Create secure parameter as instructed in <A href="https://me.sap.com/notes/0003331283" target="_self" rel="noopener noreferrer">this SAP note</A>&nbsp;(<SPAN>3331283</SPAN>).</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_14-1718890450857.png" style="width: 542px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126329i7CADEC597CEB67A1/image-dimensions/542x87?v=v2" width="542" height="87" role="button" title="koichiro_ogawa01_14-1718890450857.png" alt="koichiro_ogawa01_14-1718890450857.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-428044028">Activate Azure Adapter for SAP Integration Suite</H2><P>Regarding the connection between Azure Blob Storage and SAP Integration Suite, we can use predefined package.</P><P>In this article, I use the following adapter.</P><P>SAP Accelerator Hub &gt;&nbsp;<A href="https://api.sap.com/integrationadapter/AzureStorage" target="_self" rel="noopener noreferrer">Azure Storage Adapter</A>&nbsp;</P><P>In this article, I'll use "Azure Blob Storage, Upload Block Blob into the Container"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_0-1718869228638.png" style="width: 589px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126021i8650E0C6629C4FA0/image-dimensions/589x523?v=v2" width="589" height="523" role="button" title="koichiro_ogawa01_0-1718869228638.png" alt="koichiro_ogawa01_0-1718869228638.png" /></span></P><P>Integration Suite Home Screen &gt; Discover Integrations &gt; Search "<SPAN>Azure Adapter for SAP Integration Suite</SPAN>"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_1-1718870262968.png" style="width: 724px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126052iBC1A463029EA0D6F/image-dimensions/724x254?v=v2" width="724" height="254" role="button" title="koichiro_ogawa01_1-1718870262968.png" alt="koichiro_ogawa01_1-1718870262968.png" /></span></P><P>Press "Copy"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_2-1718870406049.png" style="width: 691px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126055iEE4DF16DB2841419/image-dimensions/691x121?v=v2" width="691" height="121" role="button" title="koichiro_ogawa01_2-1718870406049.png" alt="koichiro_ogawa01_2-1718870406049.png" /></span></P><P>&nbsp;</P><P>You can confirm the adapter was activated in Design &gt; Integration and APIs</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_16-1718890742742.png" style="width: 642px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126335i2EB2CB8211BC0F11/image-dimensions/642x142?v=v2" width="642" height="142" role="button" title="koichiro_ogawa01_16-1718890742742.png" alt="koichiro_ogawa01_16-1718890742742.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-231530523">Create Integration Flow</H2><P><SPAN>Choose&nbsp;</SPAN><STRONG>Design</STRONG><SPAN>&nbsp;&gt;&nbsp;</SPAN><STRONG>Integrations and APIs</STRONG><SPAN>&nbsp;&gt;&nbsp;</SPAN><STRONG>Create</STRONG><SPAN>&nbsp;to create an integration package.</SPAN></P><P>Choose the<SPAN>&nbsp;</SPAN><STRONG>Artifacts</STRONG><SPAN>&nbsp;</SPAN>tab. Here you will create your first integration flow. Choose<SPAN>&nbsp;</SPAN><STRONG>Add</STRONG><SPAN>&nbsp;</SPAN>&gt;<SPAN>&nbsp;</SPAN><STRONG>Integration Flow</STRONG>.</P><P><SPAN>Choose&nbsp;</SPAN><STRONG>Edit</STRONG><SPAN>&nbsp;to start editing the integration flow.</SPAN></P><P>&nbsp;</P><H3 id="toc-hId-164099737"><SPAN>Runtime Configuration</SPAN></H3><P><SPAN>First, you have to set up query parameters that you send from API client.</SPAN></P><P><SPAN>Integration Flow &gt; Runtime Configuration.</SPAN></P><P><SPAN>Allow query parameters that the API requires.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_0-1718886943841.png" style="width: 621px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126289iF49C6001158A03A8/image-dimensions/621x347?v=v2" width="621" height="347" role="button" title="koichiro_ogawa01_0-1718886943841.png" alt="koichiro_ogawa01_0-1718886943841.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId--32413768">HTTPS</H3><P><SPAN>Connect "Sender" and "Start" by HTTPS as follows.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_4-1718871026467.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126058iF4F8FD0C1BC5E7D4/image-size/medium?v=v2&amp;px=400" role="button" title="koichiro_ogawa01_4-1718871026467.png" alt="koichiro_ogawa01_4-1718871026467.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_5-1718871085838.png" style="width: 449px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126059iD724A3DA3C93E793/image-dimensions/449x278?v=v2" width="449" height="278" role="button" title="koichiro_ogawa01_5-1718871085838.png" alt="koichiro_ogawa01_5-1718871085838.png" /></span></P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%">Addess</TD><TD width="50%">You can set API path as you like.</TD></TR><TR><TD width="50%">CSRF Protected</TD><TD width="50%">off</TD></TR></TBODY></TABLE><P>&nbsp;</P><H3 id="toc-hId--228927273">Azure Storage</H3><P>Connect end and Receiver by "Azure Storage Adapter" as follows.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_6-1718872150257.png" style="width: 512px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126076iEDB1D3DE5B084F10/image-dimensions/512x328?v=v2" width="512" height="328" role="button" title="koichiro_ogawa01_6-1718872150257.png" alt="koichiro_ogawa01_6-1718872150257.png" /></span></P><P>On Connection Tab, Select shared key that you created previous step.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_8-1718872215132.png" style="width: 522px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126093i136A4198DE6CA42D/image-dimensions/522x193?v=v2" width="522" height="193" role="button" title="koichiro_ogawa01_8-1718872215132.png" alt="koichiro_ogawa01_8-1718872215132.png" /></span></P><P>On Processing Tab, set parameter's as follows.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_4-1718888877460.png" style="width: 601px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126312i0E7882E509CDF90B/image-dimensions/601x272?v=v2" width="601" height="272" role="button" title="koichiro_ogawa01_4-1718888877460.png" alt="koichiro_ogawa01_4-1718888877460.png" /></span></P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%">Parameter</TD><TD width="50%">Value</TD></TR><TR><TD width="50%">Operation</TD><TD width="50%">Upload Block Blob</TD></TR><TR><TD width="50%">Storage Account Name</TD><TD width="50%">Your Azure Blob storage account.</TD></TR><TR><TD>Container Name</TD><TD>${header.containername}</TD></TR><TR><TD width="50%">Blob Path</TD><TD width="50%">${header.path}</TD></TR></TBODY></TABLE><P>&nbsp;</P><H3 id="toc-hId--425440778">Deploy</H3><P>The entire process is as follows.</P><P>If everything is OK, press "deploy"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_5-1718889098126.png" style="width: 524px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126314i550839B5A47C0EB5/image-dimensions/524x190?v=v2" width="524" height="190" role="button" title="koichiro_ogawa01_5-1718889098126.png" alt="koichiro_ogawa01_5-1718889098126.png" /></span></P><P>Confirm that the endpoint URL is generated by following path, Monitor &gt; Integration and API's &gt;&nbsp;<SPAN>Manage Integration Content.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_15-1718890635073.png" style="width: 773px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126333iD28E3028666DA264/image-dimensions/773x208?v=v2" width="773" height="208" role="button" title="koichiro_ogawa01_15-1718890635073.png" alt="koichiro_ogawa01_15-1718890635073.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId--751037002">Test by Postman</H2><P>Open your<SPAN>&nbsp;</SPAN><STRONG>Postman</STRONG><SPAN>&nbsp;</SPAN>application.</P><P>Paste the copied endpoint in the request URL field and choose<SPAN>&nbsp;<STRONG>POST</STRONG></SPAN><SPAN>&nbsp;</SPAN>as the method.</P><P><SPAN>Go to your SAP BTP subaccount. Copy the&nbsp;</SPAN><STRONG>clientid</STRONG><SPAN>&nbsp;and&nbsp;</SPAN><STRONG>clientsecret</STRONG><SPAN>&nbsp;from your service key.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_7-1718889568695.png" style="width: 557px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126318i05B9F166B22A9714/image-dimensions/557x96?v=v2" width="557" height="96" role="button" title="koichiro_ogawa01_7-1718889568695.png" alt="koichiro_ogawa01_7-1718889568695.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_8-1718889592940.png" style="width: 563px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126319i56D7DE8274A4E6F4/image-dimensions/563x167?v=v2" width="563" height="167" role="button" title="koichiro_ogawa01_8-1718889592940.png" alt="koichiro_ogawa01_8-1718889592940.png" /></span></P><P>For Authorization, choose<SPAN>&nbsp;</SPAN><STRONG>Basic Auth</STRONG>. Paste the<SPAN>&nbsp;</SPAN><STRONG>clientid</STRONG><SPAN>&nbsp;</SPAN>and<SPAN>&nbsp;</SPAN><STRONG>clientsecret</STRONG><SPAN>&nbsp;</SPAN>as the username and password.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_9-1718889734625.png" style="width: 621px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126320i6F30381C04614033/image-dimensions/621x239?v=v2" width="621" height="239" role="button" title="koichiro_ogawa01_9-1718889734625.png" alt="koichiro_ogawa01_9-1718889734625.png" /></span></P><P>For Params, you can enter query parameters, "containerName" and "path" as follows.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_10-1718889812985.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126321iBB483BB1277B9C0C/image-size/medium?v=v2&amp;px=400" role="button" title="koichiro_ogawa01_10-1718889812985.png" alt="koichiro_ogawa01_10-1718889812985.png" /></span></P><P>For Body, upload a file from your local.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_11-1718889985147.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126323i0F091AE029B59A78/image-size/medium?v=v2&amp;px=400" role="button" title="koichiro_ogawa01_11-1718889985147.png" alt="koichiro_ogawa01_11-1718889985147.png" /></span></P><P>Click "Send" and confirm status code 200 is returned.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_12-1718890070689.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126324i33D32CDED911AE78/image-size/medium?v=v2&amp;px=400" role="button" title="koichiro_ogawa01_12-1718890070689.png" alt="koichiro_ogawa01_12-1718890070689.png" /></span></P><P>You can confirm the file is transferred to Azure Storage Container.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="koichiro_ogawa01_13-1718890125354.png" style="width: 570px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126326i300EB34C77E9B8A1/image-dimensions/570x265?v=v2" width="570" height="265" role="button" title="koichiro_ogawa01_13-1718890125354.png" alt="koichiro_ogawa01_13-1718890125354.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><H2 id="toc-hId--600296150">Reference</H2><P><A href="https://community.sap.com/t5/technology-q-a/cpi-use-query-parameters-in-external-api-call/qaq-p/12764943" target="_self">CPI: use Query parameters in external API call</A>&nbsp;</P><P><A href="https://community.sap.com/t5/technology-blogs-by-members/open-connectors-query-parameters-using-http-connectors/ba-p/13451256" target="_self">Open Connectors - Query Parameters....using HTTP connectors</A>&nbsp;</P><P><A href="https://community.sap.com/t5/technology-blogs-by-members/steps-to-access-azure-blob-storage-via-rest-api-from-sap-cpi-using-azure/ba-p/13580257" target="_self">Steps to access Azure Blob Storage via REST API from SAP CPI using Azure Storage Adapter and SAP PO/PI using http adapter</A>&nbsp;</P><P><A href="https://developers.sap.com/mission.btp-integration-suite-nonsapconnectivity.html" target="_self" rel="noopener noreferrer">Connectivity to Non-SAP Applications using SAP Integration Suite</A>&nbsp;</P><P>&nbsp;</P> 2024-06-20T15:51:10.318000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/cloud-integration-with-sap-integration-suite-the-comprehensive-guide-new/ba-p/13745523 Cloud Integration with SAP Integration Suite - The Comprehensive Guide: New Book Edition Released 2024-06-28T10:24:19.401000+02:00 PeterGutsche https://community.sap.com/t5/user/viewprofilepage/user-id/198344 <P>Many have eagerly awaited a new edition of the popular SAP Cloud Integration book by Rheinwerk Publishing. As the world keeps turning and the development teams at SAP never rest, the SAP Integration Suite has established itself as a comprehensive integration solution and has evolved significantly, with Cloud Integration as its centerpiece and key capability.</P><P>And indeed, there is now a new edition of the book, titled <A href="https://www.rheinwerk-verlag.de/cloud-integration-with-sap-integration-suite-the-comprehensive-guide/" target="_self" rel="nofollow noopener noreferrer">"Cloud Integration with SAP Integration Suite - The Comprehensive Guide”</A>.</P><P>Spanning 900 pages, this book provides a comprehensive description of all the capabilities of SAP Integration Suite, as expected from previous editions. It includes a wealth of tutorials and example scenarios that readers can model and execute independently and from scratch.</P><P>Whether you are an integration expert or aspire to become one, this book, written by <STRONG>Swati Singh</STRONG>, <STRONG>John Mutumba Bilay</STRONG>, and <STRONG>Shashank Singh</STRONG> (all from Rojo Consultancy B.V.), with a foreword by <STRONG>Andreas Quenstedt</STRONG>, chief product owner of SAP Integration Suite, is exactly what you need.</P><P>Designed to be a valuable resource for both beginners and experts in the field, the book gradually introduces concepts and tools starting from Chapter 2. It provides a step-by-step guide to designing and executing the first, simplest integration flow. Additional features and complexity are then added in the following chapters.</P><P>In addition, the book offers a variety of challenging use cases and tutorials that will engage and pique the curiosity of experts.</P><P>Compared to the third edition, the new edition includes the following new or significantly expanded topics:</P><UL><LI>The topic of event-driven integration has been added, demonstrating how to set up SAP Integration Suite's Advanced Event Mesh as an event hub</LI><LI>Connecting to an AS2 server with the AS2 adapter.</LI><LI>Working with script collections.</LI><LI>Advanced mapping techniques.</LI><LI>Extension of the monitoring feature, including external logging and integration with Splunk.</LI><LI>The chapter on connecting to external third-party systems using Open Connectors has been extended. It includes example scenarios showing integration with Salesforce and Amazon Web Services.</LI><LI>Migration scenarios, such as from Neo to Cloud Foundry and from SAP PO to Cloud Integration.</LI><LI>Joint usage of Cloud Integration together with the API Management capability.</LI><LI>Lastly, one major milestone of SAP Integration Suite is covered in a separate chapter: Edge Integration Cell.</LI></UL><P>We wish you an enjoyable reading experience and success in your integration projects!"</P> 2024-06-28T10:24:19.401000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/new-partner-content-on-sap-business-accelerator-hub-q2-24/ba-p/13750069 New Partner Content on SAP Business Accelerator Hub (Q2 ’24) 2024-07-03T13:03:58.290000+02:00 AnanthNatarajan https://community.sap.com/t5/user/viewprofilepage/user-id/79594 <P><SPAN>As a continuation of the previous&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/new-partner-content-on-sap-business-accelerator-hub-q1-24/ba-p/13656895" target="_self">blog,</A>&nbsp;we would like to provide further updates and keep up the momentum of sharing relevant information with our community.</SPAN></P><P><SPAN>In this blog series, learn about the new content packages published on&nbsp;<A href="https://hub.sap.com/" target="_self" rel="noopener noreferrer">SAP Business Accelerator Hub</A>&nbsp;from our partners during&nbsp;<STRONG>Q2 '2024</STRONG>, along with their high-level details.</SPAN></P><P><SPAN>For complete details on each partner's content, refer to the&nbsp;<A href="https://hub.sap.com/allpartners" target="_self" rel="noopener noreferrer">partners listing</A>&nbsp;which is available on the home page of SAP Business Accelerator Hub.</SPAN></P><P><SPAN>_____________________________________________________________________________________</SPAN></P><H3 id="toc-hId-1148327042"><STRONG>Kaar Technologies</STRONG></H3><H4 id="toc-hId-1080896256"><EM>Integration package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/KTern.AIDigitalMaps/overview" target="_self" rel="noopener noreferrer">KTern.AI Digital Maps Integration with SAP ECC and SAP S/4HANA</A></P><P style=" padding-left : 30px; "><SPAN>This package contains reference information about KTern.AI Digital Maps integration with SAP ECC, SAP S/4HANA, SAP Business Suite to assess and plan SAP led Digital Transformations. KTern.AI is an SAP recognized Spotlight App on SAP Store and Industry Cloud solution to help enterprises globally with data-driven automation and Generative AI led business transformation</SPAN></P><H4 id="toc-hId-884382751"><EM><SPAN><SPAN class="">SAP-validated partner use case</SPAN></SPAN>&nbsp;(VPUC) published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/KTernAIforRISEwithSAPDXaaS/overview" target="_self" rel="noopener noreferrer"><SPAN>KTern.AI for RISE with SAP DXaaS</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>Pioneer AI-First Transformations with Clean Core Strategy using KTern.AI driven ‘Digital Transformation as a Service’ (DXaaS) delivery automation for RISE with SAP.</SPAN></P><P><SPAN>----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId-558786527"><STRONG><SPAN>PiLog India Pvt Ltd</SPAN></STRONG></H3><H4 id="toc-hId-491355741"><EM>API package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/PiLogPreferredRecords/overview" target="_self" rel="noopener noreferrer">PiLog Preferred Records</A></P><P style=" padding-left : 30px; "><SPAN>The integration of PiLog Preferred Records (PPR) with SAP S/4HANA Cloud brings Standardized Material and Service Master Records into your organization. PiLog Preferred Record Structured material description contains the Genuine Manufacturer, Genuine Part Number/Model Number and Standardized characteristic values.</SPAN></P><P><SPAN>----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId-165759517"><STRONG><SPAN>Coveo Solutions Inc</SPAN></STRONG></H3><H4 id="toc-hId-98328731"><EM>API package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/CoveoCommerce/overview" target="_self" rel="noopener noreferrer">Coveo Commerce</A></P><P style=" padding-left : 30px; "><SPAN>Coveo for Commerce drives incremental revenue for B2B and B2C organizations through AI-powered product discovery. With extensible APIs for your SAP Commerce Cloud storefront you can create relevant search, optimized product listing pages and personalized product recommendations.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/CoveoSearchToken/overview" target="_self" rel="noopener noreferrer"><SPAN>Coveo Search Token</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>Coveo offers personalized search and recommendations across product and content, customer specific price lists, relevance generative answering, and more. The Coveo Search Token Omni Commerce Connect (OCC) Web Service powers your storefront with a secure and efficient way to access the Coveo Commerce and Search APIs. This endpoint integrates with SAP Commerce Cloud by allowing it to retrieve the Coveo search token for authentication and make it available to storefronts.</SPAN></P><P><SPAN>----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId--227267493"><STRONG><SPAN>Qintesi S.p.A</SPAN></STRONG></H3><H4 id="toc-hId--294698279"><EM>API package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/NamirialeSawAnyWhere/overview" target="_self" rel="noopener noreferrer">Namirial eSignAnyWhere</A></P><P style=" padding-left : 30px; "><SPAN>Discover smoother operations and enhanced security with our signature integration for SAP! Our solution makes signing documents easy and stylish. Simplify your work and increase productivity while ensuring your signatures are secure and legally valid. Immerse yourself in a world of efficiency and accuracy with our SAP signature integration.</SPAN></P><P><SPAN>----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId--620294503"><STRONG><SPAN>Crave InfoTech</SPAN></STRONG></H3><H4 id="toc-hId--1185442384"><EM><SPAN><SPAN class="">SAP-validated partner use case</SPAN></SPAN></EM><EM>&nbsp;(VPUC) published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/APAutomationGatetoPay/overview" target="_self" rel="noopener noreferrer">Account Payable Automation – Gate to Pay</A></P><P style=" padding-left : 30px; "><SPAN>Customer's Account Payable (AP) processes faced challenges in terms of data inflow points, manual handling of thousands of invoices daily, delays in the Material Invoice Receipt Order (MIRO) parking, and the need for a streamlined approach to invoice data publishing for settlements.</SPAN></P><P><SPAN>-----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId--1088552882"><STRONG><SPAN>TARENTO</SPAN></STRONG></H3><H4 id="toc-hId--1578469394"><EM><SPAN><SPAN class="">SAP-validated partner use case</SPAN></SPAN></EM><EM>&nbsp;(VPUC) published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/iVolveATarentoFrameworktoEmpowerTransformation/overview" target="_self" rel="noopener noreferrer">iVolve - A Tarento Framework to Empower Transformation</A></P><P style=" padding-left : 30px; ">Strategy, selection, migration &amp; consolidation of Enterprise Integration Platform as a Service (EiPaaS).</P><UL><LI><EM>iVolve’s Integration Platform Recommendation Tool</EM><SPAN>&nbsp;</SPAN>- Gain rapid insight into potential marketplace integration platforms that solves your as-is/to-be integration vision, styles &amp; use cases.</LI><LI><EM>iVolve’s Vector Sprint</EM><SPAN>&nbsp;</SPAN>- A fixed priced, time bound discovery sprint evaluating a target platform against integration vision, use cases, styles, patterns, domains &amp; modernization demands. Detailed outcome driven workshops drive insight &amp; artifacts for implementation.</LI><LI><EM>iVolve Migration Automation Framework</EM><SPAN>&nbsp;</SPAN>- Automated &amp; Accelerated integration re-platforming to the cloud. Leverage accelerators &amp; assets on the framework to engage your transformation with guidance &amp; delivery from our integration competence center.</LI></UL><P>-----------------------------------------------------------------------------------------------------------------------------------------------</P><H3 id="toc-hId--1481579892"><STRONG><SPAN>Wipro Limited</SPAN></STRONG></H3><H4 id="toc-hId--1971496404"><EM><SPAN><SPAN class="">SAP-validated partner use case</SPAN></SPAN></EM><EM>&nbsp;(VPUC) published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/SmartEnergyProcurementAdvisor/overview" target="_self" rel="noopener noreferrer">Smart Energy Procurement Advisor</A></P><P style=" padding-left : 30px; "><SPAN>Natural Language Query (NLQ) enabled assist platform for Energy Procurement executive, bound by standard procurement policy guidelines. Utilizes Retrieval Augmented Generation (RAG) model abstracted via Langchain framework, powered by AOAI (GPT Turbo 3.5 / text-ada-002 models via Gen AI hub). Employs multi-dimensional spatial distance ranking to present historical top results. Simulate custom scenarios, override base policies, and trigger workflows for stakeholder approvals. Full track and trace features. Dashboard to manage events and maintain closure details and future adoption to Joule.</SPAN></P><P>-----------------------------------------------------------------------------------------------------------------------------------------------</P><H3 id="toc-hId--1874606902"><STRONG><SPAN>KPMG S.p.A</SPAN></STRONG></H3><H4 id="toc-hId-1930443882"><EM><SPAN><SPAN class="">SAP-validated partner use cases</SPAN></SPAN></EM><EM> (VPUC) published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/InnovativeRealTimeForecastingProcess/overview" target="_self" rel="noopener noreferrer">Innovative Real-Time Forecasting Process</A></P><P style=" padding-left : 30px; "><SPAN>This project harnesses the real-time computing capabilities of SAP HANA Cloud to seamlessly integrate and standardize data from diverse sources, including both cloud and non-cloud systems, as well as SAP and non-SAP environments. Leveraging SAP Analytics Cloud, an integrated model has been created to facilitate financial and managerial planning. Through automated processes called data actions, essential calculations are performed efficiently. The final step involves presenting the processed data on tailor-made dashboards, providing a comprehensive and insightful view for informed decision-making.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/IntelligentForecastingwithSAPAICore/overview" target="_self" rel="noopener noreferrer"><SPAN>Intelligent Forecasting with SAP AI Core</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>This project seeks to implement artificial intelligence logic into the planning process, aiming to generate practical solutions. Upon receiving real-time and historical data inputs, the applied AI techniques will compute forecasting and budgetary information. The culminating data will then be seamlessly incorporated into SAP Analytics Cloud for visualization and potential adjustments.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/ManagingCorporateIncomeTaxes/overview" target="_self" rel="noopener noreferrer"><SPAN>Manage Corporate Income Taxes</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>The use case encompasses the evaluation of Corporate Income Taxes, including IRES and IRAP for Italian markets, and others based on individual country requirements, along with Deferred Tax Assets and Deferred Tax Liabilities in alignment with local and IFRS Gaap. The system utilizes SAP Analytics Cloud capabilities to automatically gather data from source systems, including GL, HR, and assets, with the option to upload necessary data through an Excel file. Employing a pre-designed form, the tax department can manually adjust data at various stages of the process, ensuring complete and accurate traceability during data collection and after variation impact calculation. Automatic rules facilitate the association of GL Accounts with Tax Variations and the assessment of their impact on corporate income tax. Additionally, dashboards are provided for the analysis of Tax Data and reconciliation of Tax Rates.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/ManageStrategicPlanning/overview" target="_self" rel="noopener noreferrer"><SPAN>Manage Strategic Planning</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>Helps the end customer to fully manage both the strategic planning and process consolidation, ensuring maximum transparency and continuous monitoring of the entire process progress.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/KSelfSuccessFactorsSelfServicedashboardbyKPMG/overview" target="_self" rel="noopener noreferrer"><SPAN>KSelf - SuccessFactors Self Service Dashboard By KPMG</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>The main objective of the custom solution is to make employees completely autonomous in modifying their data through a secure tool that applies all the necessary checks before saving the data in the Employee Central module.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/TrainingRegionalCeilingsDashboard/overview" target="_self" rel="noopener noreferrer"><SPAN>Manage Regional Ceilings for Training Dashboard</SPAN></A></P><P style=" padding-left : 30px; ">Helps in effective management of item/class for all areas, Automated centralized management of seats to be assigned to each area, Integration with Learning Management System and SAP SuccessFactors for integrated reporting.</P><P>-----------------------------------------------------------------------------------------------------------------------------------------------</P><H3 id="toc-hId-2027333384"><STRONG><SPAN>Twenty5 LLC</SPAN></STRONG></H3><H4 id="toc-hId-1537416872"><EM>Integration package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/Twenty5IntegrationwithSAPS4HANACloud/overview" target="_self" rel="noopener noreferrer">Twenty5 Integration with SAP S/4HANA Cloud</A></P><P style=" padding-left : 30px; "><SPAN>This integration package contains standard integration flows to synchronize the commercial project between Twenty5 and SAP S/4HANA Cloud by leveraging the ODATA services provided by SAP S/4HANA Cloud.</SPAN></P><P><SPAN>-----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><H3 id="toc-hId-1634306374"><STRONG><SPAN>RealCore Group GmbH</SPAN></STRONG></H3><H4 id="toc-hId-1312573553"><EM>Integration package published:</EM></H4><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/SAPLeanIXIntegrationwithSAPCloudIntegration/overview" target="_self" rel="noopener noreferrer">SAP LeanIX Integration with SAP Cloud Integration</A></P><P style=" padding-left : 30px; "><SPAN>This integration package enables data synchronization between SAP Cloud Integration Content and SAP LeanIX factsheets by reading specific SAP Cloud Integration objects and transferring them to SAP LeanIX application.</SPAN></P><P style=" padding-left : 30px; "><A href="https://hub.sap.com/package/SAPLeanIXIntegrationwithSAPProcessOrchestration/overview" target="_self" rel="noopener noreferrer"><SPAN>SAP LeanIX Integration with SAP Process Orchestration</SPAN></A></P><P style=" padding-left : 30px; "><SPAN>This integration package enables data synchronization between SAP Process Orchestration Content and SAP LeanIX factsheets by reading specific SAP Process Orchestration objects and transferring them to SAP LeanIX application.</SPAN></P><P><SPAN>-----------------------------------------------------------------------------------------------------------------------------------------------</SPAN></P><P><SPAN>If you are interested in&nbsp;<STRONG>Partnering with SAP Business Accelerator Hub,&nbsp;</STRONG>please refer to this&nbsp;<A href="https://hub.sap.com/partnerwithus" target="_self" rel="noopener noreferrer">section</A>&nbsp;and&nbsp;<A href="https://discovery-center.cloud.sap/missiondetail/4378/" target="_self" rel="nofollow noopener noreferrer">discover center mission</A>&nbsp;for more details.&nbsp;</SPAN></P><P><SPAN>Stay tuned for further updates and information by the end of the next quarter!</SPAN></P> 2024-07-03T13:03:58.290000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/create-datatype-and-message-type-artifact-in-cloud-integration-capability/ba-p/13709335 Create DataType and Message Type artifact in Cloud Integration capability of SAP Integration Suite 2024-07-10T10:43:24.414000+02:00 radhika_javvaji https://community.sap.com/t5/user/viewprofilepage/user-id/272095 <P><STRONG>Introduction</STRONG></P><P>SAP Cloud Integration version 6.54.xx comes with new feature, where in one can create Datatype and Messagetype as reusable design time artifacts in Cloud Integration capability of SAP Integration Suite</P><P>This feature is available only in SAP Integration Suite&nbsp;<EM>standard</EM>&nbsp;and&nbsp;<EM>above</EM>&nbsp;service plans.</P><P>SAP Cloud Integration version 6.54.xx software update is planned on mid of July 2024 &nbsp;(date and time subjected to change).</P><P><STRONG>Create DataType :</STRONG></P><P>1. Open the Integration Suite Tenant and navigate to Design --&gt;Integrations and API's</P><P>2. Create an Integration Package or open an existing one.</P><P>3. Navigate to the Artifacts tab and click on Edit in the top right corner</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_1-1718115364468.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121979iE5C4D4DED4752EE7/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_1-1718115364468.png" alt="radhika_javvaji_1-1718115364468.png" /></span></P><P>4. Click on Add drop down and select Data Type from the list</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_1-1718117936129.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121991i89CC6C936E816990/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_1-1718117936129.png" alt="radhika_javvaji_1-1718117936129.png" /></span></P><P>5. Add Data Type dialog is displayed with Create (radio button) selected by default.</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_2-1717595353958.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/119810iBC2C4075C93ABAB6/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_2-1717595353958.png" alt="radhika_javvaji_2-1717595353958.png" /></span></P><P>6. Enter the values for the fields Name, ID,Target Namespace, Description ,select the category - Simple Type(selected by default) or Complex Type for the Datatype you want to create and click on Add or Add and Open in Editor</P><P>7. On Click of Add, the Data Type artifact with the provided name gets created and is listed in the Artifacts list page</P><P>8. On Click of Add and Open in Editor, the Data Type artifact gets created with the provided name and the artifact gets opened in the Editor in display mode.&nbsp;</P><P>9. The Editor contains three tabs : Overview,Structure and XSD.The Structure is shown by default when the artifact is opened. It displays the structure of the datatype in a tree table with the following columns :</P><UL><LI>Name : Contains the Name of the node(element or attribute).For Root node the name is same as the name of the Datatype and it cannot be edited.</LI><LI>Category :&nbsp;<SPAN>This column shows whether the root element has subnodes&nbsp;or not . For root node it is either Simple type or Complex Type and for submodes it can be either Element or Attribute. You cannot change values in this column.</SPAN></LI><LI>Type: This column displays the type with which the node is defined.<SPAN>Here you select a built-in data type or reference to an existing data type for an element or attribute. You must specify a type for attributes.</SPAN></LI><LI>Occurrence:&nbsp;<SPAN>Determines how often elements occur.For attributes, you can determine whether the attribute is </SPAN><I>optional</I><SPAN> or </SPAN><I>required</I><SPAN>.</SPAN></LI><LI>Restrictions : This column displays the facets (if any) defined incase the node is defined by a built-in primitive type or a user defined Simple type Datatype&nbsp;</LI></UL><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_2-1718117008118.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121987i2306E4004FCB4C68/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_2-1718117008118.png" alt="radhika_javvaji_2-1718117008118.png" /></span></P><P>9. Switch to edit mode and to define/build the Structure of the Datatype. On selecting the first row(rootnode),the Add drop down in the table header gets enabled and also the details of the row are displayed in the right side section of the editor.</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_0-1718118534729.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121996i42AF4C60A663828B/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_0-1718118534729.png" alt="radhika_javvaji_0-1718118534729.png" /></span></P><P>10. Simple Type Data Type :</P><UL><LI>No child nodes can be added&nbsp;</LI><LI>Root node is defined by string built-in primitive datatype.</LI><LI>Click on the root node and the Properties sheet &nbsp;which contains the details of the node selected is displayed on the right side of the editor. In Edit mode ,user can edit the Type ,define the restrictions applicable for the Type selected.</LI></UL><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_1-1718118704320.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122017i06FD85443D20533D/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_1-1718118704320.png" alt="radhika_javvaji_1-1718118704320.png" /></span></P><P>11.Complex Type Data Type :</P><P style=" padding-left : 30px; "><SPAN>To add child nodes:</SPAN></P><UL><LI><SPAN>Click on the root node and the Add drop down in the table header gets enabled.</SPAN></LI></UL><P><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Add --&gt;Element to add child element node</SPAN></P><P><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Add --&gt;Attribute to add attribute node</SPAN></P><P><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Add --&gt;Rows to add multiple Elements/Attributes</SPAN></P><P style=" padding-left : 30px; "><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_2-1718118783167.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122018i6783C24482D48322/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_2-1718118783167.png" alt="radhika_javvaji_2-1718118783167.png" /></span></SPAN></P><UL><LI><SPAN>Click on the newly added node and define the details in the Properties sheet</SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_4-1718119150167.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122023iEFAF233E86D9161B/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_4-1718119150167.png" alt="radhika_javvaji_4-1718119150167.png" /></span><P>&nbsp;</P></LI></UL><P>12. Once the Structure is defined,Click on Save to save the artifact as Draft, Save as Version to save the artifact as versioned artifact.</P><P>13. XSD tab displays the read only view of the xsd schema of the Datatype artifact</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_5-1718119368848.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122024i3CEA676E0E671376/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_5-1718119368848.png" alt="radhika_javvaji_5-1718119368848.png" /></span></P><P><STRONG>Create MessageType:</STRONG></P><P>1. Open the Integration Suite Tenant and navigate to Design --&gt;Integrations and API's</P><P>2. Create an Integration Package or open an existing one.</P><P>3. Navigate to the Artifacts tab and click on Edit in the top right corner&nbsp;</P><P>4. Click on Add drop down and select Message Type from the list&nbsp; &nbsp;&nbsp;</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_0-1720598748201.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134829iD9A9CFE0DBB41DD0/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_0-1720598748201.png" alt="radhika_javvaji_0-1720598748201.png" /></span></P><P>5. Add Message Type dialog is opened</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_1-1720596724096.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134738iFD929C6EE7A6933A/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_1-1720596724096.png" alt="radhika_javvaji_1-1720596724096.png" /></span></P><P>6.Enter the values for the fields Name, ID, XMLNamespace, Datatype to be Used, Description, and click on Add or Add and Open in Editor</P><P>7. On Click of Add, Message Type artifact gets created and is listed in the Artifacts list page</P><P>8.On Click of Add and Open in Editor, MessageType artifact gets created and the artifact gets opened in the DataType Editor with Structure tab loaded by default in non-edit mode . The rootnode Name would be same as the Message Type name ,Category as Element and Type as Data Type Used (if selected in the Add Message Type dialog)</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_2-1720597738287.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134786iEB833C3DA3FCB2FF/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_2-1720597738287.png" alt="radhika_javvaji_2-1720597738287.png" /></span></P><P>9. Overview tab in Edit mode is as shown below :</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_3-1720597940239.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134799iAE271A5E0D54D696/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_3-1720597940239.png" alt="radhika_javvaji_3-1720597940239.png" /></span></P><P>10 XSD tab :</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="radhika_javvaji_4-1720598053624.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134802i75A3AA88B43BE7A6/image-size/large?v=v2&amp;px=999" role="button" title="radhika_javvaji_4-1720598053624.png" alt="radhika_javvaji_4-1720598053624.png" /></span></P><P>11. Datatype Used to create a Message type can be changed in Overview tab or in Structure tab. Switch to edit mode and select the root node in the Structure tab.The properties sheet gets displayed on the right side of the page with Datatype Used field as editable.</P><P>12. No other nodes(child nodes) are editable in the Message Type artifact.</P><P>&nbsp;</P> 2024-07-10T10:43:24.414000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/latest-pipeline-concept-enhancements-custom-error-handling-and-others/ba-p/13757664 Latest Pipeline Concept enhancements: Custom error handling and others 2024-07-11T10:14:27.850000+02:00 alex_bundschuh https://community.sap.com/t5/user/viewprofilepage/user-id/45178 <P>We have lately shipped a new version of the <A href="https://community.sap.com/t5/technology-blogs-by-sap/introducing-the-new-pipeline-concept-in-cloud-integration/ba-p/13639651" target="_blank">Pipeline Concept</A> package on the SAP Business Accelerator Hub based on customer and partner feedback, this is now version 1.0.5. The package can be accessed from <A href="https://hub.sap.com/package/PIPipelineGenericIntegrationFlows/integrationflow" target="_blank" rel="noopener noreferrer">here</A>. If you have already copied the package to your workspace in your SAP Integration Suite tenant, you can simply run the update of the package to be able to use the latest features.</P><P>As part of the package, we have now added a change list which allows you to see all increments that we have shipped so far. In the latest version, we have delivered the following:</P><UL><LI>Extension for custom error handling</LI><LI>In generic IDoc inbound processing flow, display list of IDoc numbers in case of IDoc bulk messages</LI><LI>For IDoc inbound, sender interface is calculated as a combination of MESTYP, IDOCTYP and CIMTYP</LI><LI>Supporting test mode via testMode header in the allowed headers configuration</LI><LI>In standard error handling, copied messages from the dead letter queue are switched to DEBUG log level</LI></UL><P>The <STRONG>custom error handling</STRONG> extension is a sort of customer exit which allows you to implement your own error handling in a separate integration flow which is then called via ProcessDirect instead of the standard error handling if the standard error handling doesn't meet your requirements. This way you can customize the pipeline processing without changing the&nbsp;generic integration flows that we ship as part of the pipeline concept. For more details, see&nbsp;<A href="https://help.sap.com/docs/MIGRATION_GUIDE_PO/90c8ad90cb684ee5979856093efe7462/ed9b82cb928049e6990a4d784aa6aac7.html" target="_blank" rel="noopener noreferrer">Monitoring and Error Handling in the Pipeline Concept</A>.</P><P>For improved <STRONG>monitoring of IDoc bulk messages</STRONG>, all IDoc numbers are stored in a custom header property. This allows you to search the message processing logs in the message monitoring based on a particular IDoc number. Furthermore we have revised the <STRONG>sender interface for IDoc messages</STRONG>. Before it contained the message type only, now it's a combination of the message type, the IDoc type and a potential IDoc extension which brings you more flexibility in setting up your IDoc scenarios. See <A href="https://help.sap.com/docs/MIGRATION_GUIDE_PO/90c8ad90cb684ee5979856093efe7462/1606af9b55bf4391bea01d2f7ee112af.html" target="_blank" rel="noopener noreferrer">Special Cases</A>.</P><P>If you like to run your integration scenarios using a regression test tool, you may benefit from the <STRONG>test mode</STRONG> flag. This is simply a header which is passed through the whole sequence of pipelines. Depending of your test case setup you may then pass the test message to a virtualized or mocked receiver instead of to the actual receiver. By the way, our partners providing regression test tools already support the pipeline concept in their tools. See <A href="https://help.sap.com/docs/MIGRATION_GUIDE_PO/90c8ad90cb684ee5979856093efe7462/e3735695d87c421ea0fb862e02c0f668.html" target="_blank" rel="noopener noreferrer">Testing the Pipeline</A>.</P><P>We are currently working on the next increment. For the test flag for instance we plan to extend the generic flows so that test messages which go into an error won't be restarted. Furthermore, we plan to extend the partner directory approach that is used to dynamically configure the runtime behavior. In some cases, the partner ID which is limited to 60 chars might not be sufficient, so we need to react on this. Furthermore, we like to provide you the option to use alternative partners which provides you more flexibility in setting up your integration scenarios, e.g., with this, sender wildcard scenarios can be easily setup.</P><P>So, stay tuned. And if you have further ideas, requirements, feedback feel free to reach out to me or simply leave a comment.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-07-11T10:14:27.850000+02:00 https://community.sap.com/t5/technology-blogs-by-members/netsuite-adapter-for-sap-integration-suite/ba-p/13756567 NetSuite Adapter for SAP Integration Suite 2024-07-12T15:37:03.059000+02:00 sswati https://community.sap.com/t5/user/viewprofilepage/user-id/312844 <P>SAP announced the NetSuite adapter for Integration Suite this month. For those customers using NetSuite ERP, the NetSuite adapter for SAP Integration Suite is the ideal solution to enable fast and robust integrations of NetSuite in your business processes.</P><P>You can now seamlessly integrate data from diverse sources into the NetSuite ERP platform and elevate your organization’s efficiency by reducing efforts to create a listed set of integration workflows&nbsp;with the NetSuite adapter.</P><H2 id="toc-hId-1019427872">What is NetSuite?</H2><P>NetSuite is an ERP system; with multi-suite features, it's an extensive business management platform designed to handle critical functions like sales, marketing, finance, accounting, inventory management, procurement, and more.</P><P>NetSuite’s centralized data accessibility ensures seamless operations across different functions and locations. It provides invaluable operational insights, reporting, and analytics, enhancing financial visibility and decision-making.</P><H2 id="toc-hId-822914367"><STRONG>What is the NetSuite Adapter?</STRONG></H2><P>With the NetSuite adapter, you have the capability to establish a connection with the NetSuite application and execute a variety of operations with different features.</P><H2 id="toc-hId-626400862">Key Features</H2><UL><LI><STRONG>Support for multiple API versions</STRONG>: NetSuite supports multiple API versions with an editable API version field enabling users to input the latest supported version.</LI><LI><STRONG>Secure authentication based on Tokens</STRONG>: The NetSuite adapter supports the Token-Based Authentication (TBA) mechanism which increases overall system security. Every call between NetSuite and SAP Cloud Integration is secured by Tokens.</LI><LI><STRONG>Support for multiple NetSuite operations</STRONG>: The NetSuite adapter supports various operations like Add, Get, Delete, Async Add List, etc.</LI><LI><STRONG>Dynamic configuration with headers and properties</STRONG>: Assigning dynamic values to different properties allows enhanced flexibility to your integration flows. You can also refer to dynamic parameters using SAP Cloud Integration exchange headers and properties.&nbsp;</LI><LI><STRONG>Processing more than one record at a time</STRONG>: Some operations can be performed on one or more new instances of a record in NetSuite. As an example, the <STRONG>addlist</STRONG> operation can be used to add one or more new instances of a record to NetSuite.</LI><LI><STRONG>Processing more than one record of data asynchronously</STRONG>: Some operations can be performed on one or more new instances of a record in NetSuite in an asynchronous manner. In general, for asynchronous operations, bulk records are sent to NetSuite without the need to wait for a response.</LI><LI><STRONG>XSD Generator</STRONG>: To help speed up the integration, an XSD generator in the form of an Eclipse Plug-in is provided alongside the adapter. With this Eclipse Plug-in/Workbench, it is possible to generate an XSD which includes the structure of an Account Record. The generated XSD can then be imported into Cloud Integration and used for mapping purposes.</LI><LI><STRONG>Full integration support for Custom Records and Fields</STRONG>: In addition to supporting all the standard NetSuite Records (or entities), the Adapter integrates with all the Custom Objects in NetSuite.</LI></UL><H2 id="toc-hId-429887357">How does the adapter work?</H2><P>NetSuite Adapter allows you to perform various functions related to finance, accounting, inventory management, etc. Let’s look at a simple operation <STRONG>get</STRONG> an employee in NetSuite using the NetSuite Adapter for SAP Integration Suite.</P><H3 id="toc-hId-362456571"><SPAN>Get an Employee in NetSuite</SPAN></H3><P>Before we begin, it is assumed that employee type records are available in NetSuite for querying. Our example illustrates how the NetSuite Adapter allows querying to get an employee. The process begins with a client initiating an HTTPS request to an endpoint for retrieving employee information from NetSuite.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_0-1720596190438.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134721iFE8B7E48668B4416/image-size/large?v=v2&amp;px=999" role="button" title="sswati_0-1720596190438.png" alt="sswati_0-1720596190438.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId-165943066">Connect to NetSuite</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_1-1720596190452.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134723iA3C7548D49CDB03F/image-size/large?v=v2&amp;px=999" role="button" title="sswati_1-1720596190452.png" alt="sswati_1-1720596190452.png" /></span></P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P><STRONG>Field</STRONG></P></TD><TD><P><STRONG>Description</STRONG></P></TD></TR><TR><TD><P>Address</P></TD><TD><P>Specify the address of NetSuite to be used for the connection. This address typically includes your NetSuite Account ID. NetSuite URLs often follow the pattern: https://&lt;accountid&gt;.suitetalk.api.netsuite.com.<BR /><BR />Example: <A href="https://12345-sb1.suitetalk.api.netsuite.com" target="_blank" rel="noopener nofollow noreferrer">https://12345-sb1.suitetalk.api.netsuite.com</A></P></TD></TR><TR><TD><P>Account ID</P></TD><TD><P>Specify the Account ID to be used for the connection. To find the account ID in NetSuite, you can usually locate it in the account's URL when logged in. Additionally, it might be available in the NetSuite account settings or administration section.</P><P>Example: 1112711_SB1</P></TD></TR><TR><TD><P>Authentication</P></TD><TD><P>Select your Authentication Mechanism. Currently, only the Token-Based Authentication (TBA) is supported.</P></TD></TR><TR><TD><P>Consumer Credentials Alias</P></TD><TD><P>This field should refer to a security material (of type User Credentials). This User Credential should include both Consumer Key (as username) and Consumer Secret (as password).</P></TD></TR><TR><TD><P>Token Credentials Alias</P></TD><TD><P>This field should refer to a security material (of type User Credentials). This User Credential should include both Token ID (as username) and Token Secret (as password).</P></TD></TR><TR><TD><P>Timeout (in ms)</P></TD><TD><P>Specify the maximum waiting time (in milliseconds) while establishing a connection with NetSuite. The default Timeout is 60000 ms.</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId--30570439">Prepare Request Body and Mapping</H3><P>You can use a content modifier to ensure that the request payload includes all the necessary parameters NetSuite requires for querying employee data.</P><UL><LI>The message body should include the <STRONG>internal ID/external ID</STRONG> of the employee.<SPAN><BR /></SPAN><STRONG>Note</STRONG>: For more information about <STRONG>internal ID/external ID</STRONG>, see <SPAN><A href="https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N3432681.html" target="_blank" rel="noopener nofollow noreferrer">NetSuite documentation</A></SPAN>.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_2-1720596190464.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134722i0CE52B29C494A45C/image-size/large?v=v2&amp;px=999" role="button" title="sswati_2-1720596190464.png" alt="sswati_2-1720596190464.png" /></span></P><UL><LI>Alternatively, you can enable <STRONG>Create Request From Properties</STRONG> and specify the <STRONG>ID type</STRONG> and<BR /><STRONG>ID Value</STRONG> in the fields.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_3-1720596190467.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134725i6E7B66D82CFDB9B6/image-size/large?v=v2&amp;px=999" role="button" title="sswati_3-1720596190467.png" alt="sswati_3-1720596190467.png" /></span></LI></UL><P>Next, we use a mapping to ensure that the request contains all necessary parameters and is correctly structured for querying employee data. To help speed up the integration, an XSD generator in the form of an Eclipse Plug-in is available alongside the adapter.</P><P>Our <STRONG>NetSuite</STRONG> <STRONG>Eclipse Plug-in</STRONG> allows you to generate desired <STRONG>XSD</STRONG> and import it in an Integration Flow and use it in mappings. You can add it before the Request-Reply Step. This way, you can create the correct XML request message to create or modify a resource in NetSuite.</P><P>Furthermore, the Eclipse Plug-in XSD Generator helps you generate up-to-date XSDs for your NetSuite resources for all the different operations. Once the message mapping is complete, the transformed request is sent to NetSuite.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_4-1720596190472.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134726i71CD9E76A910BD0A/image-size/large?v=v2&amp;px=999" role="button" title="sswati_4-1720596190472.png" alt="sswati_4-1720596190472.png" /></span></P><H3 id="toc-hId--227083944">Execute <STRONG>Get</STRONG> using the NetSuite Adapter</H3><P>To retrieve details related to an employee, you need to specify the API version and operation as <STRONG>get</STRONG>. This selection allows you to access the specific record type <STRONG>employee</STRONG>, enabling you to fetch comprehensive information associated with that employee.</P><P>The response from NetSuite further undergoes message mapping again to ensure it is transformed into a format that the client system understands and can process. You can also use XSDs generated by the <STRONG>NetSuite Eclipse Plug-in</STRONG> to create a mapping to handle the response message returned by NetSuite.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sswati_5-1720596190484.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/134724i2E5FB08039C1688F/image-size/large?v=v2&amp;px=999" role="button" title="sswati_5-1720596190484.png" alt="sswati_5-1720596190484.png" /></span></P><P>The client system receives and interprets this response, extracting and utilizing the retrieved employee information as needed.</P><H2 id="toc-hId--552680168">Quick Links</H2><P>For detailed information about NetSuite adapter configuration, see <SPAN><A href="https://api.sap.com/package/NetSuiteAdapterforSAPIntegrationSuite/integrationadapter" target="_blank" rel="noopener noreferrer">NetSuite Adapter Guide</A></SPAN>.</P><P><STRONG>Note</STRONG>: The NetSuite adapter is available as part of your SAP Integration Suite license.</P> 2024-07-12T15:37:03.059000+02:00 https://community.sap.com/t5/technology-blogs-by-members/avoiding-multiple-destination-creation-for-integration-between-sap-erp-and/ba-p/13757480 Avoiding Multiple Destination Creation for Integration Between SAP ERP and SAP Integration Suite 2024-07-12T15:37:23.892000+02:00 Ravi_Bharti08 https://community.sap.com/t5/user/viewprofilepage/user-id/791742 <P>When integrating SAP ERP (ECC, S/4 HANA) with SAP Integration Suite, it’s common to create separate destinations for each iFlow. This can lead to an excessive number of destinations, which can be cumbersome to manage. Here are two methods to streamline this process and avoid creating multiple destinations:</P><H2 id="toc-hId-1019456757">Method 1: Certificate-Based Authentication and create_by_url Class</H2><P>One effective way to reduce the number of destinations is to establish certificate-based authentication between SAP ERP and SAP Integration Suite. This method allows you to securely authenticate and communicate without needing a separate destination for each iFlow.</P><OL><LI><STRONG>Setup Certificate-Based Authentication</STRONG>: Ensure that both SAP ERP and SAP Integration Suite trust each other’s certificates.</LI><LI><STRONG>Use the create_by_url Class</STRONG>: This ABAP class can dynamically create HTTP connections using URLs, thus avoiding the need for predefined destinations.</LI></OL><P>Sample code :</P><P>&nbsp;</P><pre class="lia-code-sample language-abap"><code>DATA: lo_http_client TYPE REF TO if_http_client. cl_http_client=&gt;create_by_url( EXPORTING url = 'Pass URL Here' ssl_id = 'Pass SSL Id' IMPORTING client = lo_http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 OTHERS = 4 ). * Check for exceptions IF sy-subrc &lt;&gt; 0. ENDIF. * Disable logon popup lo_http_client-&gt;propertytype_logon_popup = lo_http_client-&gt;co_disabled. * Set the HTTP method to POST lo_http_client-&gt;request-&gt;set_method( 'POST' ). * Send the HTTP request lo_http_client-&gt;send( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 http_invalid_timeout = 4 OTHERS = 5 ). * Check for exceptions IF sy-subrc = 0. * Receive the HTTP response lo_http_client-&gt;receive( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 OTHERS = 5 ). ENDIF.</code></pre><P>&nbsp;</P><H2 id="toc-hId-822943252">Method 2: Create RFC Destination with Blank Path Prefix and Use create_by_destination Class</H2><P>Another approach is to create a general RFC destination in transaction SM59 with only the host specified and leaving the path prefix blank. You can then dynamically set the specific path for each request using the header field ~request_uri.</P><P>RFC Destination :<BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RFC Destination" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/135111i397A2FBEA506D683/image-size/large?v=v2&amp;px=999" role="button" title="RFCDestination.jpg" alt="RFC Destination" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">RFC Destination</span></span></P><P>Sample code :</P><P>&nbsp;</P><pre class="lia-code-sample language-abap"><code>DATA: lo_http_client TYPE REF TO if_http_client. * Create HTTP client using the destination name cl_http_client=&gt;create_by_destination( EXPORTING destination = 'DestinationName' IMPORTING client = lo_http_client EXCEPTIONS argument_not_found = 1 destination_not_found = 2 destination_no_authority = 3 plugin_not_active = 4 internal_error = 5 OTHERS = 6 ). * Check for exceptions IF sy-subrc &lt;&gt; 0. ENDIF. * Disable logon popup lo_http_client-&gt;propertytype_logon_popup = lo_http_client-&gt;co_disabled. * Set the HTTP method to POST lo_http_client-&gt;request-&gt;set_method( 'POST' ). * Set the specific path for the request lo_http_client-&gt;request-&gt;set_header_field( name = '~request_uri' value = 'PassYourPath' ). * Send the HTTP request lo_http_client-&gt;send( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 http_invalid_timeout = 4 OTHERS = 5 ). * Check for exceptions IF sy-subrc = 0. * Receive the HTTP response lo_http_client-&gt;receive( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 OTHERS = 5 ). ENDIF.</code></pre><P>&nbsp;</P><P>By implementing these methods, you can significantly reduce the number of destinations required for integration between SAP ERP and SAP Integration Suite, making the process more efficient and easier to manage.</P><P>&nbsp;</P> 2024-07-12T15:37:23.892000+02:00 https://community.sap.com/t5/technology-blogs-by-members/integration-of-sap-task-center-azure-and-servicenow-sso-user-provisioning/ba-p/13766332 Integration of SAP Task Center, Azure and ServiceNow - SSO, User Provisioning and Token exchange 2024-07-19T16:10:57.124000+02:00 ITCE https://community.sap.com/t5/user/viewprofilepage/user-id/1474919 <P>During the configuration of <A href="https://www.itce.com/integrate-your-sap-task-center-with-servicenow/" target="_self" rel="nofollow noopener noreferrer">Task Connect</A>, an integration between ServiceNow and SAP Task center, <SPAN>we devoted significant effort to addressing security concerns</SPAN><SPAN>, particularly focusing on user authentication and user provisioning. Given the widespread use of Azure as an identity and token provider, we developed a method to synchronize users and groups across ServiceNow, SAP Task Center, and Azure.&nbsp;</SPAN></P><P>In this document, you will find the scenario overview, related architectural diagrams presenting the different components and how they interact with each other and what are the steps to follow to configure the connection between ServiceNow, SAP Task Center and Azure.&nbsp;</P><P><FONT size="4"><STRONG>1. Scenario overview</STRONG></FONT></P><P>The starting point in this scenario is the user's authentication and access token issued by the SAP Cloud Identity tenant's authentication service (IAS), indicated as AT (IAS) APP in returned by step 2 in figure 1 below and following the notation &lt;token type&gt; (&lt;issuer&gt;) &lt;audience&gt;. The complete token exchange is orchestrated by the <A href="https://www.rfc-editor.org/rfc/rfc6749" target="_blank" rel="noopener nofollow noreferrer">OAuth 2.0</A> and <A href="https://openid.net/developers/specs/" target="_blank" rel="noopener nofollow noreferrer">OpenID Connect</A> (OIDC) authorization and authentication frameworks and their respective token types, which are <A href="https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens" target="_blank" rel="noopener nofollow noreferrer">access tokens</A> (AT), <A href="https://learn.microsoft.com/en-us/azure/active-directory/develop/refresh-tokens" target="_blank" rel="noopener nofollow noreferrer">refresh tokens</A> (RT), and <A href="https://learn.microsoft.com/en-us/azure/active-directory/develop/id-tokens" target="_blank" rel="noopener nofollow noreferrer">identity tokens</A> (ID). Thus, AT (IAS) IAS is an access token, issued by the IAS tenant's OAuth 2.0 authorization server, with an audience set to the IAS tenant's client ID. All tokens except for refresh tokens are formatted as JWTs. Compared to the token exchange in the previous parts of this blog series (see <A href="https://blogs.sap.com/2020/07/17/principal-propagation-in-a-multi-cloud-solution-between-microsoft-azure-and-sap-cloud-platform-scp/" target="_blank" rel="noopener noreferrer">part I</A>, <EM>Interoperability and standards</EM>, for more details), <A href="https://wiki.oasis-open.org/security/FrontPage#SAML_V2.0_Standard" target="_blank" rel="noopener nofollow noreferrer">SAML 2.0</A> - or more precisely the SAML assertion as an OAuth 2.0 authorization grant defined in section 2.1 of <A href="https://www.rfc-editor.org/rfc/rfc7522#section-2.1" target="_blank" rel="noopener nofollow noreferrer">RFC 7522</A> - is no longer used in this scenario. Instead of transforming between different token formats (JWT to SAML and back to JWT), this scenario only uses JWTs for the token exchange. It is important to note that for this token exchange no direct trust relationship between the application on BTP and Azure AD is required. The application only has a trust relationship to the IAS tenant, and the IAS tenant maintains the trust relationship to the Azure AD tenant (and vice versa).&nbsp;&nbsp;&nbsp;</P><P>All authentication requests for the business application on BTP (SAP TASK CENTER) are forwarded by the IAS tenant to the Azure AD tenant which is configured as a <A href="https://help.sap.com/docs/IDENTITY_AUTHENTICATION/6d6d63354d1242d185ab4830fc04feb1/19f3eca47db643b6aad448b5dc1075ad.html?locale=en-US" target="_blank" rel="noopener noreferrer">corporate identity provider (IdP) in IAS</A>. IAS acts as a proxy and delegates authentication to Azure AD in the role of the relying party to the corporate identity provider. The IAS tenant therefore requires an application registration in Azure AD. &nbsp;</P><P><STRONG>Note</STRONG>: For the TaskConnect integration configuration to work, the SAP Task Center should be configured according to the following documentation: <A href="https://help.sap.com/docs/task-center/sap-task-center/initial-setup" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/task-center/sap-task-center/initial-setup</A></P><P><FONT size="4"><STRONG>2. Users authentication and token exchange</STRONG></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_0-1721388770253.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139020i40DB8BEAFEB8A62C/image-size/large?v=v2&amp;px=999" role="button" title="ITCE_0-1721388770253.png" alt="ITCE_0-1721388770253.png" /></span></P><OL><LI>The user accesses the BTP business application's SAP Task Center. The app delegates authentication to the IAS tenant using OIDC. It starts the authentication process by redirecting the user' browser to the IAS tenant's OAuth server authorization endpoint at <EM><U>https://&lt;IAS</U> tenant name&gt;.accounts.ondemand.com/oauth2/authorize </EM>and sending an OAuth authorization request.&nbsp;</LI><LI>Because the user is not yet authenticated at the IAS tenant, the user's browser is redirected to the IAS tenant's single sign-on (SSO) endpoint at <EM><U>https://&lt;IAS</U> tenant name&gt;.accounts.ondemand.com/saml2/idp/sso</EM>.&nbsp;</LI><LI>The business application is configured in IAS to pass all authentication requests to Azure AD as its corporate IdP. Therefore, IAS sends an OAuth authorization request to the Azure AD tenant's OAuth authorization endpoint.&nbsp;</LI><LI>The user gets prompted by Azure AD to enter the credentials. Upon successful authentication, Azure AD sends the authorization code to IAS by redirecting the user's web browser to the URI specified in the previous request.&nbsp;</LI><LI>IAS receives the authorization code and sends an access token request to Azure AD's token. Azure AD issues an access token and refresh token (RT(AAD)IAS which is cached for later use in step for the authenticated user with an audience set to the IAS tenant's OIDC name.&nbsp;</LI><LI>The BTP business application requests a <EM>client assertion</EM> from the IAS tenant to use it in the subsequent requests for the token exchange via the IAS tenant's OIDC proxy. The client application sends a token request to the IAS tenant's token endpoint. The POST request is authenticated with the client ID and secret of the business application in IAS. The client assertion from IAS takes the form of a signed JWT that proofs the application's identity to AAD when requesting tokens via the IAS corporate IdP OIDC proxy.&nbsp;</LI><LI>The business application exchanges the IAS-issued ID token into an Azure AD-issued access token via the IAS tenant's OIDC proxy token exchange endpoint. The POST request uses the assertion parameter to pass the base64-encoded IAS ID token of the user.&nbsp;</LI><LI>IAS token service sends a refresh token request using RT(AAD)IAS cached in step 5 to obtain a new access token AT(AAD)APP for the business application,&nbsp;</LI><LI>The business application uses the Azure AD On-behalf-Of (ObO) flow for requesting the access token&nbsp;&nbsp;</LI><LI>Finally, the business application calls the ServiceNow to take actions to the signed-in user's tasks.&nbsp;</LI><LI>ServiceNow validate the token using OIDC provider to verify ID tokens configuration with the same application registered in Azure which issues an access token and refresh token in step 5.&nbsp;</LI></OL><P><FONT size="4"><STRONG>3. User provisioning - Azure SAP</STRONG></FONT></P><P>Use SAP Cloud Identity Services - Identity Provisioning to provision users from Microsoft Azure Active Directory to SAP Cloud Identity Services - Identity Authentication.&nbsp;</P><P><STRONG><FONT size="4">4. User provisioning &amp; SSO - Azure-ServiceNow</FONT></STRONG></P><OL><LI>Use ServiceNow enterprise application in Azure to provision users from Microsoft Azure Active Directory to ServiceNow instance&nbsp;</LI><LI>Use the same ServiceNow enterprise application created in step 13 in Azure to authenticate users from Microsoft Azure Active Directory to ServiceNow instance&nbsp;</LI></OL><P><FONT size="4"><STRONG>5. Technical service flow</STRONG></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_1-1721389027561.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139026i46BDAAB0DAC790CD/image-size/large?v=v2&amp;px=999" role="button" title="ITCE_1-1721389027561.png" alt="ITCE_1-1721389027561.png" /></span></P><P>You need to create integration user for SAP Technical connection&nbsp;and choose how SAP Task Center will authenticate when technical connection is used (delta jobs in SAP are using this technical connection)</P><P>For example, you can use Basic Auth or OAuth:&nbsp;</P><OL><LI>For basic auth provide username and password to the team who is configuring the connection to ServiceNow.&nbsp;</LI><LI>The BTP business application requests a <EM>client assertion</EM> from the IAS tenant to use it in the subsequent requests for the token exchange via the IAS tenant's OIDC proxy.</LI><LI>For OAuth follow these steps in ServiceNow (account with admin role is required)&nbsp;<OL class="lia-list-style-type-lower-alpha"><LI>Open System OAuth -&gt; Application Registry. Click New and choose "Create an OAuth API endpoint for external clients". Configure the record and share username, user password, client id and client secret with the team configuring the connection to ServiceNow&nbsp;</LI></OL></LI></OL><P><FONT size="4"><STRONG>6. Register the applications in Azure AD for IAS tenant and SN OIDC provider to verify ID tokens.&nbsp;</STRONG></FONT></P><P>The token exchange and OIDC proxy setup between the SN, IAS, and the Azure AD tenant, requires a trust relationship which is established by registering one application in the Azure AD tenant&nbsp;&nbsp;&nbsp;&nbsp;</P><P>“SAPIASTenant” represents the SAP Cloud Identity Service tenant.<BR /><BR /><STRONG>Step 1</STRONG><BR />Login to <A href="https://portal.azure.com/" target="_blank" rel="noopener nofollow noreferrer">Azure Portal</A> (e.g. with your Microsoft 365 E5 developer subscription’s admin account) and select <STRONG>Azure Active Directory </STRONG>from the portal menu.&nbsp;&nbsp;</P><P>Select <STRONG>App registrations </STRONG>from the left-side menu.&nbsp;&nbsp;</P><P><STRONG>Step 2</STRONG><BR />Click <STRONG>+ New registration&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_4-1721391713497.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139143i95F1F1B49D0BDFA3/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_4-1721391713497.png" alt="ITCE_4-1721391713497.png" /></span></P><P><STRONG>Step 3&nbsp;<BR /></STRONG>Enter "&lt;SAP IAS Tenant&gt;" for the <STRONG>Name </STRONG>of the new application registration.&nbsp;&nbsp;</P><P>Replace &lt;SAP IAS Tenant&gt; with your friendly name&nbsp;&nbsp;</P><P>Select "Web" from the dropdown list in the <STRONG>Redirect UR I </STRONG>section.&nbsp;&nbsp;</P><P>Enter your IAS tenant's <STRONG>redirect UR I</STRONG>in the Redirect URI section's text field:<EM><U>https://&lt;IAS</U></EM><EM>tenant name&gt;.accounts.ondemand.com/oauth2/callback.</EM>Replace &lt;IAS tenant name&gt; with your tenant's name.</P><P>Click <STRONG>Register</STRONG>.&nbsp;&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_5-1721391793724.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139144iF19D6555EB9974F6/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_5-1721391793724.png" alt="ITCE_5-1721391793724.png" /></span></P><P><STRONG>Step 4</STRONG><BR /><SPAN>Copy the newly generated <STRONG>Application (client) ID </STRONG>to a temporary text file. You will need it in the next step for deploying the sample application.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_6-1721391924140.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139146i52D8C3E06BC2A392/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_6-1721391924140.png" alt="ITCE_6-1721391924140.png" /></span></P><P><STRONG>Step 5<BR /></STRONG>Select <STRONG>Manifest </STRONG>from the navigation menu to edit the application registration's manifest file.&nbsp;&nbsp;<BR />Change the value for the field "accessTokenAcceptedVersion" from null to <STRONG>2</STRONG>.&nbsp;&nbsp;&nbsp;&nbsp;<BR /><SPAN>Click <STRONG>Save</STRONG>.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_7-1721391960742.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139147iFB4CEBAED9F60E2C/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_7-1721391960742.png" alt="ITCE_7-1721391960742.png" /></span></P><P><STRONG><FONT size="4"><BR />7. Configure trust to the IAS tenant in Azure AD</FONT></STRONG></P><P>Trust to the IAS tenant is configured in Azure AD with a new federated identity credential. In addition, a client secret is required for the initial token exchange in step 5 of figure 1. Both credentials will be configured for the application registrations in the following step.&nbsp;&nbsp;</P><P><STRONG>Step 6</STRONG><BR />Select the <EM>SAPIASTenant </EM>app from the list. (created in step 3)&nbsp;&nbsp;<BR />Select <STRONG>Certificates &amp; secrets </STRONG>from the menu and switch to the <STRONG>Client secrets </STRONG>tab.&nbsp;&nbsp;<BR /><SPAN>Click <STRONG>+ New client secret</STRONG>.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_8-1721392162592.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139148i69480B049CF5D253/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_8-1721392162592.png" alt="ITCE_8-1721392162592.png" /></span></P><P><STRONG>Step 7<BR /></STRONG>Enter "&lt;SAPOIDCProxy&gt;" for the <STRONG>Description</STRONG>.&nbsp;&nbsp;<BR /><SPAN>Click</SPAN> <STRONG>Add</STRONG><SPAN>.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_9-1721392189260.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139149iD7F1930022AE6587/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_9-1721392189260.png" alt="ITCE_9-1721392189260.png" /></span></P><P><STRONG>Step 8</STRONG><BR /><SPAN>Click <STRONG>Copy to clipboard </STRONG>in the <STRONG>Value </STRONG>column and paste it to a temporary text file. You will need it later in the setup process.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_10-1721392218908.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139150i771633F0E6266613/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_10-1721392218908.png" alt="ITCE_10-1721392218908.png" /></span></P><P><STRONG>Step 9<BR /></STRONG>Create another one secret for ServiceNow&nbsp;&nbsp;&nbsp;<BR />Enter "&lt;ServiceNow&gt;" for the <STRONG>Description</STRONG>.&nbsp;&nbsp;<BR />Click <STRONG>Add</STRONG>.&nbsp;&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_11-1721392246014.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139151iF29340E5CB799372/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_11-1721392246014.png" alt="ITCE_11-1721392246014.png" /></span></P><P><FONT size="4"><STRONG><BR />8. Configure permissions and scopes in Azure AD</STRONG></FONT></P><P>To request the Outlook calendar event on behalf of the user, the business application (SAPBTPGraphApp) requires the Graph API permission <EM>Calendars.Read</EM>. SAPBTPGraphApp also exposes the custom scope "<EM>token.exchange".</EM>This scope is referred to as a (downstream) API permission for the SAPIASTenant application registration and required for steps 7 and 8 in figure 1. For the initial token request to Azure AD (see step 5 in figure 1 and figure 2), the SAPIASTenant application exposes the custom scope "<EM>ias.access</EM>".&nbsp;&nbsp;</P><P><STRONG>Step 10</STRONG><BR /><SPAN>Go to </SPAN><STRONG>Expose an API </STRONG><SPAN>in the navigation menu. &nbsp;<BR /></SPAN><SPAN>Click <STRONG>+ Add a scope</STRONG>.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_12-1721392320639.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139152iC13AA6059661C3AD/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_12-1721392320639.png" alt="ITCE_12-1721392320639.png" /></span></P><P><STRONG>Step 11<BR /></STRONG>Accept the default value for the <STRONG>Application ID URI</STRONG>.&nbsp;&nbsp;<BR /><SPAN>Click <STRONG>Save and continue</STRONG>.&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_13-1721392351197.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139153i02AC97FECE81EE70/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_13-1721392351197.png" alt="ITCE_13-1721392351197.png" /></span></P><P><STRONG>Step 12<BR /></STRONG>Enter "ias.access" for the new <STRONG>Scope name</STRONG>. Provide an <STRONG>Admin consent display name </STRONG>and <STRONG>description</STRONG>.&nbsp;&nbsp;<BR />Click <STRONG>Add scope</STRONG>. &nbsp;<BR /><SPAN><BR /><U>Scope name:&nbsp;<BR /></U></SPAN>ias.access&nbsp;</P><P><U>Admin consent display name:&nbsp;</U><BR />IAS Tenant Access&nbsp;<BR /><SPAN><BR /><U>Admin consent description:&nbsp;</U><BR />Access to SAP Cloud Identity service Application</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_14-1721392410098.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139154iD03A0444F56921A5/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_14-1721392410098.png" alt="ITCE_14-1721392410098.png" /></span></P><P><STRONG>Step 13</STRONG><BR /><SPAN>Copy the full-qualified URI of the new scope (<I>api://&lt;client id&gt;/ias.access</I>) from the clipboard to temporary text file. It will be used in a later setup step.&nbsp;&nbsp;<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_15-1721392473937.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139155i3270EA357C5861C0/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_15-1721392473937.png" alt="ITCE_15-1721392473937.png" /></span></P><P><STRONG>Step 14<BR /></STRONG>Add <STRONG>Optional</STRONG> claim to the token.&nbsp;&nbsp;<BR />Navigate to <STRONG>Token</STRONG> <STRONG>configuration</STRONG>&nbsp;&nbsp;<BR />+ Add optional claim&nbsp;&nbsp;<BR />Token Type - ID&nbsp;&nbsp;<BR /><SPAN>Select "email" and add&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_16-1721392521039.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139156i6522FD311C891215/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_16-1721392521039.png" alt="ITCE_16-1721392521039.png" /></span></P><P><STRONG>Step 15</STRONG><BR />If message about API permissions required appear&nbsp;&nbsp;<BR />select the checkbox - Turn On Microsoft Graph email permission (required for claim to appear in token)&nbsp;&nbsp;<BR /><SPAN>Click<STRONG> "add"</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_17-1721392551461.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139157i7FECBDEB8BF05AEE/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_17-1721392551461.png" alt="ITCE_17-1721392551461.png" /></span></P><P><STRONG>Step 16</STRONG><BR /><SPAN>Grant<STRONG> Admin Consent</STRONG>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_18-1721392573010.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139158iA2D9063ECC43A14F/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_18-1721392573010.png" alt="ITCE_18-1721392573010.png" /></span></P><P><STRONG>Step 17<BR /></STRONG>Navigate to authentication&nbsp;&nbsp;<BR />Scroll down to Implicit grant and hybrid flows&nbsp;&nbsp;<BR />Select the tokens you would like to be issued by the authorization endpoint:&nbsp;&nbsp;<BR />Select the checkbox<STRONG> ID tokens&nbsp;</STRONG>&nbsp;<BR /><SPAN>Click<STRONG> Save&nbsp;</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_19-1721392604385.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139159i48375DDD83A980ED/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_19-1721392604385.png" alt="ITCE_19-1721392604385.png" /></span></P><P><FONT size="4"><STRONG><BR />9. Configure Azure as an OAUTH OIDC provider on ServiceNow</STRONG></FONT></P><P><STRONG>Step 18</STRONG><BR />Open the ServiceNow instance&nbsp;&nbsp;<BR />Navigate to All &gt; System OAuth &gt; Application Registry.&nbsp;&nbsp;<BR /><SPAN>Click New, click Configure an OIDC provider to verify ID tokens.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_20-1721392708919.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139160i510A6B332A47DAE8/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_20-1721392708919.png" alt="ITCE_20-1721392708919.png" /></span></P><P><STRONG>Step 19<BR /></STRONG>Fill the form.&nbsp;&nbsp;&nbsp;&nbsp;</P><TABLE width="590"><TBODY><TR><TD width="154"><P>Field&nbsp;&nbsp;</P></TD><TD width="436"><P>Description&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Name&nbsp;&nbsp;</P></TD><TD width="436"><P>A unique name that identifies the OAuth OIDC entity.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Client ID&nbsp;&nbsp;</P></TD><TD width="436"><P>The client ID of the application registered in Azure in step 4. The instance uses the client ID when requesting an access token.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Client Secret&nbsp;&nbsp;</P></TD><TD width="436"><P>The client secret of the application registered in Azure in step 31.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>OAuth OIDC Provider Configuration&nbsp;&nbsp;</P></TD><TD width="436"><P>The OIDC provider (ADFS, Auth0, Azure AD, Google, Okta) can be used to validate the JWT token. Click the record of your OIDC provider configuration to validate the User Claim and User Field are set appropriately. If you check Enable JTI claim verification, the ServiceNow JWT token validation also validates the JTI sent by the provider.&nbsp;&nbsp;</P><P>See next step for more details&nbsp;&nbsp;</P><P>&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Clock Skew&nbsp;&nbsp;</P></TD><TD width="436"><P>The number, in seconds, for the constraint to be considered valid. The default is 300.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Comments&nbsp;&nbsp;</P></TD><TD width="436"><P>Additional information to associate with the application.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Application&nbsp;&nbsp;</P></TD><TD width="436"><P>The name of the application containing this entity.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Accessible from&nbsp;&nbsp;</P></TD><TD width="436"><P>Select an option to make it accessible from all application scopes, or this application scope only. (all scope by default)&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Enforce Token Restrictions&nbsp;&nbsp;</P></TD><TD width="436"><P>Select to only allow tokens to be used with APIs set to allow the authentication profile. You can set grant access using an API access policy. For more information, see<A href="https://docs.servicenow.com/bundle/washingtondc-platform-security/page/integrate/authentication/task/create-api-access-policy.html" target="_blank" rel="noopener nofollow noreferrer">Create REST API access policy</A>.&nbsp;&nbsp;</P><P>Default: Unselected.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Active&nbsp;&nbsp;</P></TD><TD width="436"><P>Select the check box to make the OAuth application active.&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Redirect URL&nbsp;&nbsp;</P></TD><TD width="436"><P>The URL of the OAuth application for receiving the authorization code. (automatically added when save the application&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>End Session Endpoint URL&nbsp;&nbsp;</P></TD><TD width="436"><P>The URL endpoint which enables after a session ends.(not required&nbsp;&nbsp;</P></TD></TR><TR><TD width="154"><P>Enable force authentication&nbsp;&nbsp;</P></TD><TD width="436"><P>Option to enable force authentication for users. (not required)&nbsp;&nbsp;</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_22-1721392758973.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139162iDC77EF643B60AB1A/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_22-1721392758973.png" alt="ITCE_22-1721392758973.png" /></span></P><P><STRONG>Step 20<BR /></STRONG>OAuth OIDC Provider Configuration&nbsp;&nbsp;<BR /><SPAN>Click on the search icon and then New</SPAN></P><P><U>OIDC Provider</U> - A unique name that identifies the OIDC provider&nbsp;&nbsp;</P><P><U>OIDC Metadata URL</U> - the OIDC provider OpenID Connect metadata document&nbsp; (details in next step)&nbsp;&nbsp;</P><P>User claim: email&nbsp;&nbsp;<BR />User Field: the field in SN which contain mail value&nbsp;&nbsp;</P><P><SPAN>Enable JTI claim verification: Disable</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_24-1721392870114.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139164i79DF73CAB66764A6/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_24-1721392870114.png" alt="ITCE_24-1721392870114.png" /></span></P><P><STRONG>Step 21</STRONG><BR /><SPAN>Navigate to azure application which created in step 3 - Overview - Endpoints - OpenID Connect metadata document&nbsp;&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_25-1721392902312.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139165iCF1D5CD29ACA04B2/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_25-1721392902312.png" alt="ITCE_25-1721392902312.png" /></span></P><P><STRONG>Step 22<BR /></STRONG>Navigate to Oauth Entity Scope and add&nbsp;&nbsp;<BR />offline_access,&nbsp;&nbsp;&nbsp;<BR />Open id&nbsp;&nbsp;</P><P><SPAN>Click Update.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_26-1721392944387.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139166i849E44A753A0B5B7/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_26-1721392944387.png" alt="ITCE_26-1721392944387.png" /></span></P><P><STRONG>Step 23<BR /></STRONG>Navigate to the Oauth Entity Profiles which is automatically created when Save Oauth OIDC entity.&nbsp;&nbsp;<BR /><BR />Verify that the Grant type is is Resource Owner Password Credentials&nbsp;<SPAN>and then add the OAuth Entity Scopes created in the above step.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_27-1721392984612.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139167iAC57E49CE9075C33/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_27-1721392984612.png" alt="ITCE_27-1721392984612.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_28-1721392990570.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139168i8C828D24A90815FC/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_28-1721392990570.png" alt="ITCE_28-1721392990570.png" /></span></P><P><STRONG>Step 24</STRONG><BR /><SPAN>Add Auth Scope:&nbsp;<BR />useraccount</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_29-1721393015741.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139169i6D24846BA6911851/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_29-1721393015741.png" alt="ITCE_29-1721393015741.png" /></span></P><P><STRONG>Step 25<BR /></STRONG>Navigate to the created in step 34 Oauth OIDC Entity and copy the redirect url&nbsp;&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_31-1721393042174.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139171i5E7E9D23B1E5C62E/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_31-1721393042174.png" alt="ITCE_31-1721393042174.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_32-1721393043578.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139172i287AE8534394A9EB/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_32-1721393043578.png" alt="ITCE_32-1721393043578.png" /></span></P><P><STRONG>Step 26<BR /></STRONG>Navigate to Azure App registered in step 3&nbsp;&nbsp;<BR />Authentication&nbsp;&nbsp;<BR />Add the url from the previous step. (do not remove or replace the url added in step 3 when create the application)&nbsp;&nbsp;<BR /><SPAN>Save</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_33-1721393081723.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139173i02E0E7383A814392/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_33-1721393081723.png" alt="ITCE_33-1721393081723.png" /></span><BR /><BR /></P><P><FONT size="4"><STRONG>10. Setup user provisioning - Azure &gt;&gt; SAP</STRONG></FONT></P><P><STRONG>Step 27</STRONG><BR /><SPAN>Launch a browser window and access your Azure portal using the URL: </SPAN><SPAN><A href="https://portal.azure.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>https://portal.azure.com/</STRONG></A></SPAN><STRONG><SPAN>.&nbsp;</SPAN></STRONG></P><P><FONT color="#3366FF"><STRONG><SPAN>You will need to authenticate to your Azure AD using your admin credentials.</SPAN></STRONG><SPAN>&nbsp;</SPAN></FONT></P><P><STRONG>Step 28<BR /></STRONG>Click <STRONG>Microsoft Entra ID.</STRONG>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_34-1721393313874.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139174i4701DA7957C33F35/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_34-1721393313874.png" alt="ITCE_34-1721393313874.png" /></span></P><P><STRONG>Step 29</STRONG><BR />Click <STRONG>App Registration</STRONG> &gt;&gt;<STRONG> New registration</STRONG>.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_35-1721393339071.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139175i2ED7A7EB0C5AEFBE/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_35-1721393339071.png" alt="ITCE_35-1721393339071.png" /></span></P><P><STRONG>Step 30<BR /></STRONG>Specify a name for your app and click <STRONG>Register</STRONG>&nbsp;</P><P><STRONG>Step 31<BR /></STRONG>Click <STRONG>API permission &gt;&gt; Add a permission</STRONG>.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_36-1721393393375.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139176iD72EC529CCFD1A15/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_36-1721393393375.png" alt="ITCE_36-1721393393375.png" /></span></P><P><STRONG>Step 32</STRONG><BR /><SPAN>Select <STRONG>Microsoft Graph</STRONG>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_37-1721393415459.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139177i97568B444FAC1AEF/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_37-1721393415459.png" alt="ITCE_37-1721393415459.png" /></span></P><P><STRONG>Step 33<BR /></STRONG>Click <STRONG>Application permissions</STRONG>.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_38-1721393439583.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139178i7F1957CD8E10E786/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_38-1721393439583.png" alt="ITCE_38-1721393439583.png" /></span></P><P><STRONG>Step 34<BR /></STRONG>From the list of API permissions, expand <STRONG>User</STRONG> and select <STRONG>User.Read.All.</STRONG>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_39-1721393458635.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139179i6E39C79EBBAE41A9/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_39-1721393458635.png" alt="ITCE_39-1721393458635.png" /></span></P><P><STRONG>Step 35<BR /></STRONG>From the API list also select <STRONG>Group &gt;&gt; Read.All</STRONG> and <STRONG>Directory &gt;&gt; Read.All</STRONG>.&nbsp; Click <STRONG>Add permissions</STRONG> at the bottom of the screen once done.&nbsp;</P><P><STRONG>Step 36<BR /></STRONG>The permissions are not granted by default.&nbsp; To grant the permissions, click <STRONG>Grant admin consent for Default Directory</STRONG>.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_40-1721393500214.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139181i9C2A8D19DA28A349/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_40-1721393500214.png" alt="ITCE_40-1721393500214.png" /></span></P><P><STRONG>Step 37</STRONG><BR /><SPAN>Click Yes on the popup message and confirm that all permissions are granted.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_41-1721393517168.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139182i38D86F56F4F4B9C4/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_41-1721393517168.png" alt="ITCE_41-1721393517168.png" /></span></P><P><STRONG>Step 38</STRONG><BR /><SPAN>Click <STRONG>Overview </STRONG>from the left panel.&nbsp; Make a note of the <STRONG>Application (client) ID</STRONG>.&nbsp; You will need this later when creating the source system in IPS.&nbsp;&nbsp; Click <STRONG>Add a certificate or secret</STRONG>.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_42-1721393534448.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139183i097E17CB56F3FCE9/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_42-1721393534448.png" alt="ITCE_42-1721393534448.png" /></span></P><P><STRONG>Step 39</STRONG><BR /><SPAN>Click <STRONG>New client secret</STRONG>.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_43-1721393550840.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139184iB3D59E6F975F9978/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_43-1721393550840.png" alt="ITCE_43-1721393550840.png" /></span></P><P><STRONG>Step 40</STRONG><BR /><SPAN>Specify a description and expiry time for the client secret.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_44-1721393570018.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139185i3EE4774B880737D3/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_44-1721393570018.png" alt="ITCE_44-1721393570018.png" /></span></P><P><STRONG>Step 41</STRONG><BR /><SPAN>You should have client secret added successfully.&nbsp; Make a note of the value field as you will need it later when creating the source system in IPS.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_45-1721393595594.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139186iE22B34B9F29FA22D/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_45-1721393595594.png" alt="ITCE_45-1721393595594.png" /></span></P><P><STRONG>Step 42</STRONG><BR /><SPAN>Navigate to the main overview page of Azure AD and make a note of your<STRONG> Primary domain</STRONG>.&nbsp; You will need this value when creating the source system in IPS.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_46-1721393612994.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139187i8653F93DEC94A456/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_46-1721393612994.png" alt="ITCE_46-1721393612994.png" /></span></P><P><STRONG>Step 43<BR /></STRONG>Follow the blog&nbsp; <A href="https://community.sap.com/t5/technology-blogs-by-sap/provision-users-from-microsoft-azure-ad-to-sap-cloud-identity-services/ba-p/13546054" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/provision-users-from-microsoft-azure-ad-to-sap-cloud-identity-services/ba-p/13546054</A> and specific hint on filtering users by a group in Identiy Provisionning Source system Properties, add aad.group.filter=displayName eq '&lt;group_name&gt;':&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_47-1721393638444.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139188iA3AB7BF33A35871F/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_47-1721393638444.png" alt="ITCE_47-1721393638444.png" /></span></P><P><FONT size="4"><STRONG><BR />11. Establish trust between task sub account and IAS</STRONG></FONT></P><P><STRONG>Step 44</STRONG><BR /><SPAN>Go to BTP Cockpit-&gt;Security-&gt;Trust Configuration&nbsp;</SPAN></P><P><STRONG>Step 45</STRONG><BR /><SPAN>Select "Establish trust" and choose the IAS</SPAN></P><P><STRONG>Step 46</STRONG><BR />Select "Establish trust" and choose the IAS&nbsp;</P><P>Note: This creates an OIDC application in IAS for the subaccount&nbsp;</P><P><SPAN>NB: <STRONG>Task Center/Service Now integration works only with OIDC trust between Task Center subaccount and IAS</STRONG></SPAN></P><P><STRONG>Step 47<BR /></STRONG>This would create an application in iAS&nbsp;</P><P>For more information, you can check: <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/establish-trust-and-federation-between-uaa-and-identity-authentication" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/btp/sap-business-technology-platform/establish-trust-and-federation-between-uaa-and-identity-authentication</A><BR /><BR /></P><P><FONT size="4"><STRONG>12. Setup the corporate identity provider and OIDC proxy in SAP Cloud Identity tenant</STRONG></FONT></P><P><STRONG>Step 48</STRONG><BR />Login as an administrator to your SAP Cloud Identity service administration console at&nbsp;<BR /><EM><U>https://&lt;IAStenant<SPAN> name&gt;.accounts.ondemand.com/admin&nbsp;</SPAN></U></EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_48-1721393838179.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139189i3779AF1F8EA76B8B/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_48-1721393838179.png" alt="ITCE_48-1721393838179.png" /></span></P><P><STRONG>Step 49<BR /></STRONG>Go to <STRONG>Identity Providers &gt; Corporate Identity Providers </STRONG>and click <STRONG>Create</STRONG>.&nbsp;&nbsp;<BR /><SPAN>Enter a <STRONG>Display name</STRONG>(e.g. "Azure Active Directory") and click <STRONG>Save</STRONG>.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_0-1721395913437.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139201iC0CD8E38F7476244/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_0-1721395913437.png" alt="ITCE_0-1721395913437.png" /></span></P><P><STRONG>Step 50</STRONG><BR /><SPAN>Click on <STRONG>Identity Provider Type </STRONG>from the Trust settings of the new corporate identity provider.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_1-1721395934806.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139202i579741B52C780B6E/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_1-1721395934806.png" alt="ITCE_1-1721395934806.png" /></span></P><P><STRONG>Step 51<BR /></STRONG>Select <STRONG>OpenID Connect Compliant </STRONG>from the list.&nbsp;&nbsp;<BR /><SPAN>Click <STRONG>Save</STRONG>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_2-1721395961468.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139203i560EAD88536F6F15/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_2-1721395961468.png" alt="ITCE_2-1721395961468.png" /></span></P><P><STRONG>Step 52</STRONG><BR /><SPAN>Click on <STRONG>OpenID Connect Configuration </STRONG>from the Trust settings of the new corporate identity provider.</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_3-1721395983702.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139204i7020E307084663E1/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_3-1721395983702.png" alt="ITCE_3-1721395983702.png" /></span></P><P><STRONG>Step 53<BR /></STRONG>Enter your Azure AD tenant's OIDC <STRONG>Discovery URL </STRONG><U>(</U><A href="https://login.microsoftonline.com/%3cAAD" target="_blank" rel="noopener nofollow noreferrer">https://login.microsoftonline.com/&lt;AAD</A><U> tenant ID&gt;/v2.0)</U>&nbsp;Click <STRONG>Load</STRONG>.&nbsp;&nbsp;<BR /><BR /><SPAN>The Issuer field gets populated from the loaded Azure AD tenant's OIDC metadata.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_4-1721396016741.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139205i729511E4B37B92F0/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_4-1721396016741.png" alt="ITCE_4-1721396016741.png" /></span></P><P><STRONG>Step 54</STRONG><BR />Enter the SAPIASTenant's client ID in the <STRONG>Client ID </STRONG>field. In the <STRONG>Client Secret </STRONG>field, enter the value of the<EM>OIDCProxy</EM>secret copied in <STRONG>step 8</STRONG>.&nbsp;&nbsp;</P><P><SPAN>Click <STRONG>Validate</STRONG>.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_5-1721396041390.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139206i1C5E71AA2AE4C9B9/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_5-1721396041390.png" alt="ITCE_5-1721396041390.png" /></span></P><P><STRONG>Step 55<BR /></STRONG>Verify a successful validation of the OIDC configuration.&nbsp;&nbsp;</P><P><SPAN>Click <STRONG>OK</STRONG>.&nbsp;<BR /><BR /></SPAN><STRONG>Step 56</STRONG><BR /><SPAN>Click <STRONG>+ Add&nbsp;</STRONG>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_6-1721396081656.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139207i45640799A988C0DB/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_6-1721396081656.png" alt="ITCE_6-1721396081656.png" /></span></P><P><STRONG>Step 57<BR /></STRONG>Copy and paste the full-qualified URI of the SAPIASTenant application's custom scope (<EM>api://&lt;client id&gt;/ias.access) </EM>copied in <STRONG>step 13 </STRONG>for the new scope.&nbsp;&nbsp;</P><P><SPAN>Click <STRONG>Save</STRONG>.&nbsp;&nbsp;</SPAN></P><P><SPAN><STRONG>Step 58<BR /></STRONG></SPAN>Click<STRONG>+ Add </STRONG>again and add the scope:&nbsp;<BR />"email"&nbsp;<BR />"openid"&nbsp;<BR />"offline_access"&nbsp;</P><P><SPAN>Click <STRONG>Save</STRONG>.&nbsp;<BR /></SPAN></P><P><SPAN><STRONG>Step 59</STRONG><BR />Click <STRONG>Save</STRONG>.&nbsp;&nbsp;<BR /></SPAN></P><P><SPAN><STRONG>Step 60<BR /></STRONG></SPAN>Go to <STRONG>Applications &amp; Resources &gt; Applications&nbsp;</STRONG>&nbsp;<BR />Select the application from <STRONG><U>"Establish trust between Task subaccount and IAS" step</U></STRONG>&nbsp;– step 47</P><P><SPAN>Click <STRONG>Attributes</STRONG><BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_7-1721396184485.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139208iC3DF6E28598F7F9F/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_7-1721396184485.png" alt="ITCE_7-1721396184485.png" /></span></P><P><STRONG>Step 61<BR /></STRONG>Navigate to Attributes and add&nbsp;&nbsp;<BR /><BR /><U>Name</U>: "xsuaa-persist-corporate-idp-token"&nbsp;<BR /><U>Source</U>: Expression&nbsp;<BR /><U>Value</U>: true&nbsp;</P><P><SPAN>Save</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_8-1721396237130.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139209iC0DBCB9FE1D12035/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_8-1721396237130.png" alt="ITCE_8-1721396237130.png" /></span></P><P><STRONG>Step 62<BR /></STRONG>Select "Conditional Authentication"&nbsp;&nbsp;<BR /><SPAN>In the "Default Identity Provider", choose the Azure provider configured in steps 48-59, Click Save<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_9-1721396411574.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139210i8708634B85151D48/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_9-1721396411574.png" alt="ITCE_9-1721396411574.png" /></span></P><P><BR /><FONT size="4"><STRONG>13. Configure destinations&nbsp;<SPAN>for SAP in the BTP sub-account</SPAN></STRONG></FONT></P><P>SAP Task Center uses destinations to connect to Service Now task provider&nbsp;</P><P> <STRONG>Client Specific configuration:</STRONG>&nbsp;</P><UL><LI><STRONG>aadTokenEndpoint</STRONG>: Azure AD token endpoint at<A href="https://login.microsoftonline.com/%3CAAD" target="_blank" rel="noopener nofollow noreferrer"><EM>https://login.microsoftonline.com/&lt;AAD</EM></A> <EM>tenant ID&gt;/oauth2/v2.0/token&nbsp;</EM>&nbsp;</LI><LI><STRONG>iasTokenEndpoint</STRONG>: SAP Cloud Identity service tenant's token endpoint at<EM><U>https://&lt;IAS</U>tenant name&gt;.accounts.ondemand.com/oauth2/token&nbsp;</EM>&nbsp;</LI><LI><STRONG>iasTokenExchange</STRONG>: SAP Cloud Identity service's token exchange service endpoint at<EM><U>https://&lt;IAS</U>tenant name&gt;.accounts.ondemand.com/oauth2/exchange/corporateidp&nbsp;</EM>&nbsp;</LI></UL><P><STRONG>Step 63<BR /></STRONG>Go back to the <A href="https://cockpit.sap.hana.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">SAP BTP Cockpit </A>and navigate to your CF subaccount.&nbsp;&nbsp;<BR />Select <STRONG>Connectivity &gt; Destinations </STRONG>from the navigation menu.&nbsp;&nbsp;<BR /><SPAN>Click <STRONG>New Destination</STRONG>.</SPAN></P><P><SPAN><STRONG>Step 64<BR /></STRONG></SPAN>Enter the following values for the first destination:&nbsp;&nbsp;<BR /><STRONG>Refer to 6. TECHNICAL SERVICE FLOW</STRONG></P><P><SPAN>Click <STRONG>Save</STRONG>.<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_10-1721397811178.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139211i19581BA67D61F34E/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_10-1721397811178.png" alt="ITCE_10-1721397811178.png" /></span></P><P><STRONG>Step 65<BR /></STRONG>Repeat steps 63 and 64 with following values for the second destination:&nbsp;&nbsp;<BR /><BR />Refer to 10.&nbsp;CONFIGURE AZURE AS AN OAUTH OIDC PROVIDER ON THE SERVICENOW , step 21.</P><P><U>AuthnContextClassRef</U> = urn:oasis:names:tc:SAML:2.0:ac:classes:X509&nbsp;<BR /><U>clientKey&nbsp;</U>= token service password=client secret&nbsp;<BR /><U>Token service user</U> = client id&nbsp;</P><P>Task Center documentation for Third Party destination setup: <A href="https://help.sap.com/docs/task-center/sap-task-center/connect-third-party-task-provider-and-sap-task-center" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/task-center/sap-task-center/connect-third-party-task-provider-and-sap-task-center</A> &nbsp;</P><P>Click <STRONG>Save</STRONG>.&nbsp;&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ITCE_11-1721397858391.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/139212iB88EAADFF8D1DFD8/image-size/medium?v=v2&amp;px=400" role="button" title="ITCE_11-1721397858391.png" alt="ITCE_11-1721397858391.png" /></span></P><P><FONT size="4"><STRONG>14. Test the scenario&nbsp;</STRONG></FONT></P><P><SPAN><STRONG>Step 66<BR /></STRONG>Use SAP Task Center Administration app to check the status of the configured connector destination, following: <A href="https://help.sap.com/docs/task-center/sap-task-center/working-with-task-center-administration-app" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/task-center/sap-task-center/working-with-task-center-administration-app</A><STRONG><BR /></STRONG></SPAN></P><P><SPAN><STRONG>Step 67<BR /></STRONG>Use SAP Task Center Web app, to validate that tasks from the new destination are seen by business users (for more information, see: <A href="https://help.sap.com/docs/task-center/sap-task-center/sap-task-center-web-app" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/task-center/sap-task-center/sap-task-center-web-app</A>)<STRONG><BR /></STRONG></SPAN></P> 2024-07-19T16:10:57.124000+02:00