SAP BTP - ERP Q&A https://www.erpqna.com/tag/sap-btp/ Trending SAP Career News and Guidelines Tue, 16 Dec 2025 10:58:49 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://www.erpqna.com/wp-content/uploads/2021/11/cropped-erpqna-32x32.png SAP BTP - ERP Q&A https://www.erpqna.com/tag/sap-btp/ 32 32 Elevate Your Career: The ROI of Achieving SAP Generative AI Certification (C_AIG_2412) https://www.erpqna.com/elevate-your-career-the-roi-of-achieving-sap-generative-ai-certification-c_aig_2412/?utm_source=rss&utm_medium=rss&utm_campaign=elevate-your-career-the-roi-of-achieving-sap-generative-ai-certification-c_aig_2412 Tue, 16 Dec 2025 10:37:13 +0000 https://www.erpqna.com/?p=94564 The landscape of enterprise technology is rapidly transforming, driven by the revolutionary advancements in artificial intelligence. At the forefront of this evolution, Generative AI is reshaping how businesses operate, innovate, and interact with data. For SAP professionals, harnessing this power is no longer optional but essential for sustained career growth and market relevance. Achieving the […]

The post Elevate Your Career: The ROI of Achieving SAP Generative AI Certification (C_AIG_2412) appeared first on ERP Q&A.

]]>
The landscape of enterprise technology is rapidly transforming, driven by the revolutionary advancements in artificial intelligence. At the forefront of this evolution, Generative AI is reshaping how businesses operate, innovate, and interact with data. For SAP professionals, harnessing this power is no longer optional but essential for sustained career growth and market relevance.

Achieving the SAP Generative AI Certification (C_AIG_2412) demonstrates a professional’s expertise in this cutting-edge domain. This credential signifies a deep understanding of Generative AI principles within the SAP ecosystem, particularly emphasizing its application in the SAP Business Technology Platform (BTP). It’s a strategic move for developers and consultants aiming to elevate their capabilities in an AI-first world.

The Transformative Power of Generative AI in SAP

Generative AI represents a paradigm shift in how applications are built and how data insights are extracted. Within the SAP context, this technology empowers developers to create intelligent, dynamic solutions that can automate complex tasks, personalize user experiences, and generate valuable content from enterprise data. The integration of Generative AI tools for SAP developers enhances innovation across various business functions.

Leveraging SAP AI Core for Generative AI development allows professionals to build, deploy, and manage AI models efficiently. This foundation supports the creation of intelligent applications that are not only powerful but also scalable and secure within the SAP BTP environment. The Generative AI in SAP BTP certification validates these crucial skills, positioning certified individuals as invaluable assets.

Driving Innovation with SAP Generative AI Capabilities

Generative AI in SAP extends beyond mere automation; it fosters true innovation. Developers can design systems capable of generating code snippets, optimizing business processes, summarizing vast amounts of information, and even crafting personalized customer responses. These capabilities unlock unprecedented efficiencies and strategic advantages for organizations utilizing SAP solutions.

The demand for professionals who can implement and manage these advanced AI solutions is skyrocketing. Businesses are actively seeking experts who understand the nuances of integrating Large Language Models (LLMs) with SAP data and processes. This creates a fertile ground for those equipped with the SAP Generative AI Certification.

Why SAP Generative AI Certification is a Career Game-Changer

Investing in the SAP Generative AI Certification (C_AIG_2412) offers a significant return on investment (ROI) for any IT professional. It’s more than just a piece of paper; it’s a verified testament to a specialized skill set that is in high demand across industries. This certification path directly addresses the growing need for AI-savvy SAP experts.

The benefits of SAP Generative AI Developer certification extend to increased earning potential, enhanced job security, and unparalleled career mobility. Certified individuals often command higher salaries and are preferred candidates for leading-edge projects. This credential marks a clear path to becoming an SAP Generative AI Developer, distinguishing professionals in a competitive market.

Recognized Expertise and Professional Credibility

Achieving the C_AIG_2412 certification establishes a professional as a recognized expert in the field. This credibility is invaluable when engaging with clients, collaborating with teams, or seeking leadership roles. It signals to employers that an individual possesses validated skills in a rapidly evolving and critical technology area.

The best SAP Generative AI certification is one that is globally recognized and highly respected. SAP’s robust certification program provides just that, ensuring that certified professionals meet stringent industry standards. It validates hands-on experience and theoretical knowledge in Generative AI for SAP applications, making it a powerful career accelerator.

Diving Deep into the C_AIG_2412 Exam Details

Understanding the structure and requirements of the SAP Certified Associate – SAP Generative AI Developer exam is the first step towards successful preparation. This certification, identified by the exam code C_AIG_2412, is designed to validate a candidate’s fundamental knowledge and practical skills in leveraging Generative AI within the SAP ecosystem.
Candidates aspiring to earn this credential should be aware of the following key details for the certification:

  • Exam Name: SAP Certified Associate – SAP Generative AI Developer
  • Exam Code: C_AIG_2412
  • Exam Price: $1308 USD (Note: prices may vary by region and are subject to change; candidates should check the official exam site for the most current information.)
  • Duration: 120 minutes
  • Number of Questions: 60
  • Passing Score: 65%

These specifications highlight the comprehensive nature of the exam, which assesses a candidate’s ability to apply Generative AI concepts in real-world SAP scenarios. Adequate preparation, focusing on both theoretical understanding and practical application, is crucial for success.

Mastering the SAP Generative AI Developer Syllabus

Success in the SAP Generative AI Certification (C_AIG_2412) hinges on a thorough understanding of its syllabus topics. The exam covers critical areas essential for any Generative AI Developer working with SAP technologies. A strategic approach to studying each domain is vital for comprehensive preparation.

The C_AIG_2412 exam syllabus topics are weighted as follows, guiding candidates on where to focus their study efforts:

  • SAP AI Core (11% – 20%): This section evaluates knowledge of SAP AI Core capabilities, including how to deploy, manage, and monitor AI models. It encompasses understanding the architecture and services crucial for Generative AI development within the SAP BTP environment. Professionals should diligently explore SAP AI Core to grasp its full potential.
  • SAP’s Generative AI Hub (31% – 40%): As the largest section, it focuses on the core features and functionalities of SAP’s Generative AI Hub. This includes interaction models, available services, and integration patterns for building intelligent applications. Mastery here is critical for effective application of Generative AI within SAP.
  • Large Language Models (LLMs) (21% – 30%): This area assesses understanding of LLM fundamentals, their architecture, capabilities, and limitations. It also covers how LLMs are integrated and utilized within the SAP context to solve business problems through text generation, summarization, and understanding.
  • Advanced AI Techniques with SAP’s Generative AI Hub (21% – 30%): This segment delves into more sophisticated Generative AI scenarios. It includes topics like fine-tuning LLMs, prompt engineering best practices, RAG (Retrieval Augmented Generation) patterns, and ethical considerations when implementing advanced Generative AI solutions within SAP.

A balanced study plan that allocates time proportional to these weightings will significantly enhance a candidate’s readiness. Each topic demands both theoretical knowledge and practical familiarity to successfully navigate the exam questions.

Strategic Preparation for the C_AIG_2412 Exam

Preparing for the SAP Generative AI Certification (C_AIG_2412) requires a structured and dedicated approach. Candidates aiming to become a certified SAP Generative AI Developer should prioritize high-quality study materials and effective learning strategies. The goal is not just memorization, but a deep understanding of concepts and practical application.

Leveraging Official Resources and Training

The most reliable resources for C_AIG_2412 certification study guide materials are found through official SAP channels. This includes SAP learning journeys, documentation on SAP Help Portal, and hands-on exercises within the SAP BTP environment. Enrolling in a formal SAP Generative AI training course can provide structured learning and expert guidance.

Exploring the offerings on the valuable SAP training platform often reveals specialized courses tailored to the certification syllabus. These resources are designed to cover all necessary concepts, from SAP AI Core Generative AI development to advanced Generative AI techniques, ensuring comprehensive coverage for the exam.

The Importance of Practice Tests and Ethical Preparation

Engaging with a comprehensive practice test series is indispensable for C_AIG_2412 exam preparation. Tools like those found on a reputable comprehensive practice platform can simulate the actual exam environment, offering C_AIG_2412 sample questions and allowing candidates to assess their readiness. These platforms help identify knowledge gaps and build confidence.

It is crucial to emphasize that reliance on “dumps” or leaked exam questions is counterproductive and unethical. Such resources often contain outdated or incorrect information and do not foster genuine understanding, leading to guaranteed failure in the long run. Authentic preparation through official materials and high-quality practice tests is the only reliable path to earning the SAP Generative AI Certification and truly mastering the subject matter. Focus on understanding the concepts to confidently tackle C_AIG_2412 exam questions and answers.

Who Should Pursue the SAP Generative AI Developer Certification?

The SAP Generative AI Certification (C_AIG_2412) is strategically designed for a specific cohort of IT professionals eager to specialize in cutting-edge AI within the SAP ecosystem. This credential is most beneficial for those looking to solidify their expertise and advance into roles demanding proficiency in Generative AI development.

