https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-HANA-Cloud-blog-posts.xml SAP Community - SAP HANA Cloud 2024-05-10T02:01:20.800910+00:00 python-feedgen SAP HANA Cloud blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-sap/webinar-replay-better-business-outcomes-with-the-sap-hana-cloud-vector/ba-p/13664605 Webinar Replay: Better Business Outcomes with the SAP HANA Cloud Vector Engine 2024-04-09T18:40:22.053000+02:00 Daniel_Dukes https://community.sap.com/t5/user/viewprofilepage/user-id/41370 <P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="generative ai visual example.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94119i4A9391B17A334F44/image-size/large?v=v2&amp;px=999" role="button" title="generative ai visual example.jpeg" alt="generative ai visual example.jpeg" /></span></P><H6 id="toc-hId-1507994309">&nbsp;</H6><P>In case you missed it ... I highly recommend reserving some time in the calendar to watch the <A title="SAP HANA Cloud vector engine webinar" href="https://dam.sap.com/mac/app/p/video/asset/preview/DGQATEn?ltr=a&amp;rc=10" target="_blank" rel="noopener noreferrer">webinar replay</A> from April 4. Experts from SAP and PwC did a great job introducing the vector engine and its role within the retrieval-augmented generation (RAG) process.&nbsp;</P><P>SAP delivered the vector engine as part of the Q1 2024 release of SAP HANA Cloud. Some noteworthy benefits include:</P><UL><LI>Unite all types of business data within a single database using multi-tier data storage, multi-model engines (now including vector), JSON document store, and machine learning advanced processing</LI><LI>Incorporate semantic and similarity search into <A title="intelligent data applications" href="https://www.sap.com/products/technology-platform/hana/features/intelligent-data-apps.html" target="_blank" rel="noopener noreferrer">intelligent data applications</A></LI><LI>Enhance the user experience with more natural capabilities</LI><LI>Augment and improve the output of large language models (LLM) with contextual business data</LI></UL><P>Also, checkout these informative links for additional vector-related resources:</P><UL><LI><SPAN class=""><SPAN>Discovery Center Hands-on Exercise: <A title="Explore the capabilities of SAP HANA Cloud, SAP Generative AI Hub, Azure OpenAI and the LangChain Framework" href="https://discovery-center.cloud.sap/missiondetail/4405/4691/" target="_blank" rel="noopener nofollow noreferrer">Explore the capabilities of SAP HANA Cloud, SAP Generative AI Hub, Azure OpenAI and the LangChain Framework</A></SPAN></SPAN></LI><LI><SPAN class=""><SPAN>Blogpost:&nbsp;</SPAN></SPAN><A title="Vectorize your Data: SAP HANA Cloud's Vector Engine for Unified Data Excellence" href="https://community.sap.com/t5/technology-blogs-by-sap/vectorize-your-data-sap-hana-cloud-s-vector-engine-for-unified-data/ba-p/13579558" target="_blank">Vectorize your Data: SAP HANA Cloud's Vector Engine for Unified Data Excellence</A></LI><LI>Blogpost:&nbsp;<A title="From Developer's Desk: SAP HANA Cloud Vector Engine" href="https://community.sap.com/t5/technology-blogs-by-sap/from-developer-s-desk-sap-hana-cloud-vector-engine/ba-p/13589792" target="_blank"><SPAN>From Developer's Desk: SAP HANA Cloud Vector Engine</SPAN></A></LI><LI><SPAN>Blogpost: <A title="What's New in SAP HANA Cloud - March 2024" href="https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-in-sap-hana-cloud-march-2024/ba-p/13643163" target="_blank">What's New in SAP HANA Cloud - March 2024</A></SPAN></LI></UL> 2024-04-09T18:40:22.053000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/connection-restrictions-and-their-relation-to-user-groups-in-sap-hana-cloud/ba-p/13665855 Connection restrictions and their relation to user groups in SAP HANA Cloud, SAP HANA Database 2024-04-10T16:48:15.194000+02:00 pavlomelnyk https://community.sap.com/t5/user/viewprofilepage/user-id/40105 <P><SPAN>Connect restrictions are access policies and essentially enforcing the limited access to SAP HANA Database for users which belong to a specific user group*. For example, they can be used to restrict access for administrator users to a given IP range, or for technical users to specific applications.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>They enable customers the flexibility to limit access for all users or parts of their user base, for instance, to enable only administrators to log in from the customer's IP range and application range based on the application session variable.</SPAN><SPAN>&nbsp;</SPAN></P><P><I><SPAN>Benefits:</SPAN></I><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Provides more fine-granular control over security configuration settings</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Allows customers to further secure their systems against attacks from the Internet</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>More about connect restrictions you can read in </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-security-guide/connect-restrictions" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud, SAP HANA Database Security Guide: User Management -&gt; User Groups -&gt; Connect Restrictions</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P><STRONG><SPAN>Setting up the connect restrictions by using SAP HANA Cloud Central</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>For a demonstration of how you can make use of connect restrictions, I will use HANA tooling, and more specifically, SAP HANA Cloud Central**.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>A typical customer scenario that is pursued with the usage of this functionality is to limit the access of the users from specific applications they use to access HANA. Also, it is a case when technical users of HANA DB should not be allowed to connect or log into specific apps, with the help of which you can manipulate data or settings in HANA, like HDBSQL or HANA Cockpit/DB Explorer.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To create connect restriction policies, you need to access SAP HANA Cloud -&gt; section “User &amp; Authorization Management” -&gt; subsection “User groups”.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_0-1712753019294.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94711i5BDDC6D1BCEB4615/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_0-1712753019294.png" alt="pavlomelnyk_0-1712753019294.png" /></span></P><P><SPAN class=""><SPAN class="">If you cannot see this tile or access SAP HANA Cloud Central, please check </SPAN></SPAN><A class="" href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/open-sap-hana-cloud-central" target="_blank" rel="noreferrer noopener"><SPAN class=""><SPAN class="">SAP HANA Cloud Administration Guide </SPAN><SPAN class="">documentation</SPAN></SPAN></A><SPAN class=""><SPAN class=""> for</SPAN><SPAN class=""> needed tools subscription and missing authorizations for user.</SPAN></SPAN><SPAN class="">&nbsp;</SPAN></P><P><STRONG><SPAN>Creating a User Group-Specific Connect Restriction</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>A single connect</SPAN> <SPAN>restriction can contain</SPAN><SPAN> multiple </SPAN><SPAN>applications and IP conditions.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To configure those conditions, a user </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-security-guide/user-groups#setting-up-user-groups" target="_blank" rel="noopener noreferrer"><SPAN>requires an OPERATOR object privilege</SPAN></A><SPAN> on the given user group. This can be done by a creator of the given user group or another user who has GRANTOR privilege on this given user group.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>1. If not yet created, in the “User &amp; </SPAN><SPAN>Authorization</SPAN><SPAN> Management” section, </SPAN><SPAN>subsection “User groups,”</SPAN><SPAN> set up a user group, for which you will subsequently create required restrictions. For us, it will be </SPAN><SPAN><FONT face="andale mono,times">Administrators1</FONT>.&nbsp;</SPAN><SPAN>Move required users to this Group.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN><SPAN class=""><SPAN class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_1-1712753087561.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94712i08AFF9DB34E770E8/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_1-1712753087561.png" alt="pavlomelnyk_1-1712753087561.png" /></span></SPAN></SPAN></SPAN></P><P><SPAN><SPAN class=""><SPAN class="">2. Scroll down</SPAN><SPAN class=""> and c</SPAN><SPAN class="">reate a connect restriction </SPAN></SPAN><FONT face="andale mono,times"><SPAN class=""><SPAN class="">NetworkRestrictions1</SPAN></SPAN></FONT><SPAN class=""><SPAN class=""> with conditions for IP addresses in CIDR notation and application. The restriction allows connections for </SPAN><SPAN class="">hdbsql</SPAN><SPAN class=""> application from the mentioned IP addresses and IP ranges</SPAN><SPAN class="">.</SPAN></SPAN><SPAN class="">&nbsp;</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_2-1712753169309.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94713i5554F1EA8832EEEF/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_2-1712753169309.png" alt="pavlomelnyk_2-1712753169309.png" /></span></P><P><SPAN class=""><SPAN class="">You can define multiple </SPAN><SPAN class="">connect</SPAN><SPAN class=""> restrictions in a single statement. </SPAN><SPAN class="">The following example shows how to define</SPAN> <SPAN class="">connect restrictions</SPAN><SPAN class=""> for</SPAN><SPAN class=""> IPS_V4, IPS_V6, and HDBSQL</SPAN><SPAN class="">:</SPAN></SPAN><SPAN class="">&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_3-1712753193121.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94714iBE0F4566692004D9/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_3-1712753193121.png" alt="pavlomelnyk_3-1712753193121.png" /></span></P><P><SPAN>3. The definition of connect restrictions and a list of connection restrictions by user group can also be viewed in the system view </SPAN><FONT face="andale mono,times"><SPAN>USERGROUP_CONNECT_RESTRICTIONS</SPAN></FONT><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>An example for the </SPAN><FONT face="andale mono,times"><SPAN>USERGROUP_CONNECT_RESTRICTIONS</SPAN></FONT><SPAN> table would be as follows in the SQL console of SAP HANA Cloud Central if you execute the steps above:</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_4-1712753259410.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94715i568C700748E614C9/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_4-1712753259410.png" alt="pavlomelnyk_4-1712753259410.png" /></span></P><P><SPAN>Additional syntax for user group creation statements with parameters of connect restrictions can be found in </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/create-usergroup-statement-access-control" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud, SAP HANA Database SQL Reference Guide -&gt; CREATE USERGROUP Statement (Access Control)</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Evaluation of Connect Restrictions</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>After the user has successfully authenticated, connect restrictions are evaluated as part of the user authentication&nbsp;process. If the user group has connect restrictions, members of that group can only connect if at least one of the defined connect restrictions allows access.</SPAN><SPAN>&nbsp;</SPAN></P><P><I><SPAN>Note</SPAN></I><SPAN>: A single connect restriction can consist of multiple conditions, and all must be met to allow access for the user.</SPAN></P><P><STRONG><SPAN>Deactivating connection for all Users of a User Group</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>Use the </SPAN><FONT face="andale mono,times"><SPAN>ENABLE | DISABLE CLIENT CONNECT</SPAN></FONT><SPAN> option to control whether or not the users in a user group can connect to the SAP HANA database, for example, to stop users temporarily from connecting during updates or troubleshooting activities.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Sample Code:&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><FONT face="andale mono,times"><SPAN>ALTER USERGROUP MyUserGroup DISABLE CLIENT CONNECT</SPAN><SPAN>&nbsp;</SPAN></FONT></P><P><SPAN>If you disable client connects for a user group using this feature, no user of that user group can connect, even if connect restrictions would allow it.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Validating a User Group-Specific Connect Restriction</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>In the connect restriction bar on the top right, you also can validate whether a connect attempt would be possible given the active connect restrictions of a user group:</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_5-1712753453762.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94716iB712D26899B09846/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_5-1712753453762.png" alt="pavlomelnyk_5-1712753453762.png" /></span></P><P><SPAN class=""><SPAN class="">The window will pop up where you can test different options</SPAN><SPAN class=""> and get the results</SPAN><SPAN class="">:</SPAN></SPAN><SPAN class="">&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pavlomelnyk_6-1712753479149.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94717iAF607DD8D41C942C/image-size/large?v=v2&amp;px=999" role="button" title="pavlomelnyk_6-1712753479149.png" alt="pavlomelnyk_6-1712753479149.png" /></span></P><P><SPAN>Also, you can use the table function </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/validate-usergroup-connect-restriction-function-security" target="_blank" rel="noopener noreferrer"><SPAN>PUBLIC.VALIDATE_USERGROUP_CONNECT_RESTRICTION&nbsp;</SPAN></A>to do that and<SPAN>&nbsp;use the table function </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/validate-usergroup-connect-restriction-details-function-security" target="_blank" rel="noopener noreferrer"><SPAN>PUBLIC.VALIDATE_USERGROUP_CONNECT_RESTRICTION_DETAILS</SPAN></A> <SPAN>to display details of each connect restriction if a login was allowed for a specific condition.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Some things to keep in mind about validation views:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>This table functions validates all connect restrictions of a user group</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Returns a detailed result of each connect restriction if a login is allowed</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>The check is done for the active and inactive restrictions of a user group:</SPAN><SPAN>&nbsp;</SPAN><UL><LI><SPAN>Client IP Address</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Application Name</SPAN><SPAN>&nbsp;</SPAN></LI></UL></LI></UL><UL><LI><SPAN>NULL values will be returned if a condition doesn’t exist in a connect restriction.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>The input parameters can be omitted as they are supplemented by default values.</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><STRONG><SPAN>Authentication</SPAN></STRONG><STRONG><SPAN>/Connect </SPAN></STRONG><STRONG><SPAN>Failures due to Connect Restrictions</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>If a user connection cannot be established due to a connect restriction, you can find details about why the connection was rejected in the “Failed Authentications” page of “User &amp; Authorization Management” tile of SAP HANA Cloud Central. We will talk more about these features in our future blog post.</SPAN></P><P>&nbsp;</P><P><STRONG><SPAN>Additional resources to check:</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>*User groups support a separation of user management tasks, allowing you to manage related users together and efficiently. A user can belong to only one user group. You can create and manage users in user groups in the SAP HANA Cloud Central and SAP HANA Cockpit.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>More about user groups you can read in </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-security-guide/user-groups" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud, SAP HANA Database Security Guide: User Management -&gt; User Groups</SPAN></A>,<SPAN> and for more information on how to create, see the SAP HANA Cloud, SAP HANA Database SQL Reference Guide:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/create-usergroup-statement-access-control" target="_blank" rel="noopener noreferrer"><SPAN>CREATE USERGROUP Statement (Access Control)</SPAN></A><SPAN>&nbsp;</SPAN></LI><LI><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/alter-usergroup-statement-access-control" target="_blank" rel="noopener noreferrer"><SPAN>ALTER USERGROUP Statement (Access Control)</SPAN></A><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>**With the migration of SAP HANA Cockpit functionality in SAP HANA Cloud Central, all of the documentation for these features has also been migrated to the</SPAN><SPAN> </SPAN><A href="https://help.sap.com/docs/hana-cloud" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud</SPAN></A><SPAN> </SPAN><SPAN>docu set.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Moreover, SAP HANA Cloud Central has in-app help that can be accessed by clicking the “?” icon in the shellbar. This in-app help is extensive and contains links to relevant content in the cloud docu set.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG>The following links may also be helpful:&nbsp;</STRONG></P><P><SPAN>For SAP data lake (SAP HANA Cloud) administration:</SPAN><SPAN> </SPAN><A href="https://help.sap.com/docs/hana-cloud-data-lake/administration-guide-for-data-lake-relational-engine/sap-hana-cloud-data-lake-administration-guide-for-data-lake-relational-engine" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud, Data Lake Administration Guide for Data Lake Relational Engine</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>For SAP HANA Cloud administration:</SPAN><SPAN> </SPAN><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/sap-hana-cloud-administration-guide" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud Administration Guide</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>For SAP HANA database (SAP HANA Cloud) administration:</SPAN><SPAN> </SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-administration-guide/sap-hana-cloud-sap-hana-database-administration-guide" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud, SAP HANA Database Administration Guide</SPAN></A><SPAN>&nbsp;</SPAN></P><P><SPAN>Also, the</SPAN><SPAN> </SPAN><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-database-administration-with-sap-hana-cockpit/sap-hana-cockpit" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud Database Administration with SAP HANA Cockpit</SPAN></A><SPAN> </SPAN><SPAN>still exists but will not be updated or maintained.</SPAN></P> 2024-04-10T16:48:15.194000+02:00 https://community.sap.com/t5/technology-blogs-by-members/nested-json-to-sap-hana-tables-with-sap-integration-suite/ba-p/13664139 Nested JSON to SAP HANA Tables with SAP Integration Suite 2024-04-11T12:51:56.541000+02:00 harshalraut https://community.sap.com/t5/user/viewprofilepage/user-id/1432101 <P><SPAN>In this blog post, I will demonstrate how to send data to SAP HANA Cloud using the Integration Suite. Additionally, I will explain how to handle nested JSON data and distribute it across multiple tables utilizing parallel multicast and mapping functions.</SPAN></P><P><STRONG><FONT size="4">Problem Statement:</FONT></STRONG></P><P><SPAN>We have exposed an API endpoint through which we push data in JSON format and in response we get the insert count in particular tables. The input data contains user details and role details in nested form. We are supposed to insert the user details in User Table whereas in the User-Role mapping table for each role associated with a user, we ensure the creation of a corresponding entry, linking the user's details with their roles.&nbsp;</SPAN><SPAN>Our requirement is to process the JSON data via CPI and populate these two tables.</SPAN></P><P><STRONG><FONT size="4">Architecture:</FONT></STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Architecture.png" style="width: 940px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93720i13378F4D805FD81E/image-size/large?v=v2&amp;px=999" role="button" title="Architecture.png" alt="Architecture.png" /></span></STRONG></P><P><STRONG><FONT size="4">Adding JDBC Data Source in Integration Suite</FONT></STRONG></P><P>We need JDBC URL, User ID and Password to connect to the SAP HANA Cloud Database. We can get it from instance credentials.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93726i6F6DB20BA2E2651C/image-size/large?v=v2&amp;px=999" role="button" title="1.png" alt="1.png" /></span></STRONG></P><P>Here we get the JDBC URL for our database which will be like “jdbc:sap:// &lt;instanceID&gt;.hana.trial-us10.hanacloud.ondemand.com:443/?encrypt=true”</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93729i1C7164A9AD22EB0F/image-size/large?v=v2&amp;px=999" role="button" title="2.png" alt="2.png" /></span></STRONG></P><P>We also get the Runtime User ID and Password for the Schema in the same key.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93731i411050D361097E20/image-size/large?v=v2&amp;px=999" role="button" title="3.png" alt="3.png" /></span></STRONG></P><P>Go to your integration suite tenant and click on JDBC material under Manage security section.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="4.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93742iD8AF18C7EEFE1850/image-size/large?v=v2&amp;px=999" role="button" title="4.png" alt="4.png" /></span></STRONG></P><P>Add the instance details we got from credentials and deploy.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="5.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93744iDEC2F5DF09AF00F9/image-size/large?v=v2&amp;px=999" role="button" title="5.png" alt="5.png" /></span></STRONG></P><P>In case of 3rd party database such as Microsoft SQL Server, Oracle and DB2 you need to upload the JDBC driver jar file under JDBC driver tab. In case of HANA, it is not required.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="6.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93747iB221293E93D08302/image-size/large?v=v2&amp;px=999" role="button" title="6.png" alt="6.png" /></span></STRONG></P><P><STRONG><FONT size="4">Integration Flow Design:&nbsp;</FONT></STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 115825.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94431i68EEB5A88C081BD3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 115825.png" alt="Screenshot 2024-04-10 115825.png" /></span></STRONG></P><P>I have created this integration flow where I have exposed one endpoint to get the JSON data. Firstly, I have converted the JSON data to XML format because we will be sending data through JDBC Adapter in <A href="https://help.sap.com/saphelp_scm70/helpdata/ru/2e/96fd3f2d14e869e10000000a155106/frameset.htm" target="_blank" rel="noopener noreferrer">standard XML format</A>. Below is the standard format for the XML which is used to insert data into database.</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>&lt;root&gt; &lt;StatementName1&gt; &lt;dbTableName action="INSERT"&gt; &lt;table&gt;SCHEMA.”TABLENAME”&lt;/table&gt; &lt;access&gt; &lt;col1&gt;val1&lt;/col1&gt; &lt;col2&gt;val2&lt;/col2&gt; &lt;col3&gt;val3&lt;/col3&gt; &lt;/access&gt; &lt;/dbTableName&gt; &lt;/StatementName1&gt; &lt;/root&gt;</code></pre><P>&nbsp;</P><P>I have used parallel multicast to route the message simultaneously in two different branches since we have to insert data in two different tables.</P><P>Let’s look at message mappings for both the routes.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 124706.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94449iACA87CCB3A752AE3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 124706.png" alt="Screenshot 2024-04-10 124706.png" /></span></STRONG></P><P>For User Table we are using simple one to one mapping and passing "INSERT" in the action attribute.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 125342.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94452i90A75D3E86AB25BB/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 125342.png" alt="Screenshot 2024-04-10 125342.png" /></span></STRONG></P><P>This is the mapping for the mapping table where we map users and their roles. As you can see the userID node has single occurrence per record, but we need it to occur multiple times as per the number of roles that particular user has. So, we will be using the <A href="https://help.sap.com/docs/SAP_NETWEAVER_702/ff4b17c66c55101488e1c652adb52951/4bf416edeaca4c86e10000000a42189e.html" target="_blank" rel="noopener noreferrer">useOneAsMany</A> Node function.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 130312.png" style="width: 669px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94458i9409B12D09A83FEF/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 130312.png" alt="Screenshot 2024-04-10 130312.png" /></span></STRONG></P><P>We then gather the messages from both the routes and pass them together through the JDBC Adapter using Batch processing.</P><P>Let’s look at the configuration of JDBC Adapter.</P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 131200.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94466iD44E395D582A6F97/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 131200.png" alt="Screenshot 2024-04-10 131200.png" /></span></STRONG></P><P>Here is the input payload content I am passing from the Postman.</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code>{ "root": { "UserDetails": [ { "userID": 6666, "username": "harshal", "gender": "male", "email": "harshal@test.com", "roles": [ { "roleID": 1 }, { "roleID": 2 } ] } ] } }</code></pre><P>&nbsp;</P><P>Here is the XML payload content that goes through JDBC Adapter.</P><P>&nbsp;</P><pre class="lia-code-sample language-markup"><code>&lt;root&gt; &lt;StatementName&gt; &lt;dbTableName action="INSERT"&gt; &lt;table&gt;TEST2_HDI_DB_1.USER&lt;/table&gt; &lt;access&gt; &lt;user_ID&gt;6666&lt;/user_ID&gt; &lt;username&gt;harshal&lt;/username&gt; &lt;gender&gt;male&lt;/gender&gt; &lt;email_ID&gt;harshal@test.com&lt;/email_ID&gt; &lt;/access&gt; &lt;/dbTableName&gt; &lt;/StatementName&gt;&gt; &lt;StatementName&gt; &lt;dbTableName action="INSERT"&gt; &lt;table&gt;TEST2_HDI_DB_1.MAPPING&lt;/table&gt; &lt;access&gt; &lt;user_ID&gt;6666&lt;/user_ID&gt; &lt;role_ID&gt;1&lt;/role_ID&gt; &lt;/access&gt; &lt;access&gt; &lt;user_ID&gt;6666&lt;/user_ID&gt; &lt;role_ID&gt;2&lt;/role_ID&gt; &lt;/access&gt; &lt;/dbTableName&gt; &lt;/StatementName&gt; &lt;/root&gt;</code></pre><P>&nbsp;</P><P><STRONG>Response in Postman:</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 134924.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94479i69B9AAF30BD2A29F/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 134924.png" alt="Screenshot 2024-04-10 134924.png" /></span></STRONG></P><P>Let's check our entries in HANA Database.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 140152.png" style="width: 963px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94484iCA0A6B9D769DFB78/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 140152.png" alt="Screenshot 2024-04-10 140152.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-10 140239.png" style="width: 963px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94486iC868578C666DB29A/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-10 140239.png" alt="Screenshot 2024-04-10 140239.png" /></span></P><P><SPAN>Thanks for reading this blog. I hope it was helpful.</SPAN></P><P>&nbsp;</P> 2024-04-11T12:51:56.541000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/value-unlocked-how-customers-benefit-from-sap-hana-cloud/ba-p/13655592 Value Unlocked! How customers benefit from SAP HANA Cloud 2024-04-16T10:26:48.188000+02:00 susenpoppe https://community.sap.com/t5/user/viewprofilepage/user-id/11193 <P>It's a wrap! The&nbsp;<EM>Unlock the value of SAP HANA Cloud </EM>webinar series has come to an end. Over the past couple of weeks our dear customers, Black Horse One, Lufthansa Technik,&nbsp;Żabka Polska and Lexmark shared their respective SAP HANA Cloud use cases with you. They range from intelligent data applications and application development to integration and migration.</P><P><SPAN>If you had no chance to join them live, I have good news for you, the recordings are now available on demand! <A title="Register for free" href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;eventid=4453887&amp;sessionid=1&amp;key=633DEE9BC0648ACF192C267082F735DE&amp;groupId=5191960&amp;sourcepage=register" target="_blank" rel="noopener nofollow noreferrer">Register for free, to access all four recordings and the respective resources shared during the webinars.&nbsp;</A></SPAN><SPAN>If you are not sure whether the series or single webinars are a fit for you, then have a look at the below summaries to get a first idea of the contents.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Webinar Series Visual" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89974i929D5F32D6FF173B/image-size/large?v=v2&amp;px=999" role="button" title="Social Media with Images HANA CLOUD (3).png" alt="Webinar Series Visual" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Webinar Series Visual</span></span></SPAN></P><H3 id="toc-hId-1119851737"><STRONG><span class="lia-unicode-emoji" title=":horse_racing:">🏇</span>&nbsp;Building a powerful, reliable, high-performance data solution with Black Horse One</STRONG></H3><P><SPAN>Today businesses face numerous challenges, that make essential cloud qualities such as performance, reliability, and trustworthiness necessary. Explore how Black Horse One leverages SAP HANA Cloud for their high-performance data infrastructure in this session. Witness the shift from manual to digital processes, enabling real-time access for fans to live video streams and competition stats, ensuring stakeholders are consistently satisfied with smooth performance. Additionally, dive deeper into the capabilities SAP HANA Cloud offers to kickstart the development of your intelligent data app.</SPAN></P><P>&nbsp;</P><H3 id="toc-hId-923338232"><STRONG><span class="lia-unicode-emoji" title=":airplane:">✈️</span>&nbsp;Developing a strong and trusted data application for price management, purchasing and supply chain of spare parts for Lufthansa Technik</STRONG></H3><P>Data management needs to be flexible and efficient alike.&nbsp;Discover SAP HANA Cloud, the cloud-based database solution crafted to meet these criteria. Gain insight into how Lufthansa Technik is running custom, crucial applications on vast amounts of data, offering a dependable and economical base for modern businesses. Understand how you can enhance your enterprise with a high-performing, cloud-based structure. Participate in this session to understand the advantages Lufthansa Technik gains from SAP HANA Cloud. Moreover, grasp the application development capabilities of SAP HANA Cloud and how they can assist you in achieving a competitive edge. Moreover, don't miss out on the live demo of SAP HANA Cloud that has been shown during the webinar.</P><P>&nbsp;</P><H3 id="toc-hId-726824727"><STRONG><span class="lia-unicode-emoji" title=":shopping_cart:">🛒</span>&nbsp;Efficient data access for apps and services in Żabka Polska's hybrid landscape</STRONG></H3><P><SPAN>Get rid of duplication, ensure streamlined access to vital data, allocate space for reports, and replicate on-premise data utilizing SAP HANA Cloud. Manage, regulate, and enhance business processes by conveniently accessing information in a dynamic, hybrid setting. Explore the advantages of employing an in-memory cloud database in Żabka Polska's integration scenario. Furthermore, get insights into offloading workload and accelerating performance when replicating data from SAP HANA to SAP HANA Cloud.</SPAN></P><P>&nbsp;</P><H3 id="toc-hId-530311222"><STRONG><SPAN class=""><span class="lia-unicode-emoji" title=":printer:">🖨</span>&nbsp;Lexmark maximizes technology investments and improves cost-of-ownership with a seamless migration to the cloud</SPAN></STRONG></H3><P><SPAN>Migrating your on-premise solution to the cloud poses considerable challenges. Participate in this session to learn more about the factors driving Lexmark's migration. Gain insights into the smooth transition from SAP HANA on-premise to SAP HANA Cloud, that helped to optimize technological investments and enhanced the total-cost-of-ownership. Additionally, get more information on how SAP can support your migration journey towards SAP HANA Cloud.</SPAN></P><P style=" text-align: center; "><FONT size="4"><STRONG>Did this make you curious? Then don't miss out and access the replays on demand.&nbsp;<A title="Register for free" href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;eventid=4453887&amp;sessionid=1&amp;key=633DEE9BC0648ACF192C267082F735DE&amp;groupId=5191960&amp;sourcepage=register" target="_blank" rel="noopener nofollow noreferrer">Register for free!</A>&nbsp;</STRONG></FONT></P><P style=" text-align: center; ">&nbsp;</P><P style=" text-align : left; "><FONT size="4">Are you looking for more information on SAP HANA Cloud?</FONT></P><P style=" text-align : left; "><FONT size="4">Check out these links:</FONT></P><UL><LI><FONT size="4"><A href="https://pages.community.sap.com/topics/hana" target="_blank" rel="noopener noreferrer">SAP HANA cloud and on-premise databases Community page</A>. Your one-stop-shop for news, learnings and more regrading our products.</FONT></LI><LI><FONT size="4"><A href="https://community.sap.com/t5/tag/whatsnewinsaphanacloud/tg-p" target="_self">whatsnewinsaphanacloud</A> Community tag. Don't miss new blogposts for SAP HANA Cloud.</FONT></LI><LI><FONT size="4"><A href="https://youtube.com/playlist?list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&amp;si=2WXLMLYEVdDY9E2c" target="_blank" rel="noopener nofollow noreferrer">SAP HANA Cloud playlist on YouTube</A>. Check out our videos about the most recent innovations in out database-as-a-service offering.</FONT></LI></UL> 2024-04-16T10:26:48.188000+02:00 https://community.sap.com/t5/technology-blogs-by-members/consuming-capm-application-s-odata-service-into-sap-fiori-application-in/ba-p/13667392 Consuming CAPM Application's OData service into SAP Fiori Application in Business Application Studio 2024-04-16T12:50:31.978000+02:00 Chetan_Bhatt https://community.sap.com/t5/user/viewprofilepage/user-id/1429690 <P style=" text-align : justify; "><STRONG>OBJECTIVE-:</STRONG></P><P style=" text-align : justify; ">Consuming OData Service of CAPM Application into SAP Fiori Application in Business Application Studio.</P><P style=" text-align : justify; "><STRONG>CAPM (Cloud Application Programming Model)-:</STRONG></P><P style=" text-align : justify; ">It is an open-source framework that uses tools, libraries, and languages to create applications that can be used across multiple SAP products. CAPM is a multi-target application that runs at different times, with the persistence layer running in the HANA DB run time, the server layer running in the Node.js run time, and the UI/UX layer running in the browser run time.</P><P style=" text-align : justify; ">CAPM is one of the approaches to developing cloud applications using the BTP platform. CAPM offers a more structured and seamless framework for data modelling and enhancing integration with services.</P><P style=" text-align : justify; "><STRONG>Advantage of CAPM over other approaches-:</STRONG></P><UL style=" text-align : justify; "><LI>It enables full-stack development in the same environment. (BAS), eliminating the need to switch between different environments for the backend and frontend development.</LI><LI>It offers flexibility in language selection, allowing developers to work with multiple languages according to their needs. BAS provides easy connectivity to required extensions for this purpose.</LI><LI>Seamless integration with git and other applications via APIs facilitating extension or development of the application.</LI><LI>Automatically handling dependencies to a certain extent, reducing frustration, and improving development speed. For example, handling the OData after exposing all entities and making it easier to consume in the UI.</LI></UL><P style=" text-align : justify; "><STRONG>Prerequisites-:</STRONG></P><UL style=" text-align : justify; "><LI>Create a CAPM project.</LI><LI>Log in to Cloud Foundry Credentials.</LI><LI>Ensure the HANA Database is created and running (I Used it for storage and data creation).</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_0-1712859475702.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95284iF96BE8EFB182149E/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_0-1712859475702.png" alt="Chetan_Bhatt_0-1712859475702.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_1-1712859475728.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95285iC96312CDDC8F56E6/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_1-1712859475728.png" alt="Chetan_Bhatt_1-1712859475728.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Set up a Dev Space.</LI><LI>Create a SAP Build Work Zone instance to act as a Fiori Launchpad for the CAPM Application</LI></UL><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><STRONG>You Have to create a new Destination in BTP (Connectivity -&gt; Destination)-:</STRONG></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_2-1712859475732.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95283i2F37A3A4212C375A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_2-1712859475732.png" alt="Chetan_Bhatt_2-1712859475732.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">This destination will be used for passing system information when creating a Fiori Application.</P><P style=" text-align : justify; ">For the URL, DEPLOY YOUR APPLICATION IN CLOUD FOUNDRY (Cloud Foundry -&gt;Spaces -&gt;Dev (Space Name)-&gt;Your Service (here it is CAPMChetan-srv) and copy Application Routes).</P><P style=" text-align : justify; ">This URL will be shown only when you deploy your CAPM Application in Cloud Foundry-&gt; A new blog will be there to deploy the CAPM Application.</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_3-1712859475740.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95288i831E1DE5FA2B9750/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_3-1712859475740.png" alt="Chetan_Bhatt_3-1712859475740.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">For Authorization, use the same authorization as created in the package.json -&gt; a new blog will create a security configuration.</P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">Now that the destination for the service is configured, proceed to create a FIORI APP: -</P><UL style=" text-align : justify; "><LI>Open SAP BAS (Business Application Studio).</LI><LI>Open DEV Space where you want to create a Fiori Application.</LI><LI>Go to File -&gt; New Project From template.</LI><LI>Choose a project from the Template (SAP Fiori Application).</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_4-1712859475749.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95287i3F3554B2250D61A3/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_4-1712859475749.png" alt="Chetan_Bhatt_4-1712859475749.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Choose any Template of your choice.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_5-1712859475756.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95286iD67EBDD9E6AB118C/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_5-1712859475756.png" alt="Chetan_Bhatt_5-1712859475756.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>In Data Source choose to connect to a system.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_6-1712859475760.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95290iDCCA5D3A65D7000B/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_6-1712859475760.png" alt="Chetan_Bhatt_6-1712859475760.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_7-1712859475765.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95289i29335856F2EFABAA/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_7-1712859475765.png" alt="Chetan_Bhatt_7-1712859475765.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Specify the Destination created earlier.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_8-1712859475769.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95291i0B4CF5E35759FC40/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_8-1712859475769.png" alt="Chetan_Bhatt_8-1712859475769.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>In the service path, specify the service path of the OData service that can be obtained by running the command “cds watch –profile hybrid” in your CAPM Project.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_9-1712859475773.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95292i7F0BC76D1160938D/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_9-1712859475773.png" alt="Chetan_Bhatt_9-1712859475773.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Click on next.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_10-1712859475781.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95293i7930C75401EC6C12/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_10-1712859475781.jpeg" alt="Chetan_Bhatt_10-1712859475781.jpeg" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Select any entity from the given list of entities &nbsp;you created in your project.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_11-1712859475788.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95294i28FD073ED8BABEB0/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_11-1712859475788.png" alt="Chetan_Bhatt_11-1712859475788.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Customize the project attributes.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_12-1712859475796.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95295i56DC0BF8208D9582/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_12-1712859475796.png" alt="Chetan_Bhatt_12-1712859475796.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Choose the target as Cloud Foundry and select the Destination name among the list of destination names (You can go with either Local CAPM Project API and the name of your destination too).</LI></UL><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_13-1712859475804.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95297i448D5B4C126A031A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_13-1712859475804.png" alt="Chetan_Bhatt_13-1712859475804.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Now, your FIORI project is created and is ready to use.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_14-1712859475814.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95296i4C2BAADDC20B1DDD/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_14-1712859475814.png" alt="Chetan_Bhatt_14-1712859475814.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Go to run configuration and start the project as usual.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_15-1712859475821.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95298i8507FAEBE3A69EB2/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_15-1712859475821.png" alt="Chetan_Bhatt_15-1712859475821.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>You can now run this Fiori Application which is the result of an Application created from CAPM.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_16-1712859475830.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95299iEBFF2F273E03EB7A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_16-1712859475830.png" alt="Chetan_Bhatt_16-1712859475830.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P> 2024-04-16T12:50:31.978000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/top-picks-innovations-highlights-from-sap-business-technology-platform-q1/ba-p/13673350 Top Picks: Innovations Highlights from SAP Business Technology Platform (Q1/2024) 2024-04-17T20:29:36.355000+02:00 Stephanie_Stang https://community.sap.com/t5/user/viewprofilepage/user-id/10354 <P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture2.png" style="width: 601px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97703i2728CE24056724B0/image-size/large?v=v2&amp;px=999" role="button" title="Picture2.png" alt="Picture2.png" /></span></P><P><SPAN>As spring season arrived, we find ourselves already immersed in Q2 2024. So let´s pause for a moment to explore the&nbsp;SAP BTP (Business Technology Platform) innovations we had released in the first quarter of 2024.</SPAN></P><P><SPAN>Take a break and enjoy reading the blog for a closer look on the Q1 2024 highlights of our recent deliveries and an outlook of what´s up next on the SAP BTP product roadmap.</SPAN></P><H3 id="toc-hId-1121637149"><EM>SAP BTP Innovation Highlights Q1 2024</EM></H3><H4 id="toc-hId-1054206363">Application Development and Automation:</H4><UL><LI>At TechEd 2023 in November we announced SAP Build Code. Excited to share that <A href="https://www.sap.com/products/technology-platform/developer-tools.html" target="_self" rel="noopener noreferrer">SAP Build Code</A> is generally available to all developers. With the help of our copilot Joule,&nbsp;<SPAN>SAP Build Code provides&nbsp;</SPAN>AI-based code generation<SPAN>, optimized for Java and JavaScript application development. It is providing a turn-key environment for coding, testing, integrations, and application lifecycle management. Tailored for SAP development, SAP Build Code utilizes the favorite SAP programming models and frameworks and enables to seamlessly connect to S/4HANA and other applications with pre-built integrations. The guided development experience helps as well using best practices. ​In addition SAP Build Code encourages fusion development to use a mix of traditional coding and low-code development. Excited to try out the SAP Build Code offering? Check out the <A href="https://community.sap.com/t5/technology-blogs-by-sap/announcing-general-availability-of-sap-build-code-speed-up-development-with/ba-p/13646073" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/730384">@bhagat_nainani</a>&nbsp;to get more information on features, test drive tutorial, developer quotes and many more.</SPAN></LI><LI><SPAN>SAP Build Process Automation got a new governance capability within the Control Tower: Environments. An Environment, is a virtual space within your SAP Build Process Automation subscription where you can run and deploy projects.&nbsp;&nbsp;It includes&nbsp;triggers and workflow definitions, as well as resources such as Agents producing automation jobs and workflow instances. In the default environment, users can access artifacts based on their security level. Creating shared environments&nbsp;to increase the security of deployed projects and the corresponding artifacts and resources is also possible. Check out more on Environments in the <A href="https://community.sap.com/t5/sap-builders-blog-posts/sap-build-process-automation-introducing-environments/ba-p/13574458" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/188699">@Alex-Fortin</a>.</SPAN></LI><LI>And one more highlight on the datacenter side for SAP Build Process Automation: Switzerland (Zurich) Azure EU Access is available since mid of Q1 as a new region running on Azure for use with enterprise accounts.&nbsp;</LI></UL><H4 id="toc-hId-857692858">Integration:</H4><UL><LI><FONT face="arial,helvetica,sans-serif" size="3"><FONT face="arial,helvetica,sans-serif" size="3">With Q1 the Advanced Event Mesh adapter with Cloud Integration capability within SAP Integration Suite got available. It enables developers to exchange&nbsp;</FONT></FONT>events and messages with SAP Integration Suite, advanced event mesh brokers. Receive messages from queues or topic subscriptions in brokers of SAP Integration Suite, advanced event mesh through the AdvancedEventMesh receiver adapter or send messages to queues or topics in brokers of SAP Integration Suite, advanced event mesh through the AdvancedEventMesh sender adapter is now possible. Check out the new <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/configure-advanced-event-mesh-sender-adapter" target="_self" rel="noopener noreferrer">sender</A> and <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/configure-advanced-event-mesh-receiver-adapter" target="_self" rel="noopener noreferrer">receiver</A> adapter.&nbsp;</LI><LI>With Q1 the creation of custom service-oriented architecture (SOA) messages using WSDL got released. It is an extension of mapping functionalities within the Integration Advisor capability of SAP Integration Suite and offers supports the WSDL format as input for custom message definitions and is an option for use in customer-proprietary SOA messages and customer-extended SOA messages.&nbsp;</LI></UL><H4 id="toc-hId-661179353">Data and Analytics:</H4><UL><LI>Combining the<FONT face="arial,helvetica,sans-serif"> power of large la</FONT>nguage models (LLMs) with company-specific, real-time data and business process know-how, all integrated in the multi-model database? This is now possible with the SAP HANA Cloud vector engine. The vector engine includes key capabilities like similarity search, complex query support, readiness for real-time analysis, vector storage scalability. Adding the vector engine you can recognize that&nbsp;<SPAN>SAP HANA Cloud acts as the default database in SAP’s generative AI solution strategy. Learn more on capabilities, practical use cases, etc. on the <A href="https://www.sap.com/assetdetail/2023/12/08854b59-9f7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">announcement post</A>, the <A href="https://community.sap.com/t5/technology-blogs-by-sap/vectorize-your-data-sap-hana-cloud-s-vector-engine-for-unified-data/ba-p/13579558" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/38259">@shabana</a>&nbsp;&nbsp;and don´t miss to watch the <A href="https://dam.sap.com/mac/app/p/video/asset/preview/Mfbuu9K?ltr=a&amp;rc=10" target="_self" rel="noopener noreferrer">video</A>.</SPAN></LI><LI>And the next availability of some announcements from TechEd 2023: Just Ask -&nbsp; our&nbsp;next-generation natural language query (NLQ) powered by AI. <SPAN>The user simply types the question in natural language into the search field and receives the required insights. The system generates charts that show the data you asked for, so you can easily understand the data.</SPAN>&nbsp;Just Ask supports <A href="https://www.sap.com/products/technology-platform/cloud-analytics.html" target="_self" rel="noopener noreferrer">SAP Analytics Cloud</A> acquired data models and <A href="https://www.sap.com/products/technology-platform/datasphere.html" target="_self" rel="noopener noreferrer">SAP Datasphere</A> models in its first release. Want to see how simple it is? Watch the&nbsp;<A href="https://www.sap.com/assetdetail/2024/02/7c9c5bd1-a97e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">video</A> and don´t miss the <A href="https://community.sap.com/t5/technology-blogs-by-sap/initial-release-of-sap-analytics-cloud-just-ask/ba-p/13583721" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/205297">@francois_imberton</a>.&nbsp;</LI></UL><H4 id="toc-hId-464665848">Artificial Intelligence:</H4><UL><LI>Also Artificial Intelligence (AI), one of the hottest topics at the moment provides innovation highlights in Q1. Starting with new features for <A href="https://discovery-center.cloud.sap/index.html#/serviceCatalog/document-information-extraction?region=all" target="_self" rel="nofollow noopener noreferrer">Document Information Extraction</A>.&nbsp;<SPAN>Users can now combine header fields with different setup types in the same schema, get an improved version of the conversion of country specific unit of measure values into ISO format for invoice documents, extract purchase order numbers that are available on-line item field level from invoice documents and get better models for the extraction of standard document types.&nbsp;</SPAN></LI></UL><H4 id="toc-hId-268152343">Cross SAP BTP:&nbsp;</H4><UL><LI>Maybe you have already seen the recent enhancements on contract-to-billing traceability to the&nbsp;SAP BTP Cockpit? The SAP BTP Cockpit comes up with a new "Usage Analytics" page introducing an entirely new user interface and a brand-new look and feel. In addition the "Entitlements" page got enhanced. Incorporating new commercial information and additional capabilities for increased transparency to improve the understanding of entitlments and allowing to take cost-cutting measures, where needed, are just two of them.&nbsp;Check out the <A href="https://community.sap.com/t5/technology-blogs-by-sap/enhancing-costs-usage-and-contract-transparency/bc-p/13639445/emcs_t/S2h8ZW1haWx8dG9waWNfc3Vic2NyaXB0aW9ufExUU0c3OFkwVVg5RzlafDEzNjM5NDQ1fFNVQlNDUklQVElPTlN8aEs?sap-outbound-id=402BB1573F64026AA1A4BCDF66AC71FF3A580CBA" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/186674">@keren_rotenberg</a>&nbsp;to get more information on the new usage analytics and entitlements pages.</LI><LI>Customer have already been waiting for it in the area of Identity and Access Management and in Q1 it got released: The Custom Certificate Authority support for SAP Secure Login Service on AWS. Integration of own Public Key Infrastructure (PKI) by connecting to a cloud-based private Custom Certificate Authority hosted on AWS to the SAP Secure Login Service is now possible.&nbsp;<SPAN>After successful authentication of the end user, your private CA issues an X.509 certificate. And the SAP Secure Login Service then returns this X.509 certificate to the Secure Login Client on the end user desktop. Read more in the <A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-secure-login-service-for-sap-gui-now-supports-custom-certificate/ba-p/13666599" target="_self">blog post</A> of&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/5013">@Martina_K</a>.&nbsp;</SPAN></LI><LI><SPAN>Last but not least: Enabling the configuration and security analysis (CSA) functionality of SAP Cloud Application Lifecycle Management for operations to collect a comprehensive set of technical configuration data from Identity Authentication has been relased in Q1. It&nbsp;</SPAN>reduces manual administration efforts for user management and identity provider settings and increase transparency for Identity Authentication security configuration in a central landscape management tool. <A href="https://support.sap.com/en/alm/sap-cloud-alm/operations/expert-portal/configuration-security-analysis/csa-content.html" target="_self" rel="noopener noreferrer">Read more.</A>&nbsp;</LI></UL><H3 id="toc-hId--57443881">&nbsp;</H3><H3 id="toc-hId--253957386"><EM><STRONG>SAP BTP Innovation Highlights - outlook:</STRONG></EM></H3><P><SPAN>&nbsp;</SPAN>Please find here my personal innovation highlights outlook coming up:<SPAN><BR /></SPAN></P><UL><LI>Application Development and Automation:<SPAN>&nbsp;</SPAN><A href="https://roadmaps.sap.com/board?PRODUCT=67837800100800007077&amp;PRODUCT=73554900100800003081&amp;PRODUCT=73554900100800003832&amp;PRODUCT=73554900100800004334&amp;PRODUCT=73555000100800002781&amp;range=CURRENT-LAST#;INNO=139B28CB2E8C1EDEABE88AC09E53A39A" target="_self" rel="noreferrer noopener">Generating a business service of ABAP RESTful application programming model</A></LI><LI>Application Development and Automation: <A href="https://roadmaps.sap.com/board?PRODUCT=67837800100800007077&amp;PRODUCT=73554900100800003081&amp;PRODUCT=73554900100800003832&amp;PRODUCT=73554900100800004334&amp;PRODUCT=73555000100800002781&amp;range=CURRENT-LAST#;INNO=3F83C264AF571EDE85B57541EEC34FB4" target="_self" rel="noopener noreferrer">Enhanced integration of HTML5 application from other SAP BTP subaccounts</A></LI><LI>Integration:<SPAN>&nbsp;</SPAN><A href="https://roadmaps.sap.com/board?PRODUCT=000D3A47875C1EDB98A8A910864AC24B&amp;q=release&amp;range=CURRENT-LAST#;INNO=7FECA36531611EEEA0BFA24CC4692E99" target="_self" rel="noreferrer noopener">Release of pending adapters for use in Edge Integration Cell</A></LI><LI>Integration:<SPAN>&nbsp;</SPAN><A href="https://roadmaps.sap.com/board?PRODUCT=000D3A47875C1EDB98A8A910864AC24B&amp;range=CURRENT-LAST#Q2%202024;INNO=C1FBB5A935A51EDDA5E7942074F76CBC" target="_self" rel="noreferrer noopener">Event Mesh as new capability for SAP Integration Suite</A></LI><LI>Data and Analytics:&nbsp;<A href="https://roadmaps.sap.com/board?PRODUCT=67838200100800006884&amp;range=CURRENT-LAST#;INNO=57EA73B3B1E91EEE8E8BB2F9E519B05B" target="_blank" rel="noopener noreferrer">Repointing a model in a story for SAP Analytics Cloud</A></LI><LI>Data and Analytics: <A href="https://roadmaps.sap.com/board?PRODUCT=73554900100800002881&amp;range=CURRENT-LAST#Q2%202024;INNO=8B240203E7BF1EEE9CB9062F28FB9CF2" target="_self" rel="noopener noreferrer">Support for large instances of SAP HANA Cloud, SAP HANA database</A></LI><LI>Artificial Intelligence: <A href="https://roadmaps.sap.com/board?q=generative&amp;range=2023Q4-2025Q4#;INNO=BBC1CE8DBE581EEE97DC82D42D1D1A20" target="_self" rel="noopener noreferrer">Generative AI command generation</A></LI><LI>Artificial Intelligence: <A href="https://roadmaps.sap.com/board?FT=GEN_AI&amp;PRODUCT=42F2E964FAAF1EDA9FF753E17F3000E5&amp;range=2024Q2-2024Q2#;INNO=BB157EE7EE621EEE9CCFA069CB405445" target="_self" rel="noopener noreferrer">Automatic refinement of prompts using generative AI</A></LI><LI>Cross SAP BTP: <A href="https://roadmaps.sap.com/board?PRODUCT=73554900100800001901&amp;range=CURRENT-LAST#Q2%202024;INNO=DB6161B0D4561EEE91E66EE49BFBD805" target="_self" rel="noopener noreferrer">SAP Cloud Transport Management service: transport of changes from SAP Build Apps</A></LI><LI>Cross SAP BTP: <A href="https://roadmaps.sap.com/board?BA=42F2E964FAAF1EDB80C512AD4FEB20ED&amp;range=CURRENT-LAST#;INNO=03013803B70B1EEE9B810FBE72C718A4" target="_self" rel="noopener noreferrer">Identity and Access Management: Support for application specific groups in Identity Directory and Identity Provisioning</A></LI></UL><P>Check out all&nbsp;<SPAN>upcoming innovations in our&nbsp;</SPAN><A href="https://roadmaps.sap.com/" target="_blank" rel="noopener noreferrer">SAP Road Map Explorer</A><SPAN>&nbsp;to learn more.</SPAN></P><H3 id="toc-hId--450470891">Check out more on innovation highlights:</H3><UL><LI>Follow the&nbsp;<A href="https://roadmaps.sap.com/board?range=FIRST-LAST&amp;sap-outbound-id=F84338300454061B469DD99EFA855784D1EE0293&amp;PRODUCT=42F2E964FAAF1EDA9FF753E17F3000E5#Q1%202022" target="_blank" rel="noopener noreferrer">Roadmap Explorer</A>, which is updated on a regular basis to always stay on top of the latest innovations&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_0-1713354062654.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97588i07BDCE74017566DA/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="Stephanie_Stang_0-1713354062654.png" alt="Stephanie_Stang_0-1713354062654.png" /></span></LI><LI>Subscribe to our monthly&nbsp;<A href="https://www.sap.com/cmp/nl/sap-cp-newsletter/" target="_blank" rel="noopener noreferrer">newsletter</A>&nbsp;to get all SAP BTP product news&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_1-1713354062672.png" style="width: 19px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97587i7334F3AF78F99B3F/image-dimensions/19x19?v=v2" width="19" height="19" role="button" title="Stephanie_Stang_1-1713354062672.png" alt="Stephanie_Stang_1-1713354062672.png" /></span></LI><LI>Check out the next blog post beginning of Q3/2024 summarizing the highlights of the previous quarter&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_2-1713354062676.png" style="width: 22px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97589iE29D4D0B2CE0DE58/image-dimensions/22x22?v=v2" width="22" height="22" role="button" title="Stephanie_Stang_2-1713354062676.png" alt="Stephanie_Stang_2-1713354062676.png" /></span></LI><LI>If you want to be up to date on the latest SAP BTP news and innovations check out the new monthly&nbsp;<A href="https://www.youtube.com/playlist?list=PLWV533hWWvDkLRKiY-2aVnlXu5CpERDf9" target="_blank" rel="noopener nofollow noreferrer">SAP Innobytes video series.&nbsp;</A>Also want to get a recap on what´s new in SAP BTP then check out the What´s New in SAP BTP quarterly series&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_3-1713354062669.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97591iD344E509D866CB55/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="Stephanie_Stang_3-1713354062669.png" alt="Stephanie_Stang_3-1713354062669.png" /></span></LI><LI>Mark your calendar for the latest&nbsp;<A href="https://www.sap.com/about/events.html" target="_blank" rel="noopener noreferrer">SAP events</A>&nbsp;coming up&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_4-1713354062679.png" style="width: 14px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97592i2818A7D0E1DE692C/image-dimensions/14x14?v=v2" width="14" height="14" role="button" title="Stephanie_Stang_4-1713354062679.png" alt="Stephanie_Stang_4-1713354062679.png" /></span></LI></UL><P><STRONG>&nbsp;</STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Stephanie_Stang_5-1713354062675.png" style="width: 16px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97590i4E4C116A8175FF08/image-dimensions/16x16?v=v2" width="16" height="16" role="button" title="Stephanie_Stang_5-1713354062675.png" alt="Stephanie_Stang_5-1713354062675.png" /></span>&nbsp;<SPAN>Read other&nbsp;</SPAN><A href="https://blogs.sap.com/tags/8077228b-f0b1-4176-ad1b-61a78d61a847/" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform blog posts</A><SPAN>&nbsp;and check the&nbsp;</SPAN><A href="https://community.sap.com/topics/business-technology-platform" target="_blank">SAP Business Technology Platform Topic Page&nbsp;</A><SPAN>where you can also ask questions. Feel free to follow my profile&nbsp;</SPAN><SPAN class="">stephanie.stang</SPAN><SPAN>&nbsp;to not miss my next personal view of innovation highlights for SAP BTP for Q2 2024.</SPAN></P> 2024-04-17T20:29:36.355000+02:00 https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/new-machine-learning-features-in-sap-hana-cloud-2024-q1/ba-p/13668386 New Machine Learning features in SAP HANA Cloud 2024 Q1 2024-04-18T08:14:50.590000+02:00 ChristophMorgen https://community.sap.com/t5/user/viewprofilepage/user-id/14106 <P>With the 2024 Q1 database release, several new features have been released the SAP HANA Cloud Predictive Analysis Library (PAL), an enhancement summary is available in the What’s new document for <SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Predictive%20Analysis%20Library&amp;Valid_as_Of=2024-03-01%3A2024-03-31&amp;locale=en-US" target="_blank" rel="noopener noreferrer">SAP HANA Cloud database 2024.02 (QRC 1/2024)</A>.</SPAN></P><P>The feature highlights for the current release are described in more detail below</P><H2 id="toc-hId-991779963"><STRONG><FONT size="4">Classification and Regression enhancements</FONT></STRONG></H2><P><SPAN>Unified Regression along with Unified Classification and Time Series now supports <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/permutation-importance-permutation-importance-regression" target="_blank" rel="noopener noreferrer"><STRONG>permu</STRONG></A><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/permutation-importance-permutation-importance-regression" target="_blank" rel="noopener noreferrer"><STRONG>tation feature importance</STRONG></A>, a new and trending method in global explain-ability to evaluate the contribution of individual features to the overall predictive power of a model. This is achieved by measuring the decrease of a model’s performance when a feature‘s values are being shuffled around. A detailed explanation and examples are also given in this blog <A href="https://community.sap.com/t5/technology-blogs-by-sap/global-explanation-capabilities-in-sap-hana-machine-learning/ba-p/13620594" target="_blank">Global Explanation Capabilities in SAP HANA Machine Learning</A>.</SPAN></P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%"><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="ChristophMorgen_0-1712926457926.png" style="width: 323px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95625i9B4C3A48DA5FDA69/image-dimensions/323x195?v=v2" width="323" height="195" role="button" title="ChristophMorgen_0-1712926457926.png" alt="ChristophMorgen_0-1712926457926.png" /></span></TD><TD width="50%"><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="ChristophMorgen_1-1712926457929.png" style="width: 397px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95624i5D7D158D9113A570/image-dimensions/397x194?v=v2" width="397" height="194" role="button" title="ChristophMorgen_1-1712926457929.png" alt="ChristophMorgen_1-1712926457929.png" /></span></TD></TR></TBODY></TABLE><P style=" text-align: center; "><FONT size="3">Classic feature importance vs permutation feature importance reports (see blog for details)</FONT></P><P><SPAN>The <STRONG>Hybrid Gradient Boosting Tree</STRONG> (<A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/hybrid-gradient-boosting-tree-hybrid-gradient-boosting-tree-ca5106c" target="_blank" rel="noopener noreferrer">HGBT</A>) now supports &nbsp;F1-scores, recall and precision as cross validation metric for improved, more targeted classification models. Furthermore, weight scaling of target values in classification is now supported to address imbalanced classes or weight scale target values in relation for example to different costs associated to the different class values.<BR />A new and trending regression model objective function “reweighted square” has been introduced, aiding to achieve more robust and regularized regression models.<BR />For improved early stopping during model optimization, the validation metric for early stopping can now be explicitly set.</SPAN></P><P><SPAN>The recently introduced <STRONG>multi-layer perceptron </STRONG><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/mlp-recommender" target="_blank" rel="noopener noreferrer"><STRONG>MLP recommender</STRONG></A> function, now supports multiclass classification and regression recommender scenarios. This allows to reformulate the recommendation task as a classification or regression problem. The implementation employs a dual-stream framework where two sets of features representing &nbsp;for example user – and items features, respectively, are fed into a feature selection module. The outputs are streamed into MLP-neural networks and combined in a bilinear aggregation layer. This new and trending neural network framework can handle large-scale data volumes in recommendation scenarios very effectively.</SPAN></P><P><SPAN>The <STRONG>K-Nearest Neighbor (KNN)</STRONG> classification and regression functions has been enhanced with a new <STRONG>similarity search</STRONG> method, in addition to brute force and KD-tree searching a <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/knn-knn-f2440c6" target="_blank" rel="noopener noreferrer"><STRONG>matrix enabled search</STRONG></A>-method has been introduced, allowing for much faster similarity search results especially with high-dimensional numeric feature data. </SPAN></P><H2 id="toc-hId-795266458"><STRONG><FONT size="4">Auto-ML and ML pipeline function improvements </FONT></STRONG></H2><P><SPAN>The Auto-ML functions for the Predictive Analysis Library (PAL) have been enhanced with</SPAN></P><UL><LI><SPAN>a new option to trigger deeper <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/optimization-optimization?locale=en-US" target="_blank" rel="noopener noreferrer">finetuning of the best pipeline</A> found</SPAN></LI><LI><SPAN>the genetic algorithm-based Auto-ML optimization has been enriched with a <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/optimization-optimization?locale=en-US" target="_blank" rel="noopener noreferrer">RANDOM SEARCH-based optimization</A>, suited especially for smaller configurations (e.g. simple time series) and yielding with faster results </SPAN></LI><LI><SPAN>new method to clear and initialize the Auto-ML log </SPAN></LI><LI><SPAN>Auto-ML and pipeline model explain-ability enhancement with a <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/pipeline-pipeline-de96493?q=rocv&amp;locale=en-US" target="_blank" rel="noopener noreferrer">SHAP Global surrogate </A>light-weight model for faster global explanation model calculation and faster local prediction interpretability results</SPAN></LI></UL><H2 id="toc-hId-598752953"><STRONG><FONT size="4">Text Processing</FONT></STRONG></H2><UL><LI><SPAN>The <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/text-mining-text-mining-96687ab" target="_blank" rel="noopener noreferrer">Text Mining</A> related document and term analysis function do now support massive parallel invocation, allowing for multiple input text to be analyzed in parallel.<BR /></SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_2-1712926848134.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95628iEAA3D29DC686BE11/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_2-1712926848134.png" alt="ChristophMorgen_2-1712926848134.png" /></span><BR /><P><FONT size="2">Multiple documents (here IDs 0 and 5) are searched in parallel for related documents</FONT></P></LI></UL><H2 id="toc-hId-402239448"><STRONG><FONT size="4">New financial data analysis functions </FONT></STRONG></H2><P>The newly implemented single-factor <SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/hull-white" target="_blank" rel="noopener noreferrer">Hull-White</A></SPAN> procedure , can be used to model the time evolution of interest rates, which are required for price estimation of financial instruments based on interest rate derivatives.</P><P>To apply the Hull-White model it first needs to be adopted to match existing market conditions (interest rates). This is achieved &nbsp;by providing the values of the drift term of the Hull-White model as a time series as &nbsp;input table. The simulation will then provide the mean value for a given number of simulation paths (also specified as an input parameter), their variance, as well as the upper and lower bounds.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_3-1712926961869.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95629i117D1BBD66D975C5/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_3-1712926961869.png" alt="ChristophMorgen_3-1712926961869.png" /></span></P><P>&nbsp;</P><P>The chart above depicts the initial dataset used to calibrate the mode, mean and confidence interval of the Hull-White simulation.</P><P><SPAN>New <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/benford-analysis" target="_blank" rel="noopener noreferrer">Benford’s </A><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/benford-analysis" target="_blank" rel="noopener noreferrer">Law&nbsp;</A>function in PAL, a trending algorithm used to detect anomalies in numerical datasets like e.g. financial transactions.</SPAN></P><P><SPAN>One of the (not so) well-known statistical observations is the fact that in many datasets the leading significant digits are not equally distributed. If all digits were represented equally, then they would appear 11.1 percent (1/9TH) of the time. However, when analyzing real-world datasets, e.g. the population totals of the <A href="https://www.census.gov/data/tables/time-series/demo/popest/2020s-counties-total.html" target="_self" rel="nofollow noopener noreferrer">US census data</A>, it is revealed that the distribution of the leading digits follows the Bedford’s law, also known as the first-digit law.</SPAN></P><UL><LI>P(d) = log10 (1+ 1/d), where P(d) is the probability of the leading digit {1,2,....9} to occur.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_4-1712926961871.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95630i9E38144233BF8A78/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_4-1712926961871.png" alt="ChristophMorgen_4-1712926961871.png" /></span></P><P><SPAN>With the help of PAL’s new BENFORD analysis function it is now very easy to validate if a dataset obeys Bedford’s law or not. A first step means very commonly used in financial applications to detect unexpected value distribution and e.g. potential fraudulent transaction data.</SPAN></P><H2 id="toc-hId-205725943"><FONT size="4"><STRONG>Python ML client (Hana-ML) enhancements</STRONG></FONT></H2><P>The full list of new methods and enhancements with Hana-ML 2.20 is summarized in the <SPAN><A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2024_1_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">changelog for Hana-ml 2.20.240319</A> </SPAN>as part of the documentation. The key enhancements in this release include</P><P><STRONG><SPAN>Time series analysis and forecasting methods</SPAN></STRONG></P><UL><LI>Time series permutation feature importance analysis</LI><LI>Time series outlier detection with voting</LI><LI>Segmented (massive) online Bayesian Change Point Detection</LI></UL><P><STRONG><SPAN>Auto-ML configuration and methods enhancements</SPAN></STRONG></P><UL><LI>Updated Auto-ML configuration dictionary-templates with new operators and random search optimization support for e.g. small time series configurations</LI><LI>Enhanced Auto-ML configuration option for setting connection constraints during optimization of multi-operator pipelines and visualization of pipeline connection scores between operators<BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_0-1712931648498.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95707iC8239A600237D73E/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_0-1712931648498.png" alt="ChristophMorgen_0-1712931648498.png" /></span></LI><LI>Support algorithm-specific parameters with Auto-ML predict-calls, relevant for both pipeline predict and Auto-ML methods.</LI><LI>Enhanced progress monitor for Auto-ML to display at anytime and log management methods, allowing to set log levels, persist progress logs clean up logs and more.</LI></UL><P><SPAN>Exploratory data analysis and visualization enhancements</SPAN></P><UL><LI>New Bubble Plot and Parallel Co-ordinate Plot<BR /><TABLE border="1" width="100%"><TBODY><TR><TD width="50%"><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_6-1712927665343.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95639i2F182370C8181F73/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_6-1712927665343.png" alt="ChristophMorgen_6-1712927665343.png" /></span></P></TD><TD width="50%"><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristophMorgen_7-1712927665362.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95640iB263F0BEB877EF5F/image-size/medium?v=v2&amp;px=400" role="button" title="ChristophMorgen_7-1712927665362.png" alt="ChristophMorgen_7-1712927665362.png" /></span></P></TD></TR></TBODY></TABLE>&nbsp;</LI></UL><P>You can find an examples notebook illustrating the highlighted feature enhancements <A href="https://github.com/SAP-samples/hana-ml-samples/blob/main/Python-API/pal/notebooks/24QRC01_2.20.ipynb" target="_blank" rel="noopener nofollow noreferrer">here 24QRC01_2.20.ipynb</A>.</P><P><a href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud%25252C+SAP+HANA+database/pd-p/ada66f4e-5d7f-4e6d-a599-6b9a78023d84" class="lia-product-mention" data-product="40-1">SAP HANA Cloud, SAP HANA database</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/Python/pd-p/f220d74d-56e2-487e-8e6c-a8cb3def2378" class="lia-product-mention" data-product="126-1">Python</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/Machine+Learning/pd-p/240174591523510321507492941674121" class="lia-product-mention" data-product="2-1">Machine Learning</a>&nbsp;</P> 2024-04-18T08:14:50.590000+02:00 https://community.sap.com/t5/sap-maxattention-blog-posts/sap-offers-maximum-attention-for-customers-high-standards/ba-p/13662269 SAP Offers Maximum Attention for Customers’ High Standards 2024-04-18T09:14:46.671000+02:00 karolin https://community.sap.com/t5/user/viewprofilepage/user-id/1395662 <P style=" text-align : left; ">In today's rapidly evolving digital landscape it is large enterprises and corporations with complex IT landscapes, that find themselves particularly reliant on robust support systems.</P><P style=" text-align : left; ">In order to ensure maximum success, <STRONG>SAP MaxAttention</STRONG> service engineers&nbsp;work closely with their customers to identify their specific needs and goals. By leveraging the expertise and proven methodologies of the <STRONG>SAP MaxAttention</STRONG> program, customers can confidently navigate their cloud journey with world-class guidance and support.</P><P style=" text-align : left; ">To learn more about how SAP provides maximum attention to meet customers' high standards, check out this blog post:&nbsp;<A href="https://news.sap.com/2023/02/sap-offers-maximum-attention-for-customers-high-standards/?source=social-Global-ADVOCACY-AudienceEngagement-DBS-Services-SAPServices-spr-9035993168-account_name&amp;campaigncode=CRM-YF23-CSM-1938248&amp;sprinklrid=9035993168" target="_blank" rel="noopener noreferrer">SAP MaxAttention for Customers’ Standards | SAP News Center</A></P> 2024-04-18T09:14:46.671000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/new-machine-learning-features-in-sap-hana-cloud/ba-p/13671778 New Machine Learning features in SAP HANA Cloud 2024-04-19T14:39:25.280000+02:00 ChristophMorgen https://community.sap.com/t5/user/viewprofilepage/user-id/14106 <P>SAP HANA Cloud provides out of the box a rich set of embedded AI functions enabling SAP customers and partners to build Intelligent Data Applications, applications embedding AI scenarios like time series forecasting, classification, or regression and more, with applying the AI functions in the database directly on the application data.</P><P><STRONG>Each new release of SAP HANA Cloud includes a lot of exciting new embedded AI features</STRONG>, hence see the list of links below to get an overview about the continuous improvements in the <SPAN><A href="https://help.sap.com/viewer/319d36de4fd64ac3afbf91b1fb3ce8de/latest/en-US/c9eeed704f3f4ec39441434db8a874ad.html" target="_blank" rel="noopener noreferrer">Predictive Analysis Library (PAL)</A>, <A href="https://help.sap.com/viewer/product/apl/latest/en-US" target="_blank" rel="noopener noreferrer">Automated Predictive Library (APL)</A> and the <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/latest/en-US/hana_ml.html" target="_blank" rel="noopener noreferrer">Python Machine Learning client (hana-ml)</A> across the past release versions: </SPAN></P><UL><LI><SPAN>Review all 81 newly released Machine Learning enhancements since the 2022 Q1-release on the <A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?locale=en-US&amp;Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library" target="_blank" rel="noopener noreferrer">What’s New feature page</A> for SAP HANA Cloud</SPAN></LI><LI><SPAN>Review planned feature on the SAP HANA Cloud <A href="https://roadmaps.sap.com/board?PRODUCT=73554900100800002881&amp;range=CURRENT-LAST" target="_blank" rel="noopener noreferrer">roadmap page</A></SPAN></LI><LI><SPAN>Review the Machine Learning enhancement details in SAP HANA Cloud releases</SPAN><UL class="lia-list-style-type-circle"><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2024-03-01%3A2024-04-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2024_QRC1 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2024_1_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.20 (hana-ml)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/new-machine-learning-features-in-sap-hana-cloud-2024-q1/ba-p/13668386" target="_blank">blog</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2023-12-01%3A2024-01-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2023_QRC4 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2023_4_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.19 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2023-09-01%3A2023-10-17&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2023_QRC3 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2023_3_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.18 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2023-06-01%3A2023-07-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2023_QRC2 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2023_2_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.17 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2023-03-01%3A2023-04-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2023_QRC1 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2023_1_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.16 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2022-12-01%3A2023-01-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2022_QRC4 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2022_4_QRC/en-US/change_log.html#changelog" target="_blank" rel="noopener noreferrer">2.15 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2022-09-01%3A2022-10-17&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2022_QRC3 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2022_3_QRC/en-US/change_log.html#changelog" target="_blank" rel="noopener noreferrer">2.14 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2022-06-01%3A2022-07-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2022_QRC2 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2022_2_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.13 (hana-ml)</A></SPAN></LI><LI><SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&amp;Valid_as_Of=2022-03-01%3A2022-04-07&amp;locale=en-US" target="_blank" rel="noopener noreferrer">2022_QRC1 (PAL, APL)</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2022_1_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer">2.12 (hana-ml)</A></SPAN></LI></UL></LI></UL><P><SPAN>Here are some additional links to reference information introducing to and tutoring about <STRONG>how to get started using SAP HANA Cloud’s Machine Learning capabilities</STRONG></SPAN></P><UL><LI><SPAN>SAP Community Call:&nbsp;<A href="https://www.youtube.com/watch?v=bFv4n3smzQw" target="_blank" rel="noopener nofollow noreferrer">Intelligence out of the Box - Native Machine Learning in SAP HANA Cloud</A></SPAN></LI><LI><SPAN>Getting started blog posts </SPAN><UL class="lia-list-style-type-circle"><LI><SPAN><A href="https://blogs.sap.com/2021/02/25/hands-on-tutorial-leverage-sap-hana-machine-learning-in-the-cloud-through-the-predictive-analysis-library/" target="_blank" rel="noopener noreferrer">Hands-On Tutorial: Leverage SAP HANA Machine Learning in the Cloud through the Predictive Analysis Library (PAL)</A>, </SPAN></LI><LI><SPAN><A href="https://blogs.sap.com/2020/07/27/hands-on-tutorial-automated-predictive-apl-in-sap-hana-cloud/" target="_blank" rel="noopener noreferrer">Hands-On Tutorial: Automated Predictive (APL) in SAP HANA Cloud</A> and</SPAN></LI><LI><SPAN><A href="https://blogs.sap.com/2020/08/03/getting-started-with-sap-hana-cloud-vi-machine-learning/" target="_blank" rel="noopener noreferrer">Getting Started with SAP HANA Cloud | PAL and APL</A></SPAN></LI><LI><SPAN><A href="https://github.com/SAP-samples/hana-ml-py-codejam?tab=readme-ov-file" target="_blank" rel="noopener nofollow noreferrer">GitHub - SAP-samples/Getting started with Machine Learning using SAP HANA Cloud and Python</A></SPAN></LI></UL></LI></UL><P><SPAN><STRONG>Featured SAP HANA AI/ML capabilities</STRONG> are highlighted in the following resources:</SPAN></P><UL><LI><SPAN>Leverage data-parallel ML/AI, segmented forecasting from within SAP HANA Cloud utilizing </SPAN><UL class="lia-list-style-type-circle"><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/apl-time-series-forecast-using-a-segmented-measure/ba-p/13523243" target="_blank">APL Time Series Forecast using a Segmented Measure</A></LI><LI><SPAN>Segmented (massive) Forecasting applying PAL Additive Model Analysis (aka prophet) hands-on example here <A href="https://github.com/SAP-samples/teched2022-DA180/tree/main/exercises/ex5" target="_blank" rel="noopener nofollow noreferrer">SAP-samples/teched2022/Getting Started with Multi-Model Capabilities in SAP HANA Cloud/Forecasting</A><STRONG><BR /><BR /></STRONG></SPAN></LI></UL></LI><LI><SPAN>Leverage AutoML from the Predictive Analysis Library (PAL)</SPAN><UL class="lia-list-style-type-circle"><LI><SPAN><A href="https://blogs.sap.com/2022/11/23/hands-on-tutorial-leverage-automl-in-sap-hana-cloud-with-the-predictive-analysis-library/" target="_blank" rel="noopener noreferrer">Hands-On Tutorial: Leverage </A><A href="https://blogs.sap.com/2022/11/23/hands-on-tutorial-leverage-automl-in-sap-hana-cloud-with-the-predictive-analysis-library/" target="_blank" rel="noopener noreferrer">AutoML</A><A href="https://blogs.sap.com/2022/11/23/hands-on-tutorial-leverage-automl-in-sap-hana-cloud-with-the-predictive-analysis-library/" target="_blank" rel="noopener noreferrer"> in SAP HANA Cloud with the Predictive Analysis Library</A></SPAN></LI><LI><SPAN>SAP Community call | <A href="https://www.youtube.com/watch?v=mT5f6SPVpnk" target="_blank" rel="noopener nofollow noreferrer">Accelerate your Machine Learning efforts - benefit from SAP HANA Cloud </A><A href="https://www.youtube.com/watch?v=mT5f6SPVpnk" target="_blank" rel="noopener nofollow noreferrer">AutoML</A></SPAN></LI></UL></LI><LI>Integrating SAP HANA ML into your Application Code&nbsp;<UL class="lia-list-style-type-circle"><LI>re&gt;≡CAP 2023 conference presentation:<SPAN> "<U>Data Science handshake with CAP developer building an intelligent data app</U>“, <A href="https://www.js-soft.com/recordings-of-recap-2023/" target="_blank" rel="noopener nofollow noreferrer">Recordings of re&gt;≡CAP 2023 session</A></SPAN></LI><LI><SPAN><A href="https://blogs.sap.com/2023/06/22/auto-generating-hana-ml-cap-artifacts-from-python/" target="_blank" rel="noopener noreferrer">Auto-generating HANA ML CAP Artifacts from Python</A></SPAN></LI></UL></LI></UL><P><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Blog collections and sample repository</SPAN><UL class="lia-list-style-type-circle"><LI>Rich collection of references in this&nbsp;blogs post&nbsp;<SPAN><A href="https://blogs.sap.com/2021/05/27/sap-hana-machine-learning-resources/" target="_blank" rel="noopener noreferrer">SAP HANA Machine Learning Resources</A></SPAN></LI><LI><SPAN>SAP HANA ML sample repository&nbsp;<A href="https://github.com/SAP-samples/hana-ml-samples" target="_blank" rel="noopener nofollow noreferrer">https://github.com/SAP-samples/hana-ml-samples</A> see <A href="https://github.com/SAP-samples/hana-ml-samples/tree/main/Python-API" target="_blank" rel="noopener nofollow noreferrer">Python samples</A>.</SPAN></LI></UL></LI></UL><P><SPAN>&nbsp;</SPAN></P><P><SPAN><STRONG>Setting up your Python environment for SAP HANA ML</STRONG><BR /></SPAN></P><P><SPAN>There are certainly numerous flavors of how to setup a local Python environment for Data Scientists to work with respective Python packages, in this case leveraging hana-ml and hdbcli to work with SAP HANA. The use of <A href="https://docs.anaconda.com/free/miniconda/index.html" target="_blank" rel="noopener nofollow noreferrer">Miniconda</A> or <A href="https://docs.python.org/3/library/venv.html" target="_blank" rel="noopener nofollow noreferrer">venv</A> with Jupyter Notebooks is a common practice. Moreover the following instructions give guidance on how to enrich your SAP Development tools with a Python environment</SPAN></P><UL><LI><SPAN><A href="https://blogs.sap.com/2023/06/01/persisting-python-environment-when-using-jupyter-in-sap-business-application-studio/?source=email-global-notification-bp-new-in-tag-followed" target="_blank" rel="noopener noreferrer">Persisting Python environment when using </A><A href="https://blogs.sap.com/2023/06/01/persisting-python-environment-when-using-jupyter-in-sap-business-application-studio/?source=email-global-notification-bp-new-in-tag-followed" target="_blank" rel="noopener noreferrer">Jupyter</A><A href="https://blogs.sap.com/2023/06/01/persisting-python-environment-when-using-jupyter-in-sap-business-application-studio/?source=email-global-notification-bp-new-in-tag-followed" target="_blank" rel="noopener noreferrer"> in SAP Business Application Studio | SAP Blogs</A></SPAN></LI><LI><SPAN><A href="https://www.youtube.com/watch?v=UFvW8DKWPSs" target="_blank" rel="noopener nofollow noreferrer">Running a </A><A href="https://www.youtube.com/watch?v=UFvW8DKWPSs" target="_blank" rel="noopener nofollow noreferrer">Jupyter</A><A href="https://www.youtube.com/watch?v=UFvW8DKWPSs" target="_blank" rel="noopener nofollow noreferrer"> notebook in SAP Business Application Studio (youtube.com)</A></SPAN></LI></UL><P><SPAN>Moreover, the following blog posts give indications how to leverage SAP HANA Machine Learning and <A href="https://pypi.org/project/hana-ml/" target="_self" rel="nofollow noopener noreferrer">hana-ml</A> from within 3rd party Data Science, Python expert environments</SPAN></P><UL><LI><SPAN><A href="https://blogs.sap.com/2022/08/17/databricks-triggering-calculations-ml-in-sap-data-warehouse-cloud/" target="_blank" rel="noopener noreferrer">Triggering ML calculations in SAP HANA Cloud and SAP Datasphere from Databricks</A><U><BR /></U></SPAN></LI><LI><SPAN><A href="https://blogs.sap.com/2022/08/03/azure-machine-learning-triggering-calculations-ml-in-sap-data-warehouse-cloud/" target="_blank" rel="noopener noreferrer">Azure Machine Learning triggering ML calculations in SAP HANA Cloud and&nbsp; SAP Datasphere</A></SPAN></LI><LI><SPAN><A href="https://blogs.sap.com/2023/01/09/google-vertex-ai-triggering-calculations-ml-in-sap-data-warehouse-cloud/" target="_blank" rel="noopener noreferrer">Triggering ML calculations in SAP HANA Cloud and SAP Datasphere from Google Vertex AI</A></SPAN></LI></UL><P><SPAN>Finally, reference information about the Python native SAP HANA database client can be found in SAP Note <A href="https://launchpad.support.sap.com/" target="_blank" rel="noopener noreferrer">2939501</A> and the <A href="https://help.sap.com/viewer/product/SAP_HANA_CLIENT/latest" target="_blank" rel="noopener noreferrer">SAP HANA Client documentation</A>. The database client software is available from <A href="https://tools.hana.ondemand.com/" target="_blank" rel="noopener nofollow noreferrer">tools.hana.ondemand.com/#hanatools</A>, while the Python client is also available via the pypi repository at <A href="https://pypi.org/project/hdbcli/" target="_blank" rel="noopener nofollow noreferrer">https://pypi.org/project/hdbcli/</A>.&nbsp;</SPAN><SPAN>Further installation instructions are documented in the section Machine Learning APIs in <A href="https://help.sap.com/docs/SAP_HANA_CLIENT/f1b440ded6144a54ada97ff95dac7adf/fa67e965aaca43ecbbaa69bbe13adf12.html?locale=en-US" target="_blank" rel="noopener noreferrer">SAP HANA Client Interface Programming Reference</A>.</SPAN></P><P><SPAN>&nbsp;The following&nbsp;</SPAN><A href="https://me.sap.com/notes/3220622" target="_self" rel="noopener noreferrer">SAP Note 3220622&nbsp;</A><SPAN>indicates which SAP HANA Cloud release is available with SAP Datasphere.</SPAN></P> 2024-04-19T14:39:25.280000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-partners-unleash-business-ai-potential-at-global-hack2build/ba-p/13671501 SAP Partners unleash Business AI potential at global Hack2Build 2024-04-19T17:19:54.457000+02:00 Rudi_Held https://community.sap.com/t5/user/viewprofilepage/user-id/6024 <P>The competitiveness in the digital landscape makes the need for innovation and collaboration more critical than ever. In this context, the transformational impact of Generative AI (GenAI) almost inevitably comes onto the agenda of most business conversations these days. This was the motivation behind our recent global Hack2Build, aimed to recruit partners worldwide to explore and adopt the latest technologies and services SAP has to offer in the realm of Business AI. The objective was not just to create a platform for technological exploration, but to foster a global community of partners and innovators who create valuable solutions to customers leveraging Business AI.</P><P><SPAN><A href="https://events.sap.com/hack2build/en/home" target="_blank" rel="noopener noreferrer">Hack2Build</A></SPAN>&nbsp;is a rapid prototyping initiative for SAP partners to start their innovation journey with a tangible prototype,&nbsp;and then build a full-fledged business solution that creates business value&nbsp;for customers leveraging&nbsp;SAP Business Technology Platform (BTP). During a Hack2Build, partners validate their use cases with SAP experts, and get coaching and feedback from SAP during the build of the prototype on SAP BTP. After the hackathon, they continue developing their solutions and get them ready for go-to-market.</P><P>This edition of the Hack2Build was designed with a global outreach in mind, welcoming partners from all corners of the world. It saw a diverse pool of forward-thinking use cases, reflecting different market needs.</P><P>Our journey began with the Partner Innovation Day on January 23, dedicated to introducing our partners to the newest topics and technologies in SAP Business AI. The objective was to inspire them to develop their own use cases, harnessing the power of generative AI to enhance business outcomes.</P><P>The response was overwhelmingly positive. Numerous partners reached out, eager to submit their use cases and join the Hack2Build.</P><P>A team of experts from various fields then embarked on the challenging task of selecting the best use cases. After a rigorous analysis and evaluation process, 33 diverse partner use cases were selected.</P><P>&nbsp;</P><P><STRONG>The Hackathon Week</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Hack2build participant partners" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97267iBAAF7700C3A396E3/image-size/large?v=v2&amp;px=999" role="button" title="01 logos with banner.png" alt="Hack2build participant partners" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Hack2build participant partners</span></span></P><P>The event then moved on to the next phase and we were glad to welcome the participant partners: <A href="https://www.accenture.com/us-en" target="_blank" rel="noopener nofollow noreferrer">Accenture</A>, <A href="https://www.agcapps.com/" target="_blank" rel="noopener nofollow noreferrer">AG Consultancy</A>, <A href="https://www.avvale.com/" target="_blank" rel="noopener nofollow noreferrer">Avvale</A>, <A href="https://www.bosch-softwaretechnologies.com/en/" target="_blank" rel="noopener nofollow noreferrer">Bosch</A>, <A href="https://www.capgemini.com/" target="_blank" rel="noopener nofollow noreferrer">Capgemini</A>, <A href="https://celebaltech.com/" target="_blank" rel="noopener nofollow noreferrer">Celebal Technologies</A>, <A href="https://www.cognizant.com/us/en" target="_blank" rel="noopener nofollow noreferrer">Cognizant</A>, <A href="https://www.craveinfotech.com/" target="_blank" rel="noopener nofollow noreferrer">Crave Infotech</A>, <A href="https://www.deloitte.com/global/en.html?icid=site_selector_global" target="_blank" rel="noopener nofollow noreferrer">Deloitte</A>, <A href="https://www.ey.com/en_gl" target="_blank" rel="noopener nofollow noreferrer">EY</A>, <A href="https://www.ibsolution.com/en/" target="_blank" rel="noopener nofollow noreferrer">IBsolution</A>, <A href="https://www.ibm.com/us-en" target="_blank" rel="noopener nofollow noreferrer">IBM</A>, <A href="https://incture.com/" target="_blank" rel="noopener nofollow noreferrer">Incture</A>, <A href="https://www.inetum.com/en" target="_blank" rel="noopener nofollow noreferrer">Inetum</A>, <A href="https://inflexiontechfze.com/wp/" target="_blank" rel="noopener nofollow noreferrer">Inflexion</A>, <A href="https://www.infosys.com/" target="_blank" rel="noopener nofollow noreferrer">Infosys</A>, <A href="https://kinexon.com/" target="_blank" rel="noopener nofollow noreferrer">Kinexon</A>, <A href="https://www.ltimindtree.com/" target="_blank" rel="noopener nofollow noreferrer">LTIMindtree</A>, <A href="https://www.mindsetconsulting.com/" target="_blank" rel="noopener nofollow noreferrer">Mindset Consulting</A>, <A href="https://www.mouritech.com/" target="_blank" rel="noopener nofollow noreferrer">Mouritech</A>, <A href="https://www.msg-global.com/" target="_blank" rel="noopener nofollow noreferrer">msg global</A>, <A href="https://www.netizen.co.th/" target="_blank" rel="noopener nofollow noreferrer">Netizen</A>, <A href="https://nttdata-solutions.com/us/" target="_blank" rel="noopener nofollow noreferrer">NTT Data Business Solutions</A>, <A href="https://www.numenit.com/" target="_blank" rel="noopener nofollow noreferrer">Numen IT</A>, <A href="https://www.opentext.com/" target="_blank" rel="noopener nofollow noreferrer">OpenText</A>, <A href="https://www.pwc.com/gx/en.html" target="_blank" rel="noopener nofollow noreferrer">PwC</A>, <A href="https://www.reply.com/en" target="_blank" rel="noopener nofollow noreferrer">Reply</A>, <A href="https://scoutbee.com/" target="_blank" rel="noopener nofollow noreferrer">Scoutbee</A>, <A href="https://www.seidor.com/es-pe" target="_blank" rel="noopener nofollow noreferrer">Seidor</A>, <A href="https://www.stms.fr/" target="_blank" rel="noopener nofollow noreferrer">STMS</A>, <A href="https://www.tcs.com/" target="_blank" rel="noopener nofollow noreferrer">TCS</A>, <A href="https://www.techmahindra.com/en-in/" target="_blank" rel="noopener nofollow noreferrer">Tech Mahindra</A> and <A href="https://www.wipro.com/" target="_blank" rel="noopener nofollow noreferrer">Wipro</A>.</P><P>At the Kick-off on February 28, SAP provided all participants with valuable guidance on how to leverage Generative AI capabilities within the SAP Business Technology Platform. The participant teams utilized&nbsp;<SPAN><A href="https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/generative-ai-hub-in-sap-ai-core" target="_blank" rel="noopener noreferrer">SAP Generative AI Hub on SAP BTP</A></SPAN>, which gives instant access to a broad range of large language models (LLMs) from different providers, enabling seamless integration and usage of GenAI to enhance applications. Participants also gained early access to <SPAN><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-vector-engine-guide/sap-hana-cloud-sap-hana-database-vector-engine-guide" target="_blank" rel="noopener noreferrer">SAP HANA Cloud Vector Engine</A></SPAN>, which boosts GenAI scenarios with capabilities such as&nbsp;<SPAN>Retrieval Augmented Generation (RAG) to obtain better results from large language models</SPAN>.</P><P>Post kick-off, partners embarked on a week-long hackathon to develop their prototypes. They were supported in daily scrum sessions by SAP experts, ensuring continuous remote support throughout the week. There was little time to waste and much to prepare for the demo jam.</P><P>Here some impressions of the participants about their experience during the hackathon week:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="02 - world cloud - all.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97204iEE8466254CA54E9D/image-size/large?v=v2&amp;px=999" role="button" title="02 - world cloud - all.png" alt="02 - world cloud - all.png" /></span></P><P>&nbsp;</P><P><STRONG>Showtime: Demo Jam</STRONG></P><P>After a week of relentless effort and prototyping, the partners had the opportunity to present their use case and live demo at the demo jam! Three demo jams were organized worldwide across different time zones within two days, on March 06 and 07.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Virtual selfie with participants" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98913iC22CFB55F76B21E0/image-size/large?v=v2&amp;px=999" role="button" title="04 - virtual selfies all.jpg" alt="Virtual selfie with participants" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Virtual selfie with participants</span></span></P><P>&nbsp;</P><P>The demo jams were more than just a platform to present their work; they were a space for partners to interact, engage, and receive feedback with experts and leaders from SAP. Each participant had 10 minutes to present their use case and operational prototype. In this little time, the partners shone with business acumen, technical skills, and innovation power in front of the panel of judges, composed of senior SAP managers and experts.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Judges at the demo jam sessions" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97197i9E0ECD3BC5511E22/image-size/large?v=v2&amp;px=999" role="button" title="03 - Judges.png" alt="Judges at the demo jam sessions" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Judges at the demo jam sessions</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>Highlighted use cases</STRONG></P><P>After intense deliberation and discussion, the judges highlighted use cases for each demo jam.</P><P>In <A href="https://community.sap.com/t5/technology-blogs-by-sap/global-synergy-sap-partners-unleash-business-ai-potential-at-hack2build/ba-p/13672189" target="_blank">this blog</A> you can find further details on the highlighted use cases.</P><P>&nbsp;</P><P><STRONG>Beyond a Hackathon</STRONG></P><P>This global event was a testimonial to the power of collaboration and innovation. It showcased the immense potential that lies in the intersection of a cutting-edge technology like GenAI, diverse ideas, and global partnerships. As we look forward to upcoming Hack2Builds, we remain committed to support partners to drive successful outcome with their innovations.</P><P>&nbsp;</P><P><STRONG>Acknowledgment</STRONG></P><P>Congratulations and a big thanks to all participating teams for their passion and tireless commitment. the use cases they prototyped during this Hack2Build. All the participants have received digital badges by&nbsp;<SPAN><A href="https://www.credly.com/org/sap/badge/#gs_q=sap+hack2build" target="_blank" rel="noopener nofollow noreferrer">Credly.com from SAP</A></SPAN>, as an acknowledgement of the excellent use case prototypes&nbsp;presented.</P><P>We also would like to thank all the&nbsp;<STRONG>SAP teams and colleagues</STRONG>&nbsp;for the support they offered. Their dedication, leadership and domain expertise plays a crucial role in advancing the participants beyond the prototype phase. This underscores SAP’s commitment to our partner ecosystem.</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Hack2Build Team</SPAN></P> 2024-04-19T17:19:54.457000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/hack2build-on-business-ai-highlighted-use-cases/ba-p/13672189 Hack2Build on Business AI – Highlighted Use Cases 2024-04-19T17:26:32.837000+02:00 Rudi_Held https://community.sap.com/t5/user/viewprofilepage/user-id/6024 <P style=" text-align : left; ">At the <A href="https://community.sap.com/t5/technology-blogs-by-sap/global-synergy-sap-partners-unleash-business-ai-potential-at-hack2build/ba-p/13671501" target="_blank">global Hack2Builld on Business AI in Q1/2024</A>, teams from SAP partners dedicated themselves to developing prototypes for their use cases on SAP Business Technology Platform (BTP).&nbsp;</P><P style=" text-align : left; ">During the demo jam each team had 10 minutes to shine with their use case and operational prototype.<BR />And shine everyone did!<BR />No surprise that the juries -composed of senior SAP managers and experts- had a hard time picking the ones to highlight. Only after intense discussions and a holistic analysis of all presented use cases, the judges eventually reached a joint conclusion. Check out their stories below!</P><P style=" text-align : left; ">&nbsp;</P><P><SPAN><A href="https://www.deloitte.com/global/en.html?icid=site_selector_global" target="_blank" rel="noopener nofollow noreferrer"><STRONG>Deloitte</STRONG></A></SPAN></P><P><STRONG>Automated Accounting Advisor</STRONG></P><P>The 'Automated Accounting Advisor' solution utilizes company-specific accounting guidelines and the latest GenAI technology to provide fast and high-quality proposals for posting business transactions into the ERP system. This enables accounting departments and the CFO to deliver accurate financial statements faster and more efficiently, while also providing better decision support for FP&amp;A/Controlling departments based on higher quality accounting data. Solution is built on the SAP Business Technology Platform, using SAP's Generative AI Hub, SAP HANA Cloud Vector Engine and SAP Build Apps for the user interface. It’s integrated with SAP S/4HANA system, to perform the document posting.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Automated Accounting Advisor by Deloitte" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97272i4D3AFE3140E7420B/image-size/large?v=v2&amp;px=999" role="button" title="Deloitte - screenshot.png" alt="Automated Accounting Advisor by Deloitte" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Automated Accounting Advisor by Deloitte</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.ibsolution.com/en/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>IBsolution</STRONG></A></SPAN></P><P><STRONG>brAIn.decision_excellence</STRONG></P><P>IBsolutions brAIn.decision_excellence solution identifies deviations, creates action plans and shifts the tasks of a controller towards future-oriented analysis, especially in the current solution scope for P&amp;L analysis. Through the deep integration of GenAI into the application and extensive prompt engineering, the brAIn.decision_excellence takes into account contextual factors such as its role, task details, data of different granularities, ethical constraints and business strategies. This solution significantly reduces the time spent on repetitive controller analysis tasks and creates action plans that are tailored to your organization's unique profile and add significant business value.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="brAIn.decision_excellence by IBsolution" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97273iA17F57FB196285EE/image-size/large?v=v2&amp;px=999" role="button" title="IBsolution - screenshot.png" alt="brAIn.decision_excellence by IBsolution" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">brAIn.decision_excellence by IBsolution</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://incture.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>Incture</STRONG></A></SPAN></P><P><STRONG>Intelligent On-boarding Assistant</STRONG></P><P>An onboarding assistant, capable of automated processing of documents and conducting an in-depth analysis and assessment for required compliance areas as per checklist. It incorporates an intelligent content search mechanism using similarity search algorithms, to retrieve pertinent clauses from documents relevant to each assessment area. The solution generates a summary of responses for each assessment area/criteria and provides an evaluation rating powered by a GenAI engine. Additionally, a dashboard interface is provided to users, offering a consolidated compliance rating of the document(s), enabling swift actions such as approval or rejection based on the displayed information. The solution leverages SAP HANA Cloud Vector Engine for storing processed information from documents. SAP Business Technology Platform Generative AI Hub &amp; SAP AI Core and prompt engineering techniques (for LLMs used) for the assessment framework.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Intelligent On-boarding Assistant by Incture" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97275i4B7A8D7DA2B28116/image-size/large?v=v2&amp;px=999" role="button" title="Incture - screenshot.png" alt="Intelligent On-boarding Assistant by Incture" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Intelligent On-boarding Assistant by Incture</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.infosys.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>Infosys</STRONG></A></SPAN></P><P><STRONG>Voice enabled real-time safety observations reporting &amp; analysis powered by Generative AI &amp; Vector engine</STRONG></P><P>A real-time voice-enabled system for reporting and analyzing SAP EHSM safety incidents. Users can report incidents via voice input in their native language, receive immediate safety guidance, alert &amp; help SAP EHS incident managers in analyzing the root cause. The system considers local regulations, existing solutions, and weather conditions also in consideration.​</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Voice enabled real-time safety observations reporting &amp; analysis by Infosys" style="width: 940px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97276iDA0BF9713F13EAAE/image-size/large?v=v2&amp;px=999" role="button" title="Infosys - screenshot.png" alt="Voice enabled real-time safety observations reporting &amp; analysis by Infosys" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Voice enabled real-time safety observations reporting &amp; analysis by Infosys</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.ltimindtree.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>LTIMindtree</STRONG></A></SPAN></P><P><STRONG>Intelligent Master Data Curator</STRONG></P><P>LTIMindtree Intelligent Master Data Curator leverages SAP MDG and General AI capabilities to standardize global data, enforce governance policies, reduce manual efforts, and enhance data quality, achieving over 95% accuracy in master data and improving user productivity by 30%, thereby significantly reducing technical debt and turnaround time for master data requests.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Intelligent Master Data Curator by LTIMindtree" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97281i3518B499A51BC2B9/image-size/large?v=v2&amp;px=999" role="button" title="LTIMindtree - screenshot.png" alt="Intelligent Master Data Curator by LTIMindtree" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Intelligent Master Data Curator by LTIMindtree</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.numenit.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>Numen IT</STRONG></A></SPAN></P><P><STRONG>Intelligent Clipping</STRONG></P><P>Intelligent Clipping is a platform which helps companies to tackle Supply Chain Management increasing complexity: Diverse array of raw materials; Broad spectrum of suppliers; Regulatory changes; Unexpected events; Fluctuations in consumer trends. Utilizing Traditional and Generative AI to analyze and synthesize information from various curated sources, including both structured and unstructured data, with the objective of identifying potential risks affecting availability, costs, or ESG, aspects of materials that are critical to production processes.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Intelligent Clipping by Numen IT" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97283i70FE09E0D3AF5713/image-size/large?v=v2&amp;px=999" role="button" title="Numen - screenshot.png" alt="Intelligent Clipping by Numen IT" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Intelligent Clipping by Numen IT</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.opentext.com/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>OpenText</STRONG></A></SPAN></P><P><STRONG>BTP Tax Compliance Service</STRONG></P><P>Businesses face challenges in ensuring compliance with VAT regulations and corporate spending rules, especially concerning new product categories and suppliers. To address this, automated VAT calculations and real-time compliance monitoring offer a strategic opportunity. The solution involves implementing a Tax Compliance Service on SAP BTP, utilizing SAP BTP Generative AI Hub and SAP HANA Cloud Vector Engine. This enables tax rate determination of digitized line item information from SAP IM by OpenText. SAP Generative AI is used for generating accurate product description and similarity search then provides accurate VAT rates back to SAP IM by OpenText. The benefits include reduced invoice processing costs and increased automation levels, ensuring high levels of compliance with invoice posting standards. This integrated approach optimizes operational efficiency and aids businesses in navigating complex VAT regulations effectively.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BTP Tax Compliance Service by OpenText" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97284iB40A9341E6BCC513/image-size/large?v=v2&amp;px=999" role="button" title="OpenText - screenshot.png" alt="BTP Tax Compliance Service by OpenText" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">BTP Tax Compliance Service by OpenText</span></span></P><P>&nbsp;</P><P><SPAN><A href="https://www.stms.fr/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>STMS</STRONG></A></SPAN></P><P><STRONG>Smart Hazmat shipping - Hazardous Materials Compliance</STRONG></P><P>Regulated shipments face risks from complex and ever-changing regulations, leading to time-consuming operations. Our solution leverages Generative AI and Vector embeddings to streamline and accelerate these processes, reducing errors for supply management, which cuts costs, prevents late payments, and boosts customer satisfaction. For end-users in operations, it simplifies tasks and provides AI-driven support and suggestions, enhancing efficiency. Overall, our approach will increase productivity, safeguard the economic model, and improve working conditions. This innovation not only addresses current compliance challenges but also adapts to future regulatory changes, ensuring long-term resilience and efficiency for our clients.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Smart Hazmat shipping - Hazardous Materials Compliance by STMS" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97285iAA4EFC142DAF3186/image-size/large?v=v2&amp;px=999" role="button" title="STMS - screenshot.png" alt="Smart Hazmat shipping - Hazardous Materials Compliance by STMS" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Smart Hazmat shipping - Hazardous Materials Compliance by STMS</span></span></P><P>&nbsp;</P><P><STRONG>Way forward</STRONG></P><P>As the intent of Hack2Build event is to help our partners to build their solution, the move to the BUILD phase is critical for the partners to drive successful outcome with their innovations. Participant partners plan to continue with their development and bring their solutions to customers as soon as possible.<BR />Stay tuned for updates!</P><P><STRONG>Acknowledgment</STRONG></P><P>Congratulations and a big thanks to all participating teams for their passion and tireless commitment. the use cases they prototyped during this Hack2Build. All the participants have received digital badges by&nbsp;<SPAN><A href="https://www.credly.com/org/sap/badge/#gs_q=sap+hack2build" target="_blank" rel="noopener nofollow noreferrer">Credly.com from SAP</A></SPAN>, as an acknowledgement of the excellent use case prototypes presented.</P><P>We also would like to thank all the&nbsp;<STRONG>SAP teams and colleagues</STRONG>&nbsp;for the support they offered. Their dedication, leadership and domain expertise plays a crucial role in advancing the participants beyond the prototype phase. This underscores SAP’s commitment to our partner ecosystem.</P> 2024-04-19T17:26:32.837000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/improving-time-management-in-sap-s-4hana-cloud-a-genai-solution/ba-p/13673836 Improving Time Management in SAP S/4HANA Cloud: A GenAI Solution 2024-04-22T11:08:14.435000+02:00 rui_jin https://community.sap.com/t5/user/viewprofilepage/user-id/862773 <P><FONT size="4"><STRONG><SPAN>Preface/Introduction - Solving Timesheet Management Problem for Beyond Technologies and AlixPartners</SPAN></STRONG><SPAN>&nbsp;</SPAN></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="rui_jin_0-1713543728769.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98939iA97433B37F4D8639/image-size/large?v=v2&amp;px=999" role="button" title="rui_jin_0-1713543728769.png" alt="rui_jin_0-1713543728769.png" /></span></P><P><SPAN>Collaborating closely with two distinguished firms, Beyond Technologies and AlixPartners, to streamline their time management practices has presented a considerable endeavor. Both firms are recognized for their contribution to the services industry, wherein they are often required to engage with SAP S/4HANA Cloud for project time management. Despite the advanced features this system offers, they found themselves struggling with the management of their timesheet tasks.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>We developed a GenAI-powered SAP BTP application for real-time tracking of project tasks, seamlessly integrating with SAP S/4HANA Cloud, public edition, for automated timesheet entries and billing. This system allows users to immediately log tasks upon completion, which are then processed in natural language and drafted into their timesheet via SAP S/4HANA Cloud APIs and the GenAI Hub on SAP BTP. Our application operates independently alongside any SAP S/4HANA timesheet app, ensuring compatibility with custom apps as well as existing and future standard versions. Users can easily submit their time records for approval within their company's timesheet application.&nbsp;</SPAN></P><P>&nbsp;</P><P><FONT size="4"><STRONG><SPAN>Business Scenario/Challenge – Addressing Timesheet Record Management in SAP S/4HANA Cloud</SPAN></STRONG></FONT></P><P><SPAN>The critical problem both companies faced was associated with their timesheet record task in the SAP S/4HANA Cloud system. Delayed and after-the-fact time entries resulting from manual user operation led to inaccurate entries. It was time-consuming and negatively impacted work efficiency, delaying billing and payment processes as well. It was crucial to resolve this challenge as it directly linked with their business' operational efficiency, and therefore, profitability.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><FONT size="4"><STRONG><SPAN>Co-Innovation/Solution – Creating an GenAI powered application with SAP</SPAN></STRONG><SPAN>&nbsp;<STRONG>AI Core</STRONG></SPAN></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="TimeSheetArchitecture-4.drawio.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100720i981F0D85D8BA74AF/image-size/large?v=v2&amp;px=999" role="button" title="TimeSheetArchitecture-4.drawio.png" alt="TimeSheetArchitecture-4.drawio.png" /></span></P><P><SPAN>Generative AI significantly enables our solution by empowering users to log their project time effortlessly in their own words, without strict syntax. It intelligently interprets natural language inputs, crafting accurate payloads for S/4HANA system API calls. This flexibility ensures users can continue their varied task tracking practices across multiple languages, maintaining efficiency without the need for predefined structures. Generative AI thus enables an easy way to track consultant’s own time and adding it to the S/4HANA system already. It preserves the intuitiveness and accessibility of our task tracking, transforming user experience and data entry reliability.</SPAN></P><P><SPAN>Understanding the customers' need for efficient time management and with the power of Generative AI, we set out to create an application powered by the robust capabilities of SAP Cloud Application Programming Model (CAP) and SAP UI5. This application integrates seamlessly with the SAP Generative AI Hub in SAP AI Core via Destination Service and embeds with CAP LLM plugin(A free and open-source tool created by our team. Click on below drop-down for more information). Meanwhile all conversation data is managed by SAP HANA Cloud.</SPAN><SPAN>&nbsp;</SPAN></P><div class="lia-spoiler-container"><a class="lia-spoiler-link" href="#" rel="nofollow noopener noreferrer">Spoiler</a><noscript> (Highlight to read)</noscript><div class="lia-spoiler-border"><div class="lia-spoiler-content"><P><I>Introducing the CAP LLM Plugin:</I>&nbsp;</P><P><I><SPAN>An indispensable solution empowering developers with the essential tools to effortlessly craft robust AI-driven CAP applications. Seamlessly integrating the LLM capabilities of SAP Generative AI Hub with the vector engine and anonymization features of SAP HANA Cloud, this plugin revolutionizes the development journey.</SPAN></I><SPAN>&nbsp;</SPAN></P><P><EM>The CAP LLM Plugin is a powerful tool that empowers developers to craft customized Generative AI-based CAP applications seamlessly. It ensures that sensitive data remains confidential by utilizing SAP HANA Cloud Data Anonymization, thereby safeguarding privacy while leveraging the capabilities of LLM. With this plugin, developers can confidently create innovative applications without compromising data security or integrity.<BR /></EM><BR /><A href="https://github.com/SAP-samples/cap-llm-plugin-samples/blob/main/README.md" target="_blank" rel="noopener nofollow noreferrer"><I><SPAN>https://github.com/SAP-samples/cap-llm-plugin-samples/blob/main/README.md</SPAN></I></A><SPAN>&nbsp;</SPAN></P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/cap-llm-plugin-empowering-developers-for-rapid-gen-ai-cap-app-development/ba-p/13667606" target="_blank"><I><SPAN>https://community.sap.com/t5/technology-blogs-by-sap/cap-llm-plugin-empowering-developers-for-rapid-gen-ai-cap-app-development/ba-p/13667606</SPAN></I></A><SPAN>&nbsp;</SPAN></P></div><noscript><div class="lia-spoiler-noscript-container"><div class="lia-spoiler-noscript-content">Introducing the CAP LLM Plugin:&nbsp;An indispensable solution empowering developers with the essential tools to effortlessly craft robust AI-driven CAP applications. Seamlessly integrating the LLM capabilities of SAP Generative AI Hub with the vector engine and anonymization features of SAP HANA Cloud, this plugin revolutionizes the development journey.&nbsp;The CAP LLM Plugin is a powerful tool that empowers developers to craft customized Generative AI-based CAP applications seamlessly. It ensures that sensitive data remains confidential by utilizing SAP HANA Cloud Data Anonymization, thereby safeguarding privacy while leveraging the capabilities of LLM. With this plugin, developers can confidently create innovative applications without compromising data security or integrity.https://github.com/SAP-samples/cap-llm-plugin-samples/blob/main/README.md&nbsp;https://community.sap.com/t5/technology-blogs-by-sap/cap-llm-plugin-empowering-developers-for-rapid-gen-ai-cap-app-development/ba-p/13667606&nbsp;</div></div></noscript></div></div><P><SPAN>As soon as a user logs in, the application collects all the projects to which the user is staffed. Then the user can simply&nbsp;<SPAN class=""><SPAN class=""><SPAN class="">report his or her</SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">&nbsp;</SPAN></SPAN></SPAN><SPAN class=""><SPAN class="">time </SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">on those projects</SPAN></SPAN></SPAN>&nbsp;via natural language. The application will process&nbsp;<SPAN class=""><SPAN class=""><SPAN class="">the user’s </SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">input</SPAN></SPAN></SPAN>, returning a valid JSON payload. This payload is then used to post a time record in the SAP S/4HANA Cloud system effectively bypassing the manual input.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Main features of the application:</SPAN></P><UL><LI>Embedded analytics that display the completeness of the recorded hours for the day and week</LI><LI>User can view the history of time recording conversations, including their status. If any time recordings are incomplete, you can complete them in the chat or in the S/4HANA timesheet.</LI><LI>You will see a main window where you can provide all the necessary information for time-recording by typing or using natural language. The required information includes the project, the work package (in case of multiple assignments within one project), the date of service, and the hours worked.&nbsp;</LI></UL><P><SPAN>An example interaction between user and application.</SPAN><SPAN>&nbsp;</SPAN></P><OL><LI><SPAN>User clicks on the project name button for one of the projects the user is staffed on.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>User inputs their intention for booking time for the project with natural language.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Interact with application to ensure all necessary information is provided.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>The application creates the time record on SAP S/4HANA Cloud via API.</SPAN><SPAN>&nbsp;</SPAN></LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="rui_jin_3-1713384913056.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97811i16145A5C16D3CBBC/image-size/large?v=v2&amp;px=999" role="button" title="rui_jin_3-1713384913056.png" alt="rui_jin_3-1713384913056.png" /></span></P><P><FONT size="4"><STRONG><SPAN>Conclusion/Summary - Efficient Time Management Achieved Through Co-Innovation</SPAN></STRONG><SPAN>&nbsp;</SPAN></FONT></P><P><SPAN><SPAN class=""><SPAN class=""><SPAN class="">By</SPAN></SPAN></SPAN> <SPAN class=""><SPAN class=""><SPAN class="">creat</SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">ing</SPAN></SPAN></SPAN> <SPAN class=""><SPAN class=""><SPAN class="">a natural language </SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">interface </SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">application </SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">to </SPAN></SPAN></SPAN><SPAN class=""><SPAN class=""><SPAN class="">do</SPAN></SPAN></SPAN>&nbsp;time management in SAP S/4HANA Cloud system, we have enabled Beyond Technologies and AlixPartners to manage their timesheet tasks more efficiently. The application delivers accurate time records through a simplified and quick process, significantly reducing the time spent on manual data entry.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>I welcome more inquiries on this solution and the benefits it can bring to your business operations. Feel free to reach out to&nbsp;</SPAN><SPAN><A href="mailto:paa@SAP.com" target="_blank" rel="noopener nofollow noreferrer">paa@SAP.com</A><A href="mailto:paa@SAP.com" target="_blank" rel="noopener nofollow noreferrer">&nbsp;</A></SPAN><SPAN>for further information or&nbsp;any questions.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P> 2024-04-22T11:08:14.435000+02:00 https://community.sap.com/t5/technology-blogs-by-members/sap-datasphere-s-updated-pricing-amp-packaging-lower-costs-amp-more/ba-p/13682679 SAP Datasphere's updated Pricing & Packaging: Lower Costs & More Flexibility 2024-04-26T13:59:19.616000+02:00 hoerzenbergers https://community.sap.com/t5/user/viewprofilepage/user-id/796800 <P>The power of SAP Datasphere is growing every day. Bringing together data warehousing, data integration, data catalog, and semantic modeling it perfectly fits the definition of a modern business data fabric.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hoerzenbergers_1-1714033808265.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101681i381D8B8015D8A706/image-size/large?v=v2&amp;px=999" role="button" title="hoerzenbergers_1-1714033808265.png" alt="hoerzenbergers_1-1714033808265.png" /></span></P><P>SAP's most recent commercial update announced a commercial reset of how SAP Datasphere Tenant Configuration works. Additionally, they announced the BTPEA (=BTP Enterprise Agreement) model as a replacement for CPEA.&nbsp;</P><P>This blog provides information on the updated packaging &amp; licensing for SAP Datasphere. The main focus lies on the improved flexibility in configuration and pricing depending on your SAP Datasphere use case. Moreover, the blog also covers the freed-up Capacity Units (CU) for existing SAP Datasphere customers.&nbsp;</P><P><U>Introduction of a smaller minimum configuration</U></P><P>In the past, an SAP Datasphere license started at 4300 CU / month. Furthermore, the extension of the tenant was processed in tiers, meaning you could not configure components individually. As TCO is a crucial component in the decision-making process in an IT Transformation, this created a barrier for a lot of stakeholders.</P><P>Starting at 1532 CU / month, the minimum capacity for a SAP Datasphere Tenant has decreased considerably as of April 15. This configuration by default provides you</P><UL><LI>Storage: 8 blocks of 16 GB disk storage</LI><LI>Compute: 2 blocks of 16 GB of RAM</LI><LI>Data Integration: 200hours/month in 2 parallel jobs</LI></UL><P>In the next section, you will learn how you can dynamically extend this package considering every component separately.</P><P><U>Flexible Tenant Configuration</U></P><P>SAP Datasphere offers high flexibility to scale up / scale down your tenant (=FTC). Depending on your use case you can configure:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hoerzenbergers_2-1714036093003.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101695i458CC1A8E9268681/image-size/large?v=v2&amp;px=999" role="button" title="hoerzenbergers_2-1714036093003.png" alt="hoerzenbergers_2-1714036093003.png" /></span></P><P>Every component can be extended based on the below Consumption Blocks:&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hoerzenbergers_3-1714047152839.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101784i1C64426BFE8497E4/image-size/large?v=v2&amp;px=999" role="button" title="hoerzenbergers_3-1714047152839.png" alt="hoerzenbergers_3-1714047152839.png" /></span></P><P>Start configuring your tenant now through <A href="https://discovery-center.cloud.sap/serviceCatalog/sap-datasphere?commercialModel=btpea&amp;tab=service_plan&amp;region=all" target="_blank" rel="noopener nofollow noreferrer">SAP Discovery Center</A></P><P><U>Introduction of Performance Classes<BR /><BR /></U>In the compute section of the tenant configuration of SAP Datasphere, you can now choose the performance class you wish to implement:&nbsp;</P><UL><LI>Memory (default ratio - 1:16): Suitable for most basic workloads (2 vCPU &amp; 2 blocks of 16 GB of RAM)</LI><LI>High Memory (1:32): Optimized to support big data sets that require a lot of memory</LI><LI>Compute (1:8): Optimized to support compute-intensive workloads</LI><LI>High Compute (1:4): Optimized to support compute-intensive workloads that require fewer memory resources</LI></UL><P>Visual representation of how the Default Performance Class looks:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hoerzenbergers_1-1714031805374.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101649iDB14852D0E69B76B/image-size/large?v=v2&amp;px=999" role="button" title="hoerzenbergers_1-1714031805374.png" alt="hoerzenbergers_1-1714031805374.png" /></span></P><P>This is a critical change that sets the future for enabling AI &amp; LLM use cases alongside SAP Datasphere. You can set the correct infrastructure to work out your AI use cases. It provides the necessary flexibility to start small with the potential scalability in the future. This change goes hand in hand with the newly released SAP HANA Cloud Vector Engine. (More details on this in a separate blog).</P><P><U>What with existing tenants?</U></P><P>For existing SAP Datasphere customers, it is highly recommended to check out your tenant configuration through system -&gt; configuration -&gt; tenant configuration. You will most probably be leveraging a lower percentage of your current Capacity Units than before. This means that you can boost the power of your SAP Datasphere tenant without exceeding the limits of your current CU / Month license. More info can be found through&nbsp;<A href="https://me.sap.com/notes/0003434342" target="_self" rel="noopener noreferrer">SAP Note.</A></P><P>An example:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hoerzenbergers_0-1714033026774.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101671i4B1D142C45980C9A/image-size/large?v=v2&amp;px=999" role="button" title="hoerzenbergers_0-1714033026774.png" alt="hoerzenbergers_0-1714033026774.png" /></span></P><P><U>Conclusion</U></P><P>The pricing program for SAP Datasphere has substantially become more compelling for organizations to take the first step into a business fabric. The reduced minimum configuration removes entry barriers but preserves upscale opportunities.&nbsp;</P><P>Thanks to my colleagues simon.vandelanotte@delaware.pro &amp; arne.feys@delaware.pro for the co-creation of this blog.&nbsp;</P><P>Some useful links:</P><P><A href="https://www.sap.com/registration/trial.4d48ec23-eadf-4399-8595-ac3f9c66c64f.html" target="_blank" rel="noopener noreferrer">Free Basic Trial</A></P><P><A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800002141&amp;range=CURRENT-LAST#Q2%202024" target="_blank" rel="noopener noreferrer">SAP Datasphere Roadmap</A></P><P><A href="https://www.sap.com/products/technology-platform/datasphere.html" target="_blank" rel="noopener noreferrer">SAP Datasphere Product Page</A></P><P><a href="https://community.sap.com/t5/c-khhcw49343/SAP+Datasphere/pd-p/73555000100800002141" class="lia-product-mention" data-product="16-1">SAP Datasphere</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/SAP+Business+Technology+Platform/pd-p/73555000100700000172" class="lia-product-mention" data-product="1215-1">SAP Business Technology Platform</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud/pd-p/73554900100800002881" class="lia-product-mention" data-product="22-1">SAP HANA Cloud</a>&nbsp;</P> 2024-04-26T13:59:19.616000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/hdi-artifact-recovery-wizard/ba-p/13657688 HDI Artifact Recovery Wizard 2024-04-27T17:59:57.243000+02:00 VolkerSaggau https://community.sap.com/t5/user/viewprofilepage/user-id/44889 <H3 id="toc-hId-1119912255">Potential use cases are:</H3><UL><LI>Overwrite corrupt, broken or otherwise unusable HDI design time files in your project with their last successfully deployed versions.</LI><LI>Populate a project's database module with HDI design time files as they are currently successfully deployed in the HDI container.</LI><LI>Understand the content of an HDI Container without any source code (design time) be stored in GIT</LI></UL><P>&nbsp;</P><H3 id="toc-hId-923398750">Prerequisites:</H3><UL><LI>Business Application Studio project with a HANA database module.</LI><LI>HDI container available via Cloudfoundry service of type "hdi-shared".</LI><LI>Database module bound to the "hdi-shared" service.</LI></UL><P>&nbsp;</P><P>Detailed instructions on how to use the Artifact Recovery Wizard when working in Business Application Studio can be found in <A href="https://me.sap.com/notes/3269751/E" target="_blank" rel="noopener noreferrer">SAP Note 3269751</A> and the <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-developer-guide-for-cloud-foundry-multitarget-applications-sap-business-app-studio/restore-design-time-artifacts-from-database" target="_blank" rel="noopener noreferrer">SAP Help Portal ("Restore Design-time Artifacts from the Database")</A>.</P><P>&nbsp;</P><P>The Artifact Recovery Wizard is considered an expert tool and should be used carefully:</P><UL><LI>The Artifact Recovery Wizard reads and, if selected, restores the HDI designtime files in their last <EM>successfully deployed</EM> version. It cannot restore versions of files for which the deployment failed, as they are not part of the corresponding container filesystem.</LI><LI>Status "modified" means that a file exists in both BAS project and HDI container and the file versions differ. As there is no further information provided about which version is newer the decision which files with this status are eventually restored should be taken with care.</LI><LI>The Artifact Recovery Wizard was not designed to synchronize changes across multiple projects deploying into the same HDI container. Such a scenario carries an increased risk of unintentional object corruption and data loss and is therefore not recommended.</LI></UL><H3 id="toc-hId-726885245">How to use Artifact Recovery?</H3><P>Using BAS/HANATools:</P><P>1.) Create a new project (in my case "LostWorkspace") and bind it to the HDI-Container your want to recover.</P><P>"SFlight" in my case.</P><P>Notice that there are no sources (src folder)&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_0-1714231280690.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102653i38205AC9EF8D92B3/image-size/medium?v=v2&amp;px=400" role="button" title="VolkerSaggau_0-1714231280690.png" alt="VolkerSaggau_0-1714231280690.png" /></span></P><P>Now press F1 or SHIFT+OPTION+P (on a MAC)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_1-1714231466367.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102654iB63F7A1F78D98FB2/image-size/medium?v=v2&amp;px=400" role="button" title="VolkerSaggau_1-1714231466367.png" alt="VolkerSaggau_1-1714231466367.png" /></span></P><P>and type now "Recover"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_2-1714231564398.png" style="width: 692px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102655i56975BF5029F5D94/image-dimensions/692x90?v=v2" width="692" height="90" role="button" title="VolkerSaggau_2-1714231564398.png" alt="VolkerSaggau_2-1714231564398.png" /></span></P><P>and select SAP HANA: Start Database Artifact Recovery:</P><P>Choose the directory where you have your .env file located</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_3-1714231753732.png" style="width: 692px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102656i38A0BE592EB68CF6/image-dimensions/692x192?v=v2" width="692" height="192" role="button" title="VolkerSaggau_3-1714231753732.png" alt="VolkerSaggau_3-1714231753732.png" /></span></P><UL><LI>The wizzard will warn you in case that directory does not contain the .env file or</LI><LI>fill immediately the list with all objects in that container</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_4-1714231945316.png" style="width: 759px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102657iA49D62B7CC062A08/image-dimensions/759x389?v=v2" width="759" height="389" role="button" title="VolkerSaggau_4-1714231945316.png" alt="VolkerSaggau_4-1714231945316.png" /></span></P><OL><LI>select all file</LI><LI>hdiconfig is by default in your project. By default overwrite the existing one with the older one from the project that was deployed before. There are reasons to keep the file. This is another discussion. Anyhow nothing onw can mend later as well.</LI><LI>the list shows the "lost" missing object in your project.</LI><LI>Check all the get the project back.</LI></OL><P>at the end of the list you can find the "Continue" bottom</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_5-1714232333743.png" style="width: 757px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102658i8BD5C58D7280D89D/image-dimensions/757x175?v=v2" width="757" height="175" role="button" title="VolkerSaggau_5-1714232333743.png" alt="VolkerSaggau_5-1714232333743.png" /></span></P><H3 id="toc-hId-530371740">The result:</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_6-1714232503810.png" style="width: 765px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102659iE0090B8114377D21/image-dimensions/765x719?v=v2" width="765" height="719" role="button" title="VolkerSaggau_6-1714232503810.png" alt="VolkerSaggau_6-1714232503810.png" /></span></P><OL><LI>A backup of the existing content (nicely done by the developer not to overwrite existing version)</LI><LI>All the objects that are inside the container. In my case I recovered a CAP project. That is why we have a "gen" folder.<OL class="lia-list-style-type-lower-alpha"><LI>This was intentional to show: A reverse of the HDI does not give you back all your source code. Just the bit that is used in the database to generate the DB artifacts.</LI><LI>The CAP CDS has some smart generation concepts. Is is a logical data model. You will not get this back by recovery. THIS METHOD is not a replacement for a proper GIT repository!</LI><LI>It is very good for your own HDBTABLE, HDBVIEW, HDBCALCULATIONVIEW etc.</LI></OL></LI></OL><P>Do not forget to <STRONG>UNBIND the HDI Container now</STRONG> unless you are sure you want to overwrite the content. Recommendation to create a new HDI-Container now to continue.</P><H3 id="toc-hId-333858235">Summary:</H3><P>If for any case you want to look into an HDI Container and get back the source objects</P><P>ARTIFACT RECOVERY is your friend. It does not replace by any means a proper version system like GIT.</P><P>Hope you find this option helpful. Give it a try, so you known how to use this in <STRONG>emergency situations.</STRONG></P><P>BR</P><P>Volker and Bastian</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-04-27T17:59:57.243000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/explore-the-sap-hana-cloud-vector-engine-with-a-free-learning-experience/ba-p/13686453 Explore the SAP HANA Cloud vector engine with a free learning experience 2024-04-29T22:40:00.482000+02:00 Daniel_Dukes https://community.sap.com/t5/user/viewprofilepage/user-id/41370 <P><STRONG>The next version of the popular 30-day basic trial is now available for anyone wanting to build a modern data foundation for AI-powered solutions.</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Know, learn, and experience SAP HANA Cloud" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103532i81B3FDAF5AAE2BF9/image-size/large?v=v2&amp;px=999" role="button" title="knowlege learning experience.jpeg" alt="Know, learn, and experience SAP HANA Cloud" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Know, learn, and experience SAP HANA Cloud</span></span></P><P><SPAN>With the&nbsp;</SPAN><A href="https://news.sap.com/2024/04/sap-hana-cloud-vector-engine-ai-with-business-context/" target="_self" rel="noopener noreferrer">release</A><SPAN> of technologies like the SAP HANA Cloud vector engine, SAP BTP solutions are equipping customers and partners to build the next generation of </SPAN><A href="https://www.sap.com/products/technology-platform/hana/features/intelligent-data-apps.html" target="_self" rel="noopener noreferrer">intelligent data applications</A><SPAN>. Simply put, these types of applications fully utilize the database to enhance the user’s experience as well as execution of the business process. Example database features include the integration with all types of business data, multi-tiered data storage, multi-model processing, and machine learning.</SPAN></P><P>During this experience, a step-by-step tutorial provides guided hands-on learning for topics such as:</P><P style=" padding-left : 30px; ">Intelligent Data Applications<BR />In-Memory Column Tables<BR />Data Tiering<BR />Multi-Model: Document Store<BR />Multi-Model: Spatial Engine<BR />Multi-Model: Graph Engine<BR />Multi-Model: Vector Engine*<BR />Machine Learning</P><P style=" padding-left : 30px; ">*<EM> The vector engine topic includes an introductory exercise as well as an example that combines the use of more than one multi-model engine. For a fantastic introduction to using vectors, check out this&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-cloud-vector-engine-quick-faq-reference/ba-p/13675212" target="_self">blog</A>.</EM></P><P>As part of the experience, each registered user receives access to a private schema on a shared cloud database along with all the data needed to complete the exercises. Once finished, the user can then continue to access the schema for the remainder of 30 days. This extra time provides a great opportunity to use the assigned schema for independent study. For those who like a challenge, try to discover how many of the advanced multi-model engines can be included in a single SQL statement.</P><P>This interactive opportunity is ideal for any database enthusiast whether currently enrolled in introductory database courses or a seasoned professional. Note: some SQL familiarity is recommended as many exercises make use of this industry standard language.&nbsp;</P><P>Click <A href="https://www.sap.com/products/technology-platform/hana/guided-experience.html" target="_self" rel="noopener noreferrer">here</A> to register and experience SAP HANA Cloud firsthand. Discover how this amazing database is enabling companies to deliver applications that focus on the success of the user.</P> 2024-04-29T22:40:00.482000+02:00 https://community.sap.com/t5/financial-management-blogs-by-members/ach-wire-return-process-in-s-4-hana/ba-p/13691879 ACH/ WIRE RETURN Process in S/4 Hana 2024-05-07T09:22:40.375000+02:00 AbhishekArupSar https://community.sap.com/t5/user/viewprofilepage/user-id/1446578 <P><STRONG><U>ACH/ WIRE RETURN Process in S/4 Hana</U></STRONG></P><P><STRONG><U>Problem Statement:</U></STRONG></P><P>ACH or wire returns are received in Electronic Bank Statement for the paid invoices. The return process needs to be applied to the invoices and reset the payments.</P><P>Since returns are usually not received soon, the actual payments are already cleared/reconciled with bank statements.</P><P>To reissue the correct payments, the reversal original payment would not possible unless bank reconciliation postings are reverted which if done can open all payments received in that bank statement. To avoid such hassles, Account Payables team posts duplicate invoice.</P><P><STRONG><U>Adverse Impact of the existing process:</U></STRONG></P><UL><LI>Duplicate postings for one invoice</LI><LI>Account Payables &amp; Bank Reconciliation issues.</LI><LI>Delays in Audit Reporting</LI><LI>Issues with 1099 reporting due to over tax exposure for supplier due duplicate invoice postings &amp; payments.</LI></UL><P>The following document suggests the best way to manage ACH/Wire returns:</P><P><STRONG><U>Instructions for the Treasury Team</U></STRONG></P><P><STRONG><U>Step1:</U></STRONG> Apply the ACH/Wire return received in Bank Statement using <STRONG>“Reprocess Bank Statement Items” Fiori App”</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_0-1715006070218.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106365iCB4D6771FF85A314/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_0-1715006070218.png" alt="AbhishekArupSar_0-1715006070218.png" /></span></P><P>&nbsp;</P><P><STRONG><U>&nbsp;</U></STRONG></P><P><STRONG><U>&nbsp;</U></STRONG></P><P><STRONG><U>Step2:</U></STRONG> Select “<STRONG>Post to G/L Account</STRONG>” and then select “Add.”&nbsp; Enter and Post ACH/wire return amount to Accounts Payable adjustment GL account viz. 2100XXX.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_1-1715006070232.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106366iC145F35EFDCBDDD1/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_1-1715006070232.png" alt="AbhishekArupSar_1-1715006070232.png" /></span></P><P>&nbsp;</P><P><STRONG><U>Step3:</U></STRONG> Select “Simulate” to ensure the accounting and posting date are correct and post.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_2-1715006070241.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106367iC298524FF15AA1EC/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_2-1715006070241.png" alt="AbhishekArupSar_2-1715006070241.png" /></span></P><P><STRONG><U>Step4:</U></STRONG> Now, we need to find the original ACH/wire payment which cleared in SAP. Get the bank reconciliation clearing document from there and reverse the entire batch. The posting period should be the date of the ACH/wire return. This is needed to allow reversal of the payments.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_3-1715006070252.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106370i88613DE592B821BC/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_3-1715006070252.png" alt="AbhishekArupSar_3-1715006070252.png" /></span></P><P>&nbsp;</P><P><STRONG><U>Step5:</U></STRONG> Reprocess all the payments under the ACH payment batch except for the returned payment (note: this step is not necessary for wire payments). Select “Post to G/L Account” and debit same AP adjustment GL account 2100XXX for the returned ACH/wire payment amount.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_4-1715006070259.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106368iD6E75C05E0E3D0D4/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_4-1715006070259.png" alt="AbhishekArupSar_4-1715006070259.png" /></span></P><P><STRONG><U>Step6:</U></STRONG> Select “Simulate” to ensure the accounting and posting date are correct and post.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_5-1715006070273.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106369i05D7DE2161751CAD/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_5-1715006070273.png" alt="AbhishekArupSar_5-1715006070273.png" /></span></P><P>&nbsp;</P><P><STRONG><U>Step7:</U></STRONG> The Treasury Team will send an email to the Accounts Payable Team to show a payment was returned and provide the supporting information from the Bank.</P><P><STRONG><EM>&nbsp;</EM></STRONG></P><P><STRONG><U>Instructions for the AP Team</U></STRONG></P><P><STRONG><U>Step8: </U></STRONG>Confirm A/P invoice is open- Reset and Reverse the payment document.</P><UL><LI>Please note if the ACH/wire return occurred during A/P close, the A/P team will need to book the following reversing journal in GL SAP, until A/P opens in the following period. This Journal entry will auto reverse in first working day of the following month.</LI></UL><P><STRONG>Dr </STRONG>ACH/Wire Clearing Account&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; XXXX<BR /><STRONG>Cr</STRONG> AP adjustment Account&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XXXX</P><UL><LI>AP team will reset and reverse in the first working day of the following month.</LI></UL><P>If ACH/WIRE return received on 28th of Feb-2024, AP will book a JE in SAP GL with posting date of 28th Feb-2024. This JE will be reversed on 1st March -2024. (First working day of the month). AP will reset and reverse the payment document with the with the posting date of 01st March-2024.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>Original Payment for Returns</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_6-1715006070284.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106373i2FFC0725BF4457A7/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_6-1715006070284.png" alt="AbhishekArupSar_6-1715006070284.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_7-1715006070292.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106371i3C9BD897E0D1FCEB/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_7-1715006070292.png" alt="AbhishekArupSar_7-1715006070292.png" /></span></P><P>&nbsp;</P><P><STRONG><U>&nbsp;Step9:</U></STRONG> Go to the “<STRONG>Reset cleared items</STRONG>” App window displaying the payment document to be reversed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_8-1715006070299.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106372i48910EF289D351F7/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_8-1715006070299.png" alt="AbhishekArupSar_8-1715006070299.png" /></span></P><P>&nbsp;</P><P><STRONG><U>Step10:</U></STRONG> Select the “<STRONG>Reset and Reverse</STRONG>” option (use the date of the return for the posting date) in case in same month.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_9-1715006070310.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106374iD692E72442BD3B50/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_9-1715006070310.png" alt="AbhishekArupSar_9-1715006070310.png" /></span></P><P>&nbsp;</P><P><STRONG><U>Step11:</U></STRONG> Now you can see payment reversal document.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhishekArupSar_10-1715006070318.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106375i4B5918CC456814FE/image-size/medium?v=v2&amp;px=400" role="button" title="AbhishekArupSar_10-1715006070318.png" alt="AbhishekArupSar_10-1715006070318.png" /></span><STRONG><U>&nbsp;</U></STRONG></P><P><STRONG><U>Step12:</U></STRONG> Confirm reversed document. The original invoice is open to repayment and no duplicate invoice needs to be posted.</P><P>Once, reason of payment failure is resolved you can repay the supplier.</P><P>Please find below the accounting entries for the ACH /Wire return process</P><P>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><U>Debit</U></STRONG><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<U>Credit</U></STRONG></P><TABLE width="299"><TBODY><TR><TD width="228"><P><U>&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</U></P><P><STRONG><U>1) Initial Invoice processed in AP</U></STRONG></P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>Expense</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>A/P</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp;&nbsp; -2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="170"><P><STRONG><U>2) Initial Invoice paid in AP</U></STRONG></P></TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>A/P</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Bank Clearing Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp; - 2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="228"><P><STRONG><U>3) Initial Payment Cleared (EBS File)</U></STRONG></P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>Bank Clearing Account</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Cash Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp;&nbsp; -2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="170"><P><STRONG><U>4) ACH Return (EBS File)</U></STRONG></P></TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>Cash Account</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P><STRONG>AP Adjustment Account</STRONG></P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp;&nbsp; -2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="299"><P><STRONG><U>5) Reverse Initial Payment Cleared (EBS File)</U></STRONG></P></TD></TR><TR><TD width="64"><P><STRONG>Cash Account</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Bank Clearing Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp;&nbsp; -2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG><EM>AP Adjustment Account</EM></STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Cash Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp; - 2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="228"><P><STRONG><U>7) AP Team Reverse Initial Payment</U></STRONG></P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>Bank Clearing Account</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>A/P</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp; - 2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="170"><BR /><P>&nbsp;</P><P><STRONG><U><SPAN>&nbsp;8.</SPAN>AP Team Reissues Payment</U></STRONG></P></TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>A/P</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Bank Clearing Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp; - 2,216.12</P></TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71">&nbsp;</TD></TR><TR><TD width="228"><P><STRONG><U>9) Reissued Payment Cleared (EBS File)</U></STRONG></P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64"><P><STRONG>Bank Clearing Account</STRONG></P></TD><TD width="90">&nbsp;</TD><TD width="15">&nbsp;</TD><TD width="58"><P>&nbsp;&nbsp;&nbsp; 2,216.12</P></TD><TD width="71">&nbsp;</TD></TR><TR><TD width="64">&nbsp;</TD><TD width="90"><P>Cash Account</P></TD><TD width="15">&nbsp;</TD><TD width="58">&nbsp;</TD><TD width="71"><P>&nbsp;&nbsp; - 2,216.12</P></TD></TR></TBODY></TABLE><P>The ACH/Wire return process explained above is simple and easily adoptable. It helps us resolves all the adverse impacts of faulty process and ensures accurate reporting. Hope, this document equips you well to tackle his problem in future.</P> 2024-05-07T09:22:40.375000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/embedding-business-context-with-the-sap-hana-cloud-vector-engine/ba-p/13693738 Embedding Business Context with the SAP HANA Cloud, Vector Engine 2024-05-07T12:27:05.550000+02:00 thiago https://community.sap.com/t5/user/viewprofilepage/user-id/4678 <P><FONT size="2"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="298514_GettyImages-890156508_small_jpg2.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107332i2782DBB378738227/image-size/large?v=v2&amp;px=999" role="button" title="298514_GettyImages-890156508_small_jpg2.jpg" alt="298514_GettyImages-890156508_small_jpg2.jpg" /></span></FONT><BR /><FONT size="2">Authors: <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/7024">@amagnani</a> |<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/42191">@cesarecalabria</a> |<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/4084">@Eneveux</a> |<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/2758">@jacobahtan</a> |<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/4176">@MostafaSharaf</a> |<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/4678">@thiago</a> | <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/3013">@Trinidad</a></FONT><BR /><BR />This blog post is part of a webinar series to show you how to explore the Generative AI capabilities of SAP AI Foundation, along with proof of concepts in the form of use cases:</P><H4 id="toc-hId-1252570700"><A href="https://partneredge.sap.com/en/library/education/psd/2024/mar/e_oe_te_w_PSD_WEB_00005630.html" target="_self" rel="noopener noreferrer"><SPAN class="">Replay: Embedding Business Context with the SAP HANA Cloud Vector Engine</SPAN></A></H4><P>Here we will see the methods to ground &amp; adapt Generative AI to business context though <STRONG>Retrieval Augmented Generation (RAG)</STRONG>, extending to external domain knowledge by retrieving &amp; injecting information via embeddings thanks to the <STRONG>SAP HANA Cloud, Vector </STRONG><STRONG>Engine</STRONG>.</P><P>Here you will find the source code of both prototypes: <SPAN class=""><A class="" href="https://github.com/SAP-samples" target="_blank" rel="author noopener nofollow noreferrer">SAP-samples </A></SPAN><SPAN class="">/</SPAN> <STRONG><A href="https://github.com/SAP-samples/btp-generative-ai-hub-use-cases" target="_blank" rel="noopener nofollow noreferrer">btp-generative-ai-hub-use-cases</A></STRONG></P><H2 id="toc-hId-797891757">The basics</H2><P>Ok, let’s start with a quick warm-up with the basics: you know that LLMs are trained on vast amounts of text data from various sources, which allows them to generate responses and perform tasks across a wide range of topics.</P><P>However, they don't naturally understand the nuances of specific industries or domains. So, while LLMs can be valuable tools for generating text and performing certain tasks, they may require additional guidance or input from domain experts to ensure accuracy and relevance in business-specific contexts.</P><P>The question you might hear from customers worldwide and that I pose to you here is:</P><P style=" text-align: center; "><STRONG>How do I make the large language model smarter<BR /></STRONG><STRONG>by adding details about my business and stop it from hallucinating?</STRONG></P><P>Here are some known key techniques to enhance the output of large language models (LLMs). We have categorized them based on how well they optimize context and the model itself.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-technics.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106697iCFF2113054F1AB0A/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-technics.jpg" alt="VecEng-technics.jpg" /></span></P><P>Let's start with one of the fundamental strategies: prompt engineering.</P><H3 id="toc-hId-730460971">Prompt engineering</H3><P>Prompt engineering involves crafting specific instructions or queries to guide the model towards desired outputs. It's like giving clear directions to get the best results. One advantage is its simplicity, it requires less technical expertise and computational resources, but a downside could be the need for some trial and error to find the most effective prompts.</P><H3 id="toc-hId-533947466">Model fine-tuning</H3><P>Then we have model fine-tuning. This is all about training the model to better fit the requirements at hand, to perform a <STRONG>NEW SKILL</STRONG> or <STRONG>NEW TASK</STRONG> that is just hard to articulate in a prompt. It’s like showing the model <STRONG>HOW</STRONG> to do it, not <STRONG>TELLING</STRONG> how to do it. It can require a good understanding of the model's inner workings, it’s time and resource consuming, therefore <STRONG>VERY COSTLY</STRONG>.</P><H3 id="toc-hId-337433961"><STRONG>Retrieval Augmented Generation</STRONG></H3><P>Moving up on the context optimization axis we have the <STRONG>Retrieval Augmented Generation</STRONG> (so called <STRONG>RAG</STRONG>). This technique enhances the model's capabilities by providing more context to the given task. It's like providing the model access to a library of information to help it generate more accurate outputs. One advantage is its ability to generate relevant and domain-specific content, but it <STRONG>HEAVILY DEPENDS</STRONG> on the quality of external corpus used for retrieval.</P><P>By using a mix of prompt engineering, model fine-tuning, and RAG, companies can leverage the strengths of each approach to further improve the performance of the LLM.</P><P>Let's focus on RAG. The key characteristics of RAG includes:</P><P><STRONG>Reduce Hallucinations</STRONG>: RAG can mitigate the occurrence of hallucinations or incorrect outputs by cross-referencing the generated content with the retrieved information, thereby improving the overall accuracy of the model's responses.</P><P><STRONG>Increased Knowledge</STRONG>: Even if the base LLM has not been trained on certain information, as long as that information exists in the corpus used for retrieval, RAG can still provide relevant answers.</P><P><STRONG>Flexibility</STRONG>: By changing the underlying corpus, RAG can be adapted to different domains or knowledge bases.</P><P><STRONG>Memory Efficiency</STRONG>: Instead of having to increase the size of the language model to store more information, RAG leverages external data sources, keeping the model size manageable.</P><P>Let’s see that in action with a quick and very simple example here:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-prompt.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106706i945CF07D84B9D005/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-prompt.jpg" alt="VecEng-prompt.jpg" /></span></P><P>I asked the LLM since what quarter SAP HANA supports native vector datatype for running vector similarity. The answer was wrong, there was no such support in 2020.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-prompt-2.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106707iC9A942F1265B5A77/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-prompt-2.jpg" alt="VecEng-prompt-2.jpg" /></span></P><P>Then I provided the context, in this case, the actual release date. And asked the same question. The model took the date and converted to the right quarter, providing me with the correct answer.</P><P>So, the concept is clear: if I want the model to be precise, I need to provide the information as the context to the questions I want it to answer.</P><P>However, the challenge is: where and how do I store all that information that I want to send to the model, and ALSO how to retrieve the right piece according to the question asked.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-store.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106708i893FD9408EE21F61/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-store.jpg" alt="VecEng-store.jpg" /></span></P><P>Every company store their unstructured information in different formats. So think about that bunch of pdfs, web pages, word documents. We want that to be our source for the RAG technic.</P><P>To store them in a format that can be meaningful to the technics we want to apply, we need to convert them to embeddings. Embeddings are a way to represent text in numerical format, typically as vectors.</P><P>Let’s use few words as an example - In the first column, you'll notice we've grouped some of them together based on their meanings, and we've color-coded them for clarity. Alongside each word, you'll find its corresponding embedding.</P><P>We have simplified them in a 2-dimension embedding representation for better understanding of the concepts we want to demonstrate.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-text.jpg" style="width: 200px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106710iA33B2A1A6462058E/image-size/small?v=v2&amp;px=200" role="button" title="VecEng-text.jpg" alt="VecEng-text.jpg" /></span></P><P>If we were to plot them on a Cartesian graph, here's how they'd appear.</P><P>Notice how these words are all clustered together on the graph -&nbsp; It's like they're grouped up in the same area. We can also see their vector representation, which basically shows their 'direction' in the space. Pretty interesting, right?</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-vector.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106711i6A3E9A21A5BAA826/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-vector.jpg" alt="VecEng-vector.jpg" /></span></P><P>Alright, so how do we figure out how similar these words are? There are a few methods, but let's focus on two for now.</P><P>The first method uses the <STRONG>COSINE</STRONG> of their angle:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-cosine.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106712iE98436EB28D97619/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-cosine.jpg" alt="VecEng-cosine.jpg" /></span></P><P>And the second one uses the <STRONG>Euclidean</STRONG> distance:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-euclidean.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106713i993326387FD63A8E/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-euclidean.jpg" alt="VecEng-euclidean.jpg" /></span></P><P>&nbsp;</P><P>Understanding this is important because it helps us do a lot of useful things like classification, group them together, spot any odd ones out, do semantic searches, and even use it to give recommendations. We can for example group documents, or chunks of documents together to find common topics of interest.</P><P>Let's break it down with a practical example. To understand how to use these steps effectively, first, we need to create smaller sections of documents like paragraphs or sentences, also known as chunks, and turn them into embeddings.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-convert.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106716i939FB73307A7DA83/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-convert.jpg" alt="VecEng-convert.jpg" /></span></P><P>Then we save them as vectors, in a vector store.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-stor3.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106717i0B879694507EF9B4/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-stor3.jpg" alt="VecEng-stor3.jpg" /></span></P><P>Once we receive a query from the user, we turn it into a vector and then compare it with all the other vectors in our database. We'll then filter down to just a few, just the most similar ones.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-compare.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106718i698F02DFEBC4D9FB/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-compare.jpg" alt="VecEng-compare.jpg" /></span></P><P>And with those, we enrich the prompt, just like you see here.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-enrich.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106720i9F5BF861264418AD/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-enrich.jpg" alt="VecEng-enrich.jpg" /></span></P><P>Now, let's incorporate the technology into those steps. This diagram is something you'll definitely want to keep handy, like sticking it on your workstation:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-flow.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106721i0D25F5B0552507A6/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-flow.jpg" alt="VecEng-flow.jpg" /></span></P><P>In summary: we first generate the Text Chunks, then we convert to embeddings, and save them as vectors in the SAP HANA Cloud, using the Vector Engine. When the user’s query comes, we generate the embeddings and run a similarity search with the vectors we have stored.</P><P>Best matches goes together with the query to the LLM that provides the answer to the user.</P><P>Now, this is very important to understand: in orange you see the steps we need <STRONG>Generative AI Hub</STRONG> to <U>generate the embeddings</U> and <U>provide the answer</U>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-aiLaunchpad.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106722i5E7954319B21E969/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-aiLaunchpad.jpg" alt="VecEng-aiLaunchpad.jpg" /></span></P><P>The model responsible for <STRONG>converting text to embeddings</STRONG> is called <STRONG>Text Embeddings</STRONG> <STRONG>model</STRONG>, in this case here you see ADA-002. And the model responsible for generating the text competition for the final answer is GPT-4. Both accessible, again, through the Generative AI Hub that you have seen in the fist session of this series. These are the models we have chosen and you can always opt for different ones available in the Generative AI Hub – please refer <A href="https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/models-and-scenarios-in-generative-ai-hub?version=CLOUD&amp;locale=en-US" target="_self" rel="noopener noreferrer">to this link to see the supported models</A>.</P><P>Good, now we want to see how to store the embeddings in a vector format and run the similarity search. And this is the role of our SAP HANA Cloud. It will provide us with the right functions and data formats:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-hcve.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106725iA5C55386E59C9239/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-hcve.jpg" alt="VecEng-hcve.jpg" /></span></P><H2 id="toc-hId-11837737">SAP HANA Cloud, Vector Engine</H2><P>The Vector Engine, released last March on the <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-vector-engine-guide/sap-hana-cloud-sap-hana-database-vector-engine-guide?version=2024_1_QRC" target="_self" rel="noopener noreferrer">SAP HANA Cloud</A>, provides a new datatype to store high-dimensional vectors and two distance functions to compute vector similarity, and one of the use cases for those features is the Retrieval Augmented Generation.</P><P>The new datatype is called REAL_VECTOR and consists of real elements that supports up to 65000 dimensions.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-realvector.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106734i68799BB7D6A420A0/image-size/medium?v=v2&amp;px=400" role="button" title="VecEng-realvector.jpg" alt="VecEng-realvector.jpg" /></span></P><P>You can get a REAL_VECTOR by using the function TO_REAL_VECTOR by passing either a text, a binary representation or an array.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-toRealvector.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106735i88D4472721BFDD3C/image-size/medium?v=v2&amp;px=400" role="button" title="VecEng-toRealvector.jpg" alt="VecEng-toRealvector.jpg" /></span></P><P>The distance functions available are the Euclidean distance, represented here by L2DISTANCE which will result in a double number greater or equal to zero. Basically, the closer this number is to zero, the more similar the vectors are.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-distance.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106736i6A609A70B0F669E3/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-distance.jpg" alt="VecEng-distance.jpg" /></span></P><P>And the COSINE_SIMILARITY – which results in a double between -1 and 1. The greater the result, the more similar are the vectors.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-cosinesim.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106737iC99CF3D1DC8D18D5/image-size/medium?v=v2&amp;px=400" role="button" title="VecEng-cosinesim.jpg" alt="VecEng-cosinesim.jpg" /></span></P><P>You can consume them using standard SQL script, Python through hana-ml library or Langchain, and also using CAP.</P><P>And we close the introduction looking at the <STRONG>main benefits of Vector Engine</STRONG>: It combines vectors and results of fast vector search with business data to enable specific-domain use cases.</P><P>Next up, we will now land this into a practical use case implementation with code, architecture and a cool demo.</P><H2 id="toc-hId--184675768"><STRONG>Use Case 1: Deduplication of citizen reported issues</STRONG></H2><P>We start from the previous session in February where we presented a proof of concept application using Generative AI HUB. The goal of the Citizen Reporting application is to assist the Maintenance Manager, Mary, by extracting insights from citizen social media posts, classifying them using Generative AI, allowing for the creation of maintenance notifications in the SAP S/4 HANA Cloud tenant when the incident is approved.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-usecase1-0.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106740i080013ABB68F3D77/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-usecase1-0.jpg" alt="VecEng-usecase1-0.jpg" /></span></P><P>However a problem presented itself … In this scenario, the maintenance manager, Mary, faces a challenge where citizens frequently report incidents via social media. These reports often pertain to the same issue but originate from different individuals. Mary is tasked with reviewing both duplicate incidents and newly reported incidents in order to determine which ones should be submitted to the backend S/4 HANA maintenance system.</P><P>The solution to help Mary in her task, will be to utilize the SAP HANA Vector engine to analyze all incoming social media incidents and identify duplicates or similarities among reported incidents. When duplicates or similarities are identified, a notification will be attached to the incident when viewed in the application, enabling Mary to easily distinguish them from new reports. This approach aims to streamline the incidents requiring Mary's review, enhancing efficiency in the overall process.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-usecase1-1.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106756iE23D9F8B888F8DFC/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-usecase1-1.jpg" alt="VecEng-usecase1-1.jpg" /></span></P><P>John reports an incident by creating a post via social media to the city’s community page using the social media to raise attention about an issue in the community.</P><P>The citizen reporting application receives John's post, examining its similarity to other member posts as identified in the SAP HANA Vector Database. If a duplicate incident is detected, the incident will be flagged as “duplicated” as to be easily identified by Mary, the maintenance manager, when she is viewing/managing incidents.</P><P>Both similar and dissimilar entries, as compared using the SAP HANA Vector engine, will undergo processing and analysis by the corresponding Large Language Model via SAP Generative AI Hub. This analysis entails extracting key incident details such as issue summary, type, urgency, location, and sentiment.</P><P>Subsequently, Mary, as the Maintenance Manager, reviews both new incident details and flagged duplicate incidents where she can then determine whether to approve the incident(s), reject the incident(s) or Link the duplicate or similar incident(s) to an existing S/4 HANA Cloud Maintenance Notification thereby taking action on the reports from citizens but not creating Maintenance notifications for the same reported incidents in the backend system.</P><P>Now, let’s have a look at a live demo of the Citizen Reporting Application in action:</P><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FerGK0fwrtsQ&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DerGK0fwrtsQ&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FerGK0fwrtsQ%2Fhqdefault.jpg&amp;key=fad07bfa4bd747d3bdea27e17b533c0e&amp;type=text%2Fhtml&amp;schema=youtube" width="600" height="337" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><P>As mentioned earlier, in the previous SAP Generative AI session we utilized, SAP Build apps for the client front-end application, the orchestration citizen reporting application on cloud foundry as well as&nbsp; SAP HANA for storage. For this use case we have extended the application to now use the SAP HANA Vector Engine on top of the existing solution for the deduplication by vectorizing the posts.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-solarch.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106761i8424A64D561F6CD7/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-solarch.jpg" alt="VecEng-solarch.jpg" /></span></P><P>Let’s look at the designed architecture and how the different services interact between them.</P><P>Our Citizen Reporting app is composed by:</P><UL><LI>A <STRONG>server side application</STRONG> that runs on <STRONG>SAP BTP Cloud Foundry</STRONG>. It can be developed with the language of your choice, in our proof of concept we implemented 2 versions: <STRONG>NodeJS</STRONG> and <STRONG>Python</STRONG>.</LI><LI>A <STRONG>user interface</STRONG> developed with <STRONG>SAP Build Apps</STRONG>, that can be easily deployed in <STRONG>SAP Build Work Zone</STRONG>.</LI><LI>The server side is consuming APIs from different BTP Services: from <STRONG>SAP AI Core</STRONG> service, providing access to different foundations models (remote or hosted) in a trusted and controlled way through the <STRONG>Generative AI Hub</STRONG> capability.</LI><LI>And to <STRONG>securely connect</STRONG> to the <STRONG>SAP AI Core APIs</STRONG>: the <STRONG>Destination</STRONG> service is leveraged.</LI><LI>We also consume the <STRONG>SAP HANA Cloud, Vector Engine</STRONG> through the <STRONG>Cloud Application Programing Model</STRONG> to perform the similarity search needed for the deduplication of issues as well as to store information about the incidents.</LI><LI>To create <STRONG>Maintenance Notifications in SAP S/4HANA Cloud</STRONG> we are consuming <STRONG>SAP S/4HANA Cloud OData APIs</STRONG> also secured through the <STRONG>Destination </STRONG>service.</LI><LI>The <STRONG>SAP Cloud Identity</STRONG> service allow us to share the same Identity Provider among the different components (including SAP S/4HANA Cloud) and to manage authorization and authentication for our application.</LI></UL><H2 id="toc-hId--381189273"><STRONG>Use Case 2: Ask the City<BR /></STRONG></H2><P>Next up, let's explore into the second use case of how SAP HANA Cloud vector engine could be simply be utilized for citizen's queries!</P><P>Citizens like John have the opportunity to submit inquiries to the city through social media platforms like Reddit’s Subreddit channel - Ask SAGenAICity and subsequently receive responses directly on the same platform.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-solarch-uc2.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106777i86C3E5AA559E911F/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-solarch-uc2.jpg" alt="VecEng-solarch-uc2.jpg" /></span></P><P>This capability is facilitated by the vectorization of SAGenAICity's knowledge repository, presently accessible through the city's website in formats such as HTML, PDF, and other documents, into the SAP HANA Cloud Vector Database.</P><P><STRONG>Problem: </STRONG>John has questions that he needs to contact SAGenAICity about but he does not know whom or what departments to contact within the city offices.</P><P><STRONG>Solution: </STRONG>In order to streamline the process of addressing John’s questions and guiding him toward appropriate resources, he asks his question(s) through SAGenAICity's community channel on Reddit. This city utilizes the SAP HANA Vector Database to search for similar questions/queries and delivers relevant answers directly to John via Reddit.</P><P>Once John’s question is submitted and the citizen reporting application receives the question the system undergoes a process whereby it evaluates whether the question aligns with similar data within the&nbsp; knowledge base of the city, which has been embedded within the SAP HANA Cloud Vector Database.</P><P>If similar information exists within the SAP HANA Vector Database, it will be relayed to SAP Generative AI, which will then generate a response tailored to John and the generated response will then be posted back to John via the Reddit social media platform.</P><P>By embedding SAGenAICity’s knowledgebase into the SAP HANA Cloud Vector database many questions can be answered automatically without intervention by a SAGenAICity employee thereby freeing up city employees to only have to handle exception questions that may not be part of their knowledgebase.&nbsp; It also enables citizens reporting issues yet another channel to resolve issues.</P><P>Now let’s have a look at a demo of the Ask SAGenAICity solution in action:</P><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F6dlzq9TNnN8%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6dlzq9TNnN8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F6dlzq9TNnN8%2Fhqdefault.jpg&amp;key=b0d40caa4f094c68be7c29880b16f56e&amp;type=text%2Fhtml&amp;schema=youtube" width="600" height="338" scrolling="no" title="Use Case 2: Ask the City" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><P>Here is the solution architecture diagram, similar to the previous one.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VecEng-solarch-uc22.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106779iFE05EDF31D1AF48D/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-solarch-uc22.jpg" alt="VecEng-solarch-uc22.jpg" /></span></P><P>The only difference is the python microservice, deployed in the Cloud Foundry runtime, that is actively listening to any new posts in the Reddit page. It is a pretty simple &amp; straightforward solution in this use case.</P><P>Please note that the webpages have been chunked using langchain library for the text chunks generation.</P><H2 id="toc-hId--577702778">Consumption Methods</H2><P>As we mentioned earlier, there are various consumption methods for SAP HANA Cloud, Vector Engine:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="VecEng-techs.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106781iC23C300C39B05904/image-size/large?v=v2&amp;px=999" role="button" title="VecEng-techs.jpg" alt="VecEng-techs.jpg" /></span>If you are curious to learn more, we explain the source code of both use case implementations in the replay of our session here:</P><H4 id="toc-hId--516050845"><A href="https://partneredge.sap.com/en/library/education/psd/2024/mar/e_oe_te_w_PSD_WEB_00005630.html" target="_self" rel="noopener noreferrer"><SPAN class="">Replay: Embedding Business Context with the SAP HANA Cloud Vector Engine</SPAN></A></H4><P><SPAN class="">Here you will find the source code of both prototypes: <SPAN class=""><A class="" href="https://github.com/SAP-samples" target="_blank" rel="author noopener nofollow noreferrer">SAP-samples </A></SPAN><SPAN class="">/</SPAN> <STRONG><A href="https://github.com/SAP-samples/btp-generative-ai-hub-use-cases" target="_blank" rel="noopener nofollow noreferrer">btp-generative-ai-hub-use-cases</A></STRONG></SPAN></P><P><SPAN class="">Do not miss it.<BR />Stay tuned!<BR /></SPAN></P><P>&nbsp;</P> 2024-05-07T12:27:05.550000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/tracking-hana-machine-learning-experiments-with-mlflow-a-technical-deep/ba-p/13692481 Tracking HANA Machine Learning experiments with MLflow: A technical Deep Dive 2024-05-08T17:00:00.007000+02:00 martinboeckling https://community.sap.com/t5/user/viewprofilepage/user-id/43098 <H1 id="toc-hId-865290017">Introduction</H1><P><SPAN><SPAN class="">This blog post is part of a series describing the usage of MLflow with HANA Machine Learning co-authored by &nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/39047">@stojanm</a>&nbsp;and <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/43098">@martinboeckling</a>.</SPAN> In this blog post we provide a more technical deep dive on the setup of a MLFlow instance and provide a general introduction how Machine Learning models trained with HANA ML can be logged with MLflow. The first blog post of the blog series is called&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/tracking-hana-machine-learning-experiments-with-mlflow-a-conceptual-guide/ba-p/13688478" target="_self">Tracking HANA Machine Learning experiments with MLflow: A Conceptual Guide for MLOps</A>&nbsp;and gives an introduction to the topic of MLOps with MLflow.</SPAN></P><P>Starting with the python HANA ML package version 2.13, HANA Machine Learning added support for tracking of experiments with the MLflow package, which makes the incorporation of models developed using HANA Machine Learning into a comprehensive MLOps pipeline easy to achieve.&nbsp;</P><P>In this blog post we will provide an overview how MLflow can be used together with HANA ML. MLflow, which manages the experiment tracking and artefact management can run as a managed service at a hyperscaler platform, deployed locally or on a remote infrastructure. In the following we describe how to deploy MLflow on SAP Business Technology Platform &nbsp;and how to track your HANA machine learning experiments with MLFlow. In addition, we present which methods and algorithms in the hana ml package currently support the experiment tracking feature. Finally, we touch on the possibility to use logged models in MLflow for prediction.</P><H1 id="toc-hId-668776512">Prerequisites</H1><P>In this blog post we solely focus on the technical integration of HANA ML and MLflow as a logging platform. Generally, we assume that Python is already installed together with an already established development environment. Furthermore, we will not completely explain all details of docker and Cloud Foundry, but simply focus on the essential parts for HANA ML and MLFlow within this blog post.</P><H1 id="toc-hId-472263007">Set up MLFlow on BTP</H1><P><SPAN>MLFlow is leveraged and integrated in different solutions. For example Databricks as well Machine Learning in Microsoft Fabric integrate or provide a managed MLflow instance. In case MLFlow is not yet provided, we outline in this section a possibility to deploy MLflow in SAP BTP. We focus for simplicity reasons on the SQLite based deployment of MLflow. However, for productive environments it is recommended to separate the storage from the runtime of the MLFlow instance. A detailed explanation for setting up your own MLFlow server with alternatives to SQLite can be found under the following&nbsp;</SPAN><SPAN>link:&nbsp;<A href="https://mlflow.org/docs/latest/tracking/server.html" target="_blank" rel="noopener nofollow noreferrer">https://mlflow.org/docs/latest/tracking/server.html</A>. In the following paragraphs, we focus on a step by step overview to set up your own MLFlow instance using SQLite in BTP.</SPAN></P><P>As a first step we want to create a local docker file which can be used to upload it to our BTP environment. In the following code snippet, we provide the coding used to construct your own docker container locally. For that, paste the following code into a file called Dockerfile within your desired local folder.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code># Retrieve a python version as a base runtime for our docker container FROM python:3.10-slim # Run the pip install command for the package of mlflow RUN pip install mlflow # Create a temporary folder within our docker container to store our artifact RUN mkdir -p /mlflow # Expose the port 7000 to make our application which runs within docker accessable over the defined port EXPOSE 7000 # Define environment variables BACKEND_URI and ARTIFACT_ROOT to define the backend uri as also the # artifact root ENV BACKEND_URI sqlite:///mlflow//mlflow.db ENV ARTIFACT_ROOT /mlflow/artifacts # run the shell comand to setup our mlflow server within our docker container CMD mlflow server --backend-store-uri ${BACKEND_URI} --host 0.0.0.0 --port 7000</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>After creating successfully the Docker object, you can run&nbsp;<STRONG>docker build -t {tagname}.</STRONG>&nbsp;to construct your docker container. Afterwards, the local docker image is locally built. To expose the docker image, we push the image to a docker registry. In our example, we assume that you already have a docker registry set up where you can push your image to. For that step, you can run the following commands: <STRONG>docker tag {tagname} {dockerhub repository tag}</STRONG>,&nbsp;<STRONG>docker push {</STRONG>dockerhub repository tag<STRONG>&nbsp;}.&nbsp;</STRONG>After the successful run of the command, you see within your private docker hub the newly published docker container, which contains MLflow and all its dependencies inside of it.</P><P>After the successful publishing of your docker image to your registry, we can run the following command to create a BTP app based on the published docker image:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>cf push APP-NAME --docker-image REPO/IMAGE:TAG</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>After successfully publishing the docker image on our BTP Cloud Foundry environment, we can find our published app within our BTP account and are able to access&nbsp;it under the published URL.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MLFlow Initial UI.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106232iB3F8015926221314/image-size/large?v=v2&amp;px=999" role="button" title="MLFlow Initial UI.png" alt="MLFlow Initial UI.png" /></span></P><H2 id="toc-hId-404832221"><SPAN>Set up tracking for MLflow</SPAN></H2><P>With MLflow users have the possibility to track their trained HANA ML models. In the following paragraph, we introduce the aspects that are needed to be able to log HANA ML models into MLflow itself.&nbsp;</P><P>To be able to use MLFlow together with HANA ML, we need to first install besides the HANA ML package also the MLFlow package. Therefore, you need to run the following command in your virtual environment, to be able to run the following scripts.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-bash"><code>pip install mlflow hana-ml</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>As a general setup, we first need to run the following command to set up our tracking with MLFlow to our available MLFlow instance. Therefore, place into the following two lines first your personal MLFlow tracking URI and your own custom experiment. In case you do not want to create a separate experiment, the different runs together with the MLFlow model are stored under the default experiment.</P><P>The method that allows us to track HANA ML models is implemented in the HANA ML package and is called enable_mlflow_autologging(schema=None, meta=None, is_exported=False, registered_model_name=None). This method can be used for initialised HANA ML models that are under the following methods:</P><UL><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.auto_ml.AutomaticClassification.html#hana_ml.algorithms.pal.auto_ml.AutomaticClassification.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">AutomaticClassification</A></LI><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.auto_ml.AutomaticRegression.html#hana_ml.algorithms.pal.auto_ml.AutomaticRegression.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">AutomaticRegression</A></LI><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.auto_ml.AutomaticTimeSeries.html#hana_ml.algorithms.pal.auto_ml.AutomaticTimeSeries.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">AutomaticTimeSeries</A></LI><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.pipeline.Pipeline.html#hana_ml.algorithms.pal.pipeline.Pipeline.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">Pipeline</A></LI><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.unified_classification.UnifiedClassification.html#hana_ml.algorithms.pal.unified_classification.UnifiedClassification.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">Unified_Classification</A></LI><LI><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.unified_regression.UnifiedRegression.html#hana_ml.algorithms.pal.unified_regression.UnifiedRegression.enable_mlflow_autologging" target="_blank" rel="noopener noreferrer">Unified_Regression</A></LI></UL><P>Within the method enable_mlflow_autologging the user has different keywords that can be filled that allows us to influence the behaviour of our MLFlow autologging in HANA ML.</P><UL><LI>schema: Defines the HANA database schema for MLFlow autologging where the MLflow logging table is stored</LI><LI>meta: Defines the name of the model storage table in HANA database</LI><LI>is_exported: Determines if the hana model binaries should be exported to MLflow</LI><LI>registered_model_name: Name of the model stored in MLflow</LI></UL><P>In the following section we provide an overview for the Unified Interface how the logging of MLflow can be used.</P><H1 id="toc-hId-79235997">Run HANA ML Algorithms with MLflow</H1><P>As we have explained and outlined in the sections above, we have created a MLFlow instance and have introduced the syntax that is needed for the logging of HANA ML models in MLflow. In the following sections we will provide based on an example how the logging of HANA ML models on MLflow is done.</P><H2 id="toc-hId-11805211">Model training of HANA ML with MLFlow</H2><P>For the training of HANA ML in combination with MLflow, we focus in this blog post on the Unified Method. We apply for the respective elements a Classification on the sample bank dataset which can be found under the&nbsp;<A href="https://github.com/SAP-samples/hana-ml-samples/blob/main/Python-API/pal/datasets/bank-additional-full-with-header.csv" target="_blank" rel="noopener nofollow noreferrer">HANA ML sample dataset folder on GitHub</A>.</P><P>The dataset can either be uploaded directly to the SAP HANA database or you could also use SAP Datasphere as your starting point. Generally, to use HANA ML directly you would need to store the dataset in a HANA database. However, HANA ML also provides methods to integrate third party files/ data structures. This involves Pandas, Spark as also shapefiles. In addition also HANA Data Lake file tables can be integrated with HANA ML functionalities. An overview of the different methods can be found under the&nbsp;<A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/hana_ml.dataframe.html" target="_blank" rel="noopener noreferrer">following page</A>. In the following paragraphs, we will go through the sample code that we have created to combine HANA ML and MLFlow.</P><H2 id="toc-hId--184708294">Connect to HANA database (Deployed under SAP Datasphere)</H2><P>To be able to connect to the HANA database instance, we first need to build up a connection to the HANA database. In our example, we load the data from the data samples provided by HANA ML. During the time of this blog post, the OpenSQL schema of Datasphere only supports Basic Authentication. Therefore, in this blog post we only elaborate how the connection is done over basic authentication. SAP HANA standalone supports however non-basic authentication, which are also supported in the HANA ML package to connect certificate based to the SAP HANA instance.</P><P>To establish the connection to the HANA database, we make use of the implemented HANA ML dataframe class and call the method ConnectionContext. We store the instance of the connection in the variable&nbsp;<STRONG>conn</STRONG>. To now be able to establish the connection to the HANA database view or table, we will need to specify over the method table the connection. The beautiful aspect is that overall, the dataset is not going to be loaded to the Python runtime, but will only be represented with a proxy to the actual table in the HANA database. All transformations, if done over the methods of HANA ML, are then pushed down to the database itself and executed there if the training is executed. In our case, we load the sample dataset into our database by making use of the provided methods of the HANA ML package.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>""" This script provides a short example how HANA ML and MLFlow can be integrated together. The credentials to the database are following the currently supported authentification (Basic) of the SAP Datasphere OpenSQL schema. Overall, HANA Cloud standalone is also able to support multiple other authentification methods. We have used an abstraction python file (constants) where we retrieve the securely stored authentification properties. To get more details about the exact method structure needed, please have a look at the documentation: https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/hana_ml.dataframe.html#hana_ml.dataframe.ConnectionContext """ from hana_ml import dataframe from hana_ml.algorithms.pal.unified_classification import UnifiedClassification from hana_ml.algorithms.pal.auto_ml import AutomaticClassification import mlflow from hana_ml.algorithms.pal.auto_ml import Preprocessing from hana_ml.algorithms.pal.partition import train_test_val_split from constants import db_url, db_user, db_password # dataset retrieval conn = dataframe.ConnectionContext(address=db_url, port=443, user=db_user, password=db_password) dataset_data, training_data, _, test_data = DataSets.load_bank_data(connection=conn, schema=schema_name, train_percentage=0.7, valid_percentage=0, test_percentage=0.3, seed=43)</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>After connecting to the database, the user is able to use the preprocessing methods implemented in HANA ML. Generally, the different changes are pushed down to the HANA database and are not executed within the Python runtime. In our use case, we do not need to use the data preprocessing as we directly retrieve a sample dataset which we can directly use for our ML training.</P><P>After finishing the potentially needed transformations, we are now able to implement the tracking of our HANA ML runs with the possibility of MLFlow. Similar to the normal usage of MLFlow, we set up first our tracking uri under which we want to store our HANA ML runs and models. In your case you would need to change the keyword <STRONG>mlflow_tracking_uri</STRONG> with your respective MLflow tracking URL. Furthermore, we then are able to specify the experiment name under which the runs are tracked. If we do not specify a specific experiment, the runs are tracked under the Default experiment.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># set up MLFlow mlflow.set_tracking_uri(mlflow_tracking_uri) mlflow.set_experiment("HANA ML Experiment")</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>In the following chapters, we will provide an outline how the exact training is performed and what components are logged to MLflow.</P><H3 id="toc-hId--252139080">Unified Method</H3><P>For the example we use the implemented Hybrid Gradient Boosting Tree as a classification algorithm for our Classification. In order to perform the classification, we use the Unified Classification in order to be able to run our algorithm. On the defined variable, we then use the implemented enable_mlflow_autologging method. This allows us to directly log the model using implemented auto logging behaviour.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>uc = UnifiedClassification(func="HybridGradientBoostingTree") uc.enable_mlflow_autologging() uc.fit(training_data, key="ID", label="responded")</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>We call the fit method once we have initiated the HANA ML model variable and the associated autologging for MLflow. For the fit method, we have in total two different options. Firstly, the non-partitioned training dataset where we only use the training dataset. If we decide to partition our training dataset, we allow to create a validation dataset for which we can log metrics automatically during training.</P><P>If we do not define for our fit function the partitioning, we will not log metrics within MLFlow. In the following image, you can see how a potential HANA ML tracked run looks like in MLFlow together with the stored HANA ML model in MLflow.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MLflow Initial Model.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107009i7D8C6FCD09145880/image-size/large?v=v2&amp;px=999" role="button" title="MLflow Initial Model.png" alt="MLflow Initial Model.png" /></span></P><P><SPAN>If we decide to partition our dataset, here for instance to partition the dataset along the defined primary key, we are able to directly log evaluation metrics relevant for the Classification we have used. This includes the following metrics: AUC, Recall, Precision, F1 Score, Accuracy, Kappa coefficient and the Mathews Correlation Coefficient (MCC). This would directly allow us to compare multiple runs within our MLFlow project to one another and measure the different performances.</SPAN></P><P><FONT face="inherit"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MLFlow Metric Model.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107015i7FB44324969988A4/image-size/large?v=v2&amp;px=999" role="button" title="MLFlow Metric Model.png" alt="MLFlow Metric Model.png" /></span></FONT></P><P><FONT face="inherit">&nbsp;In addition to the general run, HANA ML also logs the model to MLflow. What is logged to MLflow depends on the parameters set&nbsp;for the method </FONT><STRONG>enable_mlflow_autologging</STRONG><FONT face="inherit">. If for instance everything is set to the default settings, we will see the following yaml file to be logged </FONT>to MLflow.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MLflow model.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107027i73AC9FF7204BAD74/image-size/large?v=v2&amp;px=999" role="button" title="MLflow model.png" alt="MLflow model.png" /></span></P><P>&nbsp;<SPAN>If within the method&nbsp;</SPAN><STRONG>enable_mlflow_autologging </STRONG><FONT face="inherit">the parameter is set to is_exported, the model binaries stored in the model storage on HANA are exported to MLflow. This setting would allow us to </FONT>retrieve<FONT face="inherit">&nbsp;the trained model from MLflow and use it in a different HANA database for prediction purposes. In addition to the yaml file containing the metadata we now can see a created subfolder called models which contains the necessary model </FONT>artefacts<FONT face="inherit">&nbsp;normally stored in the HANA database now in MLflow.</FONT></P><P><FONT face="inherit"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MLflow exported model.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107028i5B476B0754A68F6C/image-size/large?v=v2&amp;px=999" role="button" title="MLflow exported model.png" alt="MLflow exported model.png" /></span></FONT></P><P><FONT face="inherit">After the training is finished, we have </FONT><SPAN>besides the auto logging capabilities of HANA ML for MLflow the possibility to track further artefacts in MLflow. In the following section we will outline a few possibilities that exist with the additional tracking.</SPAN></P><H2 id="toc-hId--577735304">Additional logging possibilities</H2><P>Besides the outlined auto logging capabilities, we can track with MLFlow additional artefacts to the respective run. In the following chapters, we outline selected possibilities to further enrich the auto logging for HANA ML runs tracked in MLFlow.</P><H3 id="toc-hId--645166090">Adding run and experiment description</H3><P><SPAN>The description in the experiment section can be handy once the number of your experiments grows in the repository. In addition, mlflow allows to also add individual description to each run of an experiment. Using the following methods you can set up both:</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from mlflow.tracking import MlflowClient current_experiment=dict(mlflow.get_experiment_by_name("HANA ML Experiment")) experiment_id=current_experiment['experiment_id'] run = mlflow.active_run() MlflowClient().set_experiment_tag(experiment_id,"mlflow.note.content", "This experiment shows the automated methods of HANA machine learning and how to track them with MLFLOW") MlflowClient().set_tag(run.info.run_id, "mlflow.note.content", "This is a run tracked with Unified Classification from HANA Machine Learning")</code></pre><P>&nbsp;</P><P>&nbsp;</P><H3 id="toc-hId--916910964">Logging input datasets</H3><P><SPAN>Sometimes it is important to keep the input dataset also as part of the tracking with MLflow. Since HANA machine learning datasets are located in HANA, they need to be converted to pandas DataFrames to be tracked as shown in the following code:</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># Store training dataset in MLFlow itself pandas_training_dataset = training_data.collect() mlflow_dataset = mlflow.data.from_pandas(pandas_training_dataset, name="Customer data", targets="LABEL") mlflow.log_input(mlflow_dataset, context='training')</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>This results in the change, that the respective state of the training data is logged to the current run. The logged dataset can be found in the associated MLflow run, where the schema of the dataset is provided together with some metadata information about the number of rows and number of elements. In addition, also the provided context is marked in the UI of MLflow.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2024-05-07_16-02-25.png" style="width: 799px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106929iF8F82FDDFDF435A7/image-size/large?v=v2&amp;px=999" role="button" title="2024-05-07_16-02-25.png" alt="2024-05-07_16-02-25.png" /></span></SPAN></P><H3 id="toc-hId--1113424469"><SPAN>Logging a model report</SPAN></H3><P><SPAN>In addition to the logging of the dataset, it might also be important to add a model report to MLFlow. HANA ML generally provides different interactive visualisations for the trained model artefact, which can be stored as an HTML file. After the storing of the model report to your local repository, we can log the input of the model report to our current run. This allows us to interactively explore the model report automatically generated by HANA ML and make it accessible in MLFlow. To log the HANA ML model report, you can use the following code snippet.</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># create additional model report in MLFlow UnifiedReport(uc).display(save_html="UnifiedReport") mlflow.log_artifact("UnifiedReport_unified_classification_model_report.html")</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>After the Model report is stored successfully under the current run, we can see in the artefact&nbsp;tab in MLFlow the interactive model report:</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="artifact_mlflow.gif" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107064i48983C52AA76D768/image-size/large?v=v2&amp;px=999" role="button" title="artifact_mlflow.gif" alt="artifact_mlflow.gif" /></span></SPAN></P><P>&nbsp;<SPAN>The complete script used for this section can be found in the following code snippet:</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from hana_ml import dataframe from hana_ml.algorithms.pal.unified_classification import UnifiedClassification from hana_ml.visualizers.unified_report import UnifiedReport import mlflow from hana_ml.algorithms.pal.utility import DataSets from constants import db_url, db_user, db_password # dataset retrieval conn = dataframe.ConnectionContext(address=db_url, port=443, user=db_user, password=db_password) dataset_data, training_data, _, test_data = DataSets.load_bank_data(connection=conn, schema=schema_name, train_percentage=0.7, valid_percentage=0, test_percentage=0.3, seed=43) # set up MLflow mlflow.set_tracking_uri(tracking_uri) mlflow.set_experiment("HANA ML Experiment") # set up classification uc = UnifiedClassification(func="HybridGradientBoostingTree") uc.enable_mlflow_autologging(is_exported=True) # train model uc.fit(training_data, key="ID", label="LABEL", partition_method="stratified", stratified_column="ID", partition_random_state=43, build_report=True) # create additional model report in MLFlow UnifiedReport(uc).display(save_html="UnifiedReport") mlflow.log_artifact("UnifiedReport_unified_classification_model_report.html") # Store training dataset in MLFlow itself pandas_training_dataset = training_data.collect() mlflow_dataset = mlflow.data.from_pandas(pandas_training_dataset, name="Customer data", targets="LABEL") mlflow.log_input(mlflow_dataset, context='training')</code></pre><P>&nbsp;</P><P>&nbsp;</P><H2 id="toc-hId--1016534967">Apply of trained model</H2><P>After we have finished our training, we are able with HANA ML to retrieve the model from MLFLow and use it for our prediction purposes. For this purpose, we will create a separate Python script where we will provide an overview to retrieve the trained MLflow model.</P><P>Similar to our training script, we first set up our connection to the HANA database and establish the connection to our table. In our case, we simply use the sample dataset provided by HANA ML.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from hana_ml import dataframe from hana_ml.algorithms.pal.unified_classification import UnifiedClassification from hana_ml.visualizers.unified_report import UnifiedReport import mlflow from hana_ml.algorithms.pal.utility import DataSets from constants import db_url, db_user, db_password # dataset retrieval conn = dataframe.ConnectionContext(address=db_url, port=443, user=db_user, password=db_password) dataset_data, training_data, _, test_data = DataSets.load_bank_data(connection=conn, schema=schema_name, train_percentage=0.7, valid_percentage=0, test_percentage=0.3, seed=43)</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Similar to our training script, we need to set the tracking url for MLflow and need to initiate the model storage of HANA. If we have decided to not export the HANA ML model to MLflow, we need to specify the same schema for the model storage where our HANA ML model is stored after the successful run. In case we have exported our model, we are able to specify a different schema. In the following, you can see the necessary script in order to retrieve the logged HANA ML model from MLflow.</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># set up MLFlow and model storage mlflow.set_tracking_uri(tracking_url) model_storage = ModelStorage(connection_context=conn, schema=schema_name)</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>After the model storage has been initiated, we are able to retrieve the stored HANA ML model from MLflow. In order to select the correct model, you need to extract the correct run id associated to the model you would like to apply for your prediction dataset. In our case, this is the test dataset we have received from the sample dataset method. The model_uri needed for the model retrieval is consisting of the following pattern 'runs:/{run id}/model', in which you would need to exchange the run id with your respective run. For the actual retrieval of the model, we use the initiated model storage, in our case called <STRONG>model_storage</STRONG>&nbsp;and call the method <STRONG>load_mlflow_model</STRONG> to load the MLflow model to our HANA database and assign the respective proxy to our variable <STRONG>mymodel</STRONG>. The variable <STRONG>mymodel</STRONG> is then used to call the predict method in order to apply our model to our dataset. In the end we transform our prediction dataset into a Pandas DataFrame to look at the content of the created DataFrame. Normally, we could directly persist the created temporary table with the <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/hana_ml.dataframe.html#hana_ml.dataframe.DataFrame.save" target="_self" rel="noopener noreferrer">save method</A> and therefore make the dataset available for further processing.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code># load logged run from MLflow to HANA ML logged_model = 'runs:/d8a763b7b81940598633605e447cd880/model' mymodel = model_storage.load_mlflow_model(connection_context=conn, model_uri=logged_model) dataset_data_predict = mymodel.predict(data=test_data, key="ID") # collect the predicted dataset to see content in dataframe print(dataset_data_predict.collect())</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>After running the script, you should be able to see the following terminal output, for which we can see the download of the artefact stored in MLflow and the created prediction dataset, which consists in our case of 4 columns: ID (primary key), SCORE (predicted label), CONFIDENCE (prediction confidence for applied row) and REASON_CODE (influence of individual variables to prediction output). </SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Terminal output MLflow HANA model.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107043i774317219AD52360/image-size/large?v=v2&amp;px=999" role="button" title="Terminal output MLflow HANA model.png" alt="Terminal output MLflow HANA model.png" /></span></SPAN></P><P>&nbsp;<SPAN>In case we have exported our model, the output of our terminal look slightly different indicating that we also download the respective model artefacts stored additionally to the yaml file. In the following you see the complete script used for applying the model to a new dataset.</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from hana_ml import dataframe from hana_ml.model_storage import ModelStorage from hana_ml.algorithms.pal.utility import DataSets import mlflow from constants import db_url, db_user, db_password conn = dataframe.ConnectionContext(address=db_url, port=443, user=db_user, password=db_password) # full_set, diabetes_train, diabetes_test, _ = DataSets.load_diabetes_data(conn) dataset_data, training_data, _, test_data = DataSets.load_bank_data(connection=conn, schema=schema_name, train_percentage=0.7, valid_percentage=0, test_percentage=0.3, seed=43) # set up MLFlow and model storage mlflow.set_tracking_uri(tracking_uri) model_storage = ModelStorage(connection_context=conn, schema=schema_name) # load logged run from MLflow to HANA ML logged_model = 'runs:/ed7b8d4734cb42ca90c417f932957b40/model' mymodel = model_storage.load_mlflow_model(connection_context=conn, model_uri=logged_model) dataset_data_predict = mymodel.predict(data=test_data, key="ID") # collect the predicted dataset to see content in dataframe print(dataset_data_predict.collect())</code></pre><P>&nbsp;</P><P>&nbsp;</P><H1 id="toc-hId--919645465"><SPAN>Key take aways</SPAN></H1><P><SPAN>In this blog post we have showcased an end to end example how MLflow can be integrated in your HANA ML workload by providing the possibility to share and compare multiple tracked runs in MLflow. If the data is already stored in HANA, this allows you to directly interact with MLflow while being able to run your Machine Learning algorithms on data stored in the HANA database without the need to transfer your data between multiple systems. This blog covered an essential part of the automated logging capabilities of HANA ML models into MLflow.&nbsp;</SPAN></P><P>We highly appreciate your thoughts, comments and questions under this blog post. In case you want to reach out for general questions around HANA, or specifically HANA ML, don't hesitate to use the <A href="https://community.sap.com/t5/technology-q-a/qa-p/technology-questions" target="_self">Q&amp;A tool</A>&nbsp;with the respective tags that describe your question.</P> 2024-05-08T17:00:00.007000+02:00 https://community.sap.com/t5/sap-codejam-blog-posts/sap-codejam-hana-ml-in-pozna%C5%84-2024-04-recap/ba-p/13696447 SAP CodeJam HANA ML In Poznań 2024-04 Recap 2024-05-09T16:09:45.370000+02:00 Vitaliy-R https://community.sap.com/t5/user/viewprofilepage/user-id/183 <P>This week, we had the Getting Started with Machine Learning using SAP HANA and <a href="https://community.sap.com/t5/c-khhcw49343/Python/pd-p/f220d74d-56e2-487e-8e6c-a8cb3def2378" class="lia-product-mention" data-product="126-1">Python</a>&nbsp;in Poznań, Poland, kindly hosted by All-for-One Poland and organized by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/122064">@JulianG</a>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1715250588532.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108053i68825F50D863896E/image-size/medium?v=v2&amp;px=400" role="button" title="1715250588532.jpeg" alt="1715250588532.jpeg" /></span></P><P>We got participants not only from Poznań, but as well from Polkowice and Warsaw.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1715250588980.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108059i36D5A1C90F714463/image-size/medium?v=v2&amp;px=400" role="button" title="1715250588980.jpeg" alt="1715250588980.jpeg" /></span></P><P>&nbsp;I would like to thank Gabriela, Danka, and Julian for the organization!</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1715250588605.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108062iFEF6B4426803561C/image-size/medium?v=v2&amp;px=400" role="button" title="1715250588605.jpeg" alt="1715250588605.jpeg" /></span></P><P>And, as always, it was great to catch up with local SAP community veterans&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/141029">@DominikTylczyn</a>&nbsp;and&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/739">@GregMalewski</a>&nbsp;during a spontaneous SAP Stammtisch the night before <span class="lia-unicode-emoji" title=":clinking_beer_mugs:">🍻</span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_0226.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108063i81879B0D99F6BBF1/image-size/medium?v=v2&amp;px=400" role="button" title="IMG_0226.jpeg" alt="IMG_0226.jpeg" /></span></P><P>&nbsp;</P><DIV class=""><DIV class=""><DIV class=""><P>If you want to host the SAP CodeJam on this topic, then please check:&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/quot-getting-started-with-machine-learning-using-sap-hana-quot-as-a-new-sap/ba-p/13574098" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/quot-getting-started-with-machine-learning-using-sap-hana-quot-as-a-new-sap/ba-p/13574098</A></P><P>&nbsp;</P></DIV></DIV></DIV> 2024-05-09T16:09:45.370000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/automated-check-for-sap-hana-cloud-availability-with-sap-automation-pilot/ba-p/13665283 Automated check for SAP HANA Cloud availability with SAP Automation Pilot 2024-05-09T19:21:58.623000+02:00 BiserSimeonov https://community.sap.com/t5/user/viewprofilepage/user-id/3334 <H2 id="toc-hId-991689626">Introduction</H2><P><A href="https://www.sap.com/bulgaria/products/technology-platform/hana.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud</A> serves as a component in various applications and systems and therefore it is critical for the business operations of numerous organizations. That’s why keeping tabs on the availability of your HANA Cloud instances is crucial for your success. Yet, manually monitoring them, especially when you have multiple instances, can be a tedious and time-consuming task. Wouldn't it be more optimal to have an automated helper keeping a watchful eye for you, alerting you if an instance stops, or better still, starting your HANA instances when they become unavailable?</P><P>Welcome to <A href="https://help.sap.com/docs/automation-pilot/automation-pilot/what-is-sap-automation-pilot" target="_blank" rel="noopener noreferrer">SAP Automation Pilot</A> and <A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/what-is-sap-alert-notification-service-for-sap-btp?version=Cloud" target="_blank" rel="noopener noreferrer">SAP Alert Notification Service for SAP BTP</A> – two powerful tools from the <A href="https://www.sap.com/products/technology-platform.html" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform</A> (SAP BTP) DevOps portfolio. In this blog post, I’m going to walk you through a step-by-step guide on how you can use these innovative tools to transform the way you monitor your HANA Cloud instances, saving you time, preventing potential disruptions, and ensuring your operations continue to run smoothly.</P><H2 id="toc-hId-795176121">What is SAP Automation Pilot?</H2><P>Among the vast array of available tools, SAP Automation Pilot has emerged as a solid and competitive cloud application within the SAP Business Technology Platform (BTP) DevOps portfolio, revolutionizing the way DevOps team streamline their ops processes. In a nutshell, SAP Automation Pilot offers low-code / no-code automation capabilities that allow these teams to automate sequences of ops steps, use catalogs of automated commands provided by SAP or build custom executions (if needed), and run scripts in a serverless manner. More details about the product can be found at:</P><UL><LI><A href="https://discovery-center.cloud.sap/serviceCatalog/automation-pilot?region=all" target="_blank" rel="noopener nofollow noreferrer">SAP Discovery Center</A>;</LI><LI><A href="https://help.sap.com/docs/automation-pilot/automation-pilot/what-is-sap-automation-pilot" target="_blank" rel="noopener noreferrer">Help documentation</A>;</LI><LI><A href="https://github.com/SAP-samples/automation-pilot-examples" target="_blank" rel="noopener nofollow noreferrer">Public GitHub Automation Pilot sample use cases</A>;</LI></UL><H2 id="toc-hId-598662616">What is SAP Alert Notification service for SAP BTP?</H2><P>SAP Alert Notification Service for SAP BTP facilitates your DevOps journey in SAP BTP by providing an API that allows providers to publish and consumers to receive events, and if needed, trigger predefined actions (including sending instant notifications over email, Microsoft Teams, etc.). Working seamlessly across cloud-native and hybrid solutions, it sends real-time notifications on events that are crucial for business and operational efficiency. It not only collects vital technical information from SAP BTP services but also possesses the ability to handle information from custom scenarios within your own environment. In essence, it offers a tailored alerting solution adapted to your needs. More details about the product can be found at:</P><UL><LI><A href="https://discovery-center.cloud.sap/protected/index.html#/serviceCatalog/alert-notification?region=all" target="_blank" rel="noopener nofollow noreferrer">SAP Discovery Center</A>;</LI><LI><A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/what-is-sap-alert-notification-service-for-sap-btp?version=Cloud" target="_blank" rel="noopener noreferrer">Help documentation</A></LI></UL><H2 id="toc-hId-402149111">How does the HANA Cloud Availability Check work?</H2><P>SAP Alert Notification service for SAP BTP provides an array of built-in events that are ingested from HANA Cloud. (For more information, see <A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/sap-hana-cloud-service-database-events" target="_blank" rel="noopener noreferrer">SAP HANA Cloud Service Database Events</A>.)</P><P>However, these events rely on the availability of the HANA Cloud instance. If this instance suddenly becomes unreachable, it won’t be able to trigger an event and you won’t receive a notification about the problem. For this reason, this use case requires a different approach:</P><P>SAP HANA Cloud provides <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-administration-guide/overview-of-available-metrics?version=2024_1_QRC" target="_blank" rel="noopener noreferrer">a list of metrics</A>, which are exposed through the metrics service REST API and can be used for monitoring and troubleshooting purposes. This metrics service REST API is a generic central service provided by SAP HANA Cloud which can be used by customers to retrieve metrics from each individual SAP HANA Cloud instance through an external secure API from any HTTPS endpoint. Among the many available metrics within this API, the one that SAP Automation Pilot uses to evaluate the availability of your HANA Cloud instance in this scenario is "HDBAccessible". This metric is gathered at 30-second intervals.</P><P>SAP Automation Pilot provides you with a sample command, which calls the HANA Cloud Metrics REST API and gets the data from the “HDBAccessible” metric. If the last 3 pings fail, this means that the HANA Instance is not accessible, and SAP Automation Pilot fires an event to SAP Alert Notification service. If the needed subscription is made in Alert Notification service, the service will send a notification (via email or other delivery channel) to the respective team alerting them that their HANA Cloud instance is unavailable. In the meantime, SAP Automation Pilot will trigger a remediation command, which will start the HANA Cloud instance. The process is visualized in the graphic below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BiserSimeonov_0-1715273779974.png" style="width: 654px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108143i30A786C1F945D3E1/image-dimensions/654x457?v=v2" width="654" height="457" role="button" title="BiserSimeonov_0-1715273779974.png" alt="BiserSimeonov_0-1715273779974.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-205635606">Step-by-Step Guide</H2><H3 id="toc-hId-138204820"><STRONG>Prerequisites:</STRONG></H3><UL><LI>SAP HANA Cloud database provisioned on Cloud Foundry Space level;</LI><LI>SAP BTP Technical User (See <A href="https://community.sap.com/t5/technology-blogs-by-members/managing-technical-users-for-btp-platform-access/ba-p/13521814" target="_blank">Managing technical users for BTP platform access</A>) with HANA Cloud Administrator role;</LI><LI>SAP Automation Pilot (See <A href="https://help.sap.com/docs/automation-pilot/automation-pilot/initial-setup" target="_blank" rel="noopener noreferrer">Initial Setup</A>);</LI><LI>SAP Alert Notification service for SAP BTP enabled in Cloud Foundry (see <A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/initial-setup?version=Cloud" target="_blank" rel="noopener noreferrer">Initial Setup</A>);</LI><LI>Integration between SAP Automation Pilot and SAP Alert Notification service for SAP BTP (See <A href="https://help.sap.com/docs/automation-pilot/automation-pilot/integrate-with-sap-alert-notification-service-for-sap-btp?version=Cloud" target="_blank" rel="noopener noreferrer">Integrate with SAP Alert Notification Service for SAP BTP</A>);</LI></UL><P><STRONG>After you’ve made sure that you meet all the prerequisites, you can proceed with the tutorial.</STRONG></P><H3 id="toc-hId--58308685"><STRONG>Step-By-Step Guide:</STRONG></H3><P>1. Verify that you have provisioned SAP Automation Pilot. You should be able to see it in the “Subscriptions” section in your subaccount:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="alisa_dermen_0-1712737342773.png" style="width: 681px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94480iA171316F5BBAEA50/image-dimensions/681x218?v=v2" width="681" height="218" role="button" title="alisa_dermen_0-1712737342773.png" alt="alisa_dermen_0-1712737342773.png" /></span></P><P style=" padding-left : 60px; ">&nbsp;</P><P style=" padding-left : 30px; ">&nbsp;</P><P style=" padding-left : 30px; ">&nbsp;</P><P style=" padding-left : 30px; ">&nbsp;</P><P style=" padding-left : 30px; ">&nbsp;</P><P><STRONG>NOTE</STRONG><SPAN>: SAP Automation Pilot can interact with resources in any BTP landscapes. All you need is to have at least one instance of SAP Automation Pilot.</SPAN></P><P>2. Verify that you have an Alert Notification service instance. You should be able to see it in “Instances” in your space:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_1-1712737413230.png" style="width: 659px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94482iFA340BB5D75142DD/image-dimensions/659x188?v=v2" width="659" height="188" role="button" title="alisa_dermen_1-1712737413230.png" alt="alisa_dermen_1-1712737413230.png" /></span></P><P>3. You need to create a Service Key for your Alert Notification service instance. This key will be used on a later stage by the SAP Automation Pilot command. To create a Service Key, choose the “Create Service Key” option:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_2-1712739639303.png" style="width: 667px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94497iD9FA4B52C92A2F01/image-dimensions/667x190?v=v2" width="667" height="190" role="button" title="alisa_dermen_2-1712739639303.png" alt="alisa_dermen_2-1712739639303.png" /></span></P><P>4. Enter a name for your service key and choose “Create”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_3-1712739709247.png" style="width: 454px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94498i21690AA7AC255FBF/image-dimensions/454x394?v=v2" width="454" height="394" role="button" title="alisa_dermen_3-1712739709247.png" alt="alisa_dermen_3-1712739709247.png" /></span></P><P>5. Repeat the previous steps (3, 4) to create a Service Key for your HANA Cloud instance. It will be used on a later stage by the SAP Automation Pilot command.</P><P>6. SAP Automation Pilot team has prepared a <A href="https://github.com/SAP-samples/automation-pilot-examples/tree/main?tab=readme-ov-file#sap-automation-pilot-examples" target="_blank" rel="noopener nofollow noreferrer">catalog with various example commands</A>, which can be imported directly into your SAP Automation Pilot instance. Here's how you do it - just copy the sample content catalog available at <A href="https://github.com/SAP-samples/automation-pilot-examples/blob/main/check-hana-cloud-availability/catalog.json" target="_self" rel="nofollow noopener noreferrer">this link here</A>:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_4-1712740179520.png" style="width: 556px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94500i14359E90A0D584C7/image-dimensions/556x259?v=v2" width="556" height="259" role="button" title="alisa_dermen_4-1712740179520.png" alt="alisa_dermen_4-1712740179520.png" /></span></P><P>7. Now you need to import the catalog with example commands in your SAP Automation Pilot instance. From the left-side menu, choose “My Catalogs” and then “Import”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_5-1712740250920.png" style="width: 640px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94502i11625EC138A56FFD/image-dimensions/640x64?v=v2" width="640" height="64" role="button" title="alisa_dermen_5-1712740250920.png" alt="alisa_dermen_5-1712740250920.png" /></span></P><P>Paste the catalog and choose “Import”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_0-1712743640930.png" style="width: 467px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94590i00FA14F3B69D8F03/image-dimensions/467x458?v=v2" width="467" height="458" role="button" title="alisa_dermen_0-1712743640930.png" alt="alisa_dermen_0-1712743640930.png" /></span></P><P>8. You can see the imported catalog “Automation Pilot Examples” in “My Catalogs”. From this catalog, choose “Commands”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_7-1712740384175.png" style="width: 637px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94504iF778674FB9E36B64/image-dimensions/637x226?v=v2" width="637" height="226" role="button" title="alisa_dermen_7-1712740384175.png" alt="alisa_dermen_7-1712740384175.png" /></span></P><P>9. You can see the <EM>CheckHanaCloudAvailabilitySample</EM> command. You can open the command by clicking on it:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_27-1712751631665.png" style="width: 634px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94706i3729BF2C853328B2/image-dimensions/634x157?v=v2" width="634" height="157" role="button" title="alisa_dermen_27-1712751631665.png" alt="alisa_dermen_27-1712751631665.png" /></span></P><P>10. When you open the command, you can explore its components – the Input Keys, the Output Keys, and the Executors:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_12-1712740579467.png" style="width: 612px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94509iF921380125E84293/image-dimensions/612x236?v=v2" width="612" height="236" role="button" title="alisa_dermen_12-1712740579467.png" alt="alisa_dermen_12-1712740579467.png" /></span></P><P>11. Scroll down to “Configuration” and choose the “pingHanaCloud” executor:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_0-1712744145253.png" style="width: 577px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94594i7A552FFCCF6A88A7/image-dimensions/577x274?v=v2" width="577" height="274" role="button" title="alisa_dermen_0-1712744145253.png" alt="alisa_dermen_0-1712744145253.png" /></span></P><P><SPAN><SPAN>12. Go to the “Parameters” section and choose “Edit”:</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_4-1712744578671.png" style="width: 578px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94603i4187B303EA87CE5C/image-dimensions/578x218?v=v2" width="578" height="218" role="button" title="alisa_dermen_4-1712744578671.png" alt="alisa_dermen_4-1712744578671.png" /></span></P><P>You need to provide the URL that Automation Pilot will use to ping your HANA Cloud Instance. Edit the URL with the correct values for your <EM>cluster</EM> (production or pre-production environment) and <EM>data center</EM>.</P><P data-unlink="true">It should be in the following format: <SPAN>https://api.gateway.orchestration<EM>.</EM></SPAN><EM>&lt;cluster&gt;-&lt;datacenter&gt;</EM><SPAN>.hanacloud.ondemand.com/metrics/v1/serviceInstances/$(.execution.input.hanaServiceInstance)/values?names=HDBAccessible . (</SPAN>For more information, see <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-administration-guide/apis-for-metrics#access-to-the-host" target="_blank" rel="noopener noreferrer">Access to the Host</A><SPAN>.)&nbsp;</SPAN></P><P>Please feel free to update the API Gateway URL accordingly based on the correct values for&nbsp;<EM>&lt;cluster&gt;-&lt;datacenter&gt; </EM>&nbsp;in your setup it and click on the “Update” button (see an example underneath):</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_5-1712744637411.png" style="width: 611px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94604i1982C7445DC051D3/image-dimensions/611x275?v=v2" width="611" height="275" role="button" title="alisa_dermen_5-1712744637411.png" alt="alisa_dermen_5-1712744637411.png" /></span></P><P>13. Now you need to define the event that SAP Automation Pilot will ingest into Alert Notification service. To do that, click on the “notifyANS” executor. Then choose “Edit” to edit the properties of your event:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_7-1712744731540.png" style="width: 577px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94606i031B24B2DA6A44A2/image-dimensions/577x298?v=v2" width="577" height="298" role="button" title="alisa_dermen_7-1712744731540.png" alt="alisa_dermen_7-1712744731540.png" /></span></P><P><SPAN>14. You can use these example values for the required event properties of your event:</SPAN></P><UL><LI><EM>body</EM>: The availability check for HANA Cloud with Service Instance ID $(.execution.input.hanaServiceInstance) has failed. Now the Automation Pilot proceeds with an automated START for this HANA Cloud instance.</LI><LI><EM>category</EM>: ALERT</LI><LI><EM>eventType</EM>: FailedHCAvailabilityCheck</LI><LI><EM>resourceName</EM>: hana</LI><LI><EM>resourceType</EM>: database</LI><LI><EM>serviceKey</EM>: $(.execution.input.AnsServiceKey) -&gt; use a dynamic expression to get the AnsServiceKey from the inputs</LI><LI><EM>severity<STRONG>:</STRONG></EM> ERROR</LI><LI><EM>subject<STRONG>:</STRONG></EM> Failed HANA Cloud Availability Check $(nowMillis | toDate("yyyy-MM-dd"))</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_26-1712749695852.png" style="width: 557px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94699i5FBC477DBDE938E0/image-dimensions/557x280?v=v2" width="557" height="280" role="button" title="alisa_dermen_26-1712749695852.png" alt="alisa_dermen_26-1712749695852.png" /></span></P><P>15. After you have done that, trigger the command:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_9-1712745272031.png" style="width: 647px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94612iA976A00662C8E86B/image-dimensions/647x106?v=v2" width="647" height="106" role="button" title="alisa_dermen_9-1712745272031.png" alt="alisa_dermen_9-1712745272031.png" /></span></P><P>16. You need to provide values for the following input keys:</P><UL><LI><EM>AnsServiceKey - </EM>Service Key for your Alert Notification service instance.</LI><LI><EM>BtpTechnicalUserPassword</EM> - Password for the SAP BTP technical user you have created and currently maintain active.</LI><LI><EM>BtpTechnicalUserUsername</EM> - Username for the SAP BTP technical user you have created and currently maintain active.</LI><LI><EM>hanaClientID</EM> - HANA Client ID - available in your HANA Cloud service key file, look for "clientid".</LI><LI><EM>hanaClientSecret</EM> - HANA Client Secret ID - available in your HANA Cloud service key file, look for "clientsecret".</LI><LI><EM>hanaClientTokenURL</EM> - The URL needed to be called in order to generate a token to access your HANA Cloud instance. The URL is built as follows: in the HANA Cloud service key file, in the "uaa" section, look for the specified "url" + add to it<STRONG> /oauth/token?grant_type=client_credentials.</STRONG></LI><LI><EM>hanaCloudRegion</EM> - The region where your SAP BTP sub-account is located at, e.g. "cf-eu10".</LI><LI><EM>hanaCloudResourceGroup</EM> - The name of the CF Space where your HANA Cloud is located at, e.g. "dev", "prod", etc.</LI><LI><EM>hanaCloudResourceName</EM> - The exact name of your HANA Cloud instance, e.g. "hanaDemo", "hanaProd", etc.</LI><LI><EM>hanaCloudSubAccount</EM> - The exact "Org Name" of your SAP BTP subaccount where your HANA Cloud instance is located.</LI><LI><EM>hanaServiceInstance</EM> - The Instance ID of your HANA Cloud instance - it can be found from the provisioned service in BTP Cockpit, look for "Instance ID".<P>You can also look at the prepared outputs (no need to provide values for them but it is important to understand what data is returned as the command's output):</P><UL><LI><EM>checkPing</EM> - The entire response for the metric "HDBAccessible" returned by HANA Cloud Metrics Service REST API.</LI><LI><EM>isHanaCloudAvailable</EM> - Check on whether the HANA Cloud instance is available, where: "true" = HANA Cloud is available; "false" = HANA Cloud is not available.</LI><LI><EM>resultHanaStart</EM> - Check on whether the HANA Cloud instance has been started successfully, where: "true" = HANA Cloud has been started; "false" = HANA Cloud was not started'.</LI></UL></LI></UL><P>17. Provide values for all input keys and then trigger the command:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_10-1712745688830.png" style="width: 623px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94634i11463B693E98DA39/image-dimensions/623x282?v=v2" width="623" height="282" role="button" title="alisa_dermen_10-1712745688830.png" alt="alisa_dermen_10-1712745688830.png" /></span></P><P>There are two possible options for the outcome of the execution:</P><P><STRONG>Option 1:</STRONG> Your HANA Cloud instance is accessible and the command for starting HANA Cloud has not been triggered. You should be able to see the following execution details:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_11-1712745767922.png" style="width: 670px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94635iD08F9F568F88BFBA/image-dimensions/670x238?v=v2" width="670" height="238" role="button" title="alisa_dermen_11-1712745767922.png" alt="alisa_dermen_11-1712745767922.png" /></span></P><P>If you click on “Output Values”, you can see the output values for <EM>checkPing</EM>, <EM>isHanaCloudAvailable</EM>, and <EM>resultHanaStart</EM>:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_0-1712746296582.png" style="width: 630px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94638iFE57F3761889745D/image-dimensions/630x359?v=v2" width="630" height="359" role="button" title="alisa_dermen_0-1712746296582.png" alt="alisa_dermen_0-1712746296582.png" /></span></P><P>You can verify in SAP Hana Cloud Central that your HANA Cloud instance is up and running:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_1-1712746333557.png" style="width: 641px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94639iF279BDD6293E0DA5/image-dimensions/641x165?v=v2" width="641" height="165" role="button" title="alisa_dermen_1-1712746333557.png" alt="alisa_dermen_1-1712746333557.png" /></span></P><P><STRONG>Option 2:</STRONG> Your HANA Cloud instance is not accessible and the command for starting the HANA Cloud has been triggered:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_2-1712746380564.png" style="width: 683px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94640i9F3F4B0F157D350F/image-dimensions/683x224?v=v2" width="683" height="224" role="button" title="alisa_dermen_2-1712746380564.png" alt="alisa_dermen_2-1712746380564.png" /></span></P><P>You can verify in SAP Hana Cloud Central that your HANA Cloud instance is starting:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_3-1712746484801.png" style="width: 672px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94641i40AA21BC3CC28122/image-dimensions/672x215?v=v2" width="672" height="215" role="button" title="alisa_dermen_3-1712746484801.png" alt="alisa_dermen_3-1712746484801.png" /></span></P><P>If you click on “Output Values”, you can see the output values for <EM>checkPing</EM>, <EM>isHanaCloudAvailable</EM>, and <EM>resultHanaStart</EM>:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_4-1712746550677.png" style="width: 640px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94642iC9F17704868B6BDA/image-dimensions/640x371?v=v2" width="640" height="371" role="button" title="alisa_dermen_4-1712746550677.png" alt="alisa_dermen_4-1712746550677.png" /></span></P><P>You have successfully performed the HANA Cloud Availability Check via SAP Automation Pilot. Now you can make a subscription in Alert Notification service, so that you can receive a notification when SAP Automation Pilot detects that your HANA Cloud instance is not accessible. If you want to do that, continue with the following steps:</P><P>18.&nbsp; Navigate to your Alert Notification service instance and open it. Choose the “Subscriptions” tab form the left-side menu and then “Create” to create a new subscription:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_5-1712746758124.png" style="width: 681px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94655iA2013E143C2A29D2/image-dimensions/681x114?v=v2" width="681" height="114" role="button" title="alisa_dermen_5-1712746758124.png" alt="alisa_dermen_5-1712746758124.png" /></span></P><P>19. Enter a name for your subscription and click “Create” to move on to the next step:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_6-1712746809204.png" style="width: 451px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94657iBD157402C53CDFE0/image-dimensions/451x329?v=v2" width="451" height="329" role="button" title="alisa_dermen_6-1712746809204.png" alt="alisa_dermen_6-1712746809204.png" /></span></P><P>20. Next, create a Condition. Give your condition a name. Then define your condition by choosing the event property “eventType”, operand “Is Equal To”, and, in our case, expected value “FailedHCAvailabilityCheck”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_7-1712746855796.png" style="width: 592px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94658i08CCD38254B8508F/image-dimensions/592x178?v=v2" width="592" height="178" role="button" title="alisa_dermen_7-1712746855796.png" alt="alisa_dermen_7-1712746855796.png" /></span></P><P>The expected value for “eventType” is the one you provided in step 14:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_8-1712746919889.png" style="width: 658px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94660i6C36D4A7A90CC2B7/image-dimensions/658x323?v=v2" width="658" height="323" role="button" title="alisa_dermen_8-1712746919889.png" alt="alisa_dermen_8-1712746919889.png" /></span></P><P>21. To finish your subscription in Alert Notification service, select an Action by choosing “Create Action”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_9-1712747020094.png" style="width: 498px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94662iCC6BDB81E618B8F1/image-dimensions/498x181?v=v2" width="498" height="181" role="button" title="alisa_dermen_9-1712747020094.png" alt="alisa_dermen_9-1712747020094.png" /></span></P><P>Select the Action Type of your preference, for example “Email”, and choose “Next”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_10-1712747056607.png" style="width: 471px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94663iB1A098E20F1C6BD8/image-dimensions/471x172?v=v2" width="471" height="172" role="button" title="alisa_dermen_10-1712747056607.png" alt="alisa_dermen_10-1712747056607.png" /></span></P><P>Give your Action a name, and then provide the email address where you want to receive the email notification:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_11-1712747143459.png" style="width: 452px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94664i436ACCA5E06F7517/image-dimensions/452x174?v=v2" width="452" height="174" role="button" title="alisa_dermen_11-1712747143459.png" alt="alisa_dermen_11-1712747143459.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_12-1712747154349.png" style="width: 455px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94665iBBC867F7344F64E2/image-dimensions/455x330?v=v2" width="455" height="330" role="button" title="alisa_dermen_12-1712747154349.png" alt="alisa_dermen_12-1712747154349.png" /></span></P><P><STRONG>NOTE:&nbsp;</STRONG>After you have created some of the actions, they are labeled as&nbsp;<STRONG><SPAN class="">Not Confirmed</SPAN></STRONG>. To enable them, you have to confirm them as described in <A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/managing-actions?state=DRAFT&amp;version=Cloud#confirming-actions" target="_self" rel="noopener noreferrer">Confirming Actions</A>.</P><P><SPAN>22. Choose “Save” to finish making your subscription. You will see a confirmation that your subscription was created:</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_13-1712747200092.png" style="width: 741px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94666iCFC3A03B4521F14D/image-dimensions/741x163?v=v2" width="741" height="163" role="button" title="alisa_dermen_13-1712747200092.png" alt="alisa_dermen_13-1712747200092.png" /></span></P><P>You can find more information about Subscriptions, Conditions, and Actions in <A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/configuration-management-using-sap-btp-cockpit?version=Cloud" target="_blank" rel="noopener noreferrer">Configuration Management Using the SAP BTP Cockpit</A>.</P><P>23. Now you can test your subscription. If you stop your HANA Cloud Instance and trigger the <EM>CheckHanaCloudAvailabilitySample </EM>command again, you will receive an email from Alert Notification service with information that the HANA Cloud Availability Check has failed. You can see an example email below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_16-1712748172547.png" style="width: 509px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94683iBD3D8B1516CF86CE/image-dimensions/509x336?v=v2" width="509" height="336" role="button" title="alisa_dermen_16-1712748172547.png" alt="alisa_dermen_16-1712748172547.png" /></span></P><P><STRONG>24. Alternative: Send notification to a Microsoft Teams channel</STRONG></P><P style=" padding-left : 30px; ">To send a notification to a Microsoft Teams channel of your choice, first you need to add an Incoming Webhook to this channel. To do this, follow these steps:</P><P style=" padding-left : 30px; ">1) In your channel, select “Manage channel” from the “More options” menu:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_17-1712748573587.png" style="width: 538px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94687i37E90C3C9D36CB96/image-dimensions/538x143?v=v2" width="538" height="143" role="button" title="alisa_dermen_17-1712748573587.png" alt="alisa_dermen_17-1712748573587.png" /></span></P><P style=" padding-left : 30px; ">2) Choose “Edit”:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_19-1712748626394.png" style="width: 536px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94689i36D0E76B01D4847C/image-dimensions/536x236?v=v2" width="536" height="236" role="button" title="alisa_dermen_19-1712748626394.png" alt="alisa_dermen_19-1712748626394.png" /></span></P><P style=" padding-left : 30px; ">3) Add the Incoming Webhook:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_20-1712748736089.png" style="width: 544px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94691i6DDA5B15F0051CEE/image-dimensions/544x401?v=v2" width="544" height="401" role="button" title="alisa_dermen_20-1712748736089.png" alt="alisa_dermen_20-1712748736089.png" /></span></P><P style=" padding-left : 30px; ">4) Provide a name for the incoming webhook and click “Create”:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_21-1712748823184.png" style="width: 476px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94692i4DDBBA205E3B5724/image-dimensions/476x486?v=v2" width="476" height="486" role="button" title="alisa_dermen_21-1712748823184.png" alt="alisa_dermen_21-1712748823184.png" /></span></P><P style=" padding-left : 30px; ">5) You will be provided with a unique webhook URL. Copy it, as you will need to use it when creating an Action in Alert Notification service. Click “Done” and the webhook will be added to your MS Teams channel.</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_22-1712748875896.png" style="width: 476px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94693iA8DBADF6AE11E20E/image-dimensions/476x212?v=v2" width="476" height="212" role="button" title="alisa_dermen_22-1712748875896.png" alt="alisa_dermen_22-1712748875896.png" /></span></P><P style=" padding-left : 30px; ">6) When creating an Action in Alert Notification service, choose the Microsoft Teams Action Type:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_23-1712748940422.png" style="width: 515px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94694iE341CC04C1333449/image-dimensions/515x297?v=v2" width="515" height="297" role="button" title="alisa_dermen_23-1712748940422.png" alt="alisa_dermen_23-1712748940422.png" /></span></P><P style=" padding-left : 30px; ">7) Give your Action a name and paste the webhook URL in the URL field. Then choose “Create”:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_24-1712748987904.png" style="width: 502px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94695iDD3208082C112AAC/image-dimensions/502x324?v=v2" width="502" height="324" role="button" title="alisa_dermen_24-1712748987904.png" alt="alisa_dermen_24-1712748987904.png" /></span></P><P>With this configuration, if the HАНА Cloud Availability Check fails, you will receive a notification in the MS Teams channel of your choice. Here’s an example MS Teams notification:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alisa_dermen_25-1712749020531.png" style="width: 469px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/94696i85D526C882E9FE2D/image-dimensions/469x479?v=v2" width="469" height="479" role="button" title="alisa_dermen_25-1712749020531.png" alt="alisa_dermen_25-1712749020531.png" /></span></P><P>And there we have it! You’ve successfully automated the monitoring of your HANA Cloud instances!</P><H3 id="toc-hId--254822190">Further reading&nbsp;</H3><P>As a further reading and extra reference materials you can also consult these resources:&nbsp;</P><UL><LI><A href="https://developers.sap.com/group.hana-cloud-alerts-metrics.html" target="_self" rel="noopener noreferrer">[group of tutorials]&nbsp;Explore SAP HANA Cloud Alerts and Metrics</A></LI><LI><A href="https://developers.sap.com/tutorials/hana-cloud-automation-pilot.html" target="_self" rel="noopener noreferrer">[tutorial] Step 3: Execute commands for instances provisioned to the subaccount, Substep 4:&nbsp;Open the command CheckMetric</A></LI></UL><P>Credits to:&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/170036">@Dan_vL</a>&nbsp;for the valuable content and also for his insights and pointing to it! Moreover, credits to <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1435887">@alisa_dermen</a>&nbsp;for her contribution to this blog-post. Thank you both!&nbsp;</P><H2 id="toc-hId--580418414">Wrap-up</H2><P>In this blog, you've learned to utilize SAP Automation Pilot and SAP Alert Notification service for SAP BTP to effectively monitor the availability of your HANA Cloud instances, and even start the ones that are not accessible. Combining these cutting-edge tools gives you unprecedented control over your operations. So, march ahead, keep disruptions at bay, and embrace a smooth and efficient journey with your HANA Cloud instances with the help of SAP Automation Pilot and SAP Alert Notification service for SAP BTP!</P> 2024-05-09T19:21:58.623000+02:00