https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-Cloud-Applications-Studio-blog-posts.xml SAP Community - SAP Cloud Applications Studio 2024-05-20T11:12:19.636951+00:00 python-feedgen SAP Cloud Applications Studio blog posts in SAP Community https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/host-analytics-consolidation-system-integration-with-sap-business-bydesign/ba-p/13564528 Host Analytics Consolidation System Integration with SAP Business ByDesign 2023-03-06T19:06:28+01:00 former_member39718 https://community.sap.com/t5/user/viewprofilepage/user-id/39718 <H2 id="toc-hId-963033386"><STRONG><U>Introduction:</U></STRONG></H2><BR /> <H3 id="toc-hId-895602600">Host Analytics</H3><BR /> Provides Financial Consolidation capabilities to SAP Business ByDesign customers.<BR /> Host Analytics Financial Consolidation provides integrated functionality for managing and tracking the finances of multiple companies across multiple business and geographic locations<BR /> Provides consolidated financial statements in form the financial and standard reports<BR /> <H3 id="toc-hId-699089095">ByDesign Adapter</H3><BR /> Data transfer from ByDesign to Host Analytics system happens manually (once per month or per quarter based on the specific needs of the company)<BR /> <H2 id="toc-hId-373492871"><STRONG><U>Requirement:</U></STRONG></H2><BR /> The ByD HA adapter will retrieve master data and actual data from ByDesign, The data will be stored in a FTP folder so that it can be processed by Host Analytics.<BR /> <H2 id="toc-hId-176979366"><STRONG><U>Solution</U></STRONG></H2><BR /> The ByD HA adapter will be hosted and will support automatic retrieval data of data from ByD through web services. A wider selection of characteristics will enable not just consolidation but also planning in Host Analytics which is integrated with ByD.<BR /> <H2 id="toc-hId--19534139"><STRONG><U>Design / Process Flow:</U></STRONG></H2><BR /> <UL><BR /> <LI>Retrieve Org Structure from ByDesign during HA activation</LI><BR /> <LI>Retrieve Chart of Accounts from ByDesign during HA activation</LI><BR /> <LI>Retrieve Master Data from ByDesign during HA activation</LI><BR /> <LI>Retrieve GL Account Balances from ByD</LI><BR /> <LI>Retrieve Additions to the Org Structure from ByDesign</LI><BR /> <LI>Retrieve Additions to Chart of Accounts from ByDesign</LI><BR /> <LI>Retrieve Additions to Master Data from ByDesign</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Screenshot-2023-02-16-111612.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Screenshot-2023-03-06-232350.png" /></P><BR /> <BR /> <H2 id="toc-hId--216047644"><SPAN style="text-decoration: underline"><STRONG>Business</STRONG> <STRONG>Benefits:</STRONG></SPAN></H2><BR /> <UL><BR /> <LI>Cloud Solution.</LI><BR /> <LI>Secure - Data transmission Integration relies on secure handling of data between systems.</LI><BR /> <LI>Analytics -Custom reports to track every step of integration.</LI><BR /> </UL><BR /> <H2 id="toc-hId--412561149"><STRONG><U>Conclusion:</U></STRONG></H2><BR /> The Solution which automates the integration of Host Analytics Financial System and SAP Business ByDesign in real time.<BR /> <H4 id="toc-hId--350909216">Kindly post your questions in&nbsp;<A href="https://answers.sap.com/tags/01200615320800000691" target="_blank" rel="noopener noreferrer">ask a question section</A>&nbsp;and feedback in the below comments section.</H4> 2023-03-06T19:06:28+01:00 https://community.sap.com/t5/crm-and-cx-blogs-by-sap/release-announcement-sap-sales-cloud-and-sap-service-cloud-integration-and/ba-p/13562247 Release Announcement- SAP Sales Cloud and SAP Service Cloud Integration and Extensibility training courses updated to 2211 release 2023-03-28T14:47:54+02:00 FernandoRedondo https://community.sap.com/t5/user/viewprofilepage/user-id/7571 Hi there SAP Community!<BR /> <BR /> Fernando from the CRM &amp; CX Product Learning CoE team writing this post about the recent update of our SAP Sales Cloud and SAP Service Cloud Integration and Extensibility training courses to the version 2211 of the software. This update task has taken a lot of effort from many people and took us a couple of months to be completed but finally we have it rolled out!<BR /> <BR /> As a Portfolio Manager for SAP Customer Experience Integration and Extensibility topics, I'm proud to announce and present our new updated training content based on&nbsp;the <EM>SAP Sales Cloud and SAP Service Cloud V1 2211 release.</EM><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/287137_Product-Update_1_R_blue.png" height="113" width="113" /></P><BR /> <P class="image_caption" style="text-align:center;font-style:italic;, Arial, sans-serif">Updated course content to 2211 version</P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><STRONG><U><A href="https://training.sap.com/course/c4h450" target="_blank" rel="noopener noreferrer">C4H450</A></U></STRONG>&nbsp;- <STRONG>SAP Sales and Service Cloud Integration with On-premise SAP Solutions </STRONG></P><BR /> This 4 day course is ideal for people requiring a deep level of integration knowledge in SAP Sales and Service Cloud. In this course you will learn how to integrate SAP Sales and Service Cloud with other SAP solutions such as SAP S/4HANA, SAP ERP and SAP CRM using SAP Cloud Integration.<BR /> <BR /> The target audience for this training are these business roles: Application Consultants, Technology Consultants, Integration Developers, Business Process Owners, Team Leads and Power Users.<BR /> <BR /> <STRONG><U><A href="https://training.sap.com/course/C4H460" target="_blank" rel="noopener noreferrer">C4H460</A></U></STRONG><STRONG>&nbsp;</STRONG><STRONG>- SAP Cloud Applications Studio </STRONG><BR /> <BR /> The SAP Cloud Applications Studio 4 day course simulates the development of a specific customer requirement into an SAP Sales Cloud and SAP Service Cloud functional enhancement using SAP Cloud Applications Studio. Participants are introduced to the Partner Development Infrastructure (PDI) and gain hands-on experience with the Software Development Kit (SDK) using its key features. The SAP host guides participants through the design, development, and deployment of an SAP Cloud for Customer add-on solution.&nbsp;This course targets on Developers and Development Consultants as participants.<BR /> <BR /> These two courses are available on our habitual education mediums <A href="https://learninghub.sap.com/?languagePrompt=true" target="_blank" rel="noopener noreferrer">Learning Hub</A>&nbsp;as well as the&nbsp;<A href="https://training.sap.com/" target="_blank" rel="noopener noreferrer">SAP Training Shop</A><BR /> <BR /> You can expect having all exercises tested and updated to the latest version 2211, easier access to the training landscape and to systems, and also some improvements on system performance. In addition, we have practiced minor content updates and few know issues have been fixed. So, we have here a fresh version of both trainings.<BR /> <BR /> You can bet, we'll continue updating these two Instructor Lead Trainings during this year to catch with new new cloud product versions, But we are also working on new content for our new <A href="https://learning.sap.com" target="_blank" rel="noopener noreferrer">SAP Learning website</A>. As of today, we have published in there the recently updated version of the <A href="https://learning.sap.com/learning-journey/integrate-sap-sales-cloud-and-sap-service-cloud-with-sap-s-4hana" target="_blank" rel="noopener noreferrer">Integrate SAP Sales Cloud and SAP Service Cloud with SAP S/4HANA</A> eLearning course and very soon we'll have published an new course about <EM>Extending SAP Sales Cloud and SAP Service Cloud using SAP Cloud Applications Studio&nbsp;</EM>stay tuned!<BR /> <BR /> <SPAN data-contrast="auto">Please, let me know about your feedback and questions below using comments!</SPAN><BR /> <BR /> &nbsp; 2023-03-28T14:47:54+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/customized-project-budgeting-in-sap-business-bydesign/ba-p/13570236 Customized Project Budgeting in SAP Business ByDesign 2023-04-05T15:35:49+02:00 former_member39718 https://community.sap.com/t5/user/viewprofilepage/user-id/39718 <H2 id="toc-hId-963834889"><STRONG><U>Requirement:</U></STRONG></H2><BR /> Customers needs the ability to specify a budget amount at the project level.<BR /> <BR /> When expenses are posted to a project, the system should validate this expense against the project budget amount<BR /> <BR /> If this expense will cause the total incurred expense for the project to exceed the budgeted amount, the system should stop the transaction from being posted and issue an error message or trigger a mail.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/04/Project-Budgeting-1.png" /></P><BR /> <P class="image_caption" style="text-align:center;font-style:italic;, Arial, sans-serif">Project Budgeting</P><BR /> <BR /> <H2 id="toc-hId-767321384"><STRONG><U>Solution:</U></STRONG></H2><BR /> Build the capability to specify a budget amount at the project level as well as the ability to upload this data from MS Excel. Only an overall budget amount can be specified at the project level<BR /> <H2 id="toc-hId-570807879"><STRONG><U>Design:</U></STRONG></H2><BR /> Budget validation will be provided for the following transactions<BR /> <UL><BR /> <LI><BR /> <H5 id="toc-hId-761542531">Purchase Order</H5><BR /> </LI><BR /> <LI><BR /> <H5 id="toc-hId-565029026">Supplier Invoice</H5><BR /> </LI><BR /> <LI><BR /> <H5 id="toc-hId-368515521">Expense Report</H5><BR /> </LI><BR /> <LI><BR /> <H5 id="toc-hId-172002016">Journal Entry Voucher</H5><BR /> </LI><BR /> </UL><BR /> <H2 id="toc-hId--411759646"><SPAN style="text-decoration: underline"><STRONG>Business</STRONG> <STRONG>Benefits:</STRONG></SPAN></H2><BR /> <UL><BR /> <LI>Hassle free Cloud Solution.</LI><BR /> <LI><SPAN style="font-size: 1rem">Custom reports to track every Project based on Budget.</SPAN></LI><BR /> </UL><BR /> <H2 id="toc-hId--608273151"><STRONG><U>Conclusion:</U></STRONG></H2><BR /> The Solution which describes the Budgeting at Project Level in SAP Business ByDesign<BR /> <H4 id="toc-hId--546621218">Kindly post your questions in&nbsp;<A href="https://answers.sap.com/tags/01200615320800000691" target="_blank" rel="noopener noreferrer">ask a question section</A>&nbsp;and feedback in the below comments section.</H4> 2023-04-05T15:35:49+02:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-calculate-the-difference-between-two-datetime-fields-in-sap-c4c/ba-p/13561604 How to Calculate the Difference Between Two DateTime Fields in SAP C4C 2023-04-06T00:06:39+02:00 former_member625898 https://community.sap.com/t5/user/viewprofilepage/user-id/625898 <DIV><BR /> <BR /> Hello everyone,<BR /> <BR /> In the course of implementing a business requirement, I recently had to calculate the difference between two DateTime fields in SAP C4C for reporting which calculates ticket assignment time from the creation. However, I couldn't find any straightforward blog that provided a simple solution to this problem.<BR /> <BR /> Fortunately, SAP provides a function called Delta() that can be used to calculate the difference between two DateTime fields. The only catch is that Delta() is only accessible for the GlobalDateTime data type.<BR /> <BR /> So, how can you use Delta() for DateTime fields? It's simple - just use the ConvertToGlobalDateTime() function after your DateTime field. This will convert your DateTime field to GlobalDateTime format, allowing you to use Delta().<BR /> <BR /> The result of Delta() is returned in a "Duration" format, which was not convenient for my purposes. To convert the result into minutes or hours, I simply used the ConvertToMinutes() / ConvertToHour() functions, respectively.<BR /> <BR /> Here's a code snippet that demonstrates how to use Delta() to calculate the difference between two DateTime fields:<BR /> <PRE class="language-abap"><CODE>// Creation time in Datetime format.<BR /> var ZV_CreationDateTime = this.RequestInitialReceiptTimePoint.TimePoint.DateTime; <BR /> <BR /> <BR /> //Converting local datetime to global datetime to use standard Delta function.<BR /> var ZV_CreationDateTimeGlobal = Library::DateTime.ConvertToGlobalDateTime(ZV_CreationDateTime);<BR /> <BR /> <BR /> //Ticket reassigned datetime.<BR /> var ZV_AssignedDateTime = Context.GetCurrentGlobalDateTime(); <BR /> <BR /> <BR /> //Calculating the difference between two dates.<BR /> var ZV_DeltaDifference = ZV_AssignedDateTime.Delta(ZV_CreationDateTimeGlobal).ConvertToMinutes();</CODE></PRE><BR /> </DIV><BR /> <DIV></DIV><BR /> <DIV>I hope this solution helps you as much as it helped me. If you have any feedback or questions, please don't hesitate to leave a comment.</DIV><BR /> <DIV></DIV><BR /> <DIV>Links for ref.:<A href="https://help.sap.com/docs/SAP_CLOUD_APPLICATIONS_STUDIO/cbcebe3cfb1647a8b0322c18dbb0b481/729b136f73e21014ae6afa4ef4b79d75.html?q=duration" target="_blank" rel="noopener noreferrer">Duration (Reuse Library)</A></DIV><BR /> <DIV></DIV><BR /> Best regards,<BR /> <BR /> Pratik Shekokar<BR /> <BR /> SAP C4C Technical Consultant 2023-04-06T00:06:39+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/card-connect-in-sap-business-bydesign/ba-p/13554819 Card Connect in SAP Business ByDesign 2023-04-18T09:52:03+02:00 former_member39718 https://community.sap.com/t5/user/viewprofilepage/user-id/39718 <H3 id="toc-hId-1091195437"><STRONG>Introduction</STRONG></H3><BR /> The Card Connect service provider integration facilitates the automatic processing of customer payments using Credit cards, in particular the card tokenization, authorization, and payment settlement with your acquirer. ERP Logic's integrator acts as the link between the service provider, Card Connect and implemented BusinessByDesign solution<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId-894681932"><STRONG>Process Flow</STRONG></H3><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/04/Card-Connect.png" /></P><BR /> <BR /> <H3 id="toc-hId-698168427"><STRONG>&nbsp;Current Pains / Requirements</STRONG></H3><BR /> <UL><BR /> <LI>Additional step to mandatorily subscribe to any Credit Card Service Provider, to receive payments through credit card from the customer.</LI><BR /> <LI>&nbsp;Credit card based payment option with credit card service provider is available only for US customers. No option available for non US customers.</LI><BR /> </UL><BR /> &nbsp;<BR /> <H3 id="toc-hId-501654922"><STRONG>Why Integration? - Solution</STRONG></H3><BR /> Currently Bydesign offers integration with select Credit Card providers . This integration extends use of ByDesign along with Card Connect as a Credit Card Payment provider.<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>&nbsp;</STRONG><BR /> <H3 id="toc-hId-305141417"><STRONG>Features and Benefits</STRONG></H3><BR /> <TABLE width="765"><BR /> <TBODY><BR /> <TR><BR /> <TD width="313">Credit Card Payments from Customers</TD><BR /> <TD width="452">Accept Payment &amp; Settle customer invoices via Credit Card in an exclusive separate Work Centre.</TD><BR /> </TR><BR /> <TR><BR /> <TD width="313">Credit Card authorization</TD><BR /> <TD width="452">Any time Live Authorization with any Credit Card Provider (optional).</TD><BR /> </TR><BR /> <TR><BR /> <TD width="313"><BR /> <BR /> Reconciliation<BR /> <BR /> &nbsp;</TD><BR /> <TD width="452">Periodic Manual Reconciliation from the relevant Bank.</TD><BR /> </TR><BR /> <TR><BR /> <TD width="313"><BR /> <BR /> Built-in reports<BR /> <BR /> &nbsp;</TD><BR /> <TD width="452">Specific Credit Card Payment reports based on Invoices, Customers, Credit Card Types, banks etc..</TD><BR /> </TR><BR /> </TBODY><BR /> </TABLE><BR /> &nbsp; 2023-04-18T09:52:03+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/positive-pay-file-generation-in-sap-bydesign/ba-p/13554737 Positive Pay File Generation In SAP ByDesign 2023-04-26T23:14:56+02:00 gomathij https://community.sap.com/t5/user/viewprofilepage/user-id/15025 <H2 id="toc-hId-962111817"><STRONG><U>Introduction/ About the Product</U></STRONG></H2><BR /> Delivered by ERP Logic, The objective of this customization is generating Positive Pay files in SAP Business ByD.<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId-765598312"><STRONG><U>Business Case/ Requirement</U></STRONG></H2><BR /> Positive Pay File that needs to be generated in Text file(.txt) based on the format supported by the bank. The generated file can be uploaded manually by user in to the bank site.<BR /> <BR /> <STRONG><U>&nbsp;</U></STRONG><BR /> <H2 id="toc-hId-569084807"><STRONG><U>Solution overview</U></STRONG></H2><BR /> The solution overview where the customer can view a custom work center where they can view check file based on multiple selection criteria as per their need. Once viewed, the same can be extracted via text format according to the bank standards and the same can be uploaded in to bank site.<BR /> <H2 id="toc-hId-372571302"><STRONG><U>High-level Architecture Design</U></STRONG></H2><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/04/Positivepayimg-2.png" height="283" width="618" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId-176057797"><STRONG><U>Key</U></STRONG><STRONG>-<U>Features</U></STRONG></H2><BR /> <UL><BR /> <LI>Adequate Process</LI><BR /> </UL><BR /> &nbsp;<BR /> <H2 id="toc-hId--20455708"><STRONG><U>Benefits</U></STRONG></H2><BR /> <UL><BR /> <LI>Reduce Time consumption.</LI><BR /> <LI>Secured and Prevent cheque fraud.</LI><BR /> </UL><BR /> <H2 id="toc-hId--216969213"><STRONG><U>Conclusion</U></STRONG></H2><BR /> The Solution which automates the generation of Positive pay files in SAP Business ByDesign in real time.<BR /> <BR /> Kindly post your questions in&nbsp;<A href="https://answers.sap.com/tags/01200615320800000691" target="_blank" rel="noopener noreferrer">ask a question section</A>&nbsp;and feedback in the below comments section.<BR /> <BR /> &nbsp; 2023-04-26T23:14:56+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/set-filter-to-read-only/ba-p/13552180 Set filter to read-only 2023-05-16T15:44:05+02:00 Markus_Massfeld https://community.sap.com/t5/user/viewprofilepage/user-id/134782 I came across an issue when customizing the filter options for an OWL and I want to share my findings with you.<BR /> <BR /> I added an input field and set the property to "readOnly = true". So the input field was greyed out, but I could still press the filter button and adjust the filter options.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><STRONG><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/05/sap_blog_filter.png" /></STRONG></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Filter text greyed out</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/05/sap_blog_filter_2.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Filter option still available</P><BR /> In my opinion this behaviour doesn't make any sense, as I don't need filter options for a read-only input field. So I was looking for a possibility to set the filter button to read-only as well and I found a property to show or hide the filter button.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/05/sap_blog_filter_3.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Adjust property ShowSelectOption</P><BR /> By default the property ShowSelectOption is set to <STRONG>true</STRONG>. After setting the property to <STRONG>false</STRONG> the filter button is hidden.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/05/sap_blog_filter_4.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Filter button hidden</P><BR /> I know this is a very rare use case but I hope this article can help someone with the same issue.<BR /> <BR /> Please feel free to leave some feedback. 2023-05-16T15:44:05+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/custom-outbound-bank-file-format-in-sap-bydesign/ba-p/13556175 Custom Outbound Bank File Format In SAP ByDesign 2023-06-28T15:03:50+02:00 archana2507 https://community.sap.com/t5/user/viewprofilepage/user-id/140530 <H2 id="toc-hId-962165755"><STRONG><U>Introduction/ About the Product</U></STRONG></H2><BR /> Delivered by ERP Logic, The objective of this customization is the implementation of a custom Outbound Bank file format in SAP Business ByD.<BR /> <H2 id="toc-hId-765652250"><STRONG><U>Business Case/ Requirement</U></STRONG></H2><BR /> <UL><BR /> <LI>The requirement is to create a custom-defined payment file structure for a Bank for both Domestic and Foreign payments as per the sample format provided by Bank.</LI><BR /> <LI>The payment file structure remains the same for both the Domestic and Foreign Payment.</LI><BR /> <LI>The generation of the output file is to be in .xml format.</LI><BR /> </UL><BR /> <H2 id="toc-hId-569138745"><STRONG><U>Solution overview</U></STRONG></H2><BR /> As there is no option available to add or modify the fields in the SAP ByD standard payment file structure, ERPL will create a custom-defined payment file structure in Bydesign as per the sample file format provided by the Bank.<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId-372625240"><STRONG><U>High-level Architecture Design</U></STRONG></H2><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/MicrosoftTeams-image-43.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Outbound Bank File Format In SAP ByDesign</P><BR /> <BR /> <H2 id="toc-hId-176111735"><STRONG><U>Benefits</U></STRONG></H2><BR /> <UL><BR /> <LI>Secure – Data transmission Integration relies on secure handling of data between systems.</LI><BR /> <LI><SPAN class="ui-provider gl b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">It is reliable in renaming or relabelling fields in the generated bank file to match specific bank requirements, ensuring smooth electronic payment processing.</SPAN></LI><BR /> <LI>Custom Payment File format in SAP By Design.</LI><BR /> </UL><BR /> <H2 id="toc-hId--20401770"><STRONG><U>Conclusion</U></STRONG></H2><BR /> The Solution which automates the fields in the SAP ByD standard payment file structure for Outgoing Bank Transfer in SAP Business Bydesign.<BR /> <BR /> Kindly post your questions in ask a question section and feedback in the below comments section. 2023-06-28T15:03:50+02:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/integration-of-sap-business-bydesign-with-acumatica-a-third-party-erp/ba-p/13559458 INTEGRATION OF SAP BUSINESS BYDESIGN WITH ACUMATICA A THIRD-PARTY ERP SYSTEM 2023-07-21T21:20:24+02:00 archana2507 https://community.sap.com/t5/user/viewprofilepage/user-id/140530 <STRONG>Introduction:</STRONG><BR /> <BR /> In today's fast-paced and competitive business landscape, having efficient and streamlined operations is crucial for success. By leveraging the power of technology and integrating different software solutions, businesses can optimize their processes and achieve greater productivity. One such integration that offers immense benefits is the integration of Business ByDesign and Acumatica. In this blog post, we will explore the advantages of integrating these two powerful platforms and how it can help businesses achieve operational excellence.<BR /> <BR /> <STRONG>Understanding Business ByDesign and Acumatica:</STRONG><BR /> <BR /> Before delving into the benefits of integration, let's briefly understand what Business ByDesign and Acumatica are and how they contribute to business management.<BR /> <UL><BR /> <LI>Business ByDesign is an all-in-one cloud-based business management software offered by SAP. It provides comprehensive solutions for various functions, including finance, sales, procurement, project management, and more. Business ByDesign offers scalability and flexibility, making it suitable for both small and mid-sized businesses.</LI><BR /> <LI>Acumatica is a leading cloud-based enterprise resource planning (ERP) system. It offers robust functionality across various areas, including financial management, customer relationship management (CRM), distribution, manufacturing, and more. Acumatica is highly customizable and can adapt to the unique needs of businesses across different industries.</LI><BR /> </UL><BR /> <STRONG>High-Level Architecture:</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/Acumatica-Blog.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Acumatica and Business ByDesign Integration Process</P><BR /> <STRONG>The Benefits of Integration:</STRONG><BR /> <BR /> Integrating Business ByDesign and Acumatica brings several advantages that enhance overall business efficiency and effectiveness.<BR /> <UL><BR /> <LI>Real-time Data Synchronization: Integrating Business ByDesign and Acumatica allows for seamless data exchange between the two systems. This enables real-time synchronization of crucial business data, such as sales orders, inventory levels, customer information, and financial data. With accurate and up-to-date information available across systems, decision-making becomes faster and more informed.</LI><BR /> </UL><BR /> <STRONG>Conclusion:</STRONG><BR /> <BR /> <SPAN class="ui-provider ga b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">Business ByDesign and Acumatica integration is a streamlined process for Master Data and Financial Transmission between two systems</SPAN><BR /> <BR /> Kindly post your questions in ask a question section and feedback in the below comments section. 2023-07-21T21:20:24+02:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-control-visibility-of-any-tab-field-using-ruby-script-in-sdk-ui/ba-p/13578518 How to control visibility of any tab/field using ruby script in SDK UI designer 2023-09-14T01:18:18+02:00 tkbisoyi9118 https://community.sap.com/t5/user/viewprofilepage/user-id/162380 As the UI rules in C4C is not applicable for SDK custom fields and tabs. We cannot control over the behaviors of custom fields or tabs from C4C UI. But we can control the behaviors like “Enabled”, “Mandatory”, “Visible” &amp; “Read Only” using ruby script in SDK UI designer.<BR /> <BR /> In this blog, I will demonstrate how can we control any custom tab or field’s visibility on the basis of another field’s dropdown value using ruby script in the UI designer of SDK.<BR /> <BR /> Let's consider one example: There is one custom BO called “PM” (Plant maintenance) which is having a dropdown field&nbsp; &nbsp;as “Maintenance Type” with the values as 01- General, 02 – Preventive &amp; 03- Break Down. Two custom tabs are created as “General &amp; Break Down” and “Preventive”. Both the tabs consist of different information corresponding to their maintenance type where “General &amp; Break Down” tab has same type of information and “Preventive” tab has some more information than as “General &amp; Break Down”.<BR /> <BR /> So, when one user will select a particular maintenance type in Maintenance Type field, corresponding to that field value, the respective tab will be visible and other tab will be hidden.<BR /> <BR /> <STRONG>Case1 – Control tab visibility using ruby script.</STRONG><BR /> <BR /> As you can see in the TI screen of PM BO, 2 tabs are created and maintained as “General &amp; Breakdown” &amp; “Preventive”.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/1-44.png" /></P><BR /> To hide the Preventive tab for general and breakdown type of maintenance, we must follow the below steps:<BR /> <OL><BR /> <LI>Open the TI screen in UI designer. Select the tab (General &amp; Breakdown) for which you want to control the visibility via ruby script.</LI><BR /> <LI>Then go to Properties and select “Visible” under “Behavior” section. Select as Advanced and choose “Calculation Rule”.</LI><BR /> <LI>Inside the body of “Calculation Rule” write the ruby script code as below.</LI><BR /> </OL><BR /> The code says:&nbsp; If the maintenance type (M_Type) is General (01) or Breakdown (03) then the “General &amp; Break Down” tab should be visible and the “Preventive” tab should not be visible.<BR /> <OL start="4"><BR /> <LI>From the Invalidation trigger window select the data field on which the condition is applied and click on “-&gt;”.</LI><BR /> </OL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/2-7.jpg" /></P><BR /> Same steps need to be followed for “Preventive” tab. Like Select the tab, select “Visible” under “Behavior” section, and choose advanced with calculation rule. Then write the logic: - if maintenance type is “Preventive” (02) then visibility should be true else false for other type of maintenance.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/3-22.png" /></P><BR /> <STRONG>The Result: </STRONG><BR /> <BR /> There are three types of maintenance.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/4-25.png" /></P><BR /> If I select Breakdown maintenance, then “General &amp; Breakdown” tab is visible and the “Preventive” tab is hidden.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/5-19.png" /></P><BR /> If I select General maintenance, then “General &amp; Breakdown” tab is visible and the “Preventive” tab is hidden.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/6-18.png" /></P><BR /> But when I have selected Preventive maintenance the “General &amp; Breakdown” tab is hidden, and “Preventive” tab is visible.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/7-15.png" /></P><BR /> <STRONG>&nbsp;</STRONG><BR /> <BR /> <STRONG>Case 2: Control field visibility using Ruby script.</STRONG><BR /> <BR /> We can perform this logic to hide/unhide any field as per list value of “Maintenance Type” in UI designer of SDK.<BR /> <BR /> Let’s consider, “Cycle pending” &amp; “Frequency Applied” fields are related to Preventive type of maintenance. So, the requirement is when we are not selecting Preventive type of maintenance these 2 fields should be hidden.<BR /> <OL><BR /> <LI>On the TI screen in UI designer select the field you want to hide/unhide. Then under Behavior select “visible” and choose “Advanced” for Calculation Rule.</LI><BR /> <LI>In the body write the logic as below to satisfy above condition.</LI><BR /> <LI>From the Invalidation trigger select the field which is maintained in the condition and move to right box. Then Save and activate the UI.</LI><BR /> </OL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/8-12.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/9-12.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>The Result: </STRONG><BR /> <BR /> When I have selected maintenance type as “Preventive” the corresponding fields can be seen in the overview tab.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/10-15.png" /></P><BR /> But when I have selected either “General” or “Breakdown” in maintenance type then those fields are hidden.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/11-22.png" /></P><BR /> <STRONG>Conclusion: -</STRONG><BR /> <BR /> This solution is very straight and simple. This can be very useful in most of the projects of C4C for such type of requirements. We can use the Calculation rules and ruby scripts for various conditions and different requirements. 2023-09-14T01:18:18+02:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-integrate-sdk-extension-fields-into-web-services/ba-p/13578931 How To Integrate SDK Extension Fields into Web Services 2023-09-14T23:47:13+02:00 Sunil5 https://community.sap.com/t5/user/viewprofilepage/user-id/162675 It’s a common business requirement to replicate the data for extension fields to different systems. In this blog, I will demonstrate how to add SDK extension field to a standard web service which can then be used by other applications.<BR /> <BR /> Here We have added some extension fields in Customer Extension BO which are needed to be available in customer web service (ManageCustomerIn).<BR /> <BR /> To add extension field to Extension BO we need to follow below steps:<BR /> <BR /> &nbsp;<BR /> <UL><BR /> <LI>Open your solution and click on Add New Item and select the “Extension” and from the list select “Business Object Extension”.</LI><BR /> <LI>Add extension fields in “Business Object Extension” as shown below.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture1-31.png" /></P><BR /> &nbsp;<BR /> <BR /> We now have few extension fields created in Extension BO in Cloud Application Studio. If those extension fields are required to be available in standard web service, we need to create “<STRONG>Process Extension Scenario</STRONG>”. Here you need to follow the below steps:<BR /> <BR /> &nbsp;<BR /> <UL><BR /> <LI>Right click on your solution and click on Add New Item and select the “Extension” and from the list select “<STRONG>Process Extension Scenario</STRONG>” as shown below.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture2-20.png" /></P><BR /> &nbsp;<BR /> <UL><BR /> <LI>Click on Add and new pop-up comes up with the details like select “Namespace, Business Object, Node” as shown below.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture3-19.png" /></P><BR /> &nbsp;<BR /> <UL><BR /> <LI>We need to select the checkbox of any service scenario view. After that the extension fields will be available for the webservices. Then click on Ok button to finish this setup.</LI><BR /> <LI>After completing all the above processes. Add the Process Extension Scenario name in “Scenario” annotation before the element name of extension fields as shown below.</LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture7-13.png" /><BR /> <BR /> &nbsp;<BR /> <UL><BR /> <LI>After that Save and Activate the Extension BO.</LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> Now we can be able to use the updated WSDL file of Customer Extension BO in web service integration. For which we have follow the below steps.<BR /> <BR /> Then go to the Business User work center and download the WSDL file for which you have added the extension fields. Then you need to follow the below steps:<BR /> <UL><BR /> <LI>Login to C4C using Business user credentials. Navigate as Administrator --&gt; Service Explorer.</LI><BR /> <LI>Select the web service where you have extended the extension fields and download the WSDL file as shown below.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture5-11.png" /></P><BR /> <STRONG>Result Preview:- </STRONG><BR /> <BR /> After downloaded the WSDL file save it into your system. Then drag and drop the WSDL file to the browser where you can find newly added extension fields.<BR /> <BR /> You can also open the WSDL file through Notepad++ and search for the fields.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Picture6-14.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>Conclusion:- </STRONG><BR /> <BR /> After extending the extension fields to the web service you can use those SDK fields in any integration.<BR /> <BR /> &nbsp; 2023-09-14T23:47:13+02:00 https://community.sap.com/t5/crm-and-cx-blogs-by-members/developing-a-new-custom-data-source-in-sap-c4c-using-sap-cloud-application/ba-p/13562592 Developing a New Custom Data Source in SAP C4C Using SAP Cloud Application Studio (SDK) 2023-09-26T15:23:36+02:00 msalmani https://community.sap.com/t5/user/viewprofilepage/user-id/43930 <H1 id="toc-hId-833891296">1. Introduction</H1><BR /> We already explained in this blog <A href="https://blogs.sap.com/2023/01/18/developing-a-new-custom-data-source-in-sap-c4c/" target="_blank" rel="noopener noreferrer">Developing a New Custom Data Source in SAP C4C</A>, how to develop a new data source of types joined or combined directly within SAP C4C. Now, in this blog, we will learn how to develop a new custom data source (and not a joined or combined one) for a custom/standard business object in SAP C4C using SAP SDK. This data source can be used further for developing a new report, key figure or a new custom KPI. It means, developing a data source gives us more flexibility to develop more helpful analytical dashboards and reports.<BR /> <H1 id="toc-hId-637377791">2. Developing a New Custom Data Source</H1><BR /> As starting point, we should open the desired solution in SAP SDK and then right click on the desired folder and select "Add - New Item ...".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Add-Item.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 01: Add a New Item in SAP SDK</P><BR /> Then, we will see following popup in which we need to select "Analytics - Data Source" and the put a name for it:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-DS-Type.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 02: Add New Data Source in SAP SDK</P><BR /> If we select "Joined Data Source" or "Combined Data Source" in the above screenshot, then we will be redirected to SAP C4C for creating a new data source which is already explained in <A href="https://blogs.sap.com/2023/01/18/developing-a-new-custom-data-source-in-sap-c4c/" target="_blank" rel="noopener noreferrer">Developing a New Custom Data Source in SAP C4C</A>.<BR /> <BR /> Then we see next popup in which we should provide more details. Some of these details are clear, but here is more details SAP provided for last three fields:<BR /> <UL><BR /> <LI><STRONG>Enable Access Control</STRONG>: Select this checkbox to allow restrictions for data from this data source. This data that users can access is defined in the work center view to which a report is assigned. To enable access control, your business object must contain an association that is marked as relevant for access control.</LI><BR /> <LI><STRONG>Allow Referencing</STRONG>: Select to allow referencing by another data source and allow the fields of your data source name to be used in reports based on the referencing data source.</LI><BR /> <LI><STRONG>Log Sensitive Personal Data</STRONG>: Select the checkbox to enable read access logging for sensitive personal data.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-01-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 03: Add Details of New Data Source in SAP SDK</P><BR /> In the next step, we select desired fields, nodes and associations which we want to add to data source in and output.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-02-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 04: Selecting Desired Fields, Nodes, and Associations</P><BR /> Now, it is time to define transformation rules for business object elements. Here, we have this option to rename field names, as we see below. In some cases, we can select a second parameter within the transformation rule. For more information about possible transformation rules, we can refer to <A href="https://help.sap.com/doc/saphelpiis_studio_1805/2018.05/en-US/KTP/Products/bf889ebdf45d4dd19d4a0e0bd39a07fb/DeveloperDesktop/Analytics/ESS_CON_TransformationRules.html" target="_blank" rel="noopener noreferrer">Transformation Rule</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-03-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 05: Define Transformation Rules for Business Object Elements</P><BR /> In the next step, we can define aggregations which allows us further to calculate new key figures. In our example, we defined three aggregations on the field quantity as maximum, minimum, and summation. However, based on field type, we may have different possible aggregations in C4C.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-04-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 06: Define Aggregation Behaviour for Business Object Elements</P><BR /> Finally, we can review everything and confirm it.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-06-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 07: Review and Confirm the New Custom Data Source</P><BR /> We can also access to the created item any time int the solution and update it, if required.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/SDK-Create-a-DS-07-1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Image 08: Review and Update an Already Created Custom Data Source</P><BR /> <BR /> <H1 id="toc-hId-440864286">3. Conclusion</H1><BR /> As a conclusion, we are now able to develop a new custom data source for a standard or custom business object. This can be later used in C4C to develop new joined/combined custom data sources.<BR /> <H1 id="toc-hId-244350781">4. Call for Action</H1><BR /> I would like to request you to share feedback or thoughts in a comment and follow my profile (<SPAN class="mention-scrubbed">mhsalmani</SPAN>) for future posts.<BR /> <BR /> If you have any question regarding SAP Cloud Applications Studio you can ask it&nbsp;<A href="https://answers.sap.com/tags/67837800100800006741" target="_blank" rel="noopener noreferrer">here</A> or even read other blogs through this <A href="https://blogs.sap.com/tags/67837800100800006741/" target="_blank" rel="noopener noreferrer">link</A>.<BR /> <BR /> Moreover, there are some other related blogs which I published as following:<BR /> <UL><BR /> <LI><A href="https://blogs.sap.com/2023/01/18/developing-a-new-custom-data-source-in-sap-c4c/" target="_blank" rel="noopener noreferrer">Developing a New Custom Data Source in SAP C4C</A></LI><BR /> </UL> 2023-09-26T15:23:36+02:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-create-custom-ui-screens-for-mobile-application-in-business-bydesign/ba-p/13574291 How to create custom UI screens for Mobile Application in Business ByDesign 2023-10-03T22:08:55+02:00 ArunKumar14 https://community.sap.com/t5/user/viewprofilepage/user-id/165801 <H2 id="toc-hId-963954234"><STRONG>Steps to create the custom UI enablement in SAP Business ByDesign</STRONG></H2><BR /> <P style="text-align: left">&nbsp; &nbsp; &nbsp;With the SAP Business ByDesign Mobile App, you can access many of the main functions of the system that have been tailored to business on-the-run.</P><BR /> <P style="text-align: left">&nbsp; &nbsp; Changes made on your mobile device are automatically updated in the system, over the Internet, online and in real time.</P><BR /> <P style="text-align: left">&nbsp; &nbsp; &nbsp;As in the desktop applications, you can use the ByDesign extensibility and flexibility features to extend the standard contents of the mobile app, as well as the content developed by partners and customers. In addition, you can use the SAP Cloud Applications Studio to extend many mobile functions.</P><BR /> <P style="text-align: left"><STRONG>SUPPORTED PLATFORMS</STRONG></P><BR /> <P style="text-align: left">The mobile application is currently available for the following smartphones,<BR /> i.) Android Phones.<BR /> ii.) Apple iPhone.</P><BR /> <P style="text-align: left"><STRONG>SCENARIO:</STRONG> Implementing the mobile application as same as a desktop application of SAP Business ByDesign.</P><BR /> <P style="text-align: left"><STRONG>WORKFLOW:</STRONG></P><BR /> <P style="text-align: left">I.&nbsp; &nbsp;Create a custom business object.<BR /> II.&nbsp; Generating screen for desktop application (As usual Procedure).<BR /> III. Generating screen for mobile application (Change the screen name).<BR /> IV. Design the screen for mobile application.<BR /> V.&nbsp; Testing.</P><BR /> <P style="text-align: left"><STRONG>I. CREATE A CUSTOM BUSINESS OBJECT</STRONG></P><BR /> <BR /> <UL><BR /> <LI>Create a custom business object.</LI><BR /> <LI>Define elements in root and item level as shown in the below screenshot.</LI><BR /> <LI>Save and activate.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Image-42.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>II. GENERATING SCREEN FOR DESKTOP APPLICATION:</STRONG><BR /> <UL><BR /> <LI>This is the mandatory step for designing the desktop application.</LI><BR /> <LI>For the desktop screens follow the as-usual procedure to design the screens. Note the Short ID while generating the screens.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Image1-1.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>III. GENERATING SCREEN FOR MOBILE APPLICATION (CHANGE THE SCREEN NAME) </STRONG><BR /> <BR /> For the same Custom Business Object, generate one more set of screens by changing the Screen Name and give the short ID.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Image2-1.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>IV. DESIGN THE SCREEN FOR MOBILE APPLICATION</STRONG><BR /> <BR /> Now open the Work center View of the mobile app screen, change the properties as highlighted below,<BR /> <UL><BR /> <LI>In properties under configuration there will be a tags, open the tags choose the attribute as "<STRONG>Device</STRONG>" and the value as Mobile HTML.</LI><BR /> <LI>Also add one more operation choose the attribute as "<STRONG>Device Cluster</STRONG>" and the value as SHORT ID which you have given while generating the screens for the desktop and click on Ok.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Image3-1.png" /></P><BR /> <BR /> <UL><BR /> <LI><SPAN style="font-size: 1rem">Save and activate the work center view.</SPAN></LI><BR /> <LI>Open the work center of the mobile app screen, save and activate it.</LI><BR /> <LI>Open the OWL, QA and OIF of the mobile app screen , Design it (as done in the desktop screens / as-usual procedure to design it) and Change the properties as highlighted below,</LI><BR /> </UL><BR /> <OL><BR /> <LI>Add a operation and choose the attribute as device and the value as "<STRONG>Mobile HTML</STRONG>", click on Ok.</LI><BR /> <LI>Save and activate it, screens will not be activated, error will be occurs.</LI><BR /> <LI>Once the properties are changed from OWL, QA, and OIF screens.</LI><BR /> <LI>Save and activate the mobile app screens starting from WC View, OWL, QA, and OIF screens.</LI><BR /> </OL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Image4-1.png" /></P><BR /> &nbsp; &nbsp; &nbsp; 5. Assign the work center of the mobile screen to the front end on your desktop and the screens will be displayed in your mobile app.<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>V. TESTING:</STRONG><BR /> <UL><BR /> <LI>Download the <STRONG>SAP Business ByDesign Mobile</STRONG> app from the play store/App Store in your mobile.</LI><BR /> <LI>Login into SAP Business ByDesign Mobile application.</LI><BR /> <LI>Open the Mobile – Work center of your custom object.</LI><BR /> <LI>Test the scenario by create the record and save it.</LI><BR /> </UL><BR /> <STRONG>NOTE: I</STRONG><SPAN style="font-size: 1rem">n the mobile screen, the standard object value selector (OVS) will not be accepted since that is designed for the Desktop. So as a result we need to create a custom OVS and assign it to the appropriate field. </SPAN>Also, change the properties of the custom OVS by adding one attribute under tag and assign it to the "<STRONG>Mobile HTML"</STRONG>.<BR /> <BR /> &nbsp; 2023-10-03T22:08:55+02:00 https://community.sap.com/t5/sap-learning-blog-posts/where-can-i-learn-development-process-and-techniques-for-extending-the-sap/ba-p/294401 Where can I learn development process and techniques for extending the SAP Sales Cloud 2023-10-11T12:37:12.547000+02:00 Margit_Wagner https://community.sap.com/t5/user/viewprofilepage/user-id/491 <DIV class=""><DIV class=""><DIV class=""><P>You can build the skills you need, for free and at your own pace with our Digital Learning Journey.&nbsp;<BR />on&nbsp;&nbsp;our&nbsp;<A title="SAP Learning Site&nbsp;" href="https://learning.sap.com/learning-journey" target="_blank" rel="noopener noreferrer">SAP Learning Site</A></P><DIV><P>I recommend to access our&nbsp;<SPAN><A title="Extending SAP Sales and Service Cloud with SAP Cloud Applications Studio learning journey" href="https://learning.sap.com/learning-journey/extending-sap-sales-and-service-cloud-with-sap-cloud-applications-studio" target="_blank" rel="noopener noreferrer">Extending SAP Sales and Service Cloud with SAP Cloud Applications Studio learning journey</A>&nbsp;</SPAN><BR /><BR /></P><DIV><STRONG>Overview<BR /></STRONG><SPAN>This learning journey will guide you through the development process and techniques for extending the SAP Sales Cloud and SAP Service Cloud using SAP Cloud Applications Studio.</SPAN><BR /><DIV><P><STRONG>Learning objectives<BR /></STRONG>After completing this learning journey, <STRONG>consultants</STRONG> and <STRONG>developers</STRONG> will understand how to develop their own solutions for SAP Sales and Service Cloud using new custom business objects, screens and/or extending the standard content repository using SAP Cloud Applications Studio.</P><P><STRONG>Prerequisites</STRONG></P><UL><LI><SPAN>Basic knowledge of SAP Sales Cloud and/or SAP Service Cloud</SPAN></LI><LI>Ability to navigate through the user interface of these systems</LI><LI>Previous Developer Experience</LI></UL><DIV>&nbsp;</DIV><H3 id="toc-hId-1456502343">Pass all the quizzes and receive a digital badge</H3></DIV></DIV><DIV><P class=""><SPAN>Hope this is helpful.</SPAN></P><P class=""><STRONG>Please ask a question related&nbsp;to the digital learning journey in the&nbsp;<A title="Q&amp;A area" href="https://groups.community.sap.com/t5/sap-learning/gh-p/learning" target="_blank" rel="noopener noreferrer">Q&amp;A area</A></STRONG></P><P class=""><SPAN>Our SAP Learning Experts will get back to you as soon as possible!&nbsp;We are here to support you.</SPAN></P></DIV><DIV><DIV><DIV><P><SPAN>We appreciate your feedback and we will make sure to continue sharing interesting topics.</SPAN></P><P><SPAN>Kind regards<BR />Margit</SPAN></P></DIV></DIV></DIV></DIV></DIV></DIV></DIV> 2023-10-11T12:37:12.547000+02:00 https://community.sap.com/t5/crm-and-cx-blogs-by-sap/new-learning-journey-extending-sap-sales-and-service-cloud-with-sap-cloud/ba-p/13579721 New learning Journey– Extending SAP Sales and Service Cloud with SAP Cloud Applications Studio 2023-10-16T11:11:51+02:00 FernandoRedondo https://community.sap.com/t5/user/viewprofilepage/user-id/7571 Hello everybody again! This is Fernando speaking!<BR /> <BR /> During last 10 years we’ve been updating and improving the content for this course: <A href="https://training.sap.com/course/c4h460-sap-cloud-applications-studio-previously-known-as-c4c30-classroom-024-g-en/" target="_blank" rel="noopener noreferrer">SAP Cloud Applications Studio</A> (nowadays named C4H460 but formerly known as C4C30). This course is excellent for a 4-day class delivered by an instructor (I've delivered it many times), but it wasn’t designed as an eLearning targeting students who are pacing themselves. By the end of last year, we decided to create from scratch a new digital first learning journey project. We've analyzed the objectives for a beginner learner to take advantage of the major topics from the very first minutes of studying, we’ve created and developed complete brand-new materials for the all units and all lessons using new texts, graphics, interactions, simulations and videos bearing in mind all those years of classroom teaching experience but also getting first-hand feedback from real live project developer consultants.<BR /> <BR /> <STRONG style="font-size: 1rem"><SPAN class="TextRun MacChromeBold SCXW235998497 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><STRONG><SPAN class="NormalTextRun SCXW235998497 BCX0"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/05/281495_SpiralboundNotebook_R_blue.png" height="86" width="86" /></SPAN></STRONG></SPAN> </STRONG><BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><SPAN class="TextRun MacChromeBold SCXW235998497 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><STRONG><SPAN class="NormalTextRun SCXW235998497 BCX0">New Learning Journey</SPAN></STRONG></SPAN></P><BR /> <STRONG><A href="https://learning.sap.com/learning-journey/extending-sap-sales-and-service-cloud-with-sap-cloud-applications-studio?url_id=text-blogs-LSCPLCoE-SSC-Studio" target="_blank" rel="noopener noreferrer">C4H46B - Extending SAP Sales and Service Cloud with SAP Cloud Applications Studio</A></STRONG><BR /> <BR /> &nbsp;<BR /> <BR /> <SPAN class="TextRun SCXW44743972 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><SPAN class="NormalTextRun SCXW44743972 BCX0">This learning journey is available completely free on SAP's new educational platform <STRONG>learning.sap.com</STRONG></SPAN><SPAN class="NormalTextRun SCXW44743972 BCX0">. Following the learning journey you will notice that now, most of the content is multimedia, so that you can learning easily a wide set of topics with simulations, animations, hot maps, and</SPAN><SPAN class="NormalTextRun SCXW44743972 BCX0"> even with videos recordings from the real developer tasks and activities on the cloud system and also using the IDE (<EM>Integrated Development Environment</EM>) .</SPAN></SPAN><BR /> <BR /> Our goal with this learning journey is to enable developers and consultants to gain the knowledge on how to develop their own solutions for SAP Sales and Service Cloud using new custom business objects, screens and/or extending the standard content repository using SAP Cloud Applications Studio.I <SPAN class="EOP SCXW8580650 BCX0" data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}">know that sounds like a big goal, but we are covering all the major development steps during this eLearning with high level of detail.</SPAN><BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/04/Course.png" height="98" width="98" /><STRONG style="font-size: 1rem">&nbsp;</STRONG><BR /> <BR /> <STRONG><SPAN class="TextRun MacChromeBold SCXW118631084 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><SPAN class="NormalTextRun SCXW118631084 BCX0">Audience</SPAN></SPAN></STRONG><BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI><SPAN data-contrast="auto">Technical Consultants</SPAN></LI><BR /> <LI><SPAN data-contrast="auto">Developers</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}">&nbsp;</SPAN></LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Picture1-31.png" height="98" width="98" /><STRONG style="font-size: 1rem">&nbsp;</STRONG><STRONG><SPAN class="TextRun MacChromeBold SCXW118631084 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><SPAN class="NormalTextRun SCXW118631084 BCX0">Featured topics</SPAN></SPAN></STRONG><BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI style="list-style-type: none"><BR /> <UL><BR /> <LI>Introductory discussion about all SAP Sales and Service Cloud Extensibility&nbsp;Options.</LI><BR /> <LI>A comprehensive primer development lifecycle and to the Studio setup and UI.</LI><BR /> <LI>How to use the scripting language to define business objects and implement business logic.</LI><BR /> <LI>Developing Custom Business Objects and Extending Standard Business Objects.</LI><BR /> <LI>Explanation about Business Configuration concept.</LI><BR /> <LI>Considerations on Assembling and downloading the solution on the development tenant to move it to another tenant.</LI><BR /> <LI>Deploying the solution on another tenant to test it or use it productively.</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <SPAN class="EOP SCXW8580650 BCX0" data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}">Here you have a glimpse of the look and feel:</SPAN><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Screenshot-2023-10-16-at-10.57.19.png" /></P><BR /> &nbsp;<BR /> <BR /> If you are thinking about extending your SAP Sales Cloud or your SAP Service Cloud solution with your own business logic this is the right initial course for you! Go and learn all the foundations about the development process. After that, you can still decide to participate in the <A href="https://training.sap.com/course/c4h460-sap-cloud-applications-studio-previously-known-as-c4c30-classroom-024-g-en/" target="_blank" rel="noopener noreferrer">4 day Instructor Led Training</A> which will give you the opportunity to have deeper tech discussions with other students and the instructor and also to carry out a whole collection of exercises that will cover the end to end process for the solution creation.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/05/282030_PlayButton2_R_blue-2.png" height="98" width="98" /><STRONG style="font-size: 1rem">&nbsp;</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px"><SPAN class="TextRun MacChromeBold SCXW142835170 BCX0" lang="EN-US" lang="EN-US" data-contrast="auto"><SPAN class="NormalTextRun SCXW142835170 BCX0"><STRONG>Additional Updates</STRONG></SPAN></SPAN></P><BR /> <SPAN data-contrast="auto">Check out our SAP Learning Journeys and much more free learning content at </SPAN><A href="https://learning.sap.com/?url_id=text-signaviocommunity-may22" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP Learning site</SPAN></A><SPAN data-contrast="auto">, where you can build in-demand SAP skills for free on a </SPAN><A href="https://learning.sap.com/products/customer-experience" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">variety of topics in SAP Customer Experience</SPAN></A><SPAN data-contrast="auto">.</SPAN> <SPAN data-contrast="auto">For quick video learning, check out the </SPAN><A href="https://microlearning.opensap.com/channel/Expert%2BSAP%2BExtension%2BSuite%2Bfor%2BCustomer%2BExperience/173269601" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">openSAP Microlearning for CX extensibility topics</SPAN></A><SPAN data-contrast="auto">&nbsp;</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}">&nbsp;</SPAN><BR /> <BR /> &nbsp;<BR /> <BR /> I’ll be back very soon to present you more new learning resources, talks, sessions and anything which could be of interest for you related to SAP Customer Experience Integration and Extensibility area!<BR /> <BR /> <SPAN data-contrast="auto">Please, let me know about your feedback and questions below via comments!</SPAN><BR /> <BR /> &nbsp; 2023-10-16T11:11:51+02:00 https://community.sap.com/t5/technology-blogs-by-sap/archiving-optimize-with-pdi/ba-p/13576821 Archiving - Optimize with PDI 2023-11-02T09:39:04+01:00 HorstSchaude https://community.sap.com/t5/user/viewprofilepage/user-id/6371 When Business Objects are deleted by Archiving their persistency is simply relocated from the systems database to an external storage and they are no longer part of any business chain.<BR /> <BR /> This means that during this deletion no other objects should be created or updated. No integration calls shall take place, except the information that this instance has been archived.<BR /> <BR /> This is done for the most of the SAP frameworks centrally, but what about the enhancements via the Partner Development Infrastructure (PDI)?<BR /> <BR /> As referred in <A href="https://blogs.sap.com/2020/12/03/archiving-how-it-is-designed-how-does-it-work/" target="_blank" rel="noopener noreferrer">this blog</A> one can check against the &nbsp;element “<EM>ArchivingStatusCode</EM>” but with <SPAN style="font-size: 1rem">the current release it is much easier:</SPAN><BR /> <UL><BR /> <LI><SPAN style="font-size: 1rem">Use the PDI Reuse Library </SPAN><STRONG style="font-size: 1rem">Archiving</STRONG><SPAN style="font-size: 1rem"> with the function </SPAN><EM style="font-size: 1rem">IsArchivingInProgress</EM><SPAN style="font-size: 1rem">.</SPAN></LI><BR /> </UL><BR /> We propose to make use of this function in the <EM>Root</EM> implementations of all <A href="https://blogs.sap.com/2020/12/18/archiving-what-objects-what-are-the-criteria/" target="_blank" rel="noopener noreferrer">Business Objects supporting Archiving</A> in one of the following ways:<BR /> <UL><BR /> <LI>Skip your implementation in the <EM>AfterModify</EM> and <EM>BeforeSave</EM> scripts<BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/BeforeSave.png" /></LI><BR /> <LI>Delete the Custom Business Objects instances which are shadowing the SAP Business Objects in the <EM>OnDelete</EM> script<BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/OnDelete.png" /></LI><BR /> </UL><BR /> By this one can optimize the performance of this Archiving phase which we noticed takes the most time of the complete Archiving process.<BR /> <BR /> Thanks to <SPAN class="mention-scrubbed">stefan.kiefer</SPAN> for providing the examples. 2023-11-02T09:39:04+01:00 https://community.sap.com/t5/technology-blogs-by-members/sap-sales-cloud-control-tool-for-selective-code-enablement/ba-p/13577160 SAP Sales Cloud - Control Tool for Selective Code Enablement 2023-12-11T10:59:46+01:00 Gauri https://community.sap.com/t5/user/viewprofilepage/user-id/180388 <SPAN style="font-weight: 400">Hello Everyone,</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">As we are aware, Cloud application studio is being used to make technical development in C4C and Selective movement of code from dev tenant to other tenants is not feasible due to current cloud studio framework constraints i.e. entire solution has to be moved together.</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">However in the real world, we always come up with challenges where the Development team is working on different build items together with different prioritization,&nbsp; Multiple Releases build going together with different go live timelines, Support team working on an incident code fix and get a different P1 code fix which requires immediate resolution. In such situation we currently don’t have a solution available to transport selectively a part of the code to next tenants from the development without impacting the ongoing parallel developments. In General we follow a classical Manual approach to comment on all the ongoing code, move our priority change and then uncomment the code to continue the work. Which has its own limitations.</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Manual version check makes the version management complex</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Multiple test iterations involved</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Alignment between multiple stakeholders (Architects, Support teams, Project teams, Regression teams) consumes lot of time</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Tedious and cumbersome process&nbsp;</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Risk of human error may result into application issues</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Parallel developments of different objects are not possible</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Trust now we are clear of the scenario that we want to achieve<STRONG> selective movement of the code without impacting the parallel developments.</STRONG> In the Below solution we will see how you can move the entire solution to the next tenant but then <STRONG>enable/disable selective code in test/production tenants</STRONG> based on your requirements</SPAN><BR /> <BR /> <STRONG>Prerequisite :</STRONG>- SAP Sales Cloud Technical Consultants and possess sound knowledge of Cloud Application Studio developments.<BR /> <BR /> <B>Solution Approach: Custom tool for controlling selective movements.</B><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Complete solution will be moved as per standard SAP strategy however We will create a tool to control the selective execution of code in test/Production tenants.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">The tool provides flexibility to enable and disable specific features as per business needs.</SPAN></LI><BR /> </UL><BR /> <B>Steps to follow</B><BR /> <BR /> <SPAN style="font-weight: 400">Step 1: Build a Custom Business Object as shown below..</SPAN><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/BO_Screenshot.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">BO Screen Shot</P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">BO Definition</P><BR /> <BR /> <PRE class="language-javascript"><CODE>// BO Definition in Code<BR /> <BR /> import AP.Common.GDT as apCommonGDT;<BR /> <BR /> businessobject Configure {<BR /> <BR /> // Root node must not be specified, it is created implicitly<BR /> <BR /> //<BR /> <BR /> // Add elements here. <BR /> <BR /> // <BR /> <BR /> // To declare an element as alternative key, use the [AlternativeKey] annotation.<BR /> <BR /> // Please note:<BR /> <BR /> // - An alternative key of type UUID exists implicitly for each node, enabling the node<BR /> <BR /> // to be used as an association target.<BR /> <BR /> // - The QueryByElements query is created automatically for each node.<BR /> <BR /> // - Code completion is available with CTRL + SPACE.<BR /> <BR /> [Label("SolutionNumber")] [AlternativeKey] element SolutionNumber : ID ;<BR /> <BR /> [Label("Release")] [AlternativeKey] element Release : IntegerValue ;<BR /> <BR /> [Label("Solution Description")]element SolutionDes : LANGUAGEINDEPENDENT_EXTENDED_Text;<BR /> <BR /> [Label("Activate")] element Activate:Indicator;<BR /> <BR /> [DependentObject(TextCollection)] node TextCollection;<BR /> <BR /> }</CODE></PRE><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Generate screens for both desktop and mobile using the thing inspector technique. Build screens for Quick Create and also add delete feature in OWL screen to delete the entry. Delete action is added to delete an entry using event handler using BO operation and row deletion.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Create a </SPAN><B>Reuse library </B><SPAN style="font-weight: 400">like Feature and define a function named GetFeature.absl</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">In this we will check if a particular development is to be enabled or disabled using the activate field in the configure BO. The reuse library which will have one function. This function will check the activate flag for a given feature and return true value if the feature is activated, else false if the feature is not activated.</SPAN></LI><BR /> </UL><BR /> <PRE class="language-javascript"><CODE><BR /> import ABSL;<BR /> import AP.Common.GDT;<BR /> <BR /> var result : collectionof DataType::LANGUAGEINDEPENDENT_EXTENDED_Text;<BR /> <BR /> <BR /> var query = Configure.QueryByElements;<BR /> var resultData = query.ExecuteDataOnly();<BR /> // 2. Selection<BR /> var selectionParams = query.CreateSelectionParams();<BR /> // Result<BR /> resultData = query.ExecuteDataOnly(selectionParams);<BR /> <BR /> foreach( var elemConfig in resultData)<BR /> { <BR /> <BR /> var SolutionNumber = elemConfig.SolutionNumber;<BR /> var SolutionDes = elemConfig.SolutionDes;<BR /> var rel = elemConfig.Release;<BR /> var sactive = elemConfig.Activate;<BR /> if ( SolutionNumber == IV_release)<BR /> {<BR /> if (sactive.ToString() == "X")<BR /> {<BR /> <BR /> result = SolutionNumber;<BR /> }<BR /> }<BR /> }<BR /> <BR /> return result;<BR /> </CODE></PRE><BR /> &nbsp;<BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">When any feature is build using ABSL code then the first check has to be implemented where the entry in the feature control custom business object will be checked. If the feature is activated then the code will be executed else it will not be executed.</SPAN></LI><BR /> <LI>Let's see how to utilize the about <STRONG>Configure.BO</STRONG> to enable or disable the execution of the code and fix our support issues and also help other teams to continue with their developments.</LI><BR /> </UL><BR /> <PRE class="language-javascript"><CODE>/*<BR /> Add your SAP Business ByDesign scripting language implementation for:<BR /> Business Object: LeadCreation<BR /> Node: Root<BR /> Event: BeforeSave <BR /> <BR /> Note: <BR /> - To access the elements of the business object node, <BR /> use path expressions, for example, this.&lt;element name&gt;. <BR /> - To use code completion, press CTRL+J. <BR /> - This script file is mass-enabled, i.e. the keyword "this" <BR /> refers to a collection of node instances.<BR /> - The solution uses this script when:<BR /> - the instance of the business object is being saved.<BR /> - the instance of the business object is created from other sources like web services, preview screen, and so on.<BR /> */<BR /> <BR /> <BR /> import ABSL;<BR /> import AP.Common.GDT as gdt;<BR /> import AP.PDI.bo as pdi;<BR /> <BR /> <BR /> var relstring;<BR /> <BR /> <BR /> //var rel4 : DataType::pdi:ID;<BR /> //var rel5 = 2;<BR /> var checkentry;<BR /> var devkey = "Feature6";<BR /> checkentry = Feature.GetFeature(devkey);<BR /> var check;<BR /> check = checkentry;<BR /> if (check == devkey) <BR /> {<BR /> //Proceed with the logic which is relevant for support issue to be fixed<BR /> }<BR /> </CODE></PRE><BR /> &nbsp;<BR /> <UL><BR /> <LI>The above code will first check if entry is present in Configure.BO and is active or not.</LI><BR /> <LI>If active then code will be executed else it won't execute.</LI><BR /> <LI><SPAN style="font-weight: 400">Reuse library is built and kept handy. This will be referred once this development will be used in actual and called in the respective code as and when required. Reuse Library will be used in the logic building where enabling and disabling of code is needed.</SPAN></LI><BR /> </UL><BR /> <STRONG>Advantages and benefits</STRONG><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Custom Business Object is developed in SAP C4C which will be used to enable or disable the feature in each test or production tenant.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Enabling and disabling the solution based on business needs can be done.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Access to this custom BO will be controlled i.e. the access will be restricted to certain team members only.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Every code development / feature / requirement will be tagged with a unique feature item in the custom BO.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">The new solution will be moved as an SDK solution to different tenants for the first time. Once the solution is activated in the target tenant then the solution control BO will be manually updated/maintained by designated team members.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">No Manual involvement to comment and uncomment the code</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Multiple objects can be developed in parallel</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Feature wise selective movement is enabled</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Less human error</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Alignment with various stakeholders is decreased.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Less testing efforts&nbsp;</SPAN></LI><BR /> </UL><BR /> <STRONG>Other Thoughts</STRONG><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">We can use a business configuration object but I prefer a custom BO to build this tool.&nbsp;</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">The BO structure and fields can vary based on the business requirements.</SPAN></LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> Best Regards,<BR /> <BR /> Gauri Nargunde 2023-12-11T10:59:46+01:00 https://community.sap.com/t5/technology-blogs-by-sap/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured/ba-p/13572494 Harnessing Multi-Model Capabilities with Spotify – Processing Semi-Structured Data with SAP HANA Cloud/SAP Datasphere – Part 6 2023-12-29T00:53:49+01:00 Vivek-RR https://community.sap.com/t5/user/viewprofilepage/user-id/143545 In blog 6 of our Spotify series, we shift our focus to visualization, explicitly pertaining to Playlist and Audio features API, as discussed in this series's <A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-2/" target="_blank" rel="noopener noreferrer">second</A> and <A href="https://blogs.sap.com/2023/03/31/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-3/?" target="_blank" rel="noopener noreferrer">third</A> blogs. We will delve into the detailed consumption of Calculation views from SAP HANA Cloud, utilizing tools such as SAP Analytics Cloud and Microsoft Power BI. For SAP Datasphere models, based on the third blog, the consumption process is quite similar, and we will highlight the differences where they exist.<BR /> <BR /> In this blog, we will cover the following topics in detail:<BR /> <OL><BR /> <LI>Consuming Calculation Views built using the Business Application Studio in SAP Analytics Cloud.</LI><BR /> <LI>Utilizing R script to construct an interactive density plot to comprehend the Danceability metrics across all playlists.</LI><BR /> <LI>Utilizing R script to create an interactive visualization of the Speechiness metric and compare it across all Playlists.</LI><BR /> <LI>Leveraging a robust data visualization package in R, known as "Grammar of Graphics Plot" (GGPLOT), to visualize the Speechiness and Danceability metrics.</LI><BR /> <LI>Consuming the same Calculation views in Microsoft Power BI.</LI><BR /> </OL><BR /> This blog post is part of a comprehensive series. If you're interested in exploring more, feel free to visit the other blogs in this series:<BR /> <OL><BR /> <LI>&nbsp;<A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-1/" target="_blank" rel="noopener noreferrer">Architecture</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-2/" target="_blank" rel="noopener noreferrer">Processing&nbsp; Semi-Structured data in SAP HANA Cloud&nbsp;</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/03/31/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-3/?" target="_blank" rel="noopener noreferrer">Processing Semi-structured data in SAP Datasphere&nbsp;</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/03/31/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-3/?" target="_blank" rel="noopener noreferrer">&nbsp;</A><A href="https://blogs.sap.com/2023/05/15/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-4/" target="_blank" rel="noopener noreferrer">Processing Semi-Structured data in SAP HANA Cloud &amp; creating graph networks</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/07/13/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part%E2%80%AF5/" target="_blank" rel="noopener noreferrer">Building Intelligent Data Apps based on Spotify Datasets</A></LI><BR /> </OL><BR /> &nbsp;<BR /> <H2 id="toc-hId-963896577">The Visualization</H2><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b1.jpg" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId-767383072">Consuming Calculation Views built using the Business Application Studio in SAP Analytics Cloud</H2><BR /> This section will concentrate on accessing the deployed calculation view in SAP Analytics Cloud (SAC). Suppose you have followed along with <A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-2/" target="_blank" rel="noopener noreferrer">blog 2</A> and cloned and deployed the associated <A href="https://github.com/coolvivz/spcheck" target="_blank" rel="nofollow noopener noreferrer">Git repository</A>, which now includes content for both reporting and building Graph networks. In that case, you should have access to the calculation view, CV_TOP_ALL[1].<BR /> <BR /> To access the Calculation view from either SAC or Microsoft PowerBI, it's crucial to ensure that the hdbrole[2] is assigned to the database user created for frontend consumption. This step is vital for enabling the necessary permissions and access rights for the user to interact with the data through these platforms.<BR /> <BR /> Remember, the correct assignment of roles and permissions is a crucial step in maintaining the security and integrity of your data while still allowing for flexible and robust data analysis capabilities.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b2.jpg" /></P><BR /> This calculation view is based on the SQL view TOPALL1 discussed in <A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-2/" target="_blank" rel="noopener noreferrer">blog2</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b3.png" /></P><BR /> The semantics details for the calculation view, CV_TOP_ALL[1], include a calculated column named "Speechiness1".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b4.png" /></P><BR /> &nbsp;<BR /> <P class="whitespace-pre-wrap">As highlighted previously, the audio features from the Spotify API include a "speechiness" attribute. Speechiness measures the presence of spoken words in a track. Songs with exclusively instrumental music and no vocals have low speechiness, while rap songs and podcasts with continuous speaking have higher scores.</P><BR /> <P class="whitespace-pre-wrap">This metric helps compare speech patterns across playlists and geo-markets. Analyzing speechiness allows identifying playlists that contain:</P><BR /> <BR /> <UL class="list-disc pl-8 space-y-2"><BR /> <LI class="whitespace-normal">Mostly music-centric tracks</LI><BR /> <LI class="whitespace-normal">Increased spoken vocal content</LI><BR /> <LI class="whitespace-normal">Distinct formats like rap, hip hop, podcasts</LI><BR /> </UL><BR /> <P class="whitespace-pre-wrap">In summary, the speechiness measure detects tracks with more spoken emphasis over instrumentation. We can leverage this to spot regional playlist preferences for words vs music.</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b5.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Source: Spotify API Documentation</P><BR /> <P class="whitespace-pre-wrap">I establish a threshold to differentiate speech-centric playlists by subtracting 0.33 from the Spotify speechiness score. Playlists with tracks containing predominantly spoken words (e.g., rap, hip hop, podcasts) typically have higher speechiness exceeding this threshold.</P><BR /> <P class="whitespace-pre-wrap">The interactive visualizations in SAP Analytics Cloud will spotlight playlists based on this speechiness threshold:</P><BR /> <BR /> <UL class="list-disc pl-8 space-y-2"><BR /> <LI class="whitespace-normal">Playlists above the threshold contain more vocal-heavy tracks</LI><BR /> <LI class="whitespace-normal">Playlists below the mark have mostly musical instrumentation</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b6.png" /></P><BR /> &nbsp;<BR /> <P class="whitespace-pre-wrap">With the calculation view deployed, the next step is allowing consumption by assigning database permissions.</P><BR /> <P class="whitespace-pre-wrap">Specifically:</P><BR /> <BR /> <UL class="list-disc pl-8 space-y-2"><BR /> <LI class="whitespace-normal">Use the SAP HANA Cloud Database Explorer to connect to the HDI container holding the deployed view. This verifies successful deployment.</LI><BR /> <LI class="whitespace-normal">Then in SAP HANA Cloud Cockpit, locate the "json::TRACKSALL" hdbrole that got created.</LI><BR /> <LI class="whitespace-normal">Assign this hdbrole to the database user needing access to the view.</LI><BR /> </UL><BR /> <P class="whitespace-pre-wrap">Enabling this role assignment via Cockpit is a prerequisite before the calculation view can be leveraged for reporting and analytics. The Explorer allows consumption confirmation post assignment.</P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b7.png" height="252" width="284" /></P><BR /> On successfully creating a new database user, provisioning the roles, and connecting to the HDI container, you can effectively generate a scatter plot[4] based on the calculation view, CV_TOP_ALL[1].<BR /> <BR /> The scatter plot is a powerful visualization tool that allows you to see the relationship between two variables. In this case, we have chosen to visualize the correlation between the metrics 'Danceability' and 'Popularity'[3] across tracks of playlists from four different countries. This is achieved by setting a filter[2] on 'Tracklistname'.<BR /> <BR /> To interpret the scatter plot, each point on the plot represents a track. The position of a point on the horizontal axis indicates its 'Danceability' score, and its position on the vertical axis indicates its 'Popularity' score. If there is a pattern in the points, such as a line or curve, this suggests a correlation between 'Danceability' and 'Popularity'.<BR /> <BR /> Remember, correlation does not imply causation. While the scatter plot may show a relationship between 'Danceability' and 'Popularity', it does not prove that increasing 'Danceability' will increase 'Popularity'. Other factors may be influencing both variables.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b8.png" /></P><BR /> <BR /> <H2 id="toc-hId-570869567"><STRONG>Consuming Calculation Views built using Business Application Studio in SAP Analytics Cloud[SAC]</STRONG></H2><BR /> If you already have access to the SAP Analytics Cloud (SAC) tenant, you can proceed with the next steps. However, if you don't, you have the option to register for a SAC trial, which lasts up to 60 days. This trial period allows you to explore and familiarize yourself with the functionalities of SAC.<BR /> <BR /> For further information about the SAC trial, including registration process, available features, and any limitations, please refer to the provided<A href="https://www.sap.com/products/technology-platform/cloud-analytics/trial.html" target="_blank" rel="noopener noreferrer"> link</A>. This link should direct you to a FAQ page and additional details about the SAC trial.<BR /> <H3 id="toc-hId-503438781"><STRONG>Setting up connections to SAP HANA Cloud</STRONG></H3><BR /> <H5 id="toc-hId-565090714">Assumptions:</H5><BR /> You already have access to the SAC tenant.<BR /> <BR /> To create a connection to SAP HANA Cloud from your active SAC tenant, follow these steps:<BR /> <OL><BR /> <LI>From the main menu, select 'Connection'. This will take you to the page where you can manage all your connections.</LI><BR /> <LI>Click on the '+ Add' button to start creating a new connection.</LI><BR /> <LI>From the list of available connection types, select 'SAP HANA Cloud'.</LI><BR /> <LI>Enter Connection Details: In the form that appears, you'll need to provide the necessary details such as host, port, and logon credentials. Click OK</LI><BR /> </OL><BR /> Now, your SAC tenant is connected to your SAP HANA Cloud instance, and you can start creating models and stories using your SAP HANA Cloud data.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b9.png" /></P><BR /> <BR /> <H2 id="toc-hId--18670948">Let’s build live Data Models</H2><BR /> Select the Modeler from the drop-down and build a Live data connection. Use the connection that was created in the previous step and select the calculation view CV_TOP_ALL.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b10.png" /></P><BR /> Save the model once you validate all the measures and Dimensions. In my case, the analytical model&nbsp; is “Tracksall”<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b11.png" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId--215184453"><STRONG>Let’s create a Story</STRONG></H2><BR /> Now that we have built an analytical model, we can leverage it to gain insights into playlists and songs by visualizing key metrics. Specifically, we will create data stories using ggplot to examine three aspects:<BR /> <OL><BR /> <LI><STRONG>Danceability, Speechiness, and Energy Across a Playlist:</STRONG> We will visualize the danceability, speechiness, and energy scores for each song in a chosen playlist by plotting the metrics with a trending chart. This allows the assessment of metric distributions within that playlist.</LI><BR /> <LI><STRONG>Top Playlists for Danceability:</STRONG> Using <STRONG>R scripts</STRONG> and ggplot, we can analyze danceability scores across all playlists for a given week. By plotting a sorted chart showing the playlist with the highest average danceability at the top, we can readily identify which playlist contains the most danceable tracks.</LI><BR /> <LI><STRONG>Comparing Speechiness Thresholds Across Playlists:</STRONG> We set a speechiness threshold based on song composition to categorize tracks as having either high or low importance on words versus music. Then with <STRONG>R</STRONG>, we plot high and low speechiness scores for each playlist using ggplot. This enables easy comparison of which playlists favor tracks with more spoken words.</LI><BR /> </OL><BR /> <H3 id="toc-hId--282615239"><STRONG>Danceability, Speechiness, and Energy Across a Playlist</STRONG></H3><BR /> This is a standard trending chart[1] based on the SAC Analytic model TRACKSALL, and basically compares the 3 metrics across the playlist TOPUSA[2]. TRACKLISTNAME groups all 50 tracks from the USA and I have used the filter[2] for the same.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b12.png" /></P><BR /> When you analyze the top 50 songs from the USA tracks, you will notice the songs with high energy or danceability will have less "speechiness".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b13.png" /></P><BR /> &nbsp;<BR /> <BR /> And songs like Rich Flex by Drake has higher "speechiness" value because of all the rapping yo! <span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:">😊</span> It’s a mix of R&amp;B and RAP and you notice the high Speechiness factor.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b14.png" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId--479128744"><STRONG>Top Playlists for Danceability[Using R]</STRONG></H3><BR /> Prerequisites:<BR /> <BR /> 1. To utilize R-scripts, connect to either a remote R environment (BYOR) or an R environment provided by SAP in various data centers. Refer to this <A href="https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/8d589100aea341a58a5c0916bbef022b.html" target="_blank" rel="noopener noreferrer">link</A> for availability details. Follow these <A href="https://help.sap.com/doc/ba23463df44849efbfcb862169069d63/release/en-US/BOC-R-integration_g.pdf" target="_blank" rel="noopener noreferrer">steps</A> to set up a remote R server, similar to integrating R with SAP HANA.<BR /> <BR /> 2. For production use cases, verify required R packages. If packages needed for your use case are <A href="https://blogs.sap.com/2020/03/18/r-packages-for-sap-analytics-cloud/" target="_blank" rel="noopener noreferrer">unsupported</A> by SAP, set up an R environment with those packages accordingly.<BR /> <BR /> 3. Review the basics of <A href="https://ggplot2.tidyverse.org/" target="_blank" rel="nofollow noopener noreferrer">ggplot2</A>, an R library providing flexible, tidy, optimized data visualization. It enables integrated data exploration and analysis. Refer to the ggplot2 documentation.<BR /> <BR /> For this Spotify example, I leveraged an SAP-provided R environment in the EU10 data center. First I will share the visualization, followed by the script, explanation, and SAC steps. This output utilizes interactive data visualization to compare "danceability" metrics across music playlists.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b15.png" /></P><BR /> And here is the script for the R visualization.<BR /> <PRE class="language-python"><CODE>library(plotly)<BR /> library(ggplot2)<BR /> salmon &lt;- "#F8766D"<BR /> teal &lt;- "#00BFC4"<BR /> orange &lt;- "#D95E0E"<BR /> limegreen &lt;- "#7CAE00"<BR /> tangerine &lt;- "#FF9E13"<BR /> skyblue &lt;- "#56B4E9"<BR /> junglegreen &lt;- "#009E73"<BR /> mustard &lt;- "#F0E442"<BR /> sapphire&lt;- "#0072B2"<BR /> goldenrod &lt;- "#E69F00"<BR /> viz4 &lt;- ggplot(Tracksall, aes(x=Tracksall$DANCEABILITY, fill=Tracksall$TRACKLISTNAME,<BR /> text = paste(Tracksall$TRACKLISTNAME)))+<BR /> geom_density(alpha=0.7, color=NA)+<BR /> scale_fill_manual(values=c(salmon, teal, orange, limegreen, tangerine,skyblue,junglegreen, mustard,sapphire,goldenrod))+<BR /> labs(x="Danceability", y="Density") +<BR /> guides(fill=guide_legend(title="Playlist"))+<BR /> theme_minimal()+<BR /> ggtitle("Distribution of Danceability Data")<BR /> <BR /> ggplotly(viz4, tooltip=c("text"))</CODE></PRE><BR /> <H3 id="toc-hId--675642249"><STRONG>How would I explain this to a Business User?</STRONG></H3><BR /> What this graph specifically shows is the danceability distribution across various playlists based on the dataset TRACKSALL. Using density plots, we can visualize how concentrated certain playlists are in high or low danceability scores. For example, some playlists have most of their tracks clustered on the higher end of danceability, meaning the songs tend to be quite danceable(e.g. Chile Playlist). Other playlists have a wider spread across the axis. Just by glancing at the colors and density shapes, we can get a sense of the variation in dance "suitability" across these playlists.<BR /> <H3 id="toc-hId--947387123"><STRONG>How can I understand the script from a technical perspective?</STRONG></H3><BR /> Sure, let's break down the script.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b16.png" /></P><BR /> <BR /> <OL><BR /> <LI>Lines 1-2: These lines load the plotly and ggplot2 packages. plotly is used for creating interactive plots, and ggplot2 is a plotting system for R.</LI><BR /> <LI>Lines 3-12: Define a series of colors using their hexadecimal codes. These colors will be used in the plot.</LI><BR /> <LI>Line 13-14: This line starts the creation of a ggplot object. Tracksall is your data frame, DANCEABILITY is the variable for the x-axis, and TRACKLISTNAME is the variable used to fill the density plot. The text aesthetic is used to specify the text that will be displayed when you hover over the plot in the final interactive plot.</LI><BR /> <LI>Line 15: This adds a density plot to the ggplot object. The alpha parameter controls the transparency of the plot (1 is opaque and 0 is transparent). color=NA means that the outline color of the density plot is set to be transparent.</LI><BR /> <LI>Line 16: This line sets the fill color of the density plot based on the TRACKLISTNAME variable. The colors are manually specified using the color variables defined earlier.</LI><BR /> <LI>Line 17: This line sets the labels for the x and y axes.</LI><BR /> <LI>Line 18: This line adds a legend for the fill colors with the title "Playlist".</LI><BR /> <LI>Line 19: This sets the theme of the plot to be minimal, which is a theme with a clean and minimal aesthetic.</LI><BR /> <LI>Line 20: This line sets the title of the plot.</LI><BR /> <LI>Line 22: This line converts the ggplot object to a plotly object, which makes the plot interactive. The tooltip parameter specifies that the text specified in the text aesthetic should be displayed when you hover over the plot.</LI><BR /> </OL><BR /> <H3 id="toc-hId--1143900628"><STRONG>How do I implement this in SAC?</STRONG></H3><BR /> Please make sure R server is enabled on your SAC tenant or your remote R connection is established.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b17.png" /></P><BR /> As part of your story, add R visualization as shown below:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b18.png" /></P><BR /> Once you add the R visualization, provide the input data source[1] as your Analytics model “Tracksall”. Select the “Edit script”[2] option and copy the script that I shared. If your Analytics model name is different, please make sure you replace it in the script on line 13.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b19.png" /></P><BR /> With just a few lines of code, the flexibility and ease of ggplot2 allows us to quickly visualize the data into an insightful plot, demonstrating the power of this graphics package.<BR /> <H3 id="toc-hId--1340414133"><STRONG>Comparing Speechiness Thresholds Across Playlists - Using R</STRONG></H3><BR /> I will share the visualization, R script, and an explanation of the script. However, you can follow the same implementation steps in SAC as we previously discussed for the "Distribution of Danceability Data" example. Let's start with the visualization first: This script creates an interactive bar chart that visually represents the "Speechiness" of different tracks across various playlists. Speechiness measures the presence of spoken words in a track - the higher the value, the more words in the track. Each bar represents a track, with the bar height indicating the speechiness. The bars are color-coded by playlist, enabling easy distinction between playlists. Some tracks in different playlists have Speechiness &gt; 0, potentially indicating rap songs, podcasts, or audiobooks.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b20.png" /></P><BR /> And here is the script for the R visualization.<BR /> <PRE class="language-python"><CODE>library(plotly)<BR /> library(dplyr)<BR /> library(ggplot2)<BR /> salmon &lt;- "#F8766D"<BR /> teal &lt;- "#00BFC4"<BR /> orange &lt;- "#D95E0E"<BR /> limegreen &lt;- "#7CAE00"<BR /> tangerine &lt;- "#FF9E13"<BR /> skyblue &lt;- "#56B4E9"<BR /> junglegreen &lt;- "#009E73"<BR /> mustard &lt;- "#F0E442"<BR /> sapphire&lt;- "#0072B2"<BR /> goldenrod &lt;- "#E69F00"<BR /> viz1 &lt;- ggplot(Tracksall, aes(x=reorder(Tracksall$TRACK_NAME, -Tracksall$SPEECHINESS), y=Tracksall$SPEECHINESS, fill=Tracksall$TRACKLISTNAME, text=(paste("Track:", Tracksall$TRACK_NAME, "&lt;br&gt;",<BR /> "Artist:", Tracksall$Artist_NAME, "&lt;br&gt;",<BR /> "Speechiness:", Tracksall$SPEECHINESS))))+<BR /> geom_col()+<BR /> scale_fill_manual(values=c(salmon, teal, orange, limegreen, tangerine,skyblue,junglegreen, mustard,sapphire,goldenrod))+<BR /> theme_minimal()+<BR /> theme(axis.title.x=element_blank(),<BR /> axis.text.x=element_blank(),<BR /> axis.ticks.x=element_blank(),<BR /> axis.ticks.y=element_blank(),<BR /> panel.grid.major = element_blank(),<BR /> legend.position="none")+<BR /> ylab("Speechiness Difference")+<BR /> facet_wrap(~ Tracksall$TRACKLISTNAME)+<BR /> ggtitle("Speechiness Difference")<BR /> ggplotly(viz1, tooltip=c("text"))</CODE></PRE><BR /> <H3 id="toc-hId--1536927638"><STRONG>How would I explain this to a Business User?</STRONG></H3><BR /> This interactive chart allows us to compare the "speechiness" of tracks across different playlists. Speechiness measures the presence of spoken words in a song. Songs with exclusive music and no words have low speechiness. Podcast and audiobook tracks would be highly speechy. The height of the bars represents the speechiness value - higher bars mean more spoken content. The color shading groups tracks by the playlist they belong to.<BR /> <H3 id="toc-hId--1733441143"><STRONG>How can I understand the script from a technical perspective?</STRONG></H3><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b21.png" /></P><BR /> <BR /> <OL><BR /> <LI>Lines 1 -3: Load the necessary libraries-plotly for creating interactive plots, dplyr for data manipulation, and ggplot2 for creating static plots.</LI><BR /> <LI>Lines 4-13: Defines the series of colors using their hexadecimal codes. These colors will be used in the plot.</LI><BR /> <LI>Line 14-17: Creates a ggplot object viz1 with the following features: The aes function is used to map the reordered 'Track Name' to the x-axis, 'Speechiness' to the y-axis, 'Playlist' to the fill aesthetic of the plot, and a combination of 'Track', 'Artist', and 'Speechiness' to the hover text.</LI><BR /> <LI>Line 18: geom_col &nbsp;used to create a bar plot</LI><BR /> <LI>Line 19: scale_fill_manual is used to manually assign the predefined colors to the different 'Playlist' categories.</LI><BR /> <LI>Line 20: theme_minimal is used to apply a minimalistic theme to the plot.</LI><BR /> <LI>Line 21-26: theme is used to remove the x-axis title, x-axis text, x and y-axis ticks, major grid lines, and the legend.</LI><BR /> <LI>Line 27: ylab is used to label the y-axis as 'Speechiness Difference'.</LI><BR /> <LI>Line 28: facet_wrap is used to create a separate plot for each 'Playlist'.</LI><BR /> <LI>Line 29: ggtitle is used to set the title of the plot as 'Speechiness Difference'.</LI><BR /> <LI>Line 30: Finally, ggplotly is used to convert the ggplot object into a plotly object, making the plot interactive. The tooltip argument is set to 'text', which means that the hover text will display the 'Track', 'Artist', and 'Speechiness'.</LI><BR /> </OL><BR /> <STRONG>And the SAC Implementation?</STRONG><BR /> <BR /> Follow the same steps for SAC implementation as before, and you should be able to view both the SAC visualizations based on R-script.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b22.png" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId--1636551641">How does this work with SAP Datasphere?</H2><BR /> In <A href="https://blogs.sap.com/2023/03/31/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-3/?" target="_blank" rel="noopener noreferrer">Blog 3</A> of the Spotify Series, we detailed how to construct analytical models akin to those in SAP HANA Cloud.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b23.png" /></P><BR /> When using SAP HANA Cloud, we connected directly to the database with a user who had access to the deployed containers. However, with SAP Datasphere, analytic models built within a space can be directly exposed when constructing trend charts in SAC. There is no need to separately establish a database connection. Instead, the data models are available for visualization as soon as they are deployed to the space. This enables simpler and faster data access when leveraging SAP Datasphere as the backend data source within SAC. The tight integration facilitates the rapid connection of visualizations to data models that have been developed and exposed through spaces.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b24.png" /></P><BR /> You can build stories in SAC connected to SAP Datasphere in the same way as described in previous examples linking to SAP HANA Cloud. The process of building visualizations, filters, stories, and explanatory text follows the same methodology whether your data models reside in HANA Cloud or Datasphere.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/b25.jpg" /></P><BR /> <BR /> <H2 id="toc-hId--1833065146"><STRONG>OK, how to expose the models to Microsoft PowerBI?</STRONG></H2><BR /> <H3 id="toc-hId-1971985638">Prerequisites:</H3><BR /> <OL><BR /> <LI>You have access to the Microsoft Power BI Desktop App.</LI><BR /> <LI>You have two options for connecting to data for visualization: HDI containers from SAP HANA Cloud or analytic models created in SAP Datasphere using open SQL schema access. If planning to connect from SAP Datasphere, refer to the "Database User Creation [Open SQL Schema]" section from the <A href="https://blogs.sap.com/2023/03/31/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-datasphere-part-3/?" target="_blank" rel="noopener noreferrer">third blog post</A>.</LI><BR /> </OL><BR /> For this example, I will connect SAP HANA Cloud to Power BI. Once you are in the Power BI Desktop App, click on the "Home" tab in the ribbon, then click on "Get Data".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture26-3.png" /></P><BR /> You can choose either "Import" or "DirectQuery" to connect to SAP HANA Cloud. Import means you'll be pulling the data into Power BI, while DirectQuery means you'll be working directly with the data on the server.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture27-3.png" /></P><BR /> Enter your SAP HANA Cloud credentials when prompted in the Power BI connection window. After a successful connection, the Power BI Navigator will appear allowing you to select the specific tables, views, or calculation views to load. For this analysis, we will be working with the CV_TOP_ALL calculation view that was previously created in SAP Business Application Studio.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture28-6.png" /></P><BR /> It may take a few seconds for the CV_TOP_ALL calculation view to load in Power BI. Once loaded, you will see CV_TOP_ALL listed on the right side of the screen along with options to build visualizations. To demonstrate some useful features in Power BI, I will create a simple table visualization[2] based on the data from CV_TOP_ALL.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture29-4.png" height="502" width="417" /></P><BR /> Once you select the table option, a blank table visualization will load. You can then select the specific columns from the CV_TOP_ALL calculation view that you want to display in the table. For this example, I chose to include the Album name, Track name, and Image columns. The Image column contains public URLs pointing to album artwork associated with each track.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture30-4.png" /></P><BR /> Select the Image column[1] from CV_TOP_ALL, and change the data category[2] to "Image URL".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture31-5.png" /></P><BR /> Once you add those columns to the table, Power BI works its magic to transform the image URLs into actual album cover art on the fly. How awesome is that! With its slick auto-image rendering wizardry, Power BI saves us muggles from having to manually extract and embed images in visualizations. We just provide the URLs, and presto - album covers appear in the table as if by divination! <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture32-4.png" /></P><BR /> If you have been following this <A href="https://blogs.sap.com/2023/02/27/harnessing-multi-model-capabilities-with-spotify-processing-semi-structured-data-with-sap-hana-cloud-sap-data-warehouse-cloud-part-1/" target="_blank" rel="noopener noreferrer">Spotify blog series,</A> you may recall that we used the HANA_ML library to extract image URLs from Spotify and ingest them to SAP HANA Cloud. We loaded the JSON metadata containing these image links into the SAP HANA Cloud Document Store. SQL views were then created to select the image URLs from the JSON artifacts stored in the document store. These SQL views were incorporated into the CV_TOP_ALL calculation view, which combines datasets from various sources. This calculation view is later accessed in both SAP Analytics Cloud for visualization and Power BI to demonstrate auto-image rendering as we have explored.<BR /> <BR /> In this Power BI report, I utilized the same CV_TOP_ALL calculation view that was created in SAP Analytics Cloud and generated two visualizations:<BR /> <OL><BR /> <LI>A table showing Album name, Track name, and Image columns. This allows viewing album art images automatically rendered from the image URL data in CV_TOP_ALL.</LI><BR /> <LI>A ribbon chart comparing the Danceability, Energy, and Liveness metrics for each track. This is similar to the analysis done in SAP Analytics Cloud. In this case, the Track name is the lone attribute being compared across those three metrics in the ribbon chart.</LI><BR /> </OL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture33-4.png" /></P><BR /> Power BI's integration with custom visual apps allows for a more flexible analysis of the CV_TOP_ALL calculation view, including visualizing based on images. You can access these additional visualizations in Power BI by selecting "Get more visuals" from the Visualizations pane.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture34-3.png" height="458" width="363" /></P><BR /> Selecting "Get more visuals" will open the Power BI visuals gallery. In the gallery, search for the "image grid" custom visual. When you find the image grid visual, add it to your report by clicking the "Add" button.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture35-3.png" height="224" width="459" /></P><BR /> Once added, you will see the app as part of your Power BI desktop.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture36-3.png" height="430" width="490" /></P><BR /> When you select the image grid visual and choose the Image column from the CV_TOP_ALL calculation view, Power BI will automatically populate an image grid displaying all 500 album cover images that were extracted from the Spotify data. By default, the images are rendered in the grid sorted by the predefined order in the view. A key capability offered by the image grid is the ability to visualize a collection of images and rapidly sort them by different attributes to spot visual patterns or trends. For example, with a few clicks, you can rearrange the grid sorted alphabetically by artist, genre, release date, etc. Looking at the images sorted in different ways allows you to analyze the data in new visual perspectives that may yield additional insights. Pretty cool, eh?<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture37-scaled.jpg" /></P><BR /> Additional filters can be applied to the image grid visual to narrow down the list of tracks being analyzed. For example, the grid can be filtered to only show images from the "Top Indian tracks" playlist that was ingested from Spotify. Furthermore, the Speechiness audio feature metric can be added as a filtering criteria to only display tracks above or below a certain speechiness threshold. Applying these types of filters allows slicing the 500-track image grid down to a subset of images matching the given criteria. This enables more focused visual analysis. For instance, in this case, filtering to Indian tracks with high speechiness shows the actual album images associated with that segmented list of verbal tracks.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture38-scaled.jpg" /></P><BR /> &nbsp;<BR /> <BR /> I hope this Spotify series has sparked interest and ideas for adopting SAP HANA Cloud and integrating it into your own analytics use cases. My sincere thanks to the colleagues and community members who reached out to share the visualization blog—your feedback motivated me to complete it before the end of the year <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span><BR /> <BR /> Looking ahead to 2024, we plan to continue creating enablement blogs focusing on SAP HANA Cloud- either expanding on this Spotify series or developing a new one focusing on both multi-model analysis extending it to the new SAP HANA Cloud Vector Engine as well as the SAP's Generative AI Hub platform. There are so many emerging capabilities to explore!<BR /> <BR /> Please stay tuned for more to come, and happy learning on your own data analytics discovery journeys in the New Year! Please feel free to reach out with any additional questions or feedback on the topics covered in this Spotify series. Looking forward to hearing from you! Happy Learning!!<BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId-1775472133">References</H3><BR /> <OL><BR /> <LI><A href="https://developer.spotify.com/documentation/web-api/libraries/" target="_blank" rel="noopener nofollow noreferrer">Spotify Libraries &amp; Documents</A></LI><BR /> <LI><A href="https://github.com/spotipy-dev/spotipy/tree/master/examples" target="_blank" rel="noopener nofollow noreferrer">Spoti<STRONG>py&nbsp;</STRONG>Public Git Repositories</A></LI><BR /> <LI><A href="https://github.com/JMPerez/spotify-web-api-js" target="_blank" rel="noopener nofollow noreferrer">Spotipy JS Wrapper built by&nbsp; JM Perez</A></LI><BR /> <LI><A href="https://msmith7161.github.io/what-is-speechiness/" target="_blank" rel="noopener nofollow noreferrer">Spotipy R package contributions by Mia</A></LI><BR /> <LI><A href="https://bindichen.medium.com/exploding-a-list-like-column-with-pandas-explode-method-3ffd41f9f7e2" target="_blank" rel="noopener nofollow noreferrer">Pandas Explode Function</A></LI><BR /> <LI><A href="https://soulsinporto.medium.com/using-the-spotify-api-for-data-driven-analysis-of-my-playlists-part-1-2-a4598ca7b96d" target="_blank" rel="noopener nofollow noreferrer">Pandas Data-Driven Analysis</A></LI><BR /> <LI>Tons of Medium blogs</LI><BR /> </OL> 2023-12-29T00:53:49+01:00 https://community.sap.com/t5/technology-blogs-by-members/consuming-capm-application-s-odata-service-into-sap-fiori-application-in/ba-p/13667392 Consuming CAPM Application's OData service into SAP Fiori Application in Business Application Studio 2024-04-16T12:50:31.978000+02:00 Chetan_Bhatt https://community.sap.com/t5/user/viewprofilepage/user-id/1429690 <P style=" text-align : justify; "><STRONG>OBJECTIVE-:</STRONG></P><P style=" text-align : justify; ">Consuming OData Service of CAPM Application into SAP Fiori Application in Business Application Studio.</P><P style=" text-align : justify; "><STRONG>CAPM (Cloud Application Programming Model)-:</STRONG></P><P style=" text-align : justify; ">It is an open-source framework that uses tools, libraries, and languages to create applications that can be used across multiple SAP products. CAPM is a multi-target application that runs at different times, with the persistence layer running in the HANA DB run time, the server layer running in the Node.js run time, and the UI/UX layer running in the browser run time.</P><P style=" text-align : justify; ">CAPM is one of the approaches to developing cloud applications using the BTP platform. CAPM offers a more structured and seamless framework for data modelling and enhancing integration with services.</P><P style=" text-align : justify; "><STRONG>Advantage of CAPM over other approaches-:</STRONG></P><UL style=" text-align : justify; "><LI>It enables full-stack development in the same environment. (BAS), eliminating the need to switch between different environments for the backend and frontend development.</LI><LI>It offers flexibility in language selection, allowing developers to work with multiple languages according to their needs. BAS provides easy connectivity to required extensions for this purpose.</LI><LI>Seamless integration with git and other applications via APIs facilitating extension or development of the application.</LI><LI>Automatically handling dependencies to a certain extent, reducing frustration, and improving development speed. For example, handling the OData after exposing all entities and making it easier to consume in the UI.</LI></UL><P style=" text-align : justify; "><STRONG>Prerequisites-:</STRONG></P><UL style=" text-align : justify; "><LI>Create a CAPM project.</LI><LI>Log in to Cloud Foundry Credentials.</LI><LI>Ensure the HANA Database is created and running (I Used it for storage and data creation).</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_0-1712859475702.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95284iF96BE8EFB182149E/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_0-1712859475702.png" alt="Chetan_Bhatt_0-1712859475702.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_1-1712859475728.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95285iC96312CDDC8F56E6/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_1-1712859475728.png" alt="Chetan_Bhatt_1-1712859475728.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Set up a Dev Space.</LI><LI>Create a SAP Build Work Zone instance to act as a Fiori Launchpad for the CAPM Application</LI></UL><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><STRONG>You Have to create a new Destination in BTP (Connectivity -&gt; Destination)-:</STRONG></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_2-1712859475732.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95283i2F37A3A4212C375A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_2-1712859475732.png" alt="Chetan_Bhatt_2-1712859475732.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">This destination will be used for passing system information when creating a Fiori Application.</P><P style=" text-align : justify; ">For the URL, DEPLOY YOUR APPLICATION IN CLOUD FOUNDRY (Cloud Foundry -&gt;Spaces -&gt;Dev (Space Name)-&gt;Your Service (here it is CAPMChetan-srv) and copy Application Routes).</P><P style=" text-align : justify; ">This URL will be shown only when you deploy your CAPM Application in Cloud Foundry-&gt; A new blog will be there to deploy the CAPM Application.</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_3-1712859475740.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95288i831E1DE5FA2B9750/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_3-1712859475740.png" alt="Chetan_Bhatt_3-1712859475740.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">For Authorization, use the same authorization as created in the package.json -&gt; a new blog will create a security configuration.</P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">Now that the destination for the service is configured, proceed to create a FIORI APP: -</P><UL style=" text-align : justify; "><LI>Open SAP BAS (Business Application Studio).</LI><LI>Open DEV Space where you want to create a Fiori Application.</LI><LI>Go to File -&gt; New Project From template.</LI><LI>Choose a project from the Template (SAP Fiori Application).</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_4-1712859475749.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95287i3F3554B2250D61A3/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_4-1712859475749.png" alt="Chetan_Bhatt_4-1712859475749.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Choose any Template of your choice.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_5-1712859475756.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95286iD67EBDD9E6AB118C/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_5-1712859475756.png" alt="Chetan_Bhatt_5-1712859475756.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>In Data Source choose to connect to a system.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_6-1712859475760.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95290iDCCA5D3A65D7000B/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_6-1712859475760.png" alt="Chetan_Bhatt_6-1712859475760.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_7-1712859475765.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95289i29335856F2EFABAA/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_7-1712859475765.png" alt="Chetan_Bhatt_7-1712859475765.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Specify the Destination created earlier.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_8-1712859475769.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95291i0B4CF5E35759FC40/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_8-1712859475769.png" alt="Chetan_Bhatt_8-1712859475769.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>In the service path, specify the service path of the OData service that can be obtained by running the command “cds watch –profile hybrid” in your CAPM Project.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_9-1712859475773.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95292i7F0BC76D1160938D/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_9-1712859475773.png" alt="Chetan_Bhatt_9-1712859475773.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Click on next.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_10-1712859475781.jpeg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95293i7930C75401EC6C12/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_10-1712859475781.jpeg" alt="Chetan_Bhatt_10-1712859475781.jpeg" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Select any entity from the given list of entities &nbsp;you created in your project.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_11-1712859475788.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95294i28FD073ED8BABEB0/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_11-1712859475788.png" alt="Chetan_Bhatt_11-1712859475788.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Customize the project attributes.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_12-1712859475796.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95295i56DC0BF8208D9582/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_12-1712859475796.png" alt="Chetan_Bhatt_12-1712859475796.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Choose the target as Cloud Foundry and select the Destination name among the list of destination names (You can go with either Local CAPM Project API and the name of your destination too).</LI></UL><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_13-1712859475804.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95297i448D5B4C126A031A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_13-1712859475804.png" alt="Chetan_Bhatt_13-1712859475804.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Now, your FIORI project is created and is ready to use.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_14-1712859475814.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95296i4C2BAADDC20B1DDD/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_14-1712859475814.png" alt="Chetan_Bhatt_14-1712859475814.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>Go to run configuration and start the project as usual.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_15-1712859475821.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95298i8507FAEBE3A69EB2/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_15-1712859475821.png" alt="Chetan_Bhatt_15-1712859475821.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><UL style=" text-align : justify; "><LI>You can now run this Fiori Application which is the result of an Application created from CAPM.</LI></UL><P style=" text-align : justify; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Chetan_Bhatt_16-1712859475830.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95299iEBFF2F273E03EB7A/image-size/medium?v=v2&amp;px=400" role="button" title="Chetan_Bhatt_16-1712859475830.png" alt="Chetan_Bhatt_16-1712859475830.png" /></span></P><P style=" text-align : justify; ">&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P> 2024-04-16T12:50:31.978000+02:00 https://community.sap.com/t5/technology-blogs-by-members/validation-for-different-identity-cards-via-absl-code-in-sap-c4c/ba-p/13674119 Validation for different Identity Cards via ABSL code in SAP C4C 2024-04-18T08:27:04.382000+02:00 tkbisoyi9118 https://community.sap.com/t5/user/viewprofilepage/user-id/162380 <P><STRONG>Validation for different Identity Cards via ABSL code in SAP C4C</STRONG></P><P>In day–to-day life, the need of unique identification cards are common. So verfifications on identity cards in different sectors are also a basic requirement. Suppose we are working for a client from India and the project is about Sales cloud. In this case, the client wants to maintain every customer’s data like Name, Contact, Address, PAN number, Adhaar number, Passport details etc. Out of those fields PAN number, Adhaar number &amp; Passport number are unique IDs provided to each person in India. So we need to put some validations against them, so that wrong values should not be stored.</P><P>We have an option to put the validations on these Identity card numbers is via ABSL validation logic through cloud application studio. Here the steps mentioned below to validate different identity cards.</P><P>Identity cards mostly required in customer/Employee work centers. So, we can add the below logics in Event- Validation on Save and Event – After Modify of Customer/Employee BO in SDK.</P><P><STRONG>Case1 – PAN Card number should be alphanumeric and should maintain exact pattern. Also PAN card number should have only 10 characters length.</STRONG></P><P>To validate the length of any field we have the method “.length()”Which we can use for this requirement.</P><P>For PAN Card number the format in India as</P><OL><LI>The PAN Card number should be only 10 characters long.</LI><LI>First five characters should be alphabeting ranges from [A-Z]</LI><LI>From 6th to 9th places should be numeric values ranges from [0-9]</LI><LI>Last digit should be alphabetic values within [A-Z]</LI></OL><P>Using ABSL we have some logic using substring to implement the validation for any mismatch of the above-mentioned format. Added the code snippet for your reference.</P><P>Here we will use FindRegex() : This function <SPAN>Searches from left to right and returns the position of a regular expression pattern in a string. If it doesn’t find same pattern then it </SPAN>returns the value “-1” and raises a message as we define.</P><OL><LI>First five characters should be alphabeting ranges from [A-Z].</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_0-1713528643323.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98781i2BC49C5D7E096630/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_0-1713528643323.png" alt="tkbisoyi9118_0-1713528643323.png" /></span></P><P>&nbsp;</P><OL><LI>From 6th to 9th places should be numeric values ranges from [0-9]</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_1-1713528643329.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98780i5A0B7FBFB58CD180/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_1-1713528643329.png" alt="tkbisoyi9118_1-1713528643329.png" /></span></P><P>&nbsp;</P><OL><LI>Last digit should be alphabetic values within [A-Z]</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_2-1713528643334.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98782iEBDF5C23F15258F5/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_2-1713528643334.png" alt="tkbisoyi9118_2-1713528643334.png" /></span></P><P>&nbsp;</P><OL><LI>The PAN Card number should be only 10 characters long.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_3-1713528643336.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98783iC3F9D53112B88171/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_3-1713528643336.png" alt="tkbisoyi9118_3-1713528643336.png" /></span></P><P>&nbsp;</P><P>Result: - After implementing the above ABSL code, when user tried to add wrong values of PAN Card or incorrect length, the error displayed and not allowed to SAVE the data.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_4-1713528643339.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98784i18CE92864638DD6C/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_4-1713528643339.png" alt="tkbisoyi9118_4-1713528643339.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_5-1713528643344.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98785i875F96029DCB663C/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_5-1713528643344.png" alt="tkbisoyi9118_5-1713528643344.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_6-1713528643349.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98788i721E1DA3B2D2CA0B/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_6-1713528643349.png" alt="tkbisoyi9118_6-1713528643349.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>Case 2 – Adhaar Card number should be 12 characters length &amp; all digits should be numeric values. </STRONG></P><P>To validate the length of any field we have the method “.length()”Which we can use as of the requirement.</P><P>For Adhaar card all the digits should be numeric and length should be 12 characters only. The below ABSL code can restrict any mismatch to the Adhaar card format.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_7-1713528643351.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98786iDB8A4BF4EB381ADB/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_7-1713528643351.png" alt="tkbisoyi9118_7-1713528643351.png" /></span></P><P>&nbsp;</P><P>Result: - After implementing the above ABSL code, when user tried to add wrong values of Adhaar Card or incorrect length, the error displayed and not allowed to SAVE the data.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_8-1713528643357.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98787iA667C465BEC3B62F/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_8-1713528643357.png" alt="tkbisoyi9118_8-1713528643357.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_9-1713528643362.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98789i852777571AB81B2E/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_9-1713528643362.png" alt="tkbisoyi9118_9-1713528643362.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_10-1713528643366.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98790iD8C707077F307965/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_10-1713528643366.png" alt="tkbisoyi9118_10-1713528643366.png" /></span></P><P>&nbsp;</P><P><STRONG>Case3 – Indian Passport number should be alphanumeric and should maintain exact pattern. Also Passport card number should have only 8 characters length.</STRONG></P><P>To validate the length of any field we have the method “.length()”Which we can use as of the requirement.</P><P>For Passport number the format in India as</P><OL><LI>The Passport number should be only 8 characters long.</LI><LI>First one character should be alphabeting ranges from [A-Z].</LI><LI>For 2nd position, it should be numeric value within range 1 to 9.</LI><LI>For 3rd position, it should be numeric value within range 0 to 9.</LI><LI>From position 4th to 7th position, digits should be numeric value within range 0 to 9.</LI><LI>For the last one digit, it should be numeric value within range 1-9.</LI></OL><P>Using ABSL we have some logic using substring to implement the validation for any mismatch of the above-mentioned format. Added the code snippet for your reference.</P><P>Here we will use FindRegex() : This function <SPAN>Searches from left to right and returns the position of a regular expression pattern in a string. If it doesn’t find same pattern then it </SPAN>returns the value “-1” and raises a message as we define.</P><OL><LI>First one character should be alphabeting ranges from [A-Z].</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_11-1713528643372.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98791i1F8F4A87DFD9790E/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_11-1713528643372.png" alt="tkbisoyi9118_11-1713528643372.png" /></span></P><P>&nbsp;</P><OL><LI>For 2nd position, it should be numeric value within range 1 to 9.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_12-1713528643376.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98794i7FD15A846EC18C3C/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_12-1713528643376.png" alt="tkbisoyi9118_12-1713528643376.png" /></span></P><P>&nbsp;</P><OL><LI>For3rd position, it should be numeric value within range 0 to 9.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_13-1713528643380.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98792iC1D70C1171FED582/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_13-1713528643380.png" alt="tkbisoyi9118_13-1713528643380.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><OL><LI>From position 4th to 7th position, digits should be numeric value within range 0 to 9.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_14-1713528643384.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98793i2903687EE940A4BD/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_14-1713528643384.png" alt="tkbisoyi9118_14-1713528643384.png" /></span></P><P>&nbsp;</P><OL><LI>For the last one digit, it should be numeric value within range 1-9.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_15-1713528643388.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98795iD5A1320DB7FBCFA6/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_15-1713528643388.png" alt="tkbisoyi9118_15-1713528643388.png" /></span></P><P>&nbsp;</P><OL><LI>The Passport number should be only 8 characters long.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_16-1713528643392.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98797i76763F678260AA8F/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_16-1713528643392.png" alt="tkbisoyi9118_16-1713528643392.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P>Result: - After implementing the above ABSL code, when user tried to add wrong values of Adhaar Card or incorrect length, the error displayed and not allowed to SAVE the data.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_17-1713528643397.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98796i3FD77F6543724906/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_17-1713528643397.png" alt="tkbisoyi9118_17-1713528643397.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_18-1713528643402.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98798iCAC3EFB2B95EF0C5/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_18-1713528643402.png" alt="tkbisoyi9118_18-1713528643402.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tkbisoyi9118_19-1713528643406.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/98799i9D8CAD495D1ADE11/image-size/medium?v=v2&amp;px=400" role="button" title="tkbisoyi9118_19-1713528643406.png" alt="tkbisoyi9118_19-1713528643406.png" /></span></P><P>&nbsp;</P><P><STRONG>Conclusion: -</STRONG></P><P>This solution can help customers to restrict unauthorized entry of identity card numbers.</P> 2024-04-18T08:27:04.382000+02:00