https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-Graph-blog-posts.xml SAP Community - SAP Graph 2024-05-20T20:01:04.389205+00:00 python-feedgen SAP Graph blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-members/cap-wrapper-for-sap-graph-api/ba-p/13553469 CAP Wrapper for SAP Graph API 2023-07-05T23:25:01+02:00 shivamshukla12 https://community.sap.com/t5/user/viewprofilepage/user-id/16613 <H2 id="toc-hId-962079238">Overcoming Data Integration Challenges: <A href="https://help.sap.com/docs/SAP_GRAPH/84bbf6acb5384861add4cb6939bef647/af92ea0700ab4c59a3cfcd79158fdd56.html?locale=en-US" target="_blank" rel="noopener noreferrer">Introducing SAP Graph</A> as a Unified Solution for Multiple Business Systems</H2><BR /> &nbsp;<BR /> <UL><BR /> <LI><STRONG>Business Problem</STRONG> -- You got multiple business systems for example SAP S/4 HANA Cloud / SAP SuccessFactors / SAP S/4 HANA System on Premise but bringing data from these systems using one Unified service is a challenge but that Change got a beautiful solution and that is <A href="https://help.sap.com/docs/SAP_GRAPH/84bbf6acb5384861add4cb6939bef647/af92ea0700ab4c59a3cfcd79158fdd56.html?locale=en-US" target="_blank" rel="noopener noreferrer">SAP Graph</A></LI><BR /> </UL><BR /> <H4 id="toc-hId-1023731171"></H4><BR /> <UL><BR /> <LI><STRONG>SAP Graph --</STRONG> "Streamlining functionality, we provide developers with a single connected and unified view of all their business data through a single endpoint for all purposes."</LI><BR /> </UL><BR /> <H3 id="toc-hId-698134947"></H3><BR /> <H3 id="toc-hId-501621442"><STRONG>Resources for learning:</STRONG></H3><BR /> <OL><BR /> <LI>Thank you SAP HANA Academy for such a great <A href="https://www.youtube.com/watch?v=GwWzOAdjAAg" target="_blank" rel="nofollow noopener noreferrer">Youtube</A> Series on SAP Graph please follow it for building your solutions&nbsp; end-2-end.</LI><BR /> <LI>You can also follow SAP Graph tag on SAP Community and <A style="font-size: 1rem" href="https://blogs.sap.com/2021/06/08/part-1-introduction-to-sap-graph/" target="_blank" rel="noopener noreferrer">blog series on SAP Graph</A></LI><BR /> </OL><BR /> &nbsp;<BR /> <H3 id="toc-hId-305107937"><STRONG>Pre-requisites:</STRONG></H3><BR /> <OL><BR /> <LI>&nbsp; &nbsp; &nbsp;BTP Cockpit trial account or Paid Account</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;SAP graph Free tier Services ( Check SAP Discovery Center for more detail )</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;Create Graph instance and Key Service Key ( Download and Save it )</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;Graph Instance parameters - ( Download and save it ) More details on HANA Academy GitHub&nbsp; - &gt; SAP Graph</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;Go to PowerShell or VS Code and install graphctl tool for graph connect</LI><BR /> </OL><BR /> &nbsp;<BR /> <H3 id="toc-hId-108594432">Setup Graph Environment:</H3><BR /> <OL><BR /> <LI>Get your free tier service from SAP Discovery center and add the entitlement in your BTP Subaccount</LI><BR /> <LI>Download your graph key and store it somewhere in your system ( I will not go into detail as there are already few blogs and series on how to set it up but this is needed for start hence adding it for connect)</LI><BR /> </OL><BR /> <H6 style="overflow: hidden;margin-bottom: 0px" id="toc-hId-299329084">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/1-30.png" height="85" width="603" /></H6><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId--413515297">Sandbox API Destination Configuration:</H2><BR /> <OL><BR /> <LI>Get your API Key and API url from SAP' API Sandbox system.</LI><BR /> <LI>Business Acceleration Hub -&nbsp; <A href="https://api.sap.com/api/businesspartner/overview" target="_blank" rel="noopener noreferrer">https://api.sap.com/api/businesspartner/overview</A></LI><BR /> <LI>Login with your credentials - go to -&gt; Settings -&gt; Show API Key - Copy and Save it</LI><BR /> <LI>Somewhere Create destination in BTP Cockpit Destination Config will look like this :-</LI><BR /> </OL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/2-14.png" height="251" width="588" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId--480946083"></H3><BR /> <H3 id="toc-hId--677459588"><STRONG>Login to BTP Subaccount : ( CF LOGIN -a &lt;API&gt; )</STRONG></H3><BR /> <OL><BR /> <LI>Connect your BTP Subaccount - Enter your registered email ID and Password and select working Dev Space</LI><BR /> <LI>Install graphctl tool using npm : Execute command - <STRONG>npm i <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1387241">@Sap</a>/graph-toolkit</STRONG></LI><BR /> </OL><BR /> <H3 id="toc-hId--949204462"></H3><BR /> <H3 style="overflow: hidden;margin-bottom: 0px" id="toc-hId--1145717967"><STRONG>Login to SAP GRAPH Instance : ( GRAPHCTL LOGIN -F CREDENTIALS)</STRONG></H3><BR /> <H3 style="overflow: hidden;margin-bottom: 0px" id="toc-hId--1342231472"><STRONG>Execute:</STRONG></H3><BR /> <UL><BR /> <LI>&nbsp; &nbsp; &nbsp;<STRONG>graphctl login -f shagraph-creds.JSON.txt&nbsp; &nbsp; </STRONG></LI><BR /> <LI><SPAN style="text-align: center;font-size: 1rem">&nbsp; &nbsp; ( Note: This is going to open Web Browser login with your BTP Credentials and then close</SPAN><SPAN style="text-align: center;font-size: 1rem">&nbsp; &nbsp; &nbsp; &nbsp; the window )</SPAN></LI><BR /> </UL><BR /> &nbsp;<BR /> <H3 id="toc-hId--1538744977"><STRONG>Graph </STRONG>Generate &amp; Activate Config:</H3><BR /> <H3 id="toc-hId--1735258482"><STRONG>Execute:</STRONG></H3><BR /> <OL><BR /> <LI><STRONG>graphctl generate config</STRONG> -f "C:\Users\Yoga\Desktop\graph\instance-parameters.json" -i cxsales</LI><BR /> <LI><SPAN style="font-size: 1rem"><STRONG>graphctl activate config</STRONG> -f "C:\Users\Yoga\Desktop\graph\instance-parameters.json" --force</SPAN></LI><BR /> </OL><BR /> &nbsp;<BR /> <H2 id="toc-hId--1638368980"><STRONG>Graph List Config: ( GRAPHCTL LIST CONFIG )</STRONG>:</H2><BR /> <H5 id="toc-hId-1579875790">Graph is available for consumption&nbsp; &nbsp;<IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/6-9.png" height="183" width="692" /></H5><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> "The graph is now operational and ready to serve. Please generate your service keys on the graph instance and proceed to test the graph API".<BR /> <BR /> We are pleased to inform you that sap.graph is successfully serving the Cloud for Customer entities. You have the flexibility to select any entity and seamlessly integrate or link it directly to your application. This exemplifies the power of SAP Graph - an incredible technology that yields remarkable results.<BR /> <BR /> <STRONG>&nbsp;</STRONG><BR /> <H1 id="toc-hId--1737992983">Test your GRAPH API:</H1><BR /> <H3 id="toc-hId-1773654794"></H3><BR /> <H3 style="overflow: hidden;margin-bottom: 0px" id="toc-hId-1577141289">Create One GET Request in POSTMAN Client and Enter your Graph URL ( <A href="https://&lt;host&gt;/api/v1/sap.graph" target="test_blank" rel="nofollow noopener noreferrer">https://&lt;host&gt;/api/v1/sap.graph</A> )<STRONG>&nbsp;</STRONG></H3><BR /> <STRONG>Choose Authorization: Oauth 2.0 Credentials&nbsp;</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/13-2.png" /></P><BR /> <BR /> <H3 id="toc-hId-1548811475">&nbsp;Execute GET Request on Graph Endpoint:</H3><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/7-10.png" height="409" width="581" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId-1352297970">Lets GET Company Information from Graph</H3><BR /> <P style="overflow: hidden;margin-bottom: 0px">&nbsp; &nbsp; <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/8-9.png" height="414" width="582" /></P><BR /> <BR /> <H2 id="toc-hId-1449187472">Outcome:</H2><BR /> "<EM><STRONG>Graph Environment Setup: Integration with SAP Graph and SAP CX Sales Cloud APIs, Business Data Graph Generation, and Successful Testing of Graph APIs in POSTMAN Client</STRONG></EM>"<BR /> <BR /> <STRONG>Congratulations</STRONG> on your successful setup of the graph environment! It's great to hear that you have successfully integrated SAP Graph with SAP CX Sales Cloud APIs. Additionally, generating a business Data Graph for consumption and conducting successful tests of the Graph APIs in the POSTMAN client demonstrate significant progress. Well done!<BR /> <H2 id="toc-hId-1252673967"></H2><BR /> <H1 id="toc-hId-1349563469">Part 2: CAP Wrapper for Graph API:</H1><BR /> <STRONG>Architecture</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px">&nbsp; <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/SAP-Graph.png" height="424" width="433" /></P><BR /> "The architecture diagram illustrates the connection of two business systems to SAP Graph. SAP Graph is exposed as an endpoint (referred to as a destination in the Business Technology Platform), and a CAP App consumes that destination to access and expose the business data."<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId-859646957"><STRONG>What all we need ?</STRONG></H2><BR /> <OL><BR /> <LI>&nbsp; &nbsp; &nbsp;Node in your VS Code / BAS</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;Destination for Graph endpoint in BTP Cockpit</LI><BR /> <LI>&nbsp; &nbsp; &nbsp;Authentication , Destination and connectivity services in CAP</LI><BR /> </OL><BR /> &nbsp;<BR /> <P style="text-align: left"><STRONG>Create Destination in BTP Cockpit</STRONG></P><BR /> <BR /> <OL><BR /> <LI>Obtain the Client ID and secret from the Graph Service Key file.</LI><BR /> <LI>Log in to the BTP Cockpit.</LI><BR /> <LI>Navigate to the "Destinations".</LI><BR /> <LI>Click on "New Destination" .</LI><BR /> <LI>Provide a name for the destination (e.g., "SAP Graph API").</LI><BR /> <LI>Fill in the required details, such as the URL endpoint of the SAP Graph API.</LI><BR /> <LI>In the "Authentication" section, select the appropriate authentication method (e.g., OAuth2 Client Credentials).</LI><BR /> <LI>Enter the Client ID and secret obtained from the Graph Service Key file in the respective fields.</LI><BR /> <LI>Save the destination configuration.</LI><BR /> </OL><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/14-2.png" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId-369730445"><A href="https://developers.sap.com/tutorials/btp-app-create-cap-application.html" target="_blank" rel="noopener noreferrer"><STRONG>Create CAP Application in VS Code</STRONG></A></H3><BR /> &nbsp;<BR /> <OL><BR /> <LI style="text-align: left">Create Simple CAP Application either in BAS or in VS Code , I am using VS Code</LI><BR /> <LI style="text-align: left">Lets Create one Folder in your workspace in VS Code Name it like <STRONG>getBusinessData</STRONG></LI><BR /> <LI style="text-align: left">Open VS Terminal and execute</LI><BR /> </OL><BR /> &nbsp;<BR /> <PRE class="language-sql"><CODE>cds init <BR /> <BR /> cds add mta <BR /> <BR /> </CODE></PRE><BR /> &nbsp;<BR /> <PRE><CODE>Add these in package.json<BR /> <BR /> Add this CDS Section</CODE></PRE><BR /> <PRE class="language-abap"><CODE>"cds": {<BR /> "requires": {<BR /> "shagraph": {<BR /> "kind": "odata-v4",<BR /> "credentials": {<BR /> "destination": "shagraph",<BR /> "path": "/sap.graph"<BR /> }<BR /> }<BR /> }<BR /> }</CODE></PRE><BR /> &nbsp;<BR /> <PRE><CODE>Add sales.cds&nbsp; file in srv folder and add the below snippet , I have created on function import which will be returning the dynamically generated results from SAP Graph API.</CODE></PRE><BR /> <PRE class="language-abap"><CODE>@protocol: 'rest'<BR /> service root {<BR /> @open<BR /> type object {};<BR /> function graph(name:String) returns array of object;<BR /> }</CODE></PRE><BR /> &nbsp;<BR /> <BR /> Add sale.js file in srv folder<BR /> <PRE class="language-abap"><CODE>const get = require("./handlers/GET/getSales");<BR /> <BR /> module.exports = cds.service.impl(async function () {<BR /> this.on("graph", get.graph);<BR /> });<BR /> </CODE></PRE><BR /> &nbsp;<BR /> <BR /> handler for graph.<BR /> <PRE class="language-abap"><CODE>const graph = async (req) =&gt; {<BR /> const srv = await cds.connect.to("shagraph");<BR /> if (req.data.name !== null &amp;&amp; req.data.name != undefined) {<BR /> req.query = SELECT.from(req.data.name);<BR /> } else {<BR /> req.query = SELECT.from(`sap.graph`);<BR /> req.query.SELECT.from.ref[0] = "";<BR /> }<BR /> return await srv.run(req.query);<BR /> };<BR /> <BR /> module.exports = {<BR /> graph<BR /> };<BR /> </CODE></PRE><BR /> &nbsp;<BR /> <PRE class="language-sql"><CODE>Execute these Commands <BR /> <BR /> cds build<BR /> <BR /> "BAS Does this automatically but in VS Code we can run these commands to Bind the Application"<BR /> <BR /> cds bind -2 destination-srv:key -- Bind your App with Destination using Key<BR /> <BR /> cds bind -2 uaa-srv:key Bind your App with Authentication service using Key <BR /> <BR /> cds watch --profile Hyrbrind ( to run your App locally )<BR /> <BR /> <BR /> <BR /> <BR /> </CODE></PRE><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId-173216940"><STRONG>End-2-end execution of CAP Wrapper for Graph API:&nbsp;</STRONG></H3><BR /> Note: Just created this small Video for executing calls to graph API instead putting screenshots <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span><BR /> <DIV><BR /> <BR /> <IFRAME width="560" height="315" src="https://www.youtube.com/embed/p78DxFp39xk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></IFRAME><BR /> <BR /> </DIV><BR /> &nbsp;<BR /> <BR /> Here CAP Endpoint is serving first for sap.graph and after that we are passing entities exposed using business data graph and it comes to an end then.<BR /> <BR /> &nbsp;<BR /> <BR /> I hope you have enjoyed the reading and please feel free to post your comments or questions if any <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span><BR /> <BR /> &nbsp;<BR /> <BR /> Thanks Shivam 2023-07-05T23:25:01+02:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-new-in-sap-integration-suite/ba-p/13555887 Graph: new in SAP Integration Suite 2023-07-12T09:19:47+02:00 piyush_gakhar https://community.sap.com/t5/user/viewprofilepage/user-id/182218 With the addition of the&nbsp;<STRONG>new Graph functionality</STRONG>, you can now, easily and securely, provide your integration and application developers with <STRONG>selective, abstracted access to your enterprise data </STRONG>via a <STRONG>single, easy-to-use API</STRONG>. The enterprise data is&nbsp;<STRONG>semantically connected</STRONG>&nbsp;in the form of a<STRONG>&nbsp;business data graph</STRONG>.<BR /> <BR /> Out-of-the-box, you can create a business data graph of SAP-managed data, which includes 4500+ entities and 9000+ connections. Data objects from the business systems are projected as mirrored entities in the out-of-the-box business data graph. The data graph is also enriched with unified entities (abstracted and simplified entities), which are created for similar data objects found in more than one SAP system in the landscape. This provides the baseline for the out-of-the-box data graph. You can extend the business data graph by adding custom data sources or defining custom entities.<BR /> <BR /> After the business data graph has been configured, it is accessible by a single and unified API, which supports powerful data graph query languages (OData v4 or GraphQL). Developers become more productive because, through the abstraction layer Graph provides, they are no longer exposed to the complexity of the landscape. The resulting application code can often be reduced by using single graph-navigating queries to replace programming logic or by querying custom entities composed of attributes from multiple source entities.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/2023-07-11_23-40-43.png" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId-1091225443">Enterprise IT : benefits &amp; outcomes</H3><BR /> <UL><BR /> <LI>Carefully control which data is <STRONG>securely and selectively exposed</STRONG> to different apps</LI><BR /> <LI><STRONG>Avoid unnecessary ETLs</STRONG> and replications for specific use cases</LI><BR /> <LI>Get <STRONG>out-of-the-box</STRONG> SAP support, <STRONG>4500+ entities</STRONG>, <STRONG>9000+ connections</STRONG></LI><BR /> <LI>Create your own <STRONG>extended data models and enterprise graph</STRONG></LI><BR /> <LI>Simplify handover – requires just <STRONG>one business data graph URL and credentials</STRONG></LI><BR /> <LI>Deploy<STRONG> landscape-agnostic reusable apps</STRONG></LI><BR /> </UL><BR /> <H3 id="toc-hId-894711938">Developer : benefits &amp; outcomes</H3><BR /> <UL><BR /> <LI>Enjoy one easy-to-use API with powerful data graph queries (<STRONG>OData v4</STRONG> or <STRONG>GraphQL</STRONG>)</LI><BR /> <LI><STRONG>Focus on the data</STRONG> you need, regardless of landscape complexity</LI><BR /> <LI>Experience <STRONG>one connected and consistent system data model</STRONG></LI><BR /> <LI>Onboard quickly by exploring configured business data graphs using <STRONG>Graph Navigator</STRONG> in SAP API Business Hub Enterprise</LI><BR /> <LI>Use with <STRONG>low-code/no-code</STRONG> tool integration in <STRONG>SAP Build</STRONG></LI><BR /> <LI>Be instantly <STRONG>more productive</STRONG></LI><BR /> </UL><BR /> <H3 id="toc-hId-698198433">How Graph complements API Management in SAP Integration Suite</H3><BR /> APIs are business critical assets, which must be carefully managed. Using the <STRONG>API Management capability in SAP Integration Suite</STRONG>, this can be achieved in the following ways:<BR /> <UL><BR /> <LI>Façade – create your own <STRONG>unified</STRONG> and harmonized <STRONG>API presence</STRONG>, using your own domain and branding</LI><BR /> <LI>Security – ensure API <STRONG>security</STRONG>, traffic <STRONG>protection</STRONG> and <STRONG>compliance</STRONG></LI><BR /> <LI>Governance – discover and document all your APIs, manage <STRONG>API policy</STRONG> and <STRONG>lifecycle</STRONG>, offer developer services</LI><BR /> <LI>Insights – monitor with usage analytics, logs, events and triggers; use <STRONG>business insights</STRONG> to monetize your APIs</LI><BR /> <LI>Transforms – apply advanced <STRONG>header</STRONG> and <STRONG>payload </STRONG>modifications; use <STRONG>business data graphs</STRONG> and (3<SUP>rd</SUP> party) integrations</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/2023-07-08_12-50-58.png" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId-501684928">How to get started with Graph</H3><BR /> After successfully completing a rigorous <A href="https://blogs.sap.com/?p=1706822" target="_blank" rel="noopener noreferrer">6-month beta program with SAP customers and partners</A>, the new Graph functionality has been released for general availability and is therefore suitable for productive usage. The Graph functionality can be enabled in existing SAP Integration Suite tenants as of July 10th, 2023 for any SAP BTP service plan for SAP Integration Suite where API Management is available. Regional availability follows a primarily on-demand approach. To see if Graph is available in your region, refer to <A href="https://launchpad.support.sap.com/#/notes/3338820" target="_blank" rel="noopener noreferrer">SAP Note 3338820</A>.<BR /> <BR /> For more details about Graph, please refer to the following information:<BR /> <UL><BR /> <LI><A href="https://help.sap.com/docs/graph/graph" target="_blank" rel="noopener noreferrer">Documentation on SAP Help Portal</A></LI><BR /> <LI><A href="https://discovery-center.cloud.sap/serviceCatalog/integration-suite?commercialModel=payg&amp;region=all&amp;tab=service_plan" target="_blank" rel="nofollow noopener noreferrer">Pricing and commercial information on SAP Discovery Center</A></LI><BR /> <LI><A href="https://community.sap.com/topics/graph" target="_blank">SAP Community topic Graph</A></LI><BR /> </UL> 2023-07-12T09:19:47+02:00 https://community.sap.com/t5/technology-blogs-by-sap/support-for-graph-in-actions-project/ba-p/13576914 Support for Graph in Actions Project 2023-08-09T08:33:31+02:00 vivek_vishal https://community.sap.com/t5/user/viewprofilepage/user-id/195454 <STRONG>We are pleased to announce that SAP Build Actions Project&nbsp;went GA with Graph support as on August 4<SUP>th</SUP>. See the release information from August 4th 2023 over <A href="https://help.sap.com/whats-new/190af73e1b314925bc5f3bf8751fc9ce?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">here</A>.&nbsp;</STRONG><BR /> <H3 id="toc-hId-1093103017"><STRONG>Motivation -</STRONG></H3><BR /> Actions Project built using Graph as a supported consumption source will provide the capability to consume and access business and enterprise data which is semantically connected in the form of a data graph and further exposed via Actions.<BR /> <BR /> More Information on Graph and usability is available <A href="https://blogs.sap.com/2023/07/12/graph-new-in-sap-integration-suite/?source=social-Global-MarketingCampaign-Business+Technology+Platform-App+Dev+%26+Integration-spr-10693532969-LINKEDIN&amp;campaigncode=CRM-YA23-SMS-1941773&amp;PostID=10693532969&amp;CommunityuserID=62e8dc35b68c8c76b75d2e14&amp;ConsumerpostID=64b568934a0cac2eb893d095&amp;ParentAssetID=ADVOCACY_205_64afdc3c00565e029b2cb883&amp;Region=NA%2CEMEA%2CGreater+China%2CAPJ%2CLAC" target="_blank" rel="noopener noreferrer">here</A>.<BR /> <H3 id="toc-hId-896589512"><STRONG>Parent Blog:</STRONG></H3><BR /> <A href="https://blogs.sap.com/2022/10/21/actions-editor-feature-list-usage-and-maintenance-of-actions-project/" target="_blank" rel="noopener noreferrer">Actions Editor – Feature List, Usage and Creation/Maintenance of Actions Project</A><BR /> <H3 id="toc-hId-700076007"><STRONG>Prerequisites –</STRONG></H3><BR /> The official help document on Creating Actions project via Graph is available <A href="https://help.sap.com/docs/build-process-automation/sap-build-process-automation/create-actions-project?locale=en-US#create-an-action-project-using-sap-graph-instance" target="_blank" rel="noopener noreferrer">here</A>. It also has details on below key prerequisites to allow the creation of Action project with Graph instance.<BR /> <OL><BR /> <LI>Subscription to SAP Integration Suite.<BR /> <UL><BR /> <LI>Capabilities - Adding the capability for Graph which is possible while editing the capabilities.</LI><BR /> <LI>Design Graph - Creation of a Business Data Graph.</LI><BR /> </UL><BR /> </LI><BR /> <LI>Activation of Graph.</LI><BR /> <LI>Creation of Graph service instance with service binding.</LI><BR /> <LI>Creating a destination for Graph Instance with Service binding that includes - Client ID, Client secret and Token Service URL along with additional properties. This is further illustrated below.</LI><BR /> </OL><BR /> &nbsp;<BR /> <TABLE><BR /> <THEAD><BR /> <TR><BR /> <TD style="width: 618px" colspan="2"><STRONG>Destination Configuration</STRONG></TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Field</STRONG></TD><BR /> <TD style="width: 441px"><STRONG>Value</STRONG></TD><BR /> </TR><BR /> </THEAD><BR /> <TBODY><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Name</STRONG></TD><BR /> <TD style="width: 441px">Enter the name of your choice.</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Type</STRONG></TD><BR /> <TD style="width: 441px">HTTP</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Description</STRONG></TD><BR /> <TD style="width: 441px">Enter an optional description for your destination.</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>URL</STRONG></TD><BR /> <TD style="width: 441px">SAP Business Data Graph URL.</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Proxy Type</STRONG></TD><BR /> <TD style="width: 441px">Internet</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Authentication</STRONG></TD><BR /> <TD style="width: 441px">OAuth2JWTBearer</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Client ID</STRONG></TD><BR /> <TD style="width: 441px"><BR /> <BR /> Client ID found in the service binding.<BR /> <BR /> For more information, see&nbsp;<A href="https://help.sap.com/docs/graph/graph/initial-setup?locale=en-US#5.-enable-client-applications" target="_blank" rel="noopener noreferrer">Create a Graph Service Instance</A>.</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Client Secret</STRONG></TD><BR /> <TD style="width: 441px"><BR /> <BR /> Client ID found in the service binding.<BR /> <BR /> For more information, see&nbsp;<A href="https://help.sap.com/docs/graph/graph/initial-setup?locale=en-US#5.-enable-client-applications" target="_blank" rel="noopener noreferrer">Create a Graph Service Instance</A>.</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Token Service URL Type</STRONG></TD><BR /> <TD style="width: 441px"><STRONG>Dedicated</STRONG></TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 177px"><STRONG>Token Service URL</STRONG></TD><BR /> <TD style="width: 441px"><A href="https://&lt;url-retrieved-from-service-binding&gt;/oauth/token?grant_type=client_credentials" target="test_blank" rel="nofollow noopener noreferrer">https://&lt;url-retrieved-from-service-binding&gt;/oauth/token?grant_type=client_credentials</A></TD><BR /> </TR><BR /> </TBODY><BR /> </TABLE><BR /> &nbsp;<BR /> <TABLE style="width: 409px"><BR /> <THEAD><BR /> <TR><BR /> <TD style="width: 409px" colspan="2"><STRONG>Additional Properties</STRONG></TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 298px"><STRONG>Property</STRONG></TD><BR /> <TD style="width: 111px"><STRONG>Value</STRONG></TD><BR /> </TR><BR /> </THEAD><BR /> <TBODY><BR /> <TR><BR /> <TD style="width: 298px">AppgyverEnabled</TD><BR /> <TD style="width: 111px">true</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 298px">sap.applicationdevelopment.actions.enabled</TD><BR /> <TD style="width: 111px">true</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 298px">sap.processautomation.enabled</TD><BR /> <TD style="width: 111px">true</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 298px">sap.build.usage</TD><BR /> <TD style="width: 111px">GRAPH</TD><BR /> </TR><BR /> </TBODY><BR /> </TABLE><BR /> &nbsp;<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/7-6.png" /><BR /> <BR /> <STRONG>Note: </STRONG>URL, Client ID, Client Secret and Token Service URL should be entered correctly to ensure that the destination works fine.<BR /> <BR /> <STRONG>Selection of Destination</STRONG> - User can select the preferred available destinations that have been set up using the above prerequisites. These destinations would connect with the graph instances. A sample illustration is shown below.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/8-6.png" /></P><BR /> <STRONG>Selection of System</STRONG> – Based on the Graph instance, a list of systems will be shown. Action Designer can choose a specific system based on the use case.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/9-5.png" /><BR /> <P style="overflow: hidden;margin-bottom: 0px"><STRONG>Selecting the API</STRONG> – Based on the selected system, the Action Designer can choose from the available list of API’s.</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/10-6.png" /></P><BR /> <STRONG>Review the Methods for the API</STRONG> – Action Designer can review the methods/operations that are available within the chosen API.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/Screenshot-2023-08-09-at-12.24.01-PM.png" /></P><BR /> <STRONG>Create the Action Project</STRONG> - Action Designer needs to provide the details for the Project Name, Description and upload the corresponding API specification. The system will validate the OpenAPI specification standards in the attached specification and display an error to perform corrective measures.<BR /> <BR /> If the validation is successful, the Action Designer will need to click on the Create button to trigger the creation of the Actions Project.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/12-3.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>Note: </STRONG>The Destination for Test capability within Action Project in the Action Editor and URL Prefix in the Project settings is defaulted based on the associated destination of the Graph instance. Further, The URL prefix if changed manually by the Action Designer, will not be persisted for subsequent execution.<BR /> <H4 id="toc-hId-632645221"></H4><BR /> <H4 id="toc-hId-436131716">Thanks for reading and i hope it helped to understand the concept of leveraging Graph for creation and consumption of Actions Project.</H4><BR /> &nbsp;<BR /> <H3 id="toc-hId-110535492">References</H3><BR /> <UL><BR /> <LI>Part 1 of the Blog Series: &nbsp;<A href="https://blogs.sap.com/2022/10/19/the-new-actions-project-major-changes-including-the-actions-editor-available-now/" target="_blank" rel="noopener noreferrer">The New Actions Project – Major Changes including the Actions Editor Available Now !! | SAP Blogs</A></LI><BR /> <LI>Part 2 of the Blog Series/Parent Blog: &nbsp;<A href="https://blogs.sap.com/2022/10/21/actions-editor-feature-list-usage-and-maintenance-of-actions-project/" target="_blank" rel="noopener noreferrer">Actions Editor – Feature List, Usage and Maintenance of Actions Project</A></LI><BR /> </UL> 2023-08-09T08:33:31+02:00 https://community.sap.com/t5/technology-blogs-by-sap/next-in-the-sap-garage-integrate-sap-s-4hana-with-microsoft-teams-via-sap/ba-p/13576419 Next in the SAP Garage – Integrate SAP S/4HANA with Microsoft Teams via SAP Business Technology Platform. 2023-09-05T14:40:09+02:00 gauravdey https://community.sap.com/t5/user/viewprofilepage/user-id/183532 <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Screenshot-2023-09-05-172942.png" height="347" width="693" /></P><BR /> In the September 2023 edition of SAP Garage we feature this use case that highlights how to extend the business processes in SAP S/4HANA to the Microsoft Teams app, by using the SAP BTP Bridge Framework.<BR /> <BR /> The demo will focus on how to use the Bridge Framework to view the SAP S/4HANA purchase order data, update purchase order data if needed, and perform the release purchase order process in the Microsoft Teams.<BR /> <UL><BR /> <LI><SPAN data-contrast="auto">Date of the session</SPAN><SPAN data-ccp-props="{}">&nbsp;–&nbsp;<STRONG>September 6th, 2023, Wednesday</STRONG></SPAN></LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><SPAN data-contrast="auto">SAP Discovery Center mission to be featured :&nbsp;<STRONG><A href="https://discovery-center.cloud.sap/missiondetail/4164/4408/" target="_blank" rel="noopener nofollow noreferrer">Integrate SAP S/4HANA with Microsoft Teams via SAP Business Technology Platform</A></STRONG></SPAN></LI><BR /> </UL><BR /> <A href="https://webinars.sap.com/2023-01-01-sap-ie-btp-garage-webinar-series/en/registration.aspx" target="_blank" rel="noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/07/Register.png" /></A><BR /> <BR /> &nbsp;<BR /> <BR /> <B><SPAN data-contrast="none">Meet the Experts:</SPAN></B><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/v.jpg" height="180" width="176" /></P><BR /> <SPAN class="mention-scrubbed">viancu</SPAN>, is a Developer for the Strategic Customer Engagements team of SAP Platform Adoption and Advisory. He works alongside fellow developers, designers, and data scientists to harness the power of SAP BTP to deliver innovative solutions to customers. He began his SAP journey during college as a frontend development intern for SAP Ariba’s Guided Buying team. Since then, his fulltime role has expanded to include full-stack development centered around SAP BTP and the broader SAP Ecosystem. Victor’s most recent work has focused on bringing two worlds—SAP and Microsoft Teams—closer together through an integration solution on BTP.”<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/a.png" height="180" width="176" /></P><BR /> Alex Bishka, a Developer in the Strategic Customer Engagements team of SAP Platform Adoption and Advisory. Alex started at SAP under the SAP Next Talent program. Since joining the team, Alex has focused on full stack development and automation around SAP BTP technologies: specifically on his current project which aims to bridge the gap between SAP and Microsoft Teams by implementing an integration solution via BTP.<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/w.jpg" height="180" width="176" /></P><BR /> Weikun Liu, a Software Developer from SAP T&amp;I Strategic Customer Engagements team.​ He is an experienced software development engineer with 4+ years 'experience on crafting efficient and scalable back-end distributed systems within cloud environments. As a Software Developer at SAP Labs, Palo Alto, he collaborated closely with customers, orchestrating the development and delivery of systems for combining SAP Business Technology Platform (BTP) and other hyperscaler services.<BR /> <BR /> <B><SPAN data-contrast="none">Missed our last call?</SPAN></B><BR /> <BR /> No worries you can revisit the session with details below –<BR /> <UL><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><SPAN data-contrast="auto">Topic :&nbsp;<A href="https://discovery-center.cloud.sap/missiondetail/4172/4422/" target="_blank" rel="noopener nofollow noreferrer">Build Events-to-Business Actions Apps with SAP BTP and MS Azure/AWS</A></SPAN></LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><SPAN data-contrast="auto">Speakers</SPAN><SPAN data-ccp-props="{}"> :&nbsp;</SPAN>Praveen Kumar Padegal, Development Expert &amp; Ajit Kumar Panda, Architect, Platform Adoption &amp; Advisory team</LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="3" data-aria-level="1">Link to&nbsp;<A href="https://youtu.be/NrJXjWVg6c4" target="_blank" rel="noopener nofollow noreferrer">Recording</A></LI><BR /> </UL><BR /> <B><SPAN data-contrast="none">Join us.&nbsp;</SPAN></B><BR /> <BR /> <SPAN data-contrast="auto">Thank you for all of the positive feedback we continue to receive about the SAP Garage series. We are thrilled to bring you top SAP BTP use cases and demos directly from the experts. If you haven’t already,&nbsp;</SPAN><A href="https://webinars.sap.com/2023-01-01-sap-ie-btp-garage-webinar-series/en/registration.aspx" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none"><STRONG>subscribe</STRONG></SPAN></A><SPAN data-contrast="auto">&nbsp;to the series, bring your curiosity, your questions, and join us as we cover key SAP Business Technology Platform topics and use cases!</SPAN> 2023-09-05T14:40:09+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/graphical-representation-of-mttr-and-mtbf-in-ecc/ba-p/13574505 Graphical representation of MTTR and MTBF in ECC 2023-10-09T23:59:11+02:00 swapson https://community.sap.com/t5/user/viewprofilepage/user-id/5565 Disclaimer- This Blog is to display the graphical representation of MTTR and MTBF in the SAP ECC. However, the better graphical analytical report is already available in S/4 HANA&nbsp; Fiori applications&nbsp; App ID - F2812<BR /> <BR /> Requirement - To display the MTTR and MTBF of a specific maintenance plant.<BR /> <BR /> T-code :- MCI7<IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p1-1.png" height="189" width="336" /><BR /> <P style="overflow: hidden;margin-bottom: 0px">Click on Multiple section button to input all the equipments from a specific plant</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p3-1.png" /></P><BR /> Select multiple selection option to select multiple equipments from a specific plant, then click on equipment by equipment list option. Again click on maintenance plant multiple selection and mention only the required maintenance plants for which the report should be displayed and click on execute (F8) button.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p4-1.png" /></P><BR /> All the Equipments from these plants will be displayed, now select all the equipments and click on continue button<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p5-1.png" /></P><BR /> Now click on execute button to display the MTTR and MTBF report for the selected equipments and hence for the required maintenance plant<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p6-1.png" /></P><BR /> Click on switch drilldown to display the report for each equipment of that plant<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p7-1.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p8-1.png" /></P><BR /> List of equipments is displayed with their respective MTTR and MTBF values<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p9-2.png" /></P><BR /> Now click on graphics or press F5 to get the graphical representation.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p10-1.png" /></P><BR /> Output of the graphical representation is as below.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p13-1.png" /></P><BR /> Click on overview to change dimension and choices<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p14-1.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p15-1.png" /></P><BR /> It can able be extracted in Microsoft Excel with below steps<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p11-1.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/p12-1.png" /></P><BR /> Summary- To use the filter criteria effectively to display the graphical report for the MTTR and MTBF. The same filter criteria can be used for all the other PMIS reports of plant maintenance.<BR /> <BR /> &nbsp;<BR /> <BR /> Thanks for reading this short blog. Please leave your feedback in the comment section.<BR /> <BR /> Follow me for more such related blogs. 2023-10-09T23:59:11+02:00 https://community.sap.com/t5/technology-blogs-by-sap/learn-about-sap-integration-suite-at-sap-teched-2023-asug-tech-connect-2023/ba-p/13574389 Learn about SAP Integration Suite at SAP TechEd 2023, ASUG Tech Connect 2023, and SAPinsider EMEA 2023 2023-10-27T06:41:58+02:00 MilenaMathyl https://community.sap.com/t5/user/viewprofilepage/user-id/455 Are you curious about SAP’s integration strategy and SAP Integration Suite sessions on coming events?<BR /> <BR /> Join us in our Integration tracks at <STRONG>SAP TechEd 2023, in-person in Bangalore or virtually</STRONG>, as well as at our in-person events <STRONG>ASUG Tech Connect 2023</STRONG>, and <STRONG>SAPinsider EMEA 2023</STRONG>,&nbsp;to learn how we are shaping our integration platform strategy ensuring that SAP Integration Suite meets end-to-end integration requirements, how we are enabling modernization for customers, and how enterprise automation can be achieved.<BR /> <BR /> <IFRAME width="560" height="315" src="https://www.youtube.com/embed/rBrhS1gcaV0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></IFRAME><BR /> <BR /> &nbsp;<BR /> <BR /> This blog post provides you an overview of SAP Integration Suite sessions at SAP TechEd 2023 <STRONG>Virtual</STRONG>, <STRONG>ASUG Tech Connect 2023</STRONG>, and <STRONG>SAPinsider EMEA 2023.</STRONG><BR /> <BR /> - For an SAP TechEd 2023 overview for the in-person event in <EM>Bangalore</EM>, kindly take a look into my blog post: <A href="https://groups.community.sap.com/t5/sap-teched-blog-posts/learn-about-sap-integration-suite-at-sap-teched-2023/ba-p/298372" target="_blank" rel="noopener noreferrer">Learn about SAP Integration Suite at SAP TechEd 2023</A> -<BR /> <BR /> &nbsp;<BR /> <BR /> This year SAP TechEd 2023 will be provided in-person in <STRONG>Bangalore</STRONG> (India) as well as <STRONG>virtual</STRONG>, on November 2<SUP>nd</SUP> - 3<SUP>rd</SUP> 2023:<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://www.sap.com/events/teched/virtual.html?url_id=ctabutton-glo-sap-splash" target="_blank" rel="noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/teched-virtual-1.png" height="235" width="474" /></A></P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://www.sap.com/events/teched/bangalore.html?url_id=ctabutton-glo-sap-splash" target="_blank" rel="noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/teched-BGL-1.png" height="226" width="469" /></A></P><BR /> &nbsp;<BR /> <BR /> Furthermore, the weeks after, we will also provide <STRONG>in-person</STRONG> events for other regions:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://events.asug.com/event/c6f59228-28b3-466a-b977-7d297192dac6/summary?RefId=google-search&amp;gad=1&amp;gclid=EAIaIQobChMI1bmm99mSggMVHW5_AB0n2wOEEAAYASAAEgJ6Y_D_BwE&amp;hsa_acc=3569286144&amp;hsa_ad=673621738303&amp;hsa_cam=20498067511&amp;hsa_grp=149628277181&amp;hsa_kw=asug%20tech%20connect%202023&amp;hsa_mt=b&amp;hsa_net=adwords&amp;hsa_src=g&amp;hsa_tgt=kwd-2206744354711&amp;hsa_ver=3&amp;utm_campaign=atc_23&amp;utm_campaign=DFT-Techconnect-Search&amp;utm_content=home&amp;utm_medium=google&amp;utm_medium=ppc&amp;utm_source=paidsearch&amp;utm_source=adwords&amp;utm_term=asug%20tech%20connect%202023" target="_blank" rel="nofollow noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ASUG-2.png" height="98" width="157" /></A></P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://sapinsider.org/events/sapinsider-2023-emea/" target="_blank" rel="nofollow noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/SAPinsider-2.png" height="100" width="343" /></A></P><BR /> &nbsp;<BR /> <BR /> For organizations to run successfully, it's critical to integrate business processes across SAP and non-SAP applications. With <A href="https://www.sap.com/products/technology-platform/integration-suite.html" target="_blank" rel="noopener noreferrer"><STRONG>SAP Integration Suite</STRONG></A>, developers can accelerate innovation with an integration platform-as-a-service (iPaas) on SAP BTP to seamlessly integrate on-premise and cloud-based processes, applications, events, and data. Learn how SAP Integration Suite connects and automates business processes to harmonize experiences across diverse landscapes.<BR /> <BR /> &nbsp;<BR /> <BR /> As we will have over 80 integration sessions for the in-person <STRONG>SAP TechEd 2023 in Bangalore</STRONG>,<BR /> <UL><BR /> <LI>kindly take a look into our blog post: <A href="https://groups.community.sap.com/t5/sap-teched-blog-posts/learn-about-sap-integration-suite-at-sap-teched-2023/ba-p/298372" target="_blank" rel="noopener noreferrer">Learn about SAP Integration Suite at SAP TechEd 2023</A> to get an overview</LI><BR /> <LI>as well as to the session catalogue of SAP TechEd 2023 in Bangalore: <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;locale=en_US" target="_blank" rel="noopener noreferrer">SAP TechEd Bangalore | November 02–03, 2023 | Home</A></LI><BR /> <LI>and register for SAP TEchEd 2023 in Bangalore: <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;locale=en_US" target="_blank" rel="noopener noreferrer">SAP TechEd Bangalore | November 02–03, 2023 | Home</A></LI><BR /> </UL><BR /> &nbsp;<BR /> <H1 id="toc-hId-834872453">SAP Integration Suite at SAP TechEd 2023 <EM><STRONG>Virtual</STRONG></EM></H1><BR /> At <STRONG>SAP TechEd 2023 Virtual</STRONG>, we will provide the following 9 SAP Integration Suite sessions as our highlights for this year:<BR /> <UL><BR /> <LI><STRONG>Virtual</STRONG>: &nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog?tab.sessionplanned=1692641568884001cZ9d&amp;search.contenttrack=1692371180870001qscT" target="_blank" rel="noopener noreferrer">Session Catalog - SAP TechEd 2023</A></LI><BR /> <LI>Please register here: <A href="https://www.sap.com/events/teched/virtual.html?url_id=ctabutton-glo-sap-splash" target="_blank" rel="noopener noreferrer">SAP TechEd Virtual in 2023 | SAP Events</A></LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> We will provide the following lectures for SAP Integration Suite at SAP TechEd 2023 virtual:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Social-Cards_INT_Virtual.gif" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId-896524386"><EM>Sub-Track: Accelerate Enterprise Automation with SAP Integration Suite</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Connect and Automate Your Business Processes with SAP Integration Suite - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019544844001fXBW" target="_blank" rel="noopener noreferrer">IN100v</A></STRONG><BR /> <P style="text-align: left;padding-left: 40px">Unlock the full potential of your enterprise with SAP Integration Suite, an enterprise-grade offering that empowers you to smoothly integrate and automate processes across SAP and third-party applications. Discover the latest capabilities of this hybrid integration offering on SAP Business Technology Platform and learn how to implement a robust integration strategy within your business.</P><BR /> <P style="text-align: left;padding-left: 40px">Speaker: Gabriela Gahse, Product Manager, SAP SE</P><BR /> <P style="text-align: left;padding-left: 40px">Thursday, Nov 2 // 11:30 AM - 12:00 PM CET</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Shimano Unlocks Innovation with Integrated Processes - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019545996001fPmv" target="_blank" rel="noopener noreferrer">IN203v</A></STRONG><BR /> <P style="text-align: left;padding-left: 40px">Learn from a customer how it is using SAP Business Technology Platform in its IT landscape. Hear about the customer’s experience with SAP Integration Suite.</P><BR /> <P style="text-align: left;padding-left: 40px">Speakers:</P><BR /> <P style="text-align: left;padding-left: 40px">Fernanda Ribeiro, Integration Functional Specialist Lead, Shimano Europe</P><BR /> <P style="text-align: left;padding-left: 40px">Guido Koopmann, SAP Integration Architect, Acorel</P><BR /> <P style="text-align: left;padding-left: 40px">Igor Mitrovic, SAP Integration Architect, Acorel</P><BR /> <P style="text-align: left;padding-left: 40px">Thursday, Nov 2 // 6:00 PM - 6:30 PM CET</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Manage the Lifecycle of Your Integrations from Strategy to Development - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1694431554822001vdfa" target="_blank" rel="noopener noreferrer">IN225v</A></STRONG><BR /> <P style="padding-left: 40px">Discover how to evaluate, optimize, and streamline your integration landscapes using SAP Integration Suite on SAP Business Technology Platform (SAP BTP). Apply a systematic and guided approach to design and run your enterprise integration strategy using SAP Integration Solution Advisory Methodology. Learn how to use the latest integration technology recommendations and bring governance to your integration practice.</P><BR /> <P style="padding-left: 40px">Speaker: Gabriela Gahse, Product Manager, SAP SE</P><BR /> <P style="padding-left: 40px">Friday, Nov 3 // 5:30 PM - 6:00 PM CET</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Unleash Next-Generation Hybrid Integration with Edge Integration Cell - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019548139001fL0Y" target="_blank" rel="noopener noreferrer">IN200v</A></STRONG><BR /> <P style="text-align: left;padding-left: 40px">Discover Edge Integration Cell, the next-generation hybrid integration runtime offered with SAP Integration Suite on SAP Business Technology Platform. This advanced technology enables you to run on-premise integration scenarios within your landscape whether in a private cloud or on-premise environment. Explore the key features of Edge Integration Cell and witness its capabilities through a live demo.</P><BR /> <P style="text-align: left;padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> <P style="text-align: left;padding-left: 40px">Friday, Nov 3 // 6:00 PM - 6:30 PM CET</P><BR /> &nbsp;<BR /> <H3 id="toc-hId-700010881"><EM>Sub-Track: Deep Dive into API and Event-Driven Integration</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Embrace Event-Driven Architecture with SAP Integration Suite - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019545391001fDIN" target="_blank" rel="noopener noreferrer">IN127v</A></STRONG><BR /> <P style="padding-left: 40px">In an event-driven world, event-driven architectures (EDA) are gaining significant momentum. While many software vendors emphasize technical aspects of EDA, SAP goes further by highlighting the immense business value EDA brings. Learn how to support event-driven scenarios with the advanced event mesh for SAP Integration Suite to create a unified employee, partner, and customer experience across your organization.</P><BR /> <P style="padding-left: 40px">Speakers:</P><BR /> <P style="padding-left: 40px">Jannis Maier, Product Manager, SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Christoph Liebig, Strategic Projects, Integration, SAP</P><BR /> <P style="padding-left: 40px">Thursday, Nov 2 // 7:30 PM - 8:00 PM CET</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Innovate with API Management and Graph on SAP Integration Suite - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019546874001fmYF" target="_blank" rel="noopener noreferrer">IN104v</A></STRONG><BR /> <P style="padding-left: 40px">Discover how the API Management capability within SAP Integration Suite meets compostability requirements and enables developers to innovate in a more agile way with reusable artefacts. Dive into the Graph capability within SAP Integration Suite and learn how to access and track business data more easily through a unified API.</P><BR /> <P style="padding-left: 40px">Speakers:</P><BR /> <P style="padding-left: 40px">Christian Lindmayer, Development Manager, SAP</P><BR /> <P style="padding-left: 40px">Jannis Maier, Product Manager, SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Friday, Nov 3 //&nbsp;11:00 AM - 11:30 AM CET</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Busting Myths in SAP Integration Suite - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1694431257719001xS9N" target="_blank" rel="noopener noreferrer">IN226v</A></STRONG><BR /> <P style="padding-left: 40px">Hear us dispel several myths about SAP Integration Suite, for example regarding connectivity options to third-party applications, scalability and high availability, DevOps, and monitoring. Learn more about the full enterprise–readiness of SAP Integration Suite.</P><BR /> <P style="padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Friday, Nov 3 //&nbsp;9:30 PM - 10:00 PM CET</P><BR /> &nbsp;<BR /> <H3 id="toc-hId-503497376"><EM>Sub-Track: Deep Dive into SAP E2E Business Process Integration</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Master E2E Processes with Suite Qualities and Reference Architectures -<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019547016001fp9q" target="_blank" rel="noopener noreferrer"> IN202v</A></STRONG><BR /> <P style="padding-left: 40px">Gain an overview of the advantages of suite qualities and understand data integration within end-to-end (E2E) business processes supported by SAP software. Learn how to harness the full potential of SAP Integration Suite supported by reference architectures based on the SAP Enterprise Architecture Methodology. Discover the path to becoming a certified professional enterprise architect.</P><BR /> <P style="padding-left: 40px">Speakers:</P><BR /> <P style="padding-left: 40px">Andreas Poth, Chief Product Expert, SAP SE</P><BR /> <P style="padding-left: 40px">Holger Meinert, Chief Architect Integration, SAP SE</P><BR /> <P style="padding-left: 40px">Friday, Nov 3 // 7:30 PM - 8:00 PM CET</P><BR /> &nbsp;<BR /> <H3 id="toc-hId-306983871"><EM>Sub-Track: Elevate from SAP Process Orchestration to SAP Integration Suite</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Hit Refresh and Elevate Your Integrations - <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019546580001fur0" target="_blank" rel="noopener noreferrer">IN221v</A></STRONG><BR /> <P style="padding-left: 40px">Evolve your enterprise landscape and modernize your integrations by moving to the cloud. Hear how SAP and our partner ecosystem provide tools and resources to elevate your scenarios from SAP Process Orchestration software and SAP Process Integration technology or from SAP BTP for the Neo environment to SAP Integration Suite.</P><BR /> <P style="padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Friday, Nov 3 //&nbsp;12:00 PM - 12:30 PM CET</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG><EM>Great news</EM></STRONG>, the SAP TechEd 2023 Keynotes and Strategy sessions in Bangalore will be also broadcasted live and the recordings will be available online after.<BR /> <UL><BR /> <LI>Links:<EM> will follow after the event</EM></LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> If you're unable to make it to Bangalore but still want to <STRONG>experience</STRONG> the event with others, join our dedicated:<BR /> <UL><BR /> <LI><STRONG> <A href="https://groups.community.sap.com/t5/sap-teched-blog-posts/sap-community-quot-watch-and-code-quot-meetups/ba-p/277006?url_id=text-sapcommunity-prdteng-TechEd" target="_blank" rel="noopener noreferrer">"watch-and-code" meetups</A>. </STRONG></LI><BR /> <LI>These half-day, in-person events will be held in 11 different locations worldwide, fostering collaboration, knowledge sharing, and engagement. It's a fantastic opportunity to come together, network, learn, and code!</LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H1 id="toc-hId--147695072"><STRONG>ASUG TechConnect 2023</STRONG></H1><BR /> Get hands-on access to the latest and greatest from SAP and its partner community:&nbsp;<A href="https://events.asug.com/event/c6f59228-28b3-466a-b977-7d297192dac6/summary?RefId=google-search&amp;gad=1&amp;gclid=EAIaIQobChMI1bmm99mSggMVHW5_AB0n2wOEEAAYASAAEgJ6Y_D_BwE&amp;hsa_acc=3569286144&amp;hsa_ad=673621738303&amp;hsa_cam=20498067511&amp;hsa_grp=149628277181&amp;hsa_kw=asug%20tech%20connect%202023&amp;hsa_mt=b&amp;hsa_net=adwords&amp;hsa_src=g&amp;hsa_tgt=kwd-2206744354711&amp;hsa_ver=3&amp;utm_campaign=atc_23&amp;utm_campaign=DFT-Techconnect-Search&amp;utm_content=home&amp;utm_medium=google&amp;utm_medium=ppc&amp;utm_source=paidsearch&amp;utm_source=adwords&amp;utm_term=asug%20tech%20connect%202023" target="_blank" rel="nofollow noopener noreferrer">Home - ASUG Tech Connect</A><BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://events.asug.com/event/c6f59228-28b3-466a-b977-7d297192dac6/summary?RefId=google-search&amp;gad=1&amp;gclid=EAIaIQobChMI1bmm99mSggMVHW5_AB0n2wOEEAAYASAAEgJ6Y_D_BwE&amp;hsa_acc=3569286144&amp;hsa_ad=673621738303&amp;hsa_cam=20498067511&amp;hsa_grp=149628277181&amp;hsa_kw=asug%20tech%20connect%202023&amp;hsa_mt=b&amp;hsa_net=adwords&amp;hsa_src=g&amp;hsa_tgt=kwd-2206744354711&amp;hsa_ver=3&amp;utm_campaign=atc_23&amp;utm_campaign=DFT-Techconnect-Search&amp;utm_content=home&amp;utm_medium=google&amp;utm_medium=ppc&amp;utm_source=paidsearch&amp;utm_source=adwords&amp;utm_term=asug%20tech%20connect%202023" target="_blank" rel="nofollow noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/asug-2-1.png" /></A></P><BR /> Hosted for the first time by ASUG, Tech Connect will bring together technical practitioners, enterprise architects and SAP experts for three days of hands-on and interactive sessions.<BR /> <BR /> Join us in <STRONG>New Orleans (USA), Nov 7th - 9th 2023,</STRONG>&nbsp;with like-minded peers to hear the latest SAP innovations, learn from SAP experts, have fun, and build your network. You’ll gain skills and expertise in three days that would take weeks to learn at home.<BR /> <BR /> Session Agenda: <A href="https://events.asug.com/event/c6f59228-28b3-466a-b977-7d297192dac6/websitePage:0101da37-f62c-4ade-9d5a-7a700b9493d0" target="_blank" rel="nofollow noopener noreferrer">Agenda - ASUG Tech Connect</A><BR /> <BR /> Register now: <A href="https://events.asug.com/event/c6f59228-28b3-466a-b977-7d297192dac6/websitePage:ca0c0e15-d3d0-4d63-a733-39c99f3b949b" target="_blank" rel="nofollow noopener noreferrer">Register - ASUG Tech Connect</A><BR /> <BR /> &nbsp;<BR /> <BR /> Sessions for SAP Integration Suite:<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ASUG-social-cards2.gif" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId--86043139"><EM>Lectures</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Learn How to Connect and Automate Your Business Processes with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">SAP Integration Suite enables you to smoothly integrate IT systems and seamlessly automate business processes across SAP and third-party applications. In this session you will learn about the latest capabilities of this hybrid integration platform and how to utilize this key component of the SAP Business Technology Platform to implement a robust integration strategy throughout your business.</P><BR /> <P style="padding-left: 40px">Speaker: Milena Mathyl, Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 7, 2023 // 11:15 AM-12:05 PM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Leveraging Event-Driven Architecture with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Event-Driven Architectures (EDA) can provide powerful connections across your entire enterprise portfolio.&nbsp; Please join us as we discuss how to support event-driven business scenarios using the Event Mesh capability within SAP Integration Suite, or the Advanced Event Mesh solution for high-performance scenarios, to create unified user experiences across your organization.</P><BR /> <P style="padding-left: 40px">Speaker: Elijah Martinez, Senior Product Manager - SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 9, 2023 // 10:15 AM-11:05 AM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Modernizing Your Integration Architecture with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">If you are still running on SAP Process Orchestration, SAP Process Integration, or are on SAP BTP, NEO Environment today, discover your opportunities to lift your existing integration scenarios to the next level.&nbsp; In this session you will learn which solutions, tools and resources SAP and its partners are providing to help you to modernize these integration scenarios into a single cloud-based integration solution.</P><BR /> <P style="padding-left: 40px">Speaker: Vinayak Adkoli, Lead Product Manager, SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 7, 2023 // 10:15 AM-11:05 AM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Enabling Innovation with API Management and Graph</STRONG><BR /> <P style="padding-left: 40px">In this session you will learn about the API management capabilities of SAP Integration Suite, with a focus on Graph – SAP’s unified API management solution.&nbsp; During this session you will learn how to leverage SAP’s API tools to accelerate your innovation efforts by re-using artifacts in a composable framework and easier tracking of business data.</P><BR /> <P style="padding-left: 40px">Speaker: Elijah Martinez, Senior Product Manager - SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 9, 2023 //&nbsp;1:00 PM-1:50 PM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Discover Next-Generation Hybrid Integration with Edge Integration Cell</STRONG><BR /> <P style="padding-left: 40px">Learn about Edge Integration cell, the next-generation hybrid integration runtime offered with SAP Integration Suite, which would enable you to manage APIs and run integration scenarios within your landscape (private cloud or on-premise). In this session, you will learn to setup and operate Edge Integration Cell, design integrations and APIs, run and monitor them on Edge Integration Cell.</P><BR /> <P style="padding-left: 40px">Speaker: Vinayak Adkoli, Lead Product Manager, SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 8, 2023 //&nbsp;1:00 PM-1:50 PM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Mastering Advanced B2B Efficiency with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Join us as we embark on a technical deep dive into SAP Integration Suite's advanced features to optimize B2B efficiency, ensuring seamless collaboration with trading partners. Explore payload validation, process direct processing, and envelope customization, and gain practical insights through real-world examples.</P><BR /> <P style="padding-left: 40px">Speaker: Milena Mathyl, Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 7, 2023 // 3:30 PM-4:20 PM CT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--282556644"><EM>Roadmap</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Roadmap: What's next in SAP Integration Suite.</STRONG><BR /> <P style="padding-left: 40px">Join us as we explore the details of SAP’s plans for evolving the SAP Integration Suite. You will learn about SAP’s integration strategy, which features and enhancements are planned, and how to take advantage of SAP’s innovations around SAP and third party integration.</P><BR /> <P style="padding-left: 40px">Speaker: Elijah Martinez, Senior Product Manager - SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">November 9, 2023 // 2:00 PM-2:50 PMCT</P><BR /> <P style="padding-left: 40px">Room: 208/209</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--479070149"><EM>Hands-on Labs</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Hands-On Lab: Executing Hybrid Integration Scenarios using Edge Integration Cell</STRONG><BR /> <P style="padding-left: 40px">In this session you will discover how to manage APIs and integration scenarios across your private cloud or on-prem landscape using SAP Edge Integration Cell. We will cover how to set up and operate Edge Integration Cell, how t o design integrations and APIs, and how to run and monitor the solution.</P><BR /> <P style="padding-left: 40px">Speaker: Vinayak Adkoli, Lead Product Manager, SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Speaker: Stefan Ressing, Chief Cloud Architect, Vice President, SAP</P><BR /> <P style="padding-left: 40px">November 9, 2023 // 1:00 PM-3:00 PM CT</P><BR /> <P style="padding-left: 40px">Room: 221</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Hands-On Lab: Enabling Asynchronous Integrations by using Event-Driven Architecture</STRONG><BR /> <P style="padding-left: 40px">In this hands-on lab, you will learn how to leverage SAP Integration Suite, advanced event mesh, and SAP's event-driven ecosystem to power event-triggered applications.&nbsp; We will cover an end-to-end perspective, from the backend all the way to the event consumer.</P><BR /> <P style="padding-left: 40px">Speaker: Elijah Martinez, Senior Product Manager - SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Speaker: Stefan Ressing, Chief Cloud Architect, Vice President, SAP</P><BR /> <P style="padding-left: 40px">November 7, 2023 // 1:00 PM-3:00 PM CT</P><BR /> <P style="padding-left: 40px">Room: 221</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Hands-On Lab: Start with the Right Mindset and Learn How to Modernize Your Integration Platform</STRONG><BR /> <P style="padding-left: 40px">For most customers, moving to the cloud is a "when" decision and not an "if" decision, and part of this move is effectively managing your integration solution. Join us for a hands-on experience where we will explore the tools and techniques around the migration assessment and migration capabilities of SAP Business Technology Platform to accelerate your move from SAP Process Orchestration to SAP Integration Suite.</P><BR /> <P style="padding-left: 40px">Speaker: Milena Mathyl, Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Speaker: Stefan Ressing, Chief Cloud Architect, Vice President, SAP</P><BR /> <P style="padding-left: 40px">November 8, 2023 //&nbsp;10:15 AM-12:15 PM CT</P><BR /> <P style="padding-left: 40px">Room: 221</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H1 id="toc-hId--933749092"><STRONG>SAPinsider EMEA 2023 Conference:</STRONG></H1><BR /> Make your plans today to join us at SAPinsider EMEA 2023! Taking place <STRONG>14-16 November 2023</STRONG>, in <STRONG>Copenhagen, Denmark</STRONG>, you’ll join an immersive experience designed to provide you with best practices and expert insights for maximizing your SAP investments: <A href="https://sapinsider.org/events/sapinsider-2023-emea/" target="_blank" rel="nofollow noopener noreferrer">SAPinsider EMEA 2023 Conference | SAPinsider</A><BR /> <UL><BR /> <LI>Agenda for Integration: <A href="https://sapinsider.org/sapinsider-emea-2023-integration-enterprise-architecture/" target="_blank" rel="nofollow noopener noreferrer">SAPinsider EMEA 2023 | Integration + Enterprise Architecture - SAPinsider</A></LI><BR /> <LI>Register: <A href="https://reg.eventmobi.com/sapinsider-emea-2023" target="_blank" rel="nofollow noopener noreferrer">SAPinsider EMEA 2023 - SAPinsider (eventmobi.com)</A></LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/SAPinsider-2.jpg" /><BR /> <BR /> The conference will convene hundreds of SAP professionals from across the globe to learn, connect, and expand their skillset around key SAP topics. Co-located with our inaugural SAPinsider Innovation &amp; Technology Summit 2023 in Copenhagen, this event has 120+ sessions and is an excellent education resource in tandem with upcoming SAP TechEd events.<BR /> <BR /> &nbsp;<BR /> <BR /> SAP Integration Suite Sessions at SAPinsider EMEA 2023:<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Social-cards2-2.gif" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId--947328528"><EM>Lectures</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Modernize</STRONG><STRONG> your landscape and automate business processes with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Unleash the complete potential of your enterprise using SAP Integration Suite—an enterprise-level solution designed to empower seamless integration and process automation across SAP and external applications. Dive into the cutting-edge features of this hybrid integration offering within the SAP Business Technology Platform, and gain insights into crafting a resilient integration strategy tailored to your business needs.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Navigate the intricacies of SAP Integration Suite to effortlessly connect and automate processes spanning SAP and third-party applications.</LI><BR /> <LI>Explore the diverse range of advanced capabilities offered by this hybrid integration solution within the SAP Business Technology Platform.</LI><BR /> <LI>Acquire practical knowledge on designing and implementing a robust integration strategy that aligns with your organization’s unique requirements.</LI><BR /> <LI>Gain insights into best practices for optimizing efficiency, data flow, and collaboration across your enterprise ecosystem using SAP Integration Suite.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Emily Mui, Sr. Director Solution Marketing – SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Mastering</STRONG><STRONG> Advanced B2B Efficiency with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Dive deep into the technical intricacies of SAP Integration Suite’s advanced features, specifically the Integration Advisor and Trading Partner Management. Elevate your B2B efficiency and establish seamless collaboration with your trading partners. Gain hands-on experience with payload validation, process direct processing, and envelope customization through real-world examples, enabling you to implement practical solutions with confidence.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Master the nuances of SAP Integration Suite’s powerful tools, including the Integration Advisor and Trading Partner Management, to enhance B2B operational efficiency.</LI><BR /> <LI>Discover techniques for fostering smooth and productive collaborations with trading partners, ensuring streamlined communication and workflow.</LI><BR /> <LI>Acquire in-depth knowledge of payload validation, process direct processing, and envelope customization, and learn how to apply these skills to optimize your integration processes.</LI><BR /> <LI>Gain practical insights and hands-on experience through real-world examples, enabling you to confidently address complex integration challenges and implement effective solutions.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Emily Mui, Sr. Director Solution Marketing – SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Central</STRONG><STRONG> monitoring of your integration scenarios with SAP Cloud ALM</STRONG><BR /> <P style="padding-left: 40px">Deep dive into the Integration &amp; Exception monitoring capabilities of the SAP Cloud ALM for Operations. Learn how to monitor end-to-end integration scenarios, drill down to single message details, and navigate to the local monitoring tool of SAP Integration Suite for issue resolution. Hear how to configure alerts and receive auto-notifications through e-mail.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Gain an in-depth understanding of the SAP Cloud ALM for Operations platform.</LI><BR /> <LI>Master the art of monitoring end-to-end integration scenarios.</LI><BR /> <LI>Learn advanced techniques to drill down into single message details.</LI><BR /> <LI>Explore the process of configuring alerts tailored to your specific integration needs.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Embrace</STRONG><STRONG> Event-Driven Architecture with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">In the dynamic landscape of event-driven paradigms, event-driven architectures (EDA) have emerged as a dominant force. While numerous software providers tend to focus on the technical dimensions of EDA, SAP distinguishes itself by underscoring the profound business advantages it offers. This session delves into the realm of harnessing event-driven scenarios through the SAP Integration Suite, leveraging an advanced event mesh to establish a cohesive ecosystem that enhances interactions among employees, partners, and customers throughout your enterprise.</P><BR /> <P style="padding-left: 40px">You will learn:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>How Henkel uses SAP BTP overall.</LI><BR /> <LI>How Henkel built this SAP Build Apps Project with Integration Suite.</LI><BR /> <LI>What challenges faced during the project.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Craig Stasila, Senior Director, Solution Management, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>SAP Integration</STRONG><STRONG> Suite's Dynamic API Management and Graph Capabilities</STRONG><BR /> <P style="padding-left: 40px">Develop personalized Application Programming Interfaces (APIs) using SAP Integration Suite’s API Management and Graph capabilities. This solution offers a framework for businesses to create, manage, and optimize APIs.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Understand the fundamentals of API management and the role of SAP Integration Suite’s APIs.</LI><BR /> <LI>Explore the Graph capabilities within SAP Integration Suite.</LI><BR /> <LI>Learn the process of creating and configuring custom APIs.</LI><BR /> <LI>Familiarize yourself with best practices, security measures, and performance optimization techniques.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Jannis Maier, Product Manager SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Accelerate</STRONG><STRONG> Your Cloud Journey: Exploring Migration Capabilities with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Evolve your IT landscape and modernize integrations through cloud migration. Discover the Migration Assessment and Migration capabilities of the Integration Suite enabling a smooth transition from Process Orchestration/Process Integration to SAP Integration Suite. Uncover the efficiency this migration brings to your organization driving cloud adoption.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Discover the benefits of migrating to the cloud, including scalability, flexibility, and cost-effectiveness.</LI><BR /> <LI>Learn how to conduct a migration assessment using SAP Integration Suite’s tools.</LI><BR /> <LI>Explore the process of executing migrations from Process Orchestration/Process Integration to SAP Integration Suite ensuring minimal disruptions and optimal integration performance.</LI><BR /> <LI>Unlock best practices for leveraging SAP Integration Suite’s capabilities to embrace cloud-native integration.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Craig Stasila, Senior Director, Solution Management, SAP</P><BR /> &nbsp;<BR /> <BR /> <STRONG>Experience</STRONG><STRONG> the Future of Integration: Introducing "Edge Integration Cell" with SAP Integration Suite</STRONG><BR /> <P style="padding-left: 40px">Learn about Edge Integration Cell, the latest hybrid integration runtime available with SAP Integration Suite. Unleash the potential of running on-premise integration scenarios within your landscape whether on private cloud or on-premise environment. This session offers a comprehensive overview of the robust features and capabilities of Edge Integration Cell.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Gain valuable insights into the core features and functionalities that make Edge Integration Cell a game-changer in hybrid integration.</LI><BR /> <LI>Understand how it enables smooth integration between on-premise and cloud applications.</LI><BR /> <LI>Discover the limitless integration possibilities that Edge Integration Cell offers.</LI><BR /> <LI>Get hands-on exposure to the power of Edge Integration Cell through a live demo.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--1143842033"><EM>Hands-on Lab</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Start</STRONG><STRONG> with the Right Mind-Set and Learn How to Modernize Your Integration</STRONG><BR /> <P style="padding-left: 40px">Take your enterprise landscape to new heights and revolutionize your integration by embracing the cloud. Join us for a hands-on experience where you will discover the migration assessment and migration capabilities of SAP Business Technology Platform to accelerate your move from SAP Process Orchestration to SAP Integration Suite.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Explore different strategies for taking your enterprise landscape to the cloud.</LI><BR /> <LI>Learn how to perform a comprehensive migration assessment to evaluate your existing integration processes in SAP Process Orchestration.</LI><BR /> <LI>Gain practical, hands-on experience in migrating from SAP Process Orchestration to SAP Integration Suite.</LI><BR /> <LI>Discover how SAP Business Technology Platform can accelerate your integration journey in the cloud.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Jannis Maier, Product Manager SAP Integration Suite, SAP</P><BR /> <P style="padding-left: 40px">Speaker: Udo Paltzer, VP Product Manager SAP Integration Suite, SAP</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--1340355538"><EM>Customer presentations&nbsp;</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Case Study:</STRONG><STRONG> Product Safety Sheets to End-Users Via SAP Build Apps</STRONG><BR /> <P style="padding-left: 40px">Henkel at-present stores all of its Product Safety Information sheets like SDSS,TDSS into their On Premise SAP ERP system. Based on country local laws, these sheets needs regular updates in all local languages. Hence considering this, we decided that instead of storing such documents in a data lake or file management system, why don’t we use SAP’s Integration Suite in conjunction with SAP BTP build apps which can then be launched using mobile app or webapp or iframed into SAP Sales Cloud.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Learn how Henkel uses SAP BTP overall.</LI><BR /> <LI>Understand how Henkel built this SAP Build Apps Project with Integration Suite.</LI><BR /> <LI>Hear about the challenges faced during the project.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Saurabh Kabra, Senior CRM Developer, Henkel AG &amp; Co. KGaA</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--1536869043"><EM>Partner presentations&nbsp;</EM></H3><BR /> &nbsp;<BR /> <BR /> <STRONG>Leverage Advanced Event Mesh With Low-Code Tool</STRONG><BR /> <P style="padding-left: 40px">Understand the tremendous capabilities of SAP Advanced Event Mesh. The speaker will demonstrate how you can enable event communication outside of SAP by leveraging configurations and existing SAP tools. By highlighting this simplified approach, we aim to provide you with the knowledge and tools necessary to streamline event handling and facilitate communication between SAP and external systems.</P><BR /> <P style="padding-left: 40px">You will:</P><BR /> <BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Learn how to make data available in SAP via REST endpoints.</LI><BR /> <LI>Understand how to expose Change Pointers and Business Object Events to SAP Advanced Event Mesh via low code tools.</LI><BR /> <LI>See how to combine data and events to send out customized events real time to SAP Advanced Event Mesh.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <P style="padding-left: 40px">Speaker: Peter Kreiner-Sasady, CTO, Invixo Consulting A/S</P><BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H1 id="toc-hId--1146576534"><STRONG>SAP Integration Suite at SAP TechEd 2023 – Conclusion</STRONG></H1><BR /> &nbsp;<BR /> <BR /> I hope that our sessions will provide you with a comprehensive view of the SAP Integration Suite and how it can help you solve your integration needs. Build your personalized agenda and create your ultimate SAP TechEd experience. Enjoy learning, practicing, meeting SAP colleagues and customers, and exchanging thoughts with peers.<BR /> <BR /> We are looking forward to meeting you in-person or virtually and would be glad about a long-time relationship with you!<BR /> <BR /> &nbsp;<BR /> <BR /> PS: Our Product Management team for SAP Integratoin Suite is always interested in a long-term relationship with customers and partners by offering, e.g.,<BR /> <UL><BR /> <LI>a first point of contact in case of SAP Integration Suite questions or specific customer feedback on SAP Integration Suite capabilities and how to optimize;</LI><BR /> <LI>and offering various <EM>internal</EM> (confidential; e.g., CEI, Beta testing, internal Voice of customer session with development) or <EM>public</EM> programs (invite to events, joint public success stories, etc.) for customers and partners.</LI><BR /> </UL><BR /> Please feel free to reach out to me: LinkedIn: <A href="https://www.linkedin.com/in/milena-mathyl-988746137/" target="_blank" rel="nofollow noopener noreferrer">Milena Mathyl | LinkedIn</A><BR /> <BR /> &nbsp;<BR /> <BR /> Best Regards,<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>Milena Mathyl</STRONG><BR /> <BR /> <EM>Product Manager SAP Integration Suite</EM><BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--1929896053"><STRONG>Additional References:</STRONG></H3><BR /> <A href="https://groups.community.sap.com/t5/sap-teched-blog-posts/learn-about-sap-integration-suite-at-sap-teched-2023/ba-p/298372" target="_blank" rel="noopener noreferrer">Learn about SAP Integration Suite at SAP TechEd 2023</A><BR /> <BR /> If you have&nbsp;<STRONG>further questions</STRONG>&nbsp;regarding&nbsp;<STRONG>SAP TechEd</STRONG>, you can find Q&amp;A and post your questions to&nbsp;<A href="https://answers.sap.com/tags/755421404636447943131706525840948" target="_blank" rel="noopener noreferrer">All Questions in SAP TechEd | SAP Community</A>.<BR /> <BR /> In case of&nbsp;<STRONG>specific questions to SAP Integration Suite</STRONG>, please have a look to&nbsp;<A href="https://answers.sap.com/tags/73554900100800003241" target="_blank" rel="noopener noreferrer">All Questions in SAP Integration Suite | SAP Community</A>.<BR /> <BR /> <STRONG>Questions &amp; Answers</STRONG>&nbsp;of&nbsp;<STRONG>SAP TechEd 20222</STRONG> kindly here: <A href="https://blogs.sap.com/2023/01/30/sap-integration-suite-enhanced-for-todays-digital-processes-sap-teched-2022-edition/" target="_blank" rel="noopener noreferrer">SAP Integration Suite enhanced for today’s digital processes – SAP TechEd 2022 Edition | SAP Blogs</A><BR /> <BR /> <STRONG>Questions &amp; Answers</STRONG>&nbsp;of&nbsp;<STRONG>SAP TechEd 2021</STRONG>&nbsp;kindly here:&nbsp;<A href="https://blogs.sap.com/2022/01/12/sap-teched-2021-watch-the-sap-integration-suite-session-recordings-and-discover-the-sap-integration-suite-faqs/" target="_blank" rel="noopener noreferrer">SAP TechEd 2021: Watch the SAP Integration Suite session recordings and discover the SAP Integration Suite FAQs | SAP Blogs</A><BR /> <BR /> To&nbsp;<STRONG>stay up-to-date</STRONG>&nbsp;with SAP Integration Suite, please follow me at SAP Community&nbsp;<SPAN class="mention-scrubbed">lenamika</SPAN>&nbsp; and our community product page&nbsp;<A href="https://blogs.sap.com/tags/73554900100800003241/" target="_blank" rel="noopener noreferrer">SAP Integration Suite | SAP | SAP Blogs</A>.<BR /> <BR /> Also please feel free to reach out to me at LinkedIn:&nbsp;<A href="https://www.linkedin.com/in/milena-mathyl-988746137/" target="_blank" rel="noopener nofollow noreferrer">Milena Mathyl | LinkedIn</A>&nbsp;in case of&nbsp;<STRONG>further questions</STRONG>&nbsp;or&nbsp;<STRONG>interest in a long-time collaboration</STRONG>.<BR /> <BR /> Please discover also&nbsp;<A href="https://help.sap.com/viewer/product/SAP_CLOUD_PLATFORM_INTEGRATION_SUITE/sap.cp.integration.suite/en-US" target="_blank" rel="noopener noreferrer">SAP Integration Suite on help.sap.com</A>&nbsp;to&nbsp;<STRONG>learn more about SAP Integration Suite</STRONG>&nbsp;and its capabilities. On&nbsp;<A href="https://discovery-center.cloud.sap/serviceCatalog/integration-suite" target="_blank" rel="noopener nofollow noreferrer">SAP Integration Suite in the Service Catalog</A>&nbsp;you will get more insight to SAP Integration Suite including its&nbsp;<A href="https://help.sap.com/docs/SAP_CLOUD_PLATFORM_INTEGRATION_SUITE/51ab953548be4459bfe8539ecaeee98d/3dcf507f92f54597bc203600bf8f94c5.html?locale=en-US" target="_blank" rel="noopener noreferrer">Initial setup</A>,&nbsp;<A href="https://help.sap.com/learning-journeys/f4a390d6ee7147aa89ba587102702677" target="_blank" rel="noopener noreferrer">learning journey</A>,&nbsp;<A href="https://discovery-center.cloud.sap/serviceCatalog/integration-suite?region=all&amp;tab=service_plan" target="_blank" rel="noopener nofollow noreferrer">pricing</A>,&nbsp;<A href="https://discovery-center.cloud.sap/serviceCatalog/integration-suite?region=all&amp;tab=mission" target="_blank" rel="noopener nofollow noreferrer">missions</A>,&nbsp;<A href="https://roadmaps.sap.com/board?range=FIRST-LAST&amp;PRODUCT=000D3A47875C1EDB98A8A910864AC24B&amp;PRODUCT=73554900100800003241#Q4%202022" target="_blank" rel="noopener noreferrer">roadmap</A>, and&nbsp;<A href="https://discovery-center.cloud.sap/serviceCatalog/integration-suite?region=all&amp;tab=customerreference" target="_blank" rel="noopener nofollow noreferrer">customer stories</A>.<BR /> <BR /> To get a&nbsp;<STRONG>full SAP Business Technology Platform experience</STRONG> at SAP TechEd 2023, kindly have a look to other sessions, like <A id="link_8" class="page-link lia-link-navigation lia-custom-event" href="https://groups.community.sap.com/t5/sap-teched-blog-posts/supercharge-your-skills-with-application-development-amp-automation-sap/ba-p/287422" target="_blank" rel="noopener noreferrer">Application Development &amp; Automation @ SAP TechEd 2023</A><BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp; 2023-10-27T06:41:58+02:00 https://community.sap.com/t5/technology-blogs-by-sap/top-picks-innovations-highlights-from-sap-business-technology-platform-q3/ba-p/13578572 Top Picks: Innovations Highlights from SAP Business Technology Platform (Q3/2023) 2023-11-09T10:00:41+01:00 Stephanie_Stang https://community.sap.com/t5/user/viewprofilepage/user-id/10354 <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/Picture2-11.png" height="287" width="465" /></P><BR /> What an amazing TechEd 2023! We had many announcements for SAP BTP like<A href="https://www.linkedin.com/feed/hashtag/?keywords=sapbtp&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7127315041942421504" data-attribute-index="1" target="_blank" rel="nofollow noopener noreferrer"> #SAPBTP</A>&nbsp;like&nbsp;<A href="https://www.linkedin.com/feed/hashtag/?keywords=sapbuildcode&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7127315041942421504" data-attribute-index="2" target="_blank" rel="nofollow noopener noreferrer">#SAPBuildCode</A>,&nbsp;<A href="https://www.linkedin.com/feed/hashtag/?keywords=edgeintegrationcell&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7127315041942421504" data-attribute-index="3" target="_blank" rel="nofollow noopener noreferrer">#EdgeIntegrationCell</A>,&nbsp;<A href="https://www.linkedin.com/feed/hashtag/?keywords=vectorcapabilities&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7127315041942421504" data-attribute-index="4" target="_blank" rel="nofollow noopener noreferrer">#Vectorcapabilities</A>&nbsp;for SAP HANA Cloud,&nbsp;<A href="https://www.linkedin.com/feed/hashtag/?keywords=justask&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7127315041942421504" data-attribute-index="5" target="_blank" rel="nofollow noopener noreferrer">#JustAsk</A> for SAP Analytics Cloud. Also in Q3 we delievered a lot of innovations on SAP BTP. In this blog post I want to focus on a subset of innovation highlights including an outlook on what is coming up next.<BR /> <H3 id="toc-hId-1093158939"><EM>SAP BTP Innovation Highlights Q3 2023</EM></H3><BR /> <H4 id="toc-hId-1025728153">Application Development and Automation:</H4><BR /> <UL><BR /> <LI>Starting in the Application Development and Automation pillar of SAP BTP, with Q3 we have some higlights in the SAP Build Work Zone area. Happy to share that SAP Build Work Zone, standard edition (formerly known as SAP Launchpad service) introduced a new site experience. Having the latest functionality based on the Horizion visual theme for Fiori in place, it also offers new design time capabilities targeted to the content administrator to be able to create spaces and pages manually. Additionally, UI integration cards and tiles can be added. The end user experience improved as well. They have now the capability to consume the pages and the content of the pages in runtime. Get more information on all capabilities in the <A style="font-size: 1rem" href="https://blogs.sap.com/2023/07/27/new-site-experience-with-spaces-and-pages-is-available-for-sap-build-work-zone-standard-edition/" target="_blank" rel="noopener noreferrer">blog post</A><SPAN style="font-size: 1rem"> of </SPAN><SPAN class="mention-scrubbed">vera.gutbrod</SPAN></LI><BR /> <LI>Welcome SAP Start! With Q3, SAP Start is part of the SAP Build Work Zone family and your central entry point into SAP cloud solutions. Having SAP Start in place, you will find all your relevant business information in a single landing page based on end-user stories. It delivers immediate value with insight cards. The initial release is available for SAP customers with RISE with SAP or GROW with SAP contracts or SAP Build Work Zone (standard edition) licenses. Want to explore more about SAP Start? Then read the <A href="https://blogs.sap.com/2023/08/28/top-5-product-updates-for-sap-build-work-zone-i-q2-and-q3-2023-news/" target="_blank" rel="noopener noreferrer">blog post</A> of <SPAN class="mention-scrubbed">yumnah.abbasi</SPAN></LI><BR /> <LI>Governance can be an unpopular topic...but it doesn´t have to be. Many of our customers have not just started their low-code journey, they also extend SAP S/4HANA with low-code applications and automations. Governance is a must-have if it comes to security, performance or compliance that could affect the ERP. Helping our customers to find the right governance, we released our one-stop resource hub, the Governance Resource Center for SAP Build. It provides you with all the information, assets and practical templates designed for IT administrators, a toolkit for building a citizen developer center of excellence business site, and the new Use Case Evaluator for SAP Build projects. Check it out <A href="https://forms.office.com/Pages/ResponsePage.aspx?id=bGf3QlX0PEKC9twtmXka9wZKKG5THS9PkxADEwX46a9UQUk5N0dKVjNGWU5FTlFPVDRTRDBLTEMwWC4u" target="_blank" rel="nofollow noopener noreferrer">here</A>.</LI><BR /> </UL><BR /> <H4 id="toc-hId-829214648">Integration:</H4><BR /> <UL><BR /> <LI>Graph is now generally available as part of API management in SAP Integration Suite. This new capability extends traditional API management by exposing business data in the form of a semantically connected data graph, accessed via a single unified and powerful API. Graph gives integration and application developers selective, seamless access to enterprise data via a single, easy-to-use API. It is also available in SAP Build, SAP’s low-code solution. Check out the <A href="https://blogs.sap.com/2023/07/12/graph-new-in-sap-integration-suite/" target="_blank" rel="noopener noreferrer">blog post</A> of <SPAN class="mention-scrubbed">piyush.gakhar</SPAN></LI><BR /> <LI>Migration from SAP Process Orchestration to SAP Integration Suite is an important topic. With Q3 you can now migrate Integrated Configuration Objects (ICO) from SAP Process Orchestration 7.31 and 7.40 versions to SAP Integration Suite. The update is available for template-based migration tooling in Cloud Integration and will be available for the Migration Assessment tooling soon. For supported service pack see <A href="https://help.sap.com/docs/PRODUCTS/922bf2dbe0b646aaaa8cb5e077cfd799/1a3bfbcb4b7d48fbbd394d3e4a09fc62.html?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">What Is Migration Tooling?</A></LI><BR /> </UL><BR /> <H4 id="toc-hId-632701143">Data and Analytics:</H4><BR /> <UL><BR /> <LI>With the Q3 release of 2023, several great Calculation View feature have been released that can be used in Business Application Studio. MDS cubes provide an option to speed up analytical queries, column-level lineage gives you an indication where a column is used in a current Calculation View and measure-based restrictions in columns gives you more filtering flexibility while eliminating outliers before aggregation. But this is just a subset! Make sure you check out the <A href="https://blogs.sap.com/2023/09/26/calculation-view-features-of-2023-qrc3/" target="_blank" rel="noopener noreferrer">blog post</A> of <SPAN class="mention-scrubbed">jan.zwickel</SPAN> for the full-blown experience.</LI><BR /> <LI>In addition to that Custom Widget can support Linked Analysis starting with Q3. The Linked Analysis feature in custom widgets gives UI developers now the chance to dynamically link custom widgets to others in the Story and perform insightful filtering operations on demand. If you want to learn more read the <A href="https://blogs.sap.com/2023/08/22/how-to-use-linked-analysis-with-custom-widget/" target="_blank" rel="noopener noreferrer">blog post</A> of <SPAN class="mention-scrubbed">marouferchichi</SPAN>.</LI><BR /> </UL><BR /> <H4 id="toc-hId-436187638">Artificial Intelligence:</H4><BR /> <UL><BR /> <LI>Late Q3 we announced Joule, a natural-language, generative AI copilot. Our digital assistant that provides intelligent insights and fast business outcomes offerd with seamless user experience across the entire portfolio.By quickly sorting through and contextualizing data from multiple systems to surface smarter insights, Joule helps people get work done faster and drive better business outcomes in a secure, compliant way. Joule will be available with SAP SuccessFactors solutions and the SAP Start site later this year, and with SAP S/4HANA Cloud, public edition early next year. SAP Customer Experience and SAP Ariba solutions along with SAP Business Technology Platform will follow. Learn more about Joule <A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer">here</A>.</LI><BR /> <LI>With Q3 the SAP AI Core toolkit is available - our Visual Studio Code extension for AI-driven development with SAP solutions. It makes a connection to your SAP AI Core instance directly from Visual Studio Code, allows you to develop solutions for your use case, and leverage AI capabilities through SAP AI Core, in one developer tool.Check out the blog post of <SPAN class="mention-scrubbed">yoganandamuthaiah</SPAN></LI><BR /> </UL><BR /> <H4 id="toc-hId-239674133">Cross SAP BTP:</H4><BR /> <UL><BR /> <LI>Development Operations is quite importan for our customers. With Q3 you can now transport content for SAP Analytics Cloud scenarios with SAP Cloud Transport Management service. This allows you to handle the propagation of corresponding changes through a standardized, enterprise-ready process and to align those changes with other transports, from other services or environments.Read the <A href="https://blogs.sap.com/2023/08/20/sap-analytic-cloud-content-network-package-transport-via-btp-transport-management-service./" target="_blank" rel="noopener noreferrer">blog post</A> of <SPAN class="mention-scrubbed">ashokkumar.kn</SPAN> and watch the replay of the <A href="https://blogs.sap.com/2023/10/27/recap-whats-new-in-sap-btp-q32023-highlights/" target="_blank" rel="noopener noreferrer">What´s New with SAP BTP</A> quarterly series to get more insights. For more on how to apply agile DevOps principles in an enterprise environment and what is possible with SAP BTP, you can also check out the new learning journey:&nbsp;<A href="https://learning.sap.com/learning-journey/discovering-devops-with-sap-btp" target="_blank" rel="noopener noreferrer">https://learning.sap.com/learning-journey/discovering-devops-with-sap-btp</A></LI><BR /> </UL><BR /> Want to know more on the announcements for SAP BTP at SAP TechEd2023? Then stay tuned for a special innovation highlights blog coming soon.<BR /> <H3 id="toc-hId--85922091"><EM><STRONG>SAP BTP Innovation Highlights - outlook:</STRONG></EM></H3><BR /> <H4 id="toc-hId--153352877">Please find here my personal innovation highlights outlook coming up:</H4><BR /> <UL><BR /> <LI>Application Development and Automation: <A href="https://www.sap.com/products/technology-platform/developer-tools.html" target="_blank" rel="noopener noreferrer">SAP Build Code</A></LI><BR /> <LI>Integration:&nbsp;<A href="https://roadmaps.sap.com/board?PRODUCT=000D3A47875C1EDB98A8A910864AC24B&amp;PRODUCT=73554900100800003241&amp;range=2023Q1-2023Q3#;INNO=252EF753CFDE1EEDA4D0197BC608F677" target="_blank" rel="noopener noreferrer">Edge Integration Cell for on-premise and hybrid integration scenarios including API-led integrations</A></LI><BR /> <LI>Artificial Intelligence:&nbsp;<A href="https://roadmaps.sap.com/board?range=2023Q2-2023Q4&amp;PRODUCT=73554900100800002861#Q3%202023;INNO=000D3AAC9DD21EEC87A7053F4A65ADCB" target="_blank" rel="noopener noreferrer">Document classification capability as part of Document Information Extraction</A></LI><BR /> <LI>Data and Analytics:&nbsp;<A href="https://roadmaps.sap.com/board?q=Next-generation%2520natural%2520language%2520query%2520(NLQ)%2520powered%2520by%2520AI&amp;range=CURRENT-LAST#;INNO=951BE4DE95861EDD9FAC64997FD474B0" target="_blank" rel="noopener noreferrer">Next-generation natural language query (NLQ) powered by AI for SAP Analytics Cloud</A></LI><BR /> <LI>Cross SAP BTP: <A href="https://roadmaps.sap.com/board?PRODUCT=73554900100800001771&amp;range=2023Q2-2023Q4#;INNO=11B16179D5801EEE8385283035AFC5CA" target="_blank" rel="noopener noreferrer">SAP Continuous Integration and Delivery service: Pipeline to build and deploy SAP Cloud Application Programming Model applications in the SAP BTP, Kyma runtime</A>;&nbsp;<A href="https://roadmaps.sap.com/board?PRODUCT=42F2E964FAAF1EDA9FF753E17F3000E5&amp;q=provisioning%2520of%2520global&amp;range=FIRST-LAST#;INNO=951BE4DE95861EED9BE50AB398E20618" target="_blank" rel="noopener noreferrer">Provisioning of global accounts and directory members through the Identity Provisioning service</A></LI><BR /> </UL><BR /> Check out all upcoming innovations in our&nbsp;<A href="https://roadmaps.sap.com/" target="_blank" rel="noopener noreferrer">SAP Road Map Explorer</A>&nbsp;to learn more.<BR /> <H4 id="toc-hId--349866382"><EM><STRONG>Check Out:</STRONG></EM></H4><BR /> <OL><BR /> <LI>Follow the&nbsp;<A href="https://roadmaps.sap.com/board?range=FIRST-LAST&amp;sap-outbound-id=F84338300454061B469DD99EFA855784D1EE0293&amp;PRODUCT=42F2E964FAAF1EDA9FF753E17F3000E5#Q1%202022" target="_blank" rel="noopener noreferrer">Roadmap Explorer</A>, which is updated on a regular basis to always stay on top of the latest innovations</LI><BR /> <LI>Subscribe to our monthly&nbsp;<A href="https://www.sap.com/cmp/nl/sap-cp-newsletter/" target="_blank" rel="noopener noreferrer">newsletter</A>&nbsp;to get all SAP BTP product news</LI><BR /> <LI>Check out the next blog post beginning of Q4/2023 summarizing the highlights of the previous quarter</LI><BR /> <LI>If you want to be up to date on the latest SAP BTP news and innovations check out the new monthly&nbsp;<A href="https://www.youtube.com/playlist?list=PLWV533hWWvDkLRKiY-2aVnlXu5CpERDf9" target="_blank" rel="noopener nofollow noreferrer">SAP Innobytes video series</A></LI><BR /> <LI>Want to get a recap on what´s new in SAP BTP then check out the What´s New in SAP BTP quarterly series</LI><BR /> <LI>Mark your calendar for the latest&nbsp;<A href="https://www.sap.com/about/events.html" target="_blank" rel="noopener noreferrer">SAP events</A>&nbsp;coming up</LI><BR /> </OL><BR /> <STRONG><span class="lia-unicode-emoji" title=":backhand_index_pointing_right:">👉🏽</span></STRONG>Read other&nbsp;<A href="https://blogs.sap.com/tags/8077228b-f0b1-4176-ad1b-61a78d61a847/" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform blog posts</A>&nbsp;and check the&nbsp;<A href="https://community.sap.com/topics/business-technology-platform" target="_blank">SAP Business Technology Platform Topic Page&nbsp;</A>where you can also ask questions. Feel free to follow my profile&nbsp;<SPAN class="mention-scrubbed">stephanie.stang</SPAN> that you do not miss my next personal view of innovation highlights for SAP BTP for Q4 2023 and a recap on all innovation highlights of SAP TechEd 2023! 2023-11-09T10:00:41+01:00 https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-for-sap-integration-suite-october-november-2023/ba-p/13577528 What’s New for SAP Integration Suite – October & November 2023 2023-12-07T09:32:32+01:00 GabrielaGahse https://community.sap.com/t5/user/viewprofilepage/user-id/4015 SAP TechEd is over, and you got already valuable new information. Now the end of the year is upcoming, and I want to provide a wrap up of important innovations we have released over the last two months. Some of them you might have seen already during our <A href="https://sapvideoa35699dc5.hana.ondemand.com/?entry_id=1_cv8d2mxt" target="_blank" rel="nofollow noopener noreferrer">Monthly Updates webinar</A> late November.<BR /> <BR /> SAP Integration Suite highlights are:<BR /> <UL><BR /> <LI>Next-generation hybrid integration with Edge Integration Cell</LI><BR /> <LI>Auto-registration of developers in API business hub enterprise</LI><BR /> <LI>New design of API business hub enterprise will get default</LI><BR /> <LI>In-built retry functionality in the HTTP receiver adapter</LI><BR /> <LI>Urgent reminder: upgrade to new version of third-party connectors now</LI><BR /> <LI>Inspect system memory usage in Cloud Integration</LI><BR /> <LI>Analysis of metered messages in Cloud Integration</LI><BR /> <LI>Upcoming new openSAP course about B2B scenarios</LI><BR /> <LI>Update on B2B libraries cXML, ASC X12, and Tradacoms</LI><BR /> <LI>Import customer-extended IDocs in Integration Advisor</LI><BR /> <LI>Support for the ProcessDirect adapter in Trading Partner Management</LI><BR /> <LI>Custom search attributes in B2B monitoring</LI><BR /> <LI>New rules for Migration Assessment</LI><BR /> <LI>New templates for migration tooling</LI><BR /> <LI>Support for older SAP Process Orchestration releases</LI><BR /> <LI>New learning journey on define and execute an enterprise integration strategy</LI><BR /> <LI>Subscription to integration and event packages</LI><BR /> </UL><BR /> <H2 id="toc-hId-964046280">Next-generation hybrid integration with Edge Integration Cell</H2><BR /> Within the <A href="https://youtu.be/6BsvzygS5Hg?t=2476" target="_blank" rel="nofollow noopener noreferrer">SAP TechEd executive keynote</A> we have announced that the Edge Integration Cell, our flexible hybrid integration runtime, is now generally available. This new extension to SAP Integration Suite allows customers to manage APIs and run integration scenarios within private landscapes, offering features such as flexible deployment in customer-managed private Kubernetes environments, local data processing for data compliance, and business continuity during temporary connectivity loss. This brings greater flexibility and control over integrations and APIs in heterogeneous and distributed environments of enterprises. With the combination of capabilities and the <A href="https://blogs.sap.com/?p=1876276&amp;source=email-global-notification-bp-new-in-tag-followed" target="_blank" rel="noopener noreferrer">introduction of API artifacts</A>, it is even possible to add traffic and security policies to the mediation of messages with the integration flows. Read the <A href="https://blogs.sap.com/2023/11/05/announcement-hybrid-integrations-with-integration-suite" target="_blank" rel="noopener noreferrer">announcement</A>, check out the detailed blogpost on <A href="https://blogs.sap.com/2023/11/16/next-gen-hybrid-integration-with-sap-integration-suite-edge-integration-cell-introduction-setup/" target="_blank" rel="noopener noreferrer">how to setup Edge Integration Cell</A>, and access the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/what-is-sap-integration-suite-edge-integration-cell" target="_blank" rel="noopener noreferrer">documentation</A>. For future updates, visit the &nbsp;<A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800003553#Q4%202023" target="_blank" rel="noopener noreferrer">Edge Integration Cell roadmap</A>.<BR /> <H2 id="toc-hId-767532775">API Management</H2><BR /> <H3 id="toc-hId-700101989">Auto-registration of developers in API business hub enterprise</H3><BR /> The API business hub enterprise enables you to explore the APIs, read the associated API documentation, and view resources. Now we offer a registration procedure for application developers leveraging the role-collection assignments in SAP BTP. This enhances the user experience by automatically assigning predefined roles based on role collections, reducing manual efforts by the administrator. For more information, read <A href="https://help.sap.com/docs/PRODUCTS/922bf2dbe0b646aaaa8cb5e077cfd799/c85fafe4ff5b4463924e0ccf5b4e0e41.html?locale=en-US&amp;state=DRAFT&amp;version=Cloud" target="_blank" rel="noopener noreferrer">Register on API business hub enterprise</A>.<BR /> <H3 id="toc-hId-503588484">New design of API business hub enterprise will get default</H3><BR /> End of 2022 we have refreshed the user experience of the API business hub enterprise. Please be aware that starting from March 2023 the new design will be default. The classic design will be available until June 2024. Refer to <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/customize-visual-format-of-api-business-hub-enterprise" target="_blank" rel="noopener noreferrer">Customize the visual format of the API business hub enterprise</A>.<BR /> <H2 id="toc-hId-177992260">Cloud Integration</H2><BR /> <H3 id="toc-hId-110561474">In-built retry functionality in the HTTP receiver adapter</H3><BR /> We have enhanced the HTTP receiver adapter by introducing a built-in retry option, facilitating the reattempt of failed HTTP requests. This feature proves especially valuable for addressing backend HTTP server issues. Users can now configure the retry option to specify HTTP error response codes (such as 503 or 429) that trigger a retry. Additionally, they can set the number of iterations and the time interval between each retry.<BR /> <BR /> This enhancement extends to the ability to configure connection retry to a target system in the event of failed HTTP requests. This feature is particularly useful when the backend HTTP server encounters challenges in serving requests, especially intermittent issues. Access more information in the <A href="https://blogs.sap.com/2023/10/25/sap-integration-suite-inbuilt-retry-option-for-http-receiver-adapter/" target="_blank" rel="noopener noreferrer">blogpost</A> and the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/http-receiver-adapter?version=CLOUD" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <H3 id="toc-hId--85952031">Urgent reminder: upgrade to new version of third-party connectors now</H3><BR /> As of <A href="https://launchpad.support.sap.com/#/notes/3001980" target="_blank" rel="noopener noreferrer">SAP note 3001980</A> the following previous adapter versions have been deprecated since end of 2020: Salesforce, Amazon Web Services, Microsoft Dynamics, SugarCRM. No new features or enhancements have been introduced for these deprecated adapter versions. Effective January 1st, 2024, these versions will no longer be operational.<BR /> <BR /> Action is required from customer side. Please choose one of the following options: either migrate to updated new adapter versions and take advantage of the new features (request access to <A href="https://workzone.one.int.sap/site#workzone-home&amp;/groups/PT9LrZvj1sFlRcDehwsxn4/overview_page/FXORsu2YkcPI8zMJ0DdlVi" target="_blank" rel="nofollow noopener noreferrer">migration documentation</A> by <A href="mailto:annemarie.kiefer@sap.com" target="_blank" rel="nofollow noopener noreferrer">annemarie.kiefer@sap.com</A>) or acquire new Advantco adapter versions directly from Advantco with support provided exclusively by Advantco. Additionally, it is necessary to delete integration flows using the adapters that are no longer in use and undeploy the adapters.<BR /> <H3 id="toc-hId--282465536">Inspect system memory usage</H3><BR /> Since June of this year, we have implemented the powerful Inspect feature, enabling you to analyze the database resources utilized by your integration flows. As integration flows consume system memory at runtime, we have further enhanced the feature. Now, you can also inspect the system memory usage per integration flow for a specific time period. Check out the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/inspect-system-memory-usage" target="_blank" rel="noopener noreferrer">document</A> and refer to the blogpost from June <A href="https://blogs.sap.com/2023/06/23/inspecting-and-understanding-resource-consumption-of-your-integration-content" target="_blank" rel="noopener noreferrer">Inspecting and understanding resource consumption of your integration content</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Inspect-memory-usage.jpg" /></P><BR /> <BR /> <H3 id="toc-hId--478979041">Analysis of metered messages</H3><BR /> Now you can analyze metered messages as a self-service. High-level insights, including a summary of messages processed within a selected date range, are provided. This includes differentiation between messages exclusively exchanged between SAP applications and the chargeable ones. Additionally, you have the option to delve into the details of a specific integration flow and download a report for further verification and audit purposes. Refer to the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/usage-details" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Message-Usage-Dashboard.jpg" /></P><BR /> <BR /> <H2 id="toc-hId--804575265">B2B Integration</H2><BR /> <H3 id="toc-hId--947237420">Upcoming new openSAP course</H3><BR /> We are happy to shout out that a new openSAP course <A href="https://open.sap.com/courses/btp4" target="_blank" rel="noopener noreferrer">Manage B2B scenarios effectively with SAP Integration Suite</A> is upcoming. Start of the 3 weeks course will be January 9<SUP>th</SUP>. Enroll today!<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/B2B-openSAP-course-scaled.jpg" /></P><BR /> <BR /> <H3 id="toc-hId--1143750925">Update on B2B libraries cXML, ASC X12, and Tradacoms</H3><BR /> We have extended our rich type systems (B2B libraries) in recent months by new SOAP message versions for SAP S/4HANA and SAP S/4HANA Cloud, based on the data from the SAP Business Accelerator Hub. Now we have expanded it again by new versions for ASC X12 and cXML. Additionally, the Tradacoms format (from GS1 UK) is now available. You have the full end-to-end support for Tradacoms messages in Trading Partner Management and can use the type system for modelling guidelines in Integration Advisor. Check out the <A href="https://blogs.sap.com/2023/10/26/integration-advisor-new-versions-for-s-4hana-soap-apis-and-for-b2b-libraries-cxml-asc-x12-and-tradacoms/" target="_blank" rel="noopener noreferrer">blogpost</A> for more information.<BR /> <H3 id="toc-hId--1340264430">Import customer-extended IDocs</H3><BR /> The Integration Advisor capability significantly simplifies the handling of customer-extended IDocs. You are now able to import your extended IDoc and reference it to the standard IDoc.<BR /> <H3 id="toc-hId--1536777935">Support for the ProcessDirect adapter in Trading Partner Management</H3><BR /> Trading Partner Management is now supporting the ProcessDirect adapter. You may define the ProcessDirect adapter as the sender or receiver adapter in the company and the trading partner profiles. This offers you the possibility to use adapter types not yet supported. Understand the integration flow configuration within the <A href="https://help.sap.com/docs/integration-suite/eic-model-structure/integration-flow-configuration-version-2-0" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <H3 id="toc-hId--1733291440">Custom search attributes in B2B monitoring</H3><BR /> We have extended the B2B monitoring by additional filtering attributes to give you the option to work directly with the most important parameters. You are able to define up to 10 custom search attributes in the B2B design space which can be consumed and used to filter for parameters such as a document ID. Refer to the <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/configuration-manager" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/TPM-search-attributes.png" /></P><BR /> <BR /> <H2 id="toc-hId--1636401938">Migration to SAP Integration Suite</H2><BR /> <H3 id="toc-hId--2126318450">New rules for Migration Assessment</H3><BR /> We have improved the quality of the Migration Assessment capabilities, used to assess the effort and the feasibility of the migration of SAP Process Integration / SAP Process Orchestration scenarios to SAP Integration Suite, by adding new rules. Also, we provide more information like the number of processed messages or the extraction status.<BR /> <H3 id="toc-hId-1972135341">New templates for migration tooling</H3><BR /> As you may know, the migration tool that is part of the Cloud Integration designer is based on a set of integration flow templates. We have shipped additional templates for the async/sync bridge, mail attachments, and for content-based routing and recipient list.<BR /> <H3 id="toc-hId-1775621836">Support for older SAP Process Integration / SAP Process Orchestration releases</H3><BR /> We can’t emphasize it enough. Both the Migration Assessment and the migration tooling are supporting now former SAP Process Integration / SAP Process Orchestration releases&nbsp;as 7.5, 7.4, and 7.31. Find additional information in the <A href="https://help.sap.com/docs/integration-suite/eic-model-structure/what-is-migration-tooling?state=DRAFT&amp;q=7.31#features" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <H2 id="toc-hId-1872511338">Integration Assessment</H2><BR /> <H3 id="toc-hId-1550778517">New learning journey on defining and executing an enterprise integration strategy</H3><BR /> A free SAP Learning Journey <A href="https://learning.sap.com/learning-journey/getting-started-with-sap-integration-solution-advisory-methodology" target="_blank" rel="noopener noreferrer">Getting Started with SAP Integration Solution Advisory Methodology</A> is now available. The course is designed for beginners and covers important concepts such as SAP's integration strategy, the four phases of the methodology, and its tool-based approach enabled by the Integration Assessment capability. Learners have the opportunity to join the SAP Learning Group for additional support and collaboration.<BR /> <H2 id="toc-hId-1647668019">SAP Business Accelerator Hub</H2><BR /> <H3 id="toc-hId-1157751507">Subscription to integration and event packages</H3><BR /> The SAP Business Accelerator Hub has been expanded to allow users to be notified about lifecycle changes to content. Users can subscribe to an integration package or event and receive proactive emails about changes such as API deprecation and new successor APIs. If users wish to stop receiving these updates, they can mute the notifications via the <EM>My Subscriptions</EM> page. Refer to the <A href="https://help.sap.com/docs/business-accelerator-hub/sap-business-accelerator-hub/discover-and-explore-sap-business-accelerator-hub" target="_blank" rel="noopener noreferrer">documentation</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Hub-Subscribe-to-integration-package.jpg" height="103" width="96" /></P><BR /> <BR /> <H2 id="toc-hId-1254641009">Become an Integration Black-Belt</H2><BR /> We have updated the Black-Belt certification program to help you learn how to solve complex challenges by using SAP Integration Suite. Upon completion of the program, participants will earn a "black belt" badge, symbolizing their expertise. Get access to the learning program that is hosted on the SAP Learning Hub through this <A href="https://accounts.sap.com/saml2/idp/sso?sp=https://www.successfactors.eu/learninghub&amp;RelayState=%2Fsf%2Flearning%3FdestUrl%3Dhttps%253a%252f%252fsaplearninghub%252eplateau%252ecom%252flearning%252fuser%252fdeeplink%255fredirect%252ejsp%253flinkId%253dCATALOG%255fSEARCH%2526sbArSel%253d%2526keywords%253dSUP_VBP_1090_0065%2526selKeyWordHeader%253dSUP_VBP_1090_0065%2526catSel%253d%2526srcSel%253dESAC%2526delMthSel%253d%2526ILDateFrm%253d%2526ILDateTo%253d%2526ILBlend%253d%2526ILSchd%253d%2526fromSF%253dY%26company%3Dlearninghub" target="_blank" rel="noopener noreferrer">link</A>.<BR /> <H2 id="toc-hId-1058127504">How to stay tuned on recent and upcoming innovations?</H2><BR /> Our <A href="https://roadmaps.sap.com/board?PRODUCT=000D3A47875C1EDB98A8A910864AC24B&amp;range=CURRENT-LAST" target="_blank" rel="noopener noreferrer">roadmap</A> gives you the answers to where we are heading with SAP Integration Suite. You can easily check out the latest innovations and follow what is planned for the following quarters. All recent innovations also cover links to blogposts or documentation - use the tab <EM>Features </EM>within each of the blue tiles.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Roadmap-Dec-23-scaled.jpg" /></P><BR /> We also refer to the complete list of new releases in our documentation: <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>.<BR /> <BR /> And if you have not heard of&nbsp;our monthly webinars, I suggest you <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 an invitation to the upcoming ones. Our team of Product Management experts host these webinars to showcase the latest and greatest updates regarding all SAP Integration Suite capabilities. The webinars are hosted on the last Tuesday of every month and the next one is scheduled for next year, January 30<SUP>th</SUP>.<BR /> <BR /> In case you have missed our last monthly webinar, don’t worry. Visit <A href="https://webinars.sap.com/sap-user-groups-k4u/en/ifgintegration" target="_blank" rel="noopener noreferrer">2023 Learning Sessions for SAP User Groups on SAP Integration Suite</A> for all recordings, presentations, and Q&amp;As. 2023-12-07T09:32:32+01:00 https://community.sap.com/t5/technology-blogs-by-sap/join-the-upcoming-cei-project-in-2024-for-sap-integration-suite/ba-p/13590754 Join the upcoming CEI project in 2024 for SAP Integration Suite 2024-02-06T08:56:32.734000+01:00 alex_bundschuh https://community.sap.com/t5/user/viewprofilepage/user-id/45178 <P>Join the upcoming Customer Engagement Initiative project in 2024 for shaping the SAP Integration Suite product, SAP's&nbsp;integration platform-as-a-service (iPaaS) offering that helps you quickly integrate on-premise and cloud-based processes, services, applications, events, and data.</P><P>SAP Integration Suite&nbsp;provides out-of-the-box ready to use integration content for SAP as well as non-SAP integration scenarios and offers simple modelling based integration tooling with standard inbuilt connectivity adapters and data transformation capabilities. It allows you to manage your APIs incl. discovery and design of APIs as well as enriching your integration with security and traffic policies. Graph as part of API Management allows you to expose all your business data in the form of a semantically connected data graph accessed via a single unified API. Furthermore, the new Edge Integration Cell extends your SAP Integration Suite landscape by offering an optional hybrid integration runtime so that you can manage your APIs and run your integration scenarios within your private landscape. For customers on SAP Process Orchestration, we ease the move to SAP Integration Suite by providing a migration assessment capability as well as an in-built migration tool.</P><P>Based on customer requirements, we work on improving SAP Integration Suite's capabilities and increasing its scope. Here, we also take into account new technologies like Generative AI that may help you improving the overall productivity when implementing and running your integration scenarios.</P><P>It is essential to gather feedback from our customers at a very early stage of new developments to validate and ensure that we build the right features for your needs. Hence, we are running another&nbsp;Customer Engagement Initiative project for SAP Integration Suite where we like to engage with our customers and partners to discuss topics in our backlog, validate concepts, identify existing pain points, gather feedback, etc.</P><P>Some of the topics that will be discussed and validated with customers and partners include:</P><UL><LI>API Fabric offering <SPAN>a central, multi-gateway API registry and catalog</SPAN></LI><LI>Use cases for Generative AI integration with SAP Integration Suite</LI><LI>Modernization in context of SAP Process Orchestration to SAP Integration Suite move</LI><LI>Misc. Migration Assessment &amp; Migration tool topics incl. reuse of artifacts (data types, message types, function libraries), ABAP proxy generation, B2B</LI><LI>Misc. Edge Integration Cell topics such as sizing guide, offline mode, adapters, etc.</LI></UL><P>If you like to join the&nbsp;Hybrid Integration with SAP Integration Suite influence project, <STRONG>please register</STRONG> at the <A href="https://influence.sap.com/sap/ino/#campaign/3631" target="_blank" rel="noopener noreferrer">customer registration page</A>&nbsp;in the customer influence opportunities.</P><P>The registration has started on 5th of February and will go until 8th of March.</P><P>Once, the registration closes, we will invite you for an initial call where we go through the scope and prerequisites of the feedback project.</P> 2024-02-06T08:56:32.734000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/information-map-introduction-series-graph-in-sap-integration-suite/ba-p/13614448 Information Map – Introduction Series: Graph in SAP Integration Suite 2024-02-21T15:10:07.961000+01:00 Palak https://community.sap.com/t5/user/viewprofilepage/user-id/17091 <P>Graph is a powerful enhancement to API Management, capability of SAP Integration Suite , which supports in transforming APIs. You can easily and securely, provide your integration and application developers with selective, abstracted access to your enterprise data via a single, easy-to-use API. The enterprise data is semantically connected in the form of a business data graph.</P><P>This series is designed to support SAP customers and partners through building a first end-to-end implementation of Graph. To keep things straightforward, there are two personas in an end-to-end Graph implementation, which have the following responsibilities:</P><UL><LI>Administrator<UL><LI>Configures the SAP Integration Suite service plan in SAP BTP, as well as SAP BTP users and their roles</LI><LI>Enables connectivity to business systems in the form of SAP BTP destinations</LI><LI>Creates a business data graph (including model extensions, as required)</LI><LI>Explores the resulting business data graph in the Graph Navigator tool</LI><LI>Prepares the credentials file to the business data graph for the developer</LI></UL></LI></UL><P>&nbsp;</P><UL><LI><SPAN>&nbsp;Developer</SPAN><BR /><UL><LI>Uses the Graph Navigator tool to explore the connected entities and try out OData queries on the real data included in the business data graph</LI><LI>Creates and deploys an application which uses the Graph API (and the credentials file for the business data graph)</LI></UL></LI></UL><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Palak_0-1710760949331.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/82332iEADA9689585EC183/image-size/large?v=v2&amp;px=999" role="button" title="Palak_0-1710760949331.png" alt="Palak_0-1710760949331.png" /></span></P><P><STRONG>Available introduction series parts</STRONG></P><UL><LI>Announcement - Graph: new in SAP Integration Suite - <A href="https://blogs.sap.com/2023/07/12/graph-new-in-sap-integration-suite/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2023/07/12/graph-new-in-sap-integration-suite/</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-tutorial-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255" target="_self">Part 1: Introduction to Graph in SAP Integration Suite</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-2-set-up-graph-in-sap-integration-suite/ba-p/13616727" target="_self">Part 2: Set up Graph in SAP Integration Suite</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-3-construct-and-explore-a-business-data-graph/ba-p/13616707" target="_self">Part 3: Construct a Business Data Graph</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-4-hello-graph-write-your-first-graph-application/ba-p/13620393" target="_self">Part 4: Hello Graph! Write your first Graph application</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-5-use-graph-securely-with-real-data-authentication/ba-p/13622195" target="_self">Part 5: Use Graph securely with authentication</A></LI><LI><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="_self">Part 6: API Composition with Graph: customizing your Business Data Graphs with Model Extensions</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-7-key-mapping-with-graph/ba-p/13511080" target="_self">Part 7: Use key mapping with Graph</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-8-use-graph-with-odata-v4/ba-p/13641190" target="_self">Part 8: Use OData v4 with Graph</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-9-use-graph-with-graphql/ba-p/13623717" target="_self">Part 9: Use GraphQL with Graph</A></LI></UL><P>________________________________________________________________</P><P>Palak Garg, Product Manager – SAP Integration Suite</P><P><A href="https://pages.community.sap.com/topics/graph" target="_self" rel="noopener noreferrer">Learn more about Graph in the SAP Community</A></P> 2024-02-21T15:10:07.961000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255 Graph intro series, part 1: Introduction to Graph in SAP Integration Suite 2024-02-22T15:40:46.459000+01:00 Chaim_Bendelac https://community.sap.com/t5/user/viewprofilepage/user-id/194397 <P>Hello, and welcome to the <EM>first</EM> in a tutorials series about the Graph functionality of API Management, a main capability of the SAP Integration Suite. In this series, we will take you from learning about what Graph is, to creating your own business data graphs with custom model extensions, all the way to becoming a developer who is proficient in using Graph as an access point to your business data, regardless of where this data resides.</P><P>For an overview of other parts of this series, check out the <A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-end-to-end-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_blank">Information Map.</A></P><P>With Graph, you create an abstraction of business objects (aka <I>entities</I>) available in your landscape of business systems, in the form of a <I>business data graph.</I> The business data graph exposes the data of these business objects through a single, unified API. Application developers use powerful OData v4 or GraphQL commands to access only the data required to build the application and do not need to concern themselves with the complexities of the underlying data source systems.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="chaimbendelac_0-1708608275029.png" style="width: 461px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69353iBAEC3F905D422068/image-dimensions/461x479?v=v2" width="461" height="479" role="button" title="chaimbendelac_0-1708608275029.png" alt="chaimbendelac_0-1708608275029.png" /></span></P><P>SAP is famous for its ERP software, but today SAP customers have increasingly more complex requirements and are managing intricate and hybrid on-premise and cloud solutions. Customers want to become Intelligent Enterprises. To support their journey, SAP has augmented its ERP-centric business suite with substantial additional functions through the acquisition of cloud solutions like SAP SuccessFactors, SAP Concur and SAP Ariba. SAP’s Intelligent Suite portfolio now supports all key business processes and span all enterprise functions, but this expanded role and diversity of solutions has introduced some complexity. Many of SAP suite’s products have their own <EM>stack</EM>: overlapping data models, different APIs and heterogenous infrastructures, and this complexity is not always well hidden from SAP’s customers.</P><P>From the perspective of a software developer, this means that accessing SAP-managed data has become more complex. Data may be federated across hybrid networks of on-premise and cloud systems with different security protocols, replication processes and multiple master data copies. You don’t only have to worry about the data you are interested in, you have to know which copy you need, where that data exactly is located, and how to deal with connecting to these different customer systems. Different products have different connection protocols, security requirements and APIs, and those APIs expose data using different and inconsistent data models. Developing SAP extension apps requires mastering a broad set of skills for even the simplest data queries, and the applications you develop are sensitive to the smallest product and landscape configuration changes.</P><P>This is the problem that Graph addresses.</P><P>Graph is a new <EM>unified API</EM> for SAP. It addresses this run-away API complexity and integration challenge by providing developers a single <EM>connected</EM> and <EM>unified</EM> view of all their business data, consolidating the data models of data sources like SAP S/4HANA, SAP Sales Cloud and SAP SuccessFactors into one, unified and connected, data model, representing all the data in a landscape. We call this the <EM>Business Data Graph</EM>.</P><P>A data graph is a connected graph, with data entities serving as the nodes of the graph and edges that represent relationships (which we call <EM>associations</EM>) between those entities. The nodes of the Business Data Graph are the common enterprise business objects, like Customer, Supplier, Product, Sales and Purchase Order, General Ledger, etc.</P><P>As a developer, you face a dilemma. The concept of a Product or a Customer is common to many of the business systems that make up a landscape. Which of these definitions should you use? Where in the landscape is this data managed? Graph addresses this dilemma by introducing <EM>unified</EM> entities that provide the most common attributes of a business model for easy consumption and connect to the corresponding system-specific business objects for a full 360° view of the business object. You get to have your cake and eat it too: use the unified entities for simple use-cases, and easily access over 1,500 additional system-specific entities for advanced usage.</P><P>To illustrate these aspects of the business data graph, it is best if we start with a simple example taken from the enterprise world of sales. A salesperson entered a quote on behalf of a customer.</P><P>This quote is represented by a unified <STRONG>SalesQuote</STRONG> entity. The quote has an association to a <STRONG>Customer</STRONG> entity. The quote also has multiple items, each of which refer to a <STRONG>Product</STRONG> entity, which in turn has multiple associations to other entities, like <STRONG>Division</STRONG>. This is illustrated below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="chaimbendelac_1-1708608306473.png" style="width: 628px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69356iB3FC13B850289DF9/image-dimensions/628x274?v=v2" width="628" height="274" role="button" title="chaimbendelac_1-1708608306473.png" alt="chaimbendelac_1-1708608306473.png" /></span></P><P>&nbsp;</P><P>Each entity has many additional <EM>attributes</EM>, such as a key (called <STRONG>id</STRONG> in unified entities), and various other attributes, which can be flat, arrays, or more complex structured compositions of other attributes. For instance, <STRONG>items</STRONG> is an array of a structured type.</P><P>With Graph you navigate to and access the data you need, regardless of where this data resides. Graph <EM>abstracts</EM> the physical landscape and the details of the different product stacks and offers you a simple view of the SAP-managed data, which you can access through a single API, spanning all key use cases. Graph accesses the data in the customer-configured landscape on your users’ behalf, technically acting as middleware. Graph itself doesn’t store or cache any data.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="chaimbendelac_2-1708608306481.png" style="width: 470px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69355i4D4735F7D34105FC/image-dimensions/470x457?v=v2" width="470" height="457" role="button" title="chaimbendelac_2-1708608306481.png" alt="chaimbendelac_2-1708608306481.png" /></span></P><P>The above illustration shows your app accessing quote, product, customer and supplier data – but the app cannot tell if this is data is accessed from an on-premise SAP S/4 HANA system, SAP Sales Cloud or another system, like SAP Ariba. This will be determined by the specific landscape configuration that Graph accesses on behalf of the app user. As a developer, you are exempted from knowing these system details, or how to access data in these heterogenous systems. More importantly, your application will be portable across multiple and diverse landscapes without changes to your code.</P><P>But what if your app requires detailed attribute information that is not modeled in the unified entity? For instance, your app may be interested in Product inventory information, that is unique to data sources of type S/4HANA. No problem! Simply navigate over the <STRONG>_s4</STRONG>&nbsp;association to access the required information, like the <STRONG>CountryOfOrigin </STRONG>of the product, or navigate further via the <STRONG>to_ProductStorage</STRONG> association.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="chaimbendelac_3-1708608306487.png" style="width: 589px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69354iB94D13058B7475A3/image-dimensions/589x250?v=v2" width="589" height="250" role="button" title="chaimbendelac_3-1708608306487.png" alt="chaimbendelac_3-1708608306487.png" /></span></P><P>The unified entities introduced here are actually examples of a much more powerful capability of Graph: the ability to create your own <EM>custom</EM> entities and model extensions, effectively allowing you to create your own landscape and data abstraction. We will discuss how to create your own custom entities and model extensions in a subsequent blog in this series.</P><P>Graph currently supports the <EM>OData v4</EM> and <EM>GraphQL</EM> protocol to access the business data graph. OData (<EM>Open Data</EM>) is a widely used OASIS standard that defines a set of best practices for using RESTful data APIs.</P><P>As we shall see, OData and GraphQL APIs are easy and powerful to consume. OData requests operate on <EM>resources</EM>, the data, and extends this with query options, that let you shape the response to queries. The resources of Graph are the entities of the business data graph. GrphQL offer a similar experience, with a more intuitive syntax.</P><H2 id="toc-hId-987071930"><STRONG>Exploring Graph using the Graph Navigator</STRONG></H2><P>The Graph of SAP systems is documented by the <A href="https://hub.sap.com/graph" target="_blank" rel="noopener noreferrer">Graph Navigator</A> on SAP Business Accelerator Hub. Go ahead and follow the link to the Graph Navigator to explore the the full graph of SAP systems. The index, on the left of the application, shows you over 1,500 entities grouped by data source. The first group of entities, in the sap.graph namespace, are the unified entities. Here is an example of a unified entity, the <STRONG>sap.graph/WorkAssignment.&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="chaimbendelac_4-1708608306500.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69357i39FA13252419EB1E/image-size/large?v=v2&amp;px=999" role="button" title="chaimbendelac_4-1708608306500.png" alt="chaimbendelac_4-1708608306500.png" /></span></P><P>Unified entities have a key, called <STRONG>id</STRONG>. You can see other attributes, like <STRONG>workforcePerson</STRONG>, the identifier of the person whose assignment this is. You can also see an <EM>association&nbsp;</EM>(a link) to the details of this person, another entity unsurprisingly called <STRONG>sap.graph/WorkforcePerson</STRONG>. Another interesting attribute is <STRONG>jobInfo</STRONG>. This is a <EM>composition</EM>, in this case of composition of many”, which you can think of as an array of this structure. Click on the little <STRONG>&gt;</STRONG> arrow to see what it looks like, or study the example on the right, where you can see an array of one instance.<BR />Finally, it is worth pointing out two more interesting associations,&nbsp; <STRONG>_cxsales </STRONG>and <STRONG>_hcm</STRONG>. These are links to the respective system-specific entities, <STRONG>sap.cxsales/EmployeeCollection</STRONG>&nbsp;and <STRONG>sap.hcm/EmpEmployment</STRONG>. They enable developers to augment the information available in the unified entity with system-specific attributes, and make the business data graph a connected and navigable graph of the entire enterprise landscape. Go ahead, click around the Graph Navigator to get a sense of what the full SAP-based business data graph looks like.</P><P>With this quick introduction out of the way, follow us to the next part of the blog series where we set up Graph in SAP Integration Suite.</P><P>________________________________________________________________<BR /><STRONG>Chaim Bendelac, Chief Product Manager – API Management and Graph<BR /></STRONG>Visit <A href="https://pages.community.sap.com/topics/graph" target="_self" rel="noopener noreferrer">Graph</A> on the SAP Community</P> 2024-02-22T15:40:46.459000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-2-set-up-graph-in-sap-integration-suite/ba-p/13616727 Graph intro series, part 2: Set up Graph in SAP Integration Suite 2024-02-23T09:37:46.550000+01:00 HamidrezaLaleh https://community.sap.com/t5/user/viewprofilepage/user-id/81956 <P>In this part we address you, a person with an IT administrative role and responsibilities for enterprise data. Please refer to <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255" target="_self">Part 1</A> for an introduction to Graph, and to the <A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-introduction-series-graph-in-sap-integration-suite/ba-p/13614448" target="_self">Information Map</A> for an overview of the entire tutorial series.</P><P>As always, you can find all the details for what we are going to discuss here in the Graph documentation on the SAP Help Portal.</P><H2 id="toc-hId-987106435"><STRONG>The SAP Business Technology Platform (SAP BTP)</STRONG></H2><P>Enterprises and other companies deploy a variety of business software solutions to manage their major business processes. We refer to these software systems as <EM>data sources</EM>, and to the collection of data sources as the <EM>landscape</EM>. As we shall see, the business data graph is a connected graph of the business data in your landscape.</P><P>Enabling access to a landscape involves a great many concerns, related to connectivity, user management, trust, and other security topics. Establishing these aspects is exactly the role of SAP’s <STRONG>Business Technology Platform </STRONG>(SAP BTP), available on multiple cloud infrastructure providers. As an owner of data sources, you use the <STRONG>SAP BTP cockpit </STRONG>as the central point of entry, where you can access your accounts manage all activities associated with them.</P><P>Graph is a powerful addition to the API Management capability in SAP Integration Suite. Graph can be used in any SAP Integration Suite plan where API Management is available (including SAP BTP trial accounts), but not necessarily in every region where API Management is available. For more details about the regional availability of Graph, be sure to check out <SPAN><A href="https://launchpad.support.sap.com/#/notes/3338820" target="_blank" rel="noopener noreferrer">SAP Note 3338820</A></SPAN>. &nbsp;</P><H2 id="toc-hId-790592930"><STRONG>Configuring Graph</STRONG></H2><P>If you are not familiar with the SAP BTP cockpit, there are many blogs, videos and tutorials (like <SPAN><A href="https://discovery-center.cloud.sap/missiondetail/3019/3297" target="_blank" rel="noopener nofollow noreferrer">this one</A></SPAN>) to make you feel at home. Here we will assume some familiarity with the SAP BTP Cockpit to apply the following process:</P><OL><LI>Create a subaccount, which represents your landscape</LI><LI>Create the SAP Integration Suite service</LI><LI>Add Graph to SAP Integration Suite</LI><LI>Assign yourself Graph roles in SAP BTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</LI><LI>Set up destinations to the data sources of your landscape</LI><LI>Generate credentials, by creating a service binding</LI></OL><H3 id="toc-hId-723162144">Step 1: Create a subaccount</H3><P>Use the SAP BTP cockpit to login to your “global” account. Create a subaccount:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_0-1708674971710.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69739i26386F00D83A28CC/image-size/medium?v=v2&amp;px=400" role="button" title="HamidrezaLaleh_0-1708674971710.png" alt="HamidrezaLaleh_0-1708674971710.png" /></span></P><P>&nbsp;</P><UL><LI>Enter the subaccount display name,&nbsp;for instance Graph Sandbox (this will also fill the <STRONG>subdomain</STRONG>&nbsp;field with a unique string)</LI><LI>Set <STRONG>Region</STRONG>, for example to Europe (Frankfurt) under Amazon Web Services (<STRONG>CF-EU10</STRONG>).</LI></UL><P>Click <STRONG>Create</STRONG>; wait until the subaccount is created.</P><P>Next, enter the subaccount by clicking on its tile, select <STRONG>Entitlements</STRONG> from the left-side menu, click <STRONG>Configure Entitlements</STRONG> and then <STRONG>Add Service Plans</STRONG>, search for <STRONG>SAP Integration Suite,</STRONG>&nbsp;check the plan you wish to use, and confirm by clicking the <STRONG>Add 1 Service Plan</STRONG> button. Don’t forget to click <STRONG>Save</STRONG>.</P><P>Note: The SAP Integration Suite trial plan is automatically entitled for the default SAP BTP Trial subaccount, and Graph can also be seamlessly deployed there.</P><H3 id="toc-hId-526648639">Step 2: Create the SAP Integration Suite service</H3><P>In the SAP BTP cockpit, select <STRONG>Instances and Subscriptions</STRONG> from the left-side menu, click <STRONG>Create</STRONG> and then configure the SAP Integration Suite service with your desired plan.</P><P>Then select <STRONG>Security &gt; Users</STRONG> from the left-side menu and assign your user the <EM>Integration_Provisioner</EM> role collection. You can do this by clicking the user name, and then selecting ‘<STRONG>…</STRONG>’ under the <STRONG>Role Collections</STRONG> table. Find the <EM>Integration_Provisioner</EM> role collection and assign it.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_1-1708674971717.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69740i90AD427C2600A508/image-size/large?v=v2&amp;px=999" role="button" title="HamidrezaLaleh_1-1708674971717.png" alt="HamidrezaLaleh_1-1708674971717.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId-330135134">Step 3: Add Graph to SAP Integration Suite</H3><P>At this point, you should have an SAP Integration Suite application that you can access and add capabilities to. Go to Instances and Subscriptions in the left-side menu, and open the SAP Integration Suite application.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_2-1708674971723.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69741iA494DED41F385FBB/image-size/large?v=v2&amp;px=999" role="button" title="HamidrezaLaleh_2-1708674971723.png" alt="HamidrezaLaleh_2-1708674971723.png" /></span></P><P>&nbsp;</P><P>Select <STRONG>Add Capabilities</STRONG> to open a menu where you can select <STRONG>Manage APIs</STRONG>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_3-1708674971728.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69743iE0CF630DC2A66E9A/image-size/large?v=v2&amp;px=999" role="button" title="HamidrezaLaleh_3-1708674971728.png" alt="HamidrezaLaleh_3-1708674971728.png" /></span></P><P>&nbsp;</P><P>By clicking <STRONG>Next</STRONG>, you are taken to the API Management setup step where you must enable both <EM>API Business Hub Enterprise</EM> and <EM>Graph</EM>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_4-1708674971731.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69744i007547D475FCD0BB/image-size/large?v=v2&amp;px=999" role="button" title="HamidrezaLaleh_4-1708674971731.png" alt="HamidrezaLaleh_4-1708674971731.png" /></span></P><P>&nbsp;</P><P>Finally, select <STRONG>Activate</STRONG> and wait for the newly configured capability to show ‘Active’ for all selected features.</P><H3 id="toc-hId-133621629">Step 4: Assign yourself Graph roles in SAP BTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</H3><P>Graph has two dedicated SAP BTP role collections: Graph.KeyUser and GraphNavigator.Viewer. The role collection GraphNavigator.Viewer provides access to explore the entities and try out OData queries on the real data reflected in the business data graphs in the SAP BTP subaccount in the Graph Navigator tool in SAP API Business Hub Enterprise. This role collection is relevant for developer persona.</P><P>The role collection Graph.KeyUser is required to configure business data graphs in the SAP Integration Suite application. The Graph.KeyUser role collection also includes navigator viewer role to access Graph navigator.</P><P>Select Security &gt; Users from the left-side menu and assign your user the Graph.KeyUser role collection. You can do this by clicking the username, and then selecting ‘…’ under the Role Collections table. Find the role collection and assign it.</P><P>At this point, you should be able to navigate to the Graph user interface in the SAP Integration Suite application. You can open the Graph user interface from the SAP Integration Suite application left-side menu under Design Artifacts. We will come back to the Graph user interface in the next part of the blog tutorial series. The rest of the blog focuses on the remaining setup in the SAP BTP cockpit.</P><H3 id="toc-hId--62891876">Step 5: Create destinations</H3><P>In this tutorial, we will use the SAP Business Accelerator Hub sandbox systems as data sources. Note that creating destinations to other data sources is often more complex, due to trust establishment. Refer to the Graph documentation for more information.</P><P>Within the same subaccount, select <STRONG>Connectivity / Destinations</STRONG> from the left-side menu and click <STRONG>New Destination</STRONG>, as follows:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_5-1708674971733.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69742i50D1CA1EA69F080F/image-size/medium?v=v2&amp;px=400" role="button" title="HamidrezaLaleh_5-1708674971733.png" alt="HamidrezaLaleh_5-1708674971733.png" /></span></P><P>&nbsp;</P><P>Fill in the form as follows to create a destination to the SAP CX Sales Cloud sandbox system:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_6-1708674971736.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69745i0236136BF1D9D07C/image-size/large?v=v2&amp;px=999" role="button" title="HamidrezaLaleh_6-1708674971736.png" alt="HamidrezaLaleh_6-1708674971736.png" /></span></P><P>&nbsp;</P><P>Use cxsalescloud as the name and <A href="https://sandbox.api.sap.com/sap/c4c/odata/v1/c4codataapi/" target="_blank" rel="noopener noreferrer">https://sandbox.api.sap.com/sap/c4c/odata/v1/c4codataapi/</A> as the URL.</P><P>Since the sandbox APIs require an API key in HTTP headers, we will add this header. Click <STRONG>New Property</STRONG>, then enter <STRONG>URL.headers.apiKey</STRONG> as property name and enter your unique API key from the SAP Business Accelerator Hub as the value. Then <STRONG>Save</STRONG>.</P><P>You can easily repeat this process to create additional destinations, by cloning this destination, and changing the <STRONG>Name</STRONG> and <STRONG>URL</STRONG>&nbsp;fields. Go ahead, and add another destination named s4_product, with the following URL: <A href="https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_PRODUCT_SRV" target="_blank" rel="noopener noreferrer">https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_PRODUCT_SRV</A></P><P>Here are additional useful API services to consider:</P><UL><LI>SAP SuccessFactors: <U><A href="https://sandbox.api.sap.com/successfactors/odata/v2" target="_blank" rel="noopener noreferrer">https://sandbox.api.sap.com/successfactors/odata/v2</A></U></LI><LI>SAP S/4HANA Business Partner: <U><A href="https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_BUSINESS_PARTNER" target="_blank" rel="noopener noreferrer">https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_BUSINESS_PARTNER</A></U></LI><LI>SAP S/4HANA Sales Order: <U><A href="https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV" target="_blank" rel="noopener noreferrer">https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV</A></U></LI></UL><H3 id="toc-hId--259405381">&nbsp;</H3><H3 id="toc-hId--455918886">&nbsp;</H3><H3 id="toc-hId--652432391">Step 6: Create a Graph service instance</H3><P>To consume your Business Data Graph OData endpoint, you need to have service credentials to get a valid token. To do so within the same subaccount, select <STRONG>Services / Instances and Subscriptions</STRONG> from the left-side menu, and then click <STRONG>Create</STRONG> in the top-right corner.</P><P>In the wizard:</P><OL><LI>Select <STRONG>SAP Graph</STRONG> from the drop-down service menu.</LI><LI>Select the <STRONG>api </STRONG>service plan.</LI><LI>Leave <STRONG>Other</STRONG> as runtime environment.</LI><LI>Enter an instance name, e.g., sapgraph1. Choose <STRONG>Create</STRONG>.</LI><LI>Click the three dots to the right of the created instance and select <STRONG>Create Service Binding&nbsp;</STRONG></LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_7-1708674971736.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69747i4DCE88DCBB5AE85F/image-size/medium?v=v2&amp;px=400" role="button" title="HamidrezaLaleh_7-1708674971736.png" alt="HamidrezaLaleh_7-1708674971736.png" /></span></P><P><SPAN class=""><SPAN class="">&nbsp; &nbsp; &nbsp;6. </SPAN></SPAN><STRONG><SPAN class=""><SPAN class="">Download </SPAN></SPAN></STRONG><SPAN class=""><SPAN class="">and save the created credentials as a text file:</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HamidrezaLaleh_8-1708674971736.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69746iC98B8F1E4EDD69A8/image-size/medium?v=v2&amp;px=400" role="button" title="HamidrezaLaleh_8-1708674971736.png" alt="HamidrezaLaleh_8-1708674971736.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId--630774258"><STRONG>In summary</STRONG></H2><P>The&nbsp;steps above complete the configuration of the landscape and the preparations for creating a business data graph for your developers. The final step is to create the business data graph itself – this will be the topic of the <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-3-construct-and-explore-a-business-data-graph/ba-p/13616707" target="_self">next part</A> of this tutorial series.</P><P><SPAN>________________________________________________________________</SPAN><BR /><STRONG>Hamid Reza Laleh, Product Owner – Graph<BR /></STRONG><SPAN>Visit&nbsp;</SPAN><A href="https://pages.community.sap.com/topics/graph" target="_self" rel="noopener noreferrer">Graph</A><SPAN>&nbsp;on the SAP Community</SPAN></P> 2024-02-23T09:37:46.550000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-3-construct-and-explore-a-business-data-graph/ba-p/13616707 Graph intro series, part 3: Construct and explore a Business Data Graph 2024-02-23T09:38:54.537000+01:00 marc_vornetran https://community.sap.com/t5/user/viewprofilepage/user-id/700240 <P><SPAN>In this part of the </SPAN><SPAN>series </SPAN><SPAN>on Graph – the new API for connecting to your business data – we will discuss the concepts and configuration of the </SPAN><I><SPAN>Business Data Graph</SPAN></I><SPAN>. Please refer to th</SPAN><SPAN>e </SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-multi-part-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_self">Information Map</A>&nbsp;<SPAN>to see all parts of this</SPAN> <SPAN>series. The</SPAN><SPAN> Graph documentation </SPAN><SPAN>on the&nbsp;<A href="https://help.sap.com/docs/graph?locale=en-US&amp;state=PRODUCTION&amp;version=PROD" target="_self" rel="noopener noreferrer">Help Portal</A> provides an in-depth look at many of the concepts featured in this part. </SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>The <EM>“data graph”</EM> concept is central to the Graph capability. The business data graph is essentially the artifact that connects the business data together. The administrator is responsible for creating and shaping how the data in the business systems is reflected in the business data graph.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>A data graph consists of </SPAN><STRONG><SPAN>mirrored entities</SPAN></STRONG><SPAN>, which are projections of the business objects that Graph automatically discovered in the business systems. They are mirrored one-to-one in the data graph and grouped in namespaces that correspond to each business system. Then the mirrored entities are connected through additional semantic connections.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_0-1708674195264.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69713i1B38CBA253DC54C5/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_0-1708674195264.png" alt="marc_vornetran_0-1708674195264.png" /></span></P><P><SPAN><BR />Additional projections, called </SPAN><STRONG><SPAN>unified entities</SPAN></STRONG><SPAN>, are created on top of the mirrored entities. They connect semantically common business concepts from multiple data sources and are created in the namespace <STRONG><FONT face="courier new,courier">sap.graph</FONT></STRONG>. It is also possible for customers to extend the data graph by creating </SPAN><STRONG><SPAN>custom entities</SPAN></STRONG><SPAN>. </SPAN><SPAN>We will address model extensions in a separate blog post.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Finally, the data graph is activated to create a </SPAN><STRONG><SPAN>business data graph</SPAN></STRONG><SPAN>, which is a runtime artifact based on the configured data graph, and accessible as a unified API.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>The official documentation set provides goes more in-depth of what is described in this section and can be accessed here: </SPAN><A href="https://help.sap.com/docs/graph/graph/business-data-graph" target="_blank" rel="noopener noreferrer"><SPAN>SAP Help Portal: Graph - Business Data Graph</SPAN></A><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>We pick up from where we left off at the end </SPAN><SPAN>of the previous blog</SPAN><SPAN>. You </SPAN><SPAN>previously set up Graph in SAP Integration Suite, </SPAN><SPAN>created destinations to data source endpoints, and assigned yourself the </SPAN><SPAN>dedicated Graph</SPAN><SPAN> role</SPAN><SPAN> collections</SPAN><SPAN>. Also, you </SPAN><SPAN>created a service binding for Graph and </SPAN><SPAN>generated and downloaded the credentials text file</SPAN><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>In the following steps, you will construct a business data graph from the data sources you previously configured as SAP BTP destinations and explore the business data graph in the Graph Navigator tool.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Co</SPAN></STRONG><STRONG><SPAN>nstruct</SPAN></STRONG><STRONG><SPAN> the Business Data Graph </SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>1. In the SAP Integration Suite application, select <STRONG>Graph</STRONG> under Design Artifacts in the left-side menu.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_1-1708674195265.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69714i286E7EE533469178/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_1-1708674195265.png" alt="marc_vornetran_1-1708674195265.png" /></span></P><P>&nbsp;</P><P><SPAN>2. Select </SPAN><STRONG><SPAN>Create new business data graph </SPAN></STRONG><SPAN>in the center panel.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_2-1708674195266.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69715iD0714669275EF181/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_2-1708674195266.png" alt="marc_vornetran_2-1708674195266.png" /></span></P><P>&nbsp;</P><P><SPAN>3. Provide an </SPAN><STRONG><SPAN>ID </SPAN></STRONG><SPAN>for the business data Graph. Use lowercase letters, numbers, and hyphens.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_3-1708674195267.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69716iBA715D4118B293C9/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_3-1708674195267.png" alt="marc_vornetran_3-1708674195267.png" /></span></P><P>&nbsp;</P><P><SPAN>4. Select the <STRONG>data sources</STRONG> you would like to include in your business data graph. These are the destinations you previously configured in the SAP BTP cockpit. Select <STRONG>Next</STRONG>.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_4-1708674195268.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69717i1A629D028EA12672/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_4-1708674195268.png" alt="marc_vornetran_4-1708674195268.png" /></span></P><P>&nbsp;</P><P><SPAN>5. <STRONG>Skip</STRONG> the optional Model Extension step for now, by selecting <STRONG>Next</STRONG>. Your draft business data graph gets generated.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>6.&nbsp;</SPAN><SPAN>Review the configuration file and select <STRONG>Create</STRONG> to activate the business data graph.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_5-1708674195269.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69718iB788D9A4BD0CC4AE/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_5-1708674195269.png" alt="marc_vornetran_5-1708674195269.png" /></span></P><P>&nbsp;</P><P>7.&nbsp;<SPAN>Wait for the <STRONG>Status</STRONG> to update to be <STRONG><FONT face="courier new,courier">Available</FONT></STRONG>. Eventually, the status goes from <STRONG><FONT face="courier new,courier">Processing</FONT></STRONG> to <STRONG><FONT face="courier new,courier">Available</FONT></STRONG>.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_6-1708674195272.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69720iE7ACC681C3395695/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_6-1708674195272.png" alt="marc_vornetran_6-1708674195272.png" /></span></P><P>&nbsp;</P><P><STRONG>Note: </STRONG><SPAN>You can navigate to more information about individual business data graphs by selecting </SPAN><FONT face="courier new,courier"><STRONG><SPAN>&gt;</SPAN></STRONG></FONT><SPAN>. You can edit or delete the business data graph, or view the logs.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2024-02-23 at 09.12.22.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69767i38F081BB8B20879A/image-size/medium?v=v2&amp;px=400" role="button" title="Screenshot 2024-02-23 at 09.12.22.png" alt="Screenshot 2024-02-23 at 09.12.22.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_8-1708674195273.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69721iEDEC60F9BCBF3160/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_8-1708674195273.png" alt="marc_vornetran_8-1708674195273.png" /></span></P><P>&nbsp;</P><P><STRONG><SPAN>Explore the business data graph in the Graph Navigator&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>You just created your business data graph. Wouldn’t it be cool to explore the semantic connections between the data entities and even try out a few OData queries on the real data in the business systems? You can do exactly that using the Graph Navigator within API Business Hub Enterprise! This section takes you through exploring the business data graph you created in the previous section, using the Graph Navigator tool.</SPAN></P><P><SPAN>1.&nbsp;</SPAN><SPAN>Open the Graph Navigator tool in API Business Hub Enterprise by selecting the menu icon in the top panel and then <STRONG>Graph Navigator</STRONG>.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_9-1708674195275.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69724iDF8748DB91B17BC1/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_9-1708674195275.png" alt="marc_vornetran_9-1708674195275.png" /></span></P><P><SPAN>2.&nbsp;</SPAN><SPAN>The Graph Navigator automatically lists all the business data graphs in your SAP BTP subaccount. Select the business data graph you previously created.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_10-1708674195275.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69722i35BF1526738FF2E6/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_10-1708674195275.png" alt="marc_vornetran_10-1708674195275.png" /></span></P><P><SPAN>3. On the left, in the Entities index, you see a search window, and collections of the available entities, grouped per namespace.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_11-1708674195275.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69723iE46CCB1F2FE3FBBD/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_11-1708674195275.png" alt="marc_vornetran_11-1708674195275.png" /></span></P><P>&nbsp;</P><P><SPAN>4.&nbsp;</SPAN><SPAN>Depending on the data sources you included in your business data graph, you may have three namespaces containing the business objects from SAP SuccessFactors (</SPAN><FONT face="courier new,courier"><STRONG><SPAN>sap.hcm</SPAN></STRONG></FONT><SPAN>), SAP S/4 HANA (</SPAN><FONT face="courier new,courier"><STRONG><SPAN>sap.s4</SPAN></STRONG></FONT><SPAN>) and SAP Sales and Service Cloud (</SPAN><FONT face="courier new,courier"><STRONG><SPAN>sap.c4c</SPAN></STRONG></FONT><SPAN>).</SPAN> <SPAN>Open one of these three namespaces. For instance, pick the <STRONG><FONT face="courier new,courier">sap.c4c</FONT></STRONG> namespace, and then select </SPAN><STRONG><SPAN>SalesQuoteCollection </SPAN></STRONG><SPAN>under Sales Quote.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_12-1708674195276.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69725i0270D27DEF47685D/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_12-1708674195276.png" alt="marc_vornetran_12-1708674195276.png" /></span></P><P>&nbsp;</P><P><SPAN>5.&nbsp;</SPAN><SPAN>You can easily see which operations are allowed (create, read, update, and delete), review the list of attributes, and see an actual data example. Take the time to explore the root entities (potentially representing 4,500+ entities and sub-entities in SAP systems), in the different namespaces, within the Graph Navigator context.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_13-1708674195277.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69726iD970371E3FF2A458/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_13-1708674195277.png" alt="marc_vornetran_13-1708674195277.png" /></span></P><P><SPAN>6.&nbsp;</SPAN><SPAN>Explore one of the unified entities in the <STRONG><FONT face="courier new,courier">sap.graph</FONT></STRONG> namespace, the top namespace in the list on the left. Unified entities are simplified projections on some of the most complex business objects in SAP systems. They are useful in particular for apps that only require basic, essential information.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>For instance, you can search for sales quote (or SalesQuote) in the search box on the left and pick the first search result: <STRONG><FONT face="courier new,courier">sap.graph/SalesQuote</FONT></STRONG>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>This too is a synthetic entity, a projection, of the actual sales information in your systems.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_14-1708674195278.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69727i50DCA4B8F102D891/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_14-1708674195278.png" alt="marc_vornetran_14-1708674195278.png" /></span></P><P><SPAN>7.&nbsp;</SPAN><SPAN>Now switch to the <STRONG>Try Out</STRONG> tab at the top.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_15-1708674195278.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69728i20D65AE95ED31932/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_15-1708674195278.png" alt="marc_vornetran_15-1708674195278.png" /></span></P><P><SPAN>8.&nbsp;</SPAN><SPAN>You can see an OData request, for one record of <STRONG><FONT face="courier new,courier">sap.graph/SalesQuote</FONT></STRONG> ($top=1). Click Run. You will see your Sales Quote appear on the screen.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_16-1708674195278.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69729iCC63EE8A6EC3E64B/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_16-1708674195278.png" alt="marc_vornetran_16-1708674195278.png" /></span></P><P><SPAN>9. </SPAN><SPAN>Now let's have some fun. Use the <STRONG>$expand</STRONG> button to check <FONT face="courier new,courier"><STRONG>_salesOrganization</STRONG></FONT> and <FONT face="courier new,courier"><STRONG>_distributionChannel</STRONG></FONT>. Did you see how this automatically changed the OData request?</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_17-1708674195279.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69730iBA7FC9DDBB1837FB/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_17-1708674195279.png" alt="marc_vornetran_17-1708674195279.png" /></span></P><P><SPAN>10.&nbsp;</SPAN><SPAN>Click run to see the result of this query. Scroll down to see the expanded sales organization and distribution channel information. As you can see, this is a (mock) quote from one of BestRun's direct sales customers in the US.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_18-1708674195279.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69731i2A0F6A65F224DB49/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_18-1708674195279.png" alt="marc_vornetran_18-1708674195279.png" /></span></P><P><SPAN>11.&nbsp;</SPAN><SPAN>We could try out different variations of "$expand", to get of sense of all the data. Here is another fun query we can try:</SPAN></P><P><FONT face="courier new,courier"><STRONG>/sap.graph/SalesQuote?$top=1&amp;$expand=items($expand=_product)&nbsp;</STRONG></FONT></P><P><SPAN>and learn that the customer was quoted a single calculator which is of product type 3.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_19-1708674195280.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69733i39FDD0D5162D1C52/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_19-1708674195280.png" alt="marc_vornetran_19-1708674195280.png" /></span></P><P><SPAN>12.&nbsp;</SPAN><SPAN>When dealing with a specific single record, we can also navigate across the data to access other pertinent information. First, let's expand the customer (a business partner) on our order to find out the type:</SPAN><SPAN>&nbsp;</SPAN></P><P><FONT face="courier new,courier"><STRONG>/sap.graph/SalesQuote/c4c~1?$expand=_soldToParty&nbsp;</STRONG></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_20-1708674195280.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69732i2F3F67E898AC8DE5/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_20-1708674195280.png" alt="marc_vornetran_20-1708674195280.png" /></span></P><P><SPAN>13.&nbsp;</SPAN><SPAN>This is a corporation, so we can navigate to:&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><FONT face="courier new,courier"><STRONG><SPAN>/sap.graph/SalesQuote/c4c~1/_soldToParty/_corporateAccount&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></FONT></P><P><SPAN>Let's also add some options to the query before we run it:&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><FONT face="courier new,courier"><STRONG><SPAN>/sap.graph/SalesQuote/c4c~1/_soldToParty/_corporateAccount?$expand=addresses,contacts&nbsp;</SPAN></STRONG></FONT><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_21-1708674195281.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69734i6389191072F159E0/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_21-1708674195281.png" alt="marc_vornetran_21-1708674195281.png" /></span></P><P><SPAN>14.&nbsp;</SPAN><SPAN>Expanding and navigating are two powerful capabilities. But what makes data graphs even more useful are queries that combine these capabilities with other features, such as:&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>$select</SPAN></STRONG><SPAN>: return only the attributes you need&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>$filter</SPAN></STRONG><SPAN>: use data selection criteria&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>$orderby</SPAN></STRONG><SPAN>: return results in sort-order.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>For instance, the following query lists ten sorted (ascending order) quotes by <FONT face="courier new,courier"><STRONG>netAmount</STRONG></FONT> greater than 2000, with customer names and sales organization:&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><FONT face="courier new,courier"><STRONG><SPAN>/sap.graph/SalesQuote?$top=10&amp;$expand=_soldToParty($select=name)&amp;$filter=netAmount ge 2000&amp;$select=id,netAmount,salesOrganization&amp;$orderby=netAmount&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="marc_vornetran_22-1708674195282.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/69735i289B2C965A7CC386/image-size/medium?v=v2&amp;px=400" role="button" title="marc_vornetran_22-1708674195282.png" alt="marc_vornetran_22-1708674195282.png" /></span></P><P>&nbsp;</P><P><STRONG><SPAN>In summary</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>This part of the series concludes the basic introduction to Graph. In</SPAN><SPAN> the <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-2-set-up-graph-in-sap-integration-suite/ba-p/13616727" target="_self">previous part</A>,&nbsp;</SPAN><SPAN>we learned how to set up a landscape for Graph, which we used in this part to create a business data graph</SPAN><SPAN> and explore it in the Graph Navigator tool.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––</SPAN></P><P><SPAN><STRONG>Marc Vornetran</STRONG>, Product Owner – Graph in SAP Integration Suite</SPAN><SPAN>&nbsp;</SPAN></P><P><A href="https://pages.community.sap.com/topics/graph" target="_blank" rel="noopener noreferrer"><SPAN>Learn more about Graph in the SAP Community</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P> 2024-02-23T09:38:54.537000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-4-hello-graph-write-your-first-graph-application/ba-p/13620393 Graph intro series, part 4: Hello Graph! Write your first Graph application 2024-02-28T10:16:21.965000+01:00 shardulsonar https://community.sap.com/t5/user/viewprofilepage/user-id/159141 <P style=" text-align : justify; ">This is the first of the end-to-end implementation blog series for Graph that focuses on a developer writing an extension application that uses the single, unified API of Graph in SAP Integration Suite. Please refer to <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-tutorial-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255" target="_self">Part 1</A> of this series for an introduction to Graph and to the <A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-multi-part-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_self">Information Map</A> for an introduction to the entire series.</P><P style=" text-align : justify; ">The initial developer parts in this series will lead you through building the rudimentary basics of a classical enterprise extension web app: a list-details-navigate application in the <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-5-use-graph-securely-with-real-data-authentication/ba-p/13622195" target="_self">next part</A>. This is what it will look like:</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture 1.png" style="width: 722px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/71905iEDF835C79461B9D9/image-dimensions/722x240?v=v2" width="722" height="240" role="button" title="Picture 1.png" alt="Picture 1.png" /></span></P><P style=" text-align : justify; ">Here, in this part, our goal is to establish the basic hello world programming essentials. This implementation requires no prior knowledge – we will teach you everything you need to know to become a proficient Graph developer. To test that everything works, we will re-use the Graph server that was configured as an SAP Business Accelerator Hub sandbox, and that we used in <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-tutorial-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255" target="_self">Part 1</A>.</P><H2 id="toc-hId-987847579">Getting Started: Node.js and NPM</H2><P style=" text-align : justify; ">We will use <STRONG>node.js</STRONG> (v20.11.1) and <STRONG>npm&nbsp;</STRONG>(version 10.2.4) to build this application and to keep it extremely simple, we will use the express web framework. Not familiar with node.js and express? I recommend <A title="Mozilla Developer Network - Introduction to Express JS " href="https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction" target="_blank" rel="noopener nofollow noreferrer">this</A> article on the&nbsp;Mozilla Developer Network (MDN) website. This article also explains how to easily set up a Node development environment, whether you use Windows, MacOS, or Linux.</P><P style=" text-align : justify; ">If you prefer to develop applications in the cloud directly from your browser, SAP offers a great cloud-based development experience alternative in the form of the SAP Build. Follow this link for more details on getting your instance. The rest of this blog assumes that you installed node.js and npm on your computer.</P><H2 id="toc-hId-791334074"><STRONG><FONT face="courier new,courier">package.json</FONT></STRONG></H2><P style=" text-align : justify; ">Select a folder (directory) where you want to develop your application. In this folder, create a small file called <FONT face="courier new,courier"><STRONG>package.json</STRONG></FONT>, with the following content:</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>{ "name": "hello-graph", "version": "0.0.0", "private": true, "type": "module", "script" : { "start": "node src/hellograph.js" }, "dependencies": { "express": "4.18.1", "node-fetch": "3.3.2", "universal-cookie": "7.1.0" } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P style=" text-align : justify; "><FONT face="arial,helvetica,sans-serif">Note: For the latest version of these libraries please refer to <A href="https://www.npmjs.com/" target="_blank" rel="noopener nofollow noreferrer">https://www.npmjs.com/</A> </FONT></P><P style=" text-align : justify; ">After saving the file, run the following command on your console:</P><PRE><FONT face="arial,helvetica,sans-serif">npm install</FONT></PRE><P style=" text-align : justify; ">If your node.js environment was properly set up, then this command will install a few standard library packages in a new sub-folder called <FONT face="arial,helvetica,sans-serif"><STRONG><FONT face="courier new,courier">node_modules</FONT></STRONG>.<BR /></FONT>Now, create another sub-folder, next to&nbsp;<FONT face="arial,helvetica,sans-serif"><STRONG><FONT face="courier new,courier">node_modules</FONT></STRONG></FONT>, called&nbsp;<FONT face="arial,helvetica,sans-serif"><STRONG><FONT face="courier new,courier">src</FONT></STRONG></FONT>. This is where we will develop our code.</P><H2 id="toc-hId-594820569"><STRONG><FONT face="courier new,courier">graph.js</FONT></STRONG></H2><P style=" text-align : justify; ">First, we will create a boilerplate file in the <STRONG><FONT face="courier new,courier">src</FONT></STRONG> folder, called <STRONG><FONT face="courier new,courier">graph.js</FONT></STRONG>. This file will serve as a foundational template that you'll reuse, with a few small changes, across all future Graph implementation blogs and your projects. This file will contain a class called Graph, which provides a nice wrapper for using Graph. At this time, we will show how to read data, using a <STRONG><FONT face="courier new,courier">get()</FONT></STRONG> function.</P><P style=" text-align : justify; ">Copy and paste the code below into the file, then save it. This straightforward snippet utilizes the node-fetch package for simplicity.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>import fetch from "node-fetch"; export default class Graph { async get(entity, params) { const url = `https://sandbox.api.sap.com/sapgraph/${entity}${params ? `?${params}` : ""}`; console.log(url) //for debugging const options = { method: "get", headers:{ "Accept": "application/json", "apiKey": "&lt;your-api-key&gt;" // TODO: Enter the actual key } }; const response = await fetch(url, options); console.log(`${response.status} (${response.statusText})`) // for debugging return await response.json(); } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P style=" text-align : justify; ">Please note that we hard-coded the Graph server that uses the SAP Business Accelerator Hub sandbox. This allows us to focus here on the data access API, without requiring you to configure a new Business Data Graph(BDG) and deal with all the complex aspects of security and authentication, which will be the subject of future blog series.<BR />Since we are accessing the sandbox landscape data via SAP Business Accelerator Hub, you will need to insert your API Key (a short string) into the code above. Where do you get this key? Simply log in to <A title="SAP API Hub" href="https://api.sap.com/settings" target="_self" rel="noopener noreferrer">https://api.sap.com/settings</A> and click on <STRONG>Show API Key</STRONG> to see and save it.</P><H2 id="toc-hId-398307064"><STRONG><FONT face="courier new,courier">hellograph.js</FONT></STRONG></H2><P style=" text-align : justify; ">Now we are ready to write our first, simple server-side application that uses Graph. Paste the following into a new file, called<STRONG><FONT face="courier new,courier"> hellograph.js</FONT></STRONG>, in the <FONT face="courier new,courier"><STRONG>src</STRONG></FONT> folder:</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>import express from 'express'; import Graph from './graph.js'; const app = express(); const port = 3004; const graph = new Graph(); app.get('/sap*', async (req, res) =&gt; { const response = await graph.get(req, `${req.url}`, ""); res.send(`&lt;pre&gt;&lt;code&gt;${JSON.stringify(response, null, 2)}&lt;/code&gt;&lt;/pre&gt;`); }); app.listen(port, () =&gt; { console.log(`Explore Graph at http://localhost:${port}`) });</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P style=" text-align : justify; ">As previously mentioned, our code uses a popular node.js package called express. On line 8, we define the action taken when our server-side app is called from a browser. Here, we simply take the URL that we received (<FONT face="courier new,courier"><STRONG>req.url</STRONG></FONT>) and pass it through to Graph. We then show the returned data from Graph as a raw result on the browser screen.</P><P style=" text-align : justify; ">Our server-side app is ready. To run it, use your terminal console to enter:</P><PRE>npm run start</PRE><P style=" text-align : justify; ">The console will show:</P><PRE>$ Explore Graph at http://localhost:3004&nbsp;</PRE><P style=" text-align : justify; ">Now the fun begins. The application expects a well-formed query URL to function properly. Open a browser window or tab, and enter the following query URL:</P><PRE>http://localhost:3004/sap.graph/SalesQuote?$top=2</PRE><P style=" text-align : justify; ">The browser will invoke your application code, which will call Graph to fetch the data, and if all goes well, you will see the following output on your screen.&nbsp;</P><P style=" text-align : justify; "><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2024-02-27_14-03-55.png" style="width: 746px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/71937i23F3BB1BE0551DA5/image-size/large?v=v2&amp;px=999" role="button" title="2024-02-27_14-03-55.png" alt="2024-02-27_14-03-55.png" /></span></SPAN></P><P style=" text-align : justify; ">Note: if you get an unformatted result, you can install a JSON formatter in your browser.&nbsp;<BR />Our Hello Graph app is already pretty useful; we can use it to explore the business data graph, by trying out different OData queries. Note: to stop your app from running, simply kill it (e.g. press CTRL-C on your Linux terminal or Windows console).<BR />We will re-use this app as a skeleton in the <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-5-use-graph-securely-with-real-data-authentication/ba-p/13622195" target="_self">next part</A> of this series, where we will introduce authentication.</P><HR /><P style=" text-align : justify; "><STRONG>Shardul Sonar</STRONG>, Developer – Graph in SAP Integration Suite</P><P style=" text-align : justify; "><SPAN><A href="https://pages.community.sap.com/topics/graph" target="_blank" rel="noopener noreferrer">Learn more about Graph in the SAP Community</A></SPAN></P> 2024-02-28T10:16:21.965000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-5-use-graph-securely-with-real-data-authentication/ba-p/13622195 Graph intro series, part 5: Use Graph Securely with Real Data – Authentication 2024-02-28T15:12:59.976000+01:00 LeonidGunko https://community.sap.com/t5/user/viewprofilepage/user-id/1406385 <P><SPAN>Here, in </SPAN><SPAN>this part</SPAN><SPAN> of this tutorial, we are going to build the rudimentary basics of a classical enterprise extension web app: a list-details-navigate application. Please refer to</SPAN> <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-tutorial-part-1-introduction-to-graph-in-sap-integration-suite/ba-p/13615255" target="_blank"><SPAN>Part 1</SPAN></A> <SPAN>of this tutorial for an introduction to Graph</SPAN><SPAN> in SAP Integration Suite</SPAN><SPAN>, </SPAN><SPAN>to the previous tutorial part</SPAN><SPAN> for an introduction to the programming interface of Graph, and to the</SPAN> <A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-multi-part-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_blank"><SPAN>Information Map</SPAN></A><SPAN> for an introduction to the entire tutorial series.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Business Data Graphs</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>In</SPAN><SPAN> the <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-4-hello-graph-write-your-first-graph-application/ba-p/13620393" target="_self">previous part</A></SPAN><SPAN>, we accessed data from a preconfigured Graph sandbox server via SAP </SPAN><SPAN>Business Accelerator Hub</SPAN><SPAN>. We even embedded this server URL into our code. Anybody with an API key can access the sandbox data, without any further authentication or authorization.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Of course, this is not a secure way of accessing confidential business data. Therefore, in this part of the tutorial, we will access Graph securely, via the oAuth protocol. OAuth doesn’t share password data but instead uses </SPAN><I><SPAN>authorization tokens</SPAN></I><SPAN> to prove an identity between clients and services like Graph and supports Single Sign On. With oAuth, you effectively approve your browser to interact with Graph on your behalf without giving away your password.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Graph is a multitenant service. Customer administrators use the SAP Business Technology Platform (BTP) to </SPAN><I><SPAN>subscribe to Graph</SPAN></I><I><SPAN> in SAP Integration Suite</SPAN></I><SPAN>, by configuring one or more </SPAN><STRONG><I><SPAN>business data graphs</SPAN></I></STRONG><SPAN>. We</SPAN> <SPAN>discuss this topic in more detail in a </SPAN><SPAN>separate part</SPAN><SPAN> of this tutorial, but </SPAN><SPAN>for this tutorial part it</SPAN><SPAN> is important to understand that the business data graph is the key to a specific </SPAN><I><SPAN>landscape</SPAN></I><SPAN> of customer systems. Most customers will configure multiple landscapes, for instance for development, staging and productive usage.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Each Graph business data graph is unique with unique credentials, such as its URL, its business data graph identifier and various secrets/tokens.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>credentials.js</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>To programmatically access the data from a Graph business data graph, an application requires these credentials. How do you get them? A file containing them, </SPAN><STRONG><SPAN>credentials.json</SPAN></STRONG><SPAN>, is created during the process of setting up and configuring the business data graph. You receive this file and the business data graph identifier from the BTP administrator or key user who configured the specific business data graph you want to access.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Save the credentials file in the </SPAN><STRONG><SPAN>src</SPAN></STRONG><SPAN> folder of your project (you can use the existing </SPAN><STRONG><SPAN>src </SPAN></STRONG><SPAN>folder in which we developed our very first </SPAN><I><SPAN>hello Graph</SPAN></I><SPAN> server-side application, or create a new source folder in your project, up to you).</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>auth.js</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>In the same </SPAN><STRONG><SPAN>src </SPAN></STRONG><SPAN>folder, create a file called </SPAN><STRONG><SPAN>auth.js</SPAN></STRONG><SPAN>, paste in the following boilerplate (standard) code, and save:</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>import credentials from "./credentials.json" assert { type: "json" }; import fetch from "node-fetch"; import Cookies from "universal-cookie"; const CALLBACK_URI = "/myCallbackURI"; const CookieName = "SAPGraphHelloQuotesCookie"; export default class Auth { constructor() { this.clientId = credentials.uaa.clientid; this.clientSecret = credentials.uaa.clientsecret; this.authUrl = credentials.uaa.url; } getToken(req) { const cookies = new Cookies(req.headers.cookie); return cookies.get(CookieName); } async fetchToken(code, redirectUri) { const params = new URLSearchParams(); params.set('client_id', this.clientId); params.set('client_secret', this.clientSecret); params.set('code', code); params.set('redirect_uri', redirectUri); params.set('grant_type', 'authorization_code'); const response = await fetch(`${this.authUrl}/oauth/token`, { method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' }, body: params }); const json = await response.json(); return json.access_token; } getMiddleware() { return async (req, res, next) =&gt; { const redirectUri = `${req.protocol}://${req.get("host")}${CALLBACK_URI}`; if (req.url.startsWith(CALLBACK_URI)) { const code = req.query.code; if (code) { const token = await this.fetchToken(code, redirectUri); res.cookie(CookieName, token, { maxAge: 1000 * 60 * 120, httpOnly: true, path: "/", }); } res.redirect("/"); } else if (!this.getToken(req)) { res.redirect(`${this.authUrl}/oauth/authorize?client_id=${encodeURIComponent(this.clientId)}&amp;redirect_uri=${encodeURIComponent(redirectUri)}&amp;response_type=code`); } else { next(); } }; } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>As you can see, this boilerplate authentication code refers to several pieces of information which are extracted from the </SPAN><STRONG><SPAN>credentials.json</SPAN></STRONG><SPAN> file, and are used to log the user of your application in, using single sign on, according to the specifics of the business data graph. For the user’s convenience, it also saves the obtained access token as a cookie, so that it can be used until it expires.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>graph.js</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>We will re-use the Graph class that we saw in</SPAN><SPAN> the previous part </SPAN><SPAN>of this tutorial, but now that we are required to authenticate the user before we can use the business data graph, we need to make a few small changes. Copy the following text into </SPAN><STRONG><SPAN>graph.js</SPAN></STRONG><SPAN> and save.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>import credentials from "./credentials.json" assert { type: "json" }; import fetch from "node-fetch"; const apiUrl = credentials.uri; const dataGraphId = "v1"; // example, modify accordingly export default class Graph { constructor(auth) { this.auth = auth; this.apiUrl = apiUrl; this.dataGraphId = dataGraphId; } async get(req, entity, params) { const token = this.auth.getToken(req); const url = `${this.apiUrl}/${this.dataGraphId}/${entity}${params ? `?${params}` : ""}`; console.log(url) //for debugging const options = { method: "get", headers: { "Authorization": `Bearer ${token}`, "Accept": "application/json" } }; const response = await fetch(url, options); console.log(`${response.status} (${response.statusText})`) // for debugging const json = await response.json(); return json; } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>You can see that we made two small changes. The Graph URL is now determined from the credentials of the specific business data graph, and the authorization token, obtained during user authentication, is passed to Graph. You may have to modify the business data graph identifier string from “v1” in the above code, before saving the file.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>helloQuotes.js</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>Now are we finally ready to build the rudimentary basics of a classical three-page enterprise extension web app: a </SPAN><I><SPAN>list-details-navigate application</SPAN></I><SPAN>. This is what it will eventually look like:</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="LeonidGunko_2-1709118113938.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72583i865A28B78BD77ADD/image-size/medium?v=v2&amp;px=400" role="button" title="LeonidGunko_2-1709118113938.png" alt="LeonidGunko_2-1709118113938.png" /></span></P><P><SPAN>Don’t expect fancy code, with all the necessary error and exception handling of a robust, production-ready application. Our goal is to show how easy it is to just create small business applications using</SPAN> <SPAN>Graph; we will discuss the finer aspects of robust Graph clients in another part of this tutorial.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>We will first establish the skeleton of our application, in a file we will call </SPAN><STRONG><SPAN>helloQuotes.js</SPAN></STRONG><SPAN>:</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>// Hello Quote - our first SAP Graph extension app import express from 'express'; import Graph from './graph.js'; import Auth from './auth.js'; const app = express(); const port = 3003; const auth = new Auth(); app.use(auth.getMiddleware()); const graph = new Graph(auth); // ------------------ 1) get and display a list of SalesQuotes ------------------ // ------------------ 2) show one quote and its items ------------------ // ------------------ 3) navigate to the product details for all the items in the quote ------------------ app.listen(port, () =&gt; { console.log(`Example app listening at http://localhost:${port}`) });</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>This code doesn’t do anything interesting. It basically logs in the user, using the standard authentication that we just discussed, and then listens on port 3003 for web (REST) requests. To make the code work, we need to install </SPAN><I><SPAN>request handlers</SPAN></I><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Using the </SPAN><I><SPAN>express</SPAN></I><SPAN> framework, we now create three such handlers, corresponding to three different expected URLs:</SPAN><SPAN>&nbsp;</SPAN></P><OL><LI><SPAN>The root (/)</SPAN><SPAN>&nbsp;</SPAN></LI></OL><OL><LI><SPAN>Request for a quote: /quote/…</SPAN><SPAN>&nbsp;</SPAN></LI></OL><OL><LI><SPAN>Request for a quote’s product details: /quote… /product</SPAN><SPAN>&nbsp;</SPAN></LI></OL><P><SPAN>Here is the first request handler:</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>// ------------------ 1) get and display a list of SalesQuotes ------------------ app.get('/', async (req, res) =&gt; { const quotes = await graph.get(req, "sap.graph/SalesQuote", "$top=20"); const qlist = quotes.value.map(q =&gt; `(${q.netAmount} ${q.netAmountCurrency})`).join(""); res.send(` &lt;h1&gt;Hello Quotes&lt;/h1&gt; ${qlist} `); });</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>The handler will be fired if the browser requests the root document (“/”). What does the code do? It fetches the first 20 quotes (</SPAN><STRONG><SPAN>sap.graph/SalesQuote</SPAN></STRONG><SPAN>), and then wraps the resulting information (date and total amount) in HTML, and returns it.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Go ahead, paste this handler into the app skeleton, save, and run the server-side app on your terminal console as follows:</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>node helloQuotes.js </code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Open a new browser tab and enter the URL </SPAN><I><SPAN><A href="http://localhost:3003" target="_blank" rel="noopener nofollow noreferrer">http://localhost:3003</A></SPAN></I><SPAN>. If all went well, you will now see a list of dates and corresponding amounts in the browser.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>That was nice, but not very interesting. To turn your app into an interesting list-details app, </SPAN><I><SPAN>modify</SPAN></I><SPAN> the </SPAN><STRONG><SPAN>qlist</SPAN></STRONG><SPAN> assignment above to introduce a </SPAN><I><SPAN>link</SPAN></I><SPAN>, as follows:</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>const qlist = quotes.value.map(q =&gt; `&lt;p&gt; &lt;a href="/quote/${q.id}"&gt;${q.pricingDate} &lt;/a&gt; (${q.netAmount} ${q.netAmountCurrency}) &lt;/p&gt;`).join(""); </code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Now, when the user clicks on one of the quotes, your app will be called again, and this time the URL will match ‘</SPAN><STRONG><SPAN>/quote</SPAN></STRONG><SPAN>…’.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Let us now also introduce our second and third handlers:</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>// ------------------ 2) show one quote and its items ------------------ app.get('/quote/:id', async (req, res) =&gt; { const id = req.params.id; const singleQuote = await graph.get(req, `sap.graph/SalesQuote/${id}`, "$expand=items&amp;$select=items"); const allItemLinks = singleQuote.items.map(item =&gt; `&lt;p&gt;&lt;a href="/quote/${id}/item/${item.itemId}"&gt;&lt;button&gt;Product details for item ${item.itemId}: ${item.product}&lt;/button&gt;&lt;/a&gt;&lt;/p&gt;`).join(""); res.send(` &lt;h1&gt;SalesQuote - Detail&lt;/h1&gt; &lt;h4&gt;&lt;code&gt;id: ${id}&lt;/code&gt;&lt;/h4&gt; ${allItemLinks} `); }); // ------------------ 3) navigate to the product details for an item in the quote ------------------ app.get('/quote/:id/item/:itemId', async (req, res) =&gt; { const id = req.params.id; const itemId = req.params.itemId; const product = await graph.get(req, `sap.graph/SalesQuote/${id}/items/${itemId}/_product`, "$expand=distributionChains"); res.send(` &lt;h1&gt;Product Detail&lt;/h1&gt; &lt;h4&gt;&lt;code&gt;For SalesQuote ${id} and item ${itemId}&lt;/code&gt;&lt;/h4&gt; &lt;pre&gt;&lt;code&gt;${JSON.stringify(product, null, 2)}&lt;/code&gt;&lt;/pre&gt; `); });</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>The OData query at the heart of the second handler uses the </SPAN><STRONG><SPAN>$expand</SPAN></STRONG><SPAN> query parameter to fetch the details of the quote, including what was quoted (items). The product id in the quote is then used in the third handler to </SPAN><I><SPAN>navigate </SPAN></I><SPAN>across the business graph, to fetch the detailed product information from the product catalog. In both cases, the data is just dumped to the screen as JSON, but evidently, a real app would format the information much more nicely.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Go ahead, make the change in the first handler, and then paste the second and third handlers in your code, save the file, restart the service, and refresh the </SPAN><STRONG><SPAN>localhost:3003 </SPAN></STRONG><SPAN>page in the browser. Voila! Your app is live.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Note again, how you, as a developer, never had to ask yourself where the data came from. You just navigated from a quote object to a product object, without any effort. The landscape that you accessed via the configured business data graph may have managed quotes in SAP Sales Cloud, or in SAP S/4HANA, and the product catalog may have been, theoretically, in yet another system. You simply don’t have to care.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><P><SPAN>—————————————————————————————————————————&nbsp;</SPAN></P><P><SPAN>Leonid Gunko, Developer – Graph in SAP Integration Suite</SPAN><SPAN>&nbsp;</SPAN></P><P><A href="https://pages.community.sap.com/topics/graph" target="_blank" rel="noopener noreferrer"><SPAN>Learn more about Graph in the SAP Community</SPAN></A><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P> 2024-02-28T15:12:59.976000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/api-composition-with-graph-customizing-your-business-data-graphs-with-model/ba-p/13639447 API Composition with Graph: customizing your Business Data Graphs with Model Extensions 2024-03-15T13:43:13.362000+01:00 florian_moritz https://community.sap.com/t5/user/viewprofilepage/user-id/748729 <P>Hello!</P><P>in this part of the tutorial series we will have a look at how to use Graph for composing APIs and customizing business data graphs with model extensions.&nbsp;<SPAN>We will walk through an example of how to create a custom entity with a custom association.</SPAN></P><P>For an overview of other parts of this series, check out the<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-end-to-end-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_blank">Information Map.</A> </P><P>---</P><P>API Composition helps organizations to customize their API surface and combine multiple data sources into a single unified API. With Graph, as part of SAP Integration Suite, API administrators can create a single API using a customized connected graph data model either for their whole landscape or for specialized use cases.</P><P>API administrators can customize Business Data Graphs with the help of Model Extensions. These are packages that define several Custom Entities. All customizations in Graph are virtual: custom entity definitions are projections using mirrored entities as sources. Custom entities can have one or multiple source entities from possibly different data sources.</P><H2 id="toc-hId-989040029">Example Scenario</H2><P>In this blog we will walk through an example of composing and customizing an API from two separate services. An SAP S/4HANA Service and a service based on a custom CAP extension. Here is an overview of the example scenario:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="blog-example-scenario.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81313i146FE72CEEE3BD39/image-size/large?v=v2&amp;px=999" role="button" title="blog-example-scenario.png" alt="blog-example-scenario.png" /></span><BR /><EM>Example scenario diagram</EM></P><P><SPAN>We will compose a&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT><SPAN>&nbsp;Custom Entity out of two sources: the&nbsp;</SPAN><FONT face="terminal,monaco" size="3" color="#800000">sap.s4.A_BusinessPartner</FONT><SPAN>&nbsp;from an SAP S/4HANA data source and a&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyAccount</FONT><SPAN>&nbsp;entity from a custom CAP Extension on BTP. In addition, we will model an association from the custom entity&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT><SPAN>&nbsp;to the&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyStatus</FONT><SPAN>&nbsp;mirrored entity from the custom CAP Extension.</SPAN></P><H2 id="toc-hId-792526524">Example Setup</H2><P><SPAN>In this example we will be using the SAP S/4HANA sandbox provided on SAP Business Accelerator Hub and a simple CAP Extension service which we will be deploying in Cloud Foundry. The following steps will guide you through the required setup.</SPAN></P><H3 id="toc-hId-725095738"><SPAN>(1) Setting up Graph and SAP Integration Suite</SPAN></H3><P><SPAN>First we need a BTP subaccount with an SAP Integration Suite instance with Graph activated. Follow the steps outlined in this previous&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-2-set-up-graph-in-sap-integration-suite/ba-p/13616727" target="_blank">blog post</A>&nbsp;if you have not done so already. As a result you have a running SAP Integration Suite instance with Graph.</SPAN></P><H3 id="toc-hId-528582233"><SPAN>(2) Setting up the SAP S/4HANA Sandbox Destination</SPAN></H3><P><SPAN>For demo data we will be using the SAP S/4HANA BusinessPartner sandbox service available on SAP Business Accelerator Hub. Create a destination named&nbsp;<FONT face="terminal,monaco" color="#800000">demo-s4-bupa</FONT>&nbsp;in your BTP subaccount for this service with the following URL:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_BUSINESS_PARTNER</code></pre><P>&nbsp;</P><P><SPAN>You will also have to configure an API key for sandbox access as described in this previous&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-2-set-up-graph-in-sap-integration-suite/ba-p/13616727" target="_blank">blog post</A>.</SPAN></P><H3 id="toc-hId-332068728"><SPAN>(3) Setting up the demo CAP Extension Service Destination</SPAN></H3><P>For the custom extension service, we will be deploying a small CAP-service in Cloud Foundry for demo purposes. We prepared this service<SPAN>&nbsp;</SPAN><A href="https://github.com/SAP-samples/graph-example-apps/tree/main/blog-series/API-composition/graph-demo-service" target="_blank" rel="nofollow noopener noreferrer">here</A>. Note that this example is only for demo puposes and would not fulfill requirements for any productive use cases.</P><P>To deploy the example CAP-service, make sure your BTP subaccount has the Cloud Foundry runtime enabled and a Cloud Foundry space exists (see also this<SPAN>&nbsp;</SPAN><A href="https://developers.sap.com/tutorials/btp-app-prepare-btp.html" target="_blank" rel="noopener noreferrer">tutorial</A>). Note that this minimal demo service only serves a few example records and does not require a database.</P><P>Clone the example service repository and copy the contents of<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">.cdsrc.json.template</FONT><SPAN>&nbsp;</SPAN>to a new file<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">.cdsrc.json</FONT><SPAN>&nbsp;</SPAN>and add a password for the configured Basic Authentication. In this demo we use Basic Authentication, to learn more about authenticating against Graph see<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/graph/graph/authentication" target="_blank" rel="noopener noreferrer">here</A>.</P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>git clone https://github.com/SAP-samples/graph-example-apps.git cd graph-example-apps/blog-series/API-composition/graph-demo-service cp .cdsrc.json.template .cdsrc.json</code></pre><P>&nbsp;</P><P><SPAN>Make sure you have installed the prerequisites (Node.js, CAP, MBT) listed <A href="https://github.com/SAP-samples/graph-example-apps/tree/main/blog-series/API-composition/graph-demo-service#prerequisites" target="_blank" rel="noopener nofollow noreferrer">here</A>. Then install and build the project:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>npm ci npm run build</code></pre><P>&nbsp;</P><P><SPAN>Next, deploy the service, for example using the Cloud Foundry CLI (see also <A href="https://github.com/SAP-samples/graph-example-apps/tree/main/blog-series/API-composition/graph-demo-service#prerequisites" target="_blank" rel="noopener nofollow noreferrer">here</A>)</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>cf login --sso cf deploy gen/mta.tar</code></pre><P>&nbsp;</P><P>After the deployment is finished you can access the example Loyalty service under<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">&lt;CF-application-route-URL&gt;/graph-demo/</FONT>.</P><P>Finally, we need to create a BTP destination for this service. In the BTP Cockpit under<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">Connectivity &gt; Destinations</FONT><SPAN>&nbsp;</SPAN>create a new Destination<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-loyalty</FONT><SPAN>&nbsp;</SPAN>with the following URL:<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">&lt;CF-application-route-URL&gt;/graph-demo/</FONT><SPAN>&nbsp;</SPAN>(<FONT face="terminal,monaco" color="#800000">&lt;CF-application-route-URL&gt;</FONT><SPAN>&nbsp;</SPAN>depends on your Cloud Foundry deployment). Select<SPAN>&nbsp;"</SPAN>BasicAuthentication"<SPAN>&nbsp;</SPAN>for Authentication and add the user name and password you previously configured.</P><H3 id="toc-hId-135555223"><SPAN>(4) Preparing a Business Data Graph for the Example Scenario</SPAN></H3><P><SPAN>Now that we have created two destinations with our demo services, we can create a business data graph which we will extend with a model extension in the next section. In SAP Integration Suite open&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">Design &gt; Graph</FONT><SPAN>&nbsp;and create a new business data graph&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-bdg</FONT><SPAN>. Select the two destinations&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-s4-bupa</FONT><SPAN>&nbsp;and&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-loyalty</FONT><SPAN>. Leave the model extension input empty for now, this is what we are about to create. Activate the BDG in the final step. By default, Graph will use the namespace&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom</FONT><SPAN>&nbsp;for destinations with services of unknown type, such as&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-loyalty</FONT><SPAN>&nbsp;in this case. When the business data graph is active we can start to model an extension for it.</SPAN></P><H2 id="toc-hId--190041001">Custom Entity Modeling</H2><P>Graph allows to customize business data graphs with model extensions. A model extension is a package that contains one or more custom entity definitions. To customize a business data graph, we create a new model extension for it and then add it to the BDG configuration.</P><P>Start in SAP Integration Suite under<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">Design &gt; Graph</FONT><SPAN>&nbsp;</SPAN>and open the Model Extensions tab. Create a new model extension called<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-extension</FONT><SPAN>&nbsp;</SPAN>and select the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-bdg</FONT><SPAN>&nbsp;</SPAN>as modeling metadata BDG (this is only for retrieving metadata while modeling, the extension itself is independent).</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81321iB0E1AF8F4E1451C1/image-size/large?v=v2&amp;px=999" role="button" title="1.jpeg" alt="1.jpeg" /></span><BR /><EM>No Model Extensions exist</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81322i76D164DF78EC3A34/image-size/large?v=v2&amp;px=999" role="button" title="2.jpeg" alt="2.jpeg" /></span><BR /><EM>Create a new Model Extension dialog</EM></P><H3 id="toc-hId--257471787">&nbsp;</H3><H3 id="toc-hId--453985292">Creating a Custom Entity</H3><P>We will now create our custom entity<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT><SPAN>&nbsp;</SPAN>by composing it from two source entities. In the dialog select<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">sap.s4.A_BusinessPartner</FONT><SPAN>&nbsp;</SPAN>as the main source entity. This is the entity that defines the identity of data-objects and is the source of the primary key for our custom entity. Then add<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyAccount</FONT><SPAN>&nbsp;</SPAN>as an additional source entity. Here, we need to define the join condition that defines how data objects from both entities are matched. For that we select which attributes from both entities are matching. When the complete primary key of the additional source attribute is matched, Graph infers that there exists a cardinality-relationship of 0 or 1 between the data objects of both entities, as is the case in our example.</P><P>In the other case where only a partial primary key is matched, a many-cardinality will be assumed. In that case, for each data object of the main source entity there could be any number of additional source data objects. Graph will treat that case as a composition, where an entity contains an array of sub-entities.</P><P>With the source entities defined, we continue by selecting which attributes of each source we want to project into our custom entity<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT>. Here, we select the primary key attribute<SPAN>&nbsp;<FONT face="terminal,monaco" color="#800000">BusinessPartner</FONT>&nbsp;</SPAN>of our main source entity&nbsp;in addition to other attributes from both sources (see below). Graph will suggest new names according to the Graph attribute naming<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/graph/graph/attributes" target="_blank" rel="noopener noreferrer">best practices</A>. Having selected some attributes we finalize the dialog via<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">Create</FONT>. We can then open our newly created custom entity and continue modeling the details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81326i7ED76BD47AB3DC38/image-size/large?v=v2&amp;px=999" role="button" title="3.jpeg" alt="3.jpeg" /></span><BR /><EM>Empty Model Extension</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="4.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81328i64F7DB6DAA745E02/image-size/large?v=v2&amp;px=999" role="button" title="4.jpeg" alt="4.jpeg" /></span><BR /><EM>Custom Entity creation dialog</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="6.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81331i56029FF975BCCF54/image-size/large?v=v2&amp;px=999" role="button" title="6.jpeg" alt="6.jpeg" /></span><BR /><EM>Source entities definition step</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="5.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81333i5132DD80F26D429A/image-size/large?v=v2&amp;px=999" role="button" title="5.jpeg" alt="5.jpeg" /></span><BR /><EM>Additional source entity definition</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="7.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81336i09CADC6F825A8457/image-size/large?v=v2&amp;px=999" role="button" title="7.jpeg" alt="7.jpeg" /></span><BR /><EM>Main source attribute selection</EM></P><P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="8.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81338iC20DFE3F0F7254C4/image-size/large?v=v2&amp;px=999" role="button" title="8.jpeg" alt="8.jpeg" /></span><BR />Additional source attribute selection</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="9.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81341i0553B66CD2E4B3B9/image-size/large?v=v2&amp;px=999" role="button" title="9.jpeg" alt="9.jpeg" /></span><BR /><EM>Model Extension with the newly created Custom Entity</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="10.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81344iE07990B6C7871877/image-size/large?v=v2&amp;px=999" role="button" title="10.jpeg" alt="10.jpeg" /></span><BR /><EM>Custom Entity attributes</EM></P><P>&nbsp;</P><H3 id="toc-hId--650498797">Applying Transform Functions</H3><P>When defining custom entities, graph allows to apply<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/graph/graph/transform-functions?locale=en-US" target="_blank" rel="noopener noreferrer">transform functions</A><SPAN>&nbsp;</SPAN>as part of the definition. When adding attributes from a source entity to the custom entity this is plainly called a<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">rename</FONT><SPAN>&nbsp;</SPAN>transform (as was done in the entity creation dialog).</P><P>In our example, we want to change our data model and invert the boolean source attribute<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">isMarkedForArchiving</FONT>, which denotes whether an object was archived, and instead call the inverse<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">isActive</FONT>. For that we use the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">negation</FONT><SPAN>&nbsp;</SPAN>transform. We select the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">isMarkedForArchiving</FONT><SPAN>&nbsp;</SPAN>attribute and change the transform in the right-side panel to<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">negation</FONT>, rename the attribute and apply our changes.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="11.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81347iFC1050D805CBE21A/image-size/large?v=v2&amp;px=999" role="button" title="11.jpeg" alt="11.jpeg" /></span><BR /><EM>Details of the applied negation transform</EM></P><P>&nbsp;</P><H3 id="toc-hId--922243671">Adding a new Association</H3><P>Graph allows to customize the graph structure of a business data graph with the help of custom associations in custom entities. For example, foreign-key relationships that are present in mirrored entities, can be converted into semantic associations between custom entities.</P><P>In our example, the additional source entity<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyAccount</FONT><SPAN>&nbsp;</SPAN>has an atttribute<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">loyaltyProgramStatusId</FONT><SPAN>&nbsp;</SPAN>that references<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyStatus</FONT><SPAN>&nbsp;</SPAN>data objects by their ID. We turn this foreign-key relationship into an association as follows: in the dialog under<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">Add &gt; Association</FONT><SPAN>&nbsp;</SPAN>select the type of association. Here, it is a to-one association, as each LoyaltyAccount references only one LoyaltyStatus via ID.</P><P>Next, select the target of the association:<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">my.custom.LoyaltyStatus</FONT>. Graph will suggest a name according to the Graph modeling best practices.</P><P>Then define how these two entities are related by matching attributes from the source entity (foreign key) to the primary key attributes of the target entity. In our example we only map the LoyaltyAccount attribute<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">loyaltyProgramStatusId</FONT><SPAN>&nbsp;</SPAN>to the single LoyaltyStatus key attribute<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">statusId</FONT><SPAN>&nbsp;</SPAN>and then add the association to the custom entity.</P><P>This completes our example. Now we can apply the changes to our custom entity and save the extension.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="12.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81354i0FE410AA74083300/image-size/large?v=v2&amp;px=999" role="button" title="12.jpeg" alt="12.jpeg" /></span><EM>Add Association dialog</EM></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="13.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81355iCE955A88D51F6B45/image-size/large?v=v2&amp;px=999" role="button" title="13.jpeg" alt="13.jpeg" /></span><BR /><EM>Complete demo.FrequentFlyer Custom Entity definition</EM></P><H2 id="toc-hId--825354169">&nbsp;</H2><H2 id="toc-hId--1021867674">Applying the Model Extension to the Business Data Graph</H2><P><SPAN>Now that we have created a model extension for our example scenario with the <FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT>&nbsp;</SPAN><SPAN>custom entity we want to see it in action. For that we will apply the model extension to a BDG.</SPAN></P><H3 id="toc-hId--1511784186">Creating new BDGs with Model Extensions</H3><P>With an existing model extension, we can simply create a new BDG and select the extension during the BDG-creation dialog. Graph will then generate a BDG configuration with locating policy rules for all custom entities.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="14.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81356iD3285069E147A252/image-size/large?v=v2&amp;px=999" role="button" title="14.jpeg" alt="14.jpeg" /></span><BR /><EM>Selecting an existing Model Extension during BDG creation</EM></P><H3 id="toc-hId--1708297691">Adding Model Extensions to existing BDGs</H3><P>Alternatively, we can also manually add a model extension to an existing BDG. Here we need to add the name of the extension to the top-level <FONT face="terminal,monaco" color="#800000">extensions</FONT> array (see below), and add locating policy rules for all custom entities.</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>"extensions": [ "demo-extension" ],</code></pre><P>&nbsp;</P><P><EM>BDG configuration extensions snippet</EM></P><P>In our example we add a single custom entity that is based on two source entities which requires two entries in the BDG locating policy rules, one for each source entity (see also<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/graph/graph/business-data-graph-configuration-file?version=PROD#locating-policy" target="_blank" rel="noopener noreferrer">here</A>). Add the following snippet to the BDG configuration under <FONT face="terminal,monaco" color="#800000">locatingPolicy.rules</FONT> (adapt the name of the leading data sources to match the ones in your BDG).</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "name": "demo.FrequentFlyer", "leading": "s4", "local": [] }, { "name": "demo.FrequentFlyer", "leading": "my.custom", "local": [], "sourceEntity": "my.custom.LoyaltyAccount" }</code></pre><P>&nbsp;</P><P><EM>BDG configuration <FONT face="terminal,monaco" color="#800000">locatingPolicy.rules</FONT> snippet</EM></P><P>&nbsp;</P><DIV class=""><SPAN>Finally, we activate the BDG with the included model extension to try it out. Once the BDG was updated we can open the Graph Navigator in SAP API Business Hub Enterprise (see also this&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-3-construct-and-explore-a-business-data-graph/ba-p/13616707" target="_blank">blog</A><SPAN>). There we can see that our updated&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo-bdg</FONT><SPAN>&nbsp;now has a&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT><SPAN>&nbsp;entity with the schema we previously modeled. In the "<EM>Try Out"</EM>&nbsp;we can also see that we can follow the new&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">_loyaltyStatus</FONT><SPAN>&nbsp;association via&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$expand</FONT><SPAN><SPAN>&nbsp;or semantic navigation.</SPAN></SPAN></DIV><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="navigator-schema.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81377i44F9BB50F6E17494/image-size/large?v=v2&amp;px=999" role="button" title="navigator-schema.jpeg" alt="navigator-schema.jpeg" /></span><BR /><EM>Custom Entity schema in Graph Navigator</EM></DIV><DIV class="">&nbsp;</DIV><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="navigator-tryout.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/81376iD99BE35A6600FCB9/image-size/large?v=v2&amp;px=999" role="button" title="navigator-tryout.jpeg" alt="navigator-tryout.jpeg" /></span><BR /><P><EM>Custom Entity Try Out in Graph Navigator</EM></P><H2 id="toc-hId--1611408189">&nbsp;</H2><H2 id="toc-hId--1807921694">Summary</H2><P>This small blog example illustrates how Graph can be used to compose APIs and customize the API surface with the help of a business data graph.</P><P>We used Graph to compose two different service APIs into a single connected business data graph: an SAP S/4HANA service and a custom CAP-extension service. We created a model extension containing a custom entity <FONT face="terminal,monaco" color="#800000">demo.FrequentFlyer</FONT> with&nbsp;a custom association to another entity and a negation transform function.</P><P>To learn more about the full Graph modeling capabilities find the documentation<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/graph/graph/model" target="_blank" rel="noopener noreferrer">here</A><SPAN>&nbsp;</SPAN>with more infomation on modeling topics such as all supported transform functions, creating compositions and adding to-many associations to your model.</P><P>&nbsp;</P><H3 id="toc-hId-1997129090">Reference Materials</H3><P>Find the full BDG configuration JSON and custom entity definition JSON files used in the example demo below.<BR /><STRONG>Custom Entity definition JSON file:</STRONG></P></DIV><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "entity": "demo.FrequentFlyer", "version": "1.0.0", "sourceEntities": [ { "name": "sap.s4.A_BusinessPartner" }, { "name": "my.custom.LoyaltyAccount", "join": [["BusinessPartner", "userId"]] } ], "attributes": [ { "name": "id", "source": ["BusinessPartner"], "key": true }, { "name": "businessPartnerFullName", "source": ["BusinessPartnerFullName"] }, { "name": "loyaltyProgramName", "source": ["loyaltyProgramName"], "sourceEntity": "my.custom.LoyaltyAccount" }, { "name": "loyaltyPoints", "source": ["loyaltyPoints"], "sourceEntity": "my.custom.LoyaltyAccount" }, { "name": "isActive", "source": ["isMarkedForArchiving"], "sourceEntity": "my.custom.LoyaltyAccount", "transform": "negation", "type": "Boolean" }, { "name": "_loyaltyStatus", "type": "Association", "associationTarget": "my.custom.LoyaltyStatus" }, { "name": "_loyaltyStatus.statusId", "source": ["loyaltyProgramStatusId"], "sourceEntity": "my.custom.LoyaltyAccount" } ], "annotations": { "description": "", "readonly": false } }</code></pre><P>&nbsp;</P><P><STRONG>BDG configuration JSON:</STRONG></P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "businessDataGraphIdentifier": "demo-bdg", "graphModelVersion": "^v3", "schemaVersion": "1.2.1", "dataSources": [ { "name": "my.custom", "services": [ { "destinationName": "demo-loyalty", "path": "" } ], "namespace": "my.custom" }, { "name": "s4", "services": [ { "destinationName": "demo-s4-bupa", "path": "" } ], "namespace": null } ], "locatingPolicy": { "cues": [], "rules": [ { "name": "sap.s4.*", "leading": "s4", "local": [], "cues": [], "sourceEntity": null }, { "name": "sap.graph.*", "leading": "s4", "local": [], "cues": [], "sourceEntity": null }, { "name": "my.custom.*", "leading": "my.custom", "local": [], "cues": [], "sourceEntity": null }, { "name": "demo.FrequentFlyer", "leading": "s4", "local": [], "cues": [], "sourceEntity": null }, { "name": "demo.FrequentFlyer", "leading": "my.custom", "local": [], "sourceEntity": "my.custom.LoyaltyAccount", "cues": [] } ], "description": "", "keyMapping": [] }, "effectiveGraphModelVersion": "3.1.0", "description": "", "exclude": [], "extensions": ["demo-extension"] }​</code></pre><P>&nbsp;</P><P>---</P><P><STRONG>Florian Moritz</STRONG></P> 2024-03-15T13:43:13.362000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-9-use-graph-with-graphql/ba-p/13623717 Graph intro series, part 9: Use Graph With GraphQL 2024-03-17T04:30:00.031000+01:00 AlexHoffert https://community.sap.com/t5/user/viewprofilepage/user-id/707350 <H2 id="toc-hId-987940552">GraphQL</H2><P><SPAN><A href="https://graphql.org/" target="_blank" rel="noopener nofollow noreferrer">GraphQL</A> is a query language for APIs that provides a type system to describe the data model in a structured way. It provides a strongly typed schema to describe the data model of an API in a structured way. Additionally, clients of an API use the query language to describe the data they want to request. GraphQL is similar to OData because they both provide a structured, typed schema for APIs and also enable clients to write powerful queries to request exactly the data they need using a single request.</SPAN></P><P><SPAN>The GraphQL adapter builds on the same metadata as the OData adapter.</SPAN></P><H2 id="toc-hId-791427047">Tutorial Setup</H2><P><SPAN>To keep things simple, we will be using the Graph sandbox endpoint. All you need to use this endpoint is your favorite GraphQL tool, for example the Altair GraphQL client, and your API key from SAP API Hub. To retrieve your API key, log into&nbsp;</SPAN><A href="https://api.sap.com/" target="_blank" rel="noopener noreferrer">SAP API Business Hub</A><SPAN>, go to&nbsp;</SPAN><A href="https://api.sap.com/settings" target="_blank" rel="noopener noreferrer">settings</A><SPAN>&nbsp;and copy your API key from the&nbsp;</SPAN><STRONG><SPAN>Show API Key</SPAN></STRONG><SPAN>&nbsp;button.</SPAN></P><P><SPAN>To make requests against the Graph sandbox, add your API key as an HTTP header in your requests:&nbsp;apiKey: &lt;your API key&gt;. Then you can use the Graph sandbox through the following endpoint:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>https://sandbox.api.sap.com/sapgraph/graphql</code></pre><P>&nbsp;</P><H4 id="toc-hId-853078980"><SPAN>Tutorial Specific Settings</SPAN></H4><P><SPAN>Usually, GraphQL requests are done using&nbsp;</SPAN><FONT color="#008080"><STRONG>POST </STRONG></FONT><SPAN>requests. But, the sandbox is limited to </SPAN><FONT color="#008080"><STRONG>GET</STRONG></FONT><SPAN> requests, so we need to do </SPAN><FONT color="#008080"><STRONG>GET</STRONG></FONT><SPAN> requests for this tutorial. For most GraphQL clients this is just a setting and we are not creating too large request. A productive Graph instance is able to receive <FONT color="#008080"><STRONG>POST</STRONG></FONT> requests.</SPAN></P><P>The API key is just used for the purposes of this sandbox endpoint and not relevant in the context of requests to productive Graph instances.</P><P>Also note that the URL of the Graph sandbox differs from the a productive URL of Graph.</P><H2 id="toc-hId-398400037"><SPAN>Exploring the Schema</SPAN></H2><P>Every GraphQL service defines a <A href="https://graphql.org/learn/schema/" target="_self" rel="nofollow noopener noreferrer">schema</A> that completely describes the set of types you can use for querying that service. GraphQL allows asking&nbsp;<SPAN>about what queries it supports using the <A href="https://graphql.org/learn/introspection/" target="_self" rel="nofollow noopener noreferrer">introspection system</A>.&nbsp;</SPAN></P><P><SPAN>Most GraphQL clients automatically load and scan the complete schema automatically, so you might not need to do that on your own and use the client to explore the schema.</SPAN></P><P><SPAN>To see what types are available, you can query the <FONT color="#008080"><STRONG>__schema</STRONG></FONT> field:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ __schema { types { name } } }</code></pre><P>&nbsp;</P><P>This will return all service specific and build-in types of the service:</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "__schema": { "types": [ { "name": "Query" }, { "name": "sap_c4c" }, { "name": "sap_c4c_BusinessAttributeCollection_connection" }, { "name": "sap_c4c_BusinessAttributeCollection" } ... ] } } }</code></pre><P>&nbsp;</P><P>To get more information for a specific type, you can either extend the query above or do a separate query for the <FONT color="#008080"><STRONG>__type</STRONG></FONT> field. If you introspect the <FONT color="#008080"><STRONG>Query </STRONG></FONT>with</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ __type(name: "Query"){ name fields { name } } }</code></pre><P>&nbsp;</P><P>you get all namespaces. These include Graph's build-in namespaces as well as user-defined custom namespaces for custom entities.</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "__type": { "name": "Query", "fields": [ { "name": "sap_c4c" }, { "name": "sap_graph" }, { "name": "sap_hcm" }, { "name": "sap_s4 "} ] } } }</code></pre><P>&nbsp;</P><P>You can use a similar query to get the list of entities in a namespace, by using the namespace instead <FONT color="#008080"><STRONG>"Query"</STRONG></FONT> as the name.</P><P>To get more information in a single request, you can extend the query, for example to get all fields of <FONT color="#008080"><STRONG>sap_graph_SalesQuote</STRONG></FONT>&nbsp;with their name and kind, you simply query this:</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ __type(name: "sap_graph_SalesQuote"){ name fields { name type { name kind } } } }</code></pre><P>&nbsp;</P><P>returning all available properties of the&nbsp;<FONT color="#008080"><STRONG>sap_graph_SalesQuote</STRONG></FONT>:</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "__type": { "name": "sap_graph_SalesQuote", "fields": [ {"name": "id", "type": {"name": "String", "kind": "SCALAR"}}, {"name": "createdAt", "type": {"name": "DateTime", "kind": "SCALAR"}}, {"name": "changedAt", "type": {"name": "DateTime", "kind": "SCALAR"}}, {"name": "displayId", "type": {"name": "String", "kind": "SCALAR"}}, {"name": "netAmount", "type": {"name": "Decimal", "kind": "SCALAR"}}, {"name": "quoteType", "type": {"name": "String", "kind": "SCALAR"}}, {"name": "soldToParty", "type": {"name": "String", "kind": "SCALAR"}}, {"name": "_soldToParty", "type": {"name": "sap_graph_SalesDocumentReason", "kind": "OBJECT"}}, {"name": "_soldToParty_id", "type": {"name": "String", "kind": "SCALAR"}}, {"name": "items", "type": {"name": "sap_graph_SalesQuote_items_connection", "kind": "OBJECT"}}, ... ] } } }</code></pre><P>&nbsp;</P><P><SPAN>We can see that a&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>SalesQuote</SPAN></STRONG></FONT><SPAN>&nbsp;has several properties of different types, such as&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>String</SPAN></STRONG></FONT><SPAN>&nbsp;or&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>Decimal</SPAN></STRONG></FONT><SPAN>, but also more complex structured types like the&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>items</SPAN></STRONG></FONT><SPAN>&nbsp;property, which is a collection of several <FONT color="#008080"><STRONG>sap_graph_SalesQuote_items</STRONG></FONT></SPAN><SPAN>, that are also defined in the same data model. The <FONT color="#008080"><STRONG>_connection</STRONG></FONT> types allow for retrieving data of entities of a to-many relation.</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "__type": { "name": "sap_graph_SalesQuote_items_connection", "fields": [ {"name": "nodes", "type": {"name": null, "kind": "LIST", "ofType": {"name": "sap_graph_SalesQuote_items"}}}, {"name": "totalCount", "type": {"name": "Int", "kind": "SCALAR", "ofType": null}} ] } } }</code></pre><P>&nbsp;</P><H2 id="toc-hId-201886532"><SPAN>Simple Example</SPAN></H2><P><SPAN>Let us look at an example. We want to get a SalesQuote. For that, we create the following GraphQL request:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ sap_graph { SalesQuote (top: 1){ nodes { id displayId netAmount } } } }</code></pre><P>&nbsp;</P><P>In GraphQL, you always specify exactly what fields you would like to receive. In the example request above we selected the&nbsp;<FONT color="#008080"><STRONG>id</STRONG></FONT>, <FONT color="#008080"><STRONG>displayId</STRONG></FONT> and the <FONT color="#008080"><STRONG>netAmount</STRONG></FONT>&nbsp;of the <FONT color="#008080"><STRONG>SalesQuote.&nbsp;</STRONG><FONT color="#000000">To make the query fast and have an easy to read result, we have added <FONT color="#008080"><STRONG>(top: 1)</STRONG></FONT> to get only one SalesQuote.</FONT></FONT></P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "sap_graph": { "SalesQuote": { "nodes": [ { "id": "c4c~1", "displayId": "1", "netAmount": "890" } ] } } } }</code></pre><P>&nbsp;</P><H2 id="toc-hId-5373027">Example With Nesting</H2><P>We now want to get the items and the soldToParty of that SalesQuote as well, so we simply add these attributes to the query with the fields we would like to see.</P><P>Note that the attributes of the items attribute are encapsulated with <FONT color="#008080"><STRONG>nodes</STRONG></FONT> like it is done with the attributes of the SalesQuote as well. This has to be done for all list types. <FONT color="#008080"><STRONG>_soldToParty</STRONG></FONT> is a to-one association, so here the attributes are directly. The reason for this extra level is so that you can get the total amount of elements next to the actual elements of the list like here for the SalesQuote:</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ sap_graph { SalesQuote (top: 1){ totalCount nodes { id displayId netAmount _soldToParty { id name } items { nodes { itemId itemText product quantity } } } } } }</code></pre><P>&nbsp;</P><P>This will result in the items of the <FONT color="#008080"><STRONG>SalesQuote</STRONG></FONT> and the associated <FONT color="#008080"><STRONG>soldToParty</STRONG></FONT> being returned. The total count of found <FONT color="#008080"><STRONG>SalesQuotes</STRONG></FONT> is now available as well:</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "data": { "sap_graph": { "SalesQuote": { "totalCount": 135, "nodes": [ { "id": "c4c~1", "displayId": "1", "netAmount": "890", "_soldToParty": { "id": "c4c~10014", "name": "System Tec" }, "items": { "nodes": [ { "itemId": "10", "itemText": "Green Emission Calculator", "product": "P300100", "quantity": "1" } ] } } ] } } } }</code></pre><P>&nbsp;</P><H2 id="toc-hId--191140478">Working with collections: filtering, ordering and pagination</H2><P><SPAN>When working with collections of entities, we typically want to filter the entities by some criteria or arrange them in a specific order. In Graph's GraphQL schema this is supported via the&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>filter</SPAN></STRONG></FONT><SPAN>&nbsp;and&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>order</SPAN></STRONG></FONT><SPAN>&nbsp;arguments.&nbsp;</SPAN></P><P><SPAN>Let us continue with our example above. Say, we want to retrieve all&nbsp;<FONT color="#008080"><STRONG>SalesQuotes</STRONG></FONT>&nbsp;with a value greater than 100 U.S. Dollars.&nbsp;</SPAN><SPAN>The value condition can be formulated with the filter rule&nbsp;<FONT color="#008080"><STRONG>netAmount: {ge: 100}</STRONG></FONT>. For the currency condition we need to compare it with a string for equality: <FONT color="#008080"><STRONG>netAmountCurrency: {eq: "USD"}</STRONG></FONT>. Filter rules that are in one filter object are combined with&nbsp;logical conjunction (and). If you want to combine rules with logical disjunction (or), you would pass multiple filters as a list in the <FONT color="#008080"><STRONG>filter</STRONG></FONT> argument.</SPAN></P><P><SPAN>In addition, we define an ascending ordering on the&nbsp;<STRONG><FONT color="#008080">netAmount</FONT>&nbsp;</STRONG>property: <FONT color="#008080"><STRONG>orderBy: {netAmount: asc}</STRONG></FONT>.<BR /></SPAN></P><P><SPAN>With&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>top</SPAN></STRONG></FONT><SPAN>&nbsp;and&nbsp;</SPAN><FONT color="#008080"><STRONG><SPAN>skip</SPAN></STRONG></FONT><SPAN>&nbsp;we can additionally define a sliding window over the result to implement pagination. <FONT color="#008080"><STRONG>top</STRONG></FONT>&nbsp;specifies how many result entities should be returned: the page size. How many result entities should be skipped from the beginning of the ordering is defined with the <FONT color="#008080"><STRONG>skip</STRONG></FONT> argument.</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>{ sap_graph { SalesQuote ( top: 5, skip: 5, orderBy: {netAmount: asc}, filter: { netAmount: {ge: 100}, netAmountCurrency: {eq: "USD"} } ){ totalCount nodes { id netAmount netAmountCurrency } } } }</code></pre><P>&nbsp;</P><H2 id="toc-hId--387653983">Summary</H2><P><SPAN>In this tutorial we had a look at using Graph with GraphQL. We covered all the features that you as a developer working with Graph need to know, like how to:</SPAN></P><UL><LI>inspect the schema and structure of the business data graph</LI><LI>formulate complex queries</LI><LI>work with collections</LI></UL><P><SPAN>GraphQL itself offers much more than what we showed in this tutorial. You can read more about it in the&nbsp;</SPAN><A href="https://graphql.org/learn/" target="_blank" rel="nofollow noopener noreferrer">the GraphQL documentation</A>&nbsp;and&nbsp;<A href="https://help.sap.com/docs/graph/graph/graphql" target="_blank" rel="noopener noreferrer">the Graph documentation</A>&nbsp;<SPAN>.</SPAN><BR /><BR /><SPAN>You as a developer now have a second data protocol option you can use with Graph. The structure of all entities in the business data graph is exactly the same as if you access Graph with the OData protocol. You have one API to retrieve data in one unified format, no matter the source system.</SPAN></P><P><SPAN>________________________________________________________________<BR /><STRONG>Alexander Hoffert, Senior Developer – Graph</STRONG></SPAN></P><P>Visit&nbsp;<A href="https://pages.community.sap.com/topics/graph" target="_self" rel="noreferrer noopener">Graph</A>&nbsp;on the SAP Community</P> 2024-03-17T04:30:00.031000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-8-use-graph-with-odata-v4/ba-p/13641190 Graph intro series, part 8: Use Graph With OData v4 2024-03-19T14:21:24.058000+01:00 florian_moritz https://community.sap.com/t5/user/viewprofilepage/user-id/748729 <P><EM>What you will learn: use OData v4 to fetch data and explore the structure of the connected data model exposed by Graph.</EM></P><P>Hello!</P><P>In this part of the tutorial on Graph we will focus on the OData protocol that Graph exposes and how to explore the structure of the data model of a business data graph. OData is one of the two data protocols supported by Graph - next to <A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-intro-series-part-9-use-graph-with-graphql/ba-p/13623717" target="_self">GraphQL</A>.</P><P><SPAN>For an overview of other parts of this series, check out the</SPAN><SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/information-map-end-to-end-tutorial-graph-in-sap-integration-suite/ba-p/13614448" target="_blank">Information Map.</A><SPAN> </SPAN></P><P>Graph is built on open standards and technologies. Clients can communicate with Graph using the<SPAN>&nbsp;</SPAN><A href="http://docs.oasis-open.org/odata/odata/v4.01/os/part1-protocol/odata-v4.01-os-part1-protocol.html" target="_blank" rel="nofollow noopener noreferrer">Open Data v4 Protocol</A><SPAN>&nbsp;</SPAN>(OData). This is a<SPAN>&nbsp;</SPAN><A href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=odata" target="_blank" rel="nofollow noopener noreferrer">standardized RESTful HTTP protocol</A><SPAN>&nbsp;</SPAN>with defined semantics that help promote interoperability between services.</P><P>OData is centered around resources (data entities), which are identified by URLs. In Graph, there are for example the Customer, Product, or SalesQuote entities. The structure of these entities is defined in an Entity Data Model (EDM) which can be inspected by clients. OData provides many operations to filter or search in entity collections, to navigate between associated entities and to adapt the response shape.</P><P>We will now look at examples on how to formulate OData requests for Graph.</P><H2 id="toc-hId-989722487">&nbsp;</H2><H2 id="toc-hId-793208982">Tutorial Setup</H2><P>To keep things simple, we will be using the Graph sandbox business data graph (BDG). All you need to use it is your favorite HTTP tool, for example Postman, and your API key from<SPAN>&nbsp;</SPAN><A href="https://api.sap.com/" target="_blank" rel="noopener noreferrer">SAP Business Accelerator Hub</A>. To retrieve your API key, log into SAP Business Accelerator Hub, go to<SPAN>&nbsp;</SPAN><A href="https://api.sap.com/settings" target="_blank" rel="noopener noreferrer">settings</A><SPAN>&nbsp;</SPAN>and copy your API key from the Show API Key button.</P><P>To make requests against the Graph sandbox BDG, add your API key as an HTTP header in your requests:<BR /><FONT face="terminal,monaco" color="#800000">apiKey: &lt;your API key&gt;</FONT></P><P>Then you can use the Graph sandbox BDG through the following endpoint:</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>https://sandbox.api.sap.com/sapgraph/</code></pre><P>&nbsp;</P><DIV class=""><BLOCKQUOTE><P>Note: The API key is just used for the purposes of this sandbox endpoint and not relevant in the context of OData requests or productive Graph instances.</P></BLOCKQUOTE><H2 id="toc-hId-596695477">Exploring the OData data model</H2><P>OData defines an Entity Data Model that describes the structure of all known entities. This helps developers and clients alike to reason about the available entities and their structure. The data model and further metadata can be inspected through a special<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$metadata</FONT><SPAN>&nbsp;</SPAN>resource. Graph makes metadata available for each namespace, such as<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">sap.graph</FONT><SPAN>&nbsp;</SPAN>for the unified Graph data model.</P><P>To retrieve the metadata of the unified data model in Graph, make the following request, which will return an EDMX specification (an XML dialect for describing OData Entity Data Models).</P></DIV><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>https://sandbox.api.sap.com/sapgraph/sap.graph/$metadata</code></pre><P>&nbsp;</P><P><SPAN>In the response, we can inspect the structure of all the entities (and sub-entities) that are described as EntityType entries as well as other metadata. Let's have a closer look at the definition of the SalesQuote entity type in this extract from the sales domain metadata:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>&lt;EntityType Name="SalesQuote"&gt; &lt;Key&gt; &lt;PropertyRef Name="id"/&gt; &lt;/Key&gt; &lt;Property Name="id" Type="Edm.String" MaxLength="82" Nullable="false"/&gt; &lt;Property Name="displayId" Type="Edm.String"/&gt; &lt;Property Name="netAmount" Type="Edm.Decimal" Scale="6" Precision="22"/&gt; &lt;Property Name="pricingDate" Type="Edm.DateTimeOffset"/&gt; &lt;Property Name="netAmountCurrency" Type="Edm.String" MaxLength="5"/&gt; &lt;NavigationProperty Name="_netAmountCurrency" Type="sap.graph.Currency"/&gt; &lt;NavigationProperty Name="items" Type="Collection(sap.graph.SalesQuote_items)" Partner="up_" ContainsTarget="true"/&gt; &lt;Property Name="soldToParty" Type="Edm.String" MaxLength="10"/&gt; &lt;NavigationProperty Name="_soldToParty" Type="sap.graph.Customer"/&gt; &lt;NavigationProperty Name="_cxsales" Type="sap.cxsales.SalesQuoteCollection"/&gt; ... &lt;/EntityType&gt;</code></pre><P>&nbsp;</P><P>We can see that a SalesQuote has several properties of different types, such as String or Decimal, but also more complex structured types like the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">items</FONT><SPAN>&nbsp;</SPAN>property, which is a collection of several<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">sap.graph.SalesQuote_items</FONT>, that are also defined in the same data model. Furthermore, we see that the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">id</FONT><SPAN>&nbsp;</SPAN>property is referenced as key for this entity type. Navigation Properties allow for navigation to a related entity. The<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">items</FONT><SPAN>&nbsp;</SPAN>property is a navigation property because the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">sap.graph.SalesQuote_items</FONT><SPAN>&nbsp;</SPAN>is modeled as a separate entity type in the metadata.</P><P>Let's look at an example. Add the following query path to the sandbox endpoint to make the request. This will retrieve one SalesQuote entity (here we add<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$top=1</FONT><SPAN>&nbsp;</SPAN>to limit the result set to one entity):</P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>/sap.graph/SalesQuote?$top=1</code></pre><P>&nbsp;</P><P>From inspecting the metadata, we have learned that SalesQuotes have items, however when comparing with the response from the example, no items are included in the response.</P><P>The reason for this is that OData has a mechanism for the client to control which navigation properties are included as part of the response. This is called expanding a property. By default, Graph returns responses non-expanded if not specified by the client. In addition to expanding the response, OData also allows for restricting it to requested values only. We will have a look at these mechanisms next.</P><DIV class=""><H2 id="toc-hId-400181972">Expanding and restricting the response</H2><P>OData allows clients to adapt the response format in two ways. Clients can restrict the response to a set of specified properties via<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$select</FONT>. And they can expand the response by including referenced entities inline as part of the response via<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$expand</FONT>.</P><P>If we only require the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmount</FONT><SPAN>&nbsp;</SPAN>of a SalesQuote, we can restrict the response by adding it to the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$select</FONT><SPAN>&nbsp;</SPAN>query parameter:</P></DIV><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>/sap.graph/SalesQuote?$top=1&amp;$select=netAmount</code></pre><P>&nbsp;</P><P>This will return only the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmount</FONT><SPAN>&nbsp;</SPAN>property along with the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">id</FONT>, as it is the key attribute and therefore always included.</P><P>If we also require the items of a SalesQuote, we need to expand the response (as it is a navigation property) by adding it to the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$expand</FONT><SPAN>&nbsp;</SPAN>query parameter:</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$top=1&amp;$select=netAmount&amp;$expand=items</code></pre><P>&nbsp;</P><P>This will result in the items array being returned as part of the SalesQuote response as illustrated here:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="expand-items-1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/83064i8DCDA62DE7F4CBC2/image-size/large?v=v2&amp;px=999" role="button" title="expand-items-1.png" alt="expand-items-1.png" /></span></P><P>If we have a look at a response snippet, this is what is being returned:</P><DIV class="">&nbsp;</DIV><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "@odata.context": "$metadata#SalesQuote(netAmount,id,items())", "value": [ { "id": "cxsales~1", "netAmount": 890, "items": [ { "itemId": "10", "parentItemId": "", "alternativeToItemId": "", "itemCategory": "AGN", "itemText": "Green Emission Calculator", "product": "P300100", "soldToPartyProductId": "", "quantity": 1, "quantityUnit": "EA", "grossWeight": 0, "grossWeightUnit": "", "netWeight": 0, "netWeightUnit": "", "volume": 0, "volumeUnit": "", "plant": "", "netAmount": 890, "netAmountCurrency": "USD", "pricingProduct": "", "incotermsClassification": "", "incotermsLocation": "", "processingStatus": "1", "cancellationReason": "" } ] } ] }</code></pre><P>&nbsp;</P><P>Note that we do not have to specify expanded properties explicitly as part of<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$select</FONT>.</P><P>We see that the item in the example above has a property product that references an id. When we inspect the metadata of the items by searching for the EntityType<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">SalesQuote_items</FONT>. We see that the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">product</FONT><SPAN>&nbsp;</SPAN>property represents the referenced product with a string value and the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">_product</FONT><SPAN>&nbsp;</SPAN>navigation property references the connected <FONT face="terminal,monaco" color="#800000">sap.graph.Product</FONT> entity.</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>&lt;EntityType Name="SalesQuote_items"&gt; &lt;Key&gt; &lt;PropertyRef Name="itemId"/&gt; &lt;/Key&gt; &lt;Property Name="itemId" Type="Edm.String" MaxLength="10" Nullable="false"/&gt; &lt;Property Name="itemText" Type="Edm.String"/&gt; &lt;Property Name="product" Type="Edm.String"/&gt; &lt;NavigationProperty Name="_product" Type="sap.graph.Product"/&gt; ... &lt;/EntityType&gt;</code></pre><P>&nbsp;</P><P>To also include this<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">_product</FONT><SPAN>&nbsp;</SPAN>as part of the response, we can expand it inside the already expanded <FONT face="terminal,monaco" color="#800000">items</FONT>: a nested expand.</P><DIV class="">&nbsp;</DIV><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$top=1&amp;$select=netAmount&amp;$expand=items($expand=_product)</code></pre><P>&nbsp;</P><P>Which will include the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">_product</FONT><SPAN>&nbsp;</SPAN>response inline in the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">item</FONT><SPAN>&nbsp;</SPAN>of the SalesQuote response.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nested-expand-1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/83066i62D6195D5E9449B9/image-size/large?v=v2&amp;px=999" role="button" title="nested-expand-1.png" alt="nested-expand-1.png" /></span></P><P><SPAN>If we also want to adapt the format of the expanded product we can nest a&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$select</FONT><SPAN>&nbsp;query parameter in parentheses after the product. To restrict the nested product to the <FONT face="terminal,monaco" color="#800000">displayId</FONT>, for example:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$top=1&amp;$select=netAmount&amp;$expand=items($expand=_product($select=displayId))</code></pre><P>&nbsp;</P><P><SPAN>If we also want to select more properties, such as&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmountCurrency</FONT><SPAN>, we can just add them to the&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$select</FONT><SPAN>&nbsp;query parameter targeting the SalesQuote, separated by commas:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$top=1&amp;$select=netAmount,netAmountCurrency&amp;$expand=items($expand=_product($select=displayId))</code></pre><P>&nbsp;</P><P>The response for the SalesQuote with included<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmountCurrency</FONT>,<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">items</FONT><SPAN>&nbsp;</SPAN>and<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">_product</FONT><SPAN>&nbsp;</SPAN>now looks like this:</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "@odata.context": "$metadata#SalesQuote(netAmount,netAmountCurrency,id,items(_product(displayId,id)))", "value": [ { "id": "cxsales~1", "netAmount": 890, "netAmountCurrency": "USD", "items": [ { "itemId": "10", "parentItemId": "", "alternativeToItemId": "", "itemCategory": "AGN", "itemText": "Green Emission Calculator", "product": "P300100", "_product": { "id": "cxsales~P300100", "displayId": null }, "soldToPartyProductId": "", "quantity": 1, "quantityUnit": "EA", "grossWeight": 0, "grossWeightUnit": "", "netWeight": 0, "netWeightUnit": "", "volume": 0, "volumeUnit": "", "plant": "", "netAmount": 890, "netAmountCurrency": "USD", "pricingProduct": "", "incotermsClassification": "", "incotermsLocation": "", "processingStatus": "1", "cancellationReason": "" } ] } ] }</code></pre><P>&nbsp;</P><H2 id="toc-hId-203668467">Working with collections: filtering, ordering and pagination</H2><P>When working with collections of entities, we typically want to filter the entities by some criteria or arrange them in a specific order. In OData this is supported via the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$filter</FONT><SPAN>&nbsp;</SPAN>and<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$orderby</FONT><SPAN>&nbsp;</SPAN>query parameters. With<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$top</FONT><SPAN>&nbsp;</SPAN>and<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$skip</FONT><SPAN>&nbsp;</SPAN>we can additionally define a sliding window over the result to implement pagination.</P><P>To continue with our example above, let's remove the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$top=1</FONT><SPAN>&nbsp;</SPAN>we added initially to now retrieve a collection of SalesQuotes. Say we want to retrieve all SalesQuotes with a value greater than 100 U.S. Dollars.</P><P>The value condition can be formulated with the greater equal operator:<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmount ge 100</FONT>. For the currency condition we need to compare it with a string (enclosed in single quotes) for equality:<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmountCurrency eq 'USD'</FONT>. We then combine these conditions with a logical and expression and add it to the example query below. We also define an ordering on the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">netAmount</FONT><SPAN>&nbsp;</SPAN>property with the<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$orderby</FONT><SPAN>&nbsp;</SPAN>query parameter, which is ascending by default.</P><BLOCKQUOTE><P>Note: OData operators are lower-case and space-separated. This requires URL encoding. If you are using Postman for this tutorial you don't need to worry as Postman automatically applies URL encoding.&nbsp;</P></BLOCKQUOTE><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$select=netAmount,netAmountCurrency&amp;$expand=items($expand=_product($select=displayId))&amp;$filter=netAmount ge 100 and netAmountCurrency eq 'USD'&amp;$orderby=netAmount</code></pre><P>&nbsp;</P><BLOCKQUOTE><P>Note: OData only supports writing filter expressions using a small vocabulary of filter operators. See here for a full list.</P></BLOCKQUOTE><P>As a last step, we will now define a paging-window over all results. This can be achieved with the query parameters<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$top</FONT>, which specifies how many result entities should be returned: the page size, and<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$skip</FONT>, which defines how many result entities should be skipped from the beginning of the ordering. Hence, we describe the page size with<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$top</FONT><SPAN>&nbsp;</SPAN>and index the single pages with multiples of the page size in<SPAN>&nbsp;</SPAN><FONT face="terminal,monaco" color="#800000">$skip</FONT>. For the second page of five entities each, this would translate to our example as follows:</P><DIV class="">&nbsp;</DIV><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code>/sap.graph/SalesQuote?$select=netAmount,netAmountCurrency&amp;$expand=items($expand=_product($select=displayId))&amp;$filter=netAmount ge 100 and netAmountCurrency eq 'USD'&amp;$orderby=netAmount&amp;$top=5&amp;$skip=5</code></pre><P>&nbsp;</P><H2 id="toc-hId-7154962">Summary</H2><P>In this tutorial we had a look at OData, one of the two data protocols used by Graph. We covered all the features that you as a developer working with Graph need to know, like how to:</P><UL><LI>formulate complex queries</LI><LI>inspect the metadata and structure of the unified data model</LI><LI>expand and restrict responses</LI><LI>work with collections</LI></UL><P>OData itself offers much more than what we showed in this tutorial. You can read more about it in the<SPAN>&nbsp;</SPAN><A href="https://docs.oasis-open.org/odata/odata/v4.01/os/part2-url-conventions/odata-v4.01-os-part2-url-conventions.html" target="_blank" rel="nofollow noopener noreferrer">standard</A>.</P><P>With Graph, you as a developer now have one data protocol you can use together with one API to retrieve data in one unified format, no matter the source system.</P><P>---<BR />Florian Moritz</P><P>&nbsp;</P> 2024-03-19T14:21:24.058000+01:00 https://community.sap.com/t5/product-lifecycle-management-blogs-by-members/creating-a-dynamic-graph-to-use-as-an-spc-chart-purposes/ba-p/13646933 Creating a dynamic graph to use as an SPC chart purposes 2024-03-26T20:23:31.719000+01:00 egeAksoyek https://community.sap.com/t5/user/viewprofilepage/user-id/879950 <P>In this project, we aimed to create a dynamic graph to use as an SPC Chart, ["Fig. 1."]. In order to achieve this, we created a custom plugin to view the graph from the POD, custom tables in a cloud database to feed data to the graph, the process to add data to the database and create scenario-based actions, tags to read data from the shop-floor, and a subscription.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 1- Overall Graph View&quot;]" style="width: 876px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/85102iECB89F30F8CF1939/image-size/large?v=v2&amp;px=999" role="button" title="Picture1.png" alt="[&quot;Figure 1- Overall Graph View&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 1- Overall Graph View"]</span></span></P><H3 id="toc-hId-1118961666"><STRONG>Details &amp;&nbsp;Design&nbsp;of&nbsp;the&nbsp;Development</STRONG></H3><P>In our scenario, there will be five random measurements values at the first operation of an order. Our main process is triggered by the input fed by the tag in the form of an (sfc,value) structure, when related tag value changed, it is catched by the subscription created via the Automatic Trigger App, and this subscription triggers a spesific process. [“Fig. 2.”]</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 2 - Main Process&quot;]" style="width: 825px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/87083i5D01838AD1A3A6AD/image-size/large?v=v2&amp;px=999" role="button" title="Picture2.png" alt="[&quot;Figure 2 - Main Process&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 2 - Main Process"]</span></span></P><P>Within the process, after separating this input into sfc and value, further information about the sfc, such as resources, is obtained using Retrieve Sfc Details Service.</P><P>After getting the SFC details there is a parallel condition to invoke both a second process [“Fig. 3.”] and a custom service that adds data to the 'z_spc_period' table ["Fig. 4."]. With the second process, we aimed to update the resource status as 'SCHEDULED_DOWN' and send a notification to a Teams Channel, when the value falls outside the maxOut and minOut limits. For the maxValue and minValue violations, we aimed to log a pre-defined Nc code, change the status of the SFC to 'HOLD' and send a notification to a Teams Channel with this process.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 3 - Second Process&quot;]" style="width: 801px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/85104iF97BB1DE73C3B5E9/image-size/large?v=v2&amp;px=999" role="button" title="Picture3.png" alt="[&quot;Figure 3 - Second Process&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 3 - Second Process"]</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 4 - z_spc_period Table&quot;]" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86445i9BE7A7B65C72326A/image-size/medium?v=v2&amp;px=400" role="button" title="Picture6 -spcPeriod.png" alt="[&quot;Figure 4 - z_spc_period Table&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 4 - z_spc_period Table"]</span></span></P><P>We created 3 graphs as; SPC, Average Value, Value Gap. When the custom plugin screen opened, the Average Graph is preselected. To facilitate ease of use, there are total of 5 filters that are same to all graph selections: Workcenter, Resource, Order, SFC, and Material. Average value graph gives the average of values for a completed period. Calculation is performed based on the values from the custom 'z_spc_period' table and the results are inserted in the 'z_spc_value' table at the cloud DB [Fig.5.], however the max. number of values that could be in a period can be changed from the process design that we create, by editing the maxDataNum value.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 5 - z_spc_value Table&quot;]" style="width: 547px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86446iE6603F29687922E6/image-size/large?v=v2&amp;px=999" role="button" title="Picture7 - spcValue.png" alt="[&quot;Figure 5 - z_spc_value Table&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 5 - z_spc_value Table"]</span></span></P><P>SPC graph gives the value versus period ID graph based on a SFC. As this graph functions based on a SFC, SFC field at the filter section becomes mandatory. Graph also shows the maxValue&amp;minValue limits, maxOut&amp;minOut limits and for the points that exceeds those limits there is an NC logging option. To log an NC, user need to click on the desired data-point and the NC log button from the info box that is opened [“Fig. 6.”]. This button will lead to a pop-up NC Logging screen [“Fig. 7.”].</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 6 - Info Box of Data Point&quot;]" style="width: 278px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/85105i797E716BF7076802/image-size/large?v=v2&amp;px=999" role="button" title="Picture4.png" alt="[&quot;Figure 6 - Info Box of Data Point&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 6 - Info Box of Data Point"]</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="[&quot;Figure 7 - Custom NC Log Popup&quot;]" style="width: 700px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/85106iDB73087182FDAF81/image-size/large?v=v2&amp;px=999" role="button" title="Picture5.png" alt="[&quot;Figure 7 - Custom NC Log Popup&quot;]" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">["Figure 7 - Custom NC Log Popup"]</span></span></P><H3 id="toc-hId-922448161"><STRONG>Demo Video</STRONG></H3><P><STRONG><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%2FLHKDkSimoEY%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DLHKDkSimoEY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FLHKDkSimoEY%2Fhqdefault.jpg&amp;key=b0d40caa4f094c68be7c29880b16f56e&amp;type=text%2Fhtml&amp;schema=youtube" width="200" height="112" scrolling="no" title="SAP DM - Production Management and Monitoring Based on Real-time SPC Measurements" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></STRONG></P><P>If you like this post or have any questions, please let us know in the comments.<BR />All questions are highly appreciated.</P><H2 id="toc-hId-596851937"><STRONG>Dilahan Çiloğlu &amp; Ege Aksöyek</STRONG></H2> 2024-03-26T20:23:31.719000+01:00 https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/knowledge-graphs-on-datasphere-and-hana-cloud-the-differences/ba-p/13654058 Knowledge Graphs on Datasphere and HANA Cloud. The differences 2024-04-02T16:59:17.079000+02:00 MarioDeFelipe https://community.sap.com/t5/user/viewprofilepage/user-id/13491 <DIV class=""><DIV class=""><DIV class=""><P>The ability to enhance RAG with Vector search, Graph knowledge bases, or SQL Queries is fundamental. SAP recently announced the Datasphere capability to create Graphs, and there are some key differences between the graph capabilities in SAP HANA Cloud, the new announcement SAP Datasphere knowledge <STRONG>graph and the Intergation Suite capability called <STRONG>Graph:</STRONG></STRONG></P><P><FONT size="5"><STRONG>1. SAP HANA Cloud&nbsp;</STRONG></FONT>has had a powerful graph engine for analyzing complex relationships in business data for a while now. It allows creating graph workspaces from existing tables/views, querying graphs using openCypher, writing custom graph algorithms, and visualizing graphs.</P><P><FONT size="5"><STRONG><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MarioDeFelipe_0-1711871921205.gif" style="width: 720px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88842i79E885F87B9C597E/image-size/large?v=v2&amp;px=999" role="button" title="MarioDeFelipe_0-1711871921205.gif" alt="MarioDeFelipe_0-1711871921205.gif" /></span></SPAN></STRONG></FONT></P><P>&nbsp;</P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-graph-resources/ba-p/13505490" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-graph-resources/ba-p/13505490</A></P><P><A href="https://www.youtube.com/watch?v=oaSQu9laYKE" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/watch?v=oaSQu9laYKE</A></P><P><STRONG><FONT size="5">2. Datasphere&nbsp;</FONT></STRONG>Creating knowledge graphs manually is very costly, so SAP Datasphere comes to help by automatically pre-populating them using content already available in SAP Datasphere like connections to source systems, tables, foreign keys etc.&nbsp;SAP Datasphere knowledge graph&nbsp;is a new capability announced in March 2024. As data is onboarded and integrated into SAP Datasphere, it automatically creates an ontology representing the relationships in the data, including business context from SAP sources like S/4HANA</P><P><STRONG><FONT size="5"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="caption by SAP. Currently in Preview" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88841i7101106D538F7C87/image-size/large?v=v2&amp;px=999" role="button" title="MarioDeFelipe_1-1711871921042.jpeg" alt="caption by SAP. Currently in Preview" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">caption by SAP. Currently in Preview</span></span></SPAN></FONT></STRONG></P><P>&nbsp;</P><P><FONT size="3"><A href="https://www.youtube.com/watch?v=PQrFjthwOWQ&amp;t=169" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/watch?v=PQrFjthwOWQ&amp;t=169</A></FONT></P><P><A href="https://news.sap.com/2024/03/future-of-data-driven-business-new-sap-datasphere-capabilities/" target="_blank" rel="noopener noreferrer">https://news.sap.com/2024/03/future-of-data-driven-business-new-sap-datasphere-capabilities/</A></P><P><FONT size="5"><STRONG>3. SAP Graph as an Integration Suite capability&nbsp;</STRONG></FONT></P><P><SPAN class="">Parallel to building Graphs from Databases, SAP Graph is an alternative unified API available on the SAP Business Technology Platform that provides access to a connected graph of SAP-managed business data, regardless of where the data resides<SPAN class=""><SPAN class="">.</SPAN></SPAN></SPAN></P><P><SPAN class="">SAP Graph is intended for building extension applications, such as workflow applications using low-code tools or event-driven applications, and it supports&nbsp;modern open standards like OData v4 and GraphQL</SPAN></P><P><SPAN class="">&nbsp;</SPAN></P><P><SPAN class=""><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="youtube-video-gif4.gif" style="width: 720px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88847i7A79487F2DE6E4F2/image-size/large?v=v2&amp;px=999" role="button" title="youtube-video-gif4.gif" alt="youtube-video-gif4.gif" /></span></SPAN></P><P>&nbsp;</P><P><SPAN class=""><A href="https://podcast.opensap.info/cloud-platform/2022/04/28/episode-82-sap-graph-the-easy-to-use-api-of-the-intelligent-enterprise/" target="_blank" rel="noopener nofollow noreferrer">https://podcast.opensap.info/cloud-platform/2022/04/28/episode-82-sap-graph-the-easy-to-use-api-of-the-intelligent-enterprise/</A></SPAN></P><P><SPAN class=""><A href="https://community.sap.com/t5/technology-blogs-by-sap/graph-new-in-sap-integration-suite/ba-p/13555887" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/graph-new-in-sap-integration-suite/ba-p/13555887</A></SPAN></P><P><FONT size="5"><STRONG>Conclusion</STRONG></FONT></P><P>While the SAP HANA Cloud graph is more for custom graph algorithm development and analysis, the SAP Datasphere knowledge graph is an automated capability that provides a rich context for generative AI use cases by capturing complex data relationships and metadata. The two serve different but complementary purposes in the SAP data and analytics portfolio.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2024-04-08 at 09.37.45.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92677iF47B4275CEAAE9EE/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-08 at 09.37.45.png" alt="Screenshot 2024-04-08 at 09.37.45.png" /></span></P><P>&nbsp;</P><P><STRONG>Additional information:<BR /><A href="https://www.linkedin.com/pulse/how-use-sap-hana-cloud-graph-model-analyze-complex-your-holitschke" target="_blank" rel="noopener nofollow noreferrer">https://www.linkedin.com/pulse/how-use-sap-hana-cloud-graph-model-analyze-complex-your-holitschke</A></STRONG></P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-graph-resources/ba-p/13505490" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-graph-resources/ba-p/13505490</A></P><P><A href="https://community.sap.com/t5/technology-q-a/native-hana-vs-sap-datasphere-findings/qaq-p/12689997" target="_blank">https://community.sap.com/t5/technology-q-a/native-hana-vs-sap-datasphere-findings/qaq-p/12689997</A></P><P><A href="https://www.techzine.eu/blogs/data-management/117331/sap-expands-datasphere-with-knowledge-graph-and-compass/" target="_blank" rel="noopener nofollow noreferrer">https://www.techzine.eu/blogs/data-management/117331/sap-expands-datasphere-with-knowledge-graph-and...</A></P><P><A href="https://community.sap.com/t5/technology-q-a/sap-datasphere-is-an-alternative-of-sap-hana-modelling-with-more-features/qaq-p/12701049" target="_blank">https://community.sap.com/t5/technology-q-a/sap-datasphere-is-an-alternative-of-sap-hana-modelling-w...</A></P><P><A href="https://community.sap.com/t5/technology-blogs-by-members/access-sap-hana-cloud-underneath-of-sap-datasphere/ba-p/13569825" target="_blank">https://community.sap.com/t5/technology-blogs-by-members/access-sap-hana-cloud-underneath-of-sap-dat...</A></P><P><A href="https://developers.sap.com/group.hana-aa-graph-overview.html" target="_blank" rel="noopener noreferrer">https://developers.sap.com/group.hana-aa-graph-overview.html</A></P></DIV></DIV></DIV> 2024-04-02T16:59:17.079000+02:00