https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-HANA-Cloud-blog-posts.xmlSAP Community - SAP HANA Cloud2024-09-01T02:01:29.264788+00:00python-feedgenSAP HANA Cloud blog posts in SAP Communityhttps://community.sap.com/t5/sap-for-oil-gas-and-energy-blogs/innovating-towards-a-sustainable-future-insights-from-rolf-adam/ba-p/13736902Innovating Towards a Sustainable Future: Insights from Rolf Adam2024-06-20T14:49:27.847000+02:00Wolfram_Wegehttps://community.sap.com/t5/user/viewprofilepage/user-id/877855<P><STRONG>Staying Grounded in SAP Excellence</STRONG></P><P>Reflecting on the industry's deep-rooted reliance on SAP, Rolf Adam underscores the steadfast <STRONG>commitment of major oil and gas companies to SAP solutions</STRONG>. With a legacy of nearly four decades, SAP remains the <STRONG>backbone for optimizing operations</STRONG> and navigating the industry's intricate processes efficiently. As the sector transitions towards renewable energy sources like <STRONG>Sustainable Aviation Fuel</STRONG> (SAF), SAP's "<STRONG>Clean Core</STRONG>" strategy and future-forward solutions, such as S/4HANA, offer a pathway for driving sustainable innovation and operational resilience.</P><P><STRONG>Partnering for Success: A Collaborative Approach</STRONG></P><P>Implico's alignment with SAP's product roadmap and commitment to technological innovation exemplify the successful partnership dynamics crucial for supporting industry needs. By leveraging SAP's market-leading solutions like SAP <STRONG>SDM and RFNO</STRONG>, Implico sets industry benchmarks in downstream business operations, equipping customers with cutting-edge tools and insights for enhanced performance.</P><P><STRONG>Embracing Cloud Technologies: A Strategic Imperative</STRONG></P><P>Amidst the industry's evolving landscape, the discussion around <STRONG>cloud adoption</STRONG> and licenses surfaces as a critical consideration. As industry dynamics necessitate the adoption of cloud-based solutions, Implico's strategic approach to cloud integration underscores a commitment to <STRONG>agile and scalable business models</STRONG>, paving the way for streamlined processes and <STRONG>enhanced customer experiences</STRONG>.</P><P><STRONG>Bridging Innovation with Business Value: The Role of SAP BTP</STRONG></P><P>SAP's Business Technology Platform (BTP) emerges as a catalyst for future-proofing solutions and unlocking new realms of innovation. Positioned as a playground for customization and add-ons, BTP empowers companies like Implico to extend their offerings and deliver tailor-made solutions that align with industry demands. By embracing <STRONG>AI technologies</STRONG> and leveraging the scalability of BTP, Implico charts a course towards <STRONG>continuous innovation and customer-centric excellence</STRONG>.</P><P><STRONG>Charting the Future Course: A Confluence of Expertise and Vision</STRONG></P><P>As the industry strides towards a future marked by sustainability, digitalization, and transformative growth, the insights shared by Rolf Adam offer a compelling narrative on SAP's pivotal role in shaping the oil, gas, and energy landscape. By staying rooted in industry expertise, fostering collaborative partnerships, and embracing cutting-edge technologies like <STRONG>BTP</STRONG>, companies like Implico exemplify a commitment to driving industry-wide progress and innovation.</P><P><STRONG>Conclusion</STRONG></P><P>The interview with Rolf Adam serves as a testament to the industry's resilience, adaptability, and unwavering commitment to excellence amidst transformative industry shifts. As SAP solutions continue to evolve, empowering businesses to embrace sustainability, digitalization, and efficiency, the oil, gas, and energy sector stands poised at the cusp of a new era of innovation, growth, and sustainable progress.</P><P> </P><P>Find the full interview here: <A href="https://www.implico.com/news_posts/e3-magazin/" target="_blank" rel="nofollow noopener noreferrer">https://www.implico.com/news_posts/e3-magazin/</A></P><P> </P><P class=""><STRONG><A href="https://www.implico.com/c/sap-sdm-sap-rfno/" target="_self" rel="nofollow noopener noreferrer">SAP S/4HANA SDM:</A><SPAN> </SPAN></STRONG>This tool offers a<SPAN> </SPAN><STRONG>cohesive approach</STRONG><SPAN> </SPAN>to the trade and transport of<STRONG><SPAN> </SPAN>liquids and half-solids,</STRONG><SPAN> </SPAN>integrating seamlessly with the SAP system to<SPAN> </SPAN><STRONG>streamline processes</STRONG><SPAN> </SPAN>from<SPAN> </SPAN><STRONG>demand forecasting</STRONG><SPAN> </SPAN>to invoicing, thereby facilitating smoother operations in<SPAN> </SPAN><STRONG>hydrocarbon product trading</STRONG>.</P><P class=""><STRONG><A href="https://www.implico.com/c/sap-sdm-sap-rfno/" target="_blank" rel="nofollow noopener noreferrer">SAP S/4HANA RFNO</A>:</STRONG><SPAN> </SPAN>A dedicated solution for<SPAN> </SPAN><STRONG>managing service station networks</STRONG>, it caters to various service station types, offering functionalities like wet<SPAN> </SPAN><STRONG>goods management</STRONG><SPAN> </SPAN>and<SPAN> </SPAN><STRONG>loyalty card management</STRONG>, aiming to enhance the fuel retail experience.</P><DIV class=""><DIV class=""><DIV class=""><P class=""><STRONG><A href="https://www.implico.com/c/sap-quality-assurance/" target="_self" rel="nofollow noopener noreferrer">Implico’s Quality Assurance Program for SAP solutions:</A></STRONG> <SPAN>Implico wants to ensure the implementation of SAP SDM/RFNO solutions is professional and error-free – not only </SPAN><STRONG>when doing so ourselves</STRONG><SPAN> but also when external companies are contracted to oversee implementation. This is why we also offer </SPAN><STRONG>two partner services</STRONG><SPAN> that are designed to supplement the implementation projects based on a methodological approach and with highly skilled consultants, both of which help to achieve the defined targets: the </SPAN><STRONG>Partner Governance Service</STRONG><SPAN> and the </SPAN><STRONG>Partner Advisor Service.</STRONG></P><DIV class=""> </DIV></DIV></DIV></DIV>2024-06-20T14:49:27.847000+02:00https://community.sap.com/t5/technology-blogs-by-sap/new-machine-learning-features-in-sap-hana-cloud-database-release-2024-q2/ba-p/13733138New Machine Learning features in SAP HANA Cloud database release 2024 Q22024-06-24T09:23:43.449000+02:00ChristophMorgenhttps://community.sap.com/t5/user/viewprofilepage/user-id/14106<P>With the 2024 Q2 database release, several new features have been released in the SAP HANA Cloud <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-c9eeed7?locale=en-US" target="_self" rel="noopener noreferrer">Predictive Analysis Library (PAL)</A>, an enhancement summary is available in the What’s new document for <SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?locale=en-US&Category=Automated%20Predictive%20Library%3BPredictive%20Analysis%20Library&Valid_as_Of=2024-05-31%3A2024-06-30" target="_blank" rel="noopener noreferrer">SAP HANA Cloud database 2024.14 (QRC 2/2024)</A>.</SPAN></P><P>The feature highlights for the current release are described in more detail below</P><H2 id="toc-hId-1017487521"><SPAN>Classification and Regression enhancements</SPAN></H2><P>A new <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/multi-task-multilayer-perceptron?locale=en-US" target="_blank" rel="noopener noreferrer"><STRONG>multi-task multilayer perceptron (MLP) function</STRONG></A> is introduced, enabling <STRONG>multi-label classification</STRONG> or <STRONG>multi-target regression</STRONG> scenarios. Using a multi-task learning neural network, a single ML model allows to predict multiple, related target columns at once, as the model captures both common features across tasks as well as task-specific information with the same prediction model.</P><UL><LI>It leverages the commonalities between related tasks to improve the performance,<BR />generalization, and training efficiency, and moreover enables efficient use of data,<BR />better feature extraction, knowledge transfer, regularization, and end-to-end learning.</LI><LI>Furthermore, the function supports early stopping using validation data to avoid overfitting.</LI><LI>Users of the new multi-task MLP also benefit from shorter MLP training times<BR />and models with improved accuracy.</LI></UL><P>The new function provides unique prediction model capabilities for example scenarios like</P><UL><LI>automated multi-field value proposals or pre-filling of forms<BR />(e.g. Sales Order Automation)</LI><LI>or predicting multiple price-/sales-targets (average, minimum, etc.)<BR />in a single model.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ChristophMorgen_0-1718707839586.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/124859iBFD40BFDC39557E4/image-size/medium?v=v2&px=400" role="button" title="ChristophMorgen_0-1718707839586.png" alt="ChristophMorgen_0-1718707839586.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ChristophMorgen_1-1718707839591.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/124858iAAC4BA802C9E8438/image-size/medium?v=v2&px=400" role="button" title="ChristophMorgen_1-1718707839591.png" alt="ChristophMorgen_1-1718707839591.png" /></span></P><P style=" text-align: center; ">Multi-target predictions using the multi-task MLP function</P><P>For a more detailed introduction to the new algorithm see the following blog post <A href="https://community.sap.com/t5/technology-blogs-by-sap/advancing-to-multi-task-multilayer-perceptron-a-new-neural-network-design/ba-p/13730435" target="_self"><STRONG>Advancing to Multi-task Multilayer Perceptron: a new Neural Network design in HANA Machine Learning .</STRONG></A></P><P> </P><P>In further improve regression models, a new <STRONG><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/outlier-detection-for-regression?locale=en-US" target="_blank" rel="noopener noreferrer">outlier detection for regression function</A></STRONG> is added,</P><UL><LI>providing the ability to detect point outliers in data used when training linear or tree-based regression models using MLR and HGBT regressors.</LI><LI>Outliers in training data get identified based on residual analysis and outlier-score evaluation, then can be excluded for model training and allowing to build improved regression model predictions.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ChristophMorgen_0-1718710832222.png" style="width: 499px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/124878iBDA58B84685A68A9/image-dimensions/499x229?v=v2" width="499" height="229" role="button" title="ChristophMorgen_0-1718710832222.png" alt="ChristophMorgen_0-1718710832222.png" /></span></P><P style=" text-align: center; ">Regression outlier detection</P><H2 id="toc-hId-820974016"><SPAN>Text Processing</SPAN></H2><P><SPAN>A new <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/text-classification-train?locale=en-US" target="_blank" rel="noopener noreferrer">ML model-based text classification</A> function is introduced.<BR />It leverages</SPAN></P><UL><LI><SPAN>Random Decision Tree (RDT) models underneath, </SPAN></LI><LI><SPAN>aids much faster classification results, especially in case of classifying high numbers of new text documents </SPAN></LI><LI><SPAN>as well as providing a significantly improved text classification accuracy. </SPAN></LI></UL><P>A detailed introduction to this new function is provided in the following blog post <A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/inference-acceleration-random-decision-tree-models-for-text-classification/ba-p/13729144" target="_self"><STRONG>Inference Acceleration - Random Decision Tree Models for Text Classification</STRONG></A>. </P><H2 id="toc-hId-624460511"><SPAN>Python ML client (hana-ml) enhancements</SPAN></H2><P><EM>The full list of new methods and enhancements with hana_ml 2.21 is summarized in the </EM><SPAN><A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2024_2_QRC/en-US/change_log.html" target="_blank" rel="noopener noreferrer"><EM>changelog for hana-ml 2.21.240618</EM></A> </SPAN><EM>as part of the documentation. The key enhancements in this release include</EM></P><P><STRONG><SPAN>Dataframe methods</SPAN></STRONG></P><UL><LI><EM>create_dataframe_from_pandas</EM> now fully supports creating and upserting to SAP HANA Cloud tables with columns of type REAL_VECTOR, thus vector embeddings prepared in pandas dataframe can easily be imported in SAP HANA Cloud</LI></UL><P><STRONG><SPAN>AutoML configuration and methods enhancements</SPAN></STRONG></P><UL><LI>Finetuning option of the best pipeline in the AutoML scenario</LI><LI>Pipeline explainability enhanced with SHAPGlobal surrogate, a light-weight model for faster explanation of AutoML and pipeline model prediction results</LI><LI>Visual editor support for the AutoML scenario configuration:</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ChristophMorgen_0-1718711542441.png" style="width: 692px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/124887i2BEBC2C9E8915CE3/image-dimensions/692x306?v=v2" width="692" height="306" role="button" title="ChristophMorgen_0-1718711542441.png" alt="ChristophMorgen_0-1718711542441.png" /></span></P><P> </P><P><STRONG><SPAN>Text processing</SPAN></STRONG></P><UL><LI>New <STRONG>text classification with model</STRONG> function, supporting RDT-based text classification</LI><LI><STRONG>Massive Text Mining</STRONG>, implicit parallel analysis of multiple row vectors</LI></UL><P> </P><P><STRONG><SPAN>Financial analysis methods</SPAN></STRONG></P><UL><LI>New <STRONG>Hull White simulation</STRONG> function, a trending financial math function used in modeling interest rates, vital in modeling of various financial instruments and risk</LI><LI><STRONG>Benford Analysis</STRONG> function, trending algorithm used to detect anomalies in numerical datasets like e.g. financial transactions</LI></UL><P>You can find a Python Jupyter notebook example illustrating the highlighted feature enhancements <SPAN><A href="https://github.com/SAP-samples/hana-ml-samples/blob/main/Python-API/pal/notebooks/24QRC02_2.21.ipynb" target="_blank" rel="noopener nofollow noreferrer">here 24QRC02_2.21.ipynb</A>. </SPAN></P>2024-06-24T09:23:43.449000+02:00https://community.sap.com/t5/sap-codejam-blog-posts/sap-codejam-hana-ml-in-s-hertogenbosch-2024-06-recap/ba-p/13741168SAP CodeJam HANA ML In 's-Hertogenbosch 2024-06 Recap2024-06-24T18:17:00.131000+02:00Vitaliy-Rhttps://community.sap.com/t5/user/viewprofilepage/user-id/183<P><SPAN>In mid-June, we held the Getting Started with Machine Learning using SAP HANA and Python in 's-Hertogenbosch, the Netherlands.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1199 (1).jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128093i39F9AFC66DAB71E9/image-size/large?v=v2&px=999" role="button" title="IMG_1199 (1).jpeg" alt="IMG_1199 (1).jpeg" /></span></SPAN></P><P> <SPAN>It was kindly hosted by <A href="https://www.itrainee.nl/en/about-itrainee/" target="_self" rel="nofollow noopener noreferrer">iTrainee</A> and organized by Mientje and <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/10287">@Jan-WillemK</a> from the Vereniging Nederlandstalige SAP-Gebruikers (<A href="https://vnsg.nl/" target="_self" rel="nofollow noopener noreferrer">VNSG</A>).</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1191s.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128096iA1668991FACF659E/image-size/large?v=v2&px=999" role="button" title="IMG_1191s.png" alt="IMG_1191s.png" /></span></SPAN></P><P>It was a mix of some theory...</P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="20240621_143149s.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128106i9591D23FD276ABD8/image-size/large?v=v2&px=999" role="button" title="20240621_143149s.jpeg" alt="20240621_143149s.jpeg" /></span></SPAN></P><P><SPAN><SPAN>...and hands-on.</SPAN></SPAN></P><P><SPAN><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1194s.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128108i1D803C766B4BB3F8/image-size/large?v=v2&px=999" role="button" title="IMG_1194s.jpeg" alt="IMG_1194s.jpeg" /></span></SPAN></SPAN></P><P>Right after the SAP CodeJam <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/717">@tbroek</a> , <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/14456">@jpenninkhof</a> , <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/130351">@rakeshjain</a> and truly yours recorded another episode of the HANA Café NL podcast: <A href="https://youtu.be/Qm9zEeX6J88?si=XV5FoCvwkDUg6xnX" target="_blank" rel="nofollow noopener noreferrer">https://youtu.be/Qm9zEeX6J88?si=XV5FoCvwkDUg6xnX</A> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1202s.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128121i879161958171F5D6/image-size/large?v=v2&px=999" role="button" title="IMG_1202s.jpeg" alt="IMG_1202s.jpeg" /></span></P><P>I would like to extend special thanks to <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/128826">@OnnoSchoenmaker</a> and <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/10287">@Jan-WillemK</a> for a tour of the city and the introduction to the importance of cheese in Dutch cuisine <span class="lia-unicode-emoji" title=":cheese_wedge:">🧀</span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="20240620_222509.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/128139iF61D5251A3EB566F/image-size/large?v=v2&px=999" role="button" title="20240620_222509.jpg" alt="20240620_222509.jpg" /></span></P><P>Now, the next stop is Berlin on June 28th hosted by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/657399">@rofinke</a> : <A href="https://community.sap.com/t5/sap-codejam/getting-started-with-machine-learning-using-sap-hana-berlin-de/ev-p/13703853" target="_blank">https://community.sap.com/t5/sap-codejam/getting-started-with-machine-learning-using-sap-hana-berlin-de/ev-p/13703853</A></P><P>Would you like to host such an SAP CodeJam? Here are the details: <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>2024-06-24T18:17:00.131000+02:00https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-in-sap-hana-cloud-june-2024/ba-p/13737661What’s New in SAP HANA Cloud – June 20242024-06-24T18:38:47.809000+02:00thomashammerhttps://community.sap.com/t5/user/viewprofilepage/user-id/122781<P>The first half of the year 2024 is almost over, which means we are happy to announce that the second release of SAP HANA Cloud in 2024 is live now!</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="qrc22024.png" style="width: 523px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126383i0B8A9DF8AB4A687A/image-dimensions/523x293?v=v2" width="523" height="293" role="button" title="qrc22024.png" alt="qrc22024.png" /></span></P><P>Before diving deeper into the broad variety of innovations included, let me share that if you want to hear about the innovations from our product experts first-hand, including demos, make sure to watch our What’s New in SAP HANA Cloud webcast, soon to be uploaded on our YouTube <SPAN><A href="https://youtube.com/playlist?list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&si=ZR_iw57tNuzKwOVR" target="_blank" rel="noopener nofollow noreferrer">channel</A></SPAN>, or take a look at <A href="https://youtu.be/n7dGNDNlq70?si=jLni5SBL_zi3IyeY" target="_self" rel="nofollow noopener noreferrer">my top features for the recent release</A> in less than 5 minutes. </P><HR /><H1 id="toc-hId-888528857"><SPAN>Innovations in SAP HANA Cloud, SAP HANA Database</SPAN></H1><H2 id="toc-hId-821098071"><SPAN>Administration and Service Management</SPAN></H2><H3 id="toc-hId-753667285"><SPAN>Support for larger instances</SPAN></H3><P>With the second quarterly release of SAP HANA Cloud in 2024, we are adding support for large SAP HANA database instances with up to 12 TB of memory. This doubles the amount of memory you can allocate to your database instances in SAP HANA Cloud.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_1-1718891840932.png" style="width: 498px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126356i350CDE5EF40B4BB5/image-dimensions/498x367?v=v2" width="498" height="367" role="button" title="thomashammer_1-1718891840932.png" alt="thomashammer_1-1718891840932.png" /></span></P><P>Many customers have large on-prem SAP HANA database instances and are looking to migrate them to the cloud. With the support for larger instances, SAP HANA Cloud can accommodate these large data volumes. Additionally, you gain the flexibility to scale up your existing cloud database instances as your memory requirements increase over time.</P><P>The large instances can be provisioned on demand through the performance class <EM>High Memory</EM> (SAP HANA Cloud offers four performance classes with different core-memory ratios for sizing database instances for different workloads.) <EM>High Memory</EM> is suitable for memory-intensive workloads like the ones we are targeting with these large instances.</P><P>You can provision a large SAP HANA database instance on the main cloud service providers: Amazon Web Services, Microsoft Azure, and Google Cloud Platform. The actual configuration (i.e., the actual amount of memory and processing power) varies depending on the hyperscaler. Initially, large instances are available in selected regions. The available configurations are as follows: </P><P><STRONG><SPAN>Initial regional availability</SPAN></STRONG></P><TABLE width="621px"><TBODY><TR><TD width="72.2188px" height="97px"><P>AWS</P></TD><TD width="176.547px" height="97px"><P>9 TB<SPAN><BR /></SPAN>442 vCPU</P></TD><TD width="166.516px" height="97px"><P>12 TB</P><P>442 vCPU</P></TD><TD width="204.719px" height="97px"><P>EU10</P><P>US10</P></TD></TR><TR><TD width="72.2188px" height="97px"><P>Azure</P></TD><TD width="176.547px" height="97px"><P>7,44 TB</P><P>412 vCPU</P></TD><TD width="166.516px" height="97px"><P>11,15 TB</P><P>412 vCPU</P></TD><TD width="204.719px" height="97px"><P>EU20</P><P>US20</P></TD></TR><TR><TD width="72.2188px" height="97px"><P>GCP</P></TD><TD width="176.547px" height="97px"><P>8,63 TB</P><P>412 vCPU</P></TD><TD width="166.516px" height="97px"><P>11,52</P><P>412 vCPUs</P></TD><TD width="204.719px" height="97px"><P>EU30</P><P>US30</P></TD></TR></TBODY></TABLE><P>Upsizing existing instances to large instances can be done by restarting the instance or without a restart for near-zero downtime. You will be required to apply changes without a restart if the storage size increases beyond a hyperscaler specific boundary, that is currently 16TB on AWS and 64TB on Azure and GCP.</P><H3 id="toc-hId-557153780"><SPAN>Managing database instances in a Cloud Foundry space, from the multi-environment tools</SPAN></H3><P><SPAN>SAP HANA Cloud now enables the management of both Cloud Foundry and "subaccount" database instances using the multi-environment tools. This enhancement includes the ability for developers or administrators to create and delete SAP HANA Cloud instances in a Cloud Foundry space, as well as to facilitate application development from SAP Business Application Studio with runtime objects deployed through the broker of SAP HANA Infrastructure Services to an SAP HANA Cloud instance accessed through a Cloud Foundry space.</SPAN></P><P><SPAN>The management of database instances in a Cloud Foundry space using multi-environment tools simplifies and enhances the user experience by providing a single set of administration tools. This allows users to manage instances of SAP HANA Cloud running in both the “subaccount runtime environment” and Cloud Foundry, offering flexibility in choosing the runtime environment that best fits the user's needs. This support for Cloud Foundry, Kyma, and the “subaccount runtime environment” enhances the versatility and scalability of SAP HANA Cloud, catering to diverse deployment requirements</SPAN></P><H3 id="toc-hId-360640275"><SPAN>Management of multiple variant SQL plans based on different parameter values</SPAN></H3><P><SPAN>The latest QRC introduces the capability to cache different SQL execution plans based on parameter values that cause variant SQL execution plans for HEX. This innovation enables the storage and caching of multiple variant SQL execution plans, optimizing SQL execution performance for various parameter values.</SPAN></P><P><SPAN>This functionality helps to avoid performance loss resulting from skewed data, ensuring that SQL execution remains efficient and effective across different parameter values, ultimately enhancing the overall performance and stability of SQL query execution in SAP HANA.</SPAN></P><H3 id="toc-hId-164126770"><SPAN>Integration of catalog object browsing in the administration tool</SPAN></H3><P><SPAN>SAP HANA Cloud now integrates catalog object browsing into our central database administration tool, introducing a new "database objects" application that displays tables, views, indexes, functions, procedures, and schemas. Additionally, users can access their favorite and recently accessed catalog objects within the tool, streamlining the browsing and management of database objects.</SPAN></P><P><SPAN>This integration enhances productivity by consolidating catalog object functionality into a single administration tool, simplifying the user interface for browsing database objects. By providing a unified environment, this innovation improves the user experience and efficiency in navigating and interacting with the database catalog, ultimately enhancing the user's ability to effectively manage database objects within SAP HANA Cloud.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_3-1718891948774.png" style="width: 617px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126358i480B952DF5D7A196/image-dimensions/617x337?v=v2" width="617" height="337" role="button" title="thomashammer_3-1718891948774.png" alt="thomashammer_3-1718891948774.png" /></span></P><P> </P><H3 id="toc-hId--32386735"><SPAN>Consumption monitor for visualizing unit consumption</SPAN></H3><P><SPAN>Additionally, with the second delivery of SAP HANA Cloud in 2024, we introduce a consumption monitor for visualizing the compute unit consumption of instances. This feature also is a new card in the administration and monitoring tool and displays historical, estimate and actual values for consumption, offering daily and detailed consumption information related to memory, compute, storage, and network data transfer.</SPAN></P><P><SPAN>The consumption monitor harmonizes and simplifies access to consumption-related data, delivering transparent and structured insight into consumption metrics. By providing clear visualization and detailed information on unit consumption, it enables users to predict consumption through simple forecasting, empowering them to make informed decisions and optimize resource utilization within SAP HANA Cloud. This feature offers users better control over resource management and expenditure, ultimately enhancing cost-effectiveness and performance optimization within the database.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_1-1718892409316.png" style="width: 530px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126361iEB2F3F45AA51EB55/image-dimensions/530x328?v=v2" width="530" height="328" role="button" title="thomashammer_1-1718892409316.png" alt="thomashammer_1-1718892409316.png" /></span></P><H2 id="toc-hId--357982959"><SPAN>SAP HANA Cloud Multi-Model Data Processing</SPAN></H2><H2 id="toc-hId--554496464">Multilabel classification and outlier detection in machine learning</H2><P>With the 2024 Q2 database release, several new features have been released in the SAP HANA Cloud Predictive Analysis Library (PAL) , prepared in detail in this blog<EM> [</EM><SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/new-machine-learning-features-in-sap-hana-cloud-database-release-2024-q2/ba-p/13733138" target="_blank">New Machine Learning features in SAP HANA Cloud database release 2024 Q2 - SAP Community</A></SPAN><EM>].</EM></P><P>A new multilayer perceptron neural network function for multi-task prediction scenarios, i.e. multi-label classification or multi-target regressions. With a single neural network model, multiple related target columns can be predicted at once, capturing both the common features across tasks as well as the task-specific information providing unique predictions for scenarios like automated multi-field value proposals or pre-filling of forms like in Sales Order Automation.</P><P>Other improvements include enhanced outlier detection for regression scenarios, improved performance with Random Decision Tree-based text classification and AutoML scenario configuration UI and improved pipeline explainability support with the Python Machine Learning client release 2.21</P><H2 id="toc-hId--751009969"><SPAN>Spatial function to measure the similarity between two shapes</SPAN></H2><P><SPAN>Implementing the new spatial function <EM>ST_HausdorffDistance </EM>in SAP HANA Cloud enables users to compare and analyze spatial relationships between two sets of geographic features, such as points, lines, or polygons. This new feature provides a powerful tool for spatial data analysis, allowing users to gain valuable insights into the similarities and differences between various geographic shapes, including curves, bends, and irregularities.</SPAN></P><P><SPAN>The new spatial function enhances the reliability of working with real-world data, which often contains imperfections. Users can now conduct in-depth analysis and comparison of entire shapes, enabling them to make more accurate and informed decisions based on their spatial data. It also empowers users to gain deeper insights and a more comprehensive understanding of their geographic data, ultimately leading to more effective and impactful decision-making.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_2-1718891875251.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126357i6074A6D055BCBDDE/image-size/medium?v=v2&px=400" role="button" title="thomashammer_2-1718891875251.png" alt="thomashammer_2-1718891875251.png" /></span></P><H2 id="toc-hId--600269117"><SPAN>Database Migration</SPAN></H2><H3 id="toc-hId--1090185629"><SPAN>Extension of SAP Business Application Studio to support design-time object migrations</SPAN></H3><P><SPAN>The extension of SAP Business Application Studio (BAS) to support design-time object migrations provides users with a seamless and automated solution for migrating SAP HANA extended application services to SAP Business Technology Platform (SAP BTP) and SAP Cloud Application Programming Model (CAP). This feature streamlines the migration process by supporting the conversion of design-time artifacts from SAP HANA to SAP HANA Cloud, making it easier for users to ensure compliance with the SAP CAP.</SPAN></P><P><SPAN>The extension of SAP Business Application Studio offers significant benefits to users by automating the conversion of design-time artifacts, reducing the time and effort required for migration, and ensuring compliance with the SAP CAP. This innovation provides a flexible and convenient alternative for migrating SAP HANA extended application services to SAP HANA Cloud without the need for an on-premise license, empowering users to efficiently and effectively manage their migration efforts.</SPAN></P><H3 id="toc-hId--1286699134"><SPAN>Insights into migration duration</SPAN></H3><P><SPAN>Next up, we are now providing insights into the average migration duration for comparable scenarios. This offers users valuable information to better understand and plan their database migration efforts. The feature enables users to gain visibility into the approximate amount of time needed to migrate a similar database, improving transparency and enhancing the predictability of the migration process. It enhances user experience by offering greater predictability and control over the migration process.</SPAN></P><H1 id="toc-hId--896406625"><SPAN>Innovations in SAP HANA Cloud, data lake</SPAN></H1><H2 id="toc-hId--1386323137"><SPAN>Support for the cloud connector for the data lake component</SPAN></H2><P><SPAN>With the latest update, we now offer support for the SAP Cloud Connector for the SAP HANA Cloud, data lake. This new capability enables users to create remote server connections from the<EM> SAP HANA Cloud data lake relational engine</EM> to on-premise databases of SAP HANA using the Cloud Connector. This integration allows for seamless and secure data exchange between on-premise and cloud environments, facilitating efficient data access and analysis across distributed systems.</SPAN></P><P><SPAN>The addition of the cloud connector support for the <EM>SAP HANA Cloud, data lake</EM> enables users to import data directly into the data lake relational engine or execute federated queries against the on-premise data source. This streamlines the data integration process, empowering users to leverage a unified platform for data management and analysis. By bridging on-premise and cloud databases, this innovation enhances the accessibility, flexibility, and usability of data within the SAP HANA Cloud environment, ultimately improving productivity and decision-making</SPAN></P><H1 id="toc-hId--1289433635"><SPAN>Further Innovations & Enhancements</SPAN></H1><H2 id="toc-hId--1779350147"><SPAN>Database Application Development</SPAN></H2><H3 id="toc-hId-2025700637"><SPAN>Ability to self-tune SQL performance with the SQL plan advisor</SPAN></H3><P><SPAN>In this quarter's update, SAP HANA Cloud introduces the ability to self-tune SQL performance with the SQL plan advisor. This feature includes reporting on fluctuating execution times for SQL statements and an automated comparison of execution performance tests to activate self-tuning. Additionally, it enables the system to automatically apply the tuned SQL plans, thereby optimizing the performance of SQL queries within the SAP HANA Cloud environment.</SPAN></P><P><SPAN>The self-tuning capability brings significant benefits to users by allowing them to intuitively identify problematic performance of deviating SQL statements. By leveraging automatic comparison of different plan results and adjustment of future plans, SAP HANA Cloud minimizes the need for manual intervention, saving time and effort in optimizing SQL performance. This innovation ensures that users can consistently achieve optimal query performance, enhancing overall system efficiency and user experience.</SPAN></P><H3 id="toc-hId-1829187132"><SPAN>Adding the capability to create fabric virtual tables in SAP HANA deployment infrastructure</SPAN></H3><P><SPAN>Additionally, the capability to create fabric virtual tables within an SAP HANA deployment infrastructure (HDI) container has been introduced. This enhancement enables users to seamlessly integrate fabric virtual tables into their SAP HANA deployment infrastructure, providing a simplified and efficient method for accessing and utilizing data without the need for schemas. Moreover, it empowers users to leverage performance optimizations on remote tables, enhancing data processing and analysis capabilities.</SPAN></P><P><SPAN>This innovation simplifies the process of utilizing fabric virtual tables without the requirement of using schemas, streamlining the data access and manipulation process. Furthermore, it enables users to harness performance optimizations on remote tables, leading to improved efficiency and speed in data operations. This innovation aims to enhance the overall user experience and increase productivity within the SAP HANA Cloud.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_4-1718892046757.png" style="width: 602px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/126359i307C8659D2F747C9/image-dimensions/602x396?v=v2" width="602" height="396" role="button" title="thomashammer_4-1718892046757.png" alt="thomashammer_4-1718892046757.png" /></span></P><H3 id="toc-hId-1632673627"><SPAN>Graphical editor for hdbgrants and hdbrevokes files in SAP Business Application Studio</SPAN></H3><P><SPAN>The latest update in the SAP Business Application Studio (BAS) introduces a graphical editor for hdbgrants and hdbrevokes files, providing an intuitive and user-friendly interface for managing privileges. This graphical editor offers ease of use in adding necessary privileges using an hdbgrants file by selecting from a list of available options, gathering granting services from the mta.yaml file of the project, cloning privileges from the object owner to the application user, bidirectional modification support with instantaneous changes, as well as error handling and reporting capabilities.</SPAN></P><P><SPAN>The graphical editor for hdbgrants and hdbrevokes files in SAP BAS delivers substantial value to users by providing a UI-based option to add or modify privileges for accessing SAP HANA Deployment Infrastructure services. It significantly reduces the development time by simplifying and streamlining the process of privilege management. Additionally, it facilitates intuitive adoption by developers, enhancing productivity and empowering users to effectively manage privileges within SAP HANA Cloud.</SPAN></P><H2 id="toc-hId-1897746820"><SPAN>Graphical View Modeling</SPAN></H2><P><SPAN>As our loyal readers might expect, we have also provided numerous enhancement and new functionalities to our solution in regard to its graphical view modeling capabilities. You</SPAN><SPAN> can find all details in the comprehensive </SPAN><A title="SAP HANA Cloud Graphical View Modeling QRC2 2024 Updates" href="https://community.sap.com/t5/technology-blogs-by-sap/calculation-view-features-of-2024-qrc2/ba-p/13718187" target="_blank"><SPAN>blog post</SPAN></A><SPAN> by </SPAN><A href="https://people.sap.com/jan.zwickel" target="_blank" rel="noopener noreferrer"><SPAN>Jan Zwickel</SPAN></A><SPAN>.</SPAN><SPAN> </SPAN></P><P> </P><HR /><P><SPAN>Are you looking for more technical details on the latest release of SAP HANA Cloud? Then, take a look at our <A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?locale=en-US&version=hanacloud" target="_self" rel="noopener noreferrer">What’s New Viewer</A> in our </SPAN>Technical Documentation<SPAN>, which describes the entire scope of the release.</SPAN></P><P><SPAN>Finally, make sure to <A href="https://blogs.sap.com/tags/73554900100800002881/" target="_blank" rel="noopener noreferrer">follow the SAP HANA Cloud tag</A> to stay updated on all the latest developments. You can also check out the <A href="https://blogs.sap.com/tag/whatsnewinsaphanacloud/" target="_blank" rel="noopener noreferrer">whatsnewinsaphanacloud</A> tag for new blog posts. If you want to watch the What’s New webinar in Q2 2024, you can find it and all future webinars soon in <A href="https://www.youtube.com/playlist?list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1" target="_blank" rel="noopener nofollow noreferrer">this YouTube playlist</A>. Keep an eye out for our upcoming webcast on new innovations, which will also be available in the same playlist soon. </SPAN></P><P>If you have any questions about SAP HANA Cloud or want to discuss any of the innovations mentioned, feel free to post them in our SAP HANA Cloud Community <SPAN><A href="https://answers.sap.com/questions/ask.html?primaryTagId=73554900100700000996&additionalTagId=67838200100800004076&additionalTagId=01200314690800001945&additionalTagId=73554900100800002881" target="_blank" rel="noopener noreferrer">Q&A</A> or in the comments section.</SPAN></P>2024-06-24T18:38:47.809000+02:00https://community.sap.com/t5/sap-codejam-blog-posts/sap-codejam-hana-ml-in-berlin-2024-06-recap/ba-p/13747995SAP CodeJam HANA ML in Berlin 2024-06 Recap2024-07-01T20:41:58.273000+02:00Vitaliy-Rhttps://community.sap.com/t5/user/viewprofilepage/user-id/183<P>On the last Friday of June, we held the Getting Started with Machine Learning using SAP HANA and Python in Berlin, Germany.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_0692.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130903i9DABFA6F3801BAAA/image-size/large?v=v2&px=999" role="button" title="IMG_0692.jpeg" alt="IMG_0692.jpeg" /></span></P><P>It was kindly hosted by Zalando and organized by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/657399">@rofinke</a> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1435.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130905iFBA54211ABB4EC29/image-size/large?v=v2&px=999" role="button" title="IMG_1435.jpeg" alt="IMG_1435.jpeg" /></span></P><P>It was a mix of some theory...</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_0685.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130906i91E9A0241F645F12/image-size/large?v=v2&px=999" role="button" title="IMG_0685.jpeg" alt="IMG_0685.jpeg" /></span></P><P><SPAN>...and hands-on.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1430.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130907i436E96178EE3DED2/image-size/large?v=v2&px=999" role="button" title="IMG_1430.jpeg" alt="IMG_1430.jpeg" /></span></SPAN></P><P><SPAN>It was great to have the product manager responsible for the SAP HANA embedded Machine Learning <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/14106">@ChristophMorgen</a> with us.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_0693.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130918iD852156836CE3FA6/image-size/large?v=v2&px=999" role="button" title="IMG_0693.jpeg" alt="IMG_0693.jpeg" /></span></SPAN></P><P> </P><P><SPAN>I would like to extend special thanks to <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/18">@oliver</a> for organizing and all participants joining <A href="https://www.meetup.com/sapstammtischberlin/" target="_self" rel="nofollow noopener noreferrer">SAP Stammtisch Berlin</A> for the day before...</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1417.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130914i9064C5791412B282/image-size/large?v=v2&px=999" role="button" title="IMG_1417.jpeg" alt="IMG_1417.jpeg" /></span><BR /></SPAN></P><P><SPAN>...that I used as well to walk and to see the city...</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1402.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130915i75D28AC652010471/image-size/large?v=v2&px=999" role="button" title="IMG_1402.jpeg" alt="IMG_1402.jpeg" /></span></SPAN></P><P><SPAN>...including the former Berlin Wall.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="IMG_1484.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/130916iEB0A9DF01B93FC08/image-size/large?v=v2&px=999" role="button" title="IMG_1484.jpeg" alt="IMG_1484.jpeg" /></span></SPAN></P><P><SPAN>Would you like to host such an SAP CodeJam? Here are the details: <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-usin...</A> </SPAN></P>2024-07-01T20:41:58.273000+02:00https://community.sap.com/t5/technology-blogs-by-sap/a-closer-look-at-the-new-metering-metrics-added-to-metrics-service-from-sap/ba-p/13747090A Closer Look at the New Metering Metrics added to Metrics Service from SAP HANA Cloud 2024 QRC22024-07-05T06:00:43.619000+02:00Haihttps://community.sap.com/t5/user/viewprofilepage/user-id/160136<P class="">In the relentless quest to boost transparency and allow our users to have a better understanding of their SAP HANA Cloud charges, we are delighted to introduce the new metering metrics to our Metrics Service as part of 2024 QRC2. The primary aim of this update is to give a clear and exact account of the usage of resources.</P><P class="">The addition of metering metrics gives you the ability to pinpoint the charges presently being applied to your system. The metering metrics provides a comprehensive insight into resource usage, which is measured in Capacity Units (CU) for various facets such as memory, storage, compute power, backup and network operations.</P><P class="">An array of system components is under the purview of these metrics, which include default nodes, replica nodes, snapshot nodes, and individual features like Cloud Connector. An exclusive feature of these metrics is that they all return 'delta' type measurements. This implies that the values, which are captured at hourly intervals, measure the changes since the metric value was last taped, giving you an up-to-date report about your consumption.</P><H3 id="toc-hId-1147612142">Metering metrics list</H3><P class="">Furthermore, we've ensured the extension of these metrics to both <SPAN>SAP HANA Cloud, SAP HANA database</SPAN> and <SPAN>SAP HANA Cloud, data lake</SPAN>. You can find all the information and details in the official help document <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-administration-guide/metering-metrics" target="_self" rel="noopener noreferrer">here</A>.</P><H3 id="toc-hId-951098637">How to use metrics service tutorial</H3><P class="">To make it convenient for you to consume these metrics via the REST API, we recommend the SAP tutorial "Explore SAP HANA Cloud Alerts and Metrics". You would specifically want to look at the section "<SPAN>Access database metering metrics</SPAN>". Find it <A href="https://developers.sap.com/tutorials/hana-cloud-alerts-rest-api.html" target="_self" rel="noopener noreferrer">here</A>.</P><P class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-07-02_13-53-28.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/131025i22438C588DF9FA4D/image-size/large?v=v2&px=999" role="button" title="2024-07-02_13-53-28.jpg" alt="2024-07-02_13-53-28.jpg" /></span></P><H3 id="toc-hId-754585132">Consumption monitor in HANA Cloud Central</H3><P class="">Alongside metering metrics availability, we are also thrilled to release the consumption monitor application in HANA Cloud Central. This application lets you monitor consumption in a user-friendly interface, offering you a clear view of your system's consumption. Learn more about using the HANA Cloud Central <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/navigating-sap-hana-cloud-central" target="_self" rel="noopener noreferrer">here</A>.</P><P class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-07-05_12-05-51.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/132694i646349EC5AC8A13A/image-size/large?v=v2&px=999" role="button" title="2024-07-05_12-05-51.jpg" alt="2024-07-05_12-05-51.jpg" /></span></P><P class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-07-05_12-06-08.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/132695i4B1B32AE7AD81DD8/image-size/large?v=v2&px=999" role="button" title="2024-07-05_12-06-08.jpg" alt="2024-07-05_12-06-08.jpg" /></span></P><H3 id="toc-hId-558071627">Conclusion</H3><P class="">Armed with these new functionalities, we hope that you'll have a better understanding and grip over your system consumption. We genuinely believe that our constant enhancement will not only lead to more transparency but also help you in making informed strategic decisions. Stay tuned for more updates as we continue to evolve for your needs.</P>2024-07-05T06:00:43.619000+02:00https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-cloud-release-june-2024-round-up/ba-p/13754065SAP HANA Cloud release June 2024 Round-up2024-07-08T10:25:16.225000+02:00andremir23https://community.sap.com/t5/user/viewprofilepage/user-id/135788<P><SPAN>Dear SAP HANA Cloud Enthusiasts,</SPAN><BR /><BR />As we finalize the second quarter of 2024, we are thrilled to present a comprehensive collection of the latest videos, blog posts, and resources from the June 2024 release of SAP HANA Cloud.</P><P> </P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%" height="216px"><A href="https://www.youtube.com/watch?v=n7dGNDNlq70&list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&index=2" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomasvideo.png" style="width: 353px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/133541iA5EF8A8DC81CD6B0/image-dimensions/353x201?v=v2" width="353" height="201" role="button" title="thomasvideo.png" alt="thomasvideo.png" /></span></A></TD><TD width="50%" height="216px"><H4 id="toc-hId-1277528921"><STRONG>What’s New Teaser</STRONG></H4>Dive into SAP HANA Cloud's latest innovations with Lead Product Manager Thomas Hammer! His "What’s New" teaser offers an exciting and concise snapshot of his favorite features from the newest release.<BR /><BR /><A href="https://www.youtube.com/watch?v=n7dGNDNlq70&list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&index=2" target="_blank" rel="nofollow noopener noreferrer">Watch it now on YouTube.</A></TD></TR><TR><TD width="50%" height="317px"><H4 id="toc-hId-1081015416"><STRONG>What’s New blogpost</STRONG></H4>Intrigued by the teaser? Explore our "What’s New in SAP HANA Cloud in June 2024" blog post for an in-depth look and find valuable links for further insights.<BR /><BR /><A href="https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-in-sap-hana-cloud-june-2024/ba-p/13737661" target="_blank">Read it here!</A></TD><TD width="50%" height="317px"><A href="https://community.sap.com/t5/technology-blogs-by-sap/what-s-new-in-sap-hana-cloud-june-2024/ba-p/13737661" target="_blank"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="blogpost.png" style="width: 355px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/133542iC6FEED227C465F36/image-dimensions/355x310?v=v2" width="355" height="310" role="button" title="blogpost.png" alt="blogpost.png" /></span></A></TD></TR><TR><TD width="50%" height="216px"><A href="https://www.youtube.com/watch?v=4xOoCujcedg&list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&index=1" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="susenvideo.png" style="width: 362px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/133544i13D6902BE5097DE1/image-dimensions/362x206?v=v2" width="362" height="206" role="button" title="susenvideo.png" alt="susenvideo.png" /></span></A></TD><TD width="50%" height="216px"><H4 id="toc-hId-884501911">What's New Webinar</H4>Prefer watching over reading? Our 'What’s New' webinar is just for you! Join our Product experts for an in-depth exploration of the latest features. Watch anytime by clicking <A href="https://www.youtube.com/watch?v=4xOoCujcedg&list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1&index=1" target="_blank" rel="noopener nofollow noreferrer">here</A>!</TD></TR></TBODY></TABLE><P> </P><H3 id="toc-hId-558905687"><STRONG>Additional information</STRONG></H3><P><BR /><SPAN>In addition to our regular release updates, make sure to check the following valuable content provided by our team:</SPAN></P><UL><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/new-machine-learning-features-in-sap-hana-cloud-database-release-2024-q2/ba-p/13733138" target="_blank">Learn more about New Machine Learning features in SAP HANA Cloud database release 2024 Q2 </A> by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/14106">@ChristophMorgen</a> </LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/calculation-view-features-of-2024-qrc2/ba-p/13718187" target="_blank">Learn more about Calculation View Features of 2024 QRC2</A> by <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/239612" target="_blank">@jan_zwickel</A> </LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/a-closer-look-at-the-new-metering-metrics-added-to-metrics-service-from-sap/ba-p/13747090" target="_blank">A Closer Look at the New Metering Metrics added to Metrics Service from SAP HANA Cloud 2024 QRC2</A> by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/160136">@Hai</a> </LI><LI>Join our Early Adopter Care program:<UL><LI><A href="https://influence.sap.com/sap/ino/#campaign/3761" target="_blank" rel="noopener noreferrer"><SPAN>SAP HANA Cloud for large instances</SPAN></A></LI><LI><SPAN><A href="https://influence.sap.com/sap/ino/#campaign/3701" target="_blank" rel="noopener noreferrer">MDS Cubes in SAP HANA Cloud</A> </SPAN></LI></UL></LI><LI><SPAN>Join our Customer Engagement Initiative:</SPAN><UL><LI><SPAN><A href="https://influence.sap.com/sap/ino/#campaign/3723" target="_self" rel="noopener noreferrer">SAP HANA Database Migration to SAP HANA Cloud (XSC,XSA,CAP)</A> </SPAN></LI></UL></LI></UL></UL><DIV class=""><HR /><SPAN>Don’t miss out on all the content and remember to </SPAN><A href="https://community.sap.com/topics/hana" target="_blank">follow us in the SAP HANA Community.</A></DIV><P>Remember to check our content following the # whatsnewinsaphanacloud tag:<SPAN> </SPAN><A href="https://community.sap.com/t5/tag/whatsnewinsaphanacloud/tg-p/board-id/technology-blog-sap" target="_blank">here</A><BR /><BR /><SPAN>Don’t forget to subscribe and follow SAP HANA Cloud on </SPAN><A href="https://youtube.com/playlist?list=PLWV533hWWvDm-wgDJUTFE12xgSTfoZ-R1" target="_blank" rel="noopener nofollow noreferrer">YouTube</A><SPAN> to always stay up-to-date regarding the most recent innovations in SAP HANA Cloud.</SPAN><BR /><SPAN> </SPAN><BR /><SPAN>All the best,</SPAN><BR /><BR /><STRONG>Andrea on behalf of the SAP HANA Cloud team</STRONG></P><P><STRONG><A class="" href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud%25252C+SAP+HANA+database/pd-p/ada66f4e-5d7f-4e6d-a599-6b9a78023d84" target="_blank">#SAP HANA Cloud, SAP HANA database</A><SPAN> </SPAN> <SPAN> #</SPAN><A class="" href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud/pd-p/73554900100800002881" target="_blank">SAP HANA Cloud</A><SPAN> </SPAN> </STRONG></P><P><STRONG>#whatsnewinsaphanacloud</STRONG></P>2024-07-08T10:25:16.225000+02:00https://community.sap.com/t5/technology-blogs-by-sap/sap-data-and-analytics-join-our-performance-focused-live-sessions-series/ba-p/13758889SAP Data and Analytics: Join our Performance focused Live Sessions Series2024-07-12T08:47:47.532000+02:00Johannhttps://community.sap.com/t5/user/viewprofilepage/user-id/137238<P><SPAN>Performance optimization is a central task for every developer, data modeler, data engineer or data analyst since in addition to quality, speed is a key requirement for modern reporting. With this in mind, we have created a sophisticated series of expert-guided Live Sessions to address this important challenge. </SPAN><SPAN> </SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-07-12 084327.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/135788i721ABB37C2779887/image-size/large?v=v2&px=999" role="button" title="Screenshot 2024-07-12 084327.png" alt="Screenshot 2024-07-12 084327.png" /></span></SPAN></P><P><SPAN>Boost your skills in SAP Analytics Cloud performance and explore</SPAN><SPAN> key features and optimizations that enhance data analytics efficiency and effectiveness in SAP Analytics Cloud, </SPAN><SPAN>in our </SPAN><SPAN>specialized expert-guided Live Session events, “</SPAN><SPAN>SAP Analytics Cloud Performance overview”</SPAN><SPAN>. </SPAN><A href="https://learning.sap.com/live-sessions/sap-analytics-cloud-performance-overview" target="_blank" rel="noopener noreferrer"><SPAN>Register here</SPAN></A><SPAN>. </SPAN><SPAN> </SPAN><SPAN> </SPAN></P><P><SPAN>Understand the performance implications of story design and scripting in SAP Analytics Cloud, in our expert-guided Live Session events "Understanding the relationship between story design and performance in SAP Analytics Cloud". <A href="https://learning.sap.com/live-sessions/understanding-the-relationship-between-story-design-and-performance-in-sap-analytics-cloud" target="_self" rel="noopener noreferrer">Register here. </A></SPAN></P><P><SPAN>Learn how backend data models in SAP BW/4HANA and SAP Datasphere impact SAP Analytics Cloud performance, in our expert-guided Live Session event "SAP Modeling and SAP Analytics Cloud Story performance options". <A href="https://learning.sap.com/live-sessions/sap-modeling-and-sap-analytics-cloud-story-performance-options" target="_self" rel="noopener noreferrer">Register here.</A> </SPAN></P><P><SPAN>Discover best practices in data modeling in SAP HANA</SPAN><SPAN> to ensure your models run at the highest possible speed and are built for sustainability, </SPAN><SPAN>in our expert-guided Live Session events “Best practices when developing calculation views in SAP HANA”. </SPAN><A href="https://learning.sap.com/live-sessions/best-practices-when-developing-calculation-views-in-sap-hana" target="_blank" rel="noopener noreferrer"><SPAN>Register here</SPAN></A><SPAN>. </SPAN><SPAN> </SPAN><SPAN> </SPAN></P><P><SPAN>Maximize the performance of accessing data in SAP BW/4HANA. Master the techniques for increasing efficiency and speeding up the retrieval of critical data in your organization, in our expert-guided Live Session</SPAN><SPAN> events </SPAN><SPAN>“Performance aspects of Advanced DataStore Objects and CompositeProviders in SAP BW/4HANA.” </SPAN><A href="https://learning.sap.com/live-sessions/performance-aspects-of-advanced-datastore-objects-and-compositeproviders-in-sap-bw-4hana" target="_blank" rel="noopener noreferrer"><SPAN>Register here</SPAN></A><SPAN>. </SPAN><SPAN> </SPAN></P><P><SPAN>Explore advanced SAP Analytics Cloud features like custom filtering or display logic and review the scripting power of SAP Analytics Cloud having best practices for a clean code approach in mind, in our expert-guided Live Session events "SAP Analytics Cloud – intermediate reporting". </SPAN><A href="https://learning.sap.com/live-sessions/sap-analytics-cloud-intermediate-reporting" target="_self" rel="noopener noreferrer"><SPAN>Register here. </SPAN></A></P><P><SPAN>The Live Session events mentioned above are linked to the Learning Hub and can only be attended with a <A href="https://www.sap.com/germany/training-certification/learning-hub.html" target="_self" rel="noopener noreferrer">valid subscription</A>. </SPAN><SPAN> </SPAN></P><P><SPAN>Product Learning CoE Analytics Team </SPAN><SPAN> </SPAN></P>2024-07-12T08:47:47.532000+02:00https://community.sap.com/t5/technology-blogs-by-sap/check-the-availability-of-your-multi-environment-hana-cloud-instances-with/ba-p/13670854Check the Availability of Your Multi-Environment HANA Cloud Instances with SAP Automation Pilot2024-07-26T11:32:29.742000+02:00alisa_dermenhttps://community.sap.com/t5/user/viewprofilepage/user-id/1435887<P><I>In this blog post, I share hands-on insights on how to minimize downtime for your <A href="https://www.sap.com/products/technology-platform/hana.html" target="_self" rel="noopener noreferrer">SAP HANA Cloud</A> database by leveraging <A href="https://help.sap.com/docs/automation-pilot/automation-pilot/what-is-sap-automation-pilot" target="_self" rel="noopener noreferrer">SAP Automation Pilot</A>. By simply going through this step-by-step guide, you will learn how easy it is to set up SAP Automation Pilot to to perform automated availability checks effortlessly, so that you minimize disruptions, keep your business running smoothly and maximize performance!</I></P><H2 id="toc-hId-992469866">Introduction</H2><P>Undoubtedly, ensuring that your HANA Cloud instances are always up and running can be crucial for the success of your business operations. In Biser Simeonov's last blog post co-authored by me, “<A href="https://community.sap.com/t5/technology-blogs-by-sap/automated-check-for-sap-hana-cloud-availability-with-sap-automation-pilot/ba-p/13665283" target="_self">Automated Availability Check for SAP HANA Cloud (on CF level) with SAP Automation Pilot</A>”, we showed you how to automate the monitoring of your HANA Cloud instances enabled in a Cloud Foundry space by using <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. You learned how to utilize these tools to check the availability of your instances, and even start the ones that are not accessible. So far so good!</P><P>However, with the 2022 QRC3 release in October 2022, SAP HANA Cloud went "multi-environment". As a result, now you can have HANA Cloud instances in subaccounts that don’t have the Cloud Foundry environment enabled. For more information, see:</P><UL><LI><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/subscribing-to-sap-hana-cloud-administration-tools" target="_blank" rel="noopener noreferrer">Subscribing to the SAP HANA Cloud Administration Tools (Multi-Environment)</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-cloud-goes-quot-multi-environment-quot-part-1-feature-overview/ba-p/13542412" target="_blank">SAP HANA Cloud goes "multi-environment": Part 1- feature overview</A></LI></UL><P>In the following guide, I will show you how to perform the same HANA Cloud Availability Check for HANA Cloud instances enabled in “Other Environments” (multi-environment setup).</P><H2 id="toc-hId-795956361">How does the HANA Cloud Availability Check work?</H2><P>The process is visualized in the graphic below. I advise you to check out <A href="https://community.sap.com/t5/technology-blogs-by-sap/automated-check-for-sap-hana-cloud-availability-with-sap-automation-pilot/ba-p/13665283" target="_self">the previous blog post</A> for a more detailed explanation.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BiserSimeonov_0-1715273779974.png" style="width: 663px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109340iACFF7ECF8252AE8A/image-dimensions/663x463?v=v2" width="663" height="463" role="button" title="BiserSimeonov_0-1715273779974.png" alt="BiserSimeonov_0-1715273779974.png" /></span></P><H2 id="toc-hId-599442856">Step-by-Step Guide</H2><H3 id="toc-hId-532012070"><STRONG>Prerequisites</STRONG></H3><UL><LI>SAP HANA Cloud database provisioned on subaccount level (multi-environment);</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><LI>SAP Service Manager instance with plan “subaccount-admin” provisioned on space level or on subaccount level;</LI></UL><P><STRONG>After you’ve made sure that you meet all the prerequisites, you can proceed with the steps below.</STRONG></P><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-inline" image-alt="Screenshot 2024-04-03 093105.png" style="width: 637px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109341i4DC5544AB6A706F0/image-dimensions/637x204?v=v2" width="637" height="204" role="button" title="Screenshot 2024-04-03 093105.png" alt="Screenshot 2024-04-03 093105.png" /></span></P><P><STRONG>NOTE</STRONG>: 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.</P><P>2. Verify that you have Alert Notification and Service Manager instances, and that your HANA Cloud instance is enabled in “Other Environments”.</P><P>Your Service Manager instance can be provisioned either in your subaccount, or in your space. The only difference this will make is whether you will have to create a “Service Binding” or a “Service Key” later.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="instances.png" style="width: 625px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109342i52346DE3774B99F6/image-dimensions/625x220?v=v2" width="625" height="220" role="button" title="instances.png" alt="instances.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="Screenshot 2024-04-03 095812.png" style="width: 643px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109345i0312DC30D8B85CB4/image-dimensions/643x182?v=v2" width="643" height="182" role="button" title="Screenshot 2024-04-03 095812.png" alt="Screenshot 2024-04-03 095812.png" /></span></P><P>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="Screenshot 2024-04-03 105546.png" style="width: 481px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109346i3E85F97A287295DF/image-dimensions/481x418?v=v2" width="481" height="418" role="button" title="Screenshot 2024-04-03 105546.png" alt="Screenshot 2024-04-03 105546.png" /></span></P><P>4. Next, you need to create a “Service Binding” for your HANA Cloud instance, which will be used by the SAP Automation Pilot command. To do that, choose the “Create Service Binding” option:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="create-hana-binding.png" style="width: 642px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109347i63A52DF924CBFDDF/image-dimensions/642x254?v=v2" width="642" height="254" role="button" title="create-hana-binding.png" alt="create-hana-binding.png" /></span></P><P>Enter a name for your service binding and choose “Create”:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-11 135332.png" style="width: 474px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109348iB0AD1755DCBF52FD/image-dimensions/474x453?v=v2" width="474" height="453" role="button" title="Screenshot 2024-04-11 135332.png" alt="Screenshot 2024-04-11 135332.png" /></span></P><P>5. Depending on the scope of your Service Manager instance, you need to create:</P><UL><LI>a “Service Key” if your instance is on space level.</LI><LI>a “Service Binding” if your instance is on subaccount level.</LI></UL><P>6. The SAP Automation Pilot team has prepared a <A href="https://github.com/SAP-samples/automation-pilot-examples/blob/main/check-hana-cloud-availability/catalog.json" target="_blank" rel="noopener nofollow noreferrer">catalog with example commands</A>, which can be imported directly into your SAP Automation Pilot instance.</P><P>Copy the contents of the catalog:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="catalog.png" style="width: 614px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109349i1EE20A20897919D4/image-dimensions/614x286?v=v2" width="614" height="286" role="button" title="catalog.png" alt="catalog.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="Screenshot 2024-04-02 180015.png" style="width: 653px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109350i5274690DEB166928/image-dimensions/653x65?v=v2" width="653" height="65" role="button" title="Screenshot 2024-04-02 180015.png" alt="Screenshot 2024-04-02 180015.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="Screenshot 2024-04-02 180419.png" style="width: 526px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109351i6AE74AF703D70AC8/image-dimensions/526x515?v=v2" width="526" height="515" role="button" title="Screenshot 2024-04-02 180419.png" alt="Screenshot 2024-04-02 180419.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="Screenshot 2024-04-03 111415.png" style="width: 628px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109352i7F112B25C748FFDF/image-dimensions/628x222?v=v2" width="628" height="222" role="button" title="Screenshot 2024-04-03 111415.png" alt="Screenshot 2024-04-03 111415.png" /></span></P><P>9. From the catalog, open the “<EM>CheckHanaCloudMultiEnvAvailabilitySample” </EM>command by clicking on it. Explore the Input Keys, the Output Keys, and the Executors of the command:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="multi-opened.png" style="width: 580px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109373iBBE4414358F8BDCE/image-dimensions/580x279?v=v2" width="580" height="279" role="button" title="multi-opened.png" alt="multi-opened.png" /></span></P><P>10. Scroll down to “Configuration” and choose the “notifyANS” executor. You need to define the event that SAP Automation Pilot will ingest into Alert Notification service. Choose “Edit” to edit the properties of your event:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-15 154232.png" style="width: 590px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109378i064BCD56D4AAE788/image-dimensions/590x218?v=v2" width="590" height="218" role="button" title="Screenshot 2024-04-15 154232.png" alt="Screenshot 2024-04-15 154232.png" /></span></P><P>You can use these example values for the required event properties of your event:</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) -> 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="Screenshot 2024-04-08 101847.png" style="width: 631px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109379i276554DE72763338/image-dimensions/631x317?v=v2" width="631" height="317" role="button" title="Screenshot 2024-04-08 101847.png" alt="Screenshot 2024-04-08 101847.png" /></span></P><P>11. After you have done that, trigger the command:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-11 141414.png" style="width: 628px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109441i3C54844C1D59018C/image-dimensions/628x90?v=v2" width="628" height="90" role="button" title="Screenshot 2024-04-11 141414.png" alt="Screenshot 2024-04-11 141414.png" /></span></P><P>12. 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>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 binding file, in the "uaa" section, look for the specified "url" + add to it /oauth/token?grant_type=client_credentials.</LI><LI><EM>hanaCloudBindingKey </EM>- Service Binding for your Hana Cloud instance</LI><LI><EM>hanaCloudResourceName</EM> - The exact name of your HANA Cloud instance, e.g. "hanaDemo", "hanaProd", etc.</LI><LI><EM>hanaCluster</EM> - <SPAN>Needed to access the HANA Cloud API gateway, where 'cluster' typically identifies either a production, pre-production or trial environment.</SPAN></LI><LI><SPAN><EM>hanaDatacenter</EM> - Needed to access the HANA Cloud API gateway, where 'datacenter' is the data center where your HANA Cloud is deployed, i.e. eu10, us10, etc.</SPAN></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".</LI><LI><EM>ServiceManagerKey </EM>- Service Key or Service Binding for your Service Manager instance used to perform management tasks against multiple instances in your BTP subaccount.</LI></UL><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><P>13. 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="Screenshot 2024-04-11 142252.png" style="width: 644px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109444iA64F53335CE981C4/image-dimensions/644x292?v=v2" width="644" height="292" role="button" title="Screenshot 2024-04-11 142252.png" alt="Screenshot 2024-04-11 142252.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="Screenshot 2024-04-11 142609.png" style="width: 626px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109446i7E3FDB9B48E34976/image-dimensions/626x298?v=v2" width="626" height="298" role="button" title="Screenshot 2024-04-11 142609.png" alt="Screenshot 2024-04-11 142609.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="option1values.png" style="width: 605px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109448i181A7C0EEE5743D3/image-dimensions/605x345?v=v2" width="605" height="345" role="button" title="option1values.png" alt="option1values.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="Screenshot 2024-04-11 150458.png" style="width: 625px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109453i309DE148D51D671C/image-dimensions/625x228?v=v2" width="625" height="228" role="button" title="Screenshot 2024-04-11 150458.png" alt="Screenshot 2024-04-11 150458.png" /></span></P><P><STRONG>Option 2:</STRONG> Your HANA Cloud instance is not accessible and the command for starting HANA Cloud has been triggered:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-11 154128.png" style="width: 622px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109454i2D86C182020F098D/image-dimensions/622x258?v=v2" width="622" height="258" role="button" title="Screenshot 2024-04-11 154128.png" alt="Screenshot 2024-04-11 154128.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="Screenshot 2024-04-11 152402.png" style="width: 623px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109455i6C0DDED178733468/image-dimensions/623x120?v=v2" width="623" height="120" role="button" title="Screenshot 2024-04-11 152402.png" alt="Screenshot 2024-04-11 152402.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="option2values.png" style="width: 607px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109456i9D5E958D9F3B1E66/image-dimensions/607x352?v=v2" width="607" height="352" role="button" title="option2values.png" alt="option2values.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 multi-environment HANA Cloud instance is not accessible. If you want to do that, continue with the following steps:</P><P>14. 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="ans-create.png" style="width: 669px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109457i3A9E0C965FF04D68/image-dimensions/669x112?v=v2" width="669" height="112" role="button" title="ans-create.png" alt="ans-create.png" /></span></P><P>15. 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="Screenshot 2024-04-03 130140.png" style="width: 518px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109460i91E9A355BE571C56/image-dimensions/518x377?v=v2" width="518" height="377" role="button" title="Screenshot 2024-04-03 130140.png" alt="Screenshot 2024-04-03 130140.png" /></span></P><P>16. 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="Screenshot 2024-04-05 134313.png" style="width: 569px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109461iBD5B226F1AB125FB/image-dimensions/569x172?v=v2" width="569" height="172" role="button" title="Screenshot 2024-04-05 134313.png" alt="Screenshot 2024-04-05 134313.png" /></span></P><P>The expected value for “eventType” is the one you provided in step 10:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="eventtype.png" style="width: 527px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109463i6A00E54FB3778AD0/image-dimensions/527x258?v=v2" width="527" height="258" role="button" title="eventtype.png" alt="eventtype.png" /></span></P><P>17. 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="Screenshot 2024-04-03 132354.png" style="width: 510px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109466i904247CBC0AD4EAC/image-dimensions/510x185?v=v2" width="510" height="185" role="button" title="Screenshot 2024-04-03 132354.png" alt="Screenshot 2024-04-03 132354.png" /></span></P><P>Select an 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="Screenshot 2024-04-03 132405.png" style="width: 441px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109467i76E1E548732A51A4/image-dimensions/441x160?v=v2" width="441" height="160" role="button" title="Screenshot 2024-04-03 132405.png" alt="Screenshot 2024-04-03 132405.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="Screenshot 2024-04-03 132730.png" style="width: 489px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109468i9ECB5DA809BA901E/image-dimensions/489x189?v=v2" width="489" height="189" role="button" title="Screenshot 2024-04-03 132730.png" alt="Screenshot 2024-04-03 132730.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-03 132825.png" style="width: 467px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109473i5ADC2DF58206191D/image-dimensions/467x339?v=v2" width="467" height="339" role="button" title="Screenshot 2024-04-03 132825.png" alt="Screenshot 2024-04-03 132825.png" /></span></P><P><STRONG>NOTE: </STRONG><SPAN>After you have created some of the actions, they are labeled as </SPAN><STRONG><SPAN class="">Not Confirmed</SPAN></STRONG><SPAN>. To enable them, you have to confirm them as described in </SPAN><A href="https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/managing-actions?state=DRAFT&version=Cloud#confirming-actions" target="_self" rel="noopener noreferrer">Confirming Actions</A><SPAN>.</SPAN></P><P>Choose “Save” to finish making your subscription. You will see a confirmation that your subscription was created:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-03 133321.png" style="width: 516px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109474iAEFD62601766C2AE/image-dimensions/516x113?v=v2" width="516" height="113" role="button" title="Screenshot 2024-04-03 133321.png" alt="Screenshot 2024-04-03 133321.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>18. Now you can test your subscription. If you stop your HANA Cloud Instance and trigger the <EM>CheckHanaCloudMultiEnvAvailabilitySample </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="ans-email.png" style="width: 518px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/109475i8ED3BBCC8F072C1B/image-dimensions/518x341?v=v2" width="518" height="341" role="button" title="ans-email.png" alt="ans-email.png" /></span></P><P><STRONG>NOTE: </STRONG>If you also want to receive notifications in a Microsoft Teams channel of your choice, check out <A href="https://community.sap.com/t5/technology-blogs-by-sap/automated-check-for-sap-hana-cloud-availability-with-sap-automation-pilot/ba-p/13665283" target="_self">the previous blog post</A> for a detailed step-by-step explanation on how to make this configuration.</P><H2 id="toc-hId-206415846">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 multi-environment HANA Cloud instances. By using these innovative tools in your daily operations, you can save time, prevent potential disruptions, and ensure your operations continue to run smoothly. If you are interested to learn more about these products and how they can transform your business, please refer to the following sources:</P><P>SAP Automation Pilot:</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><P>SAP Alert Notification service for SAP BTP:</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><P>You can also check out these very useful tutorials prepared by our colleague Dan van Leeuwen:</P><UL><LI><A href="https://developers.sap.com/tutorials/hana-cloud-alerts.html" target="_blank" rel="noopener noreferrer">Alerts in SAP HANA Database and Data Lake</A></LI><LI><A href="https://developers.sap.com/tutorials/hana-cloud-automation-pilot.html" target="_blank" rel="noopener noreferrer">Automating SAP HANA Cloud Tasks with the SAP Automation Pilot Service</A></LI></UL><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P>2024-07-26T11:32:29.742000+02:00https://community.sap.com/t5/supply-chain-management-blogs-by-members/powerful-way-to-create-a-cds-view-based-report-on-boms-in-sap-s4-hana-cloud/ba-p/13777063Powerful way to create a CDS view based report on BOMs in SAP S4 HANA Cloud (Public Edition)2024-07-30T19:55:38.208000+02:00manish_sati1https://community.sap.com/t5/user/viewprofilepage/user-id/157263<P>Since, most of our reporting requirements in SAP S/4HANA Public Cloud are met through CDS Views, I’m herewith sharing my experience on how end user life can be made easy, through usage of right CDS views, and converting the same into an easily consumable app!</P><P>Here we are creating a BOM report using custom CDS view and analytical query which will display the details of all existing Bill of materials for a range of materials within plant.</P><P>Check this out –</P><P>Step 1. Create custom CDS views to fetch data in custom analytical query.</P><P>Step 2. Create a custom analytical query.</P><P>Step 3. Create application (Fiori tile) for query and assign it to Business catalog.</P><P>Selection Screen:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_1-1721990779432.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142176iEE0F8B0B5CD40394/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_1-1721990779432.png" alt="manish_sati1_1-1721990779432.png" /></span></P><P>Final Output of Report:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_2-1721990800232.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142177i7E821AC963D7AD0D/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_2-1721990800232.png" alt="manish_sati1_2-1721990800232.png" /></span></P><P><STRONG>Steps 1. Create custom CDS views.</STRONG></P><P>Within the SAP Fiori environment, open the app 'Custom CDS Views' which can be found in the category Extensibility.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_3-1721990863685.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142178i2E8CC4A3798C75E0/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_3-1721990863685.png" alt="manish_sati1_3-1721990863685.png" /></span></P><P>Click on Create.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_4-1721990895508.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142179i5FEE9EFAD4DCD4D2/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_4-1721990895508.png" alt="manish_sati1_4-1721990895508.png" /></span></P><P>Fill Label (Name of CDS) and select scenario as ‘Standard CDS View’ and click on create.</P><P>*We are using the scenario as ‘standard CDS view’ because we will use this CDS in another custom CDS view using joint conditions.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_5-1721990915681.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142180i39CDCAC18425B814/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_5-1721990915681.png" alt="manish_sati1_5-1721990915681.png" /></span></P><P>Select Primary data source as <STRONG>‘I_BillOfMaterialItemDEX_2’</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_6-1721990938926.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142189i12EA05B7D0C105D2/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_6-1721990938926.png" alt="manish_sati1_6-1721990938926.png" /></span></P><P>Click on Add to an associate data source.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_7-1721990962575.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142190iAE1B7441586CAC39/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_7-1721990962575.png" alt="manish_sati1_7-1721990962575.png" /></span></P><P>Click on Associate data source.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_8-1721991030843.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142191i81664E06DFDF526E/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_8-1721991030843.png" alt="manish_sati1_8-1721991030843.png" /></span></P><P>Select associate data source as <STRONG>‘I_Product’</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_9-1721991052924.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142192i06E870C53F2751AE/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_9-1721991052924.png" alt="manish_sati1_9-1721991052924.png" /></span></P><P>Click on Joint Condition</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_10-1721991077734.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142193iC3D71AFDB56BEE50/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_10-1721991077734.png" alt="manish_sati1_10-1721991077734.png" /></span></P><P>Click on Add</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_11-1721991097775.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142194iC2413F7AAC623B44/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_11-1721991097775.png" alt="manish_sati1_11-1721991097775.png" /></span></P><P>Select Product</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_12-1721991114297.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142195i466FE058398C8C31/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_12-1721991114297.png" alt="manish_sati1_12-1721991114297.png" /></span></P><P>Select Value type = <STRONG>Field</STRONG></P><P> Value = <STRONG>I_BillOfMaterialItemDEX_2.BillOfMaterialComponent</STRONG></P><P> Cardinality = <STRONG>Zero or One</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_13-1721991151760.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142196i88D7FA84A900D184/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_13-1721991151760.png" alt="manish_sati1_13-1721991151760.png" /></span></P><P>Go to Element Tab: Click on Add – Elements</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_14-1721991175944.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142197iBBF1DB754B699742/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_14-1721991175944.png" alt="manish_sati1_14-1721991175944.png" /></span></P><P>Add below mentioned elements.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_15-1721991197884.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142198iE1F446EF4BF067E5/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_15-1721991197884.png" alt="manish_sati1_15-1721991197884.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_16-1721991212868.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142199iAEF53F866A1C1FD9/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_16-1721991212868.png" alt="manish_sati1_16-1721991212868.png" /></span></P><P>Click on Check.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_17-1721991255705.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142200iDFDE27B1380118E9/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_17-1721991255705.png" alt="manish_sati1_17-1721991255705.png" /></span></P><P>Once Check is successfully done, Click on Publish</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_18-1721991277372.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142201i0F6BF97FD4575529/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_18-1721991277372.png" alt="manish_sati1_18-1721991277372.png" /></span></P><P>Custom CDS Published Successfully.</P><P>Now we will create another CDS of scenario ‘Analytical cube’ which we will use in Analytical query.</P><P>Go to App: Custom CDS Views.</P><P>Click on Create</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_19-1721991339516.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142202i3EA18C723E7FB22D/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_19-1721991339516.png" alt="manish_sati1_19-1721991339516.png" /></span></P><P>Fill Label and select scenario as ‘Analytical Cube.’</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_20-1721991358551.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142203i31B8D008540E4385/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_20-1721991358551.png" alt="manish_sati1_20-1721991358551.png" /></span></P><P>Select Primary data source as ‘<STRONG>I_MaterialBOMLink’</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_21-1721991379845.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142204i249169A328F65240/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_21-1721991379845.png" alt="manish_sati1_21-1721991379845.png" /></span></P><P>Click on Add an Associate data source.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_22-1721991418388.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142205i4E86736304401DC7/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_22-1721991418388.png" alt="manish_sati1_22-1721991418388.png" /></span></P><P>Select CDS view which we have created earlier.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_23-1721991435998.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142206iF9E0451389EC2C43/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_23-1721991435998.png" alt="manish_sati1_23-1721991435998.png" /></span></P><P>Click on Joint Condition</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_24-1721991452749.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142207iD0FC4D089B0C4E25/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_24-1721991452749.png" alt="manish_sati1_24-1721991452749.png" /></span></P><P>Add Joint condition- <STRONG>BillOfMaterial</STRONG> and <STRONG>BillOfMaterialVariant</STRONG></P><P>Select value type as <STRONG>Field</STRONG> and value as <STRONG>BillOfMaterial</STRONG> & <STRONG>BillOfMaterialVariant</STRONG></P><P>Cardinality=<STRONG> Zero and One</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_25-1721991520327.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142208i4FE7A52F7F2EFB34/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_25-1721991520327.png" alt="manish_sati1_25-1721991520327.png" /></span></P><P>Go To Elementsà Click on Add Elements</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_26-1721991557305.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142209iB1F73AF41DBA8780/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_26-1721991557305.png" alt="manish_sati1_26-1721991557305.png" /></span></P><P>Add below mentioned elements.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_27-1721991574141.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142210iB56B5F0EC48C7249/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_27-1721991574141.png" alt="manish_sati1_27-1721991574141.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_28-1721991595125.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142211iA3D528B96669DD94/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_28-1721991595125.png" alt="manish_sati1_28-1721991595125.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_29-1721991607325.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142212i38F7128449B74819/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_29-1721991607325.png" alt="manish_sati1_29-1721991607325.png" /></span></P><P>Go to Element Properties à Select ‘No Operation’ for <STRONG>‘BillOfMaterialItemQuantity’</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_30-1721991624189.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142213iDF49E2D341C9C529/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_30-1721991624189.png" alt="manish_sati1_30-1721991624189.png" /></span></P><P>Click on Check</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_31-1721991644482.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142214i529FCB79467F7240/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_31-1721991644482.png" alt="manish_sati1_31-1721991644482.png" /></span></P><P>Click on Publish</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_32-1721991666376.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142215i6220344BA850B3CD/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_32-1721991666376.png" alt="manish_sati1_32-1721991666376.png" /></span></P><P><STRONG>Step 2. Create a custom analytical query.</STRONG></P><P>Go to App: Custom Analytical Queries</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_33-1721991692816.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142216i5C54DC1A19403982/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_33-1721991692816.png" alt="manish_sati1_33-1721991692816.png" /></span></P><P>Click on Create</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_34-1721991709617.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142217iAEE3D0A26D2999E4/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_34-1721991709617.png" alt="manish_sati1_34-1721991709617.png" /></span></P><P>Mention Query Name and Select Data source as CDS created in Step 1.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_35-1721991726727.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142218i519C583A7CBD3563/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_35-1721991726727.png" alt="manish_sati1_35-1721991726727.png" /></span></P><P>In General Tab: Give Label (Name of Query Report)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_36-1721991751141.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142219i0F4FB98BCF50E5FA/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_36-1721991751141.png" alt="manish_sati1_36-1721991751141.png" /></span></P><P>Go to Field Selection view and select required fields for report</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_37-1721991770784.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142220i472A628E04B361C0/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_37-1721991770784.png" alt="manish_sati1_37-1721991770784.png" /></span></P><P>Use Up Down Option in Display Tab to set sequence for fields in report.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_38-1721991789103.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142221iD71035ACF6778767/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_38-1721991789103.png" alt="manish_sati1_38-1721991789103.png" /></span></P><P>Use Override label option to change the column name.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_39-1721991805985.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142222i117075F96EDEEF4D/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_39-1721991805985.png" alt="manish_sati1_39-1721991805985.png" /></span></P><P>Go to Filter Option</P><P>Click on Field à Select User Unit Values</P><P>Selection type = Interval, select the multiple selection checkbox.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_40-1721991822433.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142223iDC9463FBCC44C78D/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_40-1721991822433.png" alt="manish_sati1_40-1721991822433.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_41-1721991830261.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142224i16461C939DEDAD31/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_41-1721991830261.png" alt="manish_sati1_41-1721991830261.png" /></span></P><P>Click on Save Draft Option</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_42-1721991848565.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142225i2056670725BA0EB7/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_42-1721991848565.png" alt="manish_sati1_42-1721991848565.png" /></span></P><P>Mention Plant and click on Go.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_43-1721991888819.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142226i65D67A63165D74B9/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_43-1721991888819.png" alt="manish_sati1_43-1721991888819.png" /></span></P><P>Report Displayed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_44-1721991904077.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142227i19DE1C3570D5F5D4/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_44-1721991904077.png" alt="manish_sati1_44-1721991904077.png" /></span></P><P>Come back to query screen and click on Publish.</P><P><STRONG>Step 3. Create application (Fiori tile) for query and assign it to Business catalog</STRONG>.</P><P>Go to App: View browser – Browse Views</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_45-1721991932314.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142228i5232846C94B365AC/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_45-1721991932314.png" alt="manish_sati1_45-1721991932314.png" /></span></P><P>Search your custom analytical query, select, and click on create application.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_46-1721991955918.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142229i22E815570B9756B1/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_46-1721991955918.png" alt="manish_sati1_46-1721991955918.png" /></span></P><P> </P><P>Give Report title and subtitle and click on ok.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_47-1721991968783.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142230i13D0019AE557A8FB/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_47-1721991968783.png" alt="manish_sati1_47-1721991968783.png" /></span></P><P>Application ID will generate for the query.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_48-1721991993558.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142231i734DCF085EBD4DD8/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_48-1721991993558.png" alt="manish_sati1_48-1721991993558.png" /></span></P><P> </P><P>Click on Application ID and Go to ‘view in catalog’ option</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_49-1721992009269.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142232i235102455940A8DE/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_49-1721992009269.png" alt="manish_sati1_49-1721992009269.png" /></span></P><P> </P><P>Click on Add to add this application to business catalog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_50-1721992027770.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142235i8C47ADAEDC31DD9E/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_50-1721992027770.png" alt="manish_sati1_50-1721992027770.png" /></span></P><P>Select Business catalog.</P><P>*You can assign this application to multiple business catalog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_51-1721992053472.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142236iB8210A3BF25E170C/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_51-1721992053472.png" alt="manish_sati1_51-1721992053472.png" /></span></P><P>Select the catalog and click on Publish.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_52-1721992070120.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142237i2DFDC18FF90F50D8/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_52-1721992070120.png" alt="manish_sati1_52-1721992070120.png" /></span></P><P>App Published successfully for selected business catalog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_53-1721992089234.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142238i28239C2676BD7118/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_53-1721992089234.png" alt="manish_sati1_53-1721992089234.png" /></span></P><P>Click on Business catalog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_54-1721992103825.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142239i69DAA996CEDC1314/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_54-1721992103825.png" alt="manish_sati1_54-1721992103825.png" /></span></P><P>Go to More and select used in Business roles.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_55-1721992123479.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142240iBE1DE87BFF84D1CC/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_55-1721992123479.png" alt="manish_sati1_55-1721992123479.png" /></span></P><P>Now assign one of the business roles to your user ID.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_56-1721992150546.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142241iA4449CD04769D670/image-size/medium?v=v2&px=400" role="button" title="manish_sati1_56-1721992150546.png" alt="manish_sati1_56-1721992150546.png" /></span></P><P><STRONG>Go to SAP Home screen.</STRONG></P><P>Search App: <STRONG>BOM Report</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_57-1721992176696.png" style="width: 492px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142243i559324C4902A28E5/image-dimensions/492x80?v=v2" width="492" height="80" role="button" title="manish_sati1_57-1721992176696.png" alt="manish_sati1_57-1721992176696.png" /></span></P><P>Fill the selection parameter and click on Go.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="manish_sati1_58-1721992203729.png" style="width: 553px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/142244iD8832FDE7995F6A8/image-dimensions/553x212?v=v2" width="553" height="212" role="button" title="manish_sati1_58-1721992203729.png" alt="manish_sati1_58-1721992203729.png" /></span></P><P> </P><P>Thanks & Regards,</P><P>Manish Sati</P><P> </P>2024-07-30T19:55:38.208000+02:00https://community.sap.com/t5/technology-blogs-by-members/delta-configurationfor-standard-api-in-s-4-hana-cloud/ba-p/13775148Delta configurationfor Standard API in S/4 HANA cloud2024-07-30T22:39:30.727000+02:00Harshhithhttps://community.sap.com/t5/user/viewprofilepage/user-id/1418669<P>In order to Create Delta for standard API:</P><P>Go to product master standard API in Business Accelerator Hub then click on tryout option.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_0-1722237268931.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143331iA13BE8F46C90D2D6/image-size/large?v=v2&px=999" role="button" title="Harshhith_0-1722237268931.png" alt="Harshhith_0-1722237268931.png" /></span></P><P> </P><P> </P><P>Now, we have to configure our system environment here as shown below</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_1-1722237269045.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143330i2D3A6DBBCE38A020/image-size/large?v=v2&px=999" role="button" title="Harshhith_1-1722237269045.png" alt="Harshhith_1-1722237269045.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_2-1722237268900.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143329iFAC963011F9DF42E/image-size/large?v=v2&px=999" role="button" title="Harshhith_2-1722237268900.png" alt="Harshhith_2-1722237268900.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_3-1722237268970.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143333iF37C8BFA2E47F2ED/image-size/large?v=v2&px=999" role="button" title="Harshhith_3-1722237268970.png" alt="Harshhith_3-1722237268970.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_4-1722237269019.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143332iFD489E20BD808B63/image-size/large?v=v2&px=999" role="button" title="Harshhith_4-1722237269019.png" alt="Harshhith_4-1722237269019.png" /></span></P><P>And after successfully configuring Now you can tryout any of these operations in Standard API</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_5-1722237268937.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143334iBE9268FBECD01843/image-size/large?v=v2&px=999" role="button" title="Harshhith_5-1722237268937.png" alt="Harshhith_5-1722237268937.png" /></span></P><P>Now in order to get delta, we have to take a delta pointer based on the fields in standard API. In this case I’m taking Lastchangedate field as delta pointer</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_6-1722237268967.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143335i1FDC128C5C4C75F1/image-size/large?v=v2&px=999" role="button" title="Harshhith_6-1722237268967.png" alt="Harshhith_6-1722237268967.png" /></span></P><P>And Filter out records based on delta pointer(Lastchangedate)as shown below</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_7-1722237269031.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143336iC101D8C720A90DEF/image-size/large?v=v2&px=999" role="button" title="Harshhith_7-1722237269031.png" alt="Harshhith_7-1722237269031.png" /></span>Here the logic is: <SPAN> </SPAN><STRONG> LastChangeDate ge datetime'2024-01-14T00:00:00’ And</STRONG><SPAN> </SPAN>it says lastchangedate is greater than or equals to 2024-01-14 and also there are other logics as well:<SPAN> </SPAN><SPAN><STRONG>LastChangeDate ge datetime'2024-06-13T00:00:00' and LastChangeDate lt datetime'2024-06-14T00:00:00' </STRONG>and it only gives records between 14th june to 13th june </SPAN>.</P><P>So After initializing this logic run as shown below</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_8-1722237269057.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143337i838C67803944A6E5/image-size/large?v=v2&px=999" role="button" title="Harshhith_8-1722237269057.png" alt="Harshhith_8-1722237269057.png" /></span></P><P>we get records that are changed on or after 14th January 2024 in OData URL itself and it gives count of how many records are present as shown below</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_9-1722237269023.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143339iEEE6CBEC69A71BBC/image-size/large?v=v2&px=999" role="button" title="Harshhith_9-1722237269023.png" alt="Harshhith_9-1722237269023.png" /></span></P><P>Now we can check data by taking URL till highlighted part and run OData in PowerBI</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_10-1722237269074.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143338i5A375CCDE0D01810/image-size/large?v=v2&px=999" role="button" title="Harshhith_10-1722237269074.png" alt="Harshhith_10-1722237269074.png" /></span></P><P> </P><P>Now in Power BI, Select OData feed and add the required URL</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_11-1722237269079.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143340i1B7858DDC3A06680/image-size/large?v=v2&px=999" role="button" title="Harshhith_11-1722237269079.png" alt="Harshhith_11-1722237269079.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_12-1722237269098.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143341i2FCA982A0456F326/image-size/large?v=v2&px=999" role="button" title="Harshhith_12-1722237269098.png" alt="Harshhith_12-1722237269098.png" /></span></P><P> </P><P>And we can see required delta records here</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Harshhith_13-1722237269106.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/143342i9471C933A813933F/image-size/large?v=v2&px=999" role="button" title="Harshhith_13-1722237269106.png" alt="Harshhith_13-1722237269106.png" /></span></P><P> </P><P> </P>2024-07-30T22:39:30.727000+02:00https://community.sap.com/t5/technology-blogs-by-sap/sap-application-migration-assistant/ba-p/13771829SAP Application Migration Assistant2024-08-01T13:32:47.968000+02:00VolkerSaggauhttps://community.sap.com/t5/user/viewprofilepage/user-id/44889<H2 id="toc-hId-1021128720"> Problem:</H2><P>NEO or HANA 2 XSC database content as tables, views, calculation views, etc. needed to be migrate to SAP Business Application Studio or BUILD Code for further development. </P><P> Requirements:</P><OL><LI><P> A <A href="https://community.sap.com/t5/technology-blogs-by-sap/connect-sap-hana-on-premise-to-sap-hana-cloud-and-database-with-cloud/ba-p/13578580" target="_self">SAP Cloud Connector for your HANA 2 environment</A> </P></LI><LI><P> A BTP account with SAP Business Application Studio (BAS) or SAP BUILD Code entitled</P></LI></OL><H2 id="toc-hId-824615215">Solution:</H2><P data-unlink="true">Convert DB content from XSC/sys_repo into HDI/CAP content using <STRONG>SAP Application Migration Assistant.</STRONG> </P><H2 id="toc-hId-628101710"> Preparation:</H2><UL><LI><P data-unlink="true">In BTP: <STRONG>Configure your DevSpace</STRONG> as mentioned below </P></LI><LI><P data-unlink="true">In BTP: <STRONG>Configure the use of SAP Cloud Connector</STRONG> </P></LI></UL><P data-unlink="true">It should look similar to this screenshot: </P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_0-1722514249841.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145336iADBE2477119069AE/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_0-1722514249841.png" alt="VolkerSaggau_0-1722514249841.png" /></span></P><P> </P><P data-unlink="true">Find more help on this in the cloud connector help and in this blog: </P><P data-unlink="true">Connect SAP HANA On-Premise to SAP HANA Cloud and Database with Cloud Connector </P><UL><LI><P data-unlink="true">Add the following extensions to your development space of BAS: </P></LI></UL><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_1-1722514284204.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145338i0E21A24EE068F053/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_1-1722514284204.png" alt="VolkerSaggau_1-1722514284204.png" /></span></P><P> </P><P data-unlink="true">SAP HANA Application Migrations Assistant will help you migrate content </P><P data-unlink="true">SAP HANA XS Advanced Tools will allow to work with BAS on your XSA environment </P><OL><LI><P data-unlink="true"><STRONG>SAP HANA XS Advanced Tools</STRONG> allows you to connect and deploy to XSA environment for HANA on premise </P></LI><LI><P data-unlink="true"><STRONG>SAP HANA Application Migration Assistant</STRONG> will migrate content from XSC/sys_repo to an HDI project. </P></LI></OL><P data-unlink="true">Calling the SAP HANA Application Migration Assistant by F1 :"SAP HANA Application..."</P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_2-1722514328164.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145342iF7286BE64243F18C/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_2-1722514328164.png" alt="VolkerSaggau_2-1722514328164.png" /></span></P><P> </P><P> </P><P data-unlink="true">Sample of conversion from XSC to CAP: </P><P data-unlink="true">Original design time object in HANA Studio: </P><P><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_3-1722514450026.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145351iEA93F66B5978FCA4/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_3-1722514450026.png" alt="VolkerSaggau_3-1722514450026.png" /></span></P><P> </P><P data-unlink="true">Here is the result of a conversion to CAP CDS: </P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_4-1722514499037.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145352iF8EEDD58A03590BB/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_4-1722514499037.png" alt="VolkerSaggau_4-1722514499037.png" /></span></P><P data-unlink="true">Once you are in BAS you can also see the HANA Cloud generated code here as well: </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="VolkerSaggau_5-1722514539520.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145353i244A2C9EA8BEA9E3/image-size/large?v=v2&px=999" role="button" title="VolkerSaggau_5-1722514539520.png" alt="VolkerSaggau_5-1722514539520.png" /></span></P><P>There are many functions and features build in to this tool. Please try out and read the help manual.</P><H2 id="toc-hId-431588205">Summary:</H2><P data-unlink="true">At this moment the tool converts XSC design time objects of the database to an HDI / CAP level. Not all objects can be migrated since there is no equivalent in HANA Cloud /CAP. Anyhow this helps to get a huge amount done supported by the generator/converter. With the change of xsjs to Node.js we decided to use the CAP model. This helps developers to also get the ODATA access being generated as well. And with BAS and/or BuildCode it should be be possible for many use cases to get into the BTP world with all modern features as the latest Fiori and Joule support. </P><P data-unlink="true">This will also help you to get to the environment where you also can develop for "Clean Core". So you end with this migration at the same dev environment. </P><P data-unlink="true">Also many thanks to the great support from the CAP team. </P><H2 id="toc-hId-235074700">Outlook:</H2><P data-unlink="true">Several things are in the pipeline: </P><OL><LI> XSA -> SAP HANA Cloud and CAP</LI><LI> Data migration<BR /><OL class="lia-list-style-type-lower-alpha"><LI> This is a bit more complicated: We have to rename the objects to be CAP compliant. So the source and the traget name differ. We provide a list of the name changes and we will use this to generate SQL commands for data copy purpose.</LI></OL></LI></OL><H2 id="toc-hId-38561195"> Links:</H2><P><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-migration-guide/manually-migrate-xs-classic-application-to-sap-cap-and-sap-hana-cloud?q=SAP%20Application%20Migration%20Assistant" target="_self" rel="noopener noreferrer">SAP HANA Application Migration Assistant (This tool)</A></P><P><A href="https://help.sap.com/docs/SAP_HANA_PLATFORM/58d81eb4c9bc4899ba972c9fe7a1a115/2aa5aa246a704e199cd06ca5c84d1155.html?version=2.0.07" target="_self" rel="noopener noreferrer">The old migration tool that is replaced by this tool</A></P><P><A href="https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/cloud-connector" target="_self" rel="noopener noreferrer">Cloud Connector installation</A></P><P><A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-migration-guide/sap-hana-cloud-migration-guide" target="_self" rel="noopener noreferrer"><SPAN>SAP HANA Cloud Migration Guide</SPAN></A></P><P><A href="https://github.com/SAP-samples/xsc-cap-migration" target="_self" rel="nofollow noopener noreferrer"><SPAN>Sample on GitHUB</SPAN></A></P><P><SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/connect-sap-hana-on-premise-to-sap-hana-cloud-and-database-with-cloud/ba-p/13578580" target="_self">Connect SAP HANA On-Premise to SAP HANA Cloud and Database with Cloud Connector</A></SPAN></P><P> </P><P>more help is on its way (will be added later)</P><P> </P><P> </P>2024-08-01T13:32:47.968000+02:00https://community.sap.com/t5/technology-blogs-by-members/connect-sap-sales-cloud-v2-to-sap-datasphere/ba-p/13781246Connect SAP Sales Cloud V2 to SAP Datasphere2024-08-07T22:29:07.449000+02:00JoelleShttps://community.sap.com/t5/user/viewprofilepage/user-id/1431336<P><SPAN>How to connect SAP Sales Cloud V2 to SAP Datasphere.</SPAN><SPAN> </SPAN></P><P><SPAN>SAP Sales Cloud V2 provides Rest APIs only. You can find them here in the Business Accelerator Hub: </SPAN><A title="Business Accelerator Hub" href="https://api.sap.com/package/SAPSalesServiceCloudV2/rest " target="_self" rel="noopener noreferrer"><U>https://api.sap.com/package/SAPSalesServiceCloudV2/rest </U></A></P><P><SPAN>You can use these Rest APIs and generate output with your own environment within Business Accelerator Hub. You have to user Business User Credentials and the user name has to have at least six characters.</SPAN><SPAN> </SPAN></P><P><SPAN>For the following example, I did that with the Opportunities. The output is a nested JSON. Why is that an issue? </SPAN><SPAN> </SPAN></P><P><SPAN>You have one opportunity with 4 Business Partners (each take a different role). Another Opportunity only has 2. This issue goes on with involved parties and items and many more attributes. Back with Sales Cloud V1 (C4C/Cloud for Customers) you were able to extract the collections. Now you will have issues with extracting the information needed. Therefore, you have to recreate those collections, you used to have.</SPAN><SPAN> </SPAN></P><P><SPAN>You will have several options to do that, for example with SAP Integration Suite. You can select the JDBC scenario. I still recommend doing that, but if you don’t have the option to use SAP Integration Suite, you can launch a python script.</SPAN><SPAN> </SPAN></P><P><SPAN>In my example I did run it locally, but if I would do it for a customer, I would just launch it on Cloud Foundry (within SAP BTP). I will provide a blog on how to do that very soon. </SPAN><SPAN> </SPAN></P><P><SPAN>This code calls the Rest API, flattens it, extracts the collections needed for this case and writes the tables back into the HANA under SAP Datasphere. I will use those tables to build views upon them. The tables will update once the code is being executed again. Adjust the code to call for Leads, Accounts etc. This is a workaround until SAP provides the APIs, we used to have in Sales Cloud V1 or if the customer does not have SAP Integration Suite. There are still a lot of other options to work around.</SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN></P><pre class="lia-code-sample language-python"><code>import requests
from requests.auth import HTTPBasicAuth
import pandas as pd
from pandas import json_normalize
from hana_ml.dataframe import create_dataframe_from_pandas
from hana_ml.dataframe import ConnectionContext
def fetch_data_from_api(url, username, password):
try:
# Define headers for the request, including additional config headers
headers = {
'config_authType': 'Basic',
'config_packageName': 'SAPSalesServiceCloudV2',
'config_actualUrl': 'https://myxxxx.de1.test.crm.cloud.sap',
'config_urlPattern': 'https://{hostname}',
'config_apiName': 'SalesSvcCloudV2_xxxxxx',
'Accept': 'application/json'
}
# Send a GET request to the API endpoint with Basic Auth and headers
response = requests.get(url, headers=headers, auth=HTTPBasicAuth(username, password))
# Raise an HTTPError if the HTTP request returned an unsuccessful status code
response.raise_for_status()
# Parse the JSON response
data = response.json()
return data
except requests.exceptions.HTTPError as http_err:
print(f"HTTP error occurred: {http_err}")
except Exception as err:
print(f"Other error occurred: {err}")
def extract_main_opportunity_data(data):
# Extract the main opportunity data and convert it to a DataFrame
opportunities = data.get('value', [])
df_opportunities = json_normalize(opportunities)
return df_opportunities
def extract_involved_parties(data):
# Extract involved parties from each opportunity
opportunities = data.get('value', [])
involved_parties_list = []
for opportunity in opportunities:
involved_parties = opportunity.get('involvedParties', [])
for party in involved_parties:
party['opportunity_id'] = opportunity.get('id') # Link party to opportunity
involved_parties_list.append(party)
df_involved_parties = pd.DataFrame(involved_parties_list)
return df_involved_parties
def extract_items(data):
# Placeholder for extracting items if they exist in the JSON structure
# Similar to extracting involved parties
items_list = []
for opportunity in data.get('value', []):
items = opportunity.get('items', []) # Adjust the key as per actual data
for item in items:
item['opportunity_id'] = opportunity.get('id') # Link item to opportunity
items_list.append(item)
df_items = pd.DataFrame(items_list)
return df_items
def clean_dataframe(df):
# Convert all columns to strings to avoid type issues
df = df.astype(str)
# Replace problematic characters or values if necessary
df = df.replace({r'\r\n': ' ', r'\r': ' ', r'\n': ' '}, regex=True)
return df
def write_dataframe_to_hana(dataframe, table_name, conn_context):
# Clean the dataframe to ensure compatibility
dataframe = clean_dataframe(dataframe)
hana_df = create_dataframe_from_pandas(conn_context, dataframe, table_name, force=True)
return hana_df
# URL of the REST API endpoint
api_url = 'https://myXXXXXXXX.de1.test.crm.cloud.sap/sap/c4c/api/v1/opportunity-service/opportunities'
# Your credentials for Basic Auth
username = 'xxxxxxxx'
password = 'xxxxxxxx'
# Fetch data from the API
data = fetch_data_from_api(api_url, username, password)
# Extract and convert JSON data to DataFrames
if data is not None:
df_opportunities = extract_main_opportunity_data(data)
df_involved_parties = extract_involved_parties(data)
df_items = extract_items(data) # If items exist
# SAP HANA Cloud connection details
host = xxxxxxxxxxxx.hana.prod-eu10.hanacloud.ondemand.com'
port = '443'
user = 'XXXXXXX’
password = 'xxxxxxxxxxxxx'
# Establish connection
conn_context = ConnectionContext(address=host, port=port, user=user, password=password)
# Write dataframes to SAP HANA Cloud
write_dataframe_to_hana(df_opportunities, 'OPPORTUNITIES', conn_context)
write_dataframe_to_hana(df_involved_parties, 'INVOLVED_PARTIES', conn_context)
write_dataframe_to_hana(df_items, 'ITEMS', conn_context)
# Close the connection
conn_context.close()
else:
print("No data retrieved from the API.") </code></pre><P><SPAN> </SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN></P>2024-08-07T22:29:07.449000+02:00https://community.sap.com/t5/technology-blogs-by-sap/sap-integration-strategy-end-to-end-business-processes-deep-dives-new-ebook/ba-p/13790133SAP Integration Strategy - End-to-end business processes deep dives - NEW eBook available2024-08-11T23:05:07.722000+02:00CarstenPuschkehttps://community.sap.com/t5/user/viewprofilepage/user-id/3896<P>Dear community members,<BR />Dear colleagues,</P><P>I'm happy to announce our <STRONG><A href="https://dam.sap.com/mac/h/l/f/YvRzqyi/?doi=SAP1092541" target="_self" rel="noopener noreferrer">2nd edition of our SAP Integration Strategy eBook</A></STRONG>, this time more focusing on how our customers benefit from an integrated SAP software portfolio by enabling them to design, model, implement, and ultimately run their business processes end-to-end.</P><P><A href="https://dam.sap.com/mac/h/l/f/YvRzqyi/?doi=SAP1092541" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cover blog 1.png" style="width: 380px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149797iA4525B5923FC51C3/image-size/large?v=v2&px=999" role="button" title="cover blog 1.png" alt="cover blog 1.png" /></span></A></P><P> </P><P>You may remember our first Youtube calls and presentations – that we also already put together with this first <SPAN><A href="https://dam.sap.com/mac/h/l/f/LWraKCE/index.html" target="_blank" rel="noopener noreferrer">eBook</A></SPAN> – and in which we informed you about our overall integration strategy at SAP, where we walked you through our so-called <STRONG>suite qualities</STRONG>, to address the various aspects of integration requirements as such.</P><P>Simply take these 2 examples – e.g. the need to unify and harmonize our user interfaces of the various software solutions that SAP offers, and the other is about requirements such as consistent security and identity management, that functions across all applications, just think of Single Sign-On.</P><P>Our <STRONG>suite qualities</STRONG> are now implemented in our SAP software solutions, and <STRONG>SAP</STRONG> is therefore proven to be able <STRONG>to support our customers’ end-to-end business processes.</STRONG></P><P><A href="https://dam.sap.com/mac/h/l/f/YvRzqyi/?doi=SAP1092541" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cover blog.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149796i396C2F4C8C2FB39A/image-size/large?v=v2&px=999" role="button" title="cover blog.png" alt="cover blog.png" /></span></A></P><P>Thus it was just obvious for us to share these achievements with you, as we ran the so called <STRONG>E2E business process deep dives series</STRONG> to provide a detailed picture what customers and partners can expect from SAP to drive their digital transformation and establish business processes, at the same time fitting to their particular needs:</P><UL><LI><STRONG>Lead to Cash</STRONG></LI><LI><STRONG>Hire to Retire</STRONG></LI><LI><STRONG>Source to Pay</STRONG></LI><LI><STRONG>Design to Operate</STRONG></LI></UL><P>With the <STRONG><A href="https://dam.sap.com/mac/h/l/f/YvRzqyi/?doi=SAP1092541" target="_self" rel="noopener noreferrer">new eBook</A></STRONG> you now have an <STRONG>excellent collection of all of our SAP Community calls</STRONG> and the related presentations that show you how SAP can now support your business requirements with a holistically integrated software portfolio.</P><P>For upcoming events, webinars and any kind of new information you may bookmark this <SPAN><A href="https://pages.community.sap.com/topics/integration-strategy" target="_blank" rel="noopener noreferrer">SAP Community Topic Page called “SAP Integration Strategy”</A></SPAN> to remain up-to-date with regards to our upcoming sessions and webinars that we area about to setup for you.</P><P><A href="https://dam.sap.com/mac/h/l/f/YvRzqyi/?doi=SAP1092541" target="_self" rel="noopener noreferrer">Happy reading and enjoy watching the recordings as well as studying the presentations!</A></P>2024-08-11T23:05:07.722000+02:00https://community.sap.com/t5/technology-blogs-by-members/backup-of-sap-hana-database-on-gcp-using-backup-amp-dr-services/ba-p/13784992Backup of SAP HANA Database on GCP using backup & DR services2024-08-12T07:33:01.981000+02:00DaulatPhttps://community.sap.com/t5/user/viewprofilepage/user-id/1538866<P><STRONG>Backup of SAP HANA Database on GCP using backup & DR services</STRONG></P><P>This article contains all the SAP and GCP related technical Snapshots and settings which can be used for configuring HANA Database backup on SUSE Linux Enterprise & RHEL. Operations described in the document are performed when SAP HANA Database is deployed on GCP. SAP has provided several notes which support SAP products on Google.</P><H1 id="toc-hId-893060066"><STRONG>SAP HANA BACKUP ON GCP</STRONG></H1><P>SAP HANA, as a critical component of many business applications, demands robust business continuity and disaster recovery (BCDR) strategies. Any downtime can result in significant financial losses and reputational damage. A well-planned BCDR strategy ensures business continuity, minimizes data loss, and speeds up recovery time. Google Cloud provides a comprehensive platform to safeguard your SAP HANA environment against unforeseen disruptions. This blog goes into the technical aspects of implementing SAP HANA BCDR on Google Cloud.</P><P>Implementing a robust SAP HANA BCDR strategy on Google Cloud is crucial for ensuring business continuity. By carefully evaluating your business needs, leveraging Google Cloud's capabilities, and following best practices, you can protect your SAP HANA environment and minimize the impact of potential disruptions.</P><P><STRONG>Prerequisites:</STRONG></P><UL><LI>All the configured services— see SAP Note 1697613 and SAP Note 1649519— such as nameserver and indexserver must be running. You can check this in the <STRONG>Overview of SAP HANA studio</STRONG> > <STRONG>Operational State</STRONG> > Confirm all services are started.</LI></UL><UL><LI>Create FS for logabackup on disk as BU-DR will backup login on local Disk & take snapshot of Disk on storage.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_0-1722979627008.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147423i270069A358D8CC96/image-size/medium?v=v2&px=400" role="button" title="DaulatP_0-1722979627008.png" alt="DaulatP_0-1722979627008.png" /></span></P><UL><LI>Database log_mode must be normal under the HANA Studio configuration tab.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_1-1722979627021.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147421i36ADD1618268A1EF/image-size/medium?v=v2&px=400" role="button" title="DaulatP_1-1722979627021.png" alt="DaulatP_1-1722979627021.png" /></span></P><UL><LI>All SAP HANA servers (Compute Engine) that have HANA data to be protected by Backup and DR Service must have been onboarded to Backup and DR Service</LI><LI>All SAP HANA servers (Compute Engine) that have HANA data to be protected by Backup and DR Service must have the Backup and DR agent installed.</LI></UL><P><STRONG>HANA log backup recommendation:</STRONG></P><UL><LI>Make sure to set the HANA Archive log backup path as the basepath_logbackup and basepath_catalogbackup in global.ini</LI><LI>Don't use HANA Archive log mount to store files other than HANA archive log backup</LI><LI>By default archive purge will run with every database backup. This achieves the best recovery RTO</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_2-1722979627041.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147422i561177248058E36A/image-size/medium?v=v2&px=400" role="button" title="DaulatP_2-1722979627041.png" alt="DaulatP_2-1722979627041.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_3-1722979627048.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147424i2A5BA05B5ACCF82F/image-size/medium?v=v2&px=400" role="button" title="DaulatP_3-1722979627048.png" alt="DaulatP_3-1722979627048.png" /></span></P><H4 id="toc-hId-1083794718"><SPAN><STRONG>Create the database backup user from HANA Studio:</STRONG></SPAN></H4><P>Choose a database username based on the company's standard. Make sure to create this user account under SYSTEMDB.</P><UL><LI>HANA 2.0 (SPS05 and later): Click the <STRONG>System privilege tab</STRONG> and assign privileges by selecting the following:</LI><UL><LI><STRONG>Backup admin</STRONG></LI><LI><STRONG>Catalog read</STRONG></LI><LI><STRONG>Database backup operator</STRONG> +. <STRONG>Database recovery operator</STRONG></LI><LI><STRONG>Database admin</STRONG></LI><LI><STRONG>Database start</STRONG></LI><LI><STRONG>Database stop</STRONG></LI></UL><LI>Deploy the newly created system user by clicking the <STRONG>green arrow</STRONG>.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_4-1722979627058.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147425i8D602EE4B896C5F3/image-size/medium?v=v2&px=400" role="button" title="DaulatP_4-1722979627058.png" alt="DaulatP_4-1722979627058.png" /></span></P><P><SPAN><STRONG>Get the instance and SQL port numbers<EM>:</EM></STRONG></SPAN></P><P>You need the HANA instance and SQL Port numbers for system DB.</P><P>To get the instance and SQL port numbers from HANA 2.0 studio:</P><OL><LI>Go to <STRONG>System</STRONG>.</LI><LI>Click the <STRONG>Landscape</STRONG> tab.</LI><LI>Click the <STRONG>Services</STRONG> tab.</LI><LI>Under the <STRONG>Service</STRONG> column, navigate to the nameserver.</LI><LI>Get the value of SQL port. The instance number is the second and third digits of the SQL port number.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_5-1722979627069.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147426i0BFFCADC20CCC383/image-size/medium?v=v2&px=400" role="button" title="DaulatP_5-1722979627069.png" alt="DaulatP_5-1722979627069.png" /></span></P><P><SPAN><STRONG>Create the SAP HANA </STRONG></SPAN><STRONG>hdbuserstore</STRONG><SPAN><STRONG> key for system DB backup users<EM>:</EM></STRONG></SPAN></P><P>Use this naming convention for the userstore key name: For SYSTEMDB, set the key name to (Database backup username). For example, for database backup username (Actbackup), set SYSTEMDB—key_name— (ACTBACKUP).</P><P><STRONG>Procedure:</STRONG></P><OL><LI>Connect to the HANA database system using SSH and log into (sid)adm: su - (sid)adm</LI><LI>Change directory: cd exe</LI></OL><OL><LI>Create entries in hdbuserstore using command hdbuserstore: ./hdbuserstore SET (key_name) (host name):(port) (DB_user_name) (DB_user_password)</LI></OL><P>In this example: hdbuserstore SET GCPBACKUPDR HOSTNAME:30013 GCPBACKUPDR ****** (DB_user_password)</P><OL><LI>Check the keystore: ./hdbuserstore list</LI></OL><P><STRONG>Prepare Below command according to above steps :</STRONG></P><P>hdbuserstore SET GCPBACKUPDR HOSTNAME:30013 GCPBACKUPDR ******</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_6-1722979627077.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147427i21B22899BCEA397D/image-size/medium?v=v2&px=400" role="button" title="DaulatP_6-1722979627077.png" alt="DaulatP_6-1722979627077.png" /></span></P><P>hdbsql -U GCPBACKUPDR</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_7-1722979627087.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147428iD75857280B25317D/image-size/medium?v=v2&px=400" role="button" title="DaulatP_7-1722979627087.png" alt="DaulatP_7-1722979627087.png" /></span></P><P><STRONG>Set up the log mode and log backup in HANA Studio:</STRONG></P><P>Using the HANA Studio set the HANA log mode and log backup location for Backup and DR to take backups of HANA DB transaction logs:</P><OL><LI>In SAP HANA HDB studio, make sure log backup is set correctly under <STRONG>DATABASE (SYSTEMDB FOR HANA 2.0)</STRONG> > <STRONG>Backup</STRONG> > <STRONG>Configuration</STRONG> page:</LI><UL><LI>Destination type is <STRONG>File</STRONG>.</LI><LI>Destination is set to a local file system mount path.</LI><LI>Backup interval is set to <STRONG>required RPO</STRONG>.</LI><LI>Automatic log backup is enabled.</LI><LI>Database log_mode must be set to <STRONG>normal</STRONG></LI></UL></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_8-1722979627098.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147429iB000E21E0BD1022F/image-size/medium?v=v2&px=400" role="button" title="DaulatP_8-1722979627098.png" alt="DaulatP_8-1722979627098.png" /></span></P><OL><LI>Check under Database configuration: DATABASE (SYSTEMDB FOR HANA 2.0) > Configuration page. In the filter, type <STRONG>basepath</STRONG>.</LI><LI>Verify that basepath_logbackup is set correctly:</LI><UL><LI>Set the basepath_catalogbackup to the same as basepath_logbackup.</LI><LI>Open the basepath_catalogbackup edit page and set the <STRONG>New value</STRONG> to the same as basepath_logbackup. Click <STRONG>Save</STRONG>. This ensures the backup of the catalog with log backup for point in time recovery.</LI></UL><LI>On the HANA database server, run the re-config for the values to take effect: hdbnsutil -reconfig.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_9-1722979627104.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147431i3805C1B9D644719C/image-size/medium?v=v2&px=400" role="button" title="DaulatP_9-1722979627104.png" alt="DaulatP_9-1722979627104.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_10-1722979627110.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147432iC4D2D663A92E6FE6/image-size/medium?v=v2&px=400" role="button" title="DaulatP_10-1722979627110.png" alt="DaulatP_10-1722979627110.png" /></span></P><P>hdbnsutil -reconfig</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_11-1722979627114.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147430i476AF5415D8E6275/image-size/medium?v=v2&px=400" role="button" title="DaulatP_11-1722979627114.png" alt="DaulatP_11-1722979627114.png" /></span></P><P><STRONG>Install agent on HANA DB Host :</STRONG></P><P>gcloud storage cp gs://sap-artifacts-ib50/binaries/linux/connector-Linux-11.0.10.417.rpm /tmp/connector-Linux-11.0.10.417.rpm</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_12-1722979627120.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147433i6B6F056D38C28C35/image-size/medium?v=v2&px=400" role="button" title="DaulatP_12-1722979627120.png" alt="DaulatP_12-1722979627120.png" /></span></P><P>sudo rpm -Uvh /tmp/connector-Linux-11.0.10.417.rpm</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_13-1722979627130.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147434i726349E76933F707/image-size/medium?v=v2&px=400" role="button" title="DaulatP_13-1722979627130.png" alt="DaulatP_13-1722979627130.png" /></span></P><P>sudo cp /opt/act/cbt/bin/cbt_activate.sh /opt/act/cbt/bin/cbt_activate.sh.bak</P><P>sudo sed 's/bash$/&\nexit 0/' /opt/act/cbt/bin/cbt_activate.sh -i</P><P> <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_14-1722979627136.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147435i169401C648249094/image-size/medium?v=v2&px=400" role="button" title="DaulatP_14-1722979627136.png" alt="DaulatP_14-1722979627136.png" /></span></P><P><STRONG>Onboard HANA DB host to Backup and DR console and exchange secret :</STRONG></P><P>Select Project & go to Backup DR</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_15-1722979627152.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147436i694D597C6779C334/image-size/medium?v=v2&px=400" role="button" title="DaulatP_15-1722979627152.png" alt="DaulatP_15-1722979627152.png" /></span></P><P>Select Compute Engine</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_16-1722979627162.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147437i9197AE6017B21F61/image-size/medium?v=v2&px=400" role="button" title="DaulatP_16-1722979627162.png" alt="DaulatP_16-1722979627162.png" /></span></P><P>Select service Account & Click on next.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_17-1722979627169.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147438i2A3F2E6A5F2BF89A/image-size/medium?v=v2&px=400" role="button" title="DaulatP_17-1722979627169.png" alt="DaulatP_17-1722979627169.png" /></span></P><P>Select Project ID / Zone & Click on Search.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_18-1722979627177.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147440iB6FEF2BD5B4E3600/image-size/medium?v=v2&px=400" role="button" title="DaulatP_18-1722979627177.png" alt="DaulatP_18-1722979627177.png" /></span></P><P> </P><P>Select DB hostname that you want to configure & Next.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_19-1722979627185.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147441iDEC0717F3DC47E47/image-size/medium?v=v2&px=400" role="button" title="DaulatP_19-1722979627185.png" alt="DaulatP_19-1722979627185.png" /></span></P><P> </P><P>Click on Next:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_20-1722979627194.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147439i813619C9155190E4/image-size/medium?v=v2&px=400" role="button" title="DaulatP_20-1722979627194.png" alt="DaulatP_20-1722979627194.png" /></span></P><P>Click on Finish :</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_21-1722979627201.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147443iD90FA757B22EC53F/image-size/medium?v=v2&px=400" role="button" title="DaulatP_21-1722979627201.png" alt="DaulatP_21-1722979627201.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_22-1722979627207.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147444iB96BE5993A9CB276/image-size/medium?v=v2&px=400" role="button" title="DaulatP_22-1722979627207.png" alt="DaulatP_22-1722979627207.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_23-1722979627218.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147442iE0EF57B030772F3E/image-size/medium?v=v2&px=400" role="button" title="DaulatP_23-1722979627218.png" alt="DaulatP_23-1722979627218.png" /></span></P><P>RUN SAP HANA Onboarding Wizard.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_24-1722979627228.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147445i227971A929E8E9C3/image-size/medium?v=v2&px=400" role="button" title="DaulatP_24-1722979627228.png" alt="DaulatP_24-1722979627228.png" /></span></P><P>Enter Secret.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_25-1722979627242.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147447i9ED1E527A95BA4EE/image-size/medium?v=v2&px=400" role="button" title="DaulatP_25-1722979627242.png" alt="DaulatP_25-1722979627242.png" /></span></P><P><STRONG>Create Secret below:</STRONG></P><P>sudo /opt/act/bin/udsagent secret --reset –restart</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_26-1722979627249.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147446i1F8D0D5CA9068FFE/image-size/medium?v=v2&px=400" role="button" title="DaulatP_26-1722979627249.png" alt="DaulatP_26-1722979627249.png" /></span></P><P>If get above error remove –restart & give below command.</P><P>sudo /opt/act/bin/udsagent secret --reset</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_27-1722979627256.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147449i351011ED41DBAD41/image-size/medium?v=v2&px=400" role="button" title="DaulatP_27-1722979627256.png" alt="DaulatP_27-1722979627256.png" /></span></P><P>Copy Key from above command & put in SECRET</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_28-1722979627270.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147448iBAE0A43C805247F2/image-size/medium?v=v2&px=400" role="button" title="DaulatP_28-1722979627270.png" alt="DaulatP_28-1722979627270.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_29-1722979627282.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147450i591C02AE2F9ABDD3/image-size/medium?v=v2&px=400" role="button" title="DaulatP_29-1722979627282.png" alt="DaulatP_29-1722979627282.png" /></span></P><P>Host Updated Successfully.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_30-1722979627288.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147452iC26CC5A976A9163A/image-size/medium?v=v2&px=400" role="button" title="DaulatP_30-1722979627288.png" alt="DaulatP_30-1722979627288.png" /></span></P><P> </P><P>Select HANA SID which needs to onboard & Click on OK.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_31-1722979627295.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147451i92A82A1C191E6859/image-size/medium?v=v2&px=400" role="button" title="DaulatP_31-1722979627295.png" alt="DaulatP_31-1722979627295.png" /></span></P><P>Select SID & Next.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_32-1722979627302.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147453i7372590EFD68101C/image-size/medium?v=v2&px=400" role="button" title="DaulatP_32-1722979627302.png" alt="DaulatP_32-1722979627302.png" /></span></P><P>Configure Backup options for HANA SID :</P><P>Provide USER STORE KEY, Select BACKUP Capture Method, Retention & Click on Save. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_33-1722979627312.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147455i5C49D0F78D8081CA/image-size/medium?v=v2&px=400" role="button" title="DaulatP_33-1722979627312.png" alt="DaulatP_33-1722979627312.png" /></span></P><P>Click on Next</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_34-1722979627321.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147454i8F3FF2E95E3C9EA4/image-size/medium?v=v2&px=400" role="button" title="DaulatP_34-1722979627321.png" alt="DaulatP_34-1722979627321.png" /></span></P><P>FINISH</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_35-1722979627326.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147456i8F03553A1E8C6CA2/image-size/medium?v=v2&px=400" role="button" title="DaulatP_35-1722979627326.png" alt="DaulatP_35-1722979627326.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_36-1722979627336.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147457i2BE39FE139BE904B/image-size/medium?v=v2&px=400" role="button" title="DaulatP_36-1722979627336.png" alt="DaulatP_36-1722979627336.png" /></span></P><P>Onboarding Finished Successfully.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_37-1722979627347.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147459i03387D5C36B321E9/image-size/medium?v=v2&px=400" role="button" title="DaulatP_37-1722979627347.png" alt="DaulatP_37-1722979627347.png" /></span></P><P>Run Ad-hoc backup:</P><P>Go to App Manager à Applications</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_38-1722979627360.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147458i398A99AE8B6AA2D4/image-size/medium?v=v2&px=400" role="button" title="DaulatP_38-1722979627360.png" alt="DaulatP_38-1722979627360.png" /></span></P><P>Select SID & Click on manage backup Configuration.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_39-1722979627382.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147460i09E0053A34E0B013/image-size/medium?v=v2&px=400" role="button" title="DaulatP_39-1722979627382.png" alt="DaulatP_39-1722979627382.png" /></span></P><P>Select Tamplate created for HANA backup & Profile & click on Apply Plan</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_40-1722979627395.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147461i3B85E43BE987D1E0/image-size/medium?v=v2&px=400" role="button" title="DaulatP_40-1722979627395.png" alt="DaulatP_40-1722979627395.png" /></span></P><P> </P><P>Apply backup plan.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_41-1722979627408.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147462i2B87E436FB7DBCDA/image-size/medium?v=v2&px=400" role="button" title="DaulatP_41-1722979627408.png" alt="DaulatP_41-1722979627408.png" /></span></P><P>Click on Okay</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_42-1722979627419.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147463i3DD108749D19F49B/image-size/medium?v=v2&px=400" role="button" title="DaulatP_42-1722979627419.png" alt="DaulatP_42-1722979627419.png" /></span></P><P>Click on Run Now to run ad-hoc backup.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_43-1722979627436.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147465i7B9429F44DE6A28D/image-size/medium?v=v2&px=400" role="button" title="DaulatP_43-1722979627436.png" alt="DaulatP_43-1722979627436.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_44-1722979627446.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147464i20DB9741EF3CDA38/image-size/medium?v=v2&px=400" role="button" title="DaulatP_44-1722979627446.png" alt="DaulatP_44-1722979627446.png" /></span></P><P>Go to Monitor – Job Monitor:</P><P>Backup Job Started.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_45-1722979627458.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147466iF83D00E3E700FB8A/image-size/medium?v=v2&px=400" role="button" title="DaulatP_45-1722979627458.png" alt="DaulatP_45-1722979627458.png" /></span></P><P>Check backup logs on below OS location:</P><P>tail -f /var/act/log/UDSAgent.log</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_46-1722979627462.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147467i7EF36E14AD175D37/image-size/medium?v=v2&px=400" role="button" title="DaulatP_46-1722979627462.png" alt="DaulatP_46-1722979627462.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_47-1722979627522.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147468iDCBD4B53569F8E58/image-size/medium?v=v2&px=400" role="button" title="DaulatP_47-1722979627522.png" alt="DaulatP_47-1722979627522.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DaulatP_48-1722979627540.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147469iC52B8DD5D1B7EF34/image-size/medium?v=v2&px=400" role="button" title="DaulatP_48-1722979627540.png" alt="DaulatP_48-1722979627540.png" /></span></P><P>Backup Completed Successfully.</P>2024-08-12T07:33:01.981000+02:00https://community.sap.com/t5/technology-blogs-by-members/concepts-of-core-data-services-cds/ba-p/13793880Concepts of Core Data Services (CDS)2024-08-14T08:57:26.030000+02:00kiran_israni3https://community.sap.com/t5/user/viewprofilepage/user-id/283082<H3 id="toc-hId-1152118240"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Metaphor: Building a Custom Library</FONT></H3><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Imagine a custom library (a physical one, with bookshelves and books) that caters to specific readers with unique needs. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Imagine we’re setting up a specialized library focused on self-help and mental health topics. Our goal is to organize this library so that readers can easily find information relevant to their needs.</FONT></P><P class=""> </P><P><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kiran_israni3_0-1723611029258.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151458i87097752927E8658/image-size/medium?v=v2&px=400" role="button" title="kiran_israni3_0-1723611029258.jpeg" alt="kiran_israni3_0-1723611029258.jpeg" /></span></FONT></P><H4 id="toc-hId-1084687454"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">1. Books (Tables)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In this library, the <STRONG>books</STRONG> are like the <STRONG>tables</STRONG> in your database. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Each book contains detailed information on a specific topic, such as anxiety management, cognitive behavioral therapy, or stress relief techniques. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Similarly, a database table holds detailed records (rows) on a specific subject (columns).</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Example:</STRONG> We have a book (table) on “Stress Management Techniques” that includes details like different methods for stress relief, case studies, and practical exercises.</FONT></P><P class=""> </P><H4 id="toc-hId-888173949"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">2. Bookshelves (CDS Views)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">A <STRONG>bookshelf</STRONG> is like a <STRONG>CDS View</STRONG>. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">It doesn’t hold books directly but arranges selected books in a way that makes it easy for our readers to find specific information. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">When we create a CDS view, we are essentially curating specific data from our tables and organizing it on a bookshelf.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Example:</STRONG> We create a bookshelf (CDS view) that displays only books about “Mindfulness Practices.” This helps readers interested in mindfulness quickly find relevant resources without sifting through the entire collection.</FONT></P><H4 id="toc-hId-691660444"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">3. Sections (Projections)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Each bookshelf have <STRONG>sections</STRONG> that categorize the books even further. </FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In CDS View, Projections allow us to create a focused view by selecting only certain columns (fields) from a table. It’s like choosing to display only specific chapters or sections of a book on a particular bookshelf.</FONT><BR /><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">This makes it easier for our readers to find exactly what they need without getting overwhelmed by too much information.</FONT><BR /><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In a CDS view, when we create a projection, we’re essentially telling the system, “I only want to see these specific columns from the table, and I don’t need the rest right now.”</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Main Entity: MindfulnessPractices</STRONG></FONT></P><P> </P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>entity MindfulnessPractices {
key ID : Integer;
PracticeName : String(100); // 'Deep Breathing', 'Body Scan'
TechniqueType : String(50); // 'Breathing', 'Meditation', 'Walking'
Duration : Integer; // Duration in minutes, e.g., 10, 20, 30
DifficultyLevel : String(20); // 'Beginner', 'Intermediate', 'Advanced'
Benefits : String(200); // 'Reduces anxiety', 'Improves focus'
}</code></pre><P> </P><P> </P><P> </P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Projection Example: Breathing Exercises</STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Create a projection to focus specifically on <STRONG>Breathing Exercises</STRONG></FONT></P><P> </P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>entity BreathingExercises as projection on MindfulnessPractices {
PracticeName,
TechniqueType,
Duration,
Benefits
} where TechniqueType = 'Breathing';</code></pre><P> </P><P> </P><P> </P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Another projection example for <STRONG>Body Scan Meditation</STRONG></FONT></P><P> </P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>entity BodyScanMeditation as projection on MindfulnessPractices {
PracticeName,
Duration,
DifficultyLevel,
Benefits
} where TechniqueType = 'Meditation' and PracticeName = 'Body Scan';</code></pre><P> </P><P> </P><P> </P><DIV class=""><HR /></DIV><DIV class=""><DIV class=""><H4 id="toc-hId-495146939"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Library Card (Key Fields)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Each book in our library have a unique <STRONG>library card</STRONG> that identifies it. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In CDS views, this is equivalent to the <STRONG>key fields</STRONG>. Key fields uniquely identify each record in our view.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Example:</STRONG> The ISBN or library card of a book is like a key field in a table, ensuring each book is distinct and easily retrievable.</FONT></P><P class=""> </P><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kiran_israni3_2-1723611638720.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151460i7FD6C3B279C62F17/image-size/medium?v=v2&px=400" role="button" title="kiran_israni3_2-1723611638720.jpeg" alt="kiran_israni3_2-1723611638720.jpeg" /></span></FONT><P> </P></DIV></DIV><DIV class=""><HR /></DIV><DIV class=""><DIV class=""><H4 id="toc-hId-298633434"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Index (Annotations)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Annotations in CDS views are like footnotes or highlights in our library books — they provide extra information that can be useful for readers or systems using the data.</FONT></P><H4 id="toc-hId-102119929"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">What are Annotations?</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Annotations add metadata to entities, fields, or projections in CDS views. This metadata can provide additional information, control how data is displayed, or enforce certain rules.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Example:</STRONG> An annotation highlights which books provide practical exercises or which ones are written by experts in the field, helping readers quickly identify valuable resources.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Main Entity “MindfulnessPractices” with Annotations:</STRONG></FONT></P></DIV></DIV><P> </P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>@AbapCatalog.tableCategory: #TRANSPARENT
@EndUserText.label: 'Mindfulness Practices Techniques'
entity MindfulnessPractices {
key ID : Integer;
@EndUserText.label: 'Name of the Practice'
PracticeName : String(100); // E.g., 'Deep Breathing', 'Body Scan'
@EndUserText.label: 'Type of Technique'
TechniqueType : String(50); // E.g., 'Breathing', 'Meditation', 'Walking'
@EndUserText.label: 'Duration in Minutes'
Duration : Integer; // E.g., 10, 20, 30 minutes
@EndUserText.label: 'Difficulty Level'
DifficultyLevel : String(20); // E.g., 'Beginner', 'Intermediate', 'Advanced'
@EndUserText.label: 'Benefits of the Practice'
Benefits : String(200); // E.g., 'Reduces anxiety', 'Improves focus'
}</code></pre><P> </P><P> </P><P> </P><P> </P><H4 id="toc-hId--94393576"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Explanation of Annotations</FONT></H4><OL class="lia-list-style-type-lower-alpha"><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>@AbapCatalog.tableCategory: #TRANSPARENT</STRONG>: Specifies the type of database table (e.g., #TRANSPARENT, #VIEW, #DDL) that will be generated. In this case, a transparent table is created.</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>@EndUserText.label</STRONG>:This annotation is like putting a title or caption on a section of our bookshelf to make it clear what each field or entity represents. <STRONG>Adds a user-friendly label to fields or entities in CDS Views.</STRONG></FONT></LI></OL><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">For example, @EndUserText.label: 'Name of the Practice' adds a label to the PracticeName field, so when someone views this data, they see a more descriptive title instead of just the technical field name.</FONT></P><H4 id="toc-hId--290907081"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Projections with Annotations</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Create a projection for <STRONG>Breathing Exercises</STRONG> with annotations.</FONT></P><P> </P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>@EndUserText.label: 'Breathing Exercises'
entity BreathingExercises as projection on MindfulnessPractices {
@EndUserText.label: 'Name of the Practice'
PracticeName,
@EndUserText.label: 'Type of Technique'
TechniqueType,
@EndUserText.label: 'Duration in Minutes'
Duration,
@EndUserText.label: 'Benefits of the Practice'
Benefits
} where TechniqueType = 'Breathing';</code></pre><P> </P><P> </P><P> </P><H4 id="toc-hId--487420586"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Explanation of Annotations in Projection:</FONT></H4><OL class="lia-list-style-type-lower-alpha"><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>@EndUserText.label: 'Breathing Exercises'</STRONG>: This annotation gives the entire projection a descriptive name<STRONG>,</STRONG> so users know they are looking at a list of Breathing Exercises.</FONT></LI></OL><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Annotations are a powerful feature in CDS views, providing additional metadata to control how data is processed, displayed, or integrated with other systems. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Here are some of the most commonly used annotations in CDS views:</STRONG></FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>@ ObjectModel Annotations</STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">These annotations are used to define object modeling behavior, such as creating associations, determining the behavior of actions, or controlling how the data is exposed in OData services.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Imagine we’re <STRONG>organizing a self-help workshop</STRONG>. We have several roles, activities, and rules in place to ensure everything runs smoothly. The <STRONG>@ObjectModel</STRONG><STRONG> annotations</STRONG> are like the <STRONG>guidelines and protocols that help us manage the workshop.</STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><U><STRONG>@ObjectModel.association.type</STRONG></U></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">This defines a dependent relationship between entities, where one cannot exist without the other.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>Metaphor</STRONG>: <STRONG>Relationships between Participants</STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">In our workshop, participants form pairs or small groups for certain activities. We need to define how these relationships work:</FONT></P><UL class=""><LI><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>#TO_COMPOSITION_CHILD</STRONG>: This is like saying, "These two participants must work together as a team. If one leaves, the other can’t continue on their own."</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>#TO_COMPOSITE_PARENT</STRONG>: This could be, "This participant is the leader of their group. If they leave, the group disbands."</FONT></LI></UL><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><U><STRONG>@ObjectModel.readOnly</STRONG></U></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">Imagine we have some people attending the workshop just as observers — they can watch, but they can’t participate or change anything. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">This marks certain data as read-only, meaning it can’t be altered, just like observers in our workshop.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG><U>@ObjectModel.usageType</U></STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">It is like <STRONG>Purpose</STRONG> of the Workshop. Different workshops serve different purposes. Some are for therapy (healing and processing emotions), others for training (learning new skills), and others still for discussion (sharing ideas).</FONT><BR /><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">This defines <STRONG>how the data is used or what purpose it serves</STRONG>, much like determining the goal of our workshop.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><U><STRONG>@ObjectModel.foreignKey.association </STRONG></U></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"> <STRONG>Links Between Workshop Sessions. </STRONG>Suppose we have multiple sessions in our workshop, and some participants need to attend a particular session because it's linked to another. For instance, if they attend "Session A: Introduction to Mindfulness," they should also attend "Session B: Advanced Mindfulness."</FONT><BR /><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>This sets up a connection or dependency between entities, similar to linking workshop sessions.</STRONG></FONT></P><P> </P><P> </P><pre class="lia-code-sample language-sql"><code>@ObjectModel.association.type: #TO_COMPOSITION_CHILD
@ObjectModel.readOnly: true
// Indicates that the CDS view is intended for use in SAP S/4HANA Public Cloud.
@ObjectModel.usageType.serviceQuality: #S4_PUBLIC_CLOUD
//Indicates that the CDS view is intended for use in SAP S/4HANA On-Premise.
@ObjectModel.usageType.serviceQuality: #S4_HANA_ON_PREMISE
//Indicates that the CDS view is intended for analytical purposes, such as in reporting or dashboards.
@ObjectModel.usageType.application: #ANALYTICS
//Indicates that the CDS view is used in transactional contexts, where data changes frequently and operations like create, update, or delete are common.
@ObjectModel.usageType.application: #TRANSACTIONAL
// Indicates that the CDS view is used for search purposes, optimizing it for quick data retrieval.
@ObjectModel.usageType.application: #SEARCH
@ObjectModel.foreignKey.association: 'SessionLink'</code></pre><P> </P><P> </P><H4 id="toc-hId--1181651186"><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG><U>@ObjectModel.usageType.semanticKey</U></STRONG></FONT></H4><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">Imagine we’re setting up a system to manage a library. Each book in the library has a unique ID number (like B12345). This number is great for computers because it’s unique, but for humans, it doesn’t really mean much. It's just a random string of characters.</FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">Now, let's say we also want to use the <STRONG>ISBN</STRONG> (International Standard Book Number) as a key. The ISBN is a number that people recognize and understand. It’s printed on every book, and it uniquely identifies that book across the world. This ISBN is a <STRONG>semantic key</STRONG>—it’s still unique, but it also carries meaning because it’s widely recognized in the context of books.</FONT></P><H3 id="toc-hId--1084761684"><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">How Does This Relate to CDS Views?</FONT></H3><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">In a CDS view, <STRONG>@ObjectModel.usageType.semanticKey</STRONG> is used to mark fields that are meaningful and could be used as an alternative key to identify a record, instead of just relying on a technical ID. This is particularly useful when you want to expose your data in a way that’s more understandable to users or other systems.</FONT></P><P> </P><pre class="lia-code-sample language-sql"><code>@AbapCatalog.sqlViewName: 'MINDFULNESS_VIEW'
@EndUserText.label: 'Mindfulness Practice Data'
define view MindfulnessPractice
{
key PracticeID : String(10); // Technical ID, like 'P12345'
@ObjectModel.usageType.semanticKey: true
PracticeName : String(100); // Semantic Key, like 'Breathing Techniques'
@ObjectModel.usageType.semanticKey: true
InstructorName : String(100); // Semantic Key, like 'Kiran'
@ObjectModel.usageType.semanticKey: true
PracticeDurationMinutes : Integer; // Semantic Key, like 30
}</code></pre><P> </P><H3 id="toc-hId--1281275189"><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>E</STRONG>xplanation</FONT></H3><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>PracticeID</STRONG>: This is like the unique internal code that the system uses to keep track of each mindfulness practice session, similar to a library’s ID for a book.</FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">By marking <STRONG>PracticeName</STRONG>, <STRONG>InstructorName</STRONG>, and <STRONG>PracticeDurationMinutes</STRONG> as semantic keys, we tell the system that these fields carry real-world meaning and can be used to identify the practice sessions in a more understandable way, just like using the title of a mindfulness book rather than just a random <STRONG>PracticeID</STRONG> code P12345.</FONT></P><H4 id="toc-hId--1771191701"><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG><U>@ObjectModel.usageType.dataCategory</U></STRONG></FONT></H4><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG><U>I</U></STRONG>magine we’re organizing chapters in a mindfulness practice book. Each chapter might serve a different purpose—some chapters are core practices that everyone should follow, while others are supplementary tips or additional resources.</FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000">In the context of CDS views, <STRONG>@ObjectModel.usageType.dataCategory</STRONG> is used to <STRONG>label data based on its role</STRONG>. It helps us understand whether the data is essential (like core practices), frequently changing (like notes from a recent workshop), or supportive (like reference materials).</FONT></P><P><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>@ObjectModel.usageType.dataCategory</STRONG> helps categorize different types of data:</FONT></P><UL><LI><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>#MASTER</STRONG>: Core data that’s fundamental and doesn’t change often, like the main chapters in our mindfulness book.</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>#TRANSACTIONAL</STRONG>: Data that records ongoing activities and changes frequently, like notes or exercises we do in each session.</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="3" color="#000000"><STRONG>#REFERENCE</STRONG>: Supplementary data that supports the core content, like an index or a list of contributors in the book.</FONT></LI></UL><P> </P><pre class="lia-code-sample language-sql"><code>@AbapCatalog.sqlViewName: 'MINDFULNESS_BOOK_VIEW'
@EndUserText.label: 'Mindfulness Practice Chapters'
define view MindfulnessChapters
{
key ChapterID : String(10); // Technical ID, like 'C001'
@ObjectModel.usageType.dataCategory: #MASTER
CorePracticeName : String(100); // Core Practices, like 'Mindful Breathing'
@ObjectModel.usageType.dataCategory: #TRANSACTIONAL
RecentSessionNotes : String(500); // Session Notes, like 'Reflections from Aug 2024 workshop'
@ObjectModel.usageType.dataCategory: #REFERENCE
SupplementaryMaterialTitle : String(100); // Supplementary Materials, like 'Guide to Deep Breathing'
}</code></pre><P> </P><DIV class=""><HR /></DIV><DIV class=""><DIV class=""><H4 id="toc-hId--1967705206"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Catalogs (Associations)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Let’s say we have the following books (tables) in our library:</FONT></P><OL class=""><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Book A: Anxiety Management Techniques</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Book B: Mindfulness Practices</FONT></LI><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Book C: Cognitive Behavioral Therapy (CBT)</FONT></LI></OL><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Now, we want to create an association between these books so that when someone is exploring one book, they can easily find related ones.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Creating an Association:</STRONG></FONT></P><OL class=""><LI><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Catalog Entry (Association Definition)</STRONG></FONT></LI></OL><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">We <STRONG>create</STRONG> a catalog entry that says, “If a reader is looking at ‘Anxiety Management Techniques’ (Book A), they may be interested in ‘Mindfulness Practices’ (Book B).”</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In technical terms, this is an <STRONG>association</STRONG> between the Book A and Book B.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">2. <STRONG>Cross-Reference (Using the Association)</STRONG></FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">When a reader is reading Book A, our <STRONG>catalog directs</STRONG> them to also check out Book B.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Similarly, in a CDS view, if we are querying data from one table, the association allows us to pull in relevant data from the another table.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">We can extend this further by linking Book C (CBT) with both Book A and Book B, creating a network of interconnected topics.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>This makes our library (or CDS view) more powerful because it provides a holistic view by showing how different topics relate to each other.</STRONG></FONT></P><BLOCKQUOTE><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">How Associations Work in a CDS View:</FONT></BLOCKQUOTE><BLOCKQUOTE><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Syntax:</STRONG> When we define an association in a CDS view, we are essentially creating a “catalog entry” in our library that says, “This data (from Table A) is related to that data (from Table B).”</FONT></BLOCKQUOTE><BLOCKQUOTE><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Usage:</STRONG> When we query the CDS view, we can use these associations to join tables and bring in related data.</FONT></BLOCKQUOTE><BLOCKQUOTE><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Cardinality:</STRONG> Associations can also define the nature of the relationship — whether it’s a one-to-one relationship (like a single book with a single corresponding reference) or a one-to-many relationship (one book that refers to multiple others).</FONT></BLOCKQUOTE></DIV></DIV><DIV class=""><HR /></DIV><DIV class=""><DIV class=""><H4 id="toc-hId-2130748585"><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Borrowing Policy (Authorization)</FONT></H4><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">Finally, our library will have a <STRONG>borrowing policy</STRONG> to control who can access certain books. </FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">In CDS views, <STRONG>authorization</STRONG> rules determine who can view or modify the data.</FONT></P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000"><STRONG>Example:</STRONG> Only certified mental health professionals can access certain specialized books, just like only authorized users can access sensitive data in a CDS view.</FONT></P><P class=""> </P><P class=""><FONT face="lucida sans unicode,lucida sans" size="4" color="#000000">By thinking of CDS views as a thoughtfully organized library focused on self-help and mental health, we can better understand how they help structure and present data efficiently, making it easier for users to find exactly what they need.</FONT></P></DIV></DIV>2024-08-14T08:57:26.030000+02:00https://community.sap.com/t5/technology-blogs-by-sap/leveraging-image-embedding-and-hana-vector-engine-for-reverse-product/ba-p/13798320Leveraging Image Embedding and HANA Vector Engine for Reverse Product Search2024-08-19T06:16:05.780000+02:00HarukiSuzawahttps://community.sap.com/t5/user/viewprofilepage/user-id/1651403<P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="image (3).png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/153830i7FE249F003A1B11F/image-size/large?v=v2&px=999" role="button" title="image (3).png" alt="image (3).png" /></span></P><P><FONT size="6"><STRONG><BR />Introduction</STRONG></FONT></P><P>HANA Cloud Vector Engine significantly accelerates the development of Retrieval-Augmented Generation (RAG) applications. Traditionally, RAG solutions have focused on leveraging text data from internal documents. However, with the rise of multimodal AI, as seen with GPT-4o, there is a growing trend towards accepting various input types such as images, audio, and video. To maximize the power of Vector Engine, integrating image similarity search is essential for enhancing its capabilities.</P><P>Reference: <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="_self" rel="noopener noreferrer">HANA Database Vector Engine Guide</A></P><P><STRONG><FONT size="6">Use Cases</FONT></STRONG></P><P>Imagine a potential customer visiting a friend’s house and discovering an amazing chair. However, his friend can’t remember where he bought it. This is where Reverse Product Search comes into play. The customer takes a picture of the chair and finds that your company sells the exact same model. Reverse Product Search is particularly useful when customers cannot identify a product by name or barcode. It’s also ideal for finding repair parts or similar items.</P><P><STRONG><FONT size="6">Image Similarity Search with HANA Vector Engine</FONT></STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Slide2.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/154383iE5C81D59023E02EC/image-size/large?v=v2&px=999" role="button" title="Slide2.png" alt="Slide2.png" /></span></P><P><STRONG><FONT size="5">Embedding Product Images</FONT></STRONG></P><P>The first step is to convert images into num erical data so that a computer can measure the similarity between them. In this prototype, we used OpenAI's CLIP, a zero-shot model that links images and text for cross-modal understanding without task-specific training.</P><P> </P><PRE>from langchain_experimental.open_clip import OpenCLIPEmbeddings
clip_embd = OpenCLIPEmbeddings(model_name="ViT-g-14", checkpoint="laion2b_s34b_b88k")</PRE><P> </P><P>This code embeds the product images and stores them in HANA Cloud.</P><P>Product images are preloaded into image_storage using the Product Master API.</P><P> </P><PRE>def process_images(clip_embd, hana_conn, image_storage):
cursor = hana_conn.cursor()
images = image_storage.get_images()
csv_rows = []
for i, img in enumerate(images):
model = 'OpenCLIP'
embedding = clip_embd.embed_image([BytesIO(img["data"])])
csv_rows.append([i,img["name"],model,str(embedding[0])])
sql = '''
INSERT INTO EMBEDDING_CONTENT ("id","content","model","EMBEDDING")
VALUES (?,?,?,TO_REAL_VECTOR(?))
'''
try:
cursor.executemany(sql, csv_rows)
except Exception as e:
hana_conn.rollback()
print("An error occurred:", e)
finally:
cursor.close()</PRE><P> </P><P><STRONG><FONT size="5">Retrieving Similar Images</FONT></STRONG></P><P>Once the product images are embedded and stored in HANA Cloud, you can retrieve images similar to a photo taken by a smartphone. Specifically, this code embeds the mobile_image and compares the cosine similarity between the mobile_image and each image in HANA Cloud. Finally, it retrieves and ranks the top 5 images based on their similarity scores.</P><P> </P><PRE>def process_mobile_image(clip_embd, hana_conn, mobile_image):
cursor = hana_conn.cursor()
embedding = clip_embd.embed_image([BytesIO(mobile_image)])
sql = '''
SELECT TOP 5 "id"
FROM "EMBEDDING_CONTENT"
ORDER BY COSINE_SIMILARITY("EMBEDDING", TO_REAL_VECTOR(?)) DESC
'''
try:
cursor.execute(sql, (str(embedding[0]),))
retrieved_products = cursor.fetchall()
except Exception as e:
hana_conn.rollback()
print("An error occurred:", e)
finally:
cursor.close()
return retrieved_products</PRE><P> </P><P><STRONG><FONT size="6">Reverse Product Search with BTP SDK for iOS</FONT></STRONG></P><P><STRONG><FONT size="5">Interacting with Product Master API</FONT></STRONG></P><P>Product images are managed as attachments of product master data so that they can be easily accessed by application.<BR />To download attachments, you have to use <STRONG>Get All Originals</STRONG> operation to retrieve the metadata of the attachment.<BR />Reference: <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/7489fa08cede494cbdf08fa3651598af/8b30156db25f4fd1b9b9cf1436dfd16d.html" target="_self" rel="noopener noreferrer">Get All Originals</A></P><P> </P><PRE>GET <host>/sap/opu/odata/sap/API_CV_ATTACHMENT_SRV/GetAllOriginals?LinkedSAPObjectKey='TestEKKO'&BusinessObjectTypeName='EKKO_RFQ'</PRE><P><BR />Using the metadata retrieved, you can download an attachment from the product master data.<BR />Reference: <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/7489fa08cede494cbdf08fa3651598af/f28b19a44a074efeb977841a1f7fa72a.html" target="_self" rel="noopener noreferrer">Download Attachment Content</A></P><P> </P><PRE>GET<host>/sap/opu/odata/sap/API_CV_ATTACHMENT_SRV/AttachmentContentSet(DocumentInfoRecordDocType='SL1',DocumentInfoRecordDocNumber='10000002076',DocumentInfoRecordDocPart='000',DocumentInfoRecordDocVersion='00',LogicalDocument='1C98EC1818551EDA998508E3A05E0BCE',ArchiveDocumentID='1C98EC1818551EDA998508E3A05E4BCE',LinkedSAPObjectKey='TESTEKKO',BusinessObjectTypeName='EKKO_RFQ')/$value</PRE><P> </P><P><STRONG><FONT size="5">BTP SDK for iOS</FONT></STRONG></P><P>To build an end-to-end solution, I have developed an iOS application using the BTP SDK for iOS. This application captures images, sends them to a server-side application, and displays a ranking of similar products.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Slide1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/153795i0A03B12A94F6D671/image-size/large?v=v2&px=999" role="button" title="Slide1.png" alt="Slide1.png" /></span></P><P> </P><P><STRONG><FONT size="6">Conclusion</FONT></STRONG></P><P>As we have explored, integrating Image Similarity Search unveils new potential for HANA Vector Engine. Additionally, <FONT size="3">seamless inte</FONT>gration with SAP technologies such as S/4HANA Product Master and BTP SDK for iOS enables the efficient development of sophisticated and innovative enterprise applications.</P><P> </P><P><STRONG><FONT size="6">References</FONT></STRONG></P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/enhancing-s-4hana-with-sap-hana-cloud-vector-store-and-genai/ba-p/13655191" target="_blank">Enhancing S/4HANA with SAP HANA Cloud Vector Store and GenAI</A></P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/first-steps-using-the-hana-vector-engine-with-sap-gen-ai/ba-p/13649384" target="_blank">First steps using the Hana Vector Engine with SAP GEN AI</A></P><P><A href="https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/mastering-sap-hana-cloud-vector-engine-for-rag-driven-llm-applications-an/ba-p/13662515" target="_blank">Mastering SAP HANA Cloud Vector Engine for RAG-driven LLM Applications: An Insightful Guide</A></P><P><!-- notionvc: e14fe2d5-a3b3-4452-b968-ccb1cc931f38 --></P>2024-08-19T06:16:05.780000+02:00https://community.sap.com/t5/technology-blogs-by-sap/new-pilots-to-empower-customers-to-leverage-ai-and-sap-hana-cloud/ba-p/13799302New pilots to empower customers to leverage AI and SAP HANA Cloud capabilities to innovate faster2024-08-19T12:53:19.760000+02:00RobertKellyhttps://community.sap.com/t5/user/viewprofilepage/user-id/7029<P>Artificial Intelligence or AI is disrupting business everywhere! Organizations are looking at ways to innovate and update their business processes to make best use of AI to make savings and add improved functionality to their customers. As we come to terms with AI’s vast potential, SAP has adjusted its strategy with the goal of becoming not only the leading enterprise application provider but also the number one business AI company. SAP provides opportunities to use AI to unlock new levels of efficiency and innovation in their customer’s businesses.</P><P>To support this strategy, in SAP Enterprise Support we are providing two upcoming pilots of Expert Guided Implementation services through the <A href="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-advisory-council.html?anchorId=section_547564419_co" target="_blank" rel="noopener noreferrer">SAP Enterprise Support Advisory Council program</A> designed to empower customers with the knowledge and skills to leverage SAP HANA Cloud’s advanced capabilities and AI to improve efficiency and innovation in organizations.</P><P><A href="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy/expert-guided-implementation.html" target="_blank" rel="noopener noreferrer">Expert Guided Implementation</A> (EGI) services are multi-day remote delivered sessions, delivered through by <A href="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy.html" target="_blank" rel="noopener noreferrer">SAP Enterprise Support Academy</A> and typically delivered over 3-5 working days. In short, this is a virtual classroom style session, where an SAP expert explains step-by-step the configuration of a set objective using training materials and step-by-step demonstration.</P><P>In our first pilot EGI service, we delve into Multiple Model Programming using the SAP HANA Vector Engine and explore how Generative AI, specifically Retrieval-Augmented Generation (RAG), can transform customer’s data management and AI strategies. The service is designed to provide a comprehensive understanding of SAP HANA Cloud’s advanced features and how they can be leveraged to support cutting-edge AI applications. By the end of the service, customers will be equipped with skills to implement multiple model programming, utilize the Vector Engine, and enhance your AI models with Retrieval Augmented Generation (RAG). Plus, insights into effective data tiering strategies to optimize data management will be provided.</P><P>In our second pilot EGI service, we equip customers with the skills and knowledge to harness the power of the SAP Cloud Application Programming (CAP) model in SAP HANA Cloud. The service will introduce you to SAP Build Code and Joule, SAP’s generative AI assistant, to streamline application development processes. The service provides with a comprehensive understanding of the SAP CAP model and how to effectively use SAP Build Code and Joule to accelerate your application development. By the end of the service, customers will have the skills to develop robust CAP applications, utilize SAP HANA Cloud for data management, and leverage generative AI to enhance your coding efficiency.</P><P>Please join us for this exciting journey into the world of Generative AI, Joule and SAP HANA Cloud and unlock new possibilities for your business! For further queries including how to join these pilots, reach out to the SAP Enterprise Support Advisory Council directly at <A href="mailto:esac@sap.com" target="_blank" rel="nofollow noopener noreferrer">mailto:esac@sap.com</A>.</P><P>Thanks and Regards,</P><P>Robert Kelly</P><P>BTP Lead – SAP Enterprise Support</P>2024-08-19T12:53:19.760000+02:00https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/hands-on-tutorial-machine-learning-with-sap-hana-cloud/ba-p/13683430Hands-on Tutorial: Machine Learning with SAP HANA Cloud2024-08-23T15:29:23.621000+02:00AndreasForsterhttps://community.sap.com/t5/user/viewprofilepage/user-id/14188<P> </P><P>Since SAP HANA Cloud is a <SPAN><A href="https://www.sap.com/products/technology-platform/hana/features/multi-model.html" target="_blank" rel="noopener noreferrer">multi-model</A> database management system, it can store, process and enrich different kinds of data (ie tables, geo-spatial, graph) with its in-built engines. This blog shows how to implement a SAP Business AI project with a time-series forecast by using the embedded <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-c9eeed7?locale=en-US" target="_blank" rel="noopener noreferrer">Predictive Analysis Library</A>. </SPAN></P><P><SPAN>Trigger a forecast from your favourite Python environment without having to extract the data from SAP HANA Cloud, thanks to our Python package <A href="https://pypi.org/project/hana-ml/" target="_blank" rel="noopener nofollow noreferrer">hana_ml</A>. Avoid data duplication (keeping your architecture lean) and benefit from the in-memory power. </SPAN></P><P><SPAN>The whole code of this project can be downloaded from<FONT color="#FF0000"> <A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/tree/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud" target="_blank" rel="noopener nofollow noreferrer"><FONT color="#000000">this repository</FONT></A></FONT><FONT color="#000000">.</FONT></SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="00 banner.png" style="width: 738px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/144625iAFF7AFFC680B52A3/image-size/large?v=v2&px=999" role="button" title="00 banner.png" alt="00 banner.png" /></span></SPAN></P><H1 id="toc-hId-864396131">Table of contents</H1><UL><LI>Use case</LI><LI>Architecture / prerequisites</LI><LI>SAP HANA Cloud</LI><LI>Python / Jupyter Notebooks</LI><LI>Time-series forecasting<BR /><UL><LI>Data upload</LI><LI>Forecasting single time-series</LI><LI>Forecasting multiple time-series</LI></UL></LI><LI>Going further</LI></UL><P> <EM>FYI, the new blogging platform on the SAP Community now allows for multiple authors to work on the same document. That's our first attempt, and we ourselves at least like the outcome </EM><span class="lia-unicode-emoji" title=":grinning_face:">😀</span><EM> <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/14188">@AndreasForster</a> and <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/45487">@YannickSchaper</a> </EM></P><P> </P><H1 id="toc-hId-667882626">Use case</H1><P><FONT color="#000000">We have chosen to go through a time-series forecasting example, as this is an extremely common requirement for the most diverse projects. Many standard applications from SAP already have time-series forecasting built in, such as <A href="https://learning.sap.com/learning-journeys/apply-ai-powered-augmented-analytics-to-business-data-in-sap-analytics-cloud/introducing-time-series-models-in-sap-analytics-cloud-smart-predict_db245d4d-0177-4403-8ef2-74f5e4cfdfcf" target="_blank" rel="noopener noreferrer">SAP Analytics Cloud</A> or <A href="https://learning.sap.com/learning-journeys/discovering-sap-ibp-for-s-op/implementing-time-series-based-supply-planning-with-sap-ibp" target="_blank" rel="noopener noreferrer">SAP Integrated Business Planning</A>. </FONT><FONT color="#000000">If you have a requirement, that goes beyond a standard application, you can leverage the SAP Business Technology Platform (BTP), ie SAP HANA Cloud. </FONT></P><P><FONT color="#000000">In our case now we would like to forecast how many nights foreign tourists or business travellers will spend in Switzerland in the coming months. We are interested in the total numbers, but we also want to know how many nights different nationalities will spend in the country. </FONT></P><P><FONT color="#000000">Such forecasts of overnight stays can be useful for many purposes, for instance to help decide where to spend a Marketing budget. It can also help the hotel industry to have the right number of staff (and languages) working through the year. </FONT></P><P><FONT color="#000000">These might just be examples we invented ourselves, based on data that is publicly available (thanks to the <A href="https://opendata.swiss/en" target="_blank" rel="noopener nofollow noreferrer">opendata.swiss portal</A>!), but such time-series forecasts are used extremely often in the business world. We have used time-series forecasting in many diverse projects, from forecasting the Net Working Capital for Treasury departments to <A href="https://www.sap.com/asset/dynamic/2023/10/ce401879-907e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">solar power production</A> at a utilities company. </FONT></P><P><FONT color="#000000">All these use cases have in common, that in such a BTP project an expert (you! <span class="lia-unicode-emoji" title=":grinning_face:">😀</span> ) creates a forecast that is then shared with the business users, who might not want to know all technical details of how the forecasts were created.</FONT></P><P> </P><H1 id="toc-hId-471369121">Architecture / prerequisites</H1><P>To follow this blog's instructions, you need to have access to:</P><UL><LI>An instance of <STRONG>SAP HANA Cloud</STRONG>, either a productive or free-tier system. The free trial does not have the Predictive Analysis built in. In the next chapter we give some guidance on setting up a free-tier system using a Pay-As-You-Go account, which should allow everyone with a credit card (that we understand will not be charged) to implement the scenario without occurring any costs.</LI><LI>A<STRONG> Python environment</STRONG>. We explain how to set up miniconda, but if you already have an existing Python installation, you should be able to use this as well. Of course, you could also use the <A href="https://community.sap.com/t5/technology-blogs-by-sap/persisting-python-environment-when-using-jupyter-notebooks-in-sap-business/ba-p/13549863" target="_blank">Business Application Studio</A> on our Business Technology Platform. </LI><LI>It helps if you have a bit of <STRONG>Python or scripting experience</STRONG>. But we hope this blog can also be a good entry point for someone who is just starting out with Python.</LI><LI><STRONG>Motivation</STRONG> to get to know SAP HANA's Predictive Analysis Library. </LI></UL><P>So the overall architecture for this implementation is very straight forward. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="architecture.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/152855i0281A456E4E804CF/image-size/large?v=v2&px=999" role="button" title="architecture.png" alt="architecture.png" /></span></P><P>Currently the Predictive Analysis Library provides all these algorithms, and the list keeps growing. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PAL algos.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/152896iD81E70E669E59463/image-size/large?v=v2&px=999" role="button" title="PAL algos.jpg" alt="PAL algos.jpg" /></span></P><P> </P><H1 id="toc-hId-274855616">SAP HANA Cloud</H1><P>First things first, you need a SAP HANA Cloud system, in which to execute the Machine Learning. This could be a productive system that you already have access to. You can also use a free-tier instance of SAP HANA Cloud. To allow everyone to follow the steps hands-on, we are using a free-tier option with Pay-As-You-Go account here. </P><P>The free trial of SAP HANA Cloud however doesn't contain HANA Machine Learning. If you wonder what the differences are between free-tier and free trial, then this <A href="https://developers.sap.com/tutorials/btp-cockpit-setup.html" target="_blank" rel="noopener noreferrer">tutorial</A> should help you out. With a paid instance of SAP HANA Cloud the setup of the Machine Learning is slightly differently, you need to <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-getting-started-guide/using-machine-learning-libraries-apl-and-pal-in-sap-hana-cloud-sap-hana-database" target="_blank" rel="noopener noreferrer">activate the script server</A>. </P><P>Remember that productive SAP Datasphere systems also have the same Machine Learning built-in, thanks to the embedded SAP HANA Cloud. We plan to release a separate blog for this.</P><P>So let's start working with SAP HANA Cloud as free-tier. If you haven't got a system yet, you can follow the below tutorials. <FONT color="#000000">Just be aware, that not all BTP components are available in all regions. Make sure to have your BTP subaccount in a region, in which the SAP HANA Cloud free-tier is available. See the <A href="https://discovery-center.cloud.sap/serviceCatalog/sap-hana-cloud/?region=all&tab=service_plan&service_plan=sap-hana-cloud-%E2%80%93-free-tier&commercialModel=payg&provider=azure" target="_blank" rel="noopener nofollow noreferrer">Discovery Center for options</A>. We are using "Europe (Netherlands)" on Microsoft Azure.</FONT></P><UL><LI><A href="https://developers.sap.com/tutorials/hana-cloud-mission-trial-2-ft..html" target="_self" rel="noopener noreferrer">Start Using SAP HANA Cloud Free Tier in SAP BTP Cockpit</A></LI><LI><A href="https://developers.sap.com/tutorials/hana-cloud-mission-trial-3.html" target="_self" rel="noopener noreferrer">Provision an Instance of SAP HANA Cloud, SAP HANA Database</A><UL><LI><FONT color="#000000">Select the "Predictive Analysis Library (PAL) option when creating the SAP HANA Cloud instance</FONT></LI><LI><FONT color="#000000">You can also select "Allow all IP addresses" for now to keep it simple. You can restrict this to specific IP addresses or ranges later on</FONT></LI></UL></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="015-redboxes create instance.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/146892iB4DD36354F911526/image-size/large?v=v2&px=999" role="button" title="015-redboxes create instance.jpg" alt="015-redboxes create instance.jpg" /></span></P><P>Once SAP HANA Cloud is running, t<SPAN>ake note of the instance's SQL endpoint, which is needed to logon to the system from Python.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="017 endpoint.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/146897i5D4141C0D3339349/image-size/large?v=v2&px=999" role="button" title="017 endpoint.jpg" alt="017 endpoint.jpg" /></span></SPAN></P><P> </P><P><SPAN>Now create a Database User for our project. You can execute the code for example in the SAP HANA database explorer, as explained in: </SPAN><A href="https://developers.sap.com/tutorials/hana-cloud-mission-trial-4.html" target="_self" rel="noopener noreferrer">Tools to Manage and Access the SAP HANA Cloud, SAP HANA Database</A></P><P>Execute these commands as DBADMIN in the Database Explorer. Just replace YOURSECRETPASSWORD with literally your secret password (the one you had to enter when creating the instance). This creates a user called AIUSER, whose password doesn't expire. This user is also assigned the necessary rights to trigger the Predictive Analysis Library.</P><P> </P><pre class="lia-code-sample language-python"><code>CREATE USER AIUSER PASSWORD YOURSECRETPASSWORD NO FORCE_FIRST_PASSWORD_CHANGE;
ALTER USER AIUSER DISABLE PASSWORD LIFETIME;
GRANT AFL__SYS_AFL_AFLPAL_EXECUTE TO AIUSER;
GRANT AFLPM_CREATOR_ERASER_EXECUTE to AIUSER;</code></pre><P> </P><H1 id="toc-hId-78342111">Python / Jupyter Notebooks</H1><P>Use a Python environment of your choice to be able to use Jupyter Notebooks. There are many options, ie with SAP (<A href="https://community.sap.com/t5/technology-blogs-by-sap/persisting-python-environment-when-using-jupyter-notebooks-in-sap-business/ba-p/13549863" target="_self">Business Application Studio</A>) or non-SAP environments. The following steps show how to run Jupyter Notebooks on your local laptop by using the free environment miniconda.</P><P>Download and install <A href="https://docs.anaconda.com/miniconda/miniconda-install/" target="_self" rel="nofollow noopener noreferrer">miniconda</A>. The easiest option is probably the graphical installer.</P><P>Open the "Anaconda Prompt" that was installed by minconda. On Windows just use the Operating System's "Search" box to find the prompt.</P><P>miniconda allows you to have multiple Python environments side by side. Making changes in one of these environments does not affect the others. This can be very useful to run tests in one environment without interfering with your productive code. Enter the following code into the Anaconda Prompt, execute each line individually. These statements:</P><UL><LI>create a new Python 3.12 environment (which is currently the <A href="https://devguide.python.org/versions/%20" target="_self" rel="nofollow noopener noreferrer">stable version</A> of Python) named "sandbox"</LI><LI>activate the new "sandbox" environment, so that the following commands are executed for this environment</LI><LI>install the python package jupyterlab, which, you might have guessed, installs the Jupyter Notebook environment into the blank Python environment</LI><LI>add the "sandbox" envrionment to the Jupyter environment (you will see later, what this means)</LI><LI>and finally, open the Jupyter environment.</LI></UL><P> </P><pre class="lia-code-sample language-abap"><code>conda create --name sandbox python=3.12
conda activate sandbox
pip install jupyterlab
python -m ipykernel install --user --name=sandbox
jupyter lab</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="100 anaconda.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/138872i6AD47795C9152B2D/image-size/large?v=v2&px=999" role="button" title="100 anaconda.png" alt="100 anaconda.png" /></span></P><P>Executing these commands will open the Jupyter Lab environment, in which individual Jupyter Notebooks can be executed. Notice the "sandbox" icon in the Notebook section. This icon appears because of the earlier "python -m ipykernel install --user --name=sandbox" command. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="110 jupyter lab.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/138875iB02F21D295CF62A6/image-size/large?v=v2&px=999" role="button" title="110 jupyter lab.png" alt="110 jupyter lab.png" /></span></P><P>Click the "sandbox" icon in the Notebook section and a Jupyter Notebooks opens up, in which you can script your Python code. At the top right you can see that the Notebook is running in the "sandbox" environment. Eventually you might have a number of Python environments, hence it is good to know for sure, in which of these environments the code is executed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="120 notebook.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/138876i1FBFF173F042A97C/image-size/large?v=v2&px=999" role="button" title="120 notebook.png" alt="120 notebook.png" /></span></P><P><SPAN>In case you haven't worked with Jupyter Notebooks yet, this </SPAN><A href="https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html" target="_blank" rel="noopener nofollow noreferrer">introduction to JupyterLab</A><SPAN> gets you started. Once you are familiar with the Jupyter interface, install the hana_ml Package, that we will use to trigger the embedded Machine Learning. Enter this code into a cell in the Notebook, then execute the code, for example with the "Run" icon on top.</SPAN></P><P> </P><pre class="lia-code-sample language-python"><code>!pip install hana_ml</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="155 install hana_ml.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/153874i083F8CA8F7D3B1B5/image-size/large?v=v2&px=999" role="button" title="155 install hana_ml.png" alt="155 install hana_ml.png" /></span></P><P><SPAN>This downloads and install the hana_ml-package with its dependencies, which can take a few seconds. Once complete, run this code in a new cell, to see the version of the freshly installed package. </SPAN></P><P> </P><pre class="lia-code-sample language-python"><code>import hana_ml
print(hana_ml.__version__)</code></pre><P> </P><H1 id="toc-hId--118171394">Time-series forecasting</H1><P>We are ready for the fun part, everything should be ready to upload some data and create some time-series forecasts. Remember, that all code can be downloaded from <A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/tree/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud" target="_blank" rel="noopener nofollow noreferrer">this repository</A>. The notebooks that you find there are a little more elaborate than then blog.</P><H2 id="toc-hId--185602180">Data upload</H2><P><EM><FONT color="#000000">You find this section's code in the Notebook "<A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/blob/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud/010%20Data%20upload.ipynb" target="_blank" rel="noopener nofollow noreferrer">010 Data upload.ipynb</A>"</FONT><FONT color="#000000">.</FONT></EM></P><P><FONT color="#000000">Begin by logging on to SAP HANA Cloud, through the hana_ml package in a Jupyter Notebook. Use the credentials of the AIUSER.</FONT></P><P> </P><pre class="lia-code-sample language-abap"><code>import hana_ml.dataframe as dataframe
conn = dataframe.ConnectionContext(address='YOURENDPOINT',
port=443,
user='AIUSER',
password='YOURSECRETPASSWORD',
)
conn.connection.isconnected()</code></pre><P> </P><P>Now bring the data that we want to upload fr<FONT color="#000000">om <A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/blob/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud/OVERNIGHTSTAYS.csv" target="_blank" rel="noopener nofollow noreferrer">this CSV file</A> into</FONT> a Pandas DataFrame in Python. Display a few rows of the data.</P><P> </P><pre class="lia-code-sample language-python"><code>import pandas as pd
df_data= pd.read_csv('OVERNIGHTSTAYS.csv')
df_data.MONTH = pd.to_datetime(df_data.MONTH, format='%d/%m/%Y')
df_data.head(5)</code></pre><P> </P><P>The table contains of four columns</P><UL><LI>The month</LI><LI>The Swiss region</LI><LI>The nationality of the guests</LI><LI>And the number of overnight stays </LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="210 data preview.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147264i54768EB6CA777934/image-size/medium?v=v2&px=400" role="button" title="210 data preview.png" alt="210 data preview.png" /></span></P><P>Then upload the Pandas DataFrame through the hana_ml package into a table in SAP HANA Cloud. The table and its columns are created automatically on the fly.</P><P> </P><pre class="lia-code-sample language-python"><code>import hana_ml.dataframe as dataframe
df_remote = dataframe.create_dataframe_from_pandas(connection_context=conn,
pandas_df=df_data,
table_name='OVERNIGHTSTAYS',
force=True,
replace=False)</code></pre><P> </P><P>You can also see the data types of the columns that were created. the df_remote object points to the newly created table, and the dtypes()-method returns their names and column types.</P><P> </P><pre class="lia-code-sample language-python"><code>df_remote.dtypes()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="220 data types.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/147266i37A4C31EEEB49A8A/image-size/medium?v=v2&px=400" role="button" title="220 data types.png" alt="220 data types.png" /></span></P><P> </P><H2 id="toc-hId--382115685">Forecasting single time-series</H2><P><EM><FONT color="#000000">You find this section's code in the Notebook "<A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/blob/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud/020%20Time-series%20forecast.ipynb" target="_blank" rel="noopener nofollow noreferrer">020 Time-series forecast.ipynb</A>".</FONT></EM></P><P>Usually you would first spend some time exploring data. We keep this part in the tutorial very short, but we encourage you to spend sufficient time on data exploration in your own projects.</P><P>For now retrieve a few rows of data, to make sure that there are no obvious problems (ie empty rows). The head()-method first restricts the dataset to avoid downloading unnecessary data. The collect()-method then downloads the data into Python (as Pandas DataFrame) to display the data.</P><P> </P><pre class="lia-code-sample language-python"><code>df_remote = conn.table('OVERNIGHTSTAYS')
df_remote.head(5).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="300 peak.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149355i8DB3919762973B40/image-size/medium?v=v2&px=400" role="button" title="300 peak.png" alt="300 peak.png" /></span></P><P>Get a quick feel for the content of the tables. The describe()-method instructs SAP HANA Cloud to calculate for instance how many values are missing per column, or what the min / max / median values are for numerical columns.</P><P> </P><pre class="lia-code-sample language-python"><code>df_remote.describe().collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="310 describe.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149356iD05AEABAA1439ABC/image-size/medium?v=v2&px=400" role="button" title="310 describe.png" alt="310 describe.png" /></span></P><P>Each of the values above was calculated in SAP HANA Cloud. Because the describe()-method was called, hana_ml created the required SELECT statement, which you can access as well. You can execute this SQL-statement also in other environments to retrieve the results.</P><P> </P><pre class="lia-code-sample language-python"><code>print(df_remote.describe().select_statement)</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="320 describe select.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149358i85DD0D975C265322/image-size/large?v=v2&px=999" role="button" title="320 describe select.png" alt="320 describe select.png" /></span></P><P>You can also get a more graphical overview of the dataset in a canned report.</P><pre class="lia-code-sample language-python"><code>from hana_ml.visualizers.unified_report import UnifiedReport
UnifiedReport(df_remote).build().display()</code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="330 unified data report.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149602i4127BC507A91F695/image-size/large?v=v2&px=999" role="button" title="330 unified data report.png" alt="330 unified data report.png" /></span></P><P> </P><P> </P><P>We move to the data preparation for our use case. We want to create a single forecast of all overnight stays by month. Hence we need to aggregate all detailed values by month. The hana_ml-DataFrame has a method for that aggregation. Remember, that this aggregation is also virtual. Essentially, it is adding a GROUP-clause to the hana_ml-DataFrame, which is a SELECT statement under the hood. Also look at a few rows of the monthly aggregates.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_agg = df_remote.agg([('sum', 'OVERNIGHTSTAYS', 'OVERNIGHTSTAYS_SUM')], group_by='MONTH')
df_rem_agg = df_rem_agg.sort('MONTH')
df_rem_agg.head(5).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="340 monthly data.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149360iB8817C10F814B0C1/image-size/medium?v=v2&px=400" role="button" title="340 monthly data.png" alt="340 monthly data.png" /></span></P><P>That means we can train a time-series model. We used the AdditiveModelForecast algorithm, which is also known as Prophet.</P><P> </P><pre class="lia-code-sample language-python"><code>from hana_ml.algorithms.pal.tsa.additive_model_forecast import AdditiveModelForecast
amf = AdditiveModelForecast()
amf.fit(data=df_rem_agg)</code></pre><P> </P><P>View the trained model in another canned report.</P><P> </P><pre class="lia-code-sample language-python"><code>from hana_ml.visualizers.unified_report import UnifiedReport
UnifiedReport(amf).build().display()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="350 ts report.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149363iD5BF7450BA19EC36/image-size/large?v=v2&px=999" role="button" title="350 ts report.png" alt="350 ts report.png" /></span></P><P>We have a trained time-series model, but we have not yet created a prediction. To create a forecast, we first need to create a hana_ml DataFrame, that contains the dates/months we would like forecasts for. Hence find out the most recent date of the training history: 2024-05-01 (May 1st 2024).</P><P> </P><pre class="lia-code-sample language-python"><code>str_lastdate = df_rem_agg.tail(1, ref_col='MONTH').collect().iloc[0,0]
str_lastdate = str(str_lastdate)[0:10]
print(str_lastdate)</code></pre><P> </P><P>Based on the last known above date/month, create a new hana_ml DataFrame that lists the following 12 months.</P><P> </P><pre class="lia-code-sample language-python"><code>from hana_ml.algorithms.pal.random import binomial
months_to_forecast=12
df_rem_future = binomial(conn, n=1, p=1, num_random=months_to_forecast)
df_rem_future = df_rem_future.select('*', (f'''ADD_MONTHS(TO_DATE ('{str_lastdate}', 'YYYY-MM-DD'), ID+1)''', 'MONTH') )
df_rem_future = df_rem_future.select('MONTH', ('0', 'TARGET'))
df_rem_future.head(20).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="360 future dates.png" style="width: 171px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149367iC06A6A1546B310D4/image-size/medium?v=v2&px=400" role="button" title="360 future dates.png" alt="360 future dates.png" /></span></P><P>Now apply the trained time-series model to predict the overnight stays in those 12 months.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_predicted = amf.predict(data=df_rem_future)
df_rem_predicted.head(5).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="370 forecast.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149368i6CD7187A6865C63C/image-size/medium?v=v2&px=400" role="button" title="370 forecast.png" alt="370 forecast.png" /></span></P><P>The canned report for the trained model now also shows the above forecast. You can clearly see how a repeating pattern was identified and used to predict the future dates. Most overnight stays are in the summer (hiking?) but the winter also has its peaks (skiing and snowboarding!).</P><P> </P><pre class="lia-code-sample language-python"><code>from hana_ml.visualizers.unified_report import UnifiedReport
UnifiedReport(amf).build().display()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="380 ts report 2.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149369iB1B961620885EBDE/image-size/large?v=v2&px=999" role="button" title="380 ts report 2.png" alt="380 ts report 2.png" /></span></P><P>To share the forecasts with business users it's often best to combine the training data and forecasts into a single dataset. Here we combine both parts into a single hana_ml DataFrame.</P><P> </P><pre class="lia-code-sample language-abap"><code>df_rem_predicted = df_rem_predicted.select('MONTH',
('NULL', 'OVERNIGHTSTAYS_SUM'),
('YHAT', 'FORECAST'),
('YHAT_LOWER', 'FORECAST_LOWER'),
('YHAT_UPPER', 'FORECAST_UPPER'))
df_rem_agg = df_rem_agg.select('*',
('NULL', 'FORECAST'),
('NULL', 'FORECAST_LOWER'),
('NULL', 'FORECAST_UPPER'))
df_rem_all = df_rem_predicted.union(df_rem_agg)
df_rem_all.sort('MONTH').tail(5).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="390 forecast.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/149374i9F07EE95BE3A6B3D/image-size/medium?v=v2&px=400" role="button" title="390 forecast.png" alt="390 forecast.png" /></span></P><P>Now save the hana_ml DataFrame to a table in SAP HANA Cloud. SAP Analytics Cloud for instance can now access the data.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_all.save('OVERNIGHTSTAYS_FORECAST_TOTAL', force=True)</code></pre><P> </P><P>You have created a time-series forecast!</P><P> </P><H2 id="toc-hId--578629190">Forecasting multiple time-series</H2><P><EM><FONT color="#000000">You find this section's code in the Notebook "<A href="https://github.com/SAP-samples/btp-global-center-of-excellence-samples/blob/main/Hands-on%20Tutorial%20Machine%20Learning%20with%20SAP%20HANA%20Cloud/030%20Multiple%20time-series%20forecast.ipynb" target="_blank" rel="noopener nofollow noreferrer">30 Multiple time-series forecast.ipynb</A>".</FONT></EM></P><P>In the previous example we aggregated all overnights stays into monthly values and forecasted the following 12 months. Now we want to create individual forecasts for the countries from which most visitors are coming. Hence let's find the top 10 countries with the most overnight stays.</P><P> </P><pre class="lia-code-sample language-abap"><code>df_remote = conn.table('OVERNIGHTSTAYS')
df_remote.agg([('sum', 'OVERNIGHTSTAYS', 'TOTAL')], group_by='COUNTRYOFRESIDENCE' ).sort('TOTAL', desc=True).head(10).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="500 top ten.png" style="width: 285px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151157i4DF290C27DB6E1C1/image-size/medium?v=v2&px=400" role="button" title="500 top ten.png" alt="500 top ten.png" /></span></P><P>We want to use that list of countries in a filter on the whole table. One way of achieving this, is to create a comma separated list of values for a where clause.</P><P> </P><pre class="lia-code-sample language-python"><code>countries = df_remote.agg([('sum', 'OVERNIGHTSTAYS', 'TOTAL')], group_by='COUNTRYOFRESIDENCE') \
.sort('TOTAL', desc=True).select('COUNTRYOFRESIDENCE').head(10).collect() \
.iloc[:,0].tolist()
countries = str(countries)
countries = countries.replace('[', '(')
countries = countries.replace(']', ')')
df_remote = df_remote.filter(f'''"COUNTRYOFRESIDENCE" IN {countries}''')</code></pre><P> </P><P>The hana_ml DataFrame now only holds information about those 10 countries. Now we aggregate the data again, but this time by both month and country, so that we can create country-specific forecasts.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_agg = df_remote.agg([('sum', 'OVERNIGHTSTAYS', 'OVERNIGHTSTAYS_SUM')], group_by=['MONTH', 'COUNTRYOFRESIDENCE'])
df_rem_agg = df_rem_agg.sort('MONTH')
df_rem_agg.head(5).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="530 aggregated.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151158i5DEA2EECF728639A/image-size/medium?v=v2&px=400" role="button" title="530 aggregated.png" alt="530 aggregated.png" /></span></P><P>Let's see the historic values of the 10 countries.</P><P> </P><pre class="lia-code-sample language-python"><code>df_data_plot = df_rem_agg.pivot_table(values='OVERNIGHTSTAYS_SUM', index='MONTH', columns='COUNTRYOFRESIDENCE', aggfunc='sum').collect()
df_data_plot.plot(x='MONTH').legend(loc='center left',bbox_to_anchor=(1.0, 0.5));</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="540 plot top 10.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151159i3AC1BF36ACD99E24/image-size/large?v=v2&px=999" role="button" title="540 plot top 10.png" alt="540 plot top 10.png" /></span></P><P>Since the plot is quite full, let's focus on the 2 most popular foreign countries, Germany and the United States.</P><P> </P><pre class="lia-code-sample language-python"><code>df_data_plot[['MONTH', 'Germany', 'United States']].plot(x='MONTH').legend(loc='center left',bbox_to_anchor=(1.0, 0.5));</code></pre><P> </P><P><FONT color="#FF0000"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="550 plot 2 countries.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151160i48D2455F1DE6047A/image-size/large?v=v2&px=999" role="button" title="550 plot 2 countries.png" alt="550 plot 2 countries.png" /></span></FONT></P><P>There are similarities in the overnight stays from the two countries (summers are most popular). However, numbers from the United States seem to be rising, while numbers from Germany seem to be dropping. Individual forecasts for each country can capture such individual patterns.</P><P>Train individual models with the same AdditiveModelForecast algorithm as before, but now we specify the country of residence as group key, which produces individual models for each country.</P><P> </P><pre class="lia-code-sample language-python"><code>from hana_ml.algorithms.pal.tsa.additive_model_forecast import AdditiveModelForecast
amf = AdditiveModelForecast(massive=True)
amf.fit(data=df_rem_agg, group_key='COUNTRYOFRESIDENCE')</code></pre><P> </P><P>As before, we now create a hana_ml DataFrame for the prediction. This DataFrame must list all the countries as well as all the dates for each country. The list of dates/months, as done before.</P><P> </P><pre class="lia-code-sample language-abap"><code>from hana_ml.algorithms.pal.random import binomial
months_to_forecast=12
str_lastdate = df_rem_agg.tail(1, ref_col='MONTH').collect().iloc[0,0]
str_lastdate = str(str_lastdate)[0:10]
df_rem_future = binomial(conn, n=1, p=1, num_random=months_to_forecast)
df_rem_future = df_rem_future.select('*', (f'''ADD_MONTHS(TO_DATE ('{str_lastdate}', 'YYYY-MM-DD'), ID+1)''', 'MONTH') )
df_rem_future = df_rem_future.select('MONTH', ('0', 'TARGET'))</code></pre><P> </P><P>But now we create a cartesian product with the countries.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_countries = df_remote.agg([('sum', 'OVERNIGHTSTAYS', 'TOTAL' )], group_by='COUNTRYOFRESIDENCE' ) \
.sort('TOTAL', desc=True).select('COUNTRYOFRESIDENCE').head(10)
df_rem_topredict = conn.sql(df_rem_future.add_id().set_index('ID').join(df_rem_countries.add_id('ID').set_index('ID'), how='cross' ) \
.select_statement.replace('ON T0."ID" = T1."ID"', ''))
df_rem_topredict = df_rem_topredict.drop('ID')
df_rem_topredict.head(10).collect()</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="560 cartesian.png" style="width: 378px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151161i89A6F937B5B72F4D/image-size/medium?v=v2&px=400" role="button" title="560 cartesian.png" alt="560 cartesian.png" /></span></P><P>Apply the individual models on its corresponding dates/months in the prediction DataFrame. Here the predict() method returns multiple objects. The forecast we need are in the first (with index 0).</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_pred = amf.predict(data=df_rem_topredict, group_key='COUNTRYOFRESIDENCE')
df_rem_predicted = df_rem_pred[0]</code></pre><P> </P><P>That's all it took to mass produce individual time-series models and forecasts. To verify that the forecasts are individual, look at the data for Germany...</P><P> </P><pre class="lia-code-sample language-python"><code>df_data = df_rem_predicted.filter(''' "GROUP_ID" = 'Germany' ''').collect()
df_data.plot(x='MONTH').legend(loc='center left',bbox_to_anchor=(1.0, 0.5));</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="570 forecast germany.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151162iA7750633EDC79AA5/image-size/large?v=v2&px=999" role="button" title="570 forecast germany.png" alt="570 forecast germany.png" /></span></P><P>... and the United States.</P><P> </P><pre class="lia-code-sample language-python"><code>df_data = df_rem_predicted.filter(''' "GROUP_ID" = 'United States' ''').collect()
df_data.plot(x='MONTH').legend(loc='center left',bbox_to_anchor=(1.0, 0.5));</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="580 forecast usa.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151163i6F4FAEDD4D6D8158/image-size/large?v=v2&px=999" role="button" title="580 forecast usa.png" alt="580 forecast usa.png" /></span></P><P>Combine the historic data with the predictions and save them to a single table.</P><P> </P><pre class="lia-code-sample language-python"><code>df_rem_predicted = df_rem_predicted.select(
'MONTH',
('GROUP_ID', 'COUNTRYOFRESIDENCE'),
('NULL', 'OVERNIGHTSTAYS_SUM'),
('YHAT', 'FORECAST'),
('YHAT_LOWER', 'FORECAST_LOWER'),
('YHAT_UPPER', 'FORECAST_UPPER')
)
df_rem_agg = df_rem_agg.select('*', ('NULL', 'FORECAST'),
('NULL', 'FORECAST_LOWER'),
('NULL', 'FORECAST_UPPER')
)
df_rem_all = df_rem_predicted.union(df_rem_agg)
df_rem_all.save('OVERNIGHTSTAYS_FORECAST_COUNTRIES', force=True)</code></pre><P> </P><P>You have the data ready to be shared with business users, for instance through SAP Analytics Cloud. Of course you can also see the data here in Python. Select a country and put the data into a plot.</P><P> </P><pre class="lia-code-sample language-python"><code>import matplotlib.pyplot as plt
df_data = df_rem_all.filter('''"COUNTRYOFRESIDENCE" = 'Germany' ''').collect()
fig, ax = plt.subplots()
ax.fill_between(df_data['MONTH'].values, df_data['FORECAST_LOWER'].values, df_data['FORECAST_UPPER'].values, alpha=0.2)
ax.plot(df_data['MONTH'].values, df_data['OVERNIGHTSTAYS_SUM'].values, '-')
plt.xticks(rotation=45);</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="590 Germany past and prediction.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/151164i7E6CB9A4A17FF02D/image-size/large?v=v2&px=999" role="button" title="590 Germany past and prediction.png" alt="590 Germany past and prediction.png" /></span></P><P>Now you are the expert in massing producing time-series forecasts with SAP HANA Cloud!</P><P> </P><H1 id="toc-hId--904225414">Going Further</H1><P>This final chapter has a few ideas on how to continue from the above.</P><H2 id="toc-hId--624401843"><FONT color="#FF0000"><FONT color="#000000">Secure logon</FONT></FONT></H2><P><FONT color="#FF0000"><FONT color="#000000">To avoid having to use the Database user and its password in clear text, you can also refer to logon credentials kept in the </FONT><SPAN><FONT color="#000000">Secure User Store from the</FONT> </SPAN><A href="https://tools.eu1.hana.ondemand.com/#hanatools" target="_blank" rel="nofollow noopener noreferrer">SAP HANA client</A><FONT color="#000000">. This command stores the credentials under the key "MYHANACLOUD".</FONT></FONT></P><P>C:\Program Files\SAP\hdbclient>hdbuserstore -i SET MYHANACLOUD "YOURSQLENDPOINT:443" AIUSER</P><P>You can use this key to logon to SAP HANA Cloud.</P><P> </P><pre class="lia-code-sample language-abap"><code>import hana_ml.dataframe as dataframe
conn = dataframe.ConnectionContext(userkey='MYHANACLOUD')
conn.connection.isconnected()</code></pre><P> </P><H2 id="toc-hId--820915348">Scheduling</H2><P>You can automate the creation of new forecasts by scheduling the hana_ml logic. One option is described in the blog <A href="https://community.sap.com/t5/technology-blogs-by-sap/scheduling-python-code-on-cloud-foundry/ba-p/13503697" target="_self">Scheduling Python code on Cloud Foundry</A>.</P><H2 id="toc-hId--1017428853">Restrict IP addresses</H2><P>In the above steps we kept it simple and allowed all IP addresses to connect to SAP HANA Cloud. See the <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/sap-hana-database-connections" target="_self" rel="noopener noreferrer">SAP HANA Cloud Administration Guide</A> on allowing only specific IP addresses or ranges.</P><P>An easy option to determine your external IP address is a small piece of code like:</P><P> </P><pre class="lia-code-sample language-python"><code>from requests import get
ip = get('https://api.ipify.org').text
print(f'My public IP address is: {ip}')</code></pre><P> </P><H2 id="toc-hId--1213942358">Improve forecast accuracy with external variables</H2><P>Providing additional context can increase the forecast accuracy. One customer is using SAP's factory calendar table TFACS to flag working days in a daily forecast. For our monthly data of overnight stays in Switzerland, the exchange rates of the different currencies to the Swiss Franc could be useful for example. See the holiday and exog parameters of the<SPAN> </SPAN><A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2024_2_QRC/en-US/pal/algorithms/hana_ml.algorithms.pal.tsa.additive_model_forecast.AdditiveModelForecast.html#hana_ml.algorithms.pal.tsa.additive_model_forecast.AdditiveModelForecast.fit" target="_blank" rel="noopener noreferrer">fit()</A>-method to pass such context to the algorithm.</P><P> </P><H2 id="toc-hId--1410455863">Summary and next steps</H2><P>We hope this hands on blog post enables you to supercharge your SAP HANA Cloud with Machine Learning. Transform your SAP data into actionable insights and harness the full potential of HANA ML!</P><P>To close off this tutorial, we have a few ideas for you to continue your journey:</P><P><span class="lia-unicode-emoji" title=":inbox_tray:">📥</span>Get hands-on: If you have scrolled through the blog, take the time to implement the scenario yourself. You can download the notebooks and learn by doing.</P><P><span class="lia-unicode-emoji" title=":books:">📚</span>Learn more:</P><UL><LI>Go through SAP HANA ML <A href="https://github.com/SAP-samples/hana-ml-samples" target="_blank" rel="noopener nofollow noreferrer">examples</A> and try this other <A href="https://community.sap.com/t5/technology-blogs-by-sap/hands-on-tutorial-leverage-sap-hana-machine-learning-in-the-cloud-through/ba-p/13495327" target="_blank">hands-on tutorial, here using a classification</A></LI><LI>Explore the documentation of <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-getting-started-guide/using-machine-learning-libraries-apl-and-pal-in-sap-hana-cloud-sap-hana-database?locale=en-US" target="_blank" rel="noopener noreferrer">Machine Learning in SAP HANA Cloud</A> and the <A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/latest/en-US/hana_ml.html" target="_blank" rel="noopener noreferrer">hana_ml Python package</A></LI><LI>Join one of the regular HANA ML code sessions. You can <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="_self">check here</A> or reach out directly to <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/183" target="_blank">Witalij Rudnicki</A>.</LI><LI>Should you happen to speak German, there is a whole book on "<A href="https://www.rheinwerk-verlag.de/data-science-mit-sap-hana/" target="_blank" rel="noopener nofollow noreferrer">Data Science mit SAP HANA</A>"</LI></UL><P><span class="lia-unicode-emoji" title=":link:">🔗</span>Join the Discussion: Share your experiences in the comments and connect with us.</P>2024-08-23T15:29:23.621000+02:00https://community.sap.com/t5/technology-blogs-by-sap/start-your-migration-to-sap-hana-cloud-now/ba-p/13805533Start your migration to SAP HANA Cloud now!2024-08-23T18:58:45.674000+02:00Corriehttps://community.sap.com/t5/user/viewprofilepage/user-id/164966<P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="293551_GettyImages-BU003307_medium_jpg.png" style="width: 437px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/156840i0FB4D4C48C5A4931/image-dimensions/437x289?v=v2" width="437" height="289" role="button" title="293551_GettyImages-BU003307_medium_jpg.png" alt="293551_GettyImages-BU003307_medium_jpg.png" /></span></P><P><A href="https://www.sap.com/products/technology-platform/hana.html" target="_blank" rel="noopener noreferrer">SAP HANA Cloud</A>, a cloud-native database solution, is the top choice for developers creating intelligent data applications that prioritize successful business processes, enhanced user experiences, and elevated analytics. It is an all-in-one solution that underpins modern applications and analytics sturdily and cost-effectively. As the cloud-based data foundation for SAP Business Technology Platform (SAP BTP), it orchestrates mission-critical applications and analytics across your enterprise data in one comprehensive solution.</P><P>SAP HANA Cloud was built to support the most innovative applications. In addition, SAP HANA Cloud is key for supporting SAP customers’ clean core strategies, as a side-by-side solution for offloading custom objects and applications.</P><P>The time is now to move to SAP HANA Cloud. So, the question is, how do you get there?</P><P>The <A href="https://www.sap.com/documents/2024/08/c637a2fb-d07e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">SAP Migration Factory for SAP BTP</A> program is a high-touch, concierge-model consulting service that puts you on the fast track toward realizing the advantages of SAP HANA Cloud. Expert guidance services are delivered remotely by seasoned teams from SAP or approved SAP partners. The program is a global initiative to assist customers with architecture optimization, modernization risk management, and end-to-end migration strategy to SAP HANA Cloud. The result is a modernized IT landscape optimized for intelligence. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Linear - Process.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/156837iD596A6B69F46CCA8/image-size/large?v=v2&px=999" role="button" title="Linear - Process.png" alt="Linear - Process.png" /></span></P><P>Benefits and services include:</P><UL><LI><A href="https://www.sap.com/products/technology-platform/hana/free-assessment.html" target="_blank" rel="noopener noreferrer">Free migration assessments</A> that can produce business cases, detailed statements of work, and estimates of effort and cost</LI><LI>Modernization of data landscape with SAP HANA Cloud to empower your intelligent enterprise</LI><LI>Low-risk migration with defined services and expertise</LI><LI>Rapid realization of value through tools, assets, and proven methods expediting migration</LI><LI>Support provided by highly skilled and experienced experts on migration to SAP HANA Cloud</LI></UL><P>SAP and its partners offer a range of additional options for services, support, tools, and assets that can put you on the fast track to database modernization. Explore them <A href="https://www.sap.com/products/technology-platform/hana/cloud-migration.html" target="_blank" rel="noopener noreferrer">online</A> or via our comprehensive <A href="https://www.sap.com/documents/2024/08/98d558c6-d07e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">brochure</A>.</P><P>To learn more about SAP's database migration program and to get started, customers can check out the resources linked to above, speak with their SAP Account Executive or reach out to <A href="mailto:migrationfactory@sap.com" target="_blank" rel="noopener nofollow noreferrer">migrationfactory@sap.com</A>.</P><P>It's time to begin the journey to modernization and digital transformation today!</P>2024-08-23T18:58:45.674000+02:00