Ideal candidates for this certification include:

  • SAP Developers: Those actively involved in developing solutions on SAP BTP who wish to integrate Generative AI capabilities into their applications.
  • SAP Consultants: Professionals who advise clients on SAP technologies and want to offer strategic insights into AI-driven transformations and Generative AI tools for SAP developers.
  • AI/ML Engineers: Individuals with a background in artificial intelligence and machine learning who want to specialize in SAP-specific AI implementations.
  • Enterprise Architects: Architects responsible for designing future-proof SAP landscapes, incorporating advanced AI solutions and understanding the SAP AI Core Generative AI development process.

The SAP Generative AI Developer job roles that emerge from this certification are diverse, ranging from Generative AI Solution Architect to Intelligent Automation Specialist. It is a critical step in the SAP Generative AI certification path for ambitious professionals.

Expanding Your Professional Network and Opportunities

Beyond technical validation, pursuing this certification connects individuals with a community of like-minded professionals and experts. Engaging with the wider SAP community through forums and events, such as those found by joining the SAP community, offers invaluable networking opportunities and insights into evolving industry trends. This engagement can lead to new career prospects and collaborative ventures.

Learning Generative AI for SAP opens doors to roles that were non-existent just a few years ago. It positions professionals at the intersection of powerful enterprise technology and transformative artificial intelligence, ensuring they remain at the forefront of innovation. The certification acts as a catalyst for significant career advancement and specialized expertise.

The Future is AI-Powered: Long-Term Career Impact

The adoption of Generative AI across industries is only just beginning, promising a future where intelligent applications are integral to every business function. For SAP professionals, the C_AIG_2412 certification is not merely a short-term credential but a foundational step towards a resilient and impactful career in the AI era.

This certification equips individuals with skills that will remain relevant and highly sought after as SAP continues to embed Generative AI capabilities deeper into its offerings. It provides a unique competitive advantage, ensuring professionals are not just adapting to change but actively driving it within their organizations.

By mastering Generative AI in SAP, certified individuals contribute to shaping the future of enterprise software. They become architects of innovation, capable of designing and implementing solutions that solve complex business challenges with unprecedented intelligence and efficiency. The long-term ROI of this certification is immeasurable, extending far beyond immediate career benefits.

Conclusion

The SAP Generative AI Certification (C_AIG_2412) stands as a pivotal milestone for professionals aiming to excel in the rapidly evolving world of artificial intelligence and SAP technologies. It provides validated expertise in Generative AI within SAP BTP, enhancing career prospects, increasing earning potential, and positioning individuals as leaders in intelligent enterprise solutions.

Embracing this certification signifies a commitment to continuous learning and a proactive approach to mastering cutting-edge technology. It’s an investment in a future where Generative AI skills are indispensable for innovation and competitive advantage within the SAP ecosystem. For those ready to seize the opportunities presented by AI, this credential is the definitive pathway.

Take the decisive step towards mastering Generative AI within SAP and propel your career forward. Explore comprehensive resources and begin your preparation today by consulting a comprehensive preparation guide designed to ensure your success on the C_AIG_2412 exam.

FAQs

Question 1: What is the C_AIG_2412 certification?

The C_AIG_2412 certification, officially known as “SAP Certified Associate – SAP Generative AI Developer,” validates a candidate’s fundamental knowledge and practical skills in leveraging Generative AI capabilities within the SAP Business Technology Platform (BTP). It covers areas like SAP AI Core, SAP’s Generative AI Hub, and Large Language Models.

Question 2: What are the prerequisites for the SAP Generative AI Developer exam?

While SAP typically recommends prior experience or completion of specific training courses, there are no strict formal prerequisites for taking the C_AIG_2412 exam. However, a strong understanding of SAP BTP, general AI/ML concepts, and development experience is highly recommended to succeed.

Question 3: How much does the SAP Generative AI Certification cost?

The SAP Generative AI Certification (C_AIG_2412) typically costs $1308 USD. It is important to note that exam prices can vary by region and are subject to change, so candidates should always verify the latest pricing on the official SAP training and certification website.

Question 4: What are the best resources for C_AIG_2412 exam preparation?

The best resources include official SAP learning journeys, documentation on the SAP Help Portal, and hands-on practice within the SAP BTP environment. Engaging with reputable practice test platforms like ERPPrep is also highly recommended to simulate exam conditions and identify areas for improvement.

Question 5: What career opportunities does the SAP Generative AI Developer certification open up?

Achieving the SAP Generative AI Developer certification opens up numerous opportunities in roles such as SAP Generative AI Developer, AI/ML Engineer in an SAP context, Generative AI Solution Architect, and Intelligent Automation Specialist. It positions professionals at the forefront of AI innovation within the SAP ecosystem, enhancing career growth and demand.

Rating: 5 / 5 (3 votes)

The post Elevate Your Career: The ROI of Achieving SAP Generative AI Certification (C_AIG_2412) appeared first on ERP Q&A.

]]>
Connecting Multiple Databases and OData Services to SAP BTP using BAS https://www.erpqna.com/connecting-multiple-databases-and-odata-services-to-sap-btp-using-bas/?utm_source=rss&utm_medium=rss&utm_campaign=connecting-multiple-databases-and-odata-services-to-sap-btp-using-bas Wed, 09 Apr 2025 12:45:29 +0000 https://www.erpqna.com/?p=91450 Introduction In this post, I will explain how to connect multiple databases and OData services to SAP BTP using BAS . This guide covers configuring UI5 applications to consume multiple OData services from both SAP S/4HANA (on-premise) and SAP BTP ABAP environment, ensuring seamless data integration. Context I aim to integrate three different OData services […]

The post Connecting Multiple Databases and OData Services to SAP BTP using BAS appeared first on ERP Q&A.

]]>
Introduction

In this post, I will explain how to connect multiple databases and OData services to SAP BTP using BAS . This guide covers configuring UI5 applications to consume multiple OData services from both SAP S/4HANA (on-premise) and SAP BTP ABAP environment, ensuring seamless data integration.

Context

I aim to integrate three different OData services from different database sources :

  1. On-Premise S/4HANA OData V2 Services
    • ZPR_EMP_DETAILS_SRV : Fetches employee details.
    • ZFI_TEST_ODATA_SRV : Fetches financial data.
  2. SAP BTP ABAP Environment OData V4 Service
    • ZUI_TAB_TRAVDAT_O4_AKS_001: Fetches travel-related data using the RAP Model.

Steps to Connect Multiple OData Services

Step 1: Add Data Sources in UI5 Application

  1. Create a UI5 application in VS Code.
  2. While creating the application, provide the service URL to configure an OData service automatically.
  3. Navigate to webapp/manifest.json.
  4. Modify the dataSources section to include multiple OData services as follows:
"dataSources": {
  "mainService": {
    "uri": "/sap/opu/odata/sap/ZPR_EMP_DETAILS_SRV/",
    "type": "OData",
    "settings": {
      "odataVersion": "2.0"
    }
  },
  "subService": {
    "uri": "/sap/opu/odata/sap/ZFI_TEST_ODATA_SRV/",
    "type": "OData",
    "settings": {
      "odataVersion": "2.0"
    }
  },
  "rapService": {
    "uri": "/sap/opu/odata4/sap/zui_tab_travdat_o4_aks_001/",
    "type": "OData",
    "settings": {
      "odataVersion": "4.0"
    }
  }
}

Step 2: Configure Models in manifest.json

Each model corresponds to an OData service:

"models": {
  "": {
    "dataSource": "mainService",
    "preload": true,
    "settings": {}
  },
  "subModel": {
    "dataSource": "subService",
    "preload": true,
    "settings": {}
  },
  "rapModel": {
    "dataSource": "rapService",
    "preload": true,
    "settings": {
      "operationMode": "Server",
      "autoExpandSelect": true,
      "earlyRequests": true
    }
  }
}

Step 3: Configure ui5.yaml for Backend Connections

In ui5.yaml, configure the destinations for OData services:

server:
  customMiddleware:
    - name: ui5-middleware-simpleproxy
      afterMiddleware: compression
      configuration:
      ui5:
          path:
            - /resources
            - /test-resources
          url: https://ui5.sap.com
        backend:
# On-premise SAP System Destination 1 - Replace with your URL
        - scp: true
        path: /sap/opu/odata/sap/ZPR_EMP_DETAILS_SRV/
        url: https://your-onpremise-system-hostname:port/
        destination: SAHANA_CONN
        client: 'your client ID'
        authenticationType: BasicAuthentication

  # On-premise SAP System Destination 2 - Replace with your URL  
        - scp: true
        path: /sap/opu/odata/sap/ZFI_TEST_ODATA_SRV
        url: https://your-onpremise-system-hostname:port/
        destination: SAHANA_CONN
        client: 'your client ID'
        authenticationType: BasicAuthentication

  # SAP BTP ABAP Environment Destination - Replace with your instance URL
        - scp: true
        path: /sap/opu/odata/sap/zui_tab_travdat_o4_aks_001/
        url: https://your-abap-instance-guid.abap.region.hana.ondemand.com
        destination: abap-cloud-default_abap-trial-9a87acc7trial-dev
        client: 'your client ID'
        authenticationType: OAuth2UserTokenExchange

Destination:

