https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-BTP-Kyma-runtime-blog-posts.xml SAP Community - SAP BTP, Kyma runtime 2024-10-06T11:00:30.765371+00:00 python-feedgen SAP BTP, Kyma runtime blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-members/b2b-business-processes-ultimate-cyber-data-security-with-blockchain-and-sap/ba-p/13680992 B2B Business Processes - Ultimate Cyber Data Security - with Blockchain and SAP BTP πŸš€ 2024-05-07T09:54:43.546000+02:00 AndySilvey https://community.sap.com/t5/user/viewprofilepage/user-id/1397601 <P>B2B Business Processes - there are many Business Processes which cross Company and Organisation boundaries.</P><P>What has that got to do with Enterprise Blockchain and Cyber Security ?&nbsp; Let's find out.</P><P>This is a great Enterprise Blockchain story, it's one of my favourites, like the <A href="https://community.sap.com/t5/technology-blogs-by-members/bcp-business-continuity-planning-for-sap-s-4hana-made-easy-with-enterprise/ba-p/13647824" target="_self">BCP one</A>, it's so easy to implement and so effective and protects Data and Systems and Business Partners across so many dimensions, read on to find out why.</P><P>So buckle up and enjoy the ride...</P><P>B2B Business Processes, also known as, Multi-Party Collaboration, the following common Business Processes and others&nbsp; can all include elements of 3rd Party Organisation integration:</P><P style=" padding-left : 30px; ">Order-To-Cash<BR />Procure-To-Pay<BR />Plan-To-Produce/Plan-To-Inventory<BR />Record-To-Report<BR />Source-To-Pay<BR />Idea-To-Offering<BR />Count-To-Reconcile<BR />Forecast-To-Monitor<BR />Inspect-To-Comply<BR />Cradle-To-Grave/Acquire-To-Retire</P><P>Where ever you have a Business Process which includes sending your Data to a 3rd Party Organisation, to another Company, your Data is being put at risk. When ever you send or replicate or integrate your Company's Data to another Company your Data is at risk, and this means your Business Process is at risk and therefore your Business is at risk.</P><P>This blog is going to be talking about and showing is the weakness of the current approach of working with Data across multiple Organisations which collaborate together on a Business Process.</P><P>An easy example is 3PL 3rd Party Logistics.</P><P>Your Company needs something delivered and your S/4HANA system sends an instruction to the 3rd Party Logistics company to make a collection and a delivery.</P><P>This all looks very normal and very common, but what is actually happening when your Company sends an instruction from the S/4HANA system to the Delivery Planning System at your Partner Company the 3PL 3rd Party Logistics Company ?</P><P>Data, it's all about Data, your <EM>S/4HANA system is sending Data to your Business Partner the 3rd Party Logistics Company</EM>&nbsp;instructing them on where to collect from or deliver to.</P><P>And this is the problem, as soon as your Data leaves your network, it's no longer your Data, and you lose control of the Data.</P><P>This is a classical Integration scenario, the S/4HANA is Integrated to the 3rd Party Logistics Company's System and you send them your Data. What happens to that Data at your Business Partner is beyond your control, you can only trust that they will care for your Data the same way as they would care for their own Data.</P><P>This is how you are doing it today, with IDOCS and API's, this is legacy Data Integration through Replication:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Cyber Security Risk SAP Customers have to share Master Data with Partners Legacy Integration through Data Replication atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102974i8A91D0FB90C9B260/image-size/large?v=v2&amp;px=999" role="button" title="Cyber Security Risk SAP Customers have to share Master Data with Partners Legacy Integration through Data Replication atkrypto.io.png" alt="Cyber Security Risk SAP Customers have to share Master Data with Partners Legacy Integration through Data Replication atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Cyber Security Risk SAP Customers have to share Master Data with Partners Legacy Integration through Data Replication atkrypto.io</span></span></P><P>&nbsp;</P><P><STRONG>This creates several problems including</STRONG>:</P><P style=" padding-left : 30px; "><STRONG>Trust between Partners:&nbsp;</STRONG>The more Partners in a Business Transaction or Business Process, the less trust there is between Partners. This is a very simple graph, as the number of Partners in a Business Transaction or Business Process goes up, so the trust between the Partners goes down. What is trust in a Business Transaction or Business Process, doing what you said you would, data, instruction, confirmation. I will deliver the parcel to the address you gave me, but what if somebody in my Team changes the delivery address for their own benefit ?</P><P style=" padding-left : 30px; "><STRONG>Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- When your S/4HANA sends the Data to your Business Partner's System we need to make sure that the Data cannot be modified or destroyed and therefore protect the originality and integrity of the Data</P><P style=" padding-left : 30px; "><STRONG>Replicating &amp; Integrating the Data from your S/4HANA to your Business Partner's System and at the same time Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- we need to get the Data from the S/4HANA to the Business Partner's System and we need to be sure, to have surety that the Data which arrives at the Business Partner's System is the same Data as was sent from your S/4HANA. If this Data can be&nbsp; changed in any way, we won't be able to<SPAN>&nbsp;</SPAN><EM><STRONG>trust</STRONG></EM><SPAN>&nbsp;</SPAN>the Business Processes and Insights which are depending on that Data. And so, in the activity of moving the Data we need to make sure that that piece of Data cannot be modified or destroyed&nbsp;and therefore protect the originality and integrity of the Data</P><P>and it doesn't end there, it's often the case that a 3rd Party Organisation will be getting Data directly from your S/4HANA (as the Source) or posting Data to your S/4HANA (as the Target), in both cases it could be an API which through your Integration Technologies is ultimately exposed to the Internet and where the system calling the API needs to have a User on your S/4HANA.</P><P>And 3rd Party Logistics is only the tip of the iceberg when it comes to Multi-Party Collaboration and Business Transactions and Business Processes. You know how integrated your Systems are with your Business Partners how the data is flowing in and out of your network to and from your Partner's networks.</P><P>And so, here we are,&nbsp;</P><P style=" padding-left : 30px; "><STRONG>The biggest threat to B2B Business Processes is Cyber Security and Cyber Attacks</STRONG></P><P style=" padding-left : 30px; "><STRONG>The biggest threat to Multi-Party Collaboration is Cyber Security and Cyber Attacks</STRONG></P><P>And that's where the Enterprise Blockchain comes in, and this blog is going to explain why.</P><P>This blog will be less about deep dives into Use Cases and more about how Enterprise Blockchain is:</P><P style=" padding-left : 30px; ">. A Secure Store of Data</P><P style=" padding-left : 30px; ">. A Secure Communication Channel for Data</P><P style=" padding-left : 30px; ">. A Common Shared Single Source of Truth in your Organisation and across Organisations</P><P style=" padding-left : 30px; ">. The next generation Data Integration is about having a Common Shared Single Source of Truth</P><P>Subsequent blogs will deep dive individual use case by use case, this one will focus on the principle of Enterprise Blockchain already today being the next generation Secure Store and Secure Communication Channel for Data and how and why.</P><P>Ok let's go&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></P><P>Welcome to the ninth blog in this series on Enterprise Blockchain and SAP. If you have been following the previous blogs then you'll be familiar with the blog template. We'll begin by talking about and framing the problem, in this case<SPAN>&nbsp;</SPAN><EM>Data Cyber Security for B2B Business Processes</EM><SPAN>&nbsp;</SPAN>and then go in to identifying the enabling technology which will have the best capabilities and be the most appropriate to solving the problem all the way through to the reference solution architecture to be able to implement the solution.</P><P>The blog is going to break the subject down in to three sections:</P><P style=" padding-left : 30px; "><STRONG>Section 1.0: The What is it of B2B Business Processes and SAP, and Enterprise Blockchain&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Section 2.0: The Why is it, of B2B Business Processes and SAP, and Enterprise Blockchain&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Section 3.0: The How is it,&nbsp; of B2B Business Processes and SAP, and Enterprise Blockchain</STRONG></P><P>In case you missed them, the previous blogs in this series are here:</P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_blank">Why I love SAP and Blockchain Databases and why you should too <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_blank">SAP Enterprise Architecture: Positioning Blockchain Database as an Enterprise Technology Standard <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_blank">SAP Enterprise Architecture: Let the Use Case find the Blockchain<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/oil-amp-gas-ultimate-data-security-blockchain-data-backbone-from-ot-to-sap/ba-p/13640699" target="_blank">Oil &amp; Gas - Ultimate Data Security - Blockchain Data Backbone from OT to SAP IT<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/the-what-is-the-why-to-the-how-to-of-esg-amp-sap-amp-enterprise-blockchain/ba-p/13642365" target="_blank">The What Is... The Why To... The How To... of: ESG &amp; SAP &amp; Enterprise Blockchain <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/bcp-business-continuity-planning-for-sap-s-4hana-made-easy-with-enterprise/ba-p/13647824" target="_blank">BCP: Business Continuity Planning for SAP S/4HANA - made easy with Enterprise Blockchain <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/trustable-ai-thanks-to-sap-ai-core-amp-sap-hana-cloud-amp-sap-s-4hana-amp/ba-p/13662822" target="_blank">Trustable AI thanks to - SAP AI Core &amp; SAP HANA Cloud &amp; SAP S/4HANA &amp; Enterprise Blockchain <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/iot-ultimate-data-cyber-security-with-enterprise-blockchain-and-sap-btp/ba-p/13676981" target="_blank">IoT - Ultimate Data Cyber Security - with Enterprise Blockchain and SAP BTP <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></SPAN></P><P style=" padding-left : 30px; ">&nbsp;</P><P><STRONG>tl:dr</STRONG></P><P>Enterprise Integrations and Integration Architecture centered around sending and replicating Data to Business Partners results in you losing control of your Data, and losing surety that the Business Partner is looking at the same Data as you are.</P><P>The Digital Transformation of Enterprise Integrations is to have a shared common single source of truth for data with your Business Partners.</P><P>Enterprise Blockchain is the answer, Enterprise Blockchain enables both Business Partners, you and your Business Partner to share the same Distributed Ledger and consequently have a common shared single source of truth for data across multiple Companies.</P><P>That's one thing, the next thing is that thanks to the special characteristics of the Enterprise Blockchain Distributed Ledger, namely, Immutable, Hash Mechanism, Consensus, Distributed, when you or your Business Partner write data to the Enterprise Blockchain, you know, that nobody can modify the Data for their own gains, your know that natively, out of the box you have the highest level of Data Cyber Security and Resilience of any commercial database product available.</P><P>In the 3PL scenario, this is what your SAP Technical Architecture would look like:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102990iC37F7791FF332DDF/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io .png" alt="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io</span></span></P><P>&nbsp;</P><P><SPAN>[</SPAN><EM>the finer technical details of the Technical Solution Architecture will be elaborated in the rest of the blog]</EM></P><P><STRONG>The Future of Enterprise Collaboration and Cross Organisation Data Integration and B2B Business Processes (and this is possible today with the SAP BTP and SAP Partner Edge Open EcoSystem Partner Enterprise Blockchain Products).</STRONG></P><P>And as will be explained later in the blog, it's not only about the Enterprise Blockchain being a common shared source of truth across organisations, it's about digitally decoupling the S/4HANA from 3rd Party System Integrations and gradually ring fencing the S/4HANA away from being directly accessed by 3rd Party Systems as it is today with API's.</P><P>This is like pick your own strawberries, instead of sending your Partners the strawberries, you tell your Partner the strawberries are ready and which field they are in and you let your Partners pick the strawberries themselves from the Enterprise Blockchain.</P><P>S/4HANA Data Events write the Data to the Enterprise Blockchain and S/4HANA Notification Events notify the Partner that something has happened, then, instead of calling an API on your SAP S/4HANA, the Partner then calls the API of the Enterprise Blockchain and Reads the Data from there.</P><P>The Enterprise Blockchain Database software is running on your SAP BTP Kyma Runtime and in your Partner's Servers, therefore, creating natively, out of the box, the most secure and resilient common shared single source of truth. Your have a Distributed Ledger running from your SAP BTP to the Partner's Servers.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103118iFC4879EAD29E50BE/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io .png" alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io</span></span></P><P>&nbsp;</P><P>Therefore, S/4HANA Data Event Writes to the Enterprise Blockchain as the Common Shared Single Source of Truth across the Organisations, and the S/4HANA Notification Event notifies the Partner that something has happened and that they should call the Enterprise Blockchain API to get the Data of what has happened.</P><P><STRONG>Enterprise Blockchain is:</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Store</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Communication Channel</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Shared Common Single Source of Truth for Master and Transactional Data across Organisations</STRONG></P><P><SPAN><STRONG>Enterprise Blockchain is the Cyber Security for Enterprise B2B Business Processes and Multi Party Collaboration.</STRONG></SPAN></P><P>&nbsp;</P><P>and now.... the long answer...</P><P>&nbsp;</P><P><STRONG>Section 1.0: The What is it of B2B Business Processes and SAP, and Enterprise Blockchain</STRONG></P><P>What are B2B Business Processes, what is Multi-Party Collaboration, what are 3rd Party Integrations, what is it all and why do we need it ?</P><P>B2B Business Processes, Multi-Party Collaboration, in the context of this subject,&nbsp; these are any Business Process in your Company which includes your Master and Transactional S/4HANA Data being used&nbsp; by another Company, and results in the other Company needing access to your Data.</P><P>There are many examples, in today's world of outsourcing that which is not considered part of the core Business, Multi-Party Collaboration is very common across most lines of the Business. Another easy and common one is outsources Payroll.</P><P>As described in <A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/how-to-integrate-sap-s-4hana-cloud-with-third-party-payroll-provider/ba-p/13368965" target="_self">this blog</A>, by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/305372">@mert_turan</a>&nbsp;, your Company is using a 3rd Party Payroll provider to take care of your Payroll, the process and the integration can look like this:</P><P>&nbsp;</P><P><A href="https://community.sap.com/legacyfs/online/storage/blog_attachments/2018/07/Prozess-Payroll.png" target="_self"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Payroll Process by Mert Turan" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103449i9FD9E750D0FE5F8F/image-size/large?v=v2&amp;px=999" role="button" title="Prozess-Payroll" alt="Payroll Process by Mert Turan" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Payroll Process by Mert Turan</span></span></A></P><P>&nbsp;</P><P>This is a classic example of a B2B Business Process, where your Company is sending highly sensitive and highly confidential Data, transferring that Data to a 3rd Party Company, in this case a 3rd Party Payroll Provider. Look at all of the Data transfers which are going on in that Payroll Business Process.</P><P>Just look at the sensitivity and confidentiality of the Data which is being transferred to the 3rd Party Company, Personal and Business Sensitive Master and Transactional Data.</P><P>What could possibly go wrong ?</P><P>What could possibly go wrong with any of these Multi-Party Collaborative Business Processes, Payroll, Supplier Network Collaboration, 3rd Party Logistics, Contract Manufacturing ?&nbsp;</P><P>What is the biggest risk ?&nbsp;</P><P>The Data, again, it's all about the Data, and keeping the Data safe, and reducing the chance that somebody can mess with the Data.</P><P><STRONG>What about the Enterprise Blockchain, what is Enterprise Blockchain ?</STRONG></P><P>Enterprise Blockchain is both:</P><P style=" padding-left : 30px; "><STRONG>. a Secure Store</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Communication Channel</STRONG></P><P><SPAN>McKinsey &amp; Company, in their&nbsp;</SPAN><A href="https://www.mckinsey.com/featured-insights/mckinsey-explainers/what-is-blockchain" target="_self" rel="nofollow noopener noreferrer">December 2023 Featured Insights Publication</A><SPAN>, gave a beautiful description of what is unique and special about Blockchain, "</SPAN><EM>Blockchain is a secure database shared across a network of participants, where up-to-date information is available to all participants at the same time</EM><SPAN>". If we just pause for a moment and let that sink in, and think about what that means, to Business Processes, to Collaboration, to System Resilience, we start to see what is so special about Blockchain Databases and Distributed Ledger Technology.</SPAN></P><P>In these previous blogs, I made a deep dive in to what Enterprise Blockchain is and why we should be positioning it in our Enterprise Architecture:</P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_blank">Why I love SAP and Blockchain Databases and why you should too<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_blank">SAP Enterprise Architecture: Positioning Blockchain Database as an Enterprise Technology Standard<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_blank">SAP Enterprise Architecture: Let the Use Case find the Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;<SPAN>&nbsp;</SPAN></A></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103466i1F92B45FFAAD6512/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io .png" alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io</span></span></P><P>&nbsp;</P><P>and in a nutshell, Enterprise Blockchain is:</P><P style=" padding-left : 30px; "><EM><STRONG>. The Digital Transformation of Information Security into Cyber Security</STRONG></EM></P><P style=" padding-left : 30px; "><EM><STRONG>. The Next Generation Data Integrity, Originality, Confidentiality Protection</STRONG></EM></P><P style=" padding-left : 30px; "><STRONG>. Re-imagining Information Security</STRONG></P><P style=" padding-left : 30px; "><STRONG>. Natively, out of the box, due to its special characteristics the strongest, hardest, most resilient Enterprise Database product&nbsp;</STRONG></P><P>To wrap up this section:</P><P style=" padding-left : 30px; ">. B2B Business Processes are about Data</P><P style=" padding-left : 30px; ">. Enterprise Blockchain is about Cyber Security of Data</P><P>&nbsp;</P><P><STRONG>Section 2.0: The Why is it, of B2B Business Processes and SAP, and Enterprise Blockchain</STRONG></P><P><SPAN>So, why B2B Business Processes in the Enterprise IT, when implemented in conjunction with SAP Applications need Enterprise Blockchain ?</SPAN></P><P>Multi-Party Collaboration is about replicating Data to&nbsp; 3rd Party Company, and the Data, this is your Company's Data and in most cases highly sensitive and highly business and personally confidential.</P><P>The problem is the Cyber Security of getting the Data from the your Company's SAP S/4HANA to the 3rd Party Company's Application, and ensuring the originality and integrity of the highly sensitive and confidential Master and Transactional Data which you are replicating to the Partner Company remains intact.&nbsp;</P><P>As we talked about earlier, and this is worth repeating because this is the problem of Multi-Party Collaboration:</P><P style=" padding-left : 30px; "><STRONG>Trust between Partners:&nbsp;</STRONG>The more Partners in a Business Transaction or Business Process, the less trust there is between Partners. This is a very simple graph, as the number of Partners in a Business Transaction or Business Process goes up, so the trust between the Partners goes down. What is trust in a Business Transaction or Business Process, doing what you said you would, data, instruction, confirmation. I will deliver the parcel to the address you gave me, but what if somebody in my Team changes the delivery address for their own benefit ?</P><P style=" padding-left : 30px; "><STRONG>Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- When your S/4HANA sends the Data to your Business Partner's System we need to make sure that the Data cannot be modified or destroyed and therefore protect the originality and integrity of the Data</P><P style=" padding-left : 30px; "><STRONG>Replicating &amp; Integrating the Data from your S/4HANA to your Business Partner's System and at the same time Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- we need to get the Data from the S/4HANA to the Business Partner's System and we need to be sure, to have surety that the Data which arrives at the Business Partner's System is the same Data as was sent from your S/4HANA. If this Data can be&nbsp; changed in any way, we won't be able to<SPAN>&nbsp;</SPAN><EM><STRONG>trust</STRONG></EM><SPAN>&nbsp;</SPAN>the Business Processes and Insights which are depending on that Data. And so, in the activity of moving the Data we need to make sure that that piece of Data cannot be modified or destroyed&nbsp;and therefore protect the originality and integrity of the Data</P><P>ITSecurityWire.com, in their article,&nbsp;<A href="https://itsecuritywire.com/featured/best-practices-to-secure-data-integration/" target="_self" rel="nofollow noopener noreferrer">Best Practices to Secure Data Integration</A>, put it like this:</P><P><A href="https://itsecuritywire.com/featured/best-practices-to-secure-data-integration/" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1714416975462.png" style="width: 760px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103476i0DE5CD46D8CCDD4B/image-dimensions/760x564?v=v2" width="760" height="564" role="button" title="AndySilvey_0-1714416975462.png" alt="AndySilvey_0-1714416975462.png" /></span></A></P><P>The<A href="https://www.linkedin.com/advice/0/what-most-common-security-concerns-during-integration-duhbe" target="_self" rel="nofollow noopener noreferrer"> LinkedIn Community</A> describe the risks of Data integration like this:</P><P><A href="https://www.linkedin.com/advice/0/what-most-common-security-concerns-during-integration-duhbe" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_1-1714417205615.png" style="width: 581px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103477iE263E4F04A9345A3/image-dimensions/581x740?v=v2" width="581" height="740" role="button" title="AndySilvey_1-1714417205615.png" alt="AndySilvey_1-1714417205615.png" /></span></A></P><P>&nbsp;</P><P>Those are the problems with today's legacy ways of making your S/4HANA Master and Transaction Data available for 3rd Party Companies in your B2B Business Processes.</P><P>&nbsp;</P><P>And what's the solution ?&nbsp;&nbsp;</P><P>The solution is the Enterprise Blockchain as the Common Data Back Bone across Companies.</P><P>Instead of replicating and sending the Data to your Business Partner, you write the S/4HANA Data to the Enterprise Blockchain.</P><P>This is like pick your own strawberries, instead of sending your Partners the strawberries, you tell your Partner the strawberries are ready and which field they are in and you let your Partners pick the strawberries themselves from the Enterprise Blockchain.</P><P>S/4HANA Data Events write the Data to the Enterprise Blockchain and S/4HANA Notification Events notify the Partner that something has happened, then, instead of calling an API on your SAP S/4HANA, the Partner then calls the API of the Enterprise Blockchain and Reads the Data from there.</P><P>The Enterprise Blockchain Database software is running on your SAP BTP Kyma Runtime and in your Partner's Servers, therefore, creating natively, out of the box, the most secure and resilient common shared single source of truth. Your have a Distributed Ledger running from your SAP BTP to the Partner's Servers.</P><P>Therefore, S/4HANA Data Event Writes to the Enterprise Blockchain as the Common Shared Single Source of Truth across the Organisations, and the S/4HANA Notification Event notifies the Partner that something has happened and that they should call the Enterprise Blockchain API to get the Data of what has happened.</P><P>And as will be explained later in the blog, it's not only about the Enterprise Blockchain being a common shared source of truth across organisations, it's about digitally decoupling the S/4HANA from 3rd Party System Integrations and gradually ring fencing the S/4HANA away from being directly accessed by 3rd Party Systems as it is today with API's.</P><P>Imagine, as described in the previous blog, when we<SPAN>&nbsp;</SPAN><EM><A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_self">let the Use Case find the Enterprise Blockchain</A></EM>, we have a Business Requirement, a Business Demand, to make Data for B2B Business Process the safest it can be, the most trustable that it can be.</P><P>When we look in our Enterprise Technology Standards, and we look for the Technology Standard in our Enterprise Portfolio which is<SPAN>&nbsp;</SPAN><EM><A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_self">positioned to bring the strongest protection to Data, we find the Enterprise Blockchain</A></EM>.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_2-1714417544037.png" style="width: 768px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103480i5D02170CDC39C2A3/image-dimensions/768x388?v=v2" width="768" height="388" role="button" title="AndySilvey_2-1714417544037.png" alt="AndySilvey_2-1714417544037.png" /></span></P><P>&nbsp;</P><P><SPAN class="">Comparison Enterprise Blockchain Database and Traditional Legacy Database - atkrypto.io</SPAN></P><P>In the previous blogs, we have discussed in detail about the special characteristics of Enterprise Blockchain and just why it natively out of the box protects the integrity of data to a level that legacy database products cannot do, in a nutshell....</P><P><SPAN>B2B Business Processes are about Data</SPAN></P><P><SPAN>B2B Business Processes are about the Data that goes from your S/4HANA outside the boundaries of your Company and your Network and to Partner Company's Applications and Networks and Databases.</SPAN></P><P><SPAN>This means B2B Business Processes are about Data and the Data depends on a Database or a Datastore</SPAN></P><P><SPAN>What kind of Database do&nbsp;B2B Business Processes Data need ? What capabilities does the Database for the B2B Business Processes&nbsp; Data need to have ?</SPAN></P><P><SPAN>1. It must not be possible to modify the Data in the Database ]- the Database needs to be immutable</SPAN></P><P><SPAN>2. The Data in the Database, the integrity and originality of that Data must be protected to the highest level that is technically possible</SPAN></P><P><SPAN>3. The Data must be available with the highest availability, the Database must be resilient to attack</SPAN></P><P><SPAN>4. The Database must be running simutaneously in your DataCenter and your Business Partner's DataCenter</SPAN></P><P>5. S/4HANA must not expose any API's to Business Partner Companies</P><P><SPAN>When we look in our&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_self">Enterprise Technology Standards we find 1 Technology Standard</A>&nbsp;in the Enterprise which has those capabilities, and that is..... Enterprise Blockchain</SPAN></P><P><SPAN>Enterprise Blockchain ticks those boxes...</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_3-1714417544025.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103478iD26F8C30469C1899/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="AndySilvey_3-1714417544025.png" alt="AndySilvey_3-1714417544025.png" /></span>&nbsp;<SPAN>Immutable - tick that box</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_4-1714417544031.png" style="width: 17px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103479i602D544892334796/image-dimensions/17x17?v=v2" width="17" height="17" role="button" title="AndySilvey_4-1714417544031.png" alt="AndySilvey_4-1714417544031.png" /></span>&nbsp;<SPAN>Integrity must be protected to the highest level - tick that box, thanks to the Enterprise Blockchain Hash Mechanism and the Enterprise Blockchain Consensus Mechanism</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_5-1714417544034.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103481iBA344C7168F0D648/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="AndySilvey_5-1714417544034.png" alt="AndySilvey_5-1714417544034.png" /></span>&nbsp;<SPAN>Highest level of resilience and availability - tick that box thanks to the Distributed and Decentralised nature of the Enterprise Blockchain</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_5-1714417544034.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103481iBA344C7168F0D648/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="AndySilvey_5-1714417544034.png" alt="AndySilvey_5-1714417544034.png" /></span>&nbsp;DeCouples S/4HANA from the process, no need to S/4HANA API's to be exposed to 3rd Party Business Partner's Applications</P><P><SPAN>This is why, Enterprise Blockchain is the enabler of trustable outcomes from Enterprise B2B Business Processes.</SPAN></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_6-1714417544041.jpeg" style="width: 772px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103482iF49614F1DFBC70A7/image-dimensions/772x386?v=v2" width="772" height="386" role="button" title="AndySilvey_6-1714417544041.jpeg" alt="AndySilvey_6-1714417544041.jpeg" /></span></P><P><EM><SPAN class="">atkrypto.io what is a blockchain</SPAN></EM></P><P>But there's more than that, B2B Business Processes can produce a lot of data, and the volumes of data can be big.</P><P>And this is why, in this blog we take the Enterprise Blockchain Technology story one level further and we introduce the:</P><P style=" padding-left : 30px; ">Enterprise Blockchain Wallet</P><P style=" padding-left : 30px; ">Off-Chain Data Storage</P><P>In the Enterprise Blockchain Platforms, the Enterprise Blockchain Wallet is used for Off-Chain storage of big data and in the following paragraphs we will explain why.</P><P>What is the Enterprise Blockchain Wallet, and what is Off-Chain Data Storage and why would we use them and why do we need them ?</P><P>As we have explained<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_self">in a previous blog</A>, the Enterprise Blockchain Database, the Distributed Ledger, can be looked at simply as a Database Table (which is replicated and synchronised across multiple Servers) and in principle it stores the Data like this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_7-1714417543852.jpeg" style="width: 759px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103483iB8BF992C4F7704AB/image-dimensions/759x385?v=v2" width="759" height="385" role="button" title="AndySilvey_7-1714417543852.jpeg" alt="AndySilvey_7-1714417543852.jpeg" /></span></P><P><SPAN class="">Blockchain is a very simple form of database atkrypto.io</SPAN></P><P>This is fine, and suited to what we call<SPAN>&nbsp;</SPAN><A href="https://aws.amazon.com/compare/the-difference-between-structured-data-and-unstructured-data/#:~:text=Structured%20data%20is%20data%20that,files%20and%20large%20text%20documents." target="_self" rel="nofollow noopener noreferrer">Structured Data</A>, and as AWS nicely describe,<SPAN>&nbsp;</SPAN><A href="https://aws.amazon.com/what-is/structured-data/" target="_self" rel="nofollow noopener noreferrer">Structured Data</A><SPAN>&nbsp;</SPAN>is information like words and numbers. This kind of data is perfectly suited to being stored in an Enterprise Blockchain Database and also a legacy Database. Examples of the data would Names, Addresses, Phone Numbers, Product Information etc.</P><P>But, Payroll can produce a lot of Data, and in large volumes which would&nbsp;be too big to be stored on the Enterprise Blockchain Database itself.</P><P>And that's ok, Enterprise Blockchain Platforms are ready for that, and have been designed to store both Structured Data and Data which is in files which are so big that they cannot be stored in the Enterprise Blockchain Database itself, for example the photographs from a Waste Truck's onboard camera proving that waste was responsibly tipped in the correct location and taken at the same time as recording GPS location coordinates proving the location of the Waste Truck.</P><P>So, if we can't store the large photographs files in large quantities to the Enterprise Blockchain Database, then how, in an Enterprise Blockchain Platform do we store large files of Data ?</P><P>Voila.... bring in the Enterprise Blockchain Platform Wallet. The best Enterprise Blockchain Platform products include what is called the Enterprise Blockchain Platform Wallet, or to make it shorter, the Enterprise Blockchain Wallet.</P><P>The Enterprise Blockchain Wallet enables us to store large Data, like large Files safely and securely off the chain, or '<A href="https://www.bitdegree.org/crypto/learn/crypto-terms/what-is-off-chain" target="_self" rel="nofollow noopener noreferrer">Off-Chain</A>'.&nbsp;</P><P>But if we store the large Data files Off-Chain in the Enterprise Blockchain Wallet, then how do we also have them some how on the Enterprise Blockchain Database ?</P><P>The way this works is elegant, in any decent Enterprise Blockchain Platform, the Enterprise Blockchain Wallet location is completely configurable, and could be anywhere from<SPAN>&nbsp;</SPAN><A href="https://www.sap.com/norway/products/technology-platform/hana/features/cloud-data-lake.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud (Data Lake)</A>, or for example&nbsp;multiple hyperscaler object stores, such as Amazon S3, OSS (Alicloud Object Storage<BR />Service), SAP HANA Cloud, Data Lake, and Azure Blob Storage.</P><P>The configurable Enterprise Blockchain Wallet of the Enterprise Blockchain Platform looks like this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_8-1714417544026.jpeg" style="width: 764px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103484i7ABA58A3F3211791/image-dimensions/764x427?v=v2" width="764" height="427" role="button" title="AndySilvey_8-1714417544026.jpeg" alt="AndySilvey_8-1714417544026.jpeg" /></span></P><P><SPAN class="">Enterprise Blockchain Platform - Enterprise Blockchain Wallets - Configurable Enterprise Wallets - atkrypto.io</SPAN></P><P>Ok, so we've got the large volumes of Data stored in the (configurable) Enterprise Blockchain Wallet, but what about securing the Data ? Obviously the Enterprise Blockchain Wallet storage location has built in security, for example the SAP HANA Cloud, the AWS S3 Buckets, but we need more than the out of the box security of these products, the reason we are using the Enterprise Blockchain Database is because of the amazing security strengths that it natively out of the box has, and so, what about the Enterprise Blockchain Wallet, doesn't the Enterprise Blockchain Platform have some cool super hard way of protecting the data in the Enterprise Blockchain Wallet ?</P><P>Well yes it does, this is the magic of Enterprise Blockchain Database 'Off-Chain' storage in the Enterprise Blockchain Wallet. This is so unique to Blockchain Technologies.</P><P>What happens is this, when store data in the Enterprise Blockchain Wallet, the Enterprise Blockchain Platform software runs a hash algorithm over the data that we have stored and the data, and<SPAN>&nbsp;</SPAN><A href="https://codesigningstore.com/what-is-hashing-algorithm-how-it-works#:~:text=In%20cryptography%2C%20hashing%20is%20a,output%20of%20the%20same%20length." target="_self" rel="nofollow noopener noreferrer">the large file gets hashed</A>:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_9-1714417544035.png" style="width: 693px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103486i83CF189B36A2E212/image-dimensions/693x205?v=v2" width="693" height="205" role="button" title="AndySilvey_9-1714417544035.png" alt="AndySilvey_9-1714417544035.png" /></span></P><P>&nbsp;</P><P>The data or the file in the Enterprise Blockchain Wallet gets hashed, and then, that hash is stored in the Enterprise Blockchain Database.</P><P>This means we now have a unique hash of that data or file, and if anybody or anything makes even the tiniest teeniest change to that data or file, next time we run a hash over that data or file the result will be different that the original hash which is safely stored in the Enterprise Blockchain Database and this is how we will know that the data has been changed and we cannot trust the Data and therefore we cannot use it for our Enterprise Business Processes.</P><P>On the other hand, if just before we load the data in to the SAP Enterprise Applications, eg SAP Asset Performance Management and SAP S/4HANA,&nbsp; from the Enterprise Blockchain Wallet, if we run a hash over the data and the hash result is the same as we have in the Enterprise Blockchain Database, then we will know we can trust the Data and we can use it in our SAP Applications and we will have trustable Data.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_10-1714417544032.jpeg" style="width: 764px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103485i9F24EC8DB66E5B5E/image-dimensions/764x430?v=v2" width="764" height="430" role="button" title="AndySilvey_10-1714417544032.jpeg" alt="AndySilvey_10-1714417544032.jpeg" /></span></P><P><SPAN class="">Enterprise Blockchain Wallet Data Hashes Stored in the Enterprise Blockchain Database - atkrypto.io</SPAN></P><P>&nbsp;</P><P><STRONG>And this is why, for all of these reasons,&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Trustable Enterprise B2B Business Processes depends on Data being stored in the Enterprise Blockchain</STRONG></P><P>&nbsp;</P><P>But that's not the end of the b2B Business Processes need Enterprise Blockchain.&nbsp;</P><P>As we showed at the beginning of the blog in this picture:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103493i11EBBF92E743C95A/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io .png" alt="Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain Multi Party Business Processes Data Sharing atkrypto.io</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P>As the picture shows, we have an Enterprise Blockchain Database Tenant installed on a Server Host at the in your DataCenter, in your Network on your SAP BTP Kyma Service AND we have an Enterprise Blockchain Database Tenant installed on your B2B Business Partner's Network, if they are a SAP Customer then like you they can put it on the SAP BTP Kyma Service, if not they can run it on Kubernetes.</P><P>The consequence of this is that we have a distributed Enterprise Blockchain Database table which stretches from your DataCenter and Network where your S/4HANA is writing Data to it and stretches&nbsp; all the way across the Network to your Business Partner's DataCenter.</P><P>This means we have Enterprise Blockchain Data Protection from the source from your S/4HANA to the target your B2B Business Partner's It infrastructure enabling the trusted resilient reliable Business Processes to be completed.</P><P>At the same time, we are not exposing S/4HANA or the API's on the S/4HANA to any 3rd Party Applications.</P><P>We have digitally decoupled the S/4HANA from the Business Process.</P><P>And this is why we say, Enterprise Blockchain is a Secure Communication Channel, because instead of integrating Applications sending and replicating Data across Networks, we are sharing the Data across the Enterprise Blockchain and the Enterprise Blockchain is the Secure Communication Channel.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103496i58458018AE29EF3B/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io .png" alt="Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain as a Shared Common Single Source of Truth for Master and Transactional Data across Organisations with SAP BTP and atkrypto.io</span></span></P><P>&nbsp;</P><P>To conclude this section, the<SPAN>&nbsp;</SPAN><EM>Why to, B2B Business Processes and Enterprise Blockchain</EM>, B2B Business Process Data needs to safely replicated and trustable.</P><P>Enterprise Blockchain, due to its native super strong security strength when used as a store of Data enables B2B Business Processes to be both Secure, and Trustable.</P><P><SPAN>And as we will see in the next section, it's not only about the Enterprise Blockchain being a common shared source of truth across Organisations, it's about digitally decoupling the S/4HANA from 3rd Party System Integrations and gradually ring fencing the S/4HANA away from being directly accessed by 3rd Party Systems as it is today with API's.</SPAN></P><P>&nbsp;</P><P><SPAN><STRONG>Section 3.0: The How is it,&nbsp; of B2B Business Processes and SAP, and Enterprise Blockchain</STRONG></SPAN></P><P>The goal of this blog was to show how instead of using the legacy fire and forget approach of replicating data to 3rd Party Business Partners, the Enterprise Blockchain can be deployed as a common shared single source of truth running, with an Enterprise Blockchain Tenant running close to your S/4HANA and another Enterprise Blockchain Tenant running close to your Business Partner's Application.</P><P>In this section of the blog we will show all of the possible potential Technical Solution Architectures which will enable you to implement this next generation approach to sharing Data with the highest level of Cyber Security already today.</P><P>As described above one of the many beauties of this approach is your S/4HANA writes to the Enterprise Blockchain and your Business Partner's Application reads from the same Enterprise Blockchain. This achieves a number of things including:</P><P>. Total Control - you have total control over the Data you are sharing with the Business Partner, and you know that as long as your Business Partner's Application reads the Data from the common shared source, the Enterprise Blockchain</P><P>. Ultimate Cyber Security - then you know the maximum has been done to minimise the chance for Cyber Security risks and the maximum has been done to protect originality, integrity, and confidentiality of the Data</P><P>. S/4HANA Digitally DeCoupled from the Business Process - and on top of this, the S/4HANA has been digitally disconnected from the Business Process, because no longer do any 3rd Party Applications directly call API's on the S/4HANA</P><P>In the Technical Solution Archecture there would be two main ways for getting the data from the S/4HANA and writing it to the Enterprise Blockchain, these would be:</P><P>. API's</P><P>. Events</P><P>In these Technical Solution Architecture examples we will prioritise using S/4HANA Events to write the Data to the Enterprise Blockchain, we will be sending the Event Notification and the Event Payload, we could of course draw the same Technical Solution Architecture with API's, but we prefer the Events for the simplicity and reduced call backs to the S/4HANA and therefore making the S/4HANA more Digitally DeCoupled and therefore, enabling the S/4HANA to be protected to the higher security level and exposed to less Cyber Security risk.</P><P>S/4HANA Data Events write the Data to the Enterprise Blockchain and S/4HANA Notification Events notify the Partner that something has happened, then, instead of calling an API on your SAP S/4HANA, the Partner then calls the API of the Enterprise Blockchain and Reads the Data from there.</P><P>The Enterprise Blockchain Database software is running on your SAP BTP Kyma Runtime and in your Partner's Servers, therefore, creating natively, out of the box, the most secure and resilient common shared single source of truth. Your have a Distributed Ledger running from your SAP BTP to the Partner's Servers.</P><P>Ok, let's go with the Technical Solution Architectures, in these examples we will focus on the OutSourced Payroll as the integration and B2B Business Process Example.</P><P>What do we have and what do we need:</P><P>Your Company will need:</P><P style=" padding-left : 30px; ">. S/4HANA</P><P style=" padding-left : 30px; ">. SAP EM and preferably SAP AEM since it has richer Security and Event Payload size capabilities and can Publish Events from Non-SAP Enterprise Applications and connect to your Enterprise Event Mesh</P><P style=" padding-left : 30px; ">. SAP BTP</P><P style=" padding-left : 30px; ">. SAP BTP Kyma Runtime Service - this is where the Enterprise Blockchain Container will run</P><P style=" padding-left : 30px; ">. Enterprise Blockchain Platform Software which can run on Kubernetes&nbsp;</P><P style=" padding-left : 30px; ">. If there will be larger Data objects then you will need Large Storage for Large Data and the Enterprise Blockchain Wallet in the form of&nbsp;&nbsp;<A href="https://www.sap.com/norway/products/technology-platform/hana/features/cloud-data-lake.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud (Data Lake)</A></P><P>Your Business Partner will need:</P><P style=" padding-left : 30px; ">. Obviously their Payroll Application</P><P style=" padding-left : 30px; ">. Either SAP BTP with Kyma Runtime, or Servers which can run Kubernetes Containers</P><P style=" padding-left : 30px; ">. n.b. there is an Optional Technical Solution Architecture where you simply allow your Business Partner to read data from your Enterprise Blockchain where the Enterprise Blockchain Platform is running exclusively on your BTP, we will show that Option as well</P><P>Technical Reference Solution Architecture for SAP S/4HANA and SAP SuccessFactors and OutSourced 3rd Party Payroll Provider using Enterprise Blockchain as a Common Shared Single Source of Truth for Data and the Ultimate Cyber Data Security for B2B Business Processes...</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103791i21C7D097BB07A758/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io</span></span></P><P>&nbsp;</P><P>In the next example, we have the same basic Technical Solution Architecture as the previous example, except, this Reference Use Case is ready for the Enterprise Blockchain needed to be able to handle large volumes of data and brings the Enterprise Wallet in to the picture. In the Enterprise Blockchain Platform the Enterprise Wallet storage is configurable and therefore could be SAP HANA Cloud (DataLake) or AWS S3 Buckets or other HyperScaler Data stores.</P><P>All of the other Cyber Security characteristics remain the same, S/4 is digitally decoupled from the Business Partner, Enterprise Blockchain is used as a common shared single source of truth for Master and Transactional Data, and the Enterprise Blockchain Tenants are running in both your DataCenter (AnyPremise) and the Business Partner's DataCenter (AnyPremise):</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103850iECD5D7A39C33F86C/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io</span></span></P><P>&nbsp;</P><P>The next example Reference Technical Solution Architecture is a little bit different, let's assume, for their own reasons, your Business Partner is not going to run an Enterprise Blockchain Tenant in their (AnyPremise) DataCenter.</P><P>This is still fine, you will set up the Enterprise Blockchain Platform in your DataCenter(s) (AnyPremise) and your B2B Business Partner, in this case the outsourced 3rd Party Payroll Vendor will simply use API's to read and write to and from your Enterprise Blockchain.</P><P>All of the other benefits of the design remain the same, all of the other next generation Data sharing Cyber Security characteristics are still there,&nbsp;S/4 is digitally decoupled from the Business Partner, Enterprise Blockchain is used as a common shared single source of truth for Master and Transactional Data.</P><P>Here it is:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103851i3C3A80AFB9D5FEF3/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io</span></span></P><P>&nbsp;</P><P>Finally, we have the same Reference Technical Architecture as above, but to be able to cater for large volumes of Data we include the Enterprise Wallet in the design:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise your Blockchain &amp; Enterprise Wallet atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103852i18F7677AE8C70CBC/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise your Blockchain &amp; Enterprise Wallet atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise your Blockchain &amp; Enterprise Wallet atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise your Blockchain &amp; Enterprise Wallet atkrypto.io</span></span></P><P>&nbsp;</P><P>Ok let's wrap this up, the conclusions:</P><P>Ultimate Cyber Security for B2B Business Processes is Enterprise Blockchain, where the Enterprise Blockchain acts a common shared single source of truth for Data across Organisations</P><P>Enterprise Blockchain is:</P><P style=" padding-left : 30px; ">. A Secure Store of Data</P><P style=" padding-left : 30px; ">. A Secure Communication Channel for Data</P><P style=" padding-left : 30px; ">. A Common Shared Single Source of Truth in your Organisation and across Organisations</P><P style=" padding-left : 30px; ">. The next generation Data Integration is about having a Common Shared Single Source of Truth</P><P>The next generation Integrations don't replicate Data, that's legacy, the next generation Integrations use Enterprise Blockchain as a common shared single source of truth.</P><P><STRONG>The configurable Enterprise Blockchain Wallet enables you to store Big Data 'Off-Chain' and the hashes of the Data are stored safely and securely on the Enterprise Blockchain Database.</STRONG></P><P>&nbsp;</P><P>The good news is, as we discussed in the previous blog, this is no longer hype, we can do all of this today,<SPAN>&nbsp;</SPAN><SPAN>and now, within the&nbsp;</SPAN><A href="https://www.sap.com/norway/partners/partner-program/build.html" target="_self" rel="noopener noreferrer">SAP Partner Edge Open EcoSystem</A><SPAN>&nbsp;there are enabling technology Blockchain Products designed and built by SAP Experts specifically for the needs of SAP Customers to make doing Blockchain and SAP easy, and so you can do SAP and Blockchain, today it's real and there's nothing stopping you.</SPAN></P><P>So what are we waiting for ? Oh yeah, deep dive in to more use cases, ok, that will be the next blog.&nbsp;</P><P><SPAN>What do you think, are the words Blockchain, Web3, Distributed Ledger Technology, starting to appear in your Company's visions and technology visions ? What use cases are you looking at ? Let's chat about it in the comments.</SPAN></P><P>For now, over and out.</P><P>Andy Silvey.</P><P>Independent SAP Technical Architect and CEO of atkrypto.io</P><P>Author Bio:</P><P>Andy Silvey is a 25 years SAP Technology veteran&nbsp;[<EM>15 years SAP Basis and 10 years SAP Tech Arch including Tech, Integration, Security, Data from 3.1H to S/4HANA PCE on RISE and the BTP and everything in between, and<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/welcome-corner-blog-posts/andy-silvey-scn-moderator-spotlight/ba-p/13054438" target="_self">former SCN Moderator and Mentor alumni</A>].</EM></P><P data-unlink="true">Andy is also co-Founder of<SPAN>&nbsp;</SPAN>atkrypto&nbsp;<SPAN>&nbsp;</SPAN>inc, an startup whose ambition is to make Blockchain easy for Enterprise.</P><P>atkrypto.io's flagship product is the atkrypto Enterprise Blockchain Platform for SAP,&nbsp; and atkrypto.io is a SAP Partner Edge Open EcoSystem Partner.&nbsp;</P><P>The&nbsp;atkrypto Enterprise Blockchain Platform for SAP has been designed by SAP Independent Experts for the needs of SAP Customers and to be deployed on the SAP BTP Kyma Runtime Service and leverage native integration to SAP Products.</P><P>atkrypto&nbsp;Enterprise Blockchain Platform for SAP has a number of unique qualities, including being the only Blockchain software in the world which has a DataCenter version and a light mobile version which can run on Edge/IoT/Mobile devices and enables data to be written to the Blockchain at the Edge where that same Blockchain is running on a Server in the DataCenter, protecting the integrity and originality of data from the Edge to Insights. Taking Blockchain to the Data at the Edge instead of taking the Data to the Blockchain.</P><P><SPAN>All of this makes atkrypto,io the DePIN Decentralised Physical Infrastructure Network solution for Enterprise.</SPAN></P><P data-unlink="true"><SPAN>atkrypto is one of the&nbsp;Next20 startups&nbsp;&nbsp;being featured at&nbsp;TM Forum's DTW Ignite in Copenhagen in June&nbsp;</SPAN></P><P>If you will be at DTW24 come and talk to us about Cyber Security of SAP Data with Enterprise Blockchain.</P><P>&nbsp;</P><P>&nbsp;</P> 2024-05-07T09:54:43.546000+02:00 https://community.sap.com/t5/technology-blogs-by-members/installing-saprouter-on-linux-a-step-by-step-guide/ba-p/13698342 Installing SAPRouter on Linux: A Step-by-Step Guide 2024-05-11T15:55:48.753000+02:00 Muthumayandi_Yadava https://community.sap.com/t5/user/viewprofilepage/user-id/10779 <P><STRONG>What is SAP Router ?</STRONG></P><P>SAPRouter is a software component used to secure communication between SAP systems and the internet. Installing SAPRouter on Linux is a crucial step in ensuring secure communication for your SAP landscape. This step-by-step guide will walk you through the installation process.</P><P><STRONG>Prerequisites</STRONG>:</P><P>- Linux server (e.g., CentOS, Ubuntu)</P><P>- Root access to the server</P><P>- SAPRouter software package downloaded from the SAP Support Portal</P><P><STRONG>Step 1: Download SAPRouter:</STRONG></P><P>Download the SAPRouter software package from the SAP Support Portal. Ensure that you download the correct version for your operating system.</P><P><STRONG>Step 2: Extract the SAPRouter Package:</STRONG></P><P>Transfer the downloaded SAPRouter package to your Linux server. Use the following command to extract the package:</P><P>tar -xvf saprouter_&lt;version&gt;_linux_x86_64.tar.gz</P><P><STRONG>Step 3: Create a Directory for SAPRouter:</STRONG></P><P>Create a directory to store the SAPRouter files. You can use the following command to create the directory:</P><P>mkdir /usr/sap/saprouter</P><P><STRONG>Step 4: Copy SAPRouter Files:</STRONG></P><P>Copy the extracted SAPRouter files to the newly created directory:</P><P>cp -R &lt;path_to_extracted_files&gt;/saprouter /usr/sap/saprouter</P><P><STRONG>Step 5: Create a Configuration File:</STRONG></P><P>Create a configuration file named `saprouter.ini` in the `/usr/sap/saprouter` directory. Here's a basic example of the configuration file:</P><P># SAProuter Configuration File</P><P>version = 39</P><P>httpport = 81</P><P>tracefile = /usr/sap/saprouter/saprouter.trc</P><P>authid = *</P><P>permit = *</P><P><STRONG>Step 6: Set Permissions:</STRONG></P><P>Ensure that the SAPRouter binary and configuration files have the correct permissions:</P><P>chmod 755 /usr/sap/saprouter/saprouter</P><P>chmod 644 /usr/sap/saprouter/saprouter.ini</P><P>&nbsp;</P><P><STRONG>Step 7: Start SAPRouter:</STRONG></P><P>Start the SAPRouter using the following command:</P><P>/usr/sap/saprouter/saprouter -r -R /usr/sap/saprouter/saprouter.ini</P><P><STRONG>Step 8: Verify SAPRouter Status:</STRONG></P><P>Verify that SAPRouter is running and listening on the specified port (e.g., 81):</P><P>netstat -tuln | grep 81</P><P><STRONG>Step 9: Configure Firewall:</STRONG></P><P>Configure your firewall to allow incoming and outgoing traffic on the SAPRouter port (e.g., 81) to ensure proper communication.</P><P><STRONG>Step 10: Configure SAP Systems:</STRONG></P><P>Update the `secinfo` file of your SAP systems to include the SAPRouter details for communication through the SAPRouter.</P><P><STRONG>Overall information</STRONG>:</P><P>By following these steps, you can successfully install SAPRouter on your Linux server. This will help secure communication between your SAP systems and the internet, ensuring the integrity and confidentiality of your SAP la<SPAN>ndscape.</SPAN></P><P>#SAP #SAPRouter #Linux #Installation <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Young+Thinkers/pd-p/7491a8e4-2c34-4d6b-bf69-b91db9291a90" class="lia-product-mention" data-product="1159-1">SAP Young Thinkers</a>&nbsp;#<a href="https://community.sap.com/t5/c-khhcw49343/Red+Hat+Enterprise+Linux/pd-p/566117836046276697184412662459974" class="lia-product-mention" data-product="304-1">Red Hat Enterprise Linux</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/SUSE+Linux+Enterprise+Server/pd-p/68020287236497694019600446793069" class="lia-product-mention" data-product="305-1">SUSE Linux Enterprise Server</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/SAP+Women+in+Tech/pd-p/5e61e027-661e-4c66-91ef-4e6fa20c40f6" class="lia-product-mention" data-product="1164-1">SAP Women in Tech</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/c-khhcw49343/SAP+Integration+Suite/pd-p/73554900100800003241" class="lia-product-mention" data-product="23-1">SAP Integration Suite</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/c-khhcw49343/SAP+Business+Application+Studio/pd-p/67837800100800007077" class="lia-product-mention" data-product="13-1">SAP Business Application Studio</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/10779">@Muthumayandi_Yadava</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/39302">@Subramanian</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1387241">@Sisn</a><SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/121481">@YejinYun</a><SPAN>&nbsp;</SPAN></P> 2024-05-11T15:55:48.753000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/configuration-as-code-cac-with-destinations/ba-p/13699003 Configuration as code (CaC) with destinations. 2024-05-13T12:54:57.123000+02:00 quovadis https://community.sap.com/t5/user/viewprofilepage/user-id/743 <H1 id="toc-hId-865494464">Configuration as code (CaC) with destinations.</H1><P>Destinations are very handy and powerful mechanism to facilitate access to target systems and devices.</P><P>When it comes to SAP BTP destinations, the idea is to manage both <STRONG>subaccount</STRONG> and <STRONG>instance</STRONG> level destinations (and/or their certificates) as<SPAN>&nbsp;</SPAN><STRONG>shared</STRONG><SPAN>&nbsp;</SPAN>configuration resources on a provider subaccount level.</P><P>That way, the destinations configurations can be stored as versioned assets in a source repository and need to be maintained only once per provider, thus, without incurring application runtime tie-in.</P><P>Last but not least, BTP destination service is used as a self-configuration tool.</P><H2 id="toc-hId-798063678"><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#configuration-as-code-cac-quovadis-master" target="_blank" rel="noopener nofollow noreferrer">Configuration as code with SAP BTP destination service</A></H2><P>&nbsp;</P><TABLE border="1"><TBODY><TR><TD>Table of Contents<OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#cac-dest" target="_blank" rel="noopener nofollow noreferrer">Configuration as code with SAP BTP destination service.</A></LI><OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#create-dest-service" target="_blank" rel="noopener nofollow noreferrer">create shared destination service instance and binding</A>.</LI></OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#create-bootstrap" target="_blank" rel="noopener nofollow noreferrer">Provision bootstrap destinations.</A></LI><OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#get-dest-credentials" target="_blank" rel="noopener nofollow noreferrer">retrieve destination service credentials from binding</A>.</LI><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#create-bootstrap-payload" target="_blank" rel="noopener nofollow noreferrer">describe bootstrap destination definitions.</A></LI><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#apply-payload" target="_blank" rel="noopener nofollow noreferrer">create bootstrap destinations on subaccount</A>.</LI></OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#configure-dest" target="_blank" rel="noopener nofollow noreferrer">Configure destination resources.</A></LI><OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#dynamic_dest" target="_blank" rel="noopener nofollow noreferrer">dynamic_dest route with managed approuter</A>.</LI><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#cloud-sdk" target="_blank" rel="noopener nofollow noreferrer">SAP Cloud SDK built-in destinations</A>.</LI></OL><LI><A href="https://gist.github.com/ptesny/aa8bc30ce043e1e11c145fe15278db62#documentation" target="_blank" rel="noopener nofollow noreferrer">Documentation.</A></LI></OL></TD></TR></TBODY></TABLE><P>PS.</P><P><STRONG>Bootstrap destinations definitions. </STRONG></P><P>Even, if there is no intrinsic BTP CLI command to assist in creation of destinations from service bindings, this can be achieved quite easily with a bit of jq gimmick by applying service binding credentials to a json payload template, for instance:</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "init_data": { "subaccount": { "destinations": [ { "Description": "dest-httpbin", "Type": "HTTP", "clientId": "sb-clone12847c4c89544b4f9234b26ede429f62!b282590|destination-xsappname!b62", "HTML5.DynamicDestination": "true", "HTML5.Timeout": "60000", "Authentication": "OAuth2ClientCredentials", "Name": "dest-httpbin", "tokenServiceURL": "https://&lt;subdomain&gt;.authentication.us10.hana.ondemand.com/oauth/token", "ProxyType": "Internet", "URL": "https://httpbin.org", "tokenServiceURLType": "Dedicated", "clientSecret": "&lt;clientSecret&gt;" }, { "Description": "SAP Destination Service APIs", "Type": "HTTP", "clientId": "sb-clone12847c4c89544b4f9234b26ede429f62!b282590|destination-xsappname!b62", "HTML5.DynamicDestination": "true", "HTML5.Timeout": "60000", "Authentication": "OAuth2ClientCredentials", "Name": "destination-service", "tokenServiceURL": "https://&lt;subdomain&gt;.authentication.us10.hana.ondemand.com/oauth/token", "ProxyType": "Internet", "URL": "https://destination-configuration.cfapps.us10.hana.ondemand.com/destination-configuration/v1", "tokenServiceURLType": "Dedicated", "clientSecret": "&lt;clientSecret&gt;" } ], "certificates": [ ], "existing_certificates_policy": "update", "existing_destinations_policy": "update" } } }</code></pre><P>&nbsp;</P><P>Alternatively, one could resort to using SAP Cloud SDK built-in <A href="https://sap.github.io/cloud-sdk/docs/js/features/connectivity/destinations#service-binding-environment-variables" target="_self" rel="nofollow noopener noreferrer">service binding destinations</A>.</P><P>The below nodejs code snippet demonstrates how to leverage&nbsp;SAP Cloud SDK with its service binding destinations with the likes of service manager and destinations services.</P><pre class="lia-code-sample language-yaml"><code>apiVersion: serverless.kyma-project.io/v1alpha2 kind: Function metadata: name: {{ .Values.services.srv.name }} labels: {{- include "app.labels" . | nindent 4 }} app: {{ .Values.services.srv.name }} spec: runtime: {{ .Values.services.srv.runtime }} # runtimeImageOverride: {{ .Values.services.srv.runtimeImageOverride }} source: inline: dependencies: | { "name": "{{ .Values.services.srv.name }}", "version": "0.0.1", "dependencies": { "axios":"latest" ,"debug": "latest" ,"@sap/xsenv": "latest" ,"@sap-cloud-sdk/http-client": "latest" ,"@sap-cloud-sdk/connectivity": "latest" ,"@sap-cloud-sdk/resilience": "latest" ,"async-retry": "latest" } } source: | const debug = require('debug')('{{ .Values.services.srv.name }}:function'); const NOT_FOUND = 'Not Found'; const xsenv = require('@sap/xsenv'); const services = xsenv.getServices({ sm: { label: 'service-manager', name: 'saas-sm' } , dest: { label: 'destination' } }); console.log('saas-sm: ', services.sm); const readServices = xsenv.readServices(); console.log('readServices: ', readServices); const httpClient = require('@sap-cloud-sdk/http-client'); const cloudSdkConnectivity = require('@sap-cloud-sdk/connectivity'); const { retrieveJwt, decodeJwt, Destination } = require('@sap-cloud-sdk/connectivity'); const { setGlobalLogLevel, createLogger } = require('@sap-cloud-sdk/util'); const { retry } = require ('@sap-cloud-sdk/resilience'); const { resilience } = require ('@sap-cloud-sdk/resilience'); const ResilienceOptions = { retry: 10, circuitBreaker: false, timeout: 300*1000 // 5 minutes in milliseconds }; const retryme = require('async-retry'); setGlobalLogLevel('debug'); const logger = createLogger('http-logs'); module.exports = { main: async function (event, context) { const req = event.extensions.request; const message = `Hello World` + ` from the Kyma Function ${context['function-name']}` + ` running on ${context.runtime}!` + ` with the request headers ${JSON.stringify(req.headers,0,2)}`; console.log(message); if (typeof req.path !== undefined) { console.log('path: ', JSON.stringify(req.path,0,2)) } if (typeof req.params !== undefined) { console.log('params: ', JSON.stringify(req.params,0,2)) } if (typeof req.url !== undefined) { console.log('url: ', JSON.stringify(req.url,0,2)) } if (typeof req.authInfo !== undefined) { console.log('authInfo: ', JSON.stringify(req.authInfo,0,2)) } const { pathname } = new URL(req.url || '', `https://${req.headers.host}`) console.log('pathname: ', pathname) const url = require("url"); var url_parts = url.parse(req.url); console.log(url_parts); console.log(url_parts.pathname); // returns an array with paths let path_array = req.url.match('^[^?]*')[0].split('/').slice(1); console.log(path_array) console.log(req.url.match('^[^?]*')[0]) if (!path_array?.length) return 'Please use an API verb'; const actions = [ { name: 'offerings', verb: 'service_offerings', dest: 'saas-sm', url: '/v1/' }, { name: 'plans', verb: 'service_plans', dest: 'saas-sm', url: '/v1/' }, { name: 'instances', verb: 'service_instances', dest: 'saas-sm', url: '/v1/' }, { name: 'bindings', verb: 'service_bindings', dest: 'saas-sm', url: '/v1/' }, { name: 'instanceDestinations', verb: 'instanceDestinations', dest: 'faas-dest-x509', url: '/destination-configuration/v1/' }, { name: 'subaccountDestinations', verb: 'subaccountDestinations', dest: 'faas-dest-x509' , url: '/destination-configuration/v1/' } ]; const action = actions.find( ({ name }) =&gt; name === path_array[1] ) console.log('action found: ', action) if (path_array[0] == 'srv' &amp;&amp; action !== undefined) { path_array = req.url.match('^[^?]*')[0].split('/').slice(2); console.log('path_array: ', path_array) const queryString = req.query; console.log('queryString: ', queryString) const urlParams = new URLSearchParams(queryString); const params = req.params; console.log('params: ', params) try { // https://sap.github.io/cloud-sdk/docs/js/features/connectivity/destinations#service-binding-environment-variables const endpoint = path_array[1] !== undefined ? '/' + path_array[1] : ''; console.log(endpoint) let res = await httpClient.executeHttpRequest({ destinationName: action.dest }, { method: 'GET', url: action.url + action.verb + endpoint }); return res.data; } catch (err) { console.log(err.stack); return err.message; } } } } scaleConfig: maxReplicas: 5 minReplicas: 3 resourceConfiguration: function: profile: S env: ## https://kyma-project.io/docs/kyma/latest/05-technical-reference/00-configuration-parameters/svls-02-environment-variables/#node-js-runtime-specific-environment-variables - name: FUNC_TIMEOUT ## Specifies the number of seconds in which a runtime must execute the code. value: '1800' - name: REQ_MB_LIMIT ## payload body size limit in megabytes. value: "10" - name: DEBUG value: '{{ .Values.services.srv.name }}:*' - name: SERVICE_BINDING_ROOT value: /bindings secretMounts: - secretName: {{ .Values.services.sm.bindingSecretName }} mountPath: "/bindings/saas-sm" - secretName: {{ .Values.services.dest.bindingSecretNamex509 }} mountPath: "/bindings/faas-dest-x509"</code></pre><P>&nbsp;</P> 2024-05-13T12:54:57.123000+02:00 https://community.sap.com/t5/technology-blogs-by-members/ringfencing-amp-decoupling-s-4hana-with-enterprise-blockchain-and-sap-btp/ba-p/13639467 RingFencing & DeCoupling S/4HANA with Enterprise Blockchain and SAP BTP - Ultimate Cyber Security πŸš€ 2024-05-14T13:56:58.227000+02:00 AndySilvey https://community.sap.com/t5/user/viewprofilepage/user-id/1397601 <P>tl;dr</P><P>As part of S/4HANA Transformation Programs, Security, Accessibility, Resilience are being re-imagined.</P><P>The going in position for a lot of S/4HANA Transformation Programs includes the Cyber Security principles:</P><UL><LI>Only Employees will have direct access to the Digital Core as End Users</LI><LI>There will be no direct access to the Digital Core by 3rd Party Applications</LI></UL><P>The first principle, 'Only Employees will have direct access to the Digital Core as Users', decoupling the SAP system for External Users has been an architectural design pattern for more than a decade.&nbsp; For example, due to the extremely sensitive and confidential nature of Product LifeCycle Management Data, 13 years ago SAP were advocating, <A href="https://help.sap.com/docs/SAP_ERP/38b3b859b68e464c90164894f04503e9/467980226c3b4a17ab1181a29a0a2de5.html?q=SAP%20PLM%20DMZ" target="_self" rel="noopener noreferrer">building an empty SAP PLM system in the DMZ</A> which would use RFC's to communicate with the actual SAP PLM system in the Secure Network Zone:</P><P>&nbsp;</P><P><A href="https://help.sap.com/docs/SAP_ERP/38b3b859b68e464c90164894f04503e9/467980226c3b4a17ab1181a29a0a2de5.html?q=SAP%20PLM%20DMZ" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1715237780340.png" style="width: 810px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107844iB7A8E744542D4B5C/image-dimensions/810x593?v=v2" width="810" height="593" role="button" title="AndySilvey_0-1715237780340.png" alt="AndySilvey_0-1715237780340.png" /></span></A></P><P>&nbsp;</P><P>The beauty of this design is that it decouples End User Access from the core SAP PLM system, therefore enhancing the security protection of the SAP PLM system.&nbsp;</P><P>Today's equivalent of that is to put the SAP Build Work Zone Launchpad in front of the S/4HANA Digital Core.</P><P>That is fine, that means the Digital Core is digitally decoupled for End Users,&nbsp; but what about Machine to Machine, Application to Application, 3rd Party Applications which want to get Data from the S/4HANA ?</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109763i172CAB6D70FBDD6E/image-size/large?v=v2&amp;px=999" role="button" title="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io .jpg" alt="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io</span></span></P><P>&nbsp;</P><P>When a 3rd Party Company calls an API on your S/4HANA Digital Core, you are replicating your Data to that 3rd Party Company.</P><P>How can the S/4HANA Digital Core be decoupled when 3rd Party Applications need to get Data from the S/4HANA, how can the&nbsp;S/4HANA Digital Core be architected in such a way that there are no Machine to Machine calls directly to the S/4HANA for the purpose of getting Data ?</P><P>As elaborated in more detail in a <A href="https://community.sap.com/t5/technology-blogs-by-members/b2b-business-processes-ultimate-cyber-data-security-with-blockchain-and-sap/ba-p/13680992" target="_self">previous blog</A>, API's enable your Data to be replicated to 3rd Party Applications which can also be in 3rd Party Partner Companies, and this brings a set of problems centered around:</P><P style=" padding-left : 30px; "><STRONG>Trust between Partners:&nbsp;</STRONG>The more Partners in a Business Transaction or Business Process, the less trust there is between Partners. This is a very simple graph, as the number of Partners in a Business Transaction or Business Process goes up, so the trust between the Partners goes down. What is trust in a Business Transaction or Business Process, doing what you said you would, data, instruction, confirmation. I will deliver the parcel to the address you gave me, but what if somebody in my Team changes the delivery address for their own benefit ?</P><P style=" padding-left : 30px; "><STRONG>Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- When your S/4HANA sends the Data to your Business Partner's System we need to make sure that the Data cannot be modified or destroyed and therefore protect the originality and integrity of the Data</P><P style=" padding-left : 30px; "><STRONG>Replicating &amp; Integrating the Data from your S/4HANA to your Business Partner's System and at the same time Protect the Originality &amp; Integrity of the Data</STRONG><SPAN>&nbsp;</SPAN>- we need to get the Data from the S/4HANA to the Business Partner's System and we need to be sure, to have surety that the Data which arrives at the Business Partner's System is the same Data as was sent from your S/4HANA. If this Data can be&nbsp; changed in any way, we won't be able to<SPAN>&nbsp;</SPAN><EM><STRONG>trust</STRONG></EM><SPAN>&nbsp;</SPAN>the Business Processes and Insights which are depending on that Data. And so, in the activity of moving the Data we need to make sure that that piece of Data cannot be modified or destroyed&nbsp;and therefore protect the originality and integrity of the Data</P><P>and it doesn't end there, it's often the case that a 3rd Party Organisation will be getting Data directly from your S/4HANA (as the Source) or posting Data to your S/4HANA (as the Target), in both cases it could be an API which through your Integration Technologies is ultimately exposed to the Internet and where the system calling the API needs to have a User on your S/4HANA.</P><P>As ever, the pattern is the same, the theme is the same,</P><P style=" padding-left : 30px; "><STRONG>it's all about the Data</STRONG></P><P style=" padding-left : 30px; "><STRONG>what are the security, sensitivity, confidentiality, availability, criticality requirements of the Data</STRONG></P><P>Ring Fencing S/4HANA raises the Cyber Security by reducing the attack surface.</P><P>The most secure way is with Enterprise Blockchain as a Data Ring Fence around the S/4HANA Digital Core, therefore digitally decoupling access and integration of the S/4HANA Data from other Applications.</P><P>The Enterprise Blockchain is:</P><P style=" padding-left : 30px; ">. Ring Fencing of the S/4HANA&nbsp;</P><P style=" padding-left : 30px; ">. S/4HANA does not expose API's directly to any 3rd Party Companies</P><P style=" padding-left : 30px; ">. A Secure Store of Data</P><P style=" padding-left : 30px; ">. A Secure Communication Channel for Data</P><P style=" padding-left : 30px; ">. A Common Shared Single Source of Truth in your Organisation and across Organisations</P><P style=" padding-left : 30px; ">. The next generation Data Integration is about having a Common Shared Single Source of Truth</P><P>The S/4HANA Ring Fencing with Enterprise Blockchain as a shared single source of truth could involve the Enterprise Blockchain running on your SAP BTP Kyma Runtime and at the same time running on Kubernetes Servers in your Business Partner's Data Center:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108033iDE3DDBBCDEF532AC/image-size/large?v=v2&amp;px=999" role="button" title="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io .jpg" alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io</span></span></P><P>&nbsp;</P><P>Or alternatively the S/4HANA Ring Fencing with Enterprise Blockchain could be where the Enterprise Blockchain is running on your SAP BTP Kyma Runtime and your 3rd Party Business Partner Company reads the Data from your Enterprise Blockchain on your SAP&nbsp; BTP Kyma Runtime as a shared common single source of truth for the Data:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="S4HANA RingFenced by your own Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108035iACB5FCB38784CA5A/image-size/large?v=v2&amp;px=999" role="button" title="S4HANA RingFenced by your own Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io .jpg" alt="S4HANA RingFenced by your own Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">S4HANA RingFenced by your own Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io</span></span></P><P>&nbsp;</P><P>Read on for the full story... <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></P><P>&nbsp;</P><P>&nbsp;<STRONG>Introduction</STRONG></P><P>The reason I am so interested in this is I have been securing availability and accessibility of SAP systems for the last 25 years, and back in 2013 I wrote this blog about "<A href="https://community.sap.com/t5/technology-blogs-by-members/alternatives-for-securing-internet-facing-sap-applications/ba-p/13022930" target="_self">Alternatives for Securing Internet Facing Applications</A>".</P><P>There is so much to talk about on this subject, let's get in to it. Back in 2013 at a Customer, we were looking at Ring Fencing critical systems.</P><P>Back then the focus was on DeCoupling the SAP system where End User access was required from people coming in from the Internet, infact the reasons for the RingFencing were centered around:</P><P>&nbsp;</P><UL><LI>Access - Authentication &amp; Authorisation&nbsp;</LI><LI>Storage of Data</LI><LI>Communication Channels</LI><LI>DeCoupling especially for Internet Collaboration</LI></UL><P>&nbsp;</P><P>The DeCoupling for Internet Collaboration was based around SAP's <A href="https://help.sap.com/docs/SAP_ERP/930f133a36a843318dc3347afe00a9d6/19fb1caa59874deb8813bf399de8436f.html?version=6.18.latest" target="_self" rel="noopener noreferrer">SAP PLM Reference Architecture</A>,</P><P><A href="https://help.sap.com/docs/SAP_ERP/930f133a36a843318dc3347afe00a9d6/19fb1caa59874deb8813bf399de8436f.html?version=6.18.latest" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1715242480140.png" style="width: 794px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107868i0C00E16A2EB6E3C7/image-dimensions/794x122?v=v2" width="794" height="122" role="button" title="AndySilvey_0-1715242480140.png" alt="AndySilvey_0-1715242480140.png" /></span></A></P><P>and the <A href="https://help.sap.com/docs/SAP_ERP/38b3b859b68e464c90164894f04503e9/467980226c3b4a17ab1181a29a0a2de5.html?q=SAP%20PLM%20DMZ" target="_self" rel="noopener noreferrer">SAP PLM Technical System Landscape recommendation</A>:</P><P><A href="https://help.sap.com/docs/SAP_ERP/38b3b859b68e464c90164894f04503e9/467980226c3b4a17ab1181a29a0a2de5.html?q=SAP%20PLM%20DMZ" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_1-1715242557723.png" style="width: 807px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107870i72E499A54D343B32/image-dimensions/807x585?v=v2" width="807" height="585" role="button" title="AndySilvey_1-1715242557723.png" alt="AndySilvey_1-1715242557723.png" /></span></A></P><P>&nbsp;</P><P>Fast forward to today, and SAP Customers have the luxury that the worry of securing End User Internet Access to their SAP systems is outsourced to SAP through the implementation of the <A href="https://help.sap.com/docs/build-work-zone-standard-edition/sap-build-work-zone-standard-edition/what-is-sap-build-work-zone-standard-edition" target="_self" rel="noopener noreferrer">SAP BTP Build Work Zone Launchpad</A>. It should not go unnoticed that when you implement the SAP BTP Build Work Zone Launchpad Service, you also don't have to care for Web Access Firewalls and the Security of Internet Access.</P><P>But what about API's, what about System to System, Machine to Machine ? What about Integrations ? What about when Non-SAP Applications in your Company or other Companies need data from the S/4HANA ?</P><P>S/4HANA has a rich collection of API's which is always growing, but, should Applications from your Partner Companies call API end points on the S/4HANA Digital Core ?</P><P>Should 3rd Party Applications, and 3rd Party Partner's Applications be directly accessing the Digital Core S/4HANA API's ?&nbsp;</P><P>Regardless of whether the S/4HANA is an [Any]OnPremise, S/4HANA RISE Private Cloud Edition, S/4HANA Public Cloud Edition, should 3rd Party Applications be allowed to directly call API's on your S/4HANA ?</P><P>Let's take the S/4HANA Business Partner API, should Applications from your Partner Companies be allowed/able to call this API on your Digital Core S/4HANA to retrieve changes to Business Partner Data ?</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Legacy API Integrations calling S4HANA API and Replicating Data to 3rd Party Company Applications - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107911i4605FDA55AA3DD21/image-size/large?v=v2&amp;px=999" role="button" title="Legacy API Integrations calling S4HANA API and Replicating Data to 3rd Party Company Applications - atkrypto.io.jpg" alt="Legacy API Integrations calling S4HANA API and Replicating Data to 3rd Party Company Applications - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Legacy API Integrations calling S4HANA API and Replicating Data to 3rd Party Company Applications - atkrypto.io</span></span></P><P>&nbsp;</P><P>If you have doubts or think the answer is no, then read on, there is a solution, it is very nice, and very easy, and very secure.</P><P>One of the biggest Cyber Security threats to your Data and therefore your Operations and therefore your Business, is allowing 3rd Party Applications from 3rd Party Companies to call Data from API's on your S/4HANA Digital Core, and then, replicate your Data to Servers in their Company.</P><P>As ever, the pattern is the same, the theme is the same,</P><P style=" padding-left : 30px; "><STRONG>it's all about the Data</STRONG></P><P style=" padding-left : 30px; "><STRONG>what are the security, sensitivity, confidentiality, availability, criticality requirements of the Data</STRONG></P><P>Like the other blogs in this series, this blog is going to break the subject down in to three sections:</P><P style=" padding-left : 30px; "><STRONG>Section 1.0: The What is it of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Section 2.0: The Why is it, of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Section 3.0: The How is it,&nbsp; of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain</STRONG></P><P>In case you missed them, the previous blogs in this series are here:</P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_blank">Why I love SAP and Blockchain Databases and why you should too&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_blank">SAP Enterprise Architecture: Positioning Blockchain Database as an Enterprise Technology Standard&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_blank">SAP Enterprise Architecture: Let the Use Case find the Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/oil-amp-gas-ultimate-data-security-blockchain-data-backbone-from-ot-to-sap/ba-p/13640699" target="_blank">Oil &amp; Gas - Ultimate Data Security - Blockchain Data Backbone from OT to SAP IT&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/the-what-is-the-why-to-the-how-to-of-esg-amp-sap-amp-enterprise-blockchain/ba-p/13642365" target="_blank">The What Is... The Why To... The How To... of: ESG &amp; SAP &amp; Enterprise Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/bcp-business-continuity-planning-for-sap-s-4hana-made-easy-with-enterprise/ba-p/13647824" target="_blank">BCP: Business Continuity Planning for SAP S/4HANA - made easy with Enterprise Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/trustable-ai-thanks-to-sap-ai-core-amp-sap-hana-cloud-amp-sap-s-4hana-amp/ba-p/13662822" target="_blank">Trustable AI thanks to - SAP AI Core &amp; SAP HANA Cloud &amp; SAP S/4HANA &amp; Enterprise Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><SPAN><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/iot-ultimate-data-cyber-security-with-enterprise-blockchain-and-sap-btp/ba-p/13676981" target="_blank">IoT - Ultimate Data Cyber Security - with Enterprise Blockchain and SAP BTP&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></SPAN></P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/b2b-business-processes-ultimate-cyber-data-security-with-blockchain-and-sap/ba-p/13680992" target="_blank">B2B Business Processes - Ultimate Cyber Data Security - with Blockchain and SAP BTP&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A>&nbsp;</P><P>&nbsp;</P><P><STRONG>Section 1.0: The What is it of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain</STRONG></P><P>What is RingFencing ? There is a very nice description <A href="https://fastercapital.com/content/Data-Security--Ringfencing-Your-Data--Strengthening-Cybersecurity-Measures.html" target="_self" rel="nofollow noopener noreferrer">here</A>:</P><P>&nbsp;</P><P><A href="https://fastercapital.com/content/Data-Security--Ringfencing-Your-Data--Strengthening-Cybersecurity-Measures.html" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1715261427109.png" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108043i2533B5D86CC60AAB/image-dimensions/752x280?v=v2" width="752" height="280" role="button" title="AndySilvey_0-1715261427109.png" alt="AndySilvey_0-1715261427109.png" /></span></A></P><P>&nbsp;</P><P>RingFencing is about isolating Data, away from the most important SAP system, the S/4HANA Digital Core.</P><P>DeCoupling, the word DeCoupling has a number of meanings in Enterprise IT. What we are talking about here in the case of the S/4HANA Digital Core and Data access by 3rd Party Company Applications is that we are DeCoupling the Data access away from directly on the S/4HANA, by DeCoupling we are making the S/4HANA Data indirectly accessible.</P><P>It can be thought that if we are RingFencing, or Isolating, or DeCoupling the S/4HANA Data away from the S/4HANA then we are creating another copy of the Data, another Replica of the Data, which is true, we are, and that is the same as when Data is replicated to 3rd Party Systems via API, whichever way you look at it, the ultimate goal is a Replica of the S/4HANA Data which is available and accessible to the 3rd Party Company Application for the reasons of that Application of Business Transaction.</P><P>We can replicate the Data using an S/4HANA API to the 3rd Party Company Application and lose all control of the Data and also have to deal with how to secure Authentication and Authorisation and Network Access to the API, or we can replicate to our own RingFenced isolated trusted location.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SAP S4HANA RingFenced DeCoupled Data Cyber Security Principles - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108051i720015EC6E37F61F/image-size/large?v=v2&amp;px=999" role="button" title="SAP S4HANA RingFenced DeCoupled Data Cyber Security Principles - atkrypto.io .jpg" alt="SAP S4HANA RingFenced DeCoupled Data Cyber Security Principles - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">SAP S4HANA RingFenced DeCoupled Data Cyber Security Principles - atkrypto.io</span></span></P><P>&nbsp;</P><P><STRONG>What about the Enterprise Blockchain, what is Enterprise Blockchain ?</STRONG></P><P>Enterprise Blockchain is:</P><P style=" padding-left : 30px; "><STRONG>. a Secure Store</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Communication Channel</STRONG></P><P style=" padding-left : 30px; ">. <STRONG>A Common Shared Single Source of Truth in your Organisation and across Organisations</STRONG></P><P style=" padding-left : 30px; "><STRONG>. The next generation Data Integration is about having a Common Shared Single Source of Truth</STRONG></P><P><SPAN>McKinsey &amp; Company, in their&nbsp;</SPAN><A href="https://www.mckinsey.com/featured-insights/mckinsey-explainers/what-is-blockchain" target="_self" rel="nofollow noopener noreferrer">December 2023 Featured Insights Publication</A><SPAN>, gave a beautiful description of what is unique and special about Blockchain, "</SPAN><EM>Blockchain is a secure database shared across a network of participants, where up-to-date information is available to all participants at the same time</EM><SPAN>". If we just pause for a moment and let that sink in, and think about what that means, to Business Processes, to Collaboration, to System Resilience, we start to see what is so special about Blockchain Databases and Distributed Ledger Technology.</SPAN></P><P>In these previous blogs, I made a deep dive in to what Enterprise Blockchain is and why we should be positioning it in our Enterprise Architecture:</P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_blank">Why I love SAP and Blockchain Databases and why you should too&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></P><P>&nbsp;</P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_blank">SAP Enterprise Architecture: Positioning Blockchain Database as an Enterprise Technology Standard&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></P><P style=" padding-left : 30px; "><A class="" href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_blank">SAP Enterprise Architecture: Let the Use Case find the Blockchain&nbsp;<span class="lia-unicode-emoji" title=":rocket:">πŸš€</span>&nbsp;</A></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108061i0B9C9B7C1EDECD31/image-size/large?v=v2&amp;px=999" role="button" title="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io .jpg" alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io</span></span></P><P>&nbsp;</P><P>and in a nutshell, Enterprise Blockchain is:</P><P style=" padding-left : 30px; "><EM><STRONG>. The Digital Transformation of Information Security into Cyber Security</STRONG></EM></P><P style=" padding-left : 30px; "><EM><STRONG>. The Next Generation Data Integrity, Originality, Confidentiality Protection</STRONG></EM></P><P style=" padding-left : 30px; "><STRONG>. Re-imagining Information Security</STRONG></P><P style=" padding-left : 30px; "><STRONG>. Natively, out of the box, due to its special characteristics the strongest, hardest, most resilient Enterprise Database product&nbsp;</STRONG></P><P>To wrap up this section:</P><P style=" padding-left : 30px; ">. RingFencing is about isolating and protecting Data</P><P style=" padding-left : 30px; ">. Enterprise Blockchain is about Cyber Security of Data</P><P>&nbsp;</P><P><STRONG>Section 2.0: The Why is it, of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain&nbsp;</STRONG></P><P>Why would we want to RingFence and DeCouple S/4HANA, the Digital Core from 3rd Party systems which legitimately need S/4HANA Data ?</P><P>The answer is simple, Cyber Security, Cyber Threats.</P><P>Not so long ago, the focus was on High Availability and Disaster Recovery, the biggest threat was the system going down and not coming back.</P><P>Today, things have changed, and the biggest threat is a malicious actor rendering our business Data unusable.</P><P>Today we know we can buy new servers, we know we can get a Data Center up and running, but how do we repair Data which has been maliciously rendered unusable ? Think about the <A href="https://www.ncsc.gov.uk/ransomware/home" target="_self" rel="nofollow noopener noreferrer">Ransomware</A> attack.</P><P>&nbsp;</P><P><A href="https://www.ncsc.gov.uk/ransomware/home" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1715622721595.png" style="width: 772px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109766iDE0DD72EEF3B0A4E/image-dimensions/772x336?v=v2" width="772" height="336" role="button" title="AndySilvey_0-1715622721595.png" alt="AndySilvey_0-1715622721595.png" /></span></A></P><P>&nbsp;</P><P>So what is <A href="https://fastercapital.com/content/Data-Security--Ringfencing-Your-Data--Strengthening-Cybersecurity-Measures.html" target="_self" rel="nofollow noopener noreferrer">ring fencing</A>&nbsp; and why do we need to do it ?</P><P>&nbsp;</P><P><A href="https://fastercapital.com/content/Data-Security--Ringfencing-Your-Data--Strengthening-Cybersecurity-Measures.html" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_1-1715622817849.png" style="width: 761px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109767i880EBD11FE47EB7A/image-dimensions/761x232?v=v2" width="761" height="232" role="button" title="AndySilvey_1-1715622817849.png" alt="AndySilvey_1-1715622817849.png" /></span></A></P><P>&nbsp;</P><P>Ring Fencing is about reducing exposure to Cyber Threats.</P><P>What are the biggest easiest ways that we can reduce exposure to Cyber Threat ?</P><P style=" padding-left : 30px; "><STRONG>Stop 3rd Party Companies from calling API's on the S/4HANA Digital Core.</STRONG></P><P style=" padding-left : 30px; "><STRONG>Stop publishing API's for 3rd Party Application access on the S/4HANA Digital Core.</STRONG></P><P>Stop doing this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109769iC3BBAFEE9323A8B9/image-size/large?v=v2&amp;px=999" role="button" title="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io .jpg" alt="Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Do you really want 3rd Party Companies calling APIs on your Digital Core - atkrypto.io</span></span></P><P>&nbsp;</P><P>And what's the solution ?&nbsp;&nbsp;</P><P>The solution is the Enterprise Blockchain as the Common Data Back Bone across Companies.</P><P>Instead of replicating and sending the Data to your Business Partner, you write the S/4HANA Data to the Enterprise Blockchain.</P><P>This is like pick your own strawberries, instead of sending your Partners the strawberries, you tell your Partner the strawberries are ready and which field they are in and you let your Partners pick the strawberries themselves from the Enterprise Blockchain.</P><P>S/4HANA Data Events write the Data to the Enterprise Blockchain and S/4HANA Notification Events notify the Partner that something has happened, then, instead of calling an API on your SAP S/4HANA, the Partner then calls the API of the Enterprise Blockchain and Reads the Data from there.</P><P>The Enterprise Blockchain Database software is running on your SAP BTP Kyma Runtime and in your Partner's Servers, therefore, creating natively, out of the box, the most secure and resilient common shared single source of truth. Your have a Distributed Ledger running from your SAP BTP to the Partner's Servers.</P><P>Therefore, S/4HANA Data Event Writes to the Enterprise Blockchain as the Common Shared Single Source of Truth across the Organisations, and the S/4HANA Notification Event notifies the Partner that something has happened and that they should call the Enterprise Blockchain API to get the Data of what has happened.</P><P>And as will be explained later in the blog, it's not only about the Enterprise Blockchain being a common shared source of truth across organisations, it's about digitally decoupling the S/4HANA from 3rd Party System Integrations and gradually ring fencing the S/4HANA away from being directly accessed by 3rd Party Systems as it is today with API's.</P><P>Imagine, as described in the previous blog, when we<SPAN>&nbsp;</SPAN><EM><A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_self">let the Use Case find the Enterprise Blockchain</A></EM>, we have a Business Requirement, a Business Demand, to make Data for B2B Business Process the safest it can be, the most trustable that it can be.</P><P>When we look in our Enterprise Technology Standards, and we look for the Technology Standard in our Enterprise Portfolio which is<SPAN>&nbsp;</SPAN><EM><A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_self">positioned to bring the strongest protection to Data, we find the Enterprise Blockchain</A></EM>.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Comparison Enterprise Blockchain Database and Traditional Legacy Database - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109784i1ECEA63BF0102C5B/image-size/large?v=v2&amp;px=999" role="button" title="Comparison Enterprise Blockchain Database and Traditional Legacy Database - atkrypto.io .png" alt="Comparison Enterprise Blockchain Database and Traditional Legacy Database - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Comparison Enterprise Blockchain Database and Traditional Legacy Database - atkrypto.io</span></span></P><P>&nbsp;</P><P>In the previous blogs, we have discussed in detail about the special characteristics of Enterprise Blockchain and just why it natively out of the box protects the integrity of data to a level that legacy database products cannot do, in a nutshell....</P><P><SPAN>B2B Business Processes are about Data</SPAN></P><P><SPAN>B2B Business Processes are about the Data that goes from your S/4HANA outside the boundaries of your Company and your Network and to Partner Company's Applications and Networks and Databases.</SPAN></P><P><SPAN>This means B2B Business Processes are about Data and the Data depends on a Database or a Datastore</SPAN></P><P><SPAN>What kind of Database do&nbsp;B2B Business Processes Data need ? What capabilities does the Database for the B2B Business Processes&nbsp; Data need to have ?</SPAN></P><P><SPAN>1. It must not be possible to modify the Data in the Database ]- the Database needs to be immutable</SPAN></P><P><SPAN>2. The Data in the Database, the integrity and originality of that Data must be protected to the highest level that is technically possible</SPAN></P><P><SPAN>3. The Data must be available with the highest availability, the Database must be resilient to attack</SPAN></P><P><SPAN>4. The Database must be running simutaneously in your DataCenter and your Business Partner's DataCenter</SPAN></P><P>5. S/4HANA must not expose any API's to Business Partner Companies</P><P><SPAN>When we look in our&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_self">Enterprise Technology Standards we find 1 Technology Standard</A>&nbsp;in the Enterprise which has those capabilities, and that is..... Enterprise Blockchain</SPAN></P><P><SPAN>Enterprise Blockchain ticks those boxes...</SPAN></P><P>&nbsp;<SPAN>Immutable - tick that box</SPAN></P><P>&nbsp;<SPAN>Integrity must be protected to the highest level - tick that box, thanks to the Enterprise Blockchain Hash Mechanism and the Enterprise Blockchain Consensus Mechanism</SPAN></P><P>&nbsp;<SPAN>Highest level of resilience and availability - tick that box thanks to the Distributed and Decentralised nature of the Enterprise Blockchain&nbsp;</SPAN>DeCouples S/4HANA from the process, no need to S/4HANA API's to be exposed to 3rd Party Business Partner's Applications</P><P><SPAN>This is why, Enterprise Blockchain is the enabler of trustable outcomes from Enterprise B2B Business Processes.</SPAN></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="atkrypto.io what is a blockchain" style="width: 930px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109785i88B9E15917C59179/image-size/large?v=v2&amp;px=999" role="button" title="atkrypto.io what is a blockchain.jpg" alt="atkrypto.io what is a blockchain" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">atkrypto.io what is a blockchain</span></span></P><P>&nbsp;</P><P>But there's more than that, B2B Business Processes can produce a lot of data, and the volumes of data can be big.</P><P>And this is why, in this blog we take the Enterprise Blockchain Technology story one level further and we introduce the:</P><P style=" padding-left : 30px; ">Enterprise Blockchain Wallet</P><P style=" padding-left : 30px; ">Off-Chain Data Storage</P><P>In the Enterprise Blockchain Platforms, the Enterprise Blockchain Wallet is used for Off-Chain storage of big data and in the following paragraphs we will explain why.</P><P>What is the Enterprise Blockchain Wallet, and what is Off-Chain Data Storage and why would we use them and why do we need them ?</P><P>As we have explained<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_self">in a previous blog</A>, the Enterprise Blockchain Database, the Distributed Ledger, can be looked at simply as a Database Table (which is replicated and synchronised across multiple Servers) and in principle it stores the Data like this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Blockchain is a very simple form of database atkrypto.io" style="width: 896px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109786i522F51693A60D613/image-size/large?v=v2&amp;px=999" role="button" title="Blockchain is a very simple form of database atkrypto.io .jpg" alt="Blockchain is a very simple form of database atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Blockchain is a very simple form of database atkrypto.io</span></span></P><P>&nbsp;</P><P>This is fine, and suited to what we call<SPAN>&nbsp;</SPAN><A href="https://aws.amazon.com/compare/the-difference-between-structured-data-and-unstructured-data/#:~:text=Structured%20data%20is%20data%20that,files%20and%20large%20text%20documents." target="_self" rel="nofollow noopener noreferrer">Structured Data</A>, and as AWS nicely describe,<SPAN>&nbsp;</SPAN><A href="https://aws.amazon.com/what-is/structured-data/" target="_self" rel="nofollow noopener noreferrer">Structured Data</A><SPAN>&nbsp;</SPAN>is information like words and numbers. This kind of data is perfectly suited to being stored in an Enterprise Blockchain Database and also a legacy Database. Examples of the data would Names, Addresses, Phone Numbers, Product Information etc.</P><P>But, Payroll can produce a lot of Data, and in large volumes which would&nbsp;be too big to be stored on the Enterprise Blockchain Database itself.</P><P>And that's ok, Enterprise Blockchain Platforms are ready for that, and have been designed to store both Structured Data and Data which is in files which are so big that they cannot be stored in the Enterprise Blockchain Database itself, for example the photographs from a Waste Truck's onboard camera proving that waste was responsibly tipped in the correct location and taken at the same time as recording GPS location coordinates proving the location of the Waste Truck.</P><P>So, if we can't store the large photographs files in large quantities to the Enterprise Blockchain Database, then how, in an Enterprise Blockchain Platform do we store large files of Data ?</P><P>Voila.... bring in the Enterprise Blockchain Platform Wallet. The best Enterprise Blockchain Platform products include what is called the Enterprise Blockchain Platform Wallet, or to make it shorter, the Enterprise Blockchain Wallet.</P><P>The Enterprise Blockchain Wallet enables us to store large Data, like large Files safely and securely off the chain, or '<A href="https://www.bitdegree.org/crypto/learn/crypto-terms/what-is-off-chain" target="_self" rel="nofollow noopener noreferrer">Off-Chain</A>'.&nbsp;</P><P>But if we store the large Data files Off-Chain in the Enterprise Blockchain Wallet, then how do we also have them some how on the Enterprise Blockchain Database ?</P><P>The way this works is elegant, in any decent Enterprise Blockchain Platform, the Enterprise Blockchain Wallet location is completely configurable, and could be anywhere from<SPAN>&nbsp;</SPAN><A href="https://www.sap.com/norway/products/technology-platform/hana/features/cloud-data-lake.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud (Data Lake)</A>, or for example&nbsp;multiple hyperscaler object stores, such as Amazon S3, OSS (Alicloud Object Storage<BR />Service), SAP HANA Cloud, Data Lake, and Azure Blob Storage.</P><P>The configurable Enterprise Blockchain Wallet of the Enterprise Blockchain Platform looks like this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain Platform - Enterprise Blockchain Wallets - Configurable Enterprise Wallets - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109787i908D88B47AA86B97/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain Platform - Enterprise Blockchain Wallets - Configurable Enterprise Wallets - atkrypto.io .jpg" alt="Enterprise Blockchain Platform - Enterprise Blockchain Wallets - Configurable Enterprise Wallets - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain Platform - Enterprise Blockchain Wallets - Configurable Enterprise Wallets - atkrypto.io</span></span></P><P>&nbsp;</P><P>Ok, so we've got the large volumes of Data stored in the (configurable) Enterprise Blockchain Wallet, but what about securing the Data ? Obviously the Enterprise Blockchain Wallet storage location has built in security, for example the SAP HANA Cloud, the AWS S3 Buckets, but we need more than the out of the box security of these products, the reason we are using the Enterprise Blockchain Database is because of the amazing security strengths that it natively out of the box has, and so, what about the Enterprise Blockchain Wallet, doesn't the Enterprise Blockchain Platform have some cool super hard way of protecting the data in the Enterprise Blockchain Wallet ?</P><P>Well yes it does, this is the magic of Enterprise Blockchain Database 'Off-Chain' storage in the Enterprise Blockchain Wallet. This is so unique to Blockchain Technologies.</P><P>What happens is this, when store data in the Enterprise Blockchain Wallet, the Enterprise Blockchain Platform software runs a hash algorithm over the data that we have stored and the data, and<SPAN>&nbsp;</SPAN><A href="https://codesigningstore.com/what-is-hashing-algorithm-how-it-works#:~:text=In%20cryptography%2C%20hashing%20is%20a,output%20of%20the%20same%20length." target="_self" rel="nofollow noopener noreferrer">the large file gets hashed</A>:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_8-1715623249902.png" style="width: 784px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109780i6359638B6E44B57D/image-dimensions/784x232?v=v2" width="784" height="232" role="button" title="AndySilvey_8-1715623249902.png" alt="AndySilvey_8-1715623249902.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P>The data or the file in the Enterprise Blockchain Wallet gets hashed, and then, that hash is stored in the Enterprise Blockchain Database.</P><P>This means we now have a unique hash of that data or file, and if anybody or anything makes even the tiniest teeniest change to that data or file, next time we run a hash over that data or file the result will be different that the original hash which is safely stored in the Enterprise Blockchain Database and this is how we will know that the data has been changed and we cannot trust the Data and therefore we cannot use it for our Enterprise Business Processes.</P><P>On the other hand, if just before we load the data in to the SAP Enterprise Applications, eg SAP Asset Performance Management and SAP S/4HANA,&nbsp; from the Enterprise Blockchain Wallet, if we run a hash over the data and the hash result is the same as we have in the Enterprise Blockchain Database, then we will know we can trust the Data and we can use it in our SAP Applications and we will have trustable Data.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain Wallet Data Hashes Stored in the Enterprise Blockchain Database - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109788i3271545F050395A2/image-size/large?v=v2&amp;px=999" role="button" title="Enterprise Blockchain Wallet Data Hashes Stored in the Enterprise Blockchain Database - atkrypto.io .jpg" alt="Enterprise Blockchain Wallet Data Hashes Stored in the Enterprise Blockchain Database - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain Wallet Data Hashes Stored in the Enterprise Blockchain Database - atkrypto.io</span></span></P><P>&nbsp;</P><P><STRONG>And this is why, for all of these reasons,&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Ring Fencing S/4HANA Digital Core&nbsp; depends on Data being stored in the Enterprise Blockchain</STRONG></P><P>&nbsp;</P><P>But that's not the end of the Ring Fencing need Enterprise Blockchain.&nbsp;</P><P>As we showed at the beginning of the blog in this picture:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109789iE2C8DF277B4A36A2/image-size/large?v=v2&amp;px=999" role="button" title="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io .jpg" alt="S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">S4HANA RingFenced by Enterprise Blockchain S4HANA does not expose any APIs directly to 3rd Party Companies Ultimate Cyber Security - atkrypto.io</span></span></P><P>&nbsp;</P><P>As the picture shows, we have an Enterprise Blockchain Database Tenant installed on a Server Host at the in your DataCenter, in your Network on your SAP BTP Kyma Service AND we have an Enterprise Blockchain Database Tenant installed on your B2B Business Partner's Network, if they are a SAP Customer then like you they can put it on the SAP BTP Kyma Service, if not they can run it on Kubernetes.</P><P>The consequence of this is that we have a distributed Enterprise Blockchain Database table which stretches from your DataCenter and Network where your S/4HANA is writing Data to it and stretches&nbsp; all the way across the Network to your Business Partner's DataCenter.</P><P>This means we have Ring Fenced S/4HANA with Enterprise Blockchain Data Protection from the source from your S/4HANA to the target your B2B Business Partner's It infrastructure enabling the trusted resilient reliable Business Processes to be completed.</P><P>At the same time, we are not exposing S/4HANA or the API's on the S/4HANA to any 3rd Party Applications.</P><P>We have Ring Fenced and&nbsp; digitally decoupled the S/4HANA Data and Access from the Business Process.</P><P>And this is why we say, Enterprise Blockchain is a Secure Communication Channel, because instead of integrating Applications sending and replicating Data across Networks, we are sharing the Data across the Enterprise Blockchain and the Enterprise Blockchain is the Secure Communication Channel.</P><P>To conclude this section, the<SPAN>&nbsp;</SPAN><EM>Why to, B2B Ring Fencing S/4HANA and Enterprise Blockchain</EM>, B2B Business Process Data needs to safely replicated and trustable.</P><P>Enterprise Blockchain, due to its native super strong security strength when used as a store of Data enables B2B Business Processes to be both Secure, and Trustable.</P><P><SPAN>And as we will see in the next section, it's not only about the Enterprise Blockchain being a common shared source of truth across Organisations, it's about Ring Fencing and digitally decoupling the S/4HANA and removing the attack surface from 3rd Party System Integrations and gradually ring fencing the S/4HANA away from being directly accessed by 3rd Party Systems as it is today with API's.</SPAN></P><P>&nbsp;</P><P><SPAN><STRONG>Section 3.0: The How is it,&nbsp; of RingFencing and DeCoupling S/4HANA, and Enterprise Blockchain</STRONG></SPAN></P><P>The goal of this blog was to show how instead of using the legacy fire and forget approach of replicating data to 3rd Party Business Partners, the Enterprise Blockchain can be deployed as a common shared single source of truth running, with an Enterprise Blockchain Tenant running close to your S/4HANA and another Enterprise Blockchain Tenant running close to your Business Partner's Application. Thus Ring Fencing and Digitally DeCoupling S/4HANA Digital Core and bringing the highest level of Cyber Security and attacked surface reduction.</P><P>In this section of the blog we will show all of the possible potential Technical Solution Architectures which will enable you to implement this next generation approach to sharing Data with the highest level of Cyber Security already today.</P><P>As described above one of the many beauties of this approach is your S/4HANA writes to the Enterprise Blockchain and your Business Partner's Application reads from the same Enterprise Blockchain. This achieves a number of things including:</P><P>. Total Control - you have total control over the Data you are sharing with the Business Partner, and you know that as long as your Business Partner's Application reads the Data from the common shared source, the Enterprise Blockchain</P><P>. Ultimate Cyber Security - then you know the maximum has been done to minimise the S/4HANA attack surface and the chance for Cyber Security risks and the maximum has been done to protect originality, integrity, and confidentiality of the Data</P><P>. S/4HANA Ring Fenced and&nbsp; Digitally DeCoupled from the Business Process - and on top of this, the S/4HANA has been digitally disconnected from the Business Process, because no longer do any 3rd Party Applications directly call API's on the S/4HANA</P><P>In the Technical Solution Archecture there would be two main ways for getting the data from the S/4HANA and writing it to the Enterprise Blockchain, these would be:</P><P>. API's</P><P>. Events</P><P>In these Technical Solution Architecture examples we will prioritise using S/4HANA Events to write the Data to the Enterprise Blockchain, we will be sending the Event Notification and the Event Payload, we could of course draw the same Technical Solution Architecture with API's, but we prefer the Events for the simplicity and reduced call backs to the S/4HANA and therefore making the S/4HANA more Ring Fenced and Digitally DeCoupled and therefore, enabling the S/4HANA to be protected to the higher security level and exposed to less Cyber Security risk.</P><P>S/4HANA Data Events write the Data to the Enterprise Blockchain and S/4HANA Notification Events notify the Partner that something has happened, then, instead of calling an API on your SAP S/4HANA, the Partner then calls the API of the Enterprise Blockchain and Reads the Data from there.</P><P>The Enterprise Blockchain Database software is running on your SAP BTP Kyma Runtime and in your Partner's Servers, therefore, creating natively, out of the box, the most secure and resilient common shared single source of truth. Your have a Distributed Ledger running from your SAP BTP to the Partner's Servers.</P><P>Ok, let's go with the Technical Solution Architectures, in these examples we will focus on the OutSourced Payroll as the integration and B2B Business Process Example.</P><P>What do we have and what do we need:</P><P>Your Company will need:</P><P style=" padding-left : 30px; ">. S/4HANA</P><P style=" padding-left : 30px; ">. SAP EM and preferably SAP AEM since it has richer Security and Event Payload size capabilities and can Publish Events from Non-SAP Enterprise Applications and connect to your Enterprise Event Mesh</P><P style=" padding-left : 30px; ">. SAP BTP</P><P style=" padding-left : 30px; ">. SAP BTP Kyma Runtime Service - this is where the Enterprise Blockchain Container will run</P><P style=" padding-left : 30px; ">. Enterprise Blockchain Platform Software which can run on Kubernetes&nbsp;</P><P style=" padding-left : 30px; ">. If there will be larger Data objects then you will need Large Storage for Large Data and the Enterprise Blockchain Wallet in the form of&nbsp;&nbsp;<A href="https://www.sap.com/norway/products/technology-platform/hana/features/cloud-data-lake.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud (Data Lake)</A></P><P>Your Business Partner will need:</P><P style=" padding-left : 30px; ">. Obviously their Payroll Application</P><P style=" padding-left : 30px; ">. Either SAP BTP with Kyma Runtime, or Servers which can run Kubernetes Containers</P><P style=" padding-left : 30px; ">. n.b. there is an Optional Technical Solution Architecture where you simply allow your Business Partner to read data from your Enterprise Blockchain where the Enterprise Blockchain Platform is running exclusively on your BTP, we will show that Option as well</P><P>Technical Reference Solution Architecture for SAP S/4HANA and SAP SuccessFactors and OutSourced 3rd Party Payroll Provider using Enterprise Blockchain as a Common Shared Single Source of Truth for Data and the Ultimate Cyber Data Security for B2B Business Processes...</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109796iAAEB8B150B86C587/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain atkrypto.io</span></span></P><P>&nbsp;</P><P>In the next example, we have the same basic Technical Solution Architecture as the previous example, except, this Reference Use Case is ready for the Enterprise Blockchain needed to be able to handle large volumes of data and brings the Enterprise Wallet in to the picture. In the Enterprise Blockchain Platform the Enterprise Wallet storage is configurable and therefore could be SAP HANA Cloud (DataLake) or AWS S3 Buckets or other HyperScaler Data stores.</P><P>All of the other Cyber Security characteristics remain the same, S/4 is ring fenced and digitally decoupled from the Business Partner, Enterprise Blockchain is used as a common shared single source of truth for Master and Transactional Data, and the Enterprise Blockchain Tenants are running in both your DataCenter (AnyPremise) and the Business Partner's DataCenter (AnyPremise):</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109798i2EF01053D4CE9FE3/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to Enterprise Blockchain &amp; Enterprise Wallet atkrypto.io</span></span></P><P>&nbsp;</P><P>The next example Reference Technical Solution Architecture is a little bit different, let's assume, for their own reasons, your Business Partner is not going to run an Enterprise Blockchain Tenant in their (AnyPremise) DataCenter.</P><P>This is still fine, you will set up the Enterprise Blockchain Platform in your DataCenter(s) (AnyPremise) and your B2B Business Partner, in this case the outsourced 3rd Party Payroll Vendor will simply use API's to read and write to and from your Enterprise Blockchain.</P><P>All of the other benefits of the design remain the same, all of the other next generation Data sharing Cyber Security characteristics are still there,&nbsp;S/4 is ring fenced and digitally decoupled from the Business Partner, Enterprise Blockchain is used as a common shared single source of truth for Master and Transactional Data.</P><P>Here it is:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109799iF8BF786F376184ED/image-size/large?v=v2&amp;px=999" role="button" title="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io.png" alt="OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">OutSourced Payroll Process B2B Business Processes with S4HANA and Ultimate Data Cyber Security thanks to your Enterprise Blockchain atkrypto.io</span></span></P><P>&nbsp;</P><P>Finally, we have the same Reference Technical Architecture as above, but to be able to cater for large volumes of Data we include the Enterprise Wallet in the design.</P><P>&nbsp;</P><P>Ok let's wrap this up, the conclusions:</P><P>Ring Fencing the S/4HANA Digital Core substantially raises the Cyber Security and reduces the attack surface for 3rd Party Attackers, Ultimate Cyber Security for Ring Fencing S/4HANA&nbsp; is the Enterprise Blockchain, where the Enterprise Blockchain acts a common shared single source of truth for Data across Organisations</P><P>Enterprise Blockchain is:</P><P style=" padding-left : 30px; ">. Ring Fencing and Digitally DeCoupling the S/4HANA Digital Core</P><P style=" padding-left : 30px; ">. A Secure Store of Data</P><P style=" padding-left : 30px; ">. A Secure Communication Channel for Data</P><P style=" padding-left : 30px; ">. A Common Shared Single Source of Truth in your Organisation and across Organisations</P><P style=" padding-left : 30px; ">. The next generation Data Integration is about having a Common Shared Single Source of Truth</P><P>The next generation Integrations don't allow direct access to API's published in the S/4HANA and replicate Data, that's legacy, the next generation Integrations use Enterprise Blockchain as a common shared single source of truth.</P><P><STRONG>The configurable Enterprise Blockchain Wallet enables you to store Big Data 'Off-Chain' and the hashes of the Data are stored safely and securely on the Enterprise Blockchain Database.</STRONG></P><P>&nbsp;</P><P>The good news is, as we discussed in the previous blog, this is no longer hype, we can do all of this today,<SPAN>&nbsp;</SPAN><SPAN>and now, within the&nbsp;</SPAN><A href="https://www.sap.com/norway/partners/partner-program/build.html" target="_self" rel="noopener noreferrer">SAP Partner Edge Open EcoSystem</A><SPAN>&nbsp;there are enabling technology Blockchain Products designed and built by SAP Experts specifically for the needs of SAP Customers to make doing Blockchain and SAP easy, and so you can do SAP and Blockchain, today it's real and there's nothing stopping you.</SPAN></P><P>So what are we waiting for ? Oh yeah, deep dive in to more use cases, ok, that will be the next blog.&nbsp;</P><P><SPAN>What do you think, are the words Blockchain, Web3, Distributed Ledger Technology, starting to appear in your Company's visions and technology visions ? What use cases are you looking at ? Let's chat about it in the comments.</SPAN></P><P>For now, over and out.</P><P>Andy Silvey.</P><P>Independent SAP Technical Architect and CEO of atkrypto.io</P><P>Author Bio:</P><P>Andy Silvey is a 25 years SAP Technology veteran&nbsp;[<EM>15 years SAP Basis and 10 years SAP Tech Arch including Tech, Integration, Security, Data from 3.1H to S/4HANA PCE on RISE and the BTP and everything in between, and<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/welcome-corner-blog-posts/andy-silvey-scn-moderator-spotlight/ba-p/13054438" target="_self">former SCN Moderator and Mentor alumni</A>].</EM></P><P data-unlink="true">Andy is also co-Founder of<SPAN>&nbsp;</SPAN>atkrypto&nbsp;<SPAN>&nbsp;</SPAN>inc, an startup whose ambition is to make Blockchain easy for Enterprise.</P><P>atkrypto.io's flagship product is the atkrypto Enterprise Blockchain Platform for SAP,&nbsp; and atkrypto.io is a SAP Partner Edge Open EcoSystem Partner.&nbsp;</P><P>The&nbsp;atkrypto Enterprise Blockchain Platform for SAP has been designed by SAP Independent Experts for the needs of SAP Customers and to be deployed on the SAP BTP Kyma Runtime Service and leverage native integration to SAP Products.</P><P>atkrypto&nbsp;Enterprise Blockchain Platform for SAP has a number of unique qualities, including being the only Blockchain software in the world which has a DataCenter version and a light mobile version which can run on Edge/IoT/Mobile devices and enables data to be written to the Blockchain at the Edge where that same Blockchain is running on a Server in the DataCenter, protecting the integrity and originality of data from the Edge to Insights. Taking Blockchain to the Data at the Edge instead of taking the Data to the Blockchain.</P><P><SPAN>All of this makes atkrypto,io the DePIN Decentralised Physical Infrastructure Network solution for Enterprise.</SPAN></P><P data-unlink="true"><SPAN>atkrypto is one of the&nbsp;Next20 startups&nbsp;&nbsp;being featured at&nbsp;TM Forum's DTW Ignite in Copenhagen in June&nbsp;</SPAN></P><P>If you will be at DTW24 come and talk to us about Cyber Security of SAP Data with Enterprise Blockchain.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-05-14T13:56:58.227000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/google-s-third-party-cookie-depreciation-in-the-kyma-environment/ba-p/13714261 Google’s Third-Party Cookie Depreciation in the Kyma Environment 2024-05-28T08:31:20.646000+02:00 nataliasitko https://community.sap.com/t5/user/viewprofilepage/user-id/844120 <DIV class="">Third-party cookies are set by domains other than the one a user is directly visiting. They are commonly used for online advertising and tracking user behavior across multiple websites. They can be set through JavaScript, iframe, embedded images, or media. SAP primarily uses third-party cookies for service management and single sign-on.</DIV><DIV class="">&nbsp;</DIV><DIV class="">Google has announced its plan to phase out support for third-party cookies by the third quarter of 2024. See<SPAN>&nbsp;</SPAN><A class="" href="https://privacysandbox.com/intl/eng/open-web/#the-privacy-sandbox-timeline" target="_blank" rel="noopener noreferrer nofollow">The Privacy Sandbox Timeline for the Web</A>. However, you can use the<SPAN>&nbsp;</SPAN><A class="" href="https://developers.google.com/privacy-sandbox/3pcd/temporary-exceptions/preserving-critical-user-experiences" target="_blank" rel="noopener noreferrer nofollow">third-party deprecation trial</A>, which allows you to re-enable third-party cookies for a page embedded within a cross-site iframe until December 27, 2024.</DIV><DIV class="">&nbsp;</DIV><H2 id="toc-hId-1015671317">Apply Third-Party Cookie Deprecation Trial Tokens for SAP BTP, Kyma Runtime Workloads</H2><DIV class="">&nbsp;</DIV><DIV class="">To enable the depreciation trial, all applications’ responses must include a deprecation trial token obtained for each affected domain. At SAP, the process of obtaining the tokens is handled centrally. There are three different ways to add the deprecation trial token - you can either provide it in an HTTP header, use a meta tag, or inject the token with JavaScript. For the SAP BTP, Kyma runtime workloads, it is recommended that you use the HTTP header. You must add the token manually for each of the affected workloads. To learn how to do this, read<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/deprecation-trial-for-google-s-third-party-cookies?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">Deprecation Trial for Google's Third-Party Cookies</A><SPAN>&nbsp;</SPAN>and follow the tutorial<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/apply-third-party-cookie-deprecation-trial-tokens-for-kyma-runtime-workloads?locale=en-US&amp;version=Cloud" target="_blank" rel="noopener noreferrer">Apply Third-Party Cookie Deprecation Trial Tokens for Kyma Runtime Workloads</A>.</DIV><DIV class="">&nbsp;</DIV><H2 id="toc-hId-819157812">Related Links</H2><UL class=""><LI><A class="" href="https://help.sap.com/docs/btp/preparing-and-testing-your-solution-for-third-party-cookie-deprecation" target="_blank" rel="noopener noreferrer">Preparing and Testing Your Solution for Third-Party Cookie Deprecation</A></LI><LI><A class="" href="https://me.sap.com/notes/3409306" target="_blank" rel="noopener noreferrer">SAP Note 3409306 - Removal of Third-Party Cookies in Google Chrome and Microsoft Edge Browser</A></LI></UL> 2024-05-28T08:31:20.646000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/hana-cloud-instance-mapping-operator-for-kyma-environment/ba-p/13711534 HANA Cloud Instance Mapping Operator for Kyma Environment 2024-06-03T14:40:59.438000+02:00 mladenstoychev https://community.sap.com/t5/user/viewprofilepage/user-id/1461329 <P>Instance mappings are a prerequisite for deploying and consuming HDI Containers and Schemas from a Kyma namespace. This operator manages the instance mappings in a kubernetes-native way. It stores them in custom resources (CRs) in the Kyma cluster and updates the underlying HANA Cloud infrastructure. For example:</P><pre class="lia-code-sample language-yaml"><code>apiVersion: hana.cloud.sap.com/v1 kind: HANAMapping metadata: namespace: my-namespace name: my-hanamapping spec: mapping: serviceInstanceID: cf923d7d-7661-48f2-aaa2-d4dbb151a708 targetNamespace: my-namespace btpOperatorConfigmap: namespace: kyma-system name: sap-btp-operator-config adminAPIAccessSecret: namespace: my-namespace name: my-admin-secret</code></pre><P>Instance Mappings are defined for a HANA Cloud service instance and a target namespace where the database instance will be consumed. In addition, a running BTP Operator and credentials for accessing the HANA Cloud APIs are required.</P><P>HANA Cloud Instance Mapping Operator for Kyma is an open source project available on GitHub:&nbsp;<A href="https://github.com/SAP-samples/hana-cloud-instance-mapping-operator-for-kyma" target="_blank" rel="noopener nofollow noreferrer">https://github.com/SAP-samples/hana-cloud-instance-mapping-operator-for-kyma</A>&nbsp;</P><P>Related resources:</P><UL><LI><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/map-sap-hana-database-to-another-environment-context" target="_self" rel="noopener noreferrer">Map HANA Database to a Kyma namespace</A>&nbsp;</LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/automated-instance-mapping-for-sap-hana-cloud-instances/ba-p/13585794" target="_self">Automate HANA Cloud Instance Mappings</A>&nbsp;</LI><LI><A href="https://github.com/SAP/sap-btp-service-operator" target="_self" rel="nofollow noopener noreferrer">BTP Service Operator</A>&nbsp;</LI></UL><P>&nbsp;</P> 2024-06-03T14:40:59.438000+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/singapore-madrid-amp-phoenix-sap-icc-attended-the-3-sap-partner-summit-for/ba-p/13720278 Singapore, Madrid & Phoenix: SAP ICC attended the 3 SAP Partner Summit for SME locations! 2024-06-04T01:09:11.436000+02:00 felipegrandi https://community.sap.com/t5/user/viewprofilepage/user-id/4153 <P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="summit.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/118932i8EBC50F8CFD8B733/image-size/large?v=v2&amp;px=999" role="button" title="summit.jpg" alt="summit.jpg" /></span></P><P>The biggest, the best and the most remarkable event is back! <A href="https://partnersummitforsme.com/" target="_self" rel="nofollow noopener noreferrer">SAP Partner Summit for SME</A>, SAP's premier event for SME segment, took place in 3 beautiful cities:</P><UL><LI><SPAN>Singapore: March 12 - 13, 2024</SPAN></LI><LI><SPAN>Phoenix (AZ): April 10 - 12, 2024</SPAN></LI><LI><SPAN>Madrid: April 23 - 25, 2024</SPAN></LI></UL><P><SPAN>These events not only serve as a platform for our partners to directly hear from SAP experts but also serve as a great networking opportunity where SAP partners often connect among each other for business opportunities and collaborative ideas.&nbsp;</SPAN>In 2024 the tonic of the events was taking<SPAN>&nbsp;</SPAN><STRONG>SAP Business One</STRONG><SPAN>&nbsp;</SPAN>into a Cloud future and keep addressing the lower mid-market and small businesses with SAP Cloud offers around&nbsp; #<STRONG>SAPBTP</STRONG><SPAN>&nbsp;</SPAN>and SAP S/4HANA Cloud, Public Edition (<STRONG>GROW with SAP</STRONG>).</P><P><A href="http://sap.com/icc" target="_self" rel="noopener noreferrer">SAP Integration and Certification Center (SAP ICC)</A> was present in the 3 events. In line with SAP's strategy it provides certifications for partner solutions which fit into the scenarios of<SPAN>&nbsp;</SPAN><STRONG>GROW with SAP, SAP BTP and SAP Business One</STRONG>. As highlighted in an opening video recorded by Karl&nbsp;Fahrbach, SAP Chief Partner Officer, "when you build solutions with BTP, you can get them certified by SAP".</P><P>&nbsp;</P><P>&nbsp;</P> 2024-06-04T01:09:11.436000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/develop-a-side-by-side-cap-based-extension-application-following-the-sap/ba-p/13720441 Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide 2024-06-04T10:01:07.135000+02:00 shankari_gr https://community.sap.com/t5/user/viewprofilepage/user-id/200091 <P><SPAN><SPAN class="">We are pleased to announce a new Discovery Center missionβ€―</SPAN><A href="https://discovery-center.cloud.sap/missiondetail/4426/4712/" target="_blank" rel="noopener noreferrer nofollow"><SPAN class="">Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide</SPAN></A><SPAN class="">β€― which is a sequel to our previous mission&nbsp;</SPAN><A class="" href="https://discovery-center.cloud.sap/missiondetail/4327/4608/" target="_blank" rel="noreferrer noopener nofollow"><SPAN class="">Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide</SPAN></A>&nbsp;and is available in&nbsp;<SPAN class="">β€―</SPAN><A class="" href="https://discovery-center.cloud.sap/" target="_blank" rel="noreferrer noopener nofollow"><SPAN class="">SAP Discovery Center</SPAN></A><SPAN class="">.</SPAN></SPAN></P><P>The primary objective of this mission is to demonstrate the implementation of a side-by-side SAP Cloud Application Programming Model (CAP)-based extension application, following the recommendations outlined in the&nbsp; <A href="https://help.sap.com/docs/btp/btp-developers-guide/what-is-btp-developers-guide" target="_blank" rel="noopener noreferrer"><SPAN>SAP BTP Developer’s Guide</SPAN></A><SPAN>&nbsp;.&nbsp;</SPAN></P><P>Through a step-by-step tutorial, one will learn how to develop a sample application called Incident Management, which serves as a practical learning tool. The Incident Management application is developed in accordance with best practices for building side-by-side extension applications using CAP and SAP Fiori.</P><P>Key feature showcased in this application include:</P><UL><LI><SPAN>Development of a full-stack applications onβ€―</SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/sap-business-technology-platform" target="_blank" rel="noopener noreferrer"><SPAN>SAP Business Technology Platform (SAP BTP)</SPAN></A><SPAN>β€―usingβ€―</SPAN><A href="https://cap.cloud.sap/docs/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>SAP Cloud Application Programming Model (CAP)</SPAN></A><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Consuming events from SAP S/4HANA Cloud usingβ€―</SPAN><A href="https://help.sap.com/viewer/bf82e6b26456494cbdd197057c09979f/Cloud/en-US/df532e8735eb4322b00bfc7e42f84e8d.html" target="_blank" rel="noopener noreferrer"><SPAN>SAP Event Mesh</SPAN></A><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Integration of the application&nbsp;with REST APIs from SAP S/4HANA Cloud usingβ€―</SPAN><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/2a17a3e1525f4f46a9c5156bd2d3bc87.html" target="_blank" rel="noopener noreferrer"><SPAN>SAP Side-by-Side Extensibility</SPAN></A><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Deployment of the same application to both SAP BTP CF and SAP BTP Kyma runtime</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN><STRONG><SPAN>Business Scenario:</SPAN></STRONG><SPAN>&nbsp;</SPAN></SPAN></P><P><SPAN>In context of this mission, the Incident Management application assists a company called ACME in managing its&nbsp; Customer Incidents.&nbsp; ACME has call centre with support representatives(known as Processor) who handle customer incidents.&nbsp;</SPAN>When a customer reports an incident over the phone, a Processor creates a new incident on behalf of the customer. The newly created incident includes details of the conversation between the Processor and the customer. Furthermore, the Incident Management application enables support team members working on a customer's incident to provide updates in the form of conversations.</P><P><SPAN>The scenario encompasses the following aspects:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Development of a full stack custom extension application that operates independently from SAP S/4HANA Cloud</SPAN><SPAN>&nbsp;application</SPAN></LI><LI><SPAN>Securely connectivity to SAP S/4 HANA&nbsp; Cloud API’s</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN><SPAN class=""><SPAN class="">Real-time communication of changes in SAP S/4HANA objects to extension application via events</SPAN></SPAN></SPAN></LI></UL><P><STRONG>OData Mock Server</STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN><SPAN>Even if you do not have access to SAP S/4HANA Cloud system you can still try out our mission using the </SPAN><A href="https://github.com/SAP-samples/cloud-extension-ecc-business-process/tree/mock" target="_blank" rel="noopener nofollow noreferrer"><SPAN>OData mock server</SPAN></A><SPAN> as the source of API and events. It contains entities of SAP OData services with sample data required to run the mission</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>The Discovery Centre Mission project board provides step-by-step guidance through which you will get a complete picture of how the end-to-end use case works. By trying out the use case you will also get a flavour of the different technologies showcased in this mission.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Navigate to <EM>Option1: Cloud Foundry Runtime</EM> or <EM>Option 3: Kyma Runtime and Mock Server</EM> to access the tutorials for running the mission using OData mock server application.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shankari_gr_0-1717475843710.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/119038i89ECA759A1306C93/image-size/medium?v=v2&amp;px=400" role="button" title="shankari_gr_0-1717475843710.png" alt="shankari_gr_0-1717475843710.png" /></span></P><P><STRONG><SPAN>Solution Diagram</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shankari_gr_1-1717475862703.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/119039iF36E7531891DFCA2/image-size/medium?v=v2&amp;px=400" role="button" title="shankari_gr_1-1717475862703.png" alt="shankari_gr_1-1717475862703.png" /></span></P><P><STRONG>Useful Links:&nbsp;</STRONG></P><UL><LI><A href="https://discovery-center.cloud.sap/missiondetail/4327/4608/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide</SPAN></A><SPAN>&nbsp;</SPAN></LI><LI><SPAN>For </SPAN><SPAN>additional</SPAN><SPAN> tutorials refer </SPAN><A href="https://github.com/SAP-samples/btp-developer-guide-cap/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>SAP Samples GitHub repository</SPAN></A><SPAN>&nbsp;</SPAN></LI><LI><A href="https://help.sap.com/docs/btp/btp-developers-guide/what-is-btp-developers-guide?state=DRAFT&amp;version=Cloud" target="_blank" rel="noopener noreferrer"><SPAN>What is SAP BTP Developer’s Guide</SPAN></A><SPAN>&nbsp;</SPAN></LI></UL> 2024-06-04T10:01:07.135000+02:00 https://community.sap.com/t5/technology-blogs-by-members/running-your-own-blockchain-on-the-sap-btp-kyma-trial-a-hands-on-how-to/ba-p/13724580 Running Your Own Blockchain on The SAP BTP Kyma Trial: A Hands On How To Guide πŸš€ 2024-06-12T21:47:22.463000+02:00 AndySilvey https://community.sap.com/t5/user/viewprofilepage/user-id/1397601 <P>&nbsp;</P><TABLE><TBODY><TR><TD width="3610.19px" height="45115px"><DIV class=""><DIV class=""><DIV class=""><DIV class=""><P>If you are interested in playing with the SAP BTP Trial</P><P>and</P><P>you are interested in playing with the SAP BTP Kyma Trial</P><P>and</P><P>you are interested in playing with your own Enterprise Blockchain</P><P>and</P><P>you are interested to run your own Enterprise Blockchain on the SAP BTP Kyma Trial on the SAP BTP Trial</P><P>then....</P><P>welcome<SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>This blog is a hands on technical guided instruction which will walk you through all of the steps to set up the</P><P>SAP BTP Trial, the SAP BTP Kyma Trial, and then deploy two Instances of an Enterprise Blockchain Server on</P><P>the SAP BTP Kyma Trial and create your own Blockchain and then write to and read from the Blockchain with</P><P>Postman.&nbsp;</P><P>At the end of the blog you will actually have your own Blockchain running Publicly and Internet Facing from the SAP BTP Kyma Trial.</P><P>There will be many interesting technical things coming out as you walk through this blog, including that if you</P><P>are interested in Enterprise Blockchain, then at the end of the blog you will see that you have set up a Public</P><P>or Private Blockchain running on the SAP BTP Kyma Trial edition, how cool is that ?</P><P>For me it has been a very interesting journey playing with the SAP BTP Kyma Trial. As a SAP Technical</P><P>Architect the SAP BTP Kyma Trial has really opened my eyes to more technical possibilities for our</P><P>SAP Landscapes. The thing I find the most beautiful about the SAP BTP Kyma Trial is that, working in</P><P>our Companies, in our Enterprises, in the SAP Teams, thanks to the SAP BTP Kyma Service, whenever we</P><P>need Kubernetes capability we no longer have to go out of the SAP Team and ask our Peers in the Cloud or</P><P>Hosting Teams for Kubernetes capacity, because we can literally just spin up our own Kubernetes Container</P><P>thanks to the SAP BTP Kyma Service. And in the large Enterprise, in our SAP work, the more things we can</P><P>do within our SAP Team and without depending on other Teams the easier our life is and the faster we are</P><P>and for these reasons I love the SAP BTP Kyma Service.</P><P>So, let's cut down on the chat and start getting on with it.</P><P>Before we do, a quick summary of what we are going to do in this blog:</P><P>. We are going to get a SAP BTP Trial Account</P><P>. We are going to enable the SAP BTP Kyma Trial</P><P>. We are going to deploy an Enterprise Blockchain Server Docker Image on the SAP BTP Kyma Trial.</P><P>[Total Transparency - SAP do not have an Enterprise Blockchain Server that runs on Docker, I am going to use</P><P>the "atkrypto Enterprise Blockchain Server for SAP", because it is the one I am most familiar and comfortable</P><P>with and also because I am a co-Founder of atkrypto - btw atkrypto is a SAP Open EcoSystem Partner. You</P><P>are free not to use atkrypto, and you can follow this procedure and use your own favourite Blockchain Server</P><P>Docker Image]</P><P>. We will be deploying the Enterprise Blockchain Server 2 times, because obviously, a Blockchain is a</P><P>Distributed Ledger and we are going to need a minimum of 2 Instances to be able to create the Blockchain</P><P>and get consensus for adding Blocks</P><P>. We will be visiting atSign.com to get atSigns and keys for the atSigns because atkrypto uses atSigns for</P><P>Identity, Security, Communication</P><P>. We will create a Blockchain on one of our atkrypto Instances&nbsp;</P><P>. Then we will invite the other atkrypto Instance to become a Member of the Blockchain</P><P>. Then we will write Blocks to the Blockchain with Postman</P><P>. And we will Read Blocks from the Blockchain with Postman</P><P>. At the end we will see that we actually have a Blockchain running on the SAP BTP Kyma Trial which is</P><P>accessible from anywhere on the Internet and therefore we will have our own Public Blockchain running</P><P>on the SAP BTP Kyma Trial - how cool is that<SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>[One more thing, when you follow this blog, if you have any questions, just write them in the comments,</P><P>and your questions will be answered and you will get this working]</P><P>Ok let's go&nbsp;</P><P>&nbsp;</P><P>____________________________________________________________________</P><P>&nbsp;</P><P><U><STRONG>Step 1: Get a SAP BTP Trial Account</STRONG></U></P><P>This is how I did it, I followed this blog and did all of the steps:&nbsp;<A href="https://developers.sap.com/tutorials/hcp-create-trial-account.html" target="_blank" rel="noopener noreferrer">https://developers.sap.com/tutorials/hcp-create-trial-account.html</A></P><P>By the end of following that blog you will have a SAP BTP Trial Account url something like this:</P><P><A href="https://account.hanatrial.ondemand.com/trial/#/globalaccount/26b0b1c3-08a8-49d2-90ac-800e48f20385/accountModel&amp;//?section=SubaccountsSection&amp;view=TilesView" target="_blank" rel="noopener nofollow noreferrer">https://account.hanatrial.ondemand.com/trial/#/globalaccount/26b0b1c3-08a8-49d2-90ac-800e48f20385/ac...</A></P><P>and you will be able to log in to the SAP BTP Trial Account and it will look something like this:</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_2-1717872556371.png" style="width: 689px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120934i1195F01C23CC2F16/image-dimensions/689x584?v=v2" width="689" height="584" role="button" title="AndySilvey_2-1717872556371.png" alt="AndySilvey_2-1717872556371.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>It is really really easy. Ok, that is Step 1 COMPLETED&nbsp;&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 2: Spin Up The SAP BTP Kyma Runtime Trial</STRONG></U></P><P>I was naughty and I didn't run the Booster, good practice infact best practice is to run the Boosters and it is</P><P>recommend to do that for enabling all Services in the BTP, but nevertheless I did it manually, and so as ever</P><P>in life, do as the Teacher says and not as the Teacher does.</P><P>So this is how I enabled the SAP BTP Kyma Trial manually...</P><P>In the SAP BTP Cockpit go to Entitlements and Service Assignments and check that you have quota for the</P><P>Kyma Trial</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_4-1717872556374.png" style="width: 683px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120937i67A4A980286D3B38/image-dimensions/683x381?v=v2" width="683" height="381" role="button" title="AndySilvey_4-1717872556374.png" alt="AndySilvey_4-1717872556374.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_5-1717872556375.png" style="width: 699px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120936iB4AFB4A84E6141D7/image-dimensions/699x318?v=v2" width="699" height="318" role="button" title="AndySilvey_5-1717872556375.png" alt="AndySilvey_5-1717872556375.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Then go to your SubAccount&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_6-1717872556376.png" style="width: 677px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120938iAEA5812C73E4EB91/image-dimensions/677x381?v=v2" width="677" height="381" role="button" title="AndySilvey_6-1717872556376.png" alt="AndySilvey_6-1717872556376.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_7-1717872556377.png" style="width: 686px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120940iD1105AF492EF52E7/image-dimensions/686x307?v=v2" width="686" height="307" role="button" title="AndySilvey_7-1717872556377.png" alt="AndySilvey_7-1717872556377.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>The go to Services and then Service Market Place and add the Kyma Runtime Service</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_8-1717872556379.png" style="width: 704px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120939iF599D32352648622/image-dimensions/704x350?v=v2" width="704" height="350" role="button" title="AndySilvey_8-1717872556379.png" alt="AndySilvey_8-1717872556379.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_9-1717872556380.png" style="width: 673px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120941iD004B87B8710C54F/image-dimensions/673x365?v=v2" width="673" height="365" role="button" title="AndySilvey_9-1717872556380.png" alt="AndySilvey_9-1717872556380.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_10-1717872556381.png" style="width: 705px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120942i9C47FFD5BCB41FDB/image-dimensions/705x409?v=v2" width="705" height="409" role="button" title="AndySilvey_10-1717872556381.png" alt="AndySilvey_10-1717872556381.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Then it will deploy</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_11-1717872556382.png" style="width: 691px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120943iA2EC409C6F4E885E/image-dimensions/691x318?v=v2" width="691" height="318" role="button" title="AndySilvey_11-1717872556382.png" alt="AndySilvey_11-1717872556382.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>And finally it will be running and you will have this very important Kyma Trial Runtime overview screen</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_12-1717872556383.png" style="width: 669px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120945i093218E46FD4AC82/image-dimensions/669x318?v=v2" width="669" height="318" role="button" title="AndySilvey_12-1717872556383.png" alt="AndySilvey_12-1717872556383.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>The information on this screen is very important, you are going to use these Urls for working with your</P><P>Kyma Container, and so, make a note of all of this information in a Word Document or Notepad File</P><P>You have your Cockpit Url like this:</P><P><A href="https://dashboard.kyma.cloud.sap/?kubeconfigID=2ED6C2A7-DE09-46F1-858B-6970181A7BC7" target="_blank" rel="noopener nofollow noreferrer">https://dashboard.kyma.cloud.sap/?kubeconfigID=2ED6C2A7-DE09-46F1-858B-6970181A7BC7</A></P><P><SPAN>Your Console URL:&nbsp;</SPAN><A href="https://dashboard.kyma.cloud.sap/?kubeconfigID=2ED6C2A7-DE09-46F1-858B-6970181A7BC7" target="_blank" rel="noopener nofollow noreferrer">Link to dashboard</A></P><P><SPAN>Your APIServerURL:&nbsp;</SPAN><A href="https://api.c-1f0369b.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://api.c-1f0369b.kyma.ondemand.com</A></P><P><SPAN>Your KubeconfigURL:</SPAN></P><P><A href="https://kyma-env-broker.cp.kyma.cloud.sap/kubeconfig/2ED6C2A7-DE09-46F1-858B-6970181A7BC7" target="_blank" rel="noopener nofollow noreferrer">https://kyma-env-broker.cp.kyma.cloud.sap/kubeconfig/2ED6C2A7-DE09-46F1-858B-6970181A7BC7</A></P><P>[by the way, the first time I set up the Kyma Trial it didn't work and I had to delete it and do it again and</P><P>then it worked]</P><P>The next step is to log on to the Kyma Trial Dashboard, that will be your equivalent of this url</P><P><A href="https://dashboard.kyma.cloud.sap/?kubeconfigID=2ED6C2A7-DE09-46F1-858B-6970181A7BC7" target="_blank" rel="noopener nofollow noreferrer">https://dashboard.kyma.cloud.sap/?kubeconfigID=2ED6C2A7-DE09-46F1-858B-6970181A7BC7</A></P><P>The first time I tried to open the Kyma Trial Dashboard I wasn't able to log on, I couldn't open it and got</P><P>this error:</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_13-1717872556384.png" style="width: 686px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120944iE81420E20064CF76/image-dimensions/686x338?v=v2" width="686" height="338" role="button" title="AndySilvey_13-1717872556384.png" alt="AndySilvey_13-1717872556384.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>If you have the same problem, that you cannot log on to the Kyma Trial Dashboard, then, this is what I</P><P>did to get over that obstacle:</P><P>I tried to open the Dashboard again and at the failed&nbsp; login I clicked the button Forgot my Password</P><P>I received an email and followed the instructions and successfully reset my S User Password</P><P>The same S User which is logged in to the BTP Trial Clockpit</P><P>Then I closed all browsers and logged on to the BTP Trial Cockpit and the password didn't work so I used</P><P>the old password and then the logon worked.</P><P>Which suggests that the BTP Trial Cockpit has a different IDP then the Kyma Dashboard</P><P>So then I went to my SubAccount and opened the Kyma Dashboard and logged on with the same S User</P><P>and the new password and the Kyma Dashboard opened</P><P>Woohoo<SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN>Here it is, the Kyma Trial Dashboard</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_14-1717872556385.png" style="width: 701px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120946i54C1F18957610628/image-dimensions/701x348?v=v2" width="701" height="348" role="button" title="AndySilvey_14-1717872556385.png" alt="AndySilvey_14-1717872556385.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>This means Step #2 is completed, you now have a SAP BTP Kyma Trial Account and you are able to access</P><P>the SAP Kyma Trial Dashboard and you have the Urls to work with your SAP Kyma Trial Container<SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P>So, Step #2 is now COMPLETED&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 3: Get atSigns And atKeys</STRONG></U></P><P>The Enterprise Blockchain Server software that we are going to use leverages&nbsp; Networking 2.0 technology</P><P>and the atprotocol and atSigns from atSign.com for Identity, Security, and Communication.</P><P>This means we need to go to atSign.com website and get 2 atSigns, 1 for each Instance of the Enterprise</P><P>Blockchain Server.</P><P>Once we have the atSigns we will need to install the Wavi App on our Mobile Phone to activate the atSigns</P><P>and get the atKeys for them.</P><P>In a subsequent step we will install the atKeys on the Enterprise Blockchain Server Instances.</P><P>Ok, let's go, this won't take long.</P><P>Go to the atSign registrar website and create an Account and get 2 "free" atSigns, this is the url</P><P><A href="https://my.atsign.com/choose-atsign/6711ef36cddd9e71be7a18b795dc1c8fac0fe9afe949a49383d79e5e366c5ae6" target="_blank" rel="nofollow noopener noreferrer">https://my.atsign.com/choose-atsign/6711ef36cddd9e71be7a18b795dc1c8fac0fe9afe949a49383d79e5e366c5ae6</A></P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_16-1717872556386.png" style="width: 718px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120948iF140EA10A72EE2CF/image-dimensions/718x384?v=v2" width="718" height="384" role="button" title="AndySilvey_16-1717872556386.png" alt="AndySilvey_16-1717872556386.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Once you have created your "free" atSigns you will see them listed in the Dashboard</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_17-1717872556387.png" style="width: 715px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120949iED3E680F7CB6D5B7/image-dimensions/715x363?v=v2" width="715" height="363" role="button" title="AndySilvey_17-1717872556387.png" alt="AndySilvey_17-1717872556387.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Click on the down arrow next to one of the atSigns to see the menu:</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_18-1717872556388.png" style="width: 707px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120950i8380D3FA88FAAB09/image-dimensions/707x429?v=v2" width="707" height="429" role="button" title="AndySilvey_18-1717872556388.png" alt="AndySilvey_18-1717872556388.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Click on the green Action Required button</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_19-1717872556389.png" style="width: 711px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120951iFD6C989759D5913E/image-dimensions/711x437?v=v2" width="711" height="437" role="button" title="AndySilvey_19-1717872556389.png" alt="AndySilvey_19-1717872556389.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>As the instruction says, to get the atkeys you will need to activate your atSign and to activate your atSign</P><P>you need to install either the atWavi App or the AtmospherePro App</P><P>In this example I will install the atWavi App on my iPhone and use it to activate my atSigns</P><P>First I get the App</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_20-1717872556389.png" style="width: 237px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120952i367587A3CEAD4E79/image-dimensions/237x518?v=v2" width="237" height="518" role="button" title="AndySilvey_20-1717872556389.png" alt="AndySilvey_20-1717872556389.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Then I open the App and click Create my microsite</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_21-1717872556390.png" style="width: 274px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120953iBA320836990F7B70/image-dimensions/274x586?v=v2" width="274" height="586" role="button" title="AndySilvey_21-1717872556390.png" alt="AndySilvey_21-1717872556390.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Then I click Activate atSign</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_22-1717872556391.png" style="width: 274px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120954i23F4A78B5F7556DB/image-dimensions/274x589?v=v2" width="274" height="589" role="button" title="AndySilvey_22-1717872556391.png" alt="AndySilvey_22-1717872556391.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Then enter the atSign name</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_23-1717872556392.png" style="width: 243px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120955i15E08BE3AD78E6DD/image-dimensions/243x524?v=v2" width="243" height="524" role="button" title="AndySilvey_23-1717872556392.png" alt="AndySilvey_23-1717872556392.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Enter the Code and click Verify &amp; Logon</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_24-1717872556392.png" style="width: 242px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120956i26236E3FC7C7F06C/image-dimensions/242x518?v=v2" width="242" height="518" role="button" title="AndySilvey_24-1717872556392.png" alt="AndySilvey_24-1717872556392.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Now click SAVE to save the atsign atKey</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_25-1717872556393.png" style="width: 224px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120957i9B9CBA8D07F1D11C/image-dimensions/224x479?v=v2" width="224" height="479" role="button" title="AndySilvey_25-1717872556393.png" alt="AndySilvey_25-1717872556393.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Now click Backup to backup the atkey and store it to your Mobile Phone</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_26-1717872556394.png" style="width: 362px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120958iC7C019982CB8A473/image-dimensions/362x369?v=v2" width="362" height="369" role="button" title="AndySilvey_26-1717872556394.png" alt="AndySilvey_26-1717872556394.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Save the atKey and then move the atKey to your Computer where you are running this Blockchain installation</P><P>procedure and save the atKey to you files</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_27-1717872556394.png" style="width: 733px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120959iF8593DAC2D117339/image-dimensions/733x88?v=v2" width="733" height="88" role="button" title="AndySilvey_27-1717872556394.png" alt="AndySilvey_27-1717872556394.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>You now have your first atSign and atKey</P><P>You will need an atSign (and atKey) for each Instance of the Enterprise Blockchain Server, because the atSign</P><P>provides the identity and security and communication for the Enterprise Blockchain Server Instance</P><P>Assuming for now your Blockchain will have two Servers, then you will need to do this Step #3 once more</P><P>And then you are done for getting your atSigns and Step #3 is COMPLETED&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 4: Deploy 2 Enterprise Blockchain Servers To Your SAP BTP Kyma Trial Runtime</STRONG></U></P><P>In this step we will go through all of the activities to deploy the Enterprise Blockchain Server Docker Image to the SAP BTP Kyma Trial Account. In other words we will pull (push for Cloud Foundry) the Docker Image to the SAP BTP Kyma Trial.</P><P>This step is very simple and revolves around preparing a configuration file, called a yaml file, and uploading the</P><P>yaml file to your SAP BTP Kyma Dashboard.</P><P>We will be deploying 2 Instances of the Enterprise Blockchain Server and this means you will need to walk</P><P>through Step #4 two times.</P><P>Each Instance of your Enterprise Blockchain Server will need a unique Instance name and this means, after</P><P>you done this step the first time you will need to modify the Instance Name in the yaml file so that you can</P><P>upload the file the second time to create the second Instance of the Enterprise Blockchain Server.</P><P>So firstly you need to prepare the yaml file, take what is here and save it to your Computer as atkrypto.yaml</P><P>----------FROM-HERE-------------</P><P>kind: Namespace<BR />apiVersion: v1<BR />metadata:<BR />name: atkrypto-v1<BR />labels:<BR />name: atkrypto-v1</P><P>---<BR />kind: PersistentVolumeClaim<BR />apiVersion: v1<BR />metadata:<BR />name: atkrypto-v1<BR />namespace: atkrypto-v1<BR />labels:<BR />app: atkrypto-v1<BR />spec:<BR />accessModes:<BR />- ReadWriteOnce<BR />resources:<BR />requests:<BR />storage: 1Gi</P><P>---<BR />apiVersion: apps/v1<BR />kind: StatefulSet<BR />metadata:<BR />name: atkrypto-v1<BR />namespace: atkrypto-v1<BR />spec:<BR />selector:<BR />matchLabels:<BR />app: atkrypto-v1<BR />serviceName: atkrypto-v1<BR />replicas: 1<BR />template:<BR />metadata:<BR />labels:<BR />app: atkrypto-v1<BR />spec:<BR />containers:<BR />- name: atkrypto-v1<BR />image: atkrypto/atkrypto-server-for-sap<BR />imagePullPolicy: Always<BR />ports:<BR />- containerPort: 54321<BR />volumeMounts:<BR />- name: atkrypto-v1<BR />mountPath: /app/data<BR />volumes:<BR />- name: atkrypto-v1<BR />persistentVolumeClaim:<BR />claimName: atkrypto-v1</P><P>---<BR />apiVersion: v1<BR />kind: Service<BR />metadata:<BR />name: atkrypto-v1-svc<BR />namespace: atkrypto-v1<BR />spec:<BR />selector:<BR />app: 'atkrypto-v1' # must match the pod's label<BR />ports:<BR />- protocol: 'TCP'<BR />port: 443 # service port<BR />targetPort: 54321 # pod port</P><P>---<BR />apiVersion: gateway.kyma-project.io/v1beta1<BR />kind: APIRule<BR />metadata:<BR />name: atkrypto-v1-api<BR />namespace: atkrypto-v1<BR />spec:<BR />gateway: kyma-gateway.kyma-system.svc.cluster.local<BR />host: atkrypto-v1<BR />service:<BR />name: atkrypto-v1-svc<BR />port: 443<BR />rules:<BR />- path: /.*<BR />accessStrategies:<BR />- config: {}<BR />handler: noop<BR />methods:<BR />- GET<BR />- POST<BR />- DELETE</P><P>------------------------TO-HERE----------------</P><P>Now that you have created the yaml file, the next activity is to upload it to your SAP BTP Kyma Trial</P><P>Dashboard.</P><P>So, get the url for your SAP BTP Kyma Trial Dashboard (which you wrote into a notepad file earlier) and</P><P>open the Dashboard in a Web Browser</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_29-1717872556395.png" style="width: 724px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120961i2BC2C8EAE5307177/image-dimensions/724x352?v=v2" width="724" height="352" role="button" title="AndySilvey_29-1717872556395.png" alt="AndySilvey_29-1717872556395.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>In the upper right hand corner of the screen, click on the Upload Yaml File button</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_30-1717872556396.png" style="width: 649px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120962i5830DEF724D55263/image-dimensions/649x148?v=v2" width="649" height="148" role="button" title="AndySilvey_30-1717872556396.png" alt="AndySilvey_30-1717872556396.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Click Upload</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_31-1717872556396.png" style="width: 718px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120963i10089749AE269AC2/image-dimensions/718x228?v=v2" width="718" height="228" role="button" title="AndySilvey_31-1717872556396.png" alt="AndySilvey_31-1717872556396.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Find your yaml file and select it and upload it</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_32-1717872556397.png" style="width: 737px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120964i094BE46734BC14B5/image-dimensions/737x385?v=v2" width="737" height="385" role="button" title="AndySilvey_32-1717872556397.png" alt="AndySilvey_32-1717872556397.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Click the Upload button</P><P>&nbsp;</P><P>Check the success and notice that your yaml file has been uploaded and your Enterprise Blockchain Server</P><P>Instance has been pulled from Docker and deployed on to the SAP BTP Kyma Trial&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_33-1717872556398.png" style="width: 732px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120966i9CE5F5B78A454ED0/image-dimensions/732x264?v=v2" width="732" height="264" role="button" title="AndySilvey_33-1717872556398.png" alt="AndySilvey_33-1717872556398.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>In the Kyma Dashboard, under NameSpaces, you will now see your first Enterprise Blockchain Server</P><P>Instance is deployed and running</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_34-1717872556399.png" style="width: 718px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120965iCE57B41FBA3338FC/image-dimensions/718x189?v=v2" width="718" height="189" role="button" title="AndySilvey_34-1717872556399.png" alt="AndySilvey_34-1717872556399.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>What we can see here is that you have created a new NameSpace atkrypto-v1</P><P>Go into the atkrypto-va NameSpace&nbsp; and then open β€žDiscovery and Networkβ€œ -&gt; β€žAPI Rulesβ€œ</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_35-1717872556399.png" style="width: 712px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120967iFA5353E7D5AF04CF/image-dimensions/712x244?v=v2" width="712" height="244" role="button" title="AndySilvey_35-1717872556399.png" alt="AndySilvey_35-1717872556399.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>and then open the link related to atkrypto-v1-api rule and make a note of the url</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/</A></P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_36-1717872556400.png" style="width: 702px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120968iA2D8A7711D83A31F/image-dimensions/702x353?v=v2" width="702" height="353" role="button" title="AndySilvey_36-1717872556400.png" alt="AndySilvey_36-1717872556400.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Make a note of the API Url for your first Enterprise Blockchain Server Instance</P><P>&nbsp;</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/</A></P><P>&nbsp;</P><P>put it in the Notepad with the other useful urls.</P><P>&nbsp;</P><P>Now you need to do this whole Step #4&nbsp; and create your second Enterprise Blockchain Server Instance,</P><P>so, prepare the yaml file for the second Instance deployment, go through your first yaml file and&nbsp;</P><P>find&nbsp;atkrypto-v1&nbsp;</P><P>and&nbsp;</P><P>replace with&nbsp;atkrypto-v2</P><P>and then save the file for the second deployment.</P><P>Then re-do the activities in this Step #4&nbsp; for uploading the second yaml file and follow all of the steps and</P><P>get the API url for your second atkrypto-v2 Enterprise Blockchain Server Instance.</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_37-1717872556401.png" style="width: 721px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120970i272C6A404446C27A/image-dimensions/721x330?v=v2" width="721" height="330" role="button" title="AndySilvey_37-1717872556401.png" alt="AndySilvey_37-1717872556401.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_38-1717872556402.png" style="width: 730px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120969i385A800C2B7ACD03/image-dimensions/730x247?v=v2" width="730" height="247" role="button" title="AndySilvey_38-1717872556402.png" alt="AndySilvey_38-1717872556402.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>You see you now have 2 NameSpaces for your 2 Enterprise Blockchain Server Instances</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_39-1717872556402.png" style="width: 726px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120971iA56580C35F65370F/image-dimensions/726x294?v=v2" width="726" height="294" role="button" title="AndySilvey_39-1717872556402.png" alt="AndySilvey_39-1717872556402.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>and get the API Url</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_40-1717872556403.png" style="width: 715px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120973i20090206B287CFD5/image-dimensions/715x292?v=v2" width="715" height="292" role="button" title="AndySilvey_40-1717872556403.png" alt="AndySilvey_40-1717872556403.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_41-1717872556404.png" style="width: 718px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120972iE34340F20E4F4CE1/image-dimensions/718x325?v=v2" width="718" height="325" role="button" title="AndySilvey_41-1717872556404.png" alt="AndySilvey_41-1717872556404.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>At the end you will have another API url like this:</P><P><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/</A></P><P>copy the 2nd Blockchain Instance url into the Notepad file with the other useful urls</P><P>Step #4&nbsp; is now COMPLETED&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 5: Upload the atKey For Each Of The Enterprise Blockchain Server Instances</STRONG></U></P><P>The next step is to upload the atSign atKey for each atSign to each Blockchain Instance.</P><P>So, we need the API Urls for each Instance which in my case are as follow:</P><P>atkrypto-v1</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/</A></P><P>atkrypto-v2</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/</A></P><P>To upload the atKeys you have to modify the API Urls as follows:</P><P>atKey uploads</P><P>atkrypto-v1</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/upload.html" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/upload.html</A></P><P><BR />atkrypto-v2</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/upload.html" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/upload.html</A></P><P>For each Blockchain Instance pick on of your atSigns and upload the atKey using the upload url</P><P>Click Submit</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_43-1717872556404.png" style="width: 725px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120976i4C4D457CCCE07CE1/image-dimensions/725x145?v=v2" width="725" height="145" role="button" title="AndySilvey_43-1717872556404.png" alt="AndySilvey_43-1717872556404.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>and the same again for the second Blockchain Instance, find the file and click Submit</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_44-1717872556405.png" style="width: 699px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120975iE7A6B2698ECB603C/image-dimensions/699x123?v=v2" width="699" height="123" role="button" title="AndySilvey_44-1717872556405.png" alt="AndySilvey_44-1717872556405.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>All of the steps in Kyma are finished at this point and we are ready to start each Blockchain Instance.</P><P>To do this you need to use Postman to send API commands to your Blockchain Instances, so the next step</P><P>will be to install Postman.</P><P>And so, for Step #5&nbsp; we are COMPLETED&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 6: Get Postman</STRONG></U></P><P>To work with your Blockchain, you will use API's and you will need the Postman Tool to run the API calls.</P><P>Go to Postman website&nbsp;<A href="https://www.postman.com/" target="_blank" rel="noopener nofollow noreferrer">https://www.postman.com/</A>&nbsp;and sign-up and then you can use the&nbsp; free version of</P><P>Postman</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_46-1717872556405.png" style="width: 728px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120978i998BB1B7645D363C/image-dimensions/728x386?v=v2" width="728" height="386" role="button" title="AndySilvey_46-1717872556405.png" alt="AndySilvey_46-1717872556405.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>and once you have signed up you will be able to download Postman and install it on your Computer&nbsp;</P><P><A href="https://www.postman.com/downloads/" target="_blank" rel="noopener nofollow noreferrer">https://www.postman.com/downloads/</A></P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_47-1717872556406.png" style="width: 721px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120979i313EA64626B7EF8F/image-dimensions/721x382?v=v2" width="721" height="382" role="button" title="AndySilvey_47-1717872556406.png" alt="AndySilvey_47-1717872556406.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>And then you have Postman on your Computer</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_48-1717872556407.png" style="width: 732px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120981i856097F28C531C45/image-dimensions/732x308?v=v2" width="732" height="308" role="button" title="AndySilvey_48-1717872556407.png" alt="AndySilvey_48-1717872556407.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>And then Step #6 is COMPLETED&nbsp;&nbsp;β€Œβ€Œ</P><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 7: Start Your Enterprise Blockchain Server Instances on SAP BTP Kyma Trial</STRONG></U></P><P>In this step, we will use Postman to run API's to start your Enterprise Blockchain Instances on the SAP BTP</P><P>Kyma Trial.</P><P>You will need the API Urls for your Blockchain Instances</P><P>atkrypto-v1</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/</A></P><P>atkrypto-v2</P><P>API Url<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/</A></P><P>First we need to start the atKrypto-v1 server through POST to /server/start</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/server/start" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/server/start</A></P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_50-1717872556408.png" style="width: 734px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120982i12F5BD0EDDB2E694/image-dimensions/734x347?v=v2" width="734" height="347" role="button" title="AndySilvey_50-1717872556408.png" alt="AndySilvey_50-1717872556408.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Now your 1st Blockchain Server Instance atkrypto-v1 is started and read to accept calls through APIs.</P><P>We can verify this by blockchain API GET /blockchain</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/blockchain" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/blockchain</A></P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_51-1717872556408.png" style="width: 732px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120983iA11B109CC78C7A0C/image-dimensions/732x341?v=v2" width="732" height="341" role="button" title="AndySilvey_51-1717872556408.png" alt="AndySilvey_51-1717872556408.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>This will return empty string [] as there are no blockchains running at the moment</P><P>Now we need to do that same again and start the second Blockchain Server Instance atkrypto-v2</P><P>We need the API Url&nbsp;<SPAN>&nbsp;</SPAN><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/</A></P><P>And we will use Postman again to Post the Server Start API&nbsp;</P><P><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/server/start" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/server/start</A></P><P>&nbsp;</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_52-1717872556409.png" style="width: 728px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120984i396819C48708AEFD/image-dimensions/728x342?v=v2" width="728" height="342" role="button" title="AndySilvey_52-1717872556409.png" alt="AndySilvey_52-1717872556409.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>and then we use the blockchain Get API to check that the Blockchain Server Instance is running</P><P><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/blockchain" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/blockchain</A></P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_53-1717872556410.png" style="width: 728px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120985iD4989DB631CC45D9/image-dimensions/728x342?v=v2" width="728" height="342" role="button" title="AndySilvey_53-1717872556410.png" alt="AndySilvey_53-1717872556410.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>This will return empty string [] as there are no blockchains running at the moment</P><P>This means the Blockchain Server Instances are both running which means that this step is COMPLETED&nbsp;β€Œβ€Œ</P><BR /><P>&nbsp;</P><P>&nbsp;</P><P><U><STRONG>Step 8: Create a Blockchain</STRONG></U></P><P>Now that we have 2 Blockchain Server Instances running the next steps are to:</P><P>. On one of the Blockchain Server Instances Create a Blockchain</P><P>. Then from the Blockchain Server Instance where we Created the Blockchain we will invite the other</P><P>Blockchain Server Instance to be a Member of the Blockchain</P><P>. The second Blockchain Server Instance will then Accept the Invitation to become a Member of the</P><P>Blockchain&nbsp;</P><P>. And then we can Create Blocks&nbsp;</P><P>. And then we can Read Blocks</P><P>So, this step is going to be to Create a Blockchain and Invite the other Blockchain Server Instance to be a</P><P>Member of the Blockchain</P><P>So, we will need Postman again, pick one of the Blockchain Server Instances, I will take atkrypto-v1</P><P>atkrypto-v1 API Url is&nbsp;<A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/</A></P><P>Now we need the Create a Blockchain API</P><P>To create first Blockchain we can use /blockchain API with POST request and raw body in JSON format</P><P>describing the name of your blockchain as following:</P><P>{</P><P>&nbsp;&nbsp;"name":&nbsp;"&lt;NAME OF YOUR BLOCKCHAIN HERE&gt;"</P><P>}</P><P>Here is an example of how we will do it</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_55-1717872556410.png" style="width: 738px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120987i5DF61F4950F9A016/image-dimensions/738x309?v=v2" width="738" height="309" role="button" title="AndySilvey_55-1717872556410.png" alt="AndySilvey_55-1717872556410.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>I will call this Blockchain</P><P>{</P><P>&nbsp;&nbsp;"name":&nbsp;"Blockchain-Kyma-Trial"</P><P>}</P><P>Here it is</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_56-1717872556411.png" style="width: 717px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120988i62E8BEDD254471CA/image-dimensions/717x352?v=v2" width="717" height="352" role="button" title="AndySilvey_56-1717872556411.png" alt="AndySilvey_56-1717872556411.png" /></span><P>&nbsp;</P><P>Make a note of the output result from Postman:</P><P>Result</P><P>{"id":"57d82c25-0293-4ea6-99a8-92a1b6b57e23","name":"Blockchain-Kyma-Trial","length":0,"lastBlock":null,</P><P>"pendingBlock":null}</P><P>The ID in the body of the response is the ID of your new blockchain congratulations it worked !</P><P>Now the Blockchain Server atkrypto-v1 is going to Invite the Blockchain Server atkrypto-v2 to be a</P><P>Member of the Blockchain of the Distributed Ledger, so this is where we make the Blockchain Network&nbsp;</P><P>and connect the 2 Blockchain Server Instances together.</P><P>of this Blockchain.</P><P>To do this, we are going to need to know the atSigns which we gave each Blockchain Server.</P><P>This is what we did:</P><P>atkrypto-v1 atsign @exoticlongdrive</P><P>atkrypto-v2 atsign @nice6acting</P><P>To send the Invitation we will use the invitation API with the POST and with RAW JSON.</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/invitation" target="_blank" rel="noopener nofollow noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/invitation</A></P><P>The JSON will look like this:</P><P>&nbsp;</P><P>{<BR />"blockchainId": "57d82c25-0293-4ea6-99a8-92a1b6b57e23", "invitees": ["@nice6acting"]<BR />}</P><P>&nbsp;</P><P>This is what it looks like in Postman</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_57-1717872556412.png" style="width: 726px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120989iB5D919DFB06208CC/image-dimensions/726x385?v=v2" width="726" height="385" role="button" title="AndySilvey_57-1717872556412.png" alt="AndySilvey_57-1717872556412.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>Make a note of the output from Postman:</P><DIV><DIV><SPAN>invitations"</SPAN><SPAN>: [</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"5e853a4b-0386-42e4-bae7-61a92f42b76f"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"from"</SPAN><SPAN>: {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"6cbebff8-816a-4375-a4d2-edfe79a25cc8"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"atSign"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"@exoticlongdrive"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"type"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"AtSignMember"</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"to"</SPAN><SPAN>: {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"97923715-8f3b-4071-a59d-365d99bf20a9"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"atSign"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"@nice6acting"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"type"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"AtSignMember"</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"timeSent"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>1717869978931518</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"blockchain"</SPAN><SPAN>: {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"57d82c25-0293-4ea6-99a8-92a1b6b57e23"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"name"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"Blockchain-Kyma-Trial"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"length"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>0</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"lastBlock"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>null</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"pendingBlock"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>null</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"direction"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"sent"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"message"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>null</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; }</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; ],</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"errors"</SPAN><SPAN>: []</SPAN></DIV><DIV><SPAN>}</SPAN></DIV></DIV><P>we will need the Invitation ID for the next step "<SPAN>5e853a4b-0386-42e4-bae7-61a92f42b76f</SPAN>"</P><P>Now that Blockchain Server atkrypto-v1 with the atSign&nbsp;@exoticlongdrive has invited Blockchain Server</P><P>atkrypto-v2 with the atSign&nbsp;@nice6acting to be a Member of the Blockchain&nbsp;Blockchain-Kyma-Trial, the</P><P>next step is for atkrypto-v2 to Accept the Invitation.</P><P>Again we will use the Invitation API as a POST to Accept the Invitation as follows:</P><P><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/invitation/5e853a4b-0386-42e4-bae7-61a92f42b76f/response?response=accept" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/invitation/5e853a4b-0386-42e4-bae7-61a92f42b76f/resp...</A></P><P>and the Postman view</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_58-1717872556412.png" style="width: 730px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120990iE3DE9D787E669C9A/image-dimensions/730x365?v=v2" width="730" height="365" role="button" title="AndySilvey_58-1717872556412.png" alt="AndySilvey_58-1717872556412.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>Now that we have a Blockchain across the two Blockchain Servers, we can Create a Block</P><P>This is how we do it, it will be a POST with Raw JSON payload</P><P><A href="https://atkrypto-v1.c-7541a80.kyma.ondemand.com/blockchain/57d82c25-0293-4ea6-99a8-92a1b6b57e23/block" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v1.c-7541a80.kyma.ondemand.com/blockchain/57d82c25-0293-4ea6-99a8-92a1b6b57e23/bloc...</A></P><P>{<BR />"data": "My first Blockchain Block on the SAP BTP Kyma Trial"<BR />}</P><P>this is how it looks in Postman</P><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1717920890459.png" style="width: 702px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121006iF29C3910254BC211/image-dimensions/702x407?v=v2" width="702" height="407" role="button" title="AndySilvey_0-1717920890459.png" alt="AndySilvey_0-1717920890459.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>Let's make a note of the result from Postman</P><DIV><DIV><SPAN>{</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"bd73bf61-1ff0-4b02-aac8-25b8f923410a"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"blockchainId"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"57d82c25-0293-4ea6-99a8-92a1b6b57e23"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"hash"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"599e8b006c9a28e26e18e88f8de16a0000042857e4c63af16dd1124f4593233f"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"prevHash"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>""</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"timestamp"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>1717870405912919</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"author"</SPAN><SPAN>: {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"name"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"@exoticlongdrive"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"publicKey"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnvzTUUTzIvdjjG7juR3jYwEDh0T+</SPAN></DIV><DIV><SPAN>loXyOTlIP4OiOA970NvjX3jqUoOye5rjHiXF3tXRwG3d4ZysNheCyhArtoK87oh641JxoXZAUmbFx/smQL5oX/</SPAN></DIV><DIV><SPAN>W6izGQNnvHeKKvVOqNxQ/TiV9ueynmdDyeUF7hSR1mb/XJEvyNWRaa0itrn3MK2W4S9FdipdzNg/DCE6ySP</SPAN></DIV><DIV><SPAN>jbkyUgGJoDeHkSE9RUGGG31tCiO134RVZ1i9GpxQ0gO9PjUZbywdayx6VqyeiG7uiEuSTCnEL4nkQ/WKoTD</SPAN></DIV><DIV><SPAN>80r5UTAbilAL64BBD+X1rbclVhVEhRcA5jAjTL5SyVl3Tz0b2XGNsps1TedhHwIDAQAB"</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; },</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp;&nbsp;</SPAN><SPAN>"data"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"TXkgZmlyc3QgQmxvY2tjaGFpbiBCbG9jayBvbiB0aGUgU0FQIEJUUCBLeW1hIFRyaWFs"</SPAN></DIV><DIV><SPAN>}</SPAN></DIV><DIV>&nbsp;</DIV><DIV>Note that the Data is now in Base64 encoding.</DIV><DIV>If we use an online Base64 converter, we can see that&nbsp;</DIV><DIV>"<SPAN>TXkgZmlyc3QgQmxvY2tjaGFpbiBCbG9jayBvbiB0aGUgU0FQIEJUUCBLeW1hIFRyaWFs"</SPAN></DIV><DIV><SPAN>converts to:</SPAN></DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_0-1717920283857.png" style="width: 713px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121003i3009EA2527F68AA5/image-dimensions/713x287?v=v2" width="713" height="287" role="button" title="AndySilvey_0-1717920283857.png" alt="AndySilvey_0-1717920283857.png" /></span><P>&nbsp;</P></DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV><SPAN>And now, finally, since we Created a Block on the Blockchain Server atkrypto-v1, let's see if we can </SPAN></DIV><DIV><SPAN>Read the Block from the other Blockchain Server atkrypto-v2</SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN>This is a GET</SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN><A href="https://atkrypto-v2.c-7541a80.kyma.ondemand.com/blockchain/57d82c25-0293-4ea6-99a8-92a1b6b57e23/lastBlocks" target="_blank" rel="nofollow noopener noreferrer">https://atkrypto-v2.c-7541a80.kyma.ondemand.com/blockchain/57d82c25-0293-4ea6-99a8-92a1b6b57e23/last...</A></SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN>This is how it looks in Postman</SPAN></DIV><DIV>&nbsp;</DIV><DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_60-1717872556414.png" style="width: 725px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/120994i10FA7EE664C0D583/image-dimensions/725x395?v=v2" width="725" height="395" role="button" title="AndySilvey_60-1717872556414.png" alt="AndySilvey_60-1717872556414.png" /></span><P>&nbsp;</P><P>&nbsp;</P><P>and this is the Result from Postman</P><DIV><DIV><SPAN>[</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"id"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"bd73bf61-1ff0-4b02-aac8-25b8f923410a"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"blockchainId"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"57d82c25-0293-4ea6-99a8-92a1b6b57e23"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"hash"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"599e8b006c9a28e26e18e88f8de16a0000042857e4c63af16dd1124f4593233f"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"prevHash"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>""</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"timestamp"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>1717870405912919</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"author"</SPAN><SPAN>: {</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"name"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"@exoticlongdrive"</SPAN><SPAN>,</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"publicKey"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>null</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp; },</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN><SPAN>"data"</SPAN><SPAN>:&nbsp;</SPAN><SPAN>"TXkgZmlyc3QgQmxvY2tjaGFpbiBCbG9jayBvbiB0aGUgU0FQIEJUUCBLeW1hIFRyaWFs"</SPAN></DIV><DIV><SPAN>&nbsp; &nbsp; }</SPAN></DIV><DIV><SPAN>]</SPAN></DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV><SPAN>The Data value which is returned (which is Base64 encoded) is:</SPAN></DIV><DIV><SPAN>"data": "TXkgZmlyc3QgQmxvY2tjaGFpbiBCbG9jayBvbiB0aGUgU0FQIEJUUCBLeW1hIFRyaWFs"</SPAN></DIV><DIV>&nbsp;</DIV><DIV>Let's see how that looks in the Base64 converter:</DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_1-1717920385803.png" style="width: 710px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/121004iB1AA33BC14500565/image-dimensions/710x292?v=v2" width="710" height="292" role="button" title="AndySilvey_1-1717920385803.png" alt="AndySilvey_1-1717920385803.png" /></span><P>&nbsp;</P></DIV><DIV>&nbsp;</DIV><DIV>It's the same - yay <span class="lia-unicode-emoji" title=":slightly_smiling_face:">πŸ™‚</span></DIV><DIV>&nbsp;</DIV><DIV><SPAN>And the Data value from when the Block was created was:</SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN>"data": "TXkgZmlyc3QgQmxvY2tjaGFpbiBCbG9jayBvbiB0aGUgU0FQIEJUUCBLeW1hIFRyaWFs"</SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN>They are the same, we did it, and it works.</SPAN></DIV><DIV>&nbsp;</DIV><DIV><SPAN>Here endeth today's lesson <span class="lia-unicode-emoji" title=":slightly_smiling_face:">πŸ™‚</span></SPAN><P>&nbsp;</P></DIV><DIV>&nbsp;</DIV><DIV>To Recap, this is what we have done here, starting from a clean sheet of paper we have:</DIV><DIV>. Set up a SAP BTP Trial Account</DIV><DIV>. Set up a SAP BTP Kyma Trial Account</DIV><DIV>. Installed 2 Enterprise Blockchain Server Instances on SAP BTP Kyma Trial</DIV><DIV>. Created a Blockchain across the 2 Enterprise Blockchain Server Instances on the SAP BTP Kyma Trial</DIV><DIV>. Written a Block to the Blockchain from one of the Blockchain Server Instances</DIV><DIV>. Read the Block from the Blockchain on the other Blockchain Server Instance</DIV><DIV>&nbsp;</DIV><DIV>And what you actually have is your own Blockchain which is running Publicly and Internet Facing.</DIV><DIV>If you give people the Url then they can work with your Blockchain.</DIV><DIV>And that's the beauty of running Blockchain on SAP BTP Kyma, you can make any kind of Blockchain you want, Private, Semi-Private, Syndicate, Public, and I find that, amazing</DIV><DIV>&nbsp;</DIV><DIV>If you have been reading my Blockchain blogs during the last few months you'll know I have been saying that we can run Blockchain on the SAP BTP Kyma Trial, and now you have the proof.</DIV><DIV>&nbsp;</DIV><DIV>When you follow this blog, it will take a few hours. And as I wrote at the top of the blog, if you have any challenges&nbsp; or questions, just write them in the comments and I will make sure they are answered and that you will be successful to get this running.</DIV><DIV>&nbsp;</DIV><DIV>Running Blockchain on the SAP BTP Kyma opens all kinds of opportunities for use cases where the Blockchain capabilities are needed.</DIV><DIV>&nbsp;</DIV><DIV><P><SPAN>What do you think, are the words Blockchain, Web3, Distributed Ledger Technology, starting to appear in your </SPAN><SPAN>Company's visions and technology visions ? What use cases are you looking at ? Let's chat about it in the </SPAN><SPAN>comments.</SPAN></P><P>&nbsp;</P><P>For now, over and out.</P><P>Andy Silvey.</P><P>Independent SAP Technical Architect and CEO of atkrypto.io</P><P>Author Bio:</P><P>Andy Silvey is a 25 years SAP Technology veteran&nbsp;[<EM>15 years SAP Basis and 10 years SAP Tech Arch including </EM></P><P><EM>Tech, Integration, Security, Data from 3.1H to S/4HANA PCE on RISE and the BTP and everything in between,</EM></P><P><EM>and<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/welcome-corner-blog-posts/andy-silvey-scn-moderator-spotlight/ba-p/13054438" target="_self">former SCN Moderator and Mentor alumni</A>].</EM></P><P data-unlink="true">Andy is also co-Founder of<SPAN>&nbsp;</SPAN>atkrypto&nbsp;<SPAN>&nbsp;</SPAN>inc, an startup whose ambition is to make Blockchain easy for Enterprise.</P><P>atkrypto.io's flagship product is the atkrypto Enterprise Blockchain Platform for SAP,&nbsp; and atkrypto.io is a</P><P>SAP Partner Edge Open EcoSystem Partner.&nbsp;</P><P>The&nbsp;atkrypto Enterprise Blockchain Platform for SAP has been designed by SAP Independent Experts for the</P><P>needs of SAP Customers and to be deployed on the SAP BTP Kyma Runtime Service and leverage native</P><P>integration to SAP Products.</P><P>atkrypto&nbsp;Enterprise Blockchain Platform for SAP has a number of unique qualities, including being the only</P><P>Blockchain software in the world which has a DataCenter version and a light mobile version which can run</P><P>on Edge/IoT/Mobile devices and enables data to be written to the Blockchain at the Edge where that same</P><P>Blockchain is running on a Server in the DataCenter, protecting the integrity and originality of data from the</P><P>Edge to Insights. Taking Blockchain to the Data at the Edge instead of taking the Data to the Blockchain.</P><P>&nbsp;</P><P><SPAN>All of this makes atkrypto,io the DePIN Decentralised Physical Infrastructure Network solution for Enterprise.</SPAN></P><P>&nbsp;</P><P data-unlink="true"><SPAN>atkrypto is one of the&nbsp;Next20 startups&nbsp;&nbsp;being featured at&nbsp;TM Forum's DTW Ignite in Copenhagen in June&nbsp;</SPAN></P><P>If you will be at DTW24 come and talk to us about Cyber Security of SAP Data with Enterprise Blockchain</P><P>and Telecoms and CSP's and AI and Sustainability and New Markets, all underpinned by the Blockchain.</P></DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></TD></TR><TR><TD width="3610.19px" height="30px">&nbsp;</TD></TR></TBODY></TABLE><P>&nbsp;</P> 2024-06-12T21:47:22.463000+02:00 https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/how-we-leveraged-generative-ai-to-help-our-acccount-executives-help-you/ba-p/13727299 How we leveraged Generative AI to help our Acccount Executives help you (customers) at Sapphire 2024 2024-06-18T12:20:11.515000+02:00 mangeshpise https://community.sap.com/t5/user/viewprofilepage/user-id/3250 <P><SPAN>What an amazing Sapphire Orlando in 2024 was! It is firing on all cylinders with amazing announcements of new solutions, new AI capabilities, current solutions getting better, new and strengthened partnerships within the ecosystems, and so on and so forth. Obviously, that was made possible because of the amazing customer base (in person, online, and in spirit) and the tenacious SAP staff who are dedicated to bringing the best to our customers.</SPAN></P><P><SPAN>However, reporting on what happened at SAP Sapphire is not the purpose of this blog post. I want to take you a little into the background to share a use case that we experimented with internally to try to elevate your experience at Sapphire. Yes, we used Generative AI (GenAI) on the SAP Business Technology Platform (SAP BTP) to equip our customer-facing teams to efficiently identify and recommend sessions based on the specific situation in your organization. There were more than 550 sessions over 12 solution areas and seven types of sessions. It's a lot, and building a perfect agenda that gives the best back for your time did need some extensive planning. Also, depending on where your organization is in your own transformation journey, there were some excellent sessions that provided great opportunities for you to learn from, make connections, and carry them back home to delve further into over the next few weeks. </SPAN></P><P><SPAN>So, in the spirit of being relevant, reliable, and responsible, we created an internal tool to indirectly help you via our field sales teams, especially your account executives. I am going to briefly touch upon some of the technologies that were used in the making and, most importantly, share what we learned from this experiment.</SPAN></P><P><FONT face="book antiqua,palatino" size="2" color="#808080"><SPAN><STRONG>NOTE:</STRONG> The use of this tool was&nbsp;discretionary due to it's experimental nature.</SPAN></FONT></P><H3 id="toc-hId-1145767031"><STRONG><SPAN>But first, what did the tool do?</SPAN></STRONG></H3><P><SPAN>The tool is a recommendation engine built using Generative AI techniques (more below), the consumption of which happens using a simple web page that captures relevant information from the user. It was a conscious decision to build a form and not a chat interface (</SPAN><EM><SPAN>we've got enough of those already!</SPAN></EM><SPAN>). This way, we took away the need for the user to be an expert prompt engineer. We manage prompt engineering expertise in the backend.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2024-06-11 at 10.47.52β€―AM.png" style="width: 561px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122085i7F41CD827A3E0837/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-06-11 at 10.47.52β€―AM.png" alt="Screenshot 2024-06-11 at 10.47.52β€―AM.png" /></span></P><P>&nbsp;</P><P style=" text-align: center; "><FONT face="courier new,courier" size="3">Fig. 1. SAP Sapphire Recommender</FONT></P><P>&nbsp;<SPAN>Upon filling in the information, the recommendation engine refers to the Sapphire session catalog from a vector database and identifies a list of sessions that will be beneficial for the described situation, landscape, and the role of the organization coming to Sapphire. </SPAN></P><P><SPAN>Then, based on the identified list of sessions, the tool makes personalized recommendations on why each session was identified and the value that can be obtained in the context of their current situation. Finally, it also wraps it up by writing a personalized email to the role identified, which serves as a cover letter for the recommendations.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2024-06-11 at 10.55.02β€―AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122087iB06DB83109C6FCAB/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-06-11 at 10.55.02β€―AM.png" alt="Screenshot 2024-06-11 at 10.55.02β€―AM.png" /></span></P><P>&nbsp;</P><P style=" text-align: center; "><FONT face="courier new,courier" size="3">Fig. 2(a). Response - personalized email&nbsp; </FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-06-11 at 10.56.08β€―AM.png" style="width: 864px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122089iA1A52CDC5CC1974F/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-06-11 at 10.56.08β€―AM.png" alt="Screenshot 2024-06-11 at 10.56.08β€―AM.png" /></span></P><P style=" text-align: center; "><FONT face="courier new,courier" size="3">Fig. 2(b). Response - personalized session recommendations</FONT></P><H3 id="toc-hId-949253526">&nbsp;</H3><H3 id="toc-hId-752740021"><STRONG><SPAN>Now, the Technology &amp; the Technique</SPAN></STRONG></H3><P><SPAN>The tool uses the popular Retrieval Augmented Generation (a.k.a. RAG) technique, which we used from Generative AI Hub in SAP BTP. The Generative AI Hub provides SAP AI Core, where we enable the LLM models from Azure Open AI service, as well as the Prompt Editor from the SAP AI Launchpad, where we created our prompt template, which was used to generate a well-grounded LLM prompt in runtime depending upon the information supplied via the UI. </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-06-11 at 1.54.45β€―PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/122094i3E4463CF607B3A2A/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-06-11 at 1.54.45β€―PM.png" alt="Screenshot 2024-06-11 at 1.54.45β€―PM.png" /></span></P><P style=" text-align: center; "><FONT face="courier new,courier" size="3"> Fig. 3. GenAI using RAG on SAP BTP</FONT></P><P><SPAN>Sapphire session information, being practically static information for all sets and purposes, was converted into text embeddings and stored in the SAP HANA Cloud Vector engine. The RAG application would play a central role here in receiving user input via the UI, converting it into text embeddings, and using these embeddings to perform semantic search in the SAP HANA Cloud Vector engine. This ensured there was a semantic relation between the situation described by the user and the session descriptions. </SPAN></P><H3 id="toc-hId-556226516"><STRONG><SPAN>Lessons Learnt</SPAN></STRONG></H3><P><SPAN>So, apart from the fact that we </SPAN><EM><SPAN>ate our own dog food</SPAN></EM><SPAN>, we had many lessons to learn from this internal experiment. Some of the critical ones are worth sharing and are listed below:</SPAN></P><UL><LI>Pay special attention to Data <U>source</U>, Data <U>attributes</U>, and Data <U>quality</U>. RAG helps ground LLMs with contextual information. So, the better the context, better is LLM response. Also try experimenting with data format as it inversely impacts token requirements and response quality.</LI><LI>Test, Test, Test. Prompt template testing is the most crucial part of building GenAI applications. You need to make sure prompts are provided specific goals, tasks, and guardrails.</LI><LI>Watch-out for hallucinations! Make sure you utilize the 'temperature' settings for LLMs appropriately. In cases where creativity can be detrimental, set lower temperatures. For example, in this tool, LLM generating imaginary sessions would be detrimental, so lower temperatures were set. On the other hand, for content generation, such as emails, blogs, etc., higher values will work best.</LI><LI>Set and standardize expectations from LLM, specifically the response format. Specify if you want it to provide a response as a table, or as a JSON, or simple text with or without formatting, within specific length, etc.</LI></UL><H3 id="toc-hId-359713011"><STRONG><SPAN>Biggest Take-away!</SPAN></STRONG></H3><P><SPAN>There are many low-hanging opportunities around us where technology like GenAI or platforms like SAP BTP can provide quick value. If nothing, these low-hanging opportunities provide perfect opportunities to learn and set up the foundation to manage the next innovation projects. Leveraging select use cases as showcases helps drive new idea generation and incremental utilization of foundation technology investments (stickiness). </SPAN></P><P><SPAN>If you have incorporated GenAI in any low-hanging opportunities in your organization, we'd love to hear about your experience and approach from you. Stay engaged!</SPAN></P> 2024-06-18T12:20:11.515000+02:00 https://community.sap.com/t5/technology-blogs-by-members/sap-cloud-transport-management/ba-p/13737936 SAP Cloud Transport Management 2024-06-27T09:56:42.960000+02:00 Daniel_Enderli https://community.sap.com/t5/user/viewprofilepage/user-id/2995 <H3 id="toc-hId-1146697090">Introduction</H3><P>I have experimented a bit with SAP Cloud Transport Management.<BR />I would like to share my experiences in this blog post.</P><H3 id="toc-hId-950183585">The Big Picture</H3><P>As usual on SAP BTP you have to use a service from the service marketplace to use the&nbsp;SAP Cloud Transport Management. You also have to create a solution landscape on the SAP BTP.&nbsp;</P><P>I designed it as follows:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_0-1718895520622.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126456i7CD063FDE3D37705/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_0-1718895520622.png" alt="Daniel_Enderli_0-1718895520622.png" /></span></P><H3 id="toc-hId-753670080">SAP Cloud Transport Management</H3><P>The application looks likt this:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_0-1718894692884.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126448i737A1DD9236FE022/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_0-1718894692884.png" alt="Daniel_Enderli_0-1718894692884.png" /></span></P><H3 id="toc-hId-557156575">Transport Nodes</H3><P>I created Transport Nodes for every System, like my 3 system landscape DEV, QAS, PRD.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_1-1718894738310.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126451i97229B737AC9C0CE/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_1-1718894738310.png" alt="Daniel_Enderli_1-1718894738310.png" /></span></P><H3 id="toc-hId-360643070">Transport Routes</H3><P>Very similar to the transport routes in classic ABAP.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_2-1718894780685.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126452i76F3384C32B390ED/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_2-1718894780685.png" alt="Daniel_Enderli_2-1718894780685.png" /></span></P><H3 id="toc-hId-164129565">Landscape Visualization</H3><P>I really like the visualization with the status of the import queues and it gives a good overview.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_3-1718894820422.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126453i2ECC474E940C4490/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_3-1718894820422.png" alt="Daniel_Enderli_3-1718894820422.png" /></span></P><H3 id="toc-hId--32383940">Integration with SAP Cloud ALM</H3><P>For a comprehensive SAP ALM, it is important that SAP Cloud Transport Management can also be connected to SAP Cloud ALM. This means that the entire life cycle from the process, the requirement, testing to deployment and operation can be managed. Here a useful blogpost: <A title="Integration of SAP Cloud Transport Management and SAP Cloud ALM" href="https://community.sap.com/t5/technology-blogs-by-sap/new-integration-of-sap-cloud-transport-management-and-sap-cloud-alm/ba-p/13728049" target="_blank">Link</A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daniel_Enderli_0-1719475316717.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/129392iCB10A6E063E71EB0/image-size/medium?v=v2&amp;px=400" role="button" title="Daniel_Enderli_0-1719475316717.png" alt="Daniel_Enderli_0-1719475316717.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId--228897445">From my point of view, the following points are important for Transport Management/Deloyments</H3><UL><LI>The connection of hybrid landscapes</LI><LI>The central control of deployments</LI><LI>Orchestrating multiple system landscapes</LI><LI>Deployments of hybrid development technologies</LI><LI>Central, clear reporting</LI><LI>Options for intervention in the event of errors</LI><LI>Integration with SAP Cloud ALM</LI></UL><P>&nbsp;</P> 2024-06-27T09:56:42.960000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/adding-custom-metrics-to-a-cap-application-using-cap-js-telementry-plugin/ba-p/13744222 Adding Custom Metrics to a CAP application using cap-js/telementry plugin and SAP Cloud Logging 2024-06-27T10:15:10.013000+02:00 gopalanand https://community.sap.com/t5/user/viewprofilepage/user-id/126694 <H1 id="toc-hId-889359038">About</H1><P><A href="https://help.sap.com/docs/btp/btp-developers-guide/dev-guide-operate-cap" target="_blank" rel="noopener noreferrer">Observability</A><SPAN>&nbsp;</SPAN>helps to take data-driven informed decisions based on runtime Observability telemetry data (logs, metrics, traces, events, ...) and provides insights into SAP &amp; customer services and systems to understand and improve efficiency, scalability, resilience, and availability.</P><P>When you seek for fully detailed observability data of your application, you can use<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/cloud-logging/cloud-logging/what-is-sap-cloud-logging?locale=en-US" target="_blank" rel="noopener noreferrer">SAP Cloud Logging</A>. SAP Cloud Logging allows you to slice and dice logs, metrics, and traces in order to analyze functional and performance behaviour of your BTP workload on Cloud Foundry and Kyma.</P><P>Metrics are "<STRONG>measurements captured at runtime</STRONG>", which help you understand your app's health and performance.</P><P>Out of the box,<SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/163398">@cap</a>-js/telemetry<SPAN>&nbsp;</SPAN>offers metrics regarding the app's database pool, namely the<SPAN>&nbsp;</SPAN><A href="https://www.npmjs.com/package/generic-pool#pool-info" target="_blank" rel="nofollow noopener noreferrer">pool info</A><SPAN>&nbsp;</SPAN>statistics of<SPAN>&nbsp;</SPAN>generic-pool.</P><H4 id="toc-hId-1080093690"><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/163398">@cap</a>-js/telemetry<SPAN>&nbsp;</SPAN>is a CDS plugin providing observability features, including<SPAN>&nbsp;</SPAN><A href="https://opentelemetry.io/docs/concepts/instrumentation/automatic" target="_blank" rel="nofollow noopener noreferrer">automatic OpenTelemetry instrumentation</A>.</H4><P>Documentation can be found at<SPAN>&nbsp;</SPAN><A href="https://cap.cloud.sap/docs" target="_blank" rel="nofollow noopener noreferrer">cap.cloud.sap</A><SPAN>&nbsp;</SPAN>and<SPAN>&nbsp;</SPAN><A href="https://opentelemetry.io/docs" target="_blank" rel="nofollow noopener noreferrer">opentelemetry.io</A>.</P><H2 id="toc-hId-625414747">Prerequisite:</H2><P>1. <A href="https://github.com/SAP-samples/btp-developer-guide-cap/blob/main/documentation/observability/3-implement-traces.md" target="_self" rel="nofollow noopener noreferrer">You have Incident Management Application configured till this step</A></P><DIV class=""><H2 id="toc-hId-428901242">Setup Metrics collection</H2></DIV><P>Metrics are "measurements captured at runtime", which help you understand your app's health and performance.</P><P>Out of the box,<SPAN>&nbsp;</SPAN><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/163398">@cap</a>-js/telemetry<SPAN>&nbsp;</SPAN>offers metrics regarding the app's database pool, namely the<SPAN>&nbsp;</SPAN><A href="https://www.npmjs.com/package/generic-pool#pool-info" target="_blank" rel="nofollow noopener noreferrer">pool info</A><SPAN>&nbsp;</SPAN>statistics of<SPAN>&nbsp;</SPAN>generic-pool.</P><DIV class=""><H2 id="toc-hId-232387737">Run and test locally</H2></DIV><P>Once the application has all the requried configurations. The application can be tested locally.</P><OL><LI><P>In the terminal run the application with<SPAN>&nbsp;</SPAN>cds watch</P></LI><LI><P>Open the application and create a incident.</P></LI><LI><P>Check the logs in terminal</P><P>Example db pool metrics printed to the console:</P><DIV class=""><PRE>[telemetry] - db.pool: size | available | pending 1/1 | 1/1 | 0</PRE><DIV class="">&nbsp;</DIV></DIV></LI></OL><DIV class=""><DIV class=""><H2 id="toc-hId-35874232">Adding custom metrics to the application</H2></DIV><P>The business user could check how many "<STRONG>High</STRONG>" incidents are being currently handled in the system using the custom metrics. Custom metrics can be added as shown in the following example:</P><OL><LI>Create a new file at root of the application, name it<SPAN>&nbsp;</SPAN>server.js<SPAN>&nbsp;</SPAN>and paste the following code:<DIV class=""><PRE> <SPAN class="">const</SPAN> <SPAN class="">cds</SPAN> <SPAN class="">=</SPAN> <SPAN class="">require</SPAN><SPAN class="">(</SPAN><SPAN class="">'@sap/cds'</SPAN><SPAN class="">)</SPAN> <SPAN class="">// Import necessary modules</SPAN> <SPAN class="">const</SPAN> <SPAN class="">{</SPAN> metrics <SPAN class="">}</SPAN> <SPAN class="">=</SPAN> <SPAN class="">require</SPAN><SPAN class="">(</SPAN><SPAN class="">'@opentelemetry/api'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">const</SPAN> <SPAN class="">meter</SPAN> <SPAN class="">=</SPAN> <SPAN class="">metrics</SPAN><SPAN class="">.</SPAN><SPAN class="">getMeter</SPAN><SPAN class="">(</SPAN><SPAN class="">'@capire/incidents:incidents.urgency.high'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">// Create a counter</SPAN> <SPAN class="">const</SPAN> <SPAN class="">counter</SPAN> <SPAN class="">=</SPAN> <SPAN class="">meter</SPAN><SPAN class="">.</SPAN><SPAN class="">createUpDownCounter</SPAN><SPAN class="">(</SPAN><SPAN class="">'incidents.urgency.high'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">cds</SPAN><SPAN class="">.</SPAN><SPAN class="">on</SPAN><SPAN class="">(</SPAN><SPAN class="">'served'</SPAN><SPAN class="">,</SPAN> <SPAN class="">async</SPAN> <SPAN class="">(</SPAN><SPAN class="">)</SPAN> <SPAN class="">=&gt;</SPAN> <SPAN class="">{</SPAN> <SPAN class="">const</SPAN> <SPAN class="">{</SPAN> ProcessorService <SPAN class="">}</SPAN> <SPAN class="">=</SPAN> <SPAN class="">cds</SPAN><SPAN class="">.</SPAN><SPAN class="">services</SPAN> <SPAN class="">// Increase count when new incident with high urgency is created</SPAN> <SPAN class="">ProcessorService</SPAN><SPAN class="">.</SPAN><SPAN class="">after</SPAN><SPAN class="">(</SPAN><SPAN class="">"CREATE"</SPAN><SPAN class="">,</SPAN> <SPAN class="">"Incidents"</SPAN><SPAN class="">,</SPAN> <SPAN class="">(</SPAN><SPAN class="">results</SPAN><SPAN class="">,</SPAN> <SPAN class="">req</SPAN><SPAN class="">)</SPAN> <SPAN class="">=&gt;</SPAN> <SPAN class="">{</SPAN> <SPAN class="">if</SPAN> <SPAN class="">(</SPAN><SPAN class="">results</SPAN><SPAN class="">.</SPAN><SPAN class="">urgency_code</SPAN> <SPAN class="">===</SPAN> <SPAN class="">"H"</SPAN> <SPAN class="">&amp;&amp;</SPAN> <SPAN class="">results</SPAN><SPAN class="">.</SPAN><SPAN class="">status_code</SPAN> <SPAN class="">!==</SPAN> <SPAN class="">"C"</SPAN><SPAN class="">)</SPAN> <SPAN class="">{</SPAN> <SPAN class="">counter</SPAN><SPAN class="">.</SPAN><SPAN class="">add</SPAN><SPAN class="">(</SPAN><SPAN class="">1</SPAN><SPAN class="">,</SPAN> <SPAN class="">{</SPAN> <SPAN class="">'sap.tenancy.tenant_id'</SPAN>: <SPAN class="">req</SPAN><SPAN class="">.</SPAN><SPAN class="">tenant</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">}</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">// Reduce count once incident is closed</SPAN> <SPAN class="">ProcessorService</SPAN><SPAN class="">.</SPAN><SPAN class="">after</SPAN><SPAN class="">(</SPAN><SPAN class="">"UPDATE"</SPAN><SPAN class="">,</SPAN> <SPAN class="">"Incidents"</SPAN><SPAN class="">,</SPAN> <SPAN class="">(</SPAN><SPAN class="">results</SPAN><SPAN class="">,</SPAN> <SPAN class="">req</SPAN><SPAN class="">)</SPAN> <SPAN class="">=&gt;</SPAN> <SPAN class="">{</SPAN> <SPAN class="">if</SPAN> <SPAN class="">(</SPAN><SPAN class="">results</SPAN><SPAN class="">.</SPAN><SPAN class="">urgency_code</SPAN> <SPAN class="">===</SPAN> <SPAN class="">"H"</SPAN> <SPAN class="">&amp;&amp;</SPAN> <SPAN class="">results</SPAN><SPAN class="">?.</SPAN><SPAN class="">status_code</SPAN> <SPAN class="">===</SPAN> <SPAN class="">"C"</SPAN><SPAN class="">)</SPAN> <SPAN class="">{</SPAN> <SPAN class="">counter</SPAN><SPAN class="">.</SPAN><SPAN class="">add</SPAN><SPAN class="">(</SPAN><SPAN class="">-</SPAN><SPAN class="">1</SPAN><SPAN class="">,</SPAN> <SPAN class="">{</SPAN> <SPAN class="">'sap.tenancy.tenant_id'</SPAN>: <SPAN class="">req</SPAN><SPAN class="">.</SPAN><SPAN class="">tenant</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">}</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">module</SPAN><SPAN class="">.</SPAN><SPAN class="">exports</SPAN> <SPAN class="">=</SPAN> <SPAN class="">cds</SPAN><SPAN class="">.</SPAN><SPAN class="">server</SPAN></PRE></DIV></LI></OL><DIV class=""><H2 id="toc-hId--160639273">Deploy the application</H2></DIV><UL><LI>For BTP Cloud Foundry runtime, follow the steps described<SPAN>&nbsp;</SPAN><A href="https://github.com/SAP-samples/btp-developer-guide-cap/blob/main/documentation/observability/4-deploy-to-cf.md" target="_blank" rel="noopener nofollow noreferrer">here</A></LI><LI>For BTP Kyma runtime, follow the steps described<SPAN>&nbsp;</SPAN><A href="https://github.com/SAP-samples/btp-developer-guide-cap/blob/main/documentation/observability/5-deploy-to-kyma.md" target="_blank" rel="noopener nofollow noreferrer">here</A></LI></UL><DIV class=""><H2 id="toc-hId--357152778">Access Application Metrics</H2></DIV><OL><LI>On the left side of the screen, click the breadcrumb and choose<SPAN>&nbsp;</SPAN><STRONG>Discover</STRONG>.</LI><LI>On the<SPAN>&nbsp;</SPAN><STRONG>Discover Screen</STRONG>,<SPAN>&nbsp;</SPAN>logs-cfsyslog-*<SPAN>&nbsp;</SPAN>is selected by default. You can see the application logs.</LI><LI>Choose<SPAN>&nbsp;</SPAN>logs-cfsyslog-*, and dropdown menu appears. Select<SPAN>&nbsp;</SPAN>metrics-otel-v1-*. This will display the metrics from the application.</LI><LI>Select the fields from the left side of the screen to view specific fields. The output should be displayed like this:</LI></OL><DIV class=""><H3 id="toc-hId--424583564">Create Visualisation for Custom Metrics</H3></DIV><P>In the previous chapter, you created a custom metric to count the "<STRONG>High</STRONG>" urgency incidents. You can create a custom visualisation to show the count.</P><OL><LI><P>On the left side breadcrumb, choose<SPAN>&nbsp;</SPAN><STRONG>Visualize</STRONG>.</P></LI><LI><P>Choose<SPAN>&nbsp;</SPAN><STRONG>Create visualization</STRONG>.</P></LI><LI><P>A dialog appears. Choose<SPAN>&nbsp;</SPAN><STRONG>Metric</STRONG>.</P></LI><LI><P>On the right side of the screen, choose<SPAN>&nbsp;</SPAN><STRONG>Metric</STRONG>.</P></LI><LI><P>Choose the dropdown under<SPAN>&nbsp;</SPAN><STRONG>Aggregation</STRONG><SPAN>&nbsp;</SPAN>and select<SPAN>&nbsp;</SPAN><STRONG>Top Hit</STRONG>.</P></LI><LI><P>Choose the<SPAN>&nbsp;</SPAN><STRONG>Field</STRONG><SPAN>&nbsp;</SPAN>dropdown menu and select the<SPAN>&nbsp;</SPAN><STRONG>value</STRONG>.</P></LI><LI><P>Under the<SPAN>&nbsp;</SPAN><STRONG>Custom</STRONG><SPAN>&nbsp;</SPAN>label, enter a name such as<SPAN>&nbsp;</SPAN><STRONG>High Urgency Incidents</STRONG>.</P></LI><LI><P>Choose<SPAN>&nbsp;</SPAN><STRONG>Update</STRONG><SPAN>&nbsp;</SPAN>at the bottom of the screen.</P></LI><LI><P>The visualisation will be created.<SPAN>&nbsp;</SPAN></P><DIV class="">&nbsp;</DIV><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="customdashboard (1).png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/129290iD364C6C7C46BFF44/image-size/large?v=v2&amp;px=999" role="button" title="customdashboard (1).png" alt="customdashboard (1).png" /></span></P><P>&nbsp;</P><P>&nbsp;</P>You can save this visualisation for quick access.</LI></OL><P>&nbsp;#Observability #opentelemetry #SAPCloudLogging #SAPBTP #BTP #Metrics&nbsp;</P></DIV> 2024-06-27T10:15:10.013000+02:00 https://community.sap.com/t5/technology-blogs-by-members/sap-btp-audit-log-enable-and-retrieve-logs/ba-p/13759494 SAP BTP Audit log Enable and retrieve logs 2024-07-12T16:55:44.593000+02:00 anikesh_jyotishi2 https://community.sap.com/t5/user/viewprofilepage/user-id/711968 <P><STRONG>Overview</STRONG></P><P>In this blog, I have outlined the steps to enable SAP BTP audit, retrieve logs, and provide details on all audit log subscriptions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P><P><STRONG>DISCLAIMER</STRONG></P><P>The content of this blog post is provided β€œAS IS”. This information could contain technical inaccuracies, typographical errors, and out-of-date information. This document may be updated or changed without notice at any time. Use of the information is therefore at your own risk. In no event shall SAP be liable for special, indirect, incidental, or consequential damages resulting from or related to the use of this document.</P><P><STRONG>Purpose&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </STRONG></P><P>In this section, you can find information about audit log functionalities in the Cloud Foundry environment.</P><P>SAP Audit Log is a core, security, and compliance-based service within SAP BTP, designed for audit purposes. The Audit Log Service for SAP BTP Applications and Services offers the following features:</P><P><STRONG>Default Features:</STRONG></P><P>Compliance audit data from SAP BTP services and applications is written using the oAuth2 service plan. By default, this data is retained for 90 days at no additional cost, and retrieval of audit data within this period is managed through the Auditlog Management Service.</P><P><STRONG>Advanced Features:</STRONG></P><P>Write audit data from your own BTP applications., Configure the retention period.</P><P>These advanced features help you comply with SAP Product Standards and industry regulations. To enable them, you need to activate the premium edition service plan, which incurs additional costs based on usage, Audit logs are a special type of log that provide security-relevant chronological records, serving as documentary evidence for events or activities. The table below illustrates the differences between audit logs, activity logs, and application logs. Note that SAP Audit Log only stores audit logs written by SAP BTP services when actions are taken on your account data.</P><P><STRONG><U>SAP BTP Audit API service Subscriptions.</U></STRONG></P><P>3 plans or subscription SAP provided for BTP Audit logs</P><P>Premium Subscription :- &nbsp;Reach out to SAP with retantion period</P><P>Default Plan :- Fetch Audit log for subaccount</P><P>Central Plan &nbsp;:- Fetch Audit logs for Global account</P><P>&nbsp;</P><P><STRONG>SAP BTP Audit logs Enable / View </STRONG></P><P><STRONG>&nbsp;&nbsp; Prerequisite </STRONG></P><P>You should have the SAP BTP CLI installed on your machine. Additionally, the Postman tool should be installed to retrieve logs.</P><P><STRONG>&nbsp;&nbsp; Steps: –</STRONG></P><UL><LI>Create Service Instance for Service</LI><LI>Create a key for the service instance</LI><LI>List the key of the service instance</LI><LI>Audit Log Retrieval:-</LI><LI>Generate OAUTH2 post access key</LI><LI>Retrieval log using Get via access key</LI></UL><P><STRONG>Create Service Instance for Service</STRONG>:- &nbsp;</P><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create service instance via CLI command line :-</P><P>cf create-service auditlog-management default serviceInstance</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_0-1720797191441.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136094iCEA5E5386660B3FA/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_0-1720797191441.png" alt="anikesh_jyotishi2_0-1720797191441.png" /></span></P><P>I have named the instance "serviceInstance," but you can choose a name that suits your preference.</P><P><STRONG>Create a key for the service instance:-</STRONG></P><P>Create Key for service instance via CLI command line :-</P><P>cf create-service-key serviceInstance key</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_1-1720797267617.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136095i449B313F548196D0/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_1-1720797267617.png" alt="anikesh_jyotishi2_1-1720797267617.png" /></span></P><P>I have named the Key "key," but you can choose a name that suits your preference.</P><P><STRONG>List the key of the service instance:- </STRONG></P><P>cf service-key serviceInstance key</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_0-1720800464754.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136109i49D13F0DEBE4CCF7/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_0-1720800464754.png" alt="anikesh_jyotishi2_0-1720800464754.png" /></span></P><P>&nbsp;</P><P>List all keys, users id, password and URLs.</P><P>All below info you will get from above command output</P><P>Client ID:-</P><P>Client secret:-</P><P>URL 1:- <A href="https://abc.eu10.hana.ondemand.com" target="_blank" rel="noopener nofollow noreferrer">https://abc.eu10.hana.ondemand.com</A></P><P>URL2 :- <A href="https://auditlog-management.cfapps.eu10.hana.ondemand.com" target="_blank" rel="noopener nofollow noreferrer">https://auditlog-management.cfapps.eu10.hana.ondemand.com</A></P><P>&nbsp;</P><UL><LI>Audit Log Retrieval:-</LI><LI><STRONG>Generate OAUTH2 post access key</STRONG></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_4-1720795973221.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136066iF6484B96721D18AF/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_4-1720795973221.png" alt="anikesh_jyotishi2_4-1720795973221.png" /></span></P><P>&nbsp;</P><P>Open postman tool and select post use URL1 with /oauth/token?grant_type=client_credentials extension for get new access token for retrieve audit logs.</P><P>Generate access token and use for GET audit logs from BTP sub account</P><P>&nbsp;</P><UL><LI><STRONG>Retrieval log using Get via access key</STRONG></LI></UL><P><STRONG>&nbsp;</STRONG></P><P>Open postman tool and select post use URL2 with /auditlog/v2/auditlogrecords extension for retrieve audit logs.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_0-1720796729582.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136091i09BD8B36761F5FDC/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_0-1720796729582.png" alt="anikesh_jyotishi2_0-1720796729582.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>All output will be formatted into JSON. You can copy this output and view it in Excel or use visualization tools for better structure.</P><P>You can use this JSON format to import into Excel or a visualization tool. Here’s how to do it:</P><OL><LI>Copy the JSON data above.</LI><LI>Open Excel.</LI><LI>Go to the Data tab.</LI><LI>Click on Get Data &gt; From Other Sources &gt; From Web.</LI><LI>Paste the JSON data into the URL box and proceed.</LI></OL><P>For a more complex or customized data set, provide the details, and I'll format it accordingly.</P><P>&nbsp;</P><H3 id="toc-hId-1148599093"><STRONG>Reference SAP Notes :-</STRONG></H3><P>&nbsp;</P><P><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/audit-log-retrieval-api-usage-for-subaccounts-in-cloud-foundry-environment" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/btp/sap-business-technology-platform/audit-log-retrieval-api-usage-for-subaccounts-in-cloud-foundry-environment</A></P><P>2637286 - How to collect Audit Logs for SAP BTP</P><H3 id="toc-hId-952085588"><STRONG>Advantages:-</STRONG></H3><P>Useful for audit, review activities and fix development issues</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="anikesh_jyotishi2_6-1720795973245.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/136069i135366B33F036AAB/image-size/medium?v=v2&amp;px=400" role="button" title="anikesh_jyotishi2_6-1720795973245.png" alt="anikesh_jyotishi2_6-1720795973245.png" /></span></P><P>&nbsp;</P><P><STRONG>I hope this document will help you with the </STRONG><STRONG>BTP Audit log Enable and retrieve logs</STRONG></P><P>&nbsp;</P><P>Cheers!</P><P>Anikesh Jyotishi</P> 2024-07-12T16:55:44.593000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/ai-powered-summarization-tool-with-programmatical-pod-spawning-in-kyma-for/ba-p/13853970 AI-powered Summarization Tool with Programmatical Pod Spawning in Kyma for Asynchronous Processing 2024-09-10T10:45:13.971000+02:00 ヨをヒム https://community.sap.com/t5/user/viewprofilepage/user-id/1699308 <DIV class="">&nbsp;</DIV><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Text-Summarization.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/165820iF863C8ED9E6FBF00/image-size/large?v=v2&amp;px=999" role="button" title="Text-Summarization.jpg" alt="Text-Summarization.jpg" /></span></P><DIV class=""><H1 id="toc-hId-918888799">AI-Powered Summarization Tool in SAP Kyma</H1><H2 id="toc-hId-851458013">SummurAI - Get your&nbsp;</H2><P>In today's fast-paced world, information overload is a common challenge. Whether it’s for business analysts, academia, or everyday reading, lengthy documents can often be overwhelming and time-consuming. To address this issue, I have developed a scalable yet simple AI-powered summarization service that easily extracts the most important information from large documents and writes a consolidated summary. With the help of the python kubernetes library, I was able to run the summarization processes asynchronously, allowing for multiple summaries to be written simultaneously. Just send in your document and let the summurai do it's business, while you deal with other tasks until you receive the summary by email. This makes the process of information consumption very simple and more effective and efficient.</P><P>&nbsp;</P><H2 id="toc-hId-654944508">Simple UX Workflow</H2><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ux workflow.drawio (1).png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163890i431FD098F092801E/image-size/large?v=v2&amp;px=999" role="button" title="ux workflow.drawio (1).png" alt="ux workflow.drawio (1).png" /></span></DIV><H3 id="toc-hId-587513722">Options and LLM Parameters</H3><UL><LI><STRONG>Model:&nbsp;</STRONG>Chose from a variety of large language models to get different results</LI><LI><STRONG>Summarization Method:&nbsp;</STRONG>Chose from 3 different summarization methods:<UL><LI>Stuff: Summarizing the whole document in one single request, which can be problematic with very large documents.</LI><LI>Map Reduce: Summarizing chunks of a document seperately, before producing a final consolidated summary from all the summarized chunks.</LI><LI>Refine: Starting with the summarization of the first chunk, then repeatedly takin in the already summarized text, adding the next chunk of the document and creating a new summary from that until all the chunks of the document were processed.</LI></UL></LI><LI><STRONG>Summarization Language:&nbsp;</STRONG>Configures the desired language of the summary.</LI><LI><STRONG>Chunk Settings and Temperature:&nbsp;</STRONG>Set the chunk size for the splitting of the document and an overlap to smoothen the text chunks. You may also set a temperature for the language model, but it is recommended to set it very low, since a summarization is very objective and doesn't require any creativity from the llm.</LI></UL><P>&nbsp;</P><DIV class=""><H2 id="toc-hId-261917498">Architecture</H2><P>&nbsp;</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="summurai2.drawio.png" style="width: 920px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/164253i539BC9BAD06D6F27/image-size/large?v=v2&amp;px=999" role="button" title="summurai2.drawio.png" alt="summurai2.drawio.png" /></span><UL><LI><STRONG>API Trigger:</STRONG> User actions as described in the UX Workflow call an endpoint of the SummurAI service, starting the summarization process with uploaded document and the configured options and parameters</LI><LI><STRONG>File and Parameter Management:</STRONG><SPAN> The uploaded PDF is saved, and necessary parameters and credentials are stored as environment variables for subsequent processing in the pod that will be spawned for the summarization.</SPAN></LI><LI><STRONG>Kubernetes Integration:</STRONG> A Kubernetes job is created dynamically with the python kubernetes library to be able to run multiple summarization processes simultaneously since they usually take some time to finish, especially with larger documents. This procedure will be explained further below -&gt;&nbsp;</LI><LI><STRONG>Summarization Process:&nbsp;</STRONG>An LLM chain is initialized and invoked with the python langchain library with the specified model, the set parameters and the document, split into smaller chunks. After some time, the chain will produce a summary in html format as output, which will be attached to an email and sent using a python email library.</LI><LI><STRONG>Resource Cleanup:</STRONG> Upon completion, the pod is deleted after 5 minutes of inactivity and the corresponding files in the shared mounted volume are deleted.</LI></UL><P>&nbsp;</P><H2 id="toc-hId-65403993">Detailed Walkthrough of my Approach for Programmatic Pod-Spawning in Kyma</H2><P>The Motivation for this approach first of all the long summarization process, which, depending on the method used, can easily take an hour if the document is really big.</P><P>So, to prevent the user from having to stay on the UI the whole time, and, more importantly, to allow multiple users to use the service at the same time, I decided that it would be interesting to spawn a new K8s Job for every summarization process. That Job then automatically spawns a Pod to run it's logic in. When the pod finished it's logic, after 5 minutes of inactivity, it is being deleted.</P><P>In the following I'll explain, how this works based on some code snippets. The python kubernetes library makes it really comfortable. Basically, the yaml structure has to be transformed into the following structure of objects from the kubernetes library.</P><P>The following modules will be needed throughout the procedure:</P></DIV><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from kubernetes import client, config</code></pre><P>&nbsp;</P><P>First, load the config of your current cluster:</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>try: config.load_incluster_config() except config.ConfigException as e: logging.error(f"Couldn't load in cluster config: {e}")</code></pre><P>&nbsp;</P><P>Then define the necessary kubernetes objects, that you want your job to be able to use. This is the example from my code:</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code> # Define the shared volume shared_volume = client.V1Volume( name="summurai-pv", persistent_volume_claim=client.V1PersistentVolumeClaimVolumeSource( claim_name="summurai-pvc" ) ) # Define the volume mount for the worker pod volume_mount = client.V1VolumeMount( mount_path="/mnt/shared", name="summurai-pv" ) # Define the job job = client.V1Job( api_version="batch/v1", kind="Job", metadata=client.V1ObjectMeta(name=job_name, namespace=namespace), spec=client.V1JobSpec( template=client.V1PodTemplateSpec( spec=client.V1PodSpec( containers=[ client.V1Container( name=pod.name, image=pod.image, env=env_vars, command=["python", "-c", "import job; job.main()"], volume_mounts=[volume_mount] ) ], volumes=[shared_volume], restart_policy="Never" ) ), ttl_seconds_after_finished=300 # 5 minutes ) )</code></pre><P>&nbsp;</P><P>Again, you're defining a Job that contains a Pod configuration which again contains configurations for all the necessary kubernetes elements. In my case that is a Container and a Volume.<BR />For the Container you want to pass in a self chosen name, a docker image, a list of the needed environment variables (use the type V1EnvVar(name="", value="") from the kubernetes.client module) and a list of the Volume Mounts, as well as a command that get's executed upon pod startup.</P><P>Eventually, you will need to actually create the job with the configuration that you just defined, like this:</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># Create the job batch_v1 = client.BatchV1Api() batch_v1.create_namespaced_job(body=job, namespace=namespace)</code></pre><P>&nbsp;</P><P>Now some helper functions and extra information:</P><P>For the pod image, I'm retrieving the image of the "parent pod" (as I will call the pod, that receives the requests and spawns the Jobs) and use that, since it contains all the necessary code.</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>def get_pod_image(pod_name): v1 = client.CoreV1Api() try: pod = v1.read_namespaced_pod(name=pod_name, namespace="aiplayground") return pod.spec.containers[0].image except ApiException as e: logging.error(f"Exception while trying to get image for pod {pod_name}: {e}") return None</code></pre><P>&nbsp;</P><P>Pay attention that your pod has the right Role and Role Binding configured for all the actions. The following YAML file covers all the necessary permissions that I need for my procedure:</P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code># Role apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: aiplayground name: summurai-job-spawner rules: - apiGroups: ["batch"] resources: ["jobs"] verbs: ["create", "get", "list", "watch", "delete"] - apiGroups: [""] resources: ["pods"] verbs: ["create", "get", "list", "watch", "delete"] --- # Role Binding apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: summurai-job-spawner-binding namespace: aiplayground subjects: - kind: ServiceAccount name: summurai-job-spawner namespace: aiplayground roleRef: kind: Role name: summurai-job-spawner apiGroup: rbac.authorization.k8s.io ---</code></pre><P>&nbsp;</P><P>Also, for the Job and Pod names, make sure you have a logic like the following, to avoid errors due to duplication.</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>def job_name_exists(name, namespace) config.load_incluster_config() batch_v1 = client.BatchV1Api() jobs = batch_v1.list_namespaced_job(namespace) for job in jobs.items: if job.metadata.name == name: return True return False def pod_name_exists(name, namespace): config.load_incluster_config() v1 = client.CoreV1Api() pods = v1.list_namespaced_pod(namespace=namespace) for pod in pods.items: if pod.metadata.name == name: return True return False</code></pre><P>&nbsp;</P><P>The described procedure allows you to programmatically spawn Kubernetes Jobs from within another Pod, so you can run tasks simultaneously, ansynchronously. You can always read further in the&nbsp;<A href="https://github.com/kubernetes-client/python/" target="_self" rel="nofollow noopener noreferrer">kubernetes library documentation</A>.</P><P>I didn't experiment with the following, but it would be interesting to know if there even is a chance to callback to the original pod. If so, one would be able to outsource only the most resource consuming tasks and then continue with the result back in the "parent pod". If you happen to know something about that, I would be all ears!</P><P>&nbsp;</P><H2 id="toc-hId--131109512">Benefits of AI-Powered Summarization</H2><UL><LI><STRONG>Time-Saving and Efficient:</STRONG> Drastically reduces the time required to read through lengthy documents.&nbsp;You don't have to watch the summary going. Deal with some other topics or go grab a coffee, since you will be automatically notified when the summary is finished.</LI><LI><STRONG>Simple UX:</STRONG> Since there are default settings for the LLM parameters and summarization options, there is no need to set any of those. Just upload a document, send it and wait for the summary.</LI><LI><STRONG>Flexibility:</STRONG>&nbsp;If wished for, You have the ability to customize summarization options and other parameters to meet your specific needs or improve the summary output if you're not entirely satisfied with what the AI gives you.</LI></UL><P>&nbsp;</P><H2 id="toc-hId--327623017">Conclusion: Transforming Information Consumption</H2><P>In a world where time is of the essence, our AI-powered summarization tool integrated with the Apachat AI Playground stands out as an indispensable asset. By transforming the way users consume and comprehend information, it paves the way for increased productivity and informed decision-making. Embrace the future of smart summarization and let this tool do the heavy lifting for you.</P> 2024-09-10T10:45:13.971000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-job-scheduling-service-in-kyma-simple-use-case/ba-p/13865166 SAP Job Scheduling Service in Kyma: Simple use-case 2024-09-13T13:53:24.376000+02:00 DenisDuev https://community.sap.com/t5/user/viewprofilepage/user-id/180332 <H1 id="toc-hId-919864189">Abstract</H1><P>The SAP Job Scheduling service can be consumed both from CF and Kyma environments. You may have seen the blogs about CF - if not, you can find them in the<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/job-scheduler-in-sap-business-technology-platform-overview-of-blog-posts/ba-p/13510707" target="_blank">Overview of Blogs</A>.</P><P>What are the differences between using the Job Scheduling service for CF and for Kyma:</P><UL><LI>The way you provision the service instance</LI><LI>The way you bind the service instance to your application</LI><LI>Adding permissions to your user in the BTP cockpit to access the Job Scheduling service dashboard</LI></UL><P>In addition you will learn:</P><UL><LI>how to use a Dockerfile to build a Docker image for your node app</LI><LI>how to publish this image to a docker registry</LI><LI>how to define a Kubernetes yaml file with everything needed to deploy your solution - including resources like<SPAN>&nbsp;</SPAN><FONT face="andale mono,times"><FONT color="#3366FF">ServiceInstance</FONT>,<SPAN>&nbsp;</SPAN><FONT color="#3366FF">ServiceBinding</FONT>,<SPAN>&nbsp;</SPAN><FONT color="#3366FF">APIRule</FONT></FONT></LI></UL><H1 id="toc-hId-723350684">Prerequisites <span class="lia-unicode-emoji" title=":clipboard:">πŸ“‹</span></H1><UL><LI>You have enabled the<SPAN>&nbsp;</SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/kyma-environment?locale=en-US" target="_blank" rel="noopener noreferrer">Kyma environment</A></LI><LI>You have entitlements and quota for the Job Scheduling service</LI><LI><A href="https://kubernetes.io/docs/tasks/tools/#kubectl" target="_blank" rel="nofollow noopener noreferrer">kubectl</A></LI><LI><A href="https://docs.docker.com/get-started/get-docker/" target="_blank" rel="nofollow noopener noreferrer">docker</A><SPAN>&nbsp;</SPAN>(or<SPAN>&nbsp;</SPAN><A href="https://podman.io/" target="_blank" rel="nofollow noopener noreferrer">podman</A><SPAN>&nbsp;</SPAN>- replace "docker" with "podman" in the commands below)</LI><LI>A registration on<SPAN>&nbsp;</SPAN><A href="https://hub.docker.com/" target="_blank" rel="nofollow noopener noreferrer">DockerHub</A><SPAN>&nbsp;</SPAN>(or some other docker repository)</LI></UL><P>Here is what the file structure will look like at the end:</P><DIV class=""><PRE>kyma-part-1/ β”œβ”€β”€ Dockerfile β”œβ”€β”€ manifest.yaml β”œβ”€β”€ package.json └── server.js&nbsp;</PRE><H1 id="toc-hId-526837179">Steps <span class="lia-unicode-emoji" title=":hammer_and_wrench:">πŸ› </span>️</H1><H2 id="toc-hId-459406393">1. Application <span class="lia-unicode-emoji" title=":package:">πŸ“¦</span></H2><P>We will start by preparing our application for deployment in Kyma.</P><P>We can reuse one of the applications provided in the tutorials for Cloud Foundry.</P><P>We define our dependencies in<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">package.json</FONT>:</P><DIV class=""><PRE>{ <SPAN class="">"main"</SPAN>: <SPAN class=""><SPAN class="">"</SPAN>server.js<SPAN class="">"</SPAN></SPAN>, <SPAN class="">"dependencies"</SPAN>: { <SPAN class="">"express"</SPAN>: <SPAN class=""><SPAN class="">"</SPAN>^4.16.3<SPAN class="">"</SPAN></SPAN> } }</PRE></DIV><P>Define our endpoint logic in<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">server.js</FONT><SPAN>&nbsp;</SPAN>using the<SPAN>&nbsp;</SPAN><A href="https://www.npmjs.com/package/express" target="_blank" rel="nofollow noopener noreferrer">express library</A></P><DIV class=""><PRE><SPAN class="">const</SPAN> <SPAN class="">express</SPAN> <SPAN class="">=</SPAN> <SPAN class="">require</SPAN><SPAN class="">(</SPAN><SPAN class="">'express'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">const</SPAN> <SPAN class="">app</SPAN> <SPAN class="">=</SPAN> <SPAN class="">express</SPAN><SPAN class="">(</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">app</SPAN><SPAN class="">.</SPAN><SPAN class="">get</SPAN><SPAN class="">(</SPAN><SPAN class="">'/runjob'</SPAN><SPAN class="">,</SPAN> <SPAN class="">function</SPAN><SPAN class="">(</SPAN><SPAN class="">req</SPAN><SPAN class="">,</SPAN> <SPAN class="">res</SPAN><SPAN class="">)</SPAN><SPAN class="">{</SPAN> <SPAN class="">console</SPAN><SPAN class="">.</SPAN><SPAN class="">log</SPAN><SPAN class="">(</SPAN><SPAN class="">'==&gt; [APP JOB LOG] Job is running . . .'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">res</SPAN><SPAN class="">.</SPAN><SPAN class="">send</SPAN><SPAN class="">(</SPAN><SPAN class="">'Finished job'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">const</SPAN> <SPAN class="">port</SPAN> <SPAN class="">=</SPAN> <SPAN class="">process</SPAN><SPAN class="">.</SPAN><SPAN class="">env</SPAN><SPAN class="">.</SPAN><SPAN class="">PORT</SPAN> <SPAN class="">||</SPAN> <SPAN class="">3000</SPAN><SPAN class="">;</SPAN> <SPAN class="">app</SPAN><SPAN class="">.</SPAN><SPAN class="">listen</SPAN><SPAN class="">(</SPAN><SPAN class="">port</SPAN><SPAN class="">,</SPAN> <SPAN class="">function</SPAN><SPAN class="">(</SPAN><SPAN class="">)</SPAN><SPAN class="">{</SPAN> <SPAN class="">console</SPAN><SPAN class="">.</SPAN><SPAN class="">log</SPAN><SPAN class="">(</SPAN><SPAN class="">'listening'</SPAN><SPAN class="">)</SPAN><SPAN class="">;</SPAN> <SPAN class="">}</SPAN><SPAN class="">)</SPAN></PRE><H2 id="toc-hId-262892888">2. Build and publish a docker image <span class="lia-unicode-emoji" title=":spouting_whale:">🐳</span></H2><P>In CF we've defined a manifest file and used<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">cf push</FONT><SPAN>&nbsp;</SPAN>to deploy it to the platform. In Kubernetes we have one additional step. We need to prepare a docker image before applying our configurations to the cluster.</P><H3 id="toc-hId-195462102">2.1 Create a<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">Dockerfile</FONT><SPAN>&nbsp;</SPAN><span class="lia-unicode-emoji" title=":page_facing_up:">πŸ“„</span></H3><DIV class=""><PRE><SPAN class=""># Use NodeJS base image</SPAN> <SPAN class="">FROM</SPAN> node:20 <SPAN class=""># Create app directory</SPAN> <SPAN class="">WORKDIR</SPAN> /usr/src/app <SPAN class=""># Install app dependencies by copying package.json and package-lock.json</SPAN> <SPAN class="">COPY</SPAN> package*.json ./ <SPAN class=""># Install dependencies</SPAN> <SPAN class="">RUN</SPAN> npm install <SPAN class=""># Setting env variables</SPAN> <SPAN class="">ENV</SPAN> PORT 80 <SPAN class=""># Copy app source</SPAN> <SPAN class="">COPY</SPAN> . . <SPAN class=""># Bind the port on which a container will listen for traffic</SPAN> <SPAN class="">EXPOSE</SPAN> 80 <SPAN class=""># Define the Docker image's behavior at runtime</SPAN> <SPAN class="">CMD</SPAN> [<SPAN class="">"npm"</SPAN>,<SPAN class="">"run"</SPAN>,<SPAN class="">"start"</SPAN>]</PRE><H3 id="toc-hId--1051403">2.2 Build a Docker image <span class="lia-unicode-emoji" title=":hammer:">πŸ”¨</span></H3><DIV class=""><PRE>docker build <SPAN class="">.</SPAN> -t jobapp:part1</PRE></DIV><H3 id="toc-hId--197564908">2.3 Create repository on Dockerhub <span class="lia-unicode-emoji" title=":card_index_dividers:">πŸ—‚</span>️</H3><BLOCKQUOTE><P>These instructions are for Dockerhub, but you can use any other docker repository you want.</P></BLOCKQUOTE><P>We need this repository to upload the image we've build in the previous step.</P><OL><LI>Open<SPAN>&nbsp;</SPAN><A href="https://hub.docker.com/" target="_blank" rel="nofollow noopener noreferrer">Dockerhub</A></LI><LI>After logging in, go to the "<STRONG>Repositories</STRONG>" tab</LI><LI>press "<STRONG>Create Repository</STRONG>" and give it a name<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">jobapp</FONT></LI><LI>press "<STRONG>Create</STRONG>"</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dockerhub-create-repo.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166145iCA7C448FEF9EE041/image-size/large?v=v2&amp;px=999" role="button" title="dockerhub-create-repo.png" alt="dockerhub-create-repo.png" /></span></P><H3 id="toc-hId--394078413">2.4 Upload the image to a Docker repository <span class="lia-unicode-emoji" title=":up_arrow:">⬆️</span></H3><OL><LI>Log in to Dockerhub</LI></OL><DIV class=""><PRE>docker login -u <SPAN class="">&lt;</SPAN>your-user<SPAN class="">&gt;</SPAN></PRE></DIV><BLOCKQUOTE><P>Alternatively:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">podman login docker.io -u &lt;your-user&gt;</FONT></P></BLOCKQUOTE><OL><LI>Push the image to your docker registry</LI></OL><DIV class=""><PRE>docker push <SPAN class="">&lt;</SPAN>your-user<SPAN class="">&gt;</SPAN>/jobapp:part1</PRE></DIV><BLOCKQUOTE><P><SPAN>Alternatively:&nbsp; </SPAN><FONT face="andale mono,times" color="#3366FF">podman push jobapp:part1 &lt;your-user&gt;/jobapp:part1</FONT></P></BLOCKQUOTE><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="docker-push.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166151i61775B307D709EE8/image-size/large?v=v2&amp;px=999" role="button" title="docker-push.png" alt="docker-push.png" /></span></DIV><H2 id="toc-hId--719674637">3. Apply to Kyma cluster <span class="lia-unicode-emoji" title=":cloud:">☁️</span></H2><BLOCKQUOTE><P>In order to work with Kyma (which is in fact, a Kubernetes cluster with additional custom resource definitions) we need a Kubeconfig to authenticate and the<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">kubectl</FONT><SPAN>&nbsp;</SPAN>CLI</P></BLOCKQUOTE><H3 id="toc-hId--862336792">3.1 Download and setup Kubeconfig <span class="lia-unicode-emoji" title=":inbox_tray:">πŸ“₯</span></H3><P>Open the BTP Cockpit, under your subaccount go to "<STRONG>Overview</STRONG>" and find the section "<STRONG>Kyma Environment</STRONG>" and click on "<STRONG>KubeconfigURL</STRONG>". This will download the kubeconfig file to your local PC.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kyma-cockpit.png" style="width: 942px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166152iAAA6E926398885E0/image-size/large?v=v2&amp;px=999" role="button" title="kyma-cockpit.png" alt="kyma-cockpit.png" /></span></P><P>Then open your terminal (Mac, Linux)</P><DIV class=""><PRE><SPAN class="">export</SPAN> KUBECONFIG=<SPAN class="">&lt;</SPAN>location of the downloaded file<SPAN class="">&gt;</SPAN></PRE></DIV><BLOCKQUOTE><P>For windows use: Powershell:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">$env:KUBECONFIG = "…\kubeconfig.yaml"</FONT>, to verify:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">echo $env:KUBECONFIG<SPAN>&nbsp;</SPAN></FONT></P><P>CMD:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">set KUBECONFIG=…\kubeconfig.yaml</FONT>, to verify:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">echo %KUBECONFIG%</FONT></P></BLOCKQUOTE><H3 id="toc-hId--1058850297">3.2 Create a namespace <span class="lia-unicode-emoji" title=":label:">🏷</span>️</H3><P>It's a good practice to use separate namespaces, which is why we will create one for this exercise.</P><PRE>kubectl create namespace jobapp-part1</PRE><H3 id="toc-hId--1255363802">3.3 Create<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">manifest.yaml</FONT><SPAN>&nbsp;</SPAN><span class="lia-unicode-emoji" title=":scroll:">πŸ“œ</span></H3><BLOCKQUOTE><P>The<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">manifest.yaml</FONT><SPAN>&nbsp;</SPAN>is like the<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">mtad.yaml&nbsp;</FONT>(MultiTarget Application), but for Kubernetes</P></BLOCKQUOTE><P>This YAML file contains all of the configuration for the Kyma cluster to deploy our application, expose an endpoint, create a service instance and bindings and mount them to the deployment of our application.</P><P>Note that you need to fill:</P><DIV class=""><PRE><SPAN class="">image</SPAN>: <SPAN class="">&lt;your-username&gt;/jobapp:part1</SPAN> <SPAN class="">(...)</SPAN> <SPAN class="">host</SPAN>: <SPAN class="">jobapp-part1-&lt;your-suffix&gt;.&lt;kyma-apps-domain&gt;</SPAN></PRE></DIV><P>You can find help as comments in the<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">manifest.yaml</FONT>.</P><PRE><SPAN class=""># defining the service instance</SPAN> <SPAN class="">apiVersion</SPAN>: <SPAN class="">services.cloud.sap.com/v1</SPAN> <SPAN class="">kind</SPAN>: <SPAN class="">ServiceInstance</SPAN> <SPAN class="">metadata</SPAN>: <SPAN class=""># this will be the name of your service instance</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobscheduler-instance</SPAN> <SPAN class="">labels</SPAN>: <SPAN class="">app.kubernetes.io/name</SPAN>: <SPAN class="">jobscheduler-instance</SPAN> <SPAN class="">annotations</SPAN>: <SPAN class="">{}</SPAN> <SPAN class="">namespace</SPAN>: <SPAN class="">jobapp-part1</SPAN> <SPAN class="">spec</SPAN>: <SPAN class=""># the values supplied here are the ones from the Service Marketplace</SPAN> <SPAN class=""># serviceOfferingName is the "Technical name" of the Job Scheduling Service</SPAN> <SPAN class="">serviceOfferingName</SPAN>: <SPAN class="">jobscheduler</SPAN> <SPAN class="">servicePlanName</SPAN>: <SPAN class="">standard</SPAN> --- <SPAN class=""># defining the Service Binding</SPAN> <SPAN class="">apiVersion</SPAN>: <SPAN class="">services.cloud.sap.com/v1</SPAN> <SPAN class="">kind</SPAN>: <SPAN class="">ServiceBinding</SPAN> <SPAN class="">metadata</SPAN>: <SPAN class=""># this will be the name of your service binding</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobscheduler-binding</SPAN> <SPAN class="">labels</SPAN>: <SPAN class="">app.kubernetes.io/name</SPAN>: <SPAN class="">jobscheduler-binding</SPAN> <SPAN class="">annotations</SPAN>: <SPAN class="">{}</SPAN> <SPAN class="">namespace</SPAN>: <SPAN class="">jobapp-part1</SPAN> <SPAN class="">spec</SPAN>: <SPAN class=""># specify the name of the service-instance</SPAN> <SPAN class="">serviceInstanceName</SPAN>: <SPAN class="">jobscheduler-instance</SPAN> --- <SPAN class="">apiVersion</SPAN>: <SPAN class="">v1</SPAN> <SPAN class="">kind</SPAN>: <SPAN class="">Service</SPAN> <SPAN class="">metadata</SPAN>: <SPAN class="">namespace</SPAN>: <SPAN class="">jobapp-part1</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">labels</SPAN>: <SPAN class="">run</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">spec</SPAN>: <SPAN class="">type</SPAN>: <SPAN class="">ClusterIP</SPAN> <SPAN class="">ports</SPAN>: - <SPAN class="">port</SPAN>: <SPAN class="">80</SPAN> <SPAN class="">targetPort</SPAN>: <SPAN class="">80</SPAN> <SPAN class="">protocol</SPAN>: <SPAN class="">TCP</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">http</SPAN> <SPAN class="">selector</SPAN>: <SPAN class="">app</SPAN>: <SPAN class="">jobapp</SPAN> --- <SPAN class="">apiVersion</SPAN>: <SPAN class="">apps/v1</SPAN> <SPAN class="">kind</SPAN>: <SPAN class="">Deployment</SPAN> <SPAN class="">metadata</SPAN>: <SPAN class="">namespace</SPAN>: <SPAN class="">jobapp-part1</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">labels</SPAN>: <SPAN class="">app</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">version</SPAN>: <SPAN class="">nodejs</SPAN> <SPAN class="">spec</SPAN>: <SPAN class="">replicas</SPAN>: <SPAN class="">1</SPAN> <SPAN class="">selector</SPAN>: <SPAN class="">matchLabels</SPAN>: <SPAN class="">app</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">version</SPAN>: <SPAN class="">nodejs</SPAN> <SPAN class="">template</SPAN>: <SPAN class="">metadata</SPAN>: <SPAN class="">labels</SPAN>: <SPAN class="">app</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">version</SPAN>: <SPAN class="">nodejs</SPAN> <SPAN class="">spec</SPAN>: <SPAN class="">containers</SPAN>: - <SPAN class="">name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class=""># replace &lt;your-username&gt; with your Dockerhub image namespace/user</SPAN> <SPAN class="">image</SPAN>: <SPAN class="">&lt;your-username&gt;/jobapp:part1</SPAN> <SPAN class="">imagePullPolicy</SPAN>: <SPAN class="">Always</SPAN> <SPAN class="">ports</SPAN>: - <SPAN class="">containerPort</SPAN>: <SPAN class="">80</SPAN> <SPAN class="">env</SPAN>: - <SPAN class="">name</SPAN>: <SPAN class="">SERVICE_BINDING_ROOT</SPAN> <SPAN class="">value</SPAN>: <SPAN class="">/bindings</SPAN> <SPAN class=""># this mounts a volume from the service-binding </SPAN> <SPAN class="">volumeMounts</SPAN>: - <SPAN class="">mountPath</SPAN>: <SPAN class="">/bindings/jobscheduler-instance</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobscheduler-volume</SPAN> <SPAN class="">readOnly</SPAN>: <SPAN class="">true</SPAN> <SPAN class="">volumes</SPAN>: <SPAN class=""># creates volume for the binding secret</SPAN> - <SPAN class="">name</SPAN>: <SPAN class="">jobscheduler-volume</SPAN> <SPAN class="">secret</SPAN>: <SPAN class="">defaultMode</SPAN>: <SPAN class="">420</SPAN> <SPAN class="">secretName</SPAN>: <SPAN class="">jobscheduler-binding</SPAN> --- <SPAN class="">apiVersion</SPAN>: <SPAN class="">gateway.kyma-project.io/v1beta1</SPAN> <SPAN class="">kind</SPAN>: <SPAN class="">APIRule</SPAN> <SPAN class="">metadata</SPAN>: <SPAN class="">namespace</SPAN>: <SPAN class="">jobapp-part1</SPAN> <SPAN class="">name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">labels</SPAN>: <SPAN class="">app.kubernetes.io/name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">spec</SPAN>: <SPAN class="">gateway</SPAN>: <SPAN class="">kyma-gateway.kyma-system.svc.cluster.local</SPAN> <SPAN class="">rules</SPAN>: - <SPAN class="">accessStrategies</SPAN>: - <SPAN class="">handler</SPAN>: <SPAN class="">allow</SPAN> <SPAN class="">config</SPAN>: <SPAN class="">{}</SPAN> <SPAN class="">methods</SPAN>: - <SPAN class="">GET</SPAN> - <SPAN class="">POST</SPAN> - <SPAN class="">PUT</SPAN> - <SPAN class="">DELETE</SPAN> <SPAN class="">path</SPAN>: <SPAN class="">/.*</SPAN> <SPAN class=""># host is the address that your app will be accessible over</SPAN> <SPAN class=""># you can get &lt;kyma-apps-domain&gt; from the APIServerURL in the cockpit by removing the https://api or</SPAN> <SPAN class=""># by executing: kubectl config view --minify --output 'jsonpath={.clusters[0].cluster.server}' | sed 's#^https://api.##'</SPAN> <SPAN class=""># &lt;your-suffix&gt; can whatever you want - as long the the DNS is unique</SPAN> <SPAN class="">host</SPAN>: <SPAN class="">jobapp-part1-&lt;your-suffix&gt;.&lt;kyma-apps-domain&gt;</SPAN> <SPAN class="">service</SPAN>: <SPAN class="">name</SPAN>: <SPAN class="">jobapp</SPAN> <SPAN class="">port</SPAN>: <SPAN class="">80</SPAN></PRE><H3 id="toc-hId--1451877307">3.4 Apply changes to the cluster <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></H3><DIV class=""><PRE>kubectl apply -f manifest.yaml</PRE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kubectl-appy.png" style="width: 494px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166153i50012E4B99E2DE24/image-size/large?v=v2&amp;px=999" role="button" title="kubectl-appy.png" alt="kubectl-appy.png" /></span></P><H2 id="toc-hId--1354987805">4. Validate the application <span class="lia-unicode-emoji" title=":white_heavy_check_mark:">βœ…</span></H2><P>Now that your application is deployed it's time to test it</P><P data-unlink="true">Open your endpoint in the browser (for example<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">https://jobapp-part1-&lt;your-suffix&gt;.&lt;kyma-apps-domain&gt;/runjob</FONT>)</P><BLOCKQUOTE><P>You should have specified this URL in the manifest.yaml (<FONT face="andale mono,times" color="#3366FF">host</FONT>)</P></BLOCKQUOTE><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="test-app.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166154i8644F9636730C5F5/image-size/large?v=v2&amp;px=999" role="button" title="test-app.png" alt="test-app.png" /></span><H2 id="toc-hId--1551501310">5. Testing the Job Scheduling Service <span class="lia-unicode-emoji" title=":three_o_clock:">πŸ•’</span></H2><H3 id="toc-hId--2041417822">5.1 Permissions for Dashboard <span class="lia-unicode-emoji" title=":key:">πŸ”‘</span></H3><P>To view the Dashboard your user has to have the<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">SAP_Job_Scheduling_Service_Admin</FONT><SPAN>&nbsp;</SPAN>Role assigned from the BTP cockpit.</P><OL><LI>In your subaccount, from the "<STRONG>Security</STRONG>" menu, choose "<STRONG>Role Collections</STRONG>".</LI><LI>Press "<STRONG>Create</STRONG>".</LI><LI>In the dialog add a name<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">SAP Job Scheduling Service Admin</FONT><SPAN>&nbsp;</SPAN>and description<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">Assign it to access Job Scheduling Service Dashboard and manage jobs</FONT>, then press "<STRONG>Create</STRONG>".</LI><LI>Press on the newly created role collection "SAP Job Scheduling Service Admin".</LI><LI>Press "<STRONG>Edit</STRONG>" and add "<STRONG>Roles</STRONG>".</LI><LI>Find<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">SAP_Job_Scheduling_Service_Admin</FONT>, mark it in the list and press "<STRONG>Add</STRONG>".</LI><LI>Press "<STRONG>Save</STRONG>" on the role collection,</LI><LI>From the "<STRONG>Security</STRONG>" menu, go to "<STRONG>Users</STRONG>".</LI><LI>Find your user, press on it, then press "<STRONG>Assign Role Collection</STRONG>".</LI><LI>From the list find "SAP Job Scheduling Service Admin", mark it, and then press "<STRONG>Assign Role Collection</STRONG>".</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kyma-jobscheduling-roles.gif" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166155i69EBD78E21F6338A/image-size/large?v=v2&amp;px=999" role="button" title="kyma-jobscheduling-roles.gif" alt="kyma-jobscheduling-roles.gif" /></span></P><H3 id="toc-hId-2057035969">5.2 Link to the Dashboard <span class="lia-unicode-emoji" title=":link:">πŸ”—</span></H3><P>The Dashboard URL can be found from the BTP cockpit -&gt; Instances and Subscriptions -&gt; click on the "jobscheduler" Service Instance</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dashboard.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166156iF51E0288FB49FA69/image-size/large?v=v2&amp;px=999" role="button" title="dashboard.png" alt="dashboard.png" /></span></P><H3 id="toc-hId-1860522464">5.3 Create job <span class="lia-unicode-emoji" title=":memo:">πŸ“</span></H3><OL><LI>From the Job Scheduler Dashboard, choose β€œ<STRONG>Jobs</STRONG>” on the left hand menu.</LI><LI>Then press the button β€œ<STRONG>Create Job</STRONG>”.</LI><LI>In the creation dialog, specify the required information:<UL><LI><FONT face="andale mono,times" color="#3366FF">Name</FONT><SPAN>&nbsp;</SPAN>- this is the technical name, for example:<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">jobapp_get_runjob<SPAN>&nbsp;</SPAN></FONT></LI><LI><FONT face="andale mono,times" color="#3366FF">Action</FONT><SPAN>&nbsp;</SPAN>- this is the endpoint of your service that we want to call (from step 4)<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF"><A href="https://jobapp-part1-" target="_blank" rel="noopener nofollow noreferrer">https://jobapp-part1-</A>&lt;your-suffix&gt;.&lt;kyma-apps-domain&gt;/runjob<SPAN>&nbsp;</SPAN></FONT></LI><LI><FONT face="andale mono,times" color="#3366FF">HTTP Method</FONT><SPAN>&nbsp;</SPAN>- in our case<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">GET</FONT><SPAN>&nbsp;</SPAN>is correct</LI></UL></LI><LI>Press "<STRONG>Save</STRONG>" and the dialog will be closed</LI><LI>Then press on the "<STRONG>Name</STRONG>" of the newly created job. The Overview page will open.</LI><LI>From the left hand menu choose "<STRONG>Schedules</STRONG>" and press "<STRONG>Create Schedule</STRONG>" button</LI><LI>For "value" enter<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">now</FONT><SPAN>&nbsp;</SPAN>and press "<STRONG>Save</STRONG>" (this means that the scheduler will be executed only one time - now)</LI><LI>Press on the "<STRONG>Description</STRONG>" of the newly created schedule. The Overview page will open.</LI><LI>From the left hand menu choose "<STRONG>Run Logs</STRONG>" to see the executions for this schedule</LI><LI>If you press on "<STRONG>Runlog ID</STRONG>" you can see more details about the specific run (execution)</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="create-job-kyma.gif" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166157iA698DA54A9AE5E89/image-size/large?v=v2&amp;px=999" role="button" title="create-job-kyma.gif" alt="create-job-kyma.gif" /></span></P><P><span class="lia-unicode-emoji" title=":party_popper:">πŸŽ‰</span><SPAN>&nbsp;</SPAN><STRONG>That's it!</STRONG><SPAN>&nbsp;</SPAN><span class="lia-unicode-emoji" title=":party_popper:">πŸŽ‰</span></P><P>πŸ₯³ You have done it - you have successfully called your newly developed Kyma application using SAP Job Scheduling Service.</P><HR /><H3 id="toc-hId-1664008959">6. Cleanup</H3><P>After you are ready you can delete all of your resources using</P><DIV class=""><PRE>kubectl delete -f manifest.yaml</PRE></DIV><P>so that you are ready for our <span class="lia-unicode-emoji" title=":top_arrow:">πŸ”</span> next tutorial <span class="lia-unicode-emoji" title=":top_arrow:">πŸ”</span>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kubectl-delete.png" style="width: 615px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166158i7A6663BEFFDD8CC1/image-size/large?v=v2&amp;px=999" role="button" title="kubectl-delete.png" alt="kubectl-delete.png" /></span></P><H1 id="toc-hId--2072482137">&nbsp;</H1><H1 id="toc-hId-2025971654">Troubleshooting<span class="lia-unicode-emoji" title=":hammer_and_wrench:">πŸ› </span>️</H1><P><STRONG>Q: Error on&nbsp;<FONT face="andale mono,times" color="#3366FF">kubectl apply</FONT>?</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kubectl-apply-no-namespace.png" style="width: 860px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166159iAA0BA1F10178CD32/image-size/large?v=v2&amp;px=999" role="button" title="kubectl-apply-no-namespace.png" alt="kubectl-apply-no-namespace.png" /></span></P><P>A: Have you created your namespace? If not use</P><PRE>kubectl create namespace jobapp-part1</PRE><HR /><P><STRONG>Q:&nbsp;<FONT face="andale mono,times" color="#3366FF">kubectl apply</FONT>&nbsp;is successful, but the application is not working?</STRONG></P><P>A: You can open the Kyma UI to validate that all resources are correctly provisioned.</P><P>OR You can use following and check for the<SPAN>&nbsp;</SPAN><FONT face="andale mono,times" color="#3366FF">READY</FONT><SPAN>&nbsp;</SPAN>field</P><DIV class=""><PRE>kubectl -n jobapp-part1 get all,serviceinstance,servicebindings,APIRule</PRE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kubectl-get-all.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166160i834C66CE80BC7502/image-size/large?v=v2&amp;px=999" role="button" title="kubectl-get-all.png" alt="kubectl-get-all.png" /></span></P><P><STRONG>Q: Is my service instance created?</STRONG></P><P>A: You can check using the<SPAN>&nbsp;</SPAN></P><PRE><FONT color="#3366FF">kubectl -n jobapp-part1 describe serviceinstance.services.cloud.sap.com/jobscheduler-instance<SPAN>&nbsp;</SPAN>or in the Kyma </FONT></PRE><P>UI:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kyma-ui-service-instance-created.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/166161i36E9FF139C22DCCC/image-size/large?v=v2&amp;px=999" role="button" title="kyma-ui-service-instance-created.png" alt="kyma-ui-service-instance-created.png" /></span></P><P><STRONG>Q: How to remove my resources?</STRONG></P><P>A: Use<SPAN>&nbsp;CLI</SPAN></P><PRE>kubectl delete -f manifest.yaml</PRE><P>Or manually in the Kyma UI</P><HR /><P><STRONG>Q: When I call the application endpoint I get:&nbsp;<FONT face="andale mono,times" color="#3366FF">no healthy upstream</FONT></STRONG></P><P>Option 1: Check your pods, especially your Docker image - have you added your username?</P><OL><LI><PRE>kubectl -n jobapp-part1 get pods</PRE></LI><LI><PRE>kubectl -n jobapp-part1 describe jobapp-&lt;unique-id-from-previous-step&gt;</PRE></LI></OL><P>Option 2: Do you have enough quota for the Job Scheduling Service? Execute:</P><DIV class=""><PRE>kubectl -n jobapp-part1 describe serviceinstance.services.cloud.sap.com/jobscheduler-instance</PRE></DIV><P>If you see something like the following, your quota is not enough and you need to increase it.</P><DIV class=""><PRE><SPAN class="">Status</SPAN>: <SPAN class="">Conditions</SPAN>: <SPAN class="">Last Transition Time</SPAN>: <SPAN class="">2024-09-13T10:07:26Z</SPAN> <SPAN class="">Message</SPAN>: <SPAN class="">BrokerError:, Status: 400, Description: Subaccount quota limit for specified service plan has exceeded. Please contact service administrator.</SPAN> <SPAN class="">Observed Generation</SPAN>: <SPAN class="">1</SPAN> <SPAN class="">Reason</SPAN>: <SPAN class="">CreateInProgress</SPAN> <SPAN class="">Status</SPAN>: <SPAN class="">False</SPAN> <SPAN class="">Type</SPAN>: <SPAN class="">Succeeded</SPAN> <SPAN class="">Last Transition Time</SPAN>: <SPAN class="">2024-09-13T10:07:26Z</SPAN> <SPAN class="">Message</SPAN>: <SPAN class="">Reason</SPAN>: <SPAN class="">NotProvisioned</SPAN></PRE></DIV></DIV></DIV></DIV></DIV></DIV> 2024-09-13T13:53:24.376000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-btp-kyma-runtime-apirule-migration-noauth-and-jwt-handlers/ba-p/13882833 SAP BTP, Kyma runtime: APIRule migration - noAuth and jwt handlers 2024-09-30T14:12:10.531000+02:00 strekm https://community.sap.com/t5/user/viewprofilepage/user-id/45483 <P><SPAN>Hello everyone! In my&nbsp;<A class="" href="https://community.sap.com/t5/technology-blogs-by-sap/sap-btp-kyma-runtime-api-gateway-future-architecture-based-on-istio/ba-p/13567213" target="_blank">previous blogpost</A>, I discussed the upcoming architectural changes to the&nbsp;<SPAN class="">API</SPAN>&nbsp;Gateway module. For some time now, you've been able to experiment with an early implementation of the Istio-based JWT handler. Today, I am happy to say it's time to try the finished version!<BR /></SPAN></P><H2 id="toc-hId-1050711208"><SPAN>Overview</SPAN></H2><P>The<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway module in version 2.4.0 includes APIRule v2alpha1 with noAuth and jwt handlers, marking a significant milestone toward achieving functional parity with the previous version. APIRule v2alpha1 is not intended for use in a productive environment but only for testing the<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>and migration process before the introduction of the stable APIRule in version v2. I highly recommend reading the APIRule v2alpha1 CustomResourceDefinition (<SPAN class="">CRD</SPAN>) documentation, subscribing to the Kyma<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway module What's New notifications, and watching&nbsp;the&nbsp;<A class="" href="https://github.com/kyma-project/api-gateway/issues/939" target="_blank" rel="nofollow noopener noreferrer">APIRule v2beta1 epic</A>&nbsp;to track incoming changes!</P><P><SPAN>For now, the zero downtown migration from APIRule v1beta1 to APIRule v2alpha1 is supported only for the following scenarios:</SPAN></P><UL><LI>From noop,&nbsp;allow, or&nbsp;no_auth handler in version v1beta1 to the noAuth handler in version v2alpha1</LI><LI>From the<SPAN>&nbsp;</SPAN><SPAN>jwt</SPAN><SPAN>&nbsp;</SPAN>handler in version v1beta1 to the new configuration of the jwt handler in version v2alpha1</LI></UL><P><SPAN>Any other changes may affect the availability of the exposed workload and should be done during a maintenance window. Be aware that migration from APIRule v2alpha1 to v1beta1 is not supported and might result in unwanted effects, such as misconfiguration or downtime.</SPAN></P><P><SPAN>In this blog post, I describe the first scenario using the noop handler as an example. If you already use the no_auth handler in APIRule v1beta1, then migration should be a piece of cake! Next, I guide you through migrating from the Oathkeeper-based&nbsp;jwt&nbsp;handler.</SPAN></P><P><SPAN>This tutorial assumes you have Istio and&nbsp;<SPAN class="">API</SPAN>&nbsp;Gateway modules added. To focus on migration, it uses an HTTPBin service, which exposes the headers' endpoint. The HTTPBin service is deployed in its own namespace. Istio is enabled in this namespace, so the workload is part of the Istio service mesh.</SPAN></P><H2 id="toc-hId-854197703"><SPAN>Migrate APIRule v1beta1 of type noop, allow, or no_auth to APIRule v2alpha1 of type noAuth</SPAN></H2><P><SPAN>APIRules of type&nbsp;noop,&nbsp;allow,&nbsp; and&nbsp;no_auth&nbsp; look very similar, so the migration procedure for them is the same. To demonstrate the migration procedure, this paragraph uses the following APIRule of type noop:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>apiVersion: gateway.kyma-project.io/v1beta1 kind: APIRule metadata: name: httpbin namespace: test spec: gateway: test/httpbin-gateway host: httpbin.example.com rules: - accessStrategies: - handler: noop methods: - GET path: /headers service: name: httpbin namespace: test port: 8000</code></pre><P>&nbsp;</P><P><SPAN>The above configuration uses the&nbsp;</SPAN>noop<SPAN>&nbsp;handler to expose the HTTPBin headers' endpoint under the domain&nbsp;</SPAN><A class="" href="http://httpbin.example.com/" target="_blank" rel="nofollow noopener noreferrer">httpbin.example.com</A><SPAN>. Calling the headers' endpoint of this URL results in the following response:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "headers": { "Accept": "*/*", "Accept-Encoding": "gzip", "Host": "httpbin.test.svc.cluster.local:8000", "Test": "true", "User-Agent": "curl/8.7.1" ... } }</code></pre><P>&nbsp;</P><P><SPAN>In APIRule v2alpha1, the noAuth handler replaces the&nbsp;noop,&nbsp;allow,&nbsp;and&nbsp;no_auth&nbsp;handlers used in APIRule v1beta1. This means that you must modify your existing APIRule so that it is a valid APIRule of type&nbsp;noAuth&nbsp;in the newer version. Let's apply the modified APIRule:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>cat &lt;&lt;EOF | kubectl apply -f - apiVersion: gateway.kyma-project.io/v2alpha1 kind: APIRule metadata: name: httpbin namespace: test spec: hosts: - httpbin.example.com service: name: httpbin namespace: test port: 8000 gateway: test/httpbin-gateway rules: - path: /headers methods: ["GET"] noAuth: true EOF</code></pre><P>&nbsp;</P><P><SPAN>Under the hood,&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;Gateway Controller recognizes this change as migration to the newer version and acts accordingly. It creates resources for the new version of APIRule and waits for them to become active before deleting the corresponding resources for the old APIRule. This way, the workload is accessible all the time, and users do not experience any downtime. Notice that getting APIRule by running the command&nbsp;</SPAN>kubectl get apirule httpbin -n test -o yaml<SPAN>&nbsp;returns APIRule in version v1beta1:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>apiVersion: gateway.kyma-project.io/v1beta1 kind: APIRule metadata: name: httpbin namespace: test spec: gateway: test/httpbin-gateway host: httpbin.example.com rules: - accessStrategies: - handler: no_auth methods: - GET path: /headers service: name: httpbin namespace: test port: 8000 ...</code></pre><P>&nbsp;</P><P><SPAN>APIRule v1beta1 is the default version in a cluster. The APIRule v2alpha1 must be requested explicitly:&nbsp;kubectl get apirules.v2alpha1.gateway.kyma-project.io httpbin -n test -o yaml</SPAN><SPAN>. Once you run this command, you get APIRule in the newer version:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>apiVersion: gateway.kyma-project.io/v2alpha1 kind: APIRule metadata: name: httpbin namespace: test spec: gateway: test/httpbin-gateway hosts: - httpbin.example.com rules: - methods: - GET noAuth: true path: /headers service: name: httpbin namespace: test port: 8000 ...</code></pre><P>&nbsp;</P><H2 id="toc-hId-657684198"><SPAN>Migrate APIRule v1beta1 of type jwt to APIRule v2alpha1 of type noAuth</SPAN></H2><P><SPAN>See the following example of APIRule that includes the&nbsp;jwt handler&nbsp;</SPAN><SPAN>:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>apiVersion: gateway.kyma-project.io/v1beta1 kind: APIRule metadata: name: httpbin namespace: test spec: gateway: test/httpbin-gateway host: httpbin.example.com rules: - path: /headers methods: - GET accessStrategies: - handler: jwt config: jwks_urls: - https://{IAS_TENANT}.accounts.ondemand.com/oauth2/certs service: name: httpbin namespace: test port: 8000</code></pre><P>&nbsp;</P><P><SPAN>You can access the HTTPBin service using a&nbsp;</SPAN><SPAN class="">JSON</SPAN><SPAN>&nbsp;Web Token issued by your tenant of Cloud Identity Services. There's no need to issue new tokens unless they're expired. To migrate to the newer version, apply the following APIRule:</SPAN></P><P>&nbsp;</P><pre class="lia-code-sample language-yaml"><code>cat &lt;&lt;EOF | kubectl apply -f - apiVersion: gateway.kyma-project.io/v2alpha1 kind: APIRule metadata: name: httpbin namespace: test spec: hosts: - httpbin.example.com service: name: httpbin port: 8000 gateway: test/httpbin-gateway rules: - jwt: authentications: - issuer: https://{YOUR_TENANT}.accounts.ondemand.com jwksUri: https://{YOUR_TENANT}.accounts.ondemand.com/oauth2/certs methods: - GET path: /headers EOF</code></pre><P>&nbsp;</P><P><SPAN>There is an additional mandatory field in the new configuration of the&nbsp;jwt</SPAN><SPAN>&nbsp;handler called issuer. Under the hood, APIRule Controller applies Istio resources, including RequestAuthentication, which requires the issuer to be specified. You can find the issuer URL in the&nbsp;<SPAN class="">OIDC</SPAN>&nbsp;well-known configuration of your Cloud Identity Service tenant at&nbsp;<A target="_blank" rel="nofollow">https://{YOUR_TENANT}.</A><A class="" href="http://accounts.ondemand.com/.well-known/openid-configuration" target="_blank" rel="nofollow noopener noreferrer">accounts.ondemand.com/.well-known/openid-configuration</A>.</SPAN></P><P><SPAN>As in the previous case, the exposed workload is available during migration.</SPAN></P><H2 id="toc-hId-461170693"><SPAN>Next steps</SPAN></H2><P><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway 2.4.0 marked a significant milestone in the development of the stable APIRule v2, introducing the noAuth and jwt handlers.<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway 2.5.0 introduced request modifiers, which replace the mutators known from APIRule v1beta1, and the release 2.6.0 added support for extAuth as a migration path for remaining Oathkeeper-based handlers. The upcoming final release,<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway 2.7.0, will include a short host feature, completing the introduction of APIRule v2alpha1.</P><P>After the release of<SPAN>&nbsp;</SPAN><SPAN class="">API</SPAN><SPAN>&nbsp;</SPAN>Gateway 2.7.0 you will be required to start testing migration to APIRule v2alpha1. This version of APIRule is expected to be promoted to stable version v2 without significant changes. The following timeline and all dates mentioned are specific to the regular channel.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="apiruletimelines.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/173229i2BB3963D72BE2EF7/image-size/large?v=v2&amp;px=999" role="button" title="apiruletimelines.png" alt="apiruletimelines.png" /></span></P><P><SPAN>The release of&nbsp;<SPAN class="">API</SPAN>&nbsp;Gateway 2.7.0, scheduled for October 28, 2024, will open a testing window. During this time, you'll have the opportunity to test the functionalities of APIRule v2alpha1 and the migration procedure. Note that APIRule v2alpha1 is not intended for use in a productive environment but only for testing the&nbsp;<SPAN class="">API</SPAN>&nbsp;and migration process. The testing window will last around five months, from October 28, 2024, to March 31, 2025. Once the testing window is closed, the stable APIRule v2 will be introduced. The migration to version v2 will start on March 31, 2025, and end on May 12, 2025. During the migration window, you must migrate to the stable APIRule v2. The migration period will end on June 16, 2025, when APIRule v1beta1 will be deleted. After this date, only one version of APIRule will be supported.</SPAN></P><H2 id="toc-hId-264657188"><SPAN>Summary</SPAN></H2><P><SPAN>In this blogpost, I explained the migration process to the new APIRule v2alpha1 with&nbsp;noAuth</SPAN><SPAN>&nbsp;and&nbsp;jwt</SPAN><SPAN>&nbsp;handlers. My team and I made sure that this process is as least disturbing as possible by introducing only necessary changes and ensuring that your applications are always available. In the next blogpost, I plan to guide you through the migration to&nbsp;extAuth</SPAN><SPAN>&nbsp;handler. I highly recommend learning more about the introduced changes, reading the documentation, and subscribing to release notifications. In case you have any concerns or feedback,&nbsp;</SPAN><SPAN><A class="" href="https://community.sap.com/t5/c-khhcw49343/SAP+BTP%25252C+Kyma+runtime/pd-p/73554900100800003012" target="_blank">leave us a question</A></SPAN><SPAN>.</SPAN></P> 2024-09-30T14:12:10.531000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-learning-journey-administrating-sap-business-technology-platform/ba-p/13884011 SAP Learning Journey – Administrating SAP Business Technology Platform 2024-10-01T09:54:30.730000+02:00 StefanFell https://community.sap.com/t5/user/viewprofilepage/user-id/4321 <P>Since it was announced at SAP TechEd 2021, SAP offers digital learnings free of charge to everybody interested in SAP products on <A href="https://learning.sap.com" target="_blank" rel="noopener noreferrer">https://learning.sap.com</A>. In this blog post, I want to present to you the learning journey <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform" target="_blank" rel="noopener noreferrer">Administrating SAP Business Technology Platform</A>.</P><P>&nbsp;</P><H2 id="toc-hId-1050763038"><STRONG>Introduction</STRONG></H2><P>SAP offers plenty of services to enhance your business in one central place: SAP Business Technology Platform (SAP BTP). This platform-as-a-service (PaaS) provides the central place to improve your handling of data and analytics, integrate data and processes, or develop and extend software by leveraging such <A href="https://discovery-center.cloud.sap/viewServices" target="_blank" rel="noopener nofollow noreferrer">SAP BTP services</A>.</P><P>But before you can operate a service, you must define the basis like directories, subaccounts, and runtime environments. Users need authorizations and applications need connections to service provides. There are various configuration options to define your service landscape suitable for your business scenarios. All of this should also be observed and monitored concerning performance or costs.</P><P>This is exactly what this learning journey is about: <STRONG>Administrating the basis for operating SAP cloud services in SAP BTP</STRONG>. And yes, I chose the term β€œbasis” on purpose for those people out there, who are right now on their journey from on-premise to cloud. Just take a seat in our learning journey.</P><P>The units in the current version are the following:</P><OL><LI>Overview, Responsibilities and Guidance</LI><LI>Architecture</LI><LI>Identity and Access Management</LI><LI>Configuration</LI><LI>Connectivity</LI><LI>Observability and Monitoring</LI><LI>Cost and Usage Management</LI></OL><P>&nbsp;</P><H2 id="toc-hId-854249533"><STRONG>Content</STRONG></H2><H3 id="toc-hId-786818747"><STRONG>1. Overview, Responsibilities and Guidance</STRONG></H3><P>Unit 1 describes shortly the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/illustrating-the-intelligent-sustainable-enterprise_df1d2992-a95a-487a-9a06-7226bebbb11d" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform</A> and its <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/analyzing-sap-business-technology-platform-sap-btp-_ae0a22bc-793e-4210-a3ab-fb3dc26c848f" target="_blank" rel="noopener noreferrer">commercial models</A>. Most importantly, it <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/analyzing-responsibilities-and-guidance-resources" target="_blank" rel="noopener noreferrer">analyzes responsibilities and guidance resources</A> for SAP BTP.</P><P>There is no exercise in this unit. If you want to know more, please check our learning journey <A href="https://learning.sap.com/learning-journeys/discover-sap-business-technology-platform" target="_blank" rel="noopener noreferrer">Discovering SAP Business Technology Platform</A> acting as a prerequisite.</P><H3 id="toc-hId-590305242"><STRONG>2. Architecture</STRONG></H3><P>Unit 2 covers the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/explaining-sap-btp-account-model" target="_blank" rel="noopener noreferrer">SAP BTP account model</A> consisting of global accounts, directories, and subaccounts. After <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-service-subscriptions" target="_blank" rel="noopener noreferrer">service subscriptions</A>, the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/describing-runtime-environments" target="_blank" rel="noopener noreferrer">runtime environments</A> in SAP BTP are managed. <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-cloud-foundry-environments" target="_blank" rel="noopener noreferrer">Cloud Foundry</A> and <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-kyma-runtimes" target="_blank" rel="noopener noreferrer">Kyma</A> are enabled and (name-) spaces created to instantiate services in these runtimes. Finaly, the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-abap-environments" target="_blank" rel="noopener noreferrer">ABAP environment</A> is enabled and the landscape portal is used to manage ABAP system hibernation.</P><P>The following is exercised:</P><UL><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_E3E69446629B49BD:uebung" target="_blank" rel="noopener nofollow noreferrer">Create Directories</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_9272F7134D6F08BC:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Subaccount in a Directory</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_D045DD5DBF3328A0:uebung" target="_blank" rel="noopener nofollow noreferrer">Create Subaccounts with Default Provider and Region</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_2DF41C84577CB3B5:uebung" target="_blank" rel="noopener nofollow noreferrer">Entitle a Service in a Directory</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_122CC5F8FE764391:uebung" target="_blank" rel="noopener nofollow noreferrer">Entitle and Subscribe a Service in a Subaccount</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_D08698098BE194BE:uebung" target="_blank" rel="noopener nofollow noreferrer">Add a Service Plan for Cloud Foundry Environment</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_8497B16983A8D2B3:uebung" target="_blank" rel="noopener nofollow noreferrer">Enable and Configure a Cloud Foundry Environment</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_9D60EA242256FD98:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Service Instance in a Cloud Foundry</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_9BA67795F2704492:uebung" target="_blank" rel="noopener nofollow noreferrer">Add a Service Plan for Kyma Environment</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_AA8ABBA81BB8659E:uebung" target="_blank" rel="noopener nofollow noreferrer">Enable a Kyma Runtime</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_F5EF12C76D61AEA8:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Namespace in a Kyma Runtime</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_B530D789A6BD33B8:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Service Instance in Kyma</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_953130F96FF8193:uebung" target="_blank" rel="noopener nofollow noreferrer">Entitle and Create an ABAP Environment</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_FA62D1361D7B248F:uebung" target="_blank" rel="noopener nofollow noreferrer">Entitle and Create Web Access for ABAP</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_8B052A3A311760BD:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Subaccount for Operation</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_F761F7F381CD658B:uebung" target="_blank" rel="noopener nofollow noreferrer">Entitle, Create, and Authorize the Landscape Portal</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_DCA7FF8A050713AE:uebung" target="_blank" rel="noopener nofollow noreferrer">Check ABAP System Details and Manage System Hibernation</A></LI></UL><H3 id="toc-hId-393791737"><STRONG>3. Identity and Access Management</STRONG></H3><P>Unit 3 explains the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/explaining-identity-and-access-management-on-sap-btp" target="_blank" rel="noopener noreferrer">identity and access management on SAP BTP</A> on all levels and distinguishes business from platform users. How to <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-users-and-authorizations-on-sap-btp" target="_blank" rel="noopener noreferrer">manage users and authorizations on SAP BTP</A> &nbsp;with roles and role collections connected to identity providers is followed by a <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/summarizing-the-security-concept-for-cloud-native-applications-on-sap-btp" target="_blank" rel="noopener noreferrer">summary of the security concept for cloud native applications</A>. This leads to the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-users-and-authorizations-in-sap-btp-environments" target="_blank" rel="noopener noreferrer">management of users and authorizations in SAP BTP environments</A>.</P><P>The following is exercised:</P><UL><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_C0A35F553E2D6A8B:uebung" target="_blank" rel="noopener nofollow noreferrer">Create Administrator User in a Subaccount</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_975715A54675FEA8:uebung" target="_blank" rel="noopener nofollow noreferrer">Inspect and Assign Predefined Role Collections for Applications</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_5E03B26EFAEF849E:uebung" target="_blank" rel="noopener nofollow noreferrer">Assign Developer Authorizations in Cloud Foundry</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_D56EF939AA58C18B:uebung" target="_blank" rel="noopener nofollow noreferrer">Manage Cluster Roles in Kyma</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_A3A0556B12BCE09B:uebung" target="_blank" rel="noopener nofollow noreferrer">Manage Business Roles in the ABAP Environment</A></LI></UL><H3 id="toc-hId-197278232"><STRONG>4. Configuration</STRONG></H3><P>Unit 4 provides various ways to configure the SAP BTP starting with <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/using-boosters" target="_blank" rel="noopener noreferrer">boosters</A>, which are guided interactive steps to configure services. <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/operating-command-line-interface-tools" target="_blank" rel="noopener noreferrer">Operating the command line interface (CLI) tools</A> btp CLI for SAP BTP and cf CLI for Cloud Foundry are like the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/using-kubectl-to-interact-with-the-kubernetes-api-and-configure-it-for-kyma" target="_blank" rel="noopener noreferrer">kubectl for Kyma</A> the most direct way to interact with SAP BTP on a technical level. To <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/managing-sap-btp-with-terraform" target="_blank" rel="noopener noreferrer">manage SAP BTP with Terraform</A> incorporates btp CLI to automate infrastructure provisioning and management.</P><P>The following is exercised:</P><UL><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_1472FE2575F6DEB5:uebung" target="_blank" rel="noopener nofollow noreferrer">Start a Booster in SAP BTP</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_94073292A38A33B4:uebung" target="_blank" rel="noopener nofollow noreferrer">Operate SAP BTP Command Line Interface (btp CLI)</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_12C2D3DA9DA180A6:uebung#3" target="_blank" rel="noopener nofollow noreferrer">Setting and Configuring Kubectl for Kyma</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_B081CBD52DD9DAAF:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Terraform Configuration for SAP BTP</A></LI></UL><H3 id="toc-hId-764727"><STRONG>5. Connectivity</STRONG></H3><P>Unit 5 starts with <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/analyzing-connectivity-in-sap-btp_e525e7d8-20a0-41f7-8b79-eec4aad834a8" target="_blank" rel="noopener noreferrer">analyzing connectivity in SAP BTP</A> and jumps to <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/using-destinations" target="_blank" rel="noopener noreferrer">using destinations</A> on subaccount, service, and environment level. To connect the SAP BTP to on-premise systems, <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/operating-cloud-connector" target="_blank" rel="noopener noreferrer">operating the cloud connector</A> is mandatory for any SAP BTP service.</P><P>The following is exercised:</P><UL><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_E3E40B47AC0B9997:uebung" target="_blank" rel="noopener nofollow noreferrer">Create a Destination</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_703C5EEEC8C30896:demo" target="_blank" rel="noopener nofollow noreferrer">How to Install Cloud Connector on Linux</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_D677DE0D62298A94:uebung" target="_blank" rel="noopener nofollow noreferrer">Replace the UI Certificate in Cloud Connector</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_32960E9AD6363583:demo" target="_blank" rel="noopener nofollow noreferrer">How to Configure First SAP BTP Subaccount in Cloud Connector</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_E9E86BCB3B45A8A0:uebung" target="_blank" rel="noopener nofollow noreferrer">Configure Access Control (HTTP)</A></LI><LI><A href="https://education.hana.ondemand.com/education/pub/mmcp/index.html?show=project!PR_BAF31110B5BE7F87:demo" target="_blank" rel="noopener nofollow noreferrer">How to Use a Cloud to On-Premise Scenario</A></LI></UL><H3 id="toc-hId--195748778"><STRONG>6. Observability and Monitoring</STRONG></H3><P>Unit 6 imparts <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/explaining-the-observability-strategy-of-sap-btp" target="_blank" rel="noopener noreferrer">the observability strategy of SAP BTP</A> with SAP Cloud Application Lifecycle Management (ALM) in its core. It offers <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/explaining-central-observability-tools" target="_blank" rel="noopener noreferrer">central observability tools</A> like business process, integration, user, or health monitoring. Including the <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/explaining-local-observability-tools" target="_blank" rel="noopener noreferrer">local observability tools</A> SAP Alert Notification Service and SAP Automation Pilot, SAP BTP offers a comprehensive monitoring approach.</P><P>There is no exercise in this unit. If you want to know more, please check our learning journey <A href="https://learning.sap.com/learning-journeys/operating-with-sap-cloud-alm" target="_blank" rel="noopener noreferrer">Operating with SAP Cloud ALM</A>, especially unit 2 (Using Monitoring and Analysis).</P><H3 id="toc-hId--392262283"><STRONG>7. Cost and Usage Management</STRONG></H3><P>Unit 7 closes the learning journey with <A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform/using-cost-and-usage-management" target="_blank" rel="noopener noreferrer">cost and usage management</A>, a topic often requested by customers.</P><P>There is no exercise in this unit but many slides and videos with hints around handling the costs of SAP BTP efficiently.</P><P>&nbsp;</P><H2 id="toc-hId--717858507"><STRONG>Summary</STRONG></H2><P>If you have read so far, it seems that you are really thinking about consuming the learning journey. Don’t hesitate and jump right in:</P><P><A href="https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform" target="_blank" rel="noopener noreferrer">https://learning.sap.com/learning-journeys/administrating-sap-business-technology-platform</A></P><P>If you want to put your hands on some live system, the SAP BTP trial is just on click away:</P><P><A href="https://www.sap.com/products/technology-platform/pricing.html" target="_blank" rel="noopener noreferrer">https://www.sap.com/products/technology-platform/pricing.html</A></P><P>If you are more interested in a customer course for SAP BTP administration, please visit <A href="https://training.sap.com" target="_blank" rel="noopener noreferrer">https://training.sap.com</A>. The ADMCLD (Introduction to SAP Business Technology Platform (BTP) Administration) is a 3-day-course offered as physical and virtual event:</P><P><A href="https://training.sap.com/course/admcld" target="_blank" rel="noopener noreferrer">https://training.sap.com/course/admcld</A></P><P>For any other questions around the offerings of SAP Learning Services, please jump to our community page and get in contact with us:</P><P><A href="https://pages.community.sap.com/topics/training-certification" target="_blank" rel="noopener noreferrer">https://pages.community.sap.com/topics/training-certification</A></P><P>Happy learning<BR />Stefan</P> 2024-10-01T09:54:30.730000+02:00 https://community.sap.com/t5/technology-blogs-by-members/different-types-of-sap-btp-environments-and-how-to-choose-the-right-one/ba-p/13887368 Different types of SAP BTP environments and how to choose the right one 2024-10-03T18:47:52.435000+02:00 Sudhir_Lenka https://community.sap.com/t5/user/viewprofilepage/user-id/208695 <P><SPAN><STRONG>SAP Business Technology Platform (SAP BTP) is an integrated offering comprised of four technology portfolios: </STRONG>database &amp; data management, application development &amp; integration, analytics, and intelligent technologies. The platform allows users to turn data into business value, compose end-to-end business processes, and quickly build and extend SAP applications.</SPAN></P><P><SPAN><STRONG>SAP BTP comes in two variants:<SPAN><STRONG>Neo, which <SPAN><STRONG>is being<SPAN><STRONG> gradually phased out<SPAN><STRONG>, and Multi-Cloud<SPAN><STRONG>, <SPAN><STRONG>which has been <SPAN><STRONG>the default for new customers since 2020.</STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG> SAP BTP lets you choose from different infrastructures and runtimes. Its services and solutions are available on multiple cloud infrastructure providers; it supports different runtimes, such as Cloud Foundry, ABAP, and Kyma, as well as multiple regions and a broad choice of programming languages.</SPAN></P><P>In thisblog, I will explain the difference between each environment and how to choose the right <SPAN>one.</SPAN></P><P><STRONG>SAP BTP Environments</STRONG></P><P>The environment in SAP BTP is a platform-as-a-service offering<SPAN> that offers runtime, services, and tools for developing and executing a business application. Environments are chosen at the subaccount level.</SPAN></P><P><SPAN><STRONG>SAP BTP comes <SPAN><STRONG>in<SPAN><STRONG> two variants<SPAN><STRONG>, <SPAN><STRONG>offer<SPAN><STRONG>ing<SPAN><STRONG> different environments:</STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></STRONG></SPAN></P><OL class="lia-list-style-type-square"><LI><STRONG>Multi-Cloud</STRONG><UL><LI><SPAN><SPAN><STRONG>Cloud Foundry Environment:</STRONG></SPAN></SPAN><UL class="lia-list-style-type-circle"><LI>The Cloud Foundry environment contains the SAP BTP, Cloud Foundry runtime service, based on the open-source application platform managed by the Cloud Foundry Foundation<SPAN>.</SPAN></LI><LI>It enables developers to develop new business applications and business services, supporting multiple runtimes, programming languages (Node.js, Java, Python, etc.), libraries, and services.</LI><LI>Scales easily and supports DevOps pipelines.</LI><LI><SPAN>It offers a broad range of services like machine learning, IoT, and SAP AI.</SPAN></LI></UL></LI><LI><SPAN><SPAN><STRONG>ABAP Environment:</STRONG></SPAN></SPAN><UL class="lia-list-style-type-circle"><LI>The ABAP environment allows developers to create extensions for ABAP-based products, such as SAP S/4HANA Cloud, and develop new cloud applications.</LI><LI>It supports the ABAP RESTful Application Programming Model<SPAN>, which includes SAP Fiori and Core Data Services (CDS).</SPAN></LI><LI>Ideal for extending on-premise SAP systems.</LI></UL></LI><LI><SPAN><SPAN><STRONG>Kyma Environment:</STRONG></SPAN></SPAN><UL class="lia-list-style-type-circle"><LI>The Kyma environment is a fully managed Kubernetes runtime based on the open-source project "Kyma<SPAN>."</SPAN></LI><LI>&nbsp;It allows developers to extend SAP solutions with serverless functions and combine them with <SPAN>containerised microservices.</SPAN></LI><LI>Supports serverless capabilities and event triggers.</LI><LI>Supports autoscaling and self-healing.</LI><LI>Ideal for event-driven architectures.</LI></UL></LI></UL></LI><LI><SPAN><STRONG>Neo</STRONG></SPAN><UL><LI><SPAN><SPAN><STRONG>Neo Environment:</STRONG></SPAN></SPAN><UL class="lia-list-style-type-circle"><LI>The Neo environment is provisioned from SAP data centers.</LI><LI>It enables developers to develop HTML5, Java, and SAP HANA extended application services (SAP HANA XS) applications.</LI><LI>SAP has announced that the Neo environment will <SPAN><SPAN>be phased out on December 31, 2028, subject to terms of customer or partner contracts.</SPAN></SPAN></LI></UL></LI></UL></LI></OL><P><STRONG>Comparison: SAP BTP, Kyma Runtime and SAP BTP, Cloud Foundry Runtime</STRONG></P><P><STRONG>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</STRONG></P><TABLE border="1" width="652"><TBODY><TR><TD width="200"><P><STRONG>Category</STRONG></P></TD><TD width="200"><P><STRONG>SAP BTP, Kyma runtime</STRONG></P></TD><TD width="251"><P><STRONG>SAP BTP, Cloud Foundry runtime</STRONG></P></TD></TR><TR><TD width="200"><P>Based on <SPAN>open source</SPAN></P></TD><TD width="200"><P>Based on Kyma open source</P></TD><TD width="251"><P>Based on Cloud Foundry open source</P></TD></TR><TR><TD width="200"><P>Developer <SPAN>p</SPAN>rofile</P></TD><TD width="200"><P>Developers skilled in Java, Node.JS, Python, <SPAN>and </SPAN>the SAP Cloud Application Programming Model (CAP)<SPAN>,</SPAN> including SAP UI5 and Fiori Elements<SPAN>.</SPAN></P></TD><TD width="251"><P>Developers skilled in Java, Node.JS, Python, and the SAP Cloud Application Programming Model (CAP)<SPAN>,</SPAN> including SAP UI5 and Fiori Elements<SPAN>.</SPAN></P></TD></TR><TR><TD width="200"><P>Micro <SPAN>S</SPAN>ervices</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>CAP <SPAN>A</SPAN>pplications</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>SAP Cloud SDK support</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>Approuter <SPAN>s</SPAN>upport</P></TD><TD width="200"><P>Standalone <SPAN>a</SPAN>pprouter</P></TD><TD width="251"><P>Both Standalone and Managed <SPAN>A</SPAN>pprouter</P></TD></TR><TR><TD width="200"><P>Supported <SPAN>b</SPAN>uildpacks</P></TD><TD width="200"><P><SPAN>Cloud-native</SPAN> <SPAN>b</SPAN>uildpacks</P></TD><TD width="251"><P>SAP-managed and Cloud Foundry community buildpacks for several development languages<SPAN>.</SPAN></P></TD></TR><TR><TD width="200"><P>Service <SPAN>m</SPAN>esh <SPAN>s</SPAN>upport</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>No</P></TD></TR><TR><TD width="200"><P>Elasticity</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>Autoscaling <SPAN>s</SPAN>upport</P></TD><TD width="200"><P>Yes</P></TD><TD width="251"><P>Yes, with the&nbsp;Application Autoscaler&nbsp;service.</P></TD></TR><TR><TD width="200"><P>In-system build &amp; deploy using buildpacks</P></TD><TD width="200"><P>No</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>Platform-as-a-service: MTA support</P></TD><TD width="200"><P>No</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>Transport services</P></TD><TD width="200"><P>No</P></TD><TD width="251"><P>Yes</P></TD></TR><TR><TD width="200"><P>Minimum infrastructure size</P></TD><TD width="200"><P>3 Kubernetes Nodes, each 4 CPU and 16 GB memory. Roughly 40% is reserved to run the infrastructure.</P></TD><TD width="251"><P>1 GB Memory with ΒΌ CPU core<SPAN>.</SPAN></P></TD></TR></TBODY></TABLE><P><STRONG>How to choose the right environment – Cloud Foundry </STRONG><STRONG>v</STRONG><STRONG>s ABAP vs Kyma</STRONG></P><P>It is <SPAN>essential</SPAN> to choose the right environment for your BTP account<SPAN>. Here are a few points to consider</SPAN><SPAN>:</SPAN></P><UL class="lia-list-style-type-square"><LI><SPAN><STRONG>Evaluate </STRONG></SPAN><SPAN><STRONG>y</STRONG></SPAN><SPAN><STRONG>our </STRONG></SPAN><SPAN><STRONG>a</STRONG></SPAN><SPAN><STRONG>pplication </STRONG></SPAN><SPAN><STRONG>r</STRONG></SPAN><SPAN><STRONG>equirements</STRONG></SPAN><SPAN><STRONG>:</STRONG></SPAN><UL class="lia-list-style-type-circle"><LI>If your application needs multi-cloud support and scalability<SPAN>,</SPAN> then Cloud Foundry is likely the best choice because of its multi-cloud and microservices capabilities.</LI><LI>If you are extending an existing ABAP-based SAP system, then ABAP Environment is the most suitable<SPAN>.</SPAN></LI><LI>If you are building event-driven, serverless, or <SPAN>containerised </SPAN>applications<SPAN>,</SPAN> Kyma Environment would be the best choice as it supports Kubernetes and microservice architectures.</LI></UL></LI><LI><SPAN><STRONG>Programming </STRONG></SPAN><SPAN><STRONG>l</STRONG></SPAN><SPAN><STRONG>anguage and </STRONG></SPAN><SPAN><STRONG>t</STRONG></SPAN><SPAN><STRONG>echnology </STRONG></SPAN><SPAN><STRONG>s</STRONG></SPAN><SPAN><STRONG>tack </STRONG></SPAN><SPAN><STRONG>p</STRONG></SPAN><SPAN><STRONG>references</STRONG></SPAN><SPAN><STRONG>:</STRONG></SPAN><UL class="lia-list-style-type-circle"><LI>Cloud Foundry supports <SPAN>various</SPAN> languages<SPAN> like</SPAN><SPAN> Java, Node.js, Python, Ruby, Go, and PHP</SPAN>.</LI><LI>Kyma is Kubernetes-based and supports containers, microservices, and serverless functions.</LI><LI>ABAP Environment uses ABAP and is ideal for customers with an existing SAP ABAP codebase.</LI></UL></LI><LI><SPAN><STRONG>Assess </STRONG></SPAN><SPAN><STRONG>y</STRONG></SPAN><SPAN><STRONG>our </STRONG></SPAN><SPAN><STRONG>i</STRONG></SPAN><SPAN><STRONG>ntegration </STRONG></SPAN><SPAN><STRONG>n</STRONG></SPAN><SPAN><STRONG>eeds</STRONG></SPAN><STRONG><SPAN>:&nbsp;</SPAN></STRONG>Choose the environment based on the requirement to integrate with other SAP systems or third-party services<SPAN>.</SPAN><SPAN>&nbsp;</SPAN><UL class="lia-list-style-type-circle"><LI>Cloud Foundry integrates easily with various SAP and non-SAP services.</LI><LI>ABAP Environment integrates smoothly with existing SAP systems, especially S/4HANA.</LI><LI>Kyma supports both event-based integration and Kubernetes orchestration, which is ideal for extending cloud applications.</LI></UL></LI><LI><SPAN><STRONG>Consider </STRONG></SPAN><SPAN><STRONG>s</STRONG></SPAN><SPAN><STRONG>calability and </STRONG></SPAN><SPAN><STRONG>c</STRONG></SPAN><SPAN><STRONG>loud </STRONG></SPAN><SPAN><STRONG>p</STRONG></SPAN><SPAN><STRONG>rovider </STRONG></SPAN><SPAN><STRONG>o</STRONG></SPAN><SPAN><STRONG>ptions</STRONG></SPAN><STRONG><SPAN>:</SPAN></STRONG><UL class="lia-list-style-type-circle"><LI>Cloud Foundry allows deploy<SPAN>ment</SPAN> on multiple cloud providers like AWS, Azure, and Google Cloud.</LI><LI>Kyma supports Kubernetes, which is highly scalable for <SPAN>containerised </SPAN>workloads.</LI><LI>ABAP Environment is SAP-managed and designed for extending SAP environments.</LI></UL></LI><LI><SPAN><STRONG>Evaluate </STRONG></SPAN><SPAN><STRONG>c</STRONG></SPAN><SPAN><STRONG>ost and </STRONG></SPAN><SPAN><STRONG>p</STRONG></SPAN><SPAN><STRONG>ricing</STRONG></SPAN><STRONG><SPAN>:&nbsp;</SPAN></STRONG>Different environments have varying cost implications depending on:<UL class="lia-list-style-type-circle"><LI>Services you require.</LI><LI>Your cloud provider of choice.</LI><LI>The scale of your application.</LI></UL></LI></UL><P><STRONG>Conclusion: Which Environment to Choose?</STRONG></P><UL><LI><SPAN><STRONG>Cloud Foundry:</STRONG></SPAN> If you need multi-cloud support, microservices, and broad programming language support.</LI><LI><SPAN><STRONG>Kyma:</STRONG></SPAN> If you are building event-driven, Kubernetes-based applications or using serverless architecture.</LI><LI><STRONG>ABAP Environment:</STRONG><SPAN> If you are extending SAP’s core applications (like S/4HANA) and working with an ABAP-heavy stack.</SPAN></LI></UL><P><SPAN>Best Regards,</SPAN></P><P><SPAN>Sudhir.</SPAN></P> 2024-10-03T18:47:52.435000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-btp-partner-hands-on-excellence-program-hep-workshop-catalog/ba-p/13877498 SAP BTP Partner Hands-on Excellence Program (HEP) Workshop Catalog 2024-10-04T09:00:00.028000+02:00 Andreas_Hirche https://community.sap.com/t5/user/viewprofilepage/user-id/43639 <P style=" text-align : left; "><SPAN>Introducing the SAP BTP Partner Hands-On Excellence Program (HEP) Catalog 2024 / 2025 featuring the following topics. To bring you top content and key insights, we cover the hottest core topics of SAP Business Technology Platform in 2 or 3 day workshops. Our workshops are available on-site and in-person across several different locations.</SPAN></P><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Andreas_Hirche_0-1727874282822.png" style="width: 526px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/174365i481CA157BF2EAACC/image-dimensions/526x530?v=v2" width="526" height="530" role="button" title="Andreas_Hirche_0-1727874282822.png" alt="Andreas_Hirche_0-1727874282822.png" /></span></P><P style=" text-align : left; "><SPAN>We have dates available for the following topics:&nbsp;</SPAN></P><UL><LI><A href="https://events.sap.com/datasphere4partners/en/home" target="_self" rel="noopener noreferrer">SAP Datasphere</A></LI><LI><A href="https://events.sap.com/build4partners/en/home" target="_self" rel="noopener noreferrer">SAP Build</A></LI><LI><A href="https://events.sap.com/integrationsuite4partners/en/home" target="_self" rel="noopener noreferrer">SAP Integration Suite</A></LI><LI><A href="https://events.sap.com/businessai4partners/en/home" target="_self" rel="noopener noreferrer">SAP Business AI</A></LI></UL><P><SPAN>Our workshops are expanding! We are excited to cover even more topics in the coming months. Stay tuned for our workshop dates featuring:</SPAN></P><UL><LI><SPAN>SAP Fiori E2E</SPAN></LI><LI><SPAN>SAP Mobile Experience</SPAN></LI><LI><SPAN>SAP Build Code</SPAN></LI></UL><P>What is in it for you?</P><UL><LI>On-site events for full focus and participation</LI><LI>Direct access to topic experts. Get your questions answered and grow your network</LI><LI>Elevate your skills as you learn and explore the benefits of SAP Discovery Center as an enablement platform from upskilling to go-live.</LI><LI>Make your voice heard by sharing your feedback on the workshop and products</LI><LI>Receive your digital badge after successfully completing the workshop</LI></UL> 2024-10-04T09:00:00.028000+02:00 https://community.sap.com/t5/technology-blogs-by-members/cyber-security-protection-for-s-4hana-backups-with-enterprise-blockchain/ba-p/13872997 Cyber Security Protection for S/4HANA Backups with Enterprise Blockchain and SAP BTP Kyma πŸš€ 2024-10-04T15:32:15.253000+02:00 AndySilvey https://community.sap.com/t5/user/viewprofilepage/user-id/1397601 <P>Welcome to the latest blog in the series on SAP and Enterprise Blockchain.</P><P>Hopefully you've all had a great summer and are full of energy and ready to go for the sprint to the end of the year, so let's bring all of our energy and get great things done.</P><P>In my journey with Enterprise Blockchain, I was talking to a CSP Telco in Norway who came with this Enterprise Blockchain use case which was new for me and a good one. It is easy to implement and extremely effective, difficulty is easy and impact is high, what's not to like <span class="lia-unicode-emoji" title=":slightly_smiling_face:">πŸ™‚</span> They've implemented it, by the way, and it works.</P><P>So, what's the scoop ?</P><P>As I previously wrote <A href="https://community.sap.com/t5/technology-blogs-by-members/iot-ultimate-data-cyber-security-with-enterprise-blockchain-and-sap-btp/ba-p/13676981" target="_self">here</A>&nbsp;Cyber Security and Resilience are no long about High Availability and Disaster Recovery, our HyperScalers have all of the capacity we could ever need and can spin up capacity on demand.</P><P data-unlink="true">The threat these days is less that Hackers wants to steal our Data, and more that Hackers wants to simply mess up our Data so that our Business cannot Operate, rather than stealing they just want to put a spanner in the works&nbsp; so to speak.</P><P>&nbsp;</P><P style=" padding-left : 120px; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Credit: https://funkyenglish.com/idiom-throw-spanner-works/" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/169338iBB1F1A0E8DBD146A/image-size/medium?v=v2&amp;px=400" role="button" title="AndySilvey_0-1726912712063.png" alt="Credit: https://funkyenglish.com/idiom-throw-spanner-works/" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Credit: https://funkyenglish.com/idiom-throw-spanner-works/</span></span></P><P>&nbsp;</P><P>Just imagine if a Hacker messed up the Data of an Airline, planes wouldn't be able to fly, if a Hacker messed up the Data of a Pharmaceutical company, there would be no medicines, if a Hacker messed up the Data of a Groceries company, there would be nothing to eat.</P><P>&nbsp;</P><P><STRONG>What's the Risk ?</STRONG></P><P>In the same way that Fire Fighters prepare for fires, having the latest equipment and training, and assuming unfortunately that there will one day be a fire...</P><P>As part of our <A href="https://community.sap.com/t5/technology-blogs-by-members/bcp-business-continuity-planning-for-sap-s-4hana-made-easy-with-enterprise/ba-p/13647824" target="_self">BCP</A> Business Continuity Planning we must assume that one day our Organisation will be the victim of a Hacker, and the Operational SAP Applications will be down and will need to be Restored from Backup.</P><P>And here's the question, how can we be sure that the Hacker hasn't messed with our Backup File(s) ?</P><P>You want to Restore from Backup, but there is a doubt that the Hacker has messed with the Backup File, how can you be sure, which Backup file you can trust as the good one ?</P><P><STRONG>And this is the Risk, can you Trust the <U><EM>originality and integrity</EM></U> of your Backup file(s) ?</STRONG></P><P>&nbsp;</P><P><STRONG>What's the Solution ?</STRONG></P><P>How can we guarantee that we know whether or not the Backup File(s) have been messed with ?</P><P>This is easy, <A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-let-the-use-case-find-the-blockchain/ba-p/13632458" target="_self">we think about our use case</A> or our demand and we look in our Enterprise Technology Standards for the technology <A href="https://community.sap.com/t5/technology-blogs-by-members/sap-enterprise-architecture-positioning-blockchain-database-as-an/ba-p/13629842" target="_self">which is the most suited to guaranteeing that Data can be trusted</A>.&nbsp;</P><P>And we find our Enterprise Blockchain Technology Standard.</P><P>So how can we use our <A href="https://community.sap.com/t5/technology-blogs-by-members/running-your-own-blockchain-on-the-sap-btp-kyma-trial-a-hands-on-how-to/ba-p/13724580" target="_self">Enterprise Blockchain which is running on the SAP BTP Kyma</A>&nbsp;to guarantee that we know if we can trust the integrity and originality of our Backup files ?</P><P>This is so easy it's like boiling an egg,</P><P>tl;dr; we run a Hash over the Backup file and store the Hash output in the Enterprise Blockchain where it is super safely protected thanks to the special characteristics of the Blockchain (Immutable, Hash Mechanism, Distributed, Consensus Mechanism), and perish the thought, in the event of a BCP scenario, where we need to Recover with a Backup, we run a new Hash over the Backup file and compare the new Hash to the old Hash (which is safely&nbsp; stored in the Blockchain to protect the integrity and originality of the Hash) and we see if the two Hashes are the same, if they are the same we are good to go with the Restore from Backup, if they are different then we go to the next Backup File and do the same again until we find a Backup File that we can trust.</P><P>And the long answer for those of us who are interested in the finer details...</P><P>Voila.... bring in the Enterprise Blockchain Platform Wallet. The best Enterprise Blockchain Platform products include what is called the Enterprise Blockchain Platform Wallet, or to make it shorter, the Enterprise Blockchain Wallet.</P><P>The Enterprise Blockchain Wallet enables us to store large Data, like large Files safely and securely off the chain, or '<A href="https://www.bitdegree.org/crypto/learn/crypto-terms/what-is-off-chain" target="_self" rel="nofollow noopener noreferrer">Off-Chain</A>'.&nbsp;</P><P>But if we store the large Data files Off-Chain in the Enterprise Blockchain Wallet, then how do we also have them some how on the Enterprise Blockchain Database ?</P><P>The way this works is elegant, in any decent Enterprise Blockchain Platform, the Enterprise Blockchain Wallet location is completely configurable, and could be anywhere from<SPAN>&nbsp;</SPAN><A href="https://www.sap.com/norway/products/technology-platform/hana/features/cloud-data-lake.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud (Data Lake)</A>, or for example&nbsp;multiple hyperscaler object stores, such as Amazon S3, OSS (Alicloud Object Storage Service), SAP HANA Cloud, Data Lake, and Azure Blob Storage.</P><P>The configurable Enterprise Blockchain Wallet of the Enterprise Blockchain Platform looks like this:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain running on SAP BTP Kyma with Enterprise Blockchain Wallet" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/173022iCF1BF0894B380B8F/image-size/large?v=v2&amp;px=999" role="button" title="EnterpriseBlockchainRunningOnSAPBTPKymaWithEnterpriseWallet.jpeg" alt="Enterprise Blockchain running on SAP BTP Kyma with Enterprise Blockchain Wallet" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain running on SAP BTP Kyma with Enterprise Blockchain Wallet</span></span></P><P>&nbsp;</P><P>Ok, so we've got the Backup File stored in the (configurable) Enterprise Blockchain Wallet, but what about securing the Backup File Data ? Obviously the Enterprise Blockchain Wallet storage location has built in security, for example the SAP HANA Cloud, the AWS S3 Buckets, but we need more than the out of the box security of these products, the reason we are using the Enterprise Blockchain Database is because of the amazing security strengths that it natively out of the box has, and so, what about the Enterprise Blockchain Wallet, doesn't the Enterprise Blockchain Platform have some cool super hard way of protecting the data in the Enterprise Blockchain Wallet ?</P><P>Well yes it does, this is the magic of Enterprise Blockchain Database 'Off-Chain' storage in the Enterprise Blockchain Wallet. This is so unique to Blockchain Technologies.</P><P>What happens is this, when store data in the Enterprise Blockchain Wallet, the Enterprise Blockchain Platform software runs a hash algorithm over the data that we have stored and the data, and<SPAN>&nbsp;</SPAN><A href="https://codesigningstore.com/what-is-hashing-algorithm-how-it-works#:~:text=In%20cryptography%2C%20hashing%20is%20a,output%20of%20the%20same%20length." target="_self" rel="nofollow noopener noreferrer">the large file gets hashed</A>:</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AndySilvey_1-1726914595529.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/169340i0FEBB881E79A631A/image-size/large?v=v2&amp;px=999" role="button" title="AndySilvey_1-1726914595529.png" alt="AndySilvey_1-1726914595529.png" /></span></P><P>&nbsp;</P><P>The Backup File in the Enterprise Blockchain Wallet gets Hashed, and then, that Hash is stored in the Enterprise Blockchain Database.</P><P>This means we now have a unique Hash of that Backup File, and if anybody or anything makes even the tiniest teeniest change to that data or file, next time we run a Hash over that data or file the result will be different that the original Hash which is safely stored in the Enterprise Blockchain Database and this is how we will know that the data has been changed and we cannot trust the Data and therefore we cannot use it for Restoring our System.</P><P>On the other hand, if just before we plan to run the Restore from Backup with the Backup File from the Enterprise Blockchain Wallet, if we run a Hash over the Data and the Hash result is the same as we have in the Hash which is stored safely in Enterprise Blockchain Database, then we will know we can trust the Backup File and we can use it for our System Restore from Backup.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Enterprise Blockchain running on SAP BTP Kyma protecting SAP S/4HANA Backup Integrity" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/173023i1AF7F213222021BB/image-size/large?v=v2&amp;px=999" role="button" title="EnterpriseBlockchainSAPBTPKymaBackUpProtection.jpeg" alt="Enterprise Blockchain running on SAP BTP Kyma protecting SAP S/4HANA Backup Integrity" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enterprise Blockchain running on SAP BTP Kyma protecting SAP S/4HANA Backup Integrity</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>And this is why, for all of these reasons,&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>Trustable S/4HANA Backups depend of storing a Hash of the Backup File in the&nbsp; Enterprise Blockchain</STRONG></P><P>&nbsp;</P><P><STRONG>Enterprise Blockchain is:</STRONG></P><P style=" padding-left : 30px; "><EM><STRONG>.<SPAN>&nbsp;</SPAN></STRONG></EM><STRONG>The Digital Transformation of Information Security&nbsp;</STRONG></P><P style=" padding-left : 30px; "><STRONG>. The Next Generation Data Integrity, Originality, Confidentiality Protection</STRONG></P><P style=" padding-left : 30px; "><STRONG>. Re-imagining Information Security</STRONG></P><P style=" padding-left : 30px; "><STRONG>. Natively, out of the box, due to its special characteristics the strongest, hardest, most resilient Enterprise Database product&nbsp;</STRONG></P><P style=" padding-left : 30px; ">&nbsp;</P><P><STRONG>Enterprise Blockchain is both:</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Store</STRONG></P><P style=" padding-left : 30px; "><STRONG>. a Secure Communication Channel</STRONG></P><P>&nbsp;</P><P><STRONG>The configurable Enterprise Blockchain Wallet enables you to store Big Data 'Off-Chain' and the hashes of the Big Data are stored safely and securely on the Enterprise Blockchain Database.</STRONG></P><P>And this is&nbsp;<A class="" href="https://community.sap.com/t5/technology-blogs-by-members/why-i-love-sap-and-blockchain-databases-and-why-you-should-too/ba-p/13625869" target="_blank">Why I love SAP and Blockchain Databases and why you should too <span class="lia-unicode-emoji" title=":rocket:">πŸš€</span></A></P><P>The good news is, as we discussed in the previous blog, this is no longer hype, we can do all of this today,<SPAN>&nbsp;</SPAN><SPAN>and now, within the&nbsp;</SPAN><A href="https://www.sap.com/norway/partners/partner-program/build.html" target="_self" rel="noopener noreferrer">SAP Partner Edge Open EcoSystem</A><SPAN>&nbsp;there are enabling technology Blockchain Products designed and built by SAP Experts specifically for the needs of SAP Customers to make doing Blockchain and SAP easy, and so you can do SAP and Blockchain, today it's real and there's nothing stopping you. <A href="https://community.sap.com/t5/technology-blogs-by-members/running-your-own-blockchain-on-the-sap-btp-kyma-trial-a-hands-on-how-to/ba-p/13724580" target="_self">Here's a how to guide which you can use to try this today with the SAP BTP Kyma Trial and Enterprise Blockchain</A>.</SPAN></P><P>So what are we waiting for ? Oh yeah, more use cases, ok, that will be the next blog.&nbsp;</P><P><SPAN>What do you think, are the words AI, Blockchain, Web3, Distributed Ledger Technology, starting to appear in your Company's visions and technology visions ? What use cases are you looking at ? Let's chat about it in the comments.</SPAN></P><P>For now, over and out.</P><P>Andy Silvey.</P><P>Independent SAP Technical Architect and CEO of atkrypto</P><P>Author Bio:</P><P>Andy Silvey is a 25 years SAP Technology veteran&nbsp;[<EM>15 years SAP Basis and 10 years SAP Tech Arch including Tech, Integration, Security, Data from 3.1H to S/4HANA PCE on RISE and the BTP and everything in between, and<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/welcome-corner-blog-posts/andy-silvey-scn-moderator-spotlight/ba-p/13054438" target="_self">former SCN Moderator and Mentor alumni</A>].</EM></P><P>Andy is also co-Founder of atkrypto inc, an startup whose ambition is to make Blockchain easy for Enterprise.</P><P>atkrypto's flagship product is the atkrypto Enterprise Blockchain Platform for SAP,&nbsp; and atkrypto is a SAP Partner Edge Open EcoSystem Partner.&nbsp;</P><P>The&nbsp;atkrypto Enterprise Blockchain Platform for SAP has been designed by SAP Independent Experts for the needs of SAP Customers and to be deployed on the SAP BTP Kyma Runtime Service and leverage native integration to SAP Products.</P><P>atkrypto&nbsp;Enterprise Blockchain Platform for SAP has a number of unique qualities, including being the only Blockchain software in the world which has a DataCenter version and a light mobile version which can run on Edge/IoT/Mobile devices and enables data to be written to the Blockchain at the Edge where that same Blockchain is running on a Server in the DataCenter, protecting the integrity and originality of data from the Edge to Insights. Taking Blockchain to the Data at the Edge instead of taking the Data to the Blockchain.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-10-04T15:32:15.253000+02:00