S4HANA_CONN is used for two OData V2 services hosted in the on-premise S/4HANA system as shown in below screenshot.

abap-cloud-default_abap-trial-9a87ace7trial-dev is for the RAP-based OData V4 service hosted on SAP BTP as shown in below screenshot.

Authentication Types:

  • On-premise S/4HANA services use BasicAuthentication, which is simpler but less secure for cloud-based scenarios.
  • The SAP BTP service uses OAuth2UserTokenExchange, enabling secure token-based communication.

All the Connected OData will be Listed in Service Manager as shown in below screenshot.

Avoid connecting directly to OData services via the Service Manager, as it can lead to data inconsistency issues (e.g., all requests may unintentionally retrieve only the last edited destination). Instead, I prefer using the Destination Service (as shown in the configuration above) for:

  • Stable & secure connections
  • Proper authentication handling (Basic/OAuth2)
  • Consistent data retrieval (prevents mixing/overwriting datasets).

Conclusion

By following these steps, you can successfully integrate multiple OData services in a SAP BTP-based Fiori application. This setup allows seamless data flow between on-premise S/4HANA and cloud-based SAP BTP ABAP environment, ensuring a modern, scalable architecture.

Rating: 5 / 5 (1 votes)

The post Connecting Multiple Databases and OData Services to SAP BTP using BAS appeared first on ERP Q&A.

]]>
Converting IDoc to a Fixed-Length Flat File Using XSLT Mapping in SAP CPI https://www.erpqna.com/converting-idoc-to-a-fixed-length-flat-file-using-xslt-mapping-in-sap-cpi/?utm_source=rss&utm_medium=rss&utm_campaign=converting-idoc-to-a-fixed-length-flat-file-using-xslt-mapping-in-sap-cpi Mon, 10 Mar 2025 11:14:39 +0000 https://www.erpqna.com/?p=90920 Step-by-Step Process 1. Receiving IDoc via IDoc Sender Adapter The first step is to receive the IDoc in SAP CPI using the IDoc Sender Adapter. Key Configuration Steps: 2. Mapping IDoc Data to a Fixed-Length Structure Before applying XSLT, ensure the IDoc fields are mapped correctly to match the flat file format. Important Considerations for […]

The post Converting IDoc to a Fixed-Length Flat File Using XSLT Mapping in SAP CPI appeared first on ERP Q&A.

]]>
Step-by-Step Process

1. Receiving IDoc via IDoc Sender Adapter

The first step is to receive the IDoc in SAP CPI using the IDoc Sender Adapter.

    Key Configuration Steps:

    • Use the IDoc Sender Adapter to connect SAP CPI with SAP S/4HANA or ECC.
    • Ensure the correct IDoc type (e.g., DELVRY03, ORDERS05) is selected.
    • Establish connectivity using the appropriate authentication method.

    2. Mapping IDoc Data to a Fixed-Length Structure

    Before applying XSLT, ensure the IDoc fields are mapped correctly to match the flat file format.

      Important Considerations for Fixed-Length Files:

      • Each field in the flat file must have a specific length (e.g., 10, 20, 30 characters).
      • Truncate or pad fields with spaces if they do not meet the required length.
      • Ensure the sequence of fields is aligned with the file structure.

      3. Applying XSLT Mapping for Fixed-Length Output

      To ensure the flat file follows a fixed-length format, we use XSLT mapping. The following XSLT code helps achieve this by:

      ✔ Removing XML tags while preserving field values.
      ✔ Padding fields with spaces to match the required length.
      ✔ Adding new lines to ensure proper record structure.

        XSLT Code for Fixed-Length Formatting

        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="text" indent="no"/>
        
          <!-- Remove XML tags and keep only text content -->
          <xsl:template match="*">
            <xsl:apply-templates select="node()"/>
          </xsl:template>
        
          <!-- Preserve text nodes -->
          <xsl:template match="text()">
            <xsl:value-of select="."/>
          </xsl:template>
        
          <!-- Add line breaks after each segment -->
          <xsl:template match="Header | SubHeader | HeaderText | LineData | LineText">
            <xsl:apply-templates/>
            <xsl:text>&#xA;</xsl:text>  <!-- New line character -->
          </xsl:template>
        
          <!-- Root template -->
          <xsl:template match="/">
            <xsl:apply-templates/>
          </xsl:template>
        </xsl:stylesheet>

        How XSLT Helps:

        ✔ Removes XML tags while preserving text content.
        ✔ Adds line breaks to format the flat file correctly.
        ✔ Ensures proper structuring for downstream processing.

        4. Sending the Flat File to an SFTP Server

        After the transformation, the flat file needs to be sent to an SFTP server.

          Configuring the SFTP Receiver Adapter:

          • Set up an SFTP Receiver Adapter in SAP CPI.
          • Provide the correct host, port, and authentication details.
          • Define the file naming convention to store the output properly.

          Conclusion

          By leveraging SAP CPI, we can efficiently convert IDocs into flat file formats using XSLT mapping and an SFTP adapter. This approach eliminates manual intervention and ensures seamless data transmission between systems.

          Key Takeaways:

          • IDoc Sender Adapter captures IDocs from SAP S/4HANA or ECC.
          • Message Mapping helps format data as per flat file structure.
          • XSLT Mapping removes XML tags and applies necessary formatting.
          • SFTP Adapter delivers the final flat file to the target system.

          With this approach, businesses can streamline IDoc-to-flat file conversions and enhance their integration capabilities within SAP CPI.

          Rating: 5 / 5 (1 votes)

          The post Converting IDoc to a Fixed-Length Flat File Using XSLT Mapping in SAP CPI appeared first on ERP Q&A.

          ]]>
          Which S/4HANA Extensibility Options should I use as a SAP customer? https://www.erpqna.com/which-s-4hana-extensibility-options-should-i-use-as-a-sap-customer/?utm_source=rss&utm_medium=rss&utm_campaign=which-s-4hana-extensibility-options-should-i-use-as-a-sap-customer Wed, 13 Nov 2024 11:12:32 +0000 https://www.erpqna.com/?p=88670 Get more value from S/4HANA with SAP Extensibility options I will focus on existing and new SAP partners who wish to connect their cloud offerings to S/4HANA customers or migrate their existing add-on to ABAP clean-code code. In this article, I will explain in more depth from a customer’s point of view which Extensibility Options […]

          The post Which S/4HANA Extensibility Options should I use as a SAP customer? appeared first on ERP Q&A.

          ]]>
          Get more value from S/4HANA with SAP Extensibility options

          I will focus on existing and new SAP partners who wish to connect their cloud offerings to S/4HANA customers or migrate their existing add-on to ABAP clean-code code. In this article, I will explain in more depth from a customer’s point of view which Extensibility Options fit the best different use cases for an SAP S/4HANA Cloud system.

          As Software vendors like SAP consistently deliver best-practice solutions that should fit multiple customers. This means there will always be a gap between the requirements for your business processes and the software solution delivered to support them. There are several ways to close this gap. You can manage the gap by supporting it with manual procedures, but you can also try to solve it by extending your software solution with other solutions and custom development. In this article, I will focus on the following topics:

          1. Adopt your system by customizing your business processes
          2. Add ready-made solutions like SAP cloud products, SAP third-party add-ons, and SAP cloud partner solutions
          3. Personalize the UI using S/4HANA Personalization Options
          4. Build your own extensions using S/4HANA Extensibility Options

          Customize your business processes.

          The best and cheapest option to solve the gap is to customize your business process to fit into SAP’s best practice processes. By using the predefined templates and configuration options of S/4HANA, you can tailor your business processes to your needs. For S/4HANA public cloud, there is a specific cloud application called SAP Central Business Configuration, which enables you to scope, configure, and implement end-to-end business processes for your cloud solution from a central place. After setting up your S/4HANA Cloud public edition, you can use the Implementation Activities app for further configurations, such as in SAP ECC and other S/4HANA editions, using transaction SPRO.

          SAP BTP, ABAP Environment, SAP S/4HANA Cloud ABAP Environment, SAP Cloud Integration, SAP S/4HANA, SAP Build Apps, SAP Build, SAP S/4HANA Cloud Private Edition, SAP S/4HANA Cloud Public Edition, SAP Build Code, SAP Build Process Automation
          Figure 1 – SAP Central Business Configuration for S/4HANA Cloud Public Editions

          SAP cloud products, SAP third-party add-ons, and SAP cloud partner solutions

          When a gap remains between your business processes and the customizing, you should consider SAP cloud products, SAP S/4HANA on-stack third-party add-ons, or side-by-side SAP cloud partner solutions in the SAP store.

          As mentioned in my previous article, SAP simplified the supported processes in the S/4HANA Cloud public edition. It moved functionality to other SAP Cloud products, providing even more functionality in their domain. These solutions can provide even more functionality than previously available in SAP ECC. In the last couple of years, SAP has invested a lot in integrating these SAP Cloud products with S/4HANA and has now positioned the complete integrated portfolio as Cloud ERP. However, with the simplification of S/4HANA, customers can also choose products from an SAP competitor to solve the missing functionality in S/4HANA for some domains. This results in some challenges that I will discuss later in this article.

          Another way to solve the gap between business processes and SAP software is to install a third-party SAP add-on to the S/4HANA system or connect your system to a SAP side-by-side cloud partner solution. In the past, add-ons were often considered, and for SAP ECC, many add-ons were available. But for S/4HANA Cloud editions, this isn’t the case yet. SAP has previously asked its partners to build their solutions outside S/4HANA, in SAP Business Technology Platform (BTP), and provide this as an SAP cloud partner solution. SAP even set up a partner program to run these solutions as a SAAS offering on BTP, which makes it very easy for S/4HANA customers to consume these partner solutions. The possibility of closing the gap by providing SAAS offerings on BTP by a SAP cloud partner is a crucial aspect of SAP’s strategy to extend its footprint into the market. And from that aspect, I expect many more SAP cloud partner solutions soon.

          However, besides the SAAS offering, I expect many more S/4HANA on-stack add-on products soon. SAP has launched the embedded ABAP Cloud stack of S/4HANA Cloud public edition 2023. This allows smaller SAP partners to deliver their add-ons based on ABAP Cloud to customers via a controlled git-based multi-off delivery. A SAP certification for this addon is unnecessary because the code follows the SAP clean core paradigm, which will be checked when you deploy your code. This removes the barrier for many SAP partners, consulting companies, and independent consultants to build and provide add-ons to their customers.

          S/4HANA Personalization Options

          In some cases, the gap is small and depends on the user of the S/4HANA system. You can influence how users work with the system by providing the proper business role. Authorizations and using default values in the Fiori Launchpad already allow you to influence and limit user entry, but you can go further.

          S/4HANA Uis, based on Fiori Elements, can be configured to present data in a personalized way. You can add and remove filters and their values, change how the data is displayed, and store and share this personalized look and feel.

          S/4HANA Key User Extensibility – UI adaption

          Sometimes, these personalization capabilities aren’t enough, and you want to adapt the UI and change the look and feel of the applications to your needs. You can change or hide titles, buttons, and label names and reorder and hide fields and sections. If the S/4HANA app supports this option and you have the proper authorization, you will find the UI Adapt button in the menu of your Fiori Launchpad profile.

          UI adaptation, default values, and personalization are strong capabilities of S/4HANA Cloud that can improve user experiences and reduce users’ knowledge gaps.

          S/4HANA Extensibility Options

          SAP BTP, ABAP Environment, SAP S/4HANA Cloud ABAP Environment, SAP Cloud Integration, SAP S/4HANA, SAP Build Apps, SAP Build, SAP S/4HANA Cloud Private Edition, SAP S/4HANA Cloud Public Edition, SAP Build Code, SAP Build Process Automation
          Figure 2 – Extensibility options

          For some business processes, more than all of the options above are needed, and the only solution is to use the other S/4HANA Extensibility Options. My previous article mentioned that SAP provides eight possible S/4HANA Extensibility Options, as seen in the picture above. Before I elaborate on them, I want to address two topics that are relevant to understanding the S/4HANA Extensibility options:

          1. On-stack extensions versus Side-by-Side extensions
          2. Low-code versus Pro-Code

          On-stack extensions versus Side-by-Side extensions

          On-stack extensions are S/4HANA extensibility options embedded in the S/4HANA system. All capabilities, authorizations, support, and maintenance are directly dependent on the availability of your S/4HANA system, and these extensibility options are included in the S/4HANA licenses. Because these extensibility options run on the same instance as the S/4HANA system, they are tightly coupled. This allows for adopting extensions to standard S/4HANA processes and handling big datasets with excellent performance.

          Side-by-side extensions are S/4HANA Extensibility Options, which run on their own instances in the SAP BTP Cloud environment. These extensions are loosely coupled with S/4HANA. These solutions will exchange data with S/4HANA through APIs and events. These extensibility options are primarily suitable when:

          • The on-stack extension significantly impacts the available S/4HANA runtime resources;
          • Casual or external users must participate. Still, you don’t want to give them direct or full access to S/4HANA;
          • you need an extension, which, besides S/4HANA, also needs data from other cloud resources;
          • you need solution extensions for multiple S/4HANA systems.

          Low-code versus Pro-Code

          The S/4HANA extensibility options are split into low-code and pro-code options. The pro-code option is the most flexible and powerful option for realizing your extensions, but you also need a professional SAP developer to build the extension. In many cases, you can realize the extensions by just adopting some slight modifications using applications that do this through minimal coding, supported mainly by a visual approach. In this case, you don’t need a professional SAP developer in the IT department; you can let business users with some coding knowledge build the extension. These types of business users who are using low-code applications are also known as citizen developers.

          S/4HANA Key User Extensibility Option.

          SAP BTP, ABAP Environment, SAP S/4HANA Cloud ABAP Environment, SAP Cloud Integration, SAP S/4HANA, SAP Build Apps, SAP Build, SAP S/4HANA Cloud Private Edition, SAP S/4HANA Cloud Public Edition, SAP Build Code, SAP Build Process Automation
          Figure 3 – Key User Extensibility Option

          The S/4HANA Key User Extensibility Option is a low-code extensibility option in the S/4HANA system. It provides a set of Fiori apps to manage the most common changes needed to User Interfaces (UIs) and business processes.

          Extend standard SAP UIs, reports, and APIs with custom fields.

          With Custom Fields, you can create new custom fields and extend existing SAP data structures with calculated fields. This allows you to customize applications and adapt their UIs, reports, email templates, form templates, and APIs.

          This custom fields capability allows storing, calculating, and using additional fields in your S/4HANA applications. It will follow SAP’s Clean Core strategy and is stable for upgrades and future-proof. With this option, you don’t need to improperly use existing SAP fields of SAP applications, which has happened a lot in the past in SAP ECC.

          Influence the behavior of a S/4HANA application.

          With Custom Logic, you can influence the behavior of standard S/4HANA applications. It will replace all the options we had in the past in SAP ECC, such as user exists, modifications, implicit enhancements, and enhancement spots. SAP has released predefined extension points in its standard SAP code lines, which can be influenced by custom code. Predefined extension points are available as business add-ins (BAdIs), and you can add the logic you need with this app. You can use a limited set of statements to influence the behavior of standard SAP business objects, interact with your custom business objects in the system, and even call services outside the S/4HANA system to create, update, or retrieve data from an external resource. To call services outside S/4HANA, you can use the Custom Communication Scenario app to configure the connectivity.

          Implementing released BAdIs is the only future-proof solution in SAP’s Clean Core strategy that can influence the standard logic.

          Building simple Custom Business Objects, transactions, and APIs.

          With the Custom Business Object app, a citizen developer can develop small custom S/4HANA applications and backend services for new developments in S/4HANA and replace current custom-built applications in SAP ECC. The app allows you to create a custom data model with nodes and fields, add limited business logic such as determinations and validations, and generate the custom business object, the UI, and the backend service. When artifacts like fields, structures, value help, and methods are needed for multiple Custom Business Objects, you can use the Customer Reusable Elements app to build these artifacts.

          The custom business object can be used in the custom logic of a standard SAP application. It can also be accessed as a Fiori application by S/HANA users when the object is added as an extension to an existing catalog using the app Custom Catalog Extensions. The custom business object can also be used by applications outside S/4HANA when the object’s backend service is generated and made publicly available after you process it with the app Custom Communication Scenario.

          Make external web resources available.

          The Custom Tile app allows you to create Fiori tiles in your Fiori Launchpad to access external web applications. Since the user must already have access rights to external web applications, this solution is best for other SAP cloud applications, publicly accessible internet applications, and custom-built and third-party applications running on SAP BTP, which shares the same identity provider as S/4HANA.

          Assemble analytical reports and custom data sources.

          In the clean core strategy of S/4HANA, you can’t access SAP tables directly anymore, but you should access your data through so-called CDS views. The CDS Views can be a projection layer on top of these tables but can also read data from other CDS views. The CDS views serve as a source for transactional and analytical apps, value-helps, APIs, and data extraction. SAP uses these CDS views to migrate its existing data model slightly to a new Virtual Data Model. The Virtual Data Model of SAP has many CDS views, but only the released CDS views can be used by SAP partners and customers.

          The Custom CDS View app allows customers to assemble custom CDS views for analytical and read-only external APIs. They are based on released CDS views and other custom content, such as custom business objects and other custom CDS views. With the app, you can create a CDS View that selects fields from multiple data sources and adds new calculated fields. You can refine these chosen fields’ properties, add filters to refine the result set and add and maintain parameters for the usage within your view.

          The Custom CDS View app also allows users to create CDS Views with analytical capabilities, the so-called Analytical CDS View. These views can be used in S/4HANA analytical tooling, the S/4HANA query builder app Custom Analytical Queries, S/4HANA KPI Designer, and APF Configuration Modeling.

          Reports and overview page.

          In SAP’s Clean Core strategy, SAP Fiori is the only supported UI for custom-built applications in S/4HANA. This means that all UI capabilities of SAP ECC, such as ABAP reports, ABAP dynpro, BSP, and WebDynpro, are obsolete and should be replaced.

          However, this is easy for Custom Business Objects or custom CDS views. When these artifacts are exposed as S/4HANA external APIs, these APIs can be used as a source for the Fiori Elements tooling. With this tooling, a Fiori List Reports, Fiori Analytical List Page, and Fiori Overview Page can be generated in a few steps. A frontend developer can take this as a base, add the needed UI capabilities to the generated application, and deploy it to the S/4HANA system as a Custom Fiori App.

          Real-time analytic dashboards.

          When the analytical capabilities in S/4HANA and Fiori Elements don’t fit your business needs, you can always use a side-by-side tool like SAP Analytics Cloud. This is appropriate when using S/4HANA and other data resources to analyze and predict business outcomes and want to use the outcomes for business intelligence and enterprise planning.

          S/4HANA supports this Extensibility Option by providing a live data connection between S/4HANA and SAP Analytics Cloud based on SAP’s optimized InA protocol. This allows SAP Analytics Cloud to query S/4HANA’s data sources in real time and react directly to changes.

          The SAP Analytics Cloud Extensibility Option allows real-time dashboarding of business processes. The live data connection, machine learning, and artificial intelligence capabilities of SAP Analytics Cloud will also take the S/4HANA-supported business process to the next level, which isn’t possible with SAP ECC.

          Process automation and interaction with occasional SAP users.

          In most companies, a business process starts with collecting, checking, and approving information before it is entered into an ERP system. This process is usually manual and supported by unstructured data tools such as email, spreadsheets, documents, and notes.

          The market recognized this and developed more structured, low-code solutions to support these processes. SAP entered this market, too, with SAP Build, a citizen development tool for building workflows and simple UIs to collect, check, and approve data for users who do not need access to a S/4HANA system.

          When SAP examined these processes, it saw another significant improvement opportunity. Most processes had repeated steps, such as collecting and interpreting data from known sources and manually entering data into applications and unstructured tools, which robotic engines and artificial intelligence can easily automate without interaction with a user. This process automation capability was also added to the SAP Build portfolio.

          SAP BTP, ABAP Environment, SAP S/4HANA Cloud ABAP Environment, SAP Cloud Integration, SAP S/4HANA, SAP Build Apps, SAP Build, SAP S/4HANA Cloud Private Edition, SAP S/4HANA Cloud Public Edition, SAP Build Code, SAP Build Process Automation
          Figure 4 – SAP Build Process Automation

          SAP positioned SAP Build Process Automation as a side-by-side extension possibility for additional customer-specific processes and automation on top of S/4HANA. It will also replace the customer ABAP workflows we know from SAP ECC, which is no longer possible in S/4HANA.

          Integrate your business processes in the cloud.

          Many companies use software products other than SAP to automate their business processes. They want to work more closely with their business partners and can gain value by outsourcing part of their business processes to them. Companies also want to automate data exchange between ERP and their manufacturing systems.

          ERP systems have exchanged data with each other almost from the beginning. In the early days, users had to make manual entries, but nowadays, they can use files and spreadsheets or even connect systems with APIs using EDI or internet-based networks. The data model should be aligned, and integration products should be introduced to map the content and API structures of the connected systems.

          Integration becomes even more critical with the simplification of S/4HANA and the move of business functionality to other Cloud products. Traditional integration, as we know from SAP ECC, is not enough. By moving functionality to other cloud products, S/4HANA also loses the tight coupling between the business processes we had in SAP ECC. APIs alone are not enough to solve this issue. S/4HANA needs to provide notification events to connected systems when situations in the supported business processes are changed. The traditional integration architecture needs to shift to an event-driven architecture, precisely what SAP offers with its Cloud Integration Suite and S/4HANA Cloud events and APIs.

          SAP BTP, ABAP Environment, SAP S/4HANA Cloud ABAP Environment, SAP Cloud Integration, SAP S/4HANA, SAP Build Apps, SAP Build, SAP S/4HANA Cloud Private Edition, SAP S/4HANA Cloud Public Edition, SAP Build Code, SAP Build Process Automation
          Figure 5 – SAP Cloud Integration Suite

          Cloud Integration Suite offers traditional EAI/B2B integration options, the capability to connect to non-SAP products using open connectors, and SAP Graph, a fully event-driven unified data model on top of SAP’s Cloud products.

          Building your enterprise-grade cloud applications

          When do you need a professional developer to build your custom application? As soon as you cannot solve the gap in our S/4HANA business process by connecting other software products, building process automation workflows and UIs, or modifying standard SAP screens and logic with key user extensibility options, you need a professional developer.

          Of course, you can build this application on any platform in any language. However, when data from SAP Cloud products is involved, creating applications with SAP tooling is the best solution. From the perspective of S/4HANA, you can develop the application on-stack or side-by-side.

          On-stack is the best solution if you need tight integration with your S/4HANA data or users. In this case, you build your application directly with ABAP Cloud on the embedded ABAP environment, and you can use all of S/4HANA’s capabilities. This is also known as SAP S/4HANA Cloud Developer Extensibility.

          On the other hand, when you need an application loosely coupled from S/4HANA and mostly runs standalone or heavenly, depending on other SAP cloud products, the side-by-side extension SAP Build Code on BTP is the best solution. With SAP Build Code, a professional developer can build enterprise-grade Java and JavaScript cloud applications fast and with high quality, supported by AI-based code generation.

          SAP BTP also offers an ABAP environment for developing side-by-side applications. When you upgrade to the S/4HANA cloud, this environment can be used to build new, future-proof, clean-core ABAP applications while still running SAP ECC. After the upgrade, these applications can later be moved as SAP S/4HANA Cloud Developer Extensibility of the embedded ABAP environment of your S/4HANA. However, you can also move your SAP S/4HANA Cloud Developer Extensibility applications to the SAP BTP ABAP Cloud environment when the applications significantly impact the runtime resources on the performance or cost of your S/4HANA system.

          As I will explain in my next article, the SAP BTP ABAP environment can also be a good option for SAP solution partners to provide additional S/4HANA functionality in a software-as-a-service model.

          Conclusion

          SAP supports many different S/4HANA Extensibility Options described in this article to help customers solve gaps in supporting their business processes with S/4HANA. SAP analyzes customers’ needs by examining SAP ECC and translating this into options, considering their clean-core strategy for S/4HANA. This allows customers to adjust their business processes and offers many opportunities for SAP solution partners and cloud vendors to add value to the SAP ecosystem.

          Rating: 5 / 5 (1 votes)

          The post Which S/4HANA Extensibility Options should I use as a SAP customer? appeared first on ERP Q&A.

          ]]>
          How to Provision a SAP Datasphere Free-Tier Instance https://www.erpqna.com/how-to-provision-a-sap-datasphere-free-tier-instance/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-provision-a-sap-datasphere-free-tier-instance Tue, 09 Jul 2024 09:39:02 +0000 https://www.erpqna.com/?p=86350 Introduction In this blog post, we’ll guide you step-by-step through the process of provisioning a SAP Datasphere Free-Tier instance. Whether you’re a data enthusiast, a business analyst, or an IT professional, by following these steps, you’ll have your free-tier instance up and running in no time. Prerequisites To create your SAP Datasphere service instance in […]

          The post How to Provision a SAP Datasphere Free-Tier Instance appeared first on ERP Q&A.

          ]]>
          Introduction

          In this blog post, we’ll guide you step-by-step through the process of provisioning a SAP Datasphere Free-Tier instance. Whether you’re a data enthusiast, a business analyst, or an IT professional, by following these steps, you’ll have your free-tier instance up and running in no time.

          Prerequisites

          To create your SAP Datasphere service instance in SAP BTP, you need the following prerequisites:

          • A SAP BTP Global Account
          • Your global account has a commercial entitlement either via cloud credits (in case of a consumption-based contract) or via a subscription-based contract.
          • You are using Google Chrome to properly view popups in SAP BTP.

          Step 1: Sign in to SAP BTP Cockpit

          1. Navigate to the SAP BTP Cockpit

          Open your web browser and go to the SAP BTP Cockpit website: SAP BTP Cockpit

          2. Log in to your account

          Enter your SAP credentials to log in.

          Step 2: Set Up a Subaccount

          1. Create a Subaccount

          In the SAP BTP Cockpit, go to your Global Account and click on “Subaccounts”.
          Click on “Create” to add a new subaccount.

            Fill in the required details such as “Name”, “Environment” (choose Cloud Foundry), and “Region”.

            2. Confirm the Subaccount

            Click “Create” and wait for the subaccount to be created.

              Step 3: Enable Cloud Foundry

              Enable Cloud Foundry

              In your subaccount, navigate to “Cloud Foundry” and click on “Enable Cloud Foundry”.

              Fill in the required details such as “Plan”, “Landscape”, and “Org Name”.

              Step 4: Create a Space

              Add a Space

              Within the Cloud Foundry section, click on “Spaces” and then “Create Space”.
              Provide a name for your space (e.g., “development”).

              Fill in the required details for “Space Name” and set the flags for “Space Developer” and “Space Manager”.

              Step 5: Assign Entitlements

              Manage Entitlements

              Go to your subaccount, select “Entitlements”, and click on “Edit”.

              Click on “Add Service Plans”.

              Add the required entitlements for SAP Datasphere and click on “Add 1 Service Plan”.

              Click on “Save”.

              Step 6: Subscribe to SAP Datasphere

              Add SAP Datasphere Subscription

              In the subaccount, navigate to “Instances and Subscriptions”. Click on “Create”.

              Fill in the required details for “Service”, “Plan”, “Runtime Environment”, “Space” and “Instance Name” as shown below and afterwards click on “Next” and then on “Create”

              Fill in the mandatory details for “First Name”, “Last Name” and “Email” (This is the Email where the SAP Datasphere link will be sent to).

              Step 7: Access SAP Datasphere

              After the creation of SAP Datasphere is finished you have two possibilities to access the SAP Datasphere tenant. You can access it through SAP BTP Cockpit or by clicking on the SAP Datasphere link that is provided to you in an Email.

              1. Launch SAP Datasphere via SAP BTP Cockpit

              Click on “Instances and Subscriptions”, scroll down to “Instances” and then click on the link to launch SAP Datasphere.

                  2. Launch SAP Datasphere via the link from Email

                  After provisioning is finished, an email is sent to the email address that was used during the creation of the SAP Datasphere tenant. You can find the email by searching for “Welcome to SAP Datasphere” in your email client. There you will find a link to your SAP Datasphere tenant.

                  Rating: 0 / 5 (0 votes)

                  The post How to Provision a SAP Datasphere Free-Tier Instance appeared first on ERP Q&A.

                  ]]>
                  SAP RAP Unmanaged scenario example-Simplified https://www.erpqna.com/sap-rap-unmanaged-scenario-example-simplified/?utm_source=rss&utm_medium=rss&utm_campaign=sap-rap-unmanaged-scenario-example-simplified Thu, 04 Jul 2024 11:24:06 +0000 https://www.erpqna.com/?p=86138 SAP RAP (ABAP RESTful Application Programming Model) has two main flavors: managed and unmanaged. Let’s focus on the unmanaged version. Unmanaged SAP RAP refers to a development approach where developers have more control over the data persistence and business logic compared to the managed approach. Here are some key aspects Overall, unmanaged SAP RAP provides […]

                  The post SAP RAP Unmanaged scenario example-Simplified appeared first on ERP Q&A.

                  ]]>
                  SAP RAP (ABAP RESTful Application Programming Model) has two main flavors: managed and unmanaged. Let’s focus on the unmanaged version.

                  Unmanaged SAP RAP refers to a development approach where developers have more control over the data persistence and business logic compared to the managed approach. Here are some key aspects

                  1. Custom Logic: In unmanaged RAP, developers write their own custom logic for handling data retrieval, manipulation, and persistence. This gives more flexibility in how data is processed and stored.
                  2. Direct Database Access: Developers can directly access the database tables and define their own data models using Core Data Services (CDS) views or ABAP classes.
                  3. Explicit Service Definition: Unlike managed RAP, where service definitions are automatically generated based on annotations, unmanaged RAP requires developers to explicitly define service implementations and behaviors.
                  4. Manual CRUD Operations: CRUD (Create, Read, Update, Delete) operations need to be implemented explicitly in unmanaged RAP, giving full control over how data is managed.
                  5. Integration with Existing Systems: Unmanaged RAP is often used when integrating with existing systems or when there is a need for complex business logic that cannot be easily handled by the managed approach.
                  6. Flexibility: Developers have more freedom to implement complex validation rules, authorization checks, and other custom requirements directly in the application logic.

                  Overall, unmanaged SAP RAP provides a more hands-on approach to application development compared to the managed approach, allowing developers to leverage their expertise in ABAP programming and database handling while building modern RESTful APIs.

                  Top of Form

                  In this example, we will show a simple application for Employee build with RAP Unmanaged flavors.

                  Development steps.

                  To be summarized below object will be created for Unmanaged scenario.

                  Table ZT01_EMPLOYEE

                  Base CDS View Z_I_EMPLOYEES_U

                  Consumption CDS view Z_C_EMPLOYEES_U

                  Behavior Definition

                  Bottom of Form

                  Behavior definition

                  Implement the Create method

                  Implement Update Method

                  Implement Delete Method

                  Implement Adjust_Numbers method.

                  Implement Save method.

                  Test

                  1. Open the Application.

                  2. Click on Create. Give Input value and Create.

                  3. New Record got created.

                  4. Select any Row , click on Edit.

                  5. Change the value and Save.

                  6. Record will be updated.

                  7. Select the Rows and click on Delete.

                  8. Records will be deleted.

                  9. In the Database table also you can see the records.

                  So, all the CRUD operation is successful using RAP Unmanaged flavors.

                  Rating: 0 / 5 (0 votes)

                  The post SAP RAP Unmanaged scenario example-Simplified appeared first on ERP Q&A.

                  ]]>
                  ABAP RESTful Application Programming Model (RAP) https://www.erpqna.com/abap-restful-application-programming-model-rap/?utm_source=rss&utm_medium=rss&utm_campaign=abap-restful-application-programming-model-rap Sat, 29 Jun 2024 10:52:44 +0000 https://www.erpqna.com/?p=85983 Introduction The SAP landscape has evolved significantly, with businesses seeking simpler, more efficient solutions that offer excellent user experiences. Many organizations remain deeply embedded in the SAP ecosystem, primarily focusing on ABAP over other languages. So, is it possible to develop feature-rich applications without other frontend languages? Yes, leveraging ABAP with RAP (ABAP Restful Application […]

                  The post ABAP RESTful Application Programming Model (RAP) appeared first on ERP Q&A.

                  ]]>
                  Introduction

                  The SAP landscape has evolved significantly, with businesses seeking simpler, more efficient solutions that offer excellent user experiences. Many organizations remain deeply embedded in the SAP ecosystem, primarily focusing on ABAP over other languages. So, is it possible to develop feature-rich applications without other frontend languages? Yes, leveraging ABAP with RAP (ABAP Restful Application Programming) makes it possible.

                  Restful Application Programming is an ABAP programming model for creating business applications and services in an AS ABAP or BTP ABAP environment. RAP offers a standardized way of developing applications using Core Data Services (CDS), the modernized extended ABAP language, OData protocol, and the concept of business objects and services. RAP applications can only be created through ABAP development tools (ADT) and it’s available in SAP BTP ABAP Environment, SAP S/4 HANA Cloud, and AS ABAP >=7.56.

                  Before digging deeper into RAP, let’s explore CDS, annotations, and business services. To illustrate these concepts, let’s create a simple read-only list report application.

                  Developing an OData Service for simple list reporting

                  An OData service follows the best practices for developing and consuming RESTful APIs. This service can be used in SAP Fiori applications and can also be exposed as Web APIs. Below are the steps for creating a simple list report application:

                  Let’s explore each step in detail by creating the application.

                  Sample requirement: Create a read-only list report application which shows purchase order information.

                  • Create an interface CDS view which takes data from Purchase Order Header (EKKO) and Item (EKPO).

                  • Create two interface CDS views for showing master data of purchase order type and material details.

                  • Make an association between the purchase order type CDS view and material details CDS view from the purchase order header/item CDS view. The associated views will act as Search Help in the list report after applying the annotations.

                  • Create a consumption view on top of the Purchase Order Header/Item interface view (ZI_PURCHASE_ORDER_RVN).

                  The UI annotations needed for the application are written in the consumption CDS View or Metadata Extensions.

                  Now, we have the data model and the required annotations to manifest semantics for it. The next step is to create the OData service and binding the service.

                  To define a service, we first need to create a service definition. In service definition, we specify the CDS entities that need to be exposed. In this example, the gateway client is replaced by the service definition and service binding.

                  As a last step, create the service binding for service definition.

                  Set the binding type as OData V2 – UI, since this is an OData V2 service.

                  After publishing the service, the exposed entity and associated entities will be visible. Click on the entity and click the preview button to see the preview of the application.

                  Purchasing Doc Type Search Help

                  Material Search Help

                  Conclusion

                  This blog serves as an introduction to developing OData services for simple list reporting using the ABAP Restful Application Programming (RAP) model. By following the steps outlined, you can create a read-only list report application that showcases purchase order information. We have covered the basics of creating CDS views, defining and binding OData services, and incorporating annotations for enhanced functionality.

                  Rating: 0 / 5 (0 votes)

                  The post ABAP RESTful Application Programming Model (RAP) appeared first on ERP Q&A.

                  ]]>
                  Implement side-by-side extensibility with SAP Build Apps and SAP Process Automation in BTP onPremise https://www.erpqna.com/implement-side-by-side-extensibility-with-sap-build-apps-and-sap-process-automation-in-btp-onpremise/?utm_source=rss&utm_medium=rss&utm_campaign=implement-side-by-side-extensibility-with-sap-build-apps-and-sap-process-automation-in-btp-onpremise Fri, 14 Jun 2024 11:43:01 +0000 https://www.erpqna.com/?p=85528 SAP Build is SAP’s low-code solution, aimed at enabling business users to effortlessly construct business applications. It integrates SAP Build Apps, SAP Build Process Automation and SAP Build Work Zone into a cohesive development environment, introducing fresh innovations for swift app creation, process automation, and business site generation. Scenario: A business Partner(BP) fetched from S4Hana […]

                  The post Implement side-by-side extensibility with SAP Build Apps and SAP Process Automation in BTP onPremise appeared first on ERP Q&A.

                  ]]>
                  SAP Build is SAP’s low-code solution, aimed at enabling business users to effortlessly construct business applications. It integrates SAP Build Apps, SAP Build Process Automation and SAP Build Work Zone into a cohesive development environment, introducing fresh innovations for swift app creation, process automation, and business site generation.

                  Scenario:

                  A business Partner(BP) fetched from S4Hana on-premise system. Then BP Tax no will change in BTP App . Then Approver will Approve or Reject. If Approver approved, then BP Tax no will update in backend.

                  Systems:

                  In this topic we used below Technologies and Systems.

                  1. SAP Build Apps
                  2. SAP Process Automation
                  3. SAP S4Hana On-Premise as backend

                  Steps:

                  1. API from S4HANA system should be exposed to get consumed.

                    2. Then build a App in BTP.

                      3. Get the Entity from Backend destination and bind it to Data of the App.

                      4. Build the App with 2 pages. First page will show the BP Header data in List format.

                      Second Page with Input field.

                      5. Create an Action to post the changes using API.

                        6. Create a Workflow using Business Process Automation in BTP.

                        In this simple workflow it will be trigger first from APP after Save button. Then it will go to the approver . If Approver approve, update will happen in BP.

                        7. Deploy the app in SAP Build Work Zone.

                          Test results:

                          1. Open the App from SAP Build App preview or SAP Build Work zone. The BP no and Tax Id fetched from backend on the first page.

                            2. After click on respective line, 2nd page will display. Give the Tax no for update.

                            3. After Save , Workflow will be trigger.

                            4. It will shown in the My Inbox App of approvers with updated Tax id.

                            5. If User approve, Update will be triggered from Workflow. Workflow will be completed.

                            6. BP will be updated with new Tax no.

                            This document has been prepared only a summary to showcase the side by side extensibility. There ae some configurations need to be done in both SAP Build Apps, BTP and SAP Build work zone.

                            Rating: 0 / 5 (0 votes)

                            The post Implement side-by-side extensibility with SAP Build Apps and SAP Process Automation in BTP onPremise appeared first on ERP Q&A.

                            ]]>
                            Upload and modify OpenXML documents via RAP App in SAP BTP ABAP Environment https://www.erpqna.com/upload-and-modify-openxml-documents-via-rap-app-in-sap-btp-abap-environment/?utm_source=rss&utm_medium=rss&utm_campaign=upload-and-modify-openxml-documents-via-rap-app-in-sap-btp-abap-environment Thu, 13 Jun 2024 13:00:06 +0000 https://www.erpqna.com/?p=85513 Introduction In this blog post, I would like to share some insights for generating OpenXML documents by use of the RESTful Application Programming Model with Cloud-released development objects. With this app, you will be able to upload .docx templates and fill them with information from you CDS view (could be used for generating invoices, business […]

                            The post Upload and modify OpenXML documents via RAP App in SAP BTP ABAP Environment appeared first on ERP Q&A.

                            ]]>
                            Introduction

                            In this blog post, I would like to share some insights for generating OpenXML documents by use of the RESTful Application Programming Model with Cloud-released development objects. With this app, you will be able to upload .docx templates and fill them with information from you CDS view (could be used for generating invoices, business documents and so on…).

                            Prerequesites

                            • SAP BTP ABAP environment or an S/4 system to your disposal.
                            • Eclipse IDE installed on your local machine with the ABAP Development Tools.

                            Shortcut with abapGit:

                            For those who are using abapGit, feel free to check out the code from my GitHub repo!

                            Step 1:

                            Create a database table with the following config (hint: do not forget to generate custom domains for mime type and attachment type)

                            @EndUserText.label : 'Invoice for document generation'
                            @AbapCatalog.enhancement.category : #EXTENSIBLE_ANY
                            @AbapCatalog.tableCategory : #TRANSPARENT
                            @AbapCatalog.deliveryClass : #A
                            @AbapCatalog.dataMaintenance : #RESTRICTED
                            define table zmri_invoice {
                            
                              key client            : abap.clnt not null;
                              key invoice           : ebeln not null;
                              comments              : abap.char(30);
                              attachment            : zmriattachment;
                              mimetype              : zmimetype;
                              filename              : zfilename;
                              purchaseorder         : abap.char(30);
                              price                 : abap.dec(8,2);
                              local_created_by      : abp_creation_user;
                              local_created_at      : abp_creation_tstmpl;
                              local_last_changed_by : abp_locinst_lastchange_user;
                              local_last_changed_at : abp_locinst_lastchange_tstmpl;
                              last_changed_at       : abp_lastchange_tstmpl;
                            
                            }

                            Step 2:

                            Generate ABAP repository objects by right-clicking on the previously created database table.
                            Choose the ABAP RESTful Application Programming Model (OData UI Service) variant.

                            Step 3

                            Create a custom action in your Behavior Definition:

                            managed implementation in class ZBP_R_MRI_INVOICE unique;
                            strict ( 2 );
                            with draft;
                            define behavior for ZR_MRI_INVOICE alias ZrMriInvoice
                            persistent table ZMRI_INVOICE
                            draft table ZMRI_INVOIC000_D
                            etag master LocalLastChangedAt
                            lock master total etag LastChangedAt
                            authorization master( global )
                            
                            {
                              field ( mandatory : create )
                               Invoice;
                            
                              field ( readonly )
                               LocalCreatedBy,
                               LocalCreatedAt,
                               LocalLastChangedBy,
                               LocalLastChangedAt,
                               LastChangedAt;
                            
                              field ( readonly : update )
                               Invoice;
                            
                            
                              create;
                              update;
                              delete;
                            
                              action ( features : global ) createMSWordInvoice ;
                            
                              draft action Activate optimized;
                              draft action Discard;
                              draft action Edit;
                              draft action Resume;
                              draft determine action Prepare;
                            
                            
                            
                              mapping for ZMRI_INVOICE
                              {
                                Invoice = invoice;
                                Comments = comments;
                                Attachment = attachment;
                                Mimetype = mimetype;
                                Filename = filename;
                                PurchaseOrder = purchaseOrder;
                                Price = price;
                                LocalCreatedBy = local_created_by;
                                LocalCreatedAt = local_created_at;
                                LocalLastChangedBy = local_last_changed_by;
                                LocalLastChangedAt = local_last_changed_at;
                                LastChangedAt = last_changed_at;
                              }
                            }

                            Step 4:

                            Implement the custom action in your behaviour implementation class:

                            CLASS lhc_zr_mri_invoice DEFINITION INHERITING FROM cl_abap_behavior_handler.
                              PRIVATE SECTION.
                            
                                CLASS-DATA: mt_data TYPE zmri_invoice.
                            
                                DATA:
                                      lv_content   TYPE xstring,
                                      lo_zip       TYPE REF TO cl_abap_zip.
                            
                                METHODS:
                                  get_global_authorizations FOR GLOBAL AUTHORIZATION
                                    IMPORTING
                                    REQUEST requested_authorizations FOR ZrMriInvoice
                                    RESULT result,
                            
                                  get_global_features FOR GLOBAL FEATURES
                                    IMPORTING
                                    REQUEST requested_features FOR ZrMriInvoice
                                    RESULT result,
                            
                                  createMSWordInvoice FOR MODIFY
                                    IMPORTING keys FOR ACTION ZrMriInvoice~createMSWordInvoice.
                            
                            ENDCLASS.
                            
                            CLASS lhc_zr_mri_invoice IMPLEMENTATION.
                            
                              METHOD get_global_authorizations.
                            *  This method does not need an implementation
                              ENDMETHOD.
                            
                              METHOD createMSWordInvoice.
                            
                            *     Select document to be filled
                                SELECT * FROM zc_mri_invoice
                                 FOR ALL ENTRIES IN @keys
                                 WHERE invoice      = @keys-invoice
                                 INTO CORRESPONDING FIELDS OF @MT_data.
                                ENDSELECT.
                            
                            *     Create zip class instance
                                lo_zip = NEW cl_abap_zip( ).
                            
                            *     Search for main document part
                                DATA lv_index TYPE string VALUE 'word/document.xml'.
                            
                            *     Load attachment into zip class object
                                lo_zip->load( zip = mt_data-attachment check_header = abap_false ).
                            
                            *     Fetch the binaries of the XML part in the attachment
                                lo_zip->get(
                                EXPORTING
                                  name   = lv_index
                                IMPORTING
                                  content = lv_content
                                ).
                            
                            
                            * Convert the binaries of the xml into a string
                                DATA(lv_string) = xco_cp=>xstring( lv_content
                                  )->as_string( xco_cp_character=>code_page->utf_8
                                  )->value.
                            
                            * Search for the text to be replaced and fill with the information in your data set
                                REPLACE FIRST OCCURRENCE OF '&lt;InvoiceNumber&gt;' IN lv_string
                                WITH mt_data-Invoice.
                            
                                REPLACE FIRST OCCURRENCE OF '&lt;Purchase Order&gt;' IN lv_string
                                WITH mt_data-PurchaseOrder.
                            
                                REPLACE FIRST OCCURRENCE OF '&lt;Comments&gt;' IN lv_string
                                WITH mt_data-Comments.
                            
                                DATA lv_price TYPE string.
                                lv_price = mt_data-Price.
                            
                                REPLACE FIRST OCCURRENCE OF '&lt;Price&gt;' IN lv_string
                                WITH lv_price.
                            
                            * Convert the changed XML string into binaries
                                DATA(lv_new_content) = xco_cp=>string( lv_string )->as_xstring( xco_cp_character=>code_page->utf_8
                                )->value.
                            
                            * Delete "old" main document part from the zip file
                                lo_zip->delete(
                                EXPORTING
                                  name   = lv_index
                                ).
                            
                            * Add "new" main document part to the zip file
                                lo_zip->add(
                                EXPORTING
                                  name   = lv_index
                                  content = lv_new_content
                                ).
                            
                            * Save the new zip file
                                DATA(lv_new_file) = lo_zip->save( ).
                            
                            * Upload changed docx file
                                MODIFY ENTITIES OF zr_mri_invoice IN LOCAL MODE ENTITY ZrMriInvoice
                                  UPDATE SET FIELDS WITH
                                  VALUE #( (
                                      Invoice = mt_data-Invoice
                                      Attachment = lv_new_file
                                  )  )
                                FAILED failed.
                            
                                APPEND VALUE #( %msg = new_message_with_text( severity = if_abap_behv_message=>severity-success text = 'Template successfully filled...' ) ) TO reported-ZrMriInvoice.
                              ENDMETHOD.
                            
                              METHOD get_global_features.
                            * This method does not need to be implemented
                              ENDMETHOD.
                            
                            
                            ENDCLASS.

                            Explanation: In this implementation class, the cl_abap_zip class (which is released for cloud development) is used to load the .docx template. If you didn’t already know, a .docx file is basically a ZIP-file. In order to get the main document part, we need to fetch the “word/document.xml” file within the zip object by applying the lo_zip->get() method. This method returns an XSTRING which has to be converted into an UTF-8 encoded string, for us to modify the content of the main document part. For the binary-to-string conversions the xco_cp class is used, which is part of the XCO library (I can only recommend using this library as it has some great features). Afterwards the converted XML-string has to be modified with the invoice details from your CDS view. The modified XML-string has to be converted back into binaries, by use of the same class. The last step is to delete the “old” main document part from the zip object and add the new document content to the zip object. Now update the attachment field in your CDS entity and that’s it. Your app should now be able to populate a .docx-file with information from your CDS view.

                            Step 5:

                            Create a metadata extension and a service binding for your Fiori Frontend and test the application:

                            @Metadata.layer: #CORE
                            @UI: { headerInfo: {
                            typeName: 'Invoice',
                            typeNamePlural: 'Invoices',
                            title: { type: #STANDARD, value: 'Invoice' },
                                     description: { type: #STANDARD, value: 'Invoice' } },
                                     presentationVariant: [{
                                     sortOrder: [{ by: 'Invoice', direction: #ASC }],
                                     visualizations: [{type: #AS_LINEITEM}] }] }
                            annotate view ZC_MRI_INVOICE with
                            {
                              .facet: [    {
                                            label: 'General Information',
                                            id: 'GeneralInfo',
                                            type: #COLLECTION,
                                            position: 10
                                            },
                                                 { id:            'Invoicedet',
                                                purpose:       #STANDARD,
                                                type:          #IDENTIFICATION_REFERENCE,
                                                label:         'Invoice Details',
                                                parentId: 'GeneralInfo',
                                                position:      10 } ]
                            
                              : { lineItem:       [ { position: 10, importance: #HIGH , label: 'Invoice Number'} ] ,
                                      identification: [ { position: 10 , label: 'Invoice Number' } ] }
                              Invoice;
                              : { lineItem:       [ { position: 20, importance: #HIGH , label: 'Purchase Order'} ] ,
                                       identification: [ { position: 20 , label: 'Purchase Order Number' } ] }
                              PurchaseOrder;
                              : { lineItem:       [ { position: 20, importance: #HIGH , label: 'Price'} ] ,
                                       identification: [ { position: 20 , label: 'Price' } ] }
                              Price;
                              : { lineItem:       [ { position: 20, importance: #HIGH , label: 'Comments'} ] ,
                                       identification: [ { position: 20 , label: 'Comments' } ] }
                              Comments;
                              :
                              { lineItem:       [ { position: 30, importance: #HIGH , label: 'Attachment'}, { type: #FOR_ACTION, dataAction: 'createMSWordInvoice' , label: 'Create Invoice' } ], 
                                identification: [ { position: 20 , label: 'Attachment' }] 
                              }
                              Attachment;
                            
                              .hidden: true
                              MimeType;
                            
                              .hidden: true
                              Filename;
                            
                            
                            }

                            Test the application by creating an entry and uploading a docx-template.

                            The template could look something like this:

                            Now select the entry and use the custom action to fill the template with your data:

                            After the success message, click on the attachment (template.docx) and verify that the placeholders have been filled:

                            Rating: 0 / 5 (0 votes)

                            The post Upload and modify OpenXML documents via RAP App in SAP BTP ABAP Environment appeared first on ERP Q&A.

                            ]]>
                            SAP AI Technologies Evolution. Seamless Transition from SAP CAI to Skybuffer AI on SAP BTP https://www.erpqna.com/sap-ai-technologies-evolution-seamless-transition-from-sap-cai-to-skybuffer-ai-on-sap-btp/?utm_source=rss&utm_medium=rss&utm_campaign=sap-ai-technologies-evolution-seamless-transition-from-sap-cai-to-skybuffer-ai-on-sap-btp Wed, 29 May 2024 10:23:59 +0000 https://www.erpqna.com/?p=85105 Introduction Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our Conversational AI development, a journey we embarked on in 2018. Our solution now addresses a wide range of AI needs, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG) Initially integrating […]

                            The post SAP AI Technologies Evolution. Seamless Transition from SAP CAI to Skybuffer AI on SAP BTP appeared first on ERP Q&A.

                            ]]>
                            Introduction

                            Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our Conversational AI development, a journey we embarked on in 2018. Our solution now addresses a wide range of AI needs, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG)

                            Initially integrating SAP Conversational AI, Skybuffer has been keenly tracking SAP’s strategic AI roadmap. In developing the Skybuffer AI technological environment, our goal has been to ensure our product is compatible with SAP’s cutting-edge AI technologies while offering seamless transition support.

                            Challenge

                            Back in 2018, SAP introduced the Conversational AI tool, revolutionizing the way businesses build AI assistants and chatbots. Many innovative companies seized this opportunity, integrating Conversational AI into their business processes and using these chatbots in their B2B, B2E and even B2C scenarios.

                            However, as SAP’s AI strategy evolved, the decision was made to sunset SAP Conversational AI. Many companies are keen to protect their investments and retain their Conversational AI-based developments. These systems have been meticulously crafted and are being used productively, making it essential to find a balance between adopting new SAP AI technologies and maintaining the value of their existing solutions.

                            The challenge lies in balancing the transition to new technologies while maintaining the productivity and value of the existing SAP Conversational AI solutions.

                            Solution

                            Skybuffer AI, a robust all-in-one AI mastering tool, offers a seamless transition mechanism for any SAP CAI chatbot to our new universal AI platform available on SAP BTP. With just one click, you can migrate your SAP CAI chatbot to Skybuffer AI deployed into your SAP BTP instance. Here’s a quick overview of the steps to transition your bot to Skybuffer AI on SAP BTP in just 5-10 minutes.

                            Step 1: Export the chatbot from your SAP CAI using SAP standard functionality.

                            Picture 1. SAP Conversational AI export interface

                            Step 2: Call the Skybuffer AI API secured by the oAuth2 protocol pointing to the Skybuffer AI application deployed on your SAP BTP account and feed exported from SAP CAI bot files.

                            Picture 2. Skybuffer AI API on SAP BTP import interface for SAP CAI development

                            Step 3: Voila, your built on SAP CAI AI assistant (bot) is now available in AI Model Configuration application at Skybuffer AI Launchpad

                            Picture 3. AI Model overview once it is imported to Skybuffer AI
                            Picture 4. Drill down to the skill level on Action Server

                            Step 4: Now you can Train and Deploy AI models via simple and intuitive Fiori applications of Skybuffer AI.

                            Picture 5. Train and Deploy functionality

                            Step 5: Make basic channel settings within the Communication Channels application from Skybuffer AI Launchpad.

                            Picture 6. Communication channel setup for AI model

                            Step 6. Your new level AI Model is now operational within Skybuffer AI. Use Web Chat Preview function to test your webchat-based AI Model at once.

                            Picture 7. Web Chat Preview function of Skybuffer AI to test an AI model

                            Outcome

                            The development based on SAP Conversational AI is secure and ready for further enhancement within the user-friendly Skybuffer AI solution. This solution seamlessly integrates all the cutting-edge SAP Business AI capabilities of SAP BTP, empowering your business to be more innovative and future-ready.

                            Rating: 0 / 5 (0 votes)

                            The post SAP AI Technologies Evolution. Seamless Transition from SAP CAI to Skybuffer AI on SAP BTP appeared first on ERP Q&A.

                            ]]>