https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-HANA-blog-posts.xml SAP Community - SAP HANA 2026-07-24T20:01:13.962840+00:00 python-feedgen SAP HANA blog posts in SAP Community https://community.sap.com/t5/technology-blog-posts-by-members/how-i-used-microsoft-copilot-and-azure-services-to-improve-sap-s-4hana/ba-p/14423561 How I Used Microsoft Copilot and Azure Services to Improve SAP S/4HANA Project Tracking 2026-06-19T20:59:14.188000+02:00 venkatamandavilli https://community.sap.com/t5/user/viewprofilepage/user-id/2291537 <H1 id="toc-hId-1689101439">How I Used Microsoft Copilot and Azure Services to Improve SAP S/4HANA Project Tracking and Governance</H1><H2 id="toc-hId-1621670653">Introduction</H2><P>One of the biggest challenges in large SAP S/4HANA transformation programs is not the implementation itself—it is maintaining visibility across hundreds of project activities, risks, defects, decisions, and action items spread across multiple teams and systems.</P><P>During global SAP transformation programs, project information is often distributed across several platforms:</P><UL><LI><P>Azure DevOps for defects and sprint activities</P></LI><LI><P>Microsoft Project for schedules</P></LI><LI><P>ServiceNow for incidents and change requests</P></LI><LI><P>Microsoft Teams for collaboration</P></LI><LI><P>SharePoint for project documentation</P></LI><LI><P>SAP Solution Manager or Cloud ALM for project execution activities</P></LI></UL><P>As project managers, we spend significant time consolidating information from these sources before we can make informed decisions.</P><P>Recently, I explored how Microsoft Copilot combined with Azure services can help project managers improve governance, risk management, reporting, and executive visibility throughout an SAP transformation lifecycle.</P><H2 id="toc-hId-1425157148">The Traditional Project Tracking Challenge</H2><P>In a typical SAP S/4HANA transformation, a weekly status review often requires collecting information from multiple workstreams:</P><UL><LI><P>Program Management Office</P></LI><LI><P>Data Migration Team</P></LI><LI><P>Integration Team</P></LI><LI><P>Testing Team</P></LI><LI><P>Security Team</P></LI><LI><P>Change Management Team</P></LI><LI><P>Business Process Owners</P></LI></UL><P>The challenge is that critical project information exists in multiple repositories.</P><H3 id="toc-hId-1357726362">Typical Information Landscape</H3><PRE><CODE>Azure DevOps │ ├── Defects ├── User Stories └── Sprint Progress Microsoft Project │ ├── Project Schedule ├── Milestones └── Dependencies ServiceNow │ ├── Incidents ├── Changes └── Service Requests Microsoft Teams │ ├── Meetings ├── Discussions └── Action Items SharePoint │ ├── Documents ├── RAID Logs └── Status Reports</CODE></PRE><P>As a result, project managers spend considerable effort gathering information instead of analyzing risks and making decisions.</P><H2 id="toc-hId-1032130138">Introducing Microsoft Copilot into SAP Project Governance</H2><P>Microsoft Copilot provides an opportunity to transform project management activities from manual reporting to intelligent project governance.</P><P>Rather than searching through multiple systems, project leaders can ask questions in natural language such as:</P><UL><LI><P>Which workstreams are currently behind schedule?</P></LI><LI><P>What are the highest-priority risks this week?</P></LI><LI><P>Which defects remain open beyond SLA?</P></LI><LI><P>What actions were assigned during steering committee meetings?</P></LI><LI><P>Which milestones are at risk for the upcoming release?</P></LI></UL><P>Instead of manually preparing reports, Copilot can help summarize information from connected project repositories.</P><H2 id="toc-hId-835616633">Architecture Overview</H2><P>The following conceptual architecture demonstrates how Azure services and Copilot can support SAP project tracking.</P><H3 id="toc-hId-768185847">Architecture Diagram</H3><PRE><CODE>+---------------------------------------------------+ | SAP Transformation Program | +---------------------------------------------------+ Data Sources ----------------------------------------------------- Azure DevOps Microsoft Project | | | | +----------+---------+ | | ServiceNow SharePoint Teams | | | +-----------+----------+ | v +--------------------------------------+ | Microsoft Azure Services | +--------------------------------------+ | Azure Data Factory | | Azure Logic Apps | | Azure AI Services | | Azure Storage | | Azure Data Lake | +--------------------------------------+ | v +--------------------------------------+ | Microsoft Copilot | +--------------------------------------+ | Risk Summarization | | Defect Trend Analysis | | Executive Status Reporting | | Action Item Tracking | | Meeting Summaries | +--------------------------------------+ | v +--------------------------------------+ | SAP Program Leadership Dashboard | +--------------------------------------+ | PMO | | Steering Committee | | Business Stakeholders | | Program Leadership | +--------------------------------------+</CODE></PRE><H2 id="toc-hId-442589623">Use Case 1: Automated Executive Status Reporting</H2><P>One of the most time-consuming activities for project managers is preparing executive status reports.</P><P>Traditionally, project managers gather information from multiple teams and manually create PowerPoint presentations.</P><P>With Copilot, project leaders can generate summaries based on:</P><UL><LI><P>Open risks</P></LI><LI><P>Defect trends</P></LI><LI><P>Milestone completion</P></LI><LI><P>Change requests</P></LI><LI><P>Resource constraints</P></LI></UL><P>Example prompt:</P><P>"Summarize all high-priority risks, critical defects, and delayed milestones for the SAP S/4HANA transformation program during the past seven days."</P><P>This significantly reduces manual reporting effort and allows project managers to focus on decision-making rather than document preparation.</P><H2 id="toc-hId-246076118">Use Case 2: Risk Monitoring and Early Warning Indicators</H2><P>Risk management is critical during SAP transformation programs.</P><P>In one project, recurring defects appeared during integration testing across multiple regions. Individually, each defect seemed manageable, but collectively they indicated a broader data quality issue.</P><P>Using AI-assisted analysis, project teams can identify:</P><UL><LI><P>Recurring defect patterns</P></LI><LI><P>Escalating risks</P></LI><LI><P>Delayed action items</P></LI><LI><P>Resource bottlenecks</P></LI><LI><P>Testing readiness concerns</P></LI></UL><H3 id="toc-hId-178645332">Example Risk Analysis Flow</H3><PRE><CODE>Defect Data + Meeting Notes + Action Items + Schedule Updates | v Azure AI Analysis | v Risk Pattern Detection | v Copilot Summary | v Project Leadership Alert</CODE></PRE><P>This approach helps identify potential problems before they impact major milestones.</P><H2 id="toc-hId-200303465">Use Case 3: Meeting Action Tracking</H2><P>A common challenge in SAP programs is following up on action items generated during workshops and governance meetings.</P><P>Copilot can help by:</P><UL><LI><P>Summarizing meeting discussions</P></LI><LI><P>Extracting action items</P></LI><LI><P>Identifying owners</P></LI><LI><P>Tracking due dates</P></LI><LI><P>Highlighting overdue actions</P></LI></UL><P>Instead of manually reviewing meeting notes, project managers receive a consolidated action dashboard.</P><H2 id="toc-hId-3789960">Use Case 4: Defect Trend Analysis</H2><P>During testing cycles, hundreds or even thousands of defects may be logged.</P><P>Copilot can assist by identifying:</P><UL><LI><P>Defect hotspots</P></LI><LI><P>Repeated root causes</P></LI><LI><P>Process areas generating the highest defect volume</P></LI><LI><P>Regional implementation concerns</P></LI></UL><P>This helps testing managers prioritize corrective actions more effectively.</P><H2 id="toc-hId--192723545">Lessons Learned</H2><P>Through my experience managing enterprise transformation programs, I have learned that AI does not replace project managers.</P><P>Instead, it enhances their ability to:</P><UL><LI><P>Process information faster</P></LI><LI><P>Identify risks earlier</P></LI><LI><P>Improve governance visibility</P></LI><LI><P>Reduce manual reporting effort</P></LI><LI><P>Focus on strategic decision-making</P></LI></UL><P>The most successful approach combines:</P><UL><LI><P>Human expertise</P></LI><LI><P>Business process knowledge</P></LI><LI><P>Governance discipline</P></LI><LI><P>AI-assisted insights</P></LI></UL><H2 id="toc-hId--389237050">Conclusion</H2><P>The future of SAP project management is not about replacing project managers with AI. It is about empowering project leaders with better visibility and faster access to information.</P><P>By combining Microsoft Copilot with Azure services, organizations can transform project tracking from a manual reporting exercise into a proactive governance capability.</P><P>For SAP S/4HANA transformation programs, this means improved transparency, faster decision-making, better risk management, and ultimately a higher probability of successful program delivery.</P><P>As SAP transformations continue to grow in complexity, AI-powered project governance will become an increasingly important capability for program leaders seeking to deliver successful business outcomes.</P> 2026-06-19T20:59:14.188000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/going-beyond-the-tip-of-the-iceberg-with-sap-hana-cloud-sql-on-files/ba-p/14413871 Going Beyond the Tip of the Iceberg with SAP HANA Cloud SQL on Files 2026-06-24T04:34:53.984000+02:00 SeungjoonLee https://community.sap.com/t5/user/viewprofilepage/user-id/204092 <TABLE border="1" width="100%"><TBODY><TR><TD><STRONG>Related Blogs:<BR /></STRONG><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/unlocking-the-true-potential-of-data-in-files-with-sap-hana-database-sql-on/ba-p/13861585" target="_blank">Unlocking the True Potential of Data in Files with SAP HANA Database SQL on Files in SAP HANA Cloud</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/exploring-new-sql-on-files-use-cases-with-sap-hana-cloud-qrc-04-2024-and/ba-p/14076223" target="_self">Exploring New SQL on Files Use Cases with SAP HANA Cloud QRC 04/2024 and QRC 01/2025</A></LI><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/accelerating-your-analytics-with-delta-table-replication-into-sap-hana/ba-p/14290281" target="_self">Accelerating Your Analytics with Delta Table Replication into SAP HANA Cloud</A></LI></UL></TD></TR></TBODY></TABLE><P>As I mentioned in my previous blogs, SQL on Files, a capability of SAP HANA database in SAP HANA Cloud, has been continuously expanding since SAP HANA Cloud QRC 3/2024. We started with native read-only access to CSV, Parquet, and Delta tables in <A href="https://help.sap.com/docs/hana-cloud-data-lake/user-guide-for-data-lake-files/sap-hana-cloud-data-lake-administration-for-data-lake-files" target="_self" rel="noopener noreferrer">SAP HANA Cloud, data lake Files</A>. We then extended this access to external object storages (Amazon S3, Azure Blob/ADLS Gen2, Google Cloud Storage) and external Delta Sharing in QRC 4/2024. Most recently, we introduced Delta table-to-HANA replication in QRC 4/2025.</P><P>With SAP HANA Cloud QRC 2/2026, I'm pleased to announce that the journey continues, and this time the spotlight is on <STRONG>Apache Iceberg</STRONG>, the industry-standard open table format that has rapidly become a cornerstone of modern data lakehouse architectures. While Iceberg support has been quietly maturing in SAP HANA Cloud over the last few quarters, this is the first blog dedicated to telling the full story end-to-end.</P><P>In a nutshell, here is what SAP HANA Cloud now offers for Apache Iceberg, cumulatively from QRC 3/2025 through QRC 2/2026:</P><UL><LI><STRONG>Direct read-only access to Apache Iceberg tables</STRONG> in object storage via the <EM>file</EM> adapter, including time-travel queries (QRC 3/2025).</LI><LI><STRONG>Snapshot replica toggling support</STRONG> for Apache Iceberg virtual tables (QRC 1/2026).</LI><LI><STRONG>Data Page V2 (DATA_PAGE_V2) support</STRONG> in the Parquet reader, aligning SAP HANA Cloud with the latest Parquet ecosystem (QRC 1/2026).</LI><LI><STRONG>Direct read-only access to Apache Iceberg REST Catalogs</STRONG> via the new <EM>icebergcatalog</EM> adapter. QRC 1/2026 introduced the adapter with Cloudera and Databricks running on AWS as the initially certified providers, and QRC 2/2026 extends the multi-cloud coverage to Azure and GCP for Databricks while additionally certifying Snowflake across AWS, Azure, and GCP. Cloudera certification on Azure and GCP is planned for a future release.</LI><LI><STRONG>AliCloud Object Storage Service (OSS)</STRONG> added to the list of supported external object storages (QRC 2/2026).</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Overview.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/423444i566EB6374B5FACF2/image-size/large?v=v2&amp;px=999" role="button" title="Overview.png" alt="Overview.png" /></span></P><P>Alright, with these points in mind, let's dive deeper into the details with some examples.</P><P>&nbsp;</P><H3 id="toc-hId-1946346270">Apache Iceberg via the <EM>file</EM> Adapter</H3><P>Starting with SAP HANA Cloud QRC 3/2025, SQL on Files began supporting Apache Iceberg as an additional file format on top of the existing CSV, Parquet, and Delta table support. As highlighted in my <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/unlocking-the-true-potential-of-data-in-files-with-sap-hana-database-sql-on/ba-p/13861585" target="_self">first SQL on Files blog</A> and <A href="https://community.sap.com/t5/technology-blogs-by-sap/exploring-new-sql-on-files-use-cases-with-sap-hana-cloud-qrc-04-2024-and/ba-p/14076223" target="_self">follow-up blog</A>, the <EM>file</EM> adapter provides direct read-only access to files in <A href="https://help.sap.com/docs/hana-cloud-data-lake/user-guide-for-data-lake-files/sap-hana-cloud-data-lake-administration-for-data-lake-files" target="_self" rel="noopener noreferrer">SAP HANA Cloud, data lake Files</A> or in supported external object storages. With Iceberg now in the mix, customers can query Iceberg tables sitting on object storage without any data movement or ingestion.</P><P>Since Apache Iceberg is an open table format, the way of creating a virtual table is similar to Delta tables, where you only need to point the virtual table to the root of the Iceberg table:</P><pre class="lia-code-sample language-sql"><code>-- create a virtual table by pointing to an apache iceberg table CREATE VIRTUAL TABLE DEMO.ICEBERG_ORDERS AT "demo-hdlf_rs"."/iceberg/orders/" AS ICEBERG;</code></pre><P>A few things worth knowing about this support:</P><UL><LI>Both Iceberg <STRONG>v1 (Copy-on-Write)</STRONG> and <STRONG>v2 (Merge-on-Read)</STRONG> are supported for read-only access.</LI><LI>Time-travel queries are supported, similar to Delta tables, via either snapshot ID or timestamp:</LI></UL><pre class="lia-code-sample language-sql"><code>-- time travel by snapshot id SELECT * FROM DEMO.ICEBERG_ORDERS FOR VERSION AS OF '2953155114686890267'; -- time travel by timestamp SELECT * FROM DEMO.ICEBERG_ORDERS FOR SYSTEM_TIME AS OF '2025-04-08 07:43:31.793000000';</code></pre><UL><LI>Two new built-in functions help you explore Iceberg metadata directly from SAP HANA Cloud:</LI></UL><TABLE border="1" width="100%"><TBODY><TR><TD><STRONG>Function</STRONG></TD><TD><STRONG>Returns</STRONG></TD></TR><TR><TD width="50%">GET_ICEBERG_TABLE_SNAPSHOTS</TD><TD width="50%">Snapshot IDs, create time, sequence number, record count, file count, total file size</TD></TR><TR><TD width="50%">GET_VIRTUAL_TABLE_FILE_PARTITIONS</TD><TD width="50%">Partition values, file count, total file size per partition</TD></TR></TBODY></TABLE><UL><LI>The existing GET_REMOTE_SOURCE_FILE_COLUMNS built-in procedure has been extended to retrieve column information from Iceberg tables as well.</LI></UL><P><STRONG>Important:</STRONG> Apache Iceberg metadata stores absolute table paths. Simply copying Iceberg files from one location to another will cause inconsistencies, and creating virtual tables on the copied files will not work. Always create or migrate Iceberg tables using a proper Iceberg-compatible engine.</P><P>Please refer to the links below for further details.</P><UL><LI>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/create-virtual-table" target="_self" rel="noopener noreferrer">Create a Virtual Table</A></LI><LI>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/get-iceberg-table-snapshots" target="_self" rel="noopener noreferrer">GET_ICEBERG_TABLE_SNAPSHOTS Function</A></LI><LI>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/get-virtual-table-file-partitions" target="_self" rel="noopener noreferrer">GET_VIRTUAL_TABLE_FILE_PARTITIONS Function</A></LI><LI>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/get-remote-source-file-columns" target="_self" rel="noopener noreferrer">GET_REMOTE_SOURCE_FILE_COLUMNS</A></LI></UL><P>&nbsp;</P><H3 id="toc-hId-1749832765">Apache Iceberg REST Catalog via the <EM>icebergcatalog</EM> Adapter</H3><P>Reading Iceberg tables directly from object storage with the <EM>file</EM> adapter is great for self-managed scenarios. However, in real-world enterprise lakehouses, Iceberg tables are usually managed by an <STRONG>Iceberg REST Catalog</STRONG> server, for example, Databricks Unity Catalog, Cloudera Data Platform, or Snowflake. Customers told us that, for production-grade integration, the catalog-based approach is what they consider enterprise-ready: it centralizes table management, access control, and metadata governance.</P><P>That's where the new <EM>icebergcatalog</EM> adapter comes in. Starting with SAP HANA Cloud QRC 1/2026, SQL on Files supports direct read-only access to external Apache Iceberg REST Catalogs, with Cloudera and Databricks running on AWS as the initially certified providers. With QRC 2/2026, the multi-cloud coverage is extended to Azure (ADLS Gen2) and GCP (GCS) for Databricks, and Snowflake is added as an additionally certified provider across AWS, Azure, and GCP. Cloudera certification on Azure and GCP is planned for a future release.</P><P>The way to create a remote source to an Iceberg REST Catalog follows the official Apache Iceberg REST Catalog specification with bearer-token (OAuth) authentication:</P><pre class="lia-code-sample language-sql"><code>-- create a remote source to an iceberg rest catalog CREATE REMOTE SOURCE &lt;remote_source_name&gt; ADAPTER "icebergcatalog" CONFIGURATION ' provider=databricks; endpoint=&lt;rest_endpoint&gt;;' WITH CREDENTIAL TYPE 'OAUTH' USING 'access_token=&lt;bearer_token&gt;';</code></pre><P>Once the remote source is created, virtual tables are created in the same way as with other SAP HANA smart data access (a.k.a., SDA) adapters by pointing to the catalog → namespace → table:</P><pre class="lia-code-sample language-sql"><code>-- create a virtual table on a table exposed via the iceberg rest catalog CREATE VIRTUAL TABLE DEMO.VT_ORDERS AT "&lt;remote_source_name&gt;"."&lt;NULL&gt;"."&lt;namespace&gt;"."&lt;table&gt;";</code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Iceberg Catalog.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/423482i9CDBF8F4B7D99209/image-size/large?v=v2&amp;px=999" role="button" title="Iceberg Catalog.png" alt="Iceberg Catalog.png" /></span></P><P><SPAN>A few important notes on the certification scope and authentication:</SPAN></P><UL><LI><SPAN>The <EM>icebergcatalog</EM> adapter is designed to work with <STRONG>any spec-compliant Apache Iceberg REST Catalog</STRONG>. In theory, any REST catalog that follows the official spec and bearer-token authentication should work.</SPAN></LI><LI><SPAN>However, because small differences in authentication flows or vendor-specific extensions can cause unexpected issues, SAP officially certifies only a defined set of Iceberg REST Catalog providers per QRC, as summarized below. Other REST catalogs may work but are not officially certified.<BR /></SPAN></LI></UL><TABLE border="1" width="100%"><TBODY><TR><TD width="25%"><STRONG>Provider</STRONG></TD><TD width="25%"><STRONG>AWS</STRONG></TD><TD width="25%"><STRONG>Azure (ADLS Gen2)</STRONG></TD><TD width="25%"><STRONG>GCP (GCS)</STRONG></TD></TR><TR><TD width="25%">Cloudera</TD><TD width="25%">Certified (QRC 1/2026)</TD><TD width="25%">Planned</TD><TD width="25%">Planned</TD></TR><TR><TD width="25%">Databricks</TD><TD width="25%">Certified&nbsp;(QRC 1/2026)</TD><TD width="25%">Certified (QRC 2/2026)</TD><TD width="25%">Certified (QRC 2/2026)</TD></TR><TR><TD width="25%">Snowflake</TD><TD width="25%">Certified&nbsp;(QRC 2/2026)</TD><TD width="25%">Certified (QRC 2/2026)</TD><TD width="25%">Certified (QRC 2/2026)</TD></TR></TBODY></TABLE><UL><LI><SPAN>Authentication is currently limited to <STRONG>bearer-token (OAuth)</STRONG>. Full credential flows (e.g., automatic token acquisition and refresh by negotiating directly with the identity provider) are not implemented inside SAP HANA Cloud. Instead, the credential flow is expected to live in the application layer, while the database layer simply consumes the access token.</SPAN></LI></UL><P><SPAN>For renewing access tokens, the SET SESSION CREDENTIAL statement can be used to inject a freshly obtained access token from the application layer:</SPAN></P><pre class="lia-code-sample language-sql"><code>-- renew the access token from the application layer SET SESSION CREDENTIAL FOR REMOTE SOURCE &lt;remote_source_name&gt; TYPE 'OAUTH' USING 'access_token=&lt;access_token_string&gt;';</code></pre><P><SPAN>In other words, our expectation is that the credential flows are implemented in the application layer, while the database layer supports the way of renewing access tokens.</SPAN></P><P><SPAN>Please refer to the links below for further details.</SPAN></P><UL><LI><SPAN>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/create-apache-iceberg-catalog-remote-source" target="_self" rel="noopener noreferrer">Create an Apache Iceberg Catalog Remote Source</A></SPAN></LI></UL><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-1553319260"><SPAN>More Improvements Worth Highlighting</SPAN></H3><P><SPAN>Beyond the two main pillars above, several smaller but meaningful improvements landed alongside this Iceberg journey. They are bundled here for completeness.</SPAN></P><H4 id="toc-hId-1485888474"><SPAN>Snapshot replica toggling for Apache Iceberg (QRC 1/2026)</SPAN></H4><P><SPAN>For customers who want better query performance on Iceberg tables, snapshot replica toggling is now supported when the source is an Apache Iceberg table. As with other SDA-based virtual tables, you can toggle a virtual table to a snapshot replica by adding a snapshot replica with the ALTER VIRTUAL TABLE statement, then refresh or drop it as needed:<BR /></SPAN></P><pre class="lia-code-sample language-sql"><code>-- toggle to a snapshot replica ALTER VIRTUAL TABLE DEMO.VT_ORDERS ADD SHARED SNAPSHOT REPLICA; -- refresh the snapshot replica with the latest data from the source ALTER VIRTUAL TABLE DEMO.VT_ORDERS REFRESH SNAPSHOT REPLICA; -- delete the replica ALTER VIRTUAL TABLE DEMO.VT_ORDERS DROP REPLICA;</code></pre><P><SPAN>A couple of important constraints to keep in mind:</SPAN></P><UL><LI><SPAN>Snapshot replica toggling always creates a full snapshot of the data the virtual table is pointing to. This means it does not help if the target Iceberg table holds a vast volume of data that cannot be replicated in full into SAP HANA Cloud. In such cases, the recommended approach is to keep federation only, or wait for the upcoming chunk-based replication discussed in <STRONG>Looking Ahead</STRONG>.</SPAN></LI><LI><SPAN>Unlike Delta tables, real-time replication via toggling is not yet supported for Iceberg. Real-time replication on Iceberg will become available together with the upcoming interval-based CDC support (see <STRONG>Looking Ahead</STRONG>).</SPAN></LI></UL><H4 id="toc-hId-1289374969"><SPAN>Data Page V2 support in the Parquet reader (QRC 1/2026)</SPAN></H4><P><SPAN>The Parquet ecosystem has been moving toward <STRONG>Data Page V2</STRONG> (page_type=DATA_PAGE_V2), and several modern engines, now produce Parquet files using this newer page format. Starting with QRC 1/2026, the SAP HANA Cloud Parquet reader supports DATA_PAGE_V2, ensuring smooth interoperability with these engines. This is a quiet but important enabler for the full Iceberg story, especially for the Apache Iceberg REST Catalog scenario with Snowflake-managed Iceberg.</SPAN></P><H4 id="toc-hId-1092861464"><SPAN>AliCloud Object Storage Service (OSS) support (QRC 2/2026)</SPAN></H4><P><SPAN>The list of supported external object storages keeps growing. With QRC 2/2026, AliCloud Object Storage Service (OSS) joins Amazon S3, Azure Blob/ADLS Gen2, and Google Cloud Storage as a first-class storage option for SQL on Files.</SPAN></P><P><SPAN>However, please note one limitation specific to AliCloud deployments:</SPAN></P><UL><LI>SQL on Files queries accessing Google Cloud Storage on AliCloud Cloud deployments are not supported.</LI></UL><P><SPAN>Please refer to the links below for further details.</SPAN></P><UL><LI><SPAN>SAP HANA Cloud, SAP HANA Database SQL on Files Guide: <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-on-files-guide/toggle-between-virtual-tables-and-replica-tables" target="_self" rel="noopener noreferrer">Toggle Between Virtual Tables and Replica Tables</A><BR /></SPAN></LI></UL><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-767265240"><SPAN>FAQs</SPAN></H3><P><STRONG>Q:</STRONG> Can I write to an Apache Iceberg table from SQL on Files?<BR /><STRONG>A:</STRONG> No. SQL on Files is read-only by design, both via the <EM>file</EM> adapter and the <EM>icebergcatalog</EM> adapter. INSERT, UPDATE, and DELETE on virtual tables pointing to Iceberg are not supported. Write operations should be performed by Iceberg-native engines (e.g., Spark, the catalog provider's compute) on the source side.</P><P><STRONG>Q:</STRONG> Which Iceberg REST Catalog providers are officially certified?<BR /><STRONG>A:</STRONG> Cloudera and Databricks running on AWS were initially certified with QRC 1/2026. With QRC 2/2026, Databricks is additionally certified on Azure and GCP, and Snowflake is newly certified across AWS, Azure, and GCP. Cloudera certification on Azure and GCP is planned for a future release. See the certification table in the <EM>icebergcatalog</EM> adapter section above for the full per-QRC, per-hyperscaler matrix. Other spec-compliant REST catalogs may work but are not officially certified.</P><P><STRONG>Q:</STRONG> What kind of authentication is supported for the <EM>icebergcatalog</EM> adapter?<BR /><STRONG>A:</STRONG> Bearer-token (OAuth) only. Full credential flows are expected to be handled in the application layer, with the access token being injected into SAP HANA Cloud either at remote source creation time or via SET SESSION CREDENTIAL for refresh.</P><P><STRONG>Q:</STRONG> Can I replicate an Apache Iceberg table into a SAP HANA table?<BR /><STRONG>A:</STRONG> Today, only snapshot replica toggling is supported for Iceberg. Full remote subscription-based replication (initial load + interval-based CDC), equivalent to the Delta table replication introduced in QRC 4/2025, is on the roadmap (see <STRONG>Looking Ahead</STRONG>).</P><P><STRONG>Q:</STRONG> I'm running Google Cloud Storage on AliCloud. Can I use SQL on Files to read data from there?<BR /><STRONG>A:</STRONG> No. SQL on Files queries accessing Google Cloud Storage are not supported on AliCloud deployments. Other supported object storages remain accessible.</P><P><STRONG>Q:</STRONG> Is there any plan to support Apache Iceberg format V3?<BR /><STRONG>A:</STRONG> The Iceberg ecosystem is evolving toward V3, and we are actively defining our adoption strategy. See <STRONG>Looking Ahead</STRONG> for the high-level direction.</P><P><STRONG>Q:</STRONG> I'm already accessing Apache Iceberg tables via the <EM>file</EM> adapter. Do I need to change anything with the introduction of the <EM>icebergcatalog</EM> adapter?<BR /><STRONG>A:</STRONG> No. The two adapters cover different scenarios and coexist. If you have been using the <EM>file</EM> adapter to access Iceberg tables directly on object storage, your existing setup keeps working as-is. The <EM>icebergcatalog</EM> adapter is an additional option for customers who manage their Iceberg tables through an Iceberg REST Catalog (Cloudera, Databricks, or Snowflake).</P><P>&nbsp;</P><H3 id="toc-hId-570751735">Looking Ahead</H3><P>While this blog focuses on what is generally available with QRC 2/2026, there are a couple of directions we are actively exploring for the longer term:</P><UL><LI><STRONG>Apache Iceberg table-to-HANA replication:</STRONG> Today, Delta table replication (QRC 4/2025) gives customers chunk-based or one-step initial load combined with user-driven or scheduled CDC. We see strong demand for the equivalent capability on Apache Iceberg via both the <EM>file</EM> adapter and the <EM>icebergcatalog</EM> adapter, including Data Replication UI integration. Release timing has not yet been finalized.</LI><LI><STRONG>Apache Iceberg format V3:</STRONG> V3 introduces extended types (e.g., variant, geometry, geography, nanosecond timestamps), default values, row lineage, and binary deletion vectors. We plan to selectively enable V3 capabilities as the broader ecosystem matures, so customers get predictable behavior with V3 tables. Release timing has not yet been finalized.</LI></UL><P>These items reflect long-term direction rather than committed deliveries, so please treat them as forward-looking signals rather than firm release plans.</P><P>&nbsp;</P><H3 id="toc-hId-374238230">Conclusion</H3><P>With SAP HANA Cloud QRC 2/2026, the Apache Iceberg story in SQL on Files is now complete in its first chapter: direct read-only access to Iceberg tables via the <EM>file</EM> adapter, enterprise-grade integration with Iceberg REST Catalogs via the new <EM>icebergcatalog</EM> adapter across AWS, Azure, and GCP, plus a set of supporting improvements like snapshot replica toggling, Data Page V2, and AliCloud OSS coverage.</P><P>This continues SAP HANA Cloud's commitment to open table formats, meeting customers where their data already lives, whether that's a Delta Lake, an Iceberg lakehouse, or a mixture of both. As we remain committed to innovation, stay tuned for upcoming updates that will continue to expand and enrich your SAP HANA Cloud experience, including richer Iceberg replication and evolving Iceberg V3 support.</P> 2026-06-24T04:34:53.984000+02:00 https://community.sap.com/t5/technology-platform-learning-group-blog-posts/security-administrator-exam/ba-p/14429275 Security Administrator Exam 2026-06-29T10:26:29.731000+02:00 Jelena_Urukalo https://community.sap.com/t5/user/viewprofilepage/user-id/2251856 <P><STRONG>Planning on taking the SAP C_SEC certification?</STRONG> Here are a few tips that may help with your preparation:</P><UL><LI><P><STRONG>Pay close attention to SAP naming conventions.</STRONG> Many exam questions rely on the exact terminology used by SAP, so understanding names, roles, objects, and concepts is essential.</P></LI><LI><P><STRONG>Read each question carefully—more than once if needed.</STRONG> A single word can change the meaning of the question and lead to a different answer.</P></LI><LI><P><STRONG>Think outside the box.</STRONG> Some questions are scenario-based and require you to apply your knowledge rather than simply recall facts.</P></LI><LI><P><STRONG>Review the Live Sessions, Learning Journeys, and training materials thoroughly.</STRONG> They cover the key topics and concepts you'll need for the exam, so don't skip them.</P></LI></UL><P>Good luck with your preparation and the exam!</P><P>#saphana#fiori</P> 2026-06-29T10:26:29.731000+02:00 https://community.sap.com/t5/supply-chain-management-blog-posts-by-sap/beyond-single-company-configuring-multi-company-pm-order-replication-to-sap/ba-p/14415953 Beyond Single-Company: Configuring Multi-Company PM Order Replication to SAP FSM 2026-07-01T11:01:10.081000+02:00 MayankRaj007 https://community.sap.com/t5/user/viewprofilepage/user-id/1489355 <P>Note:&nbsp;This feature will be available for 2025 release from October 2026.</P><P><STRONG>Contents</STRONG></P><OL><LI><A href="#toc-hId-14415953-h_27558531811782879043787" target="_self" rel="nofollow noopener noreferrer"><SPAN>Introduction&nbsp;</SPAN><SPAN>&amp; Business Context</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_6497490381051782879199053" target="_self" rel="nofollow noopener noreferrer"><SPAN>Why</SPAN> <SPAN>Multi-Company?</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_829680648961782879190908" target="_self" rel="nofollow noopener noreferrer"><SPAN>How</SPAN> <SPAN>It Works — The Big Picture</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_766708473861782879178130" target="_self" rel="nofollow noopener noreferrer"><SPAN>Step-by-Step Configuration Guide</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_308525265811782879168341" target="_self" rel="nofollow noopener noreferrer"><SPAN>Controlling</SPAN> <SPAN>the FSM Planning Board</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_756197131271782879098340" target="_self" rel="nofollow noopener noreferrer"><SPAN>Extensibility</SPAN></A></LI><LI><A href="#toc-hId-14415953-h_794808421431782879141371" target="_self" rel="nofollow noopener noreferrer"><SPAN>Monitoring</SPAN> <SPAN>&amp; Error Recovery</SPAN></A></LI><LI><SPAN><A href="#toc-hId-14415953-h_763162528701782879157720" target="_blank" rel="noopener nofollow noreferrer">Summary</A></SPAN></LI></OL><P><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><H1 id="toc-hId-14415953-h_27558531811782879043787">1.&nbsp;&nbsp; Introduction &amp; Business Context</H1><P><SPAN>SAP S/4HANA Plant Maintenance (PM) and SAP Field Service Management (FSM) are designed to work together as one end-to-end maintenance execution platform. When a planner raises a PM order in S/4HANA — for a breakdown repair, a preventive inspection, or a scheduled overhaul — that order is automatically pushed to FSM, where a dispatcher assigns it to the right field technician. The technician receives the work on their mobile device, executes it on-site, and the completion confirmation flows back to S/4HANA —&nbsp;</SPAN><SPAN>closing the loop without manual re-entry.</SPAN></P><P>A companion blog post covers this integration for organisations with a <STRONG>single FSM company</STRONG>. This blog addresses a more common enterprise scenario: a <STRONG>single SAP system serving multiple business units, regions, or subsidiaries</STRONG>, each managed by a <STRONG>separate FSM company</STRONG>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_0-1782875764722.png" style="width: 489px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427955iA17D41B00878E32D/image-dimensions/489x204?v=v2" width="489" height="204" role="button" title="MayankRaj007_0-1782875764722.png" alt="MayankRaj007_0-1782875764722.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_6497490381051782879199053">2. Why Multi-Company?</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; SAP FSM supports a single-company model where all field service data lives in one place.<BR />&nbsp;&nbsp;&nbsp; While authorizations can be used to restrict what each country or business unit user sees,<BR />&nbsp;&nbsp;&nbsp; this still means all their data — customers, orders, technicians, activities — is loaded<BR />&nbsp;&nbsp;&nbsp; into and managed within that single company. For many enterprises this is not desirable:<BR />&nbsp;&nbsp;&nbsp; different subsidiaries may have different contracts, different service processes, different<BR />&nbsp;&nbsp;&nbsp; FSM configurations, or strict data segregation requirements. <STRONG>Multi-company support<BR />&nbsp;&nbsp;&nbsp; allows organisations to segregate their business and data into separate FSM companies</STRONG>,<BR />&nbsp;&nbsp;&nbsp; each operating independently with its own configuration, workforce, and dispatching logic —<BR />&nbsp;&nbsp;&nbsp; while still being driven from a single S/4HANA system.<BR />&nbsp; </SPAN></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Beyond data segregation, multi-company support also enables:<BR />&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="314"><P><STRONG>Capability</STRONG></P></TD><TD width="314"><P><STRONG>What it means in practice</STRONG></P></TD></TR><TR><TD width="314"><P><STRONG>Automatic routing</STRONG></P></TD><TD width="314"><P>PM orders are routed to the correct FSM company based on the planning plant and<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; order type — no manual steps, no middleware transformation needed.</P></TD></TR><TR><TD width="314"><P><STRONG>Independent filter rules</STRONG></P></TD><TD width="314"><P>One subsidiary may push orders to FSM as soon as they are Released; another may<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prefer to wait until Ready for Scheduling. Each company configures this independently.</P></TD></TR><TR><TD width="314"><P><STRONG>Independent code-list mappings</STRONG></P></TD><TD width="314"><P>Status codes, service call types, problem types, priorities, and regions can all<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; differ between FSM companies to match local FSM configurations.</P></TD></TR><TR><TD width="314"><P><STRONG>Custom routing for complex scenarios</STRONG></P></TD><TD width="314"><P>For organisations where plant and order type alone are not enough to determine the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target FSM company, a custom BAdI provides full programmatic control.</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_829680648961782879190908">3. How It Works — The Big Picture</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Every time a PM order is <STRONG>released and saved</STRONG> in S/4HANA — on creation or any subsequent<BR />&nbsp;&nbsp;&nbsp; update — the system evaluates whether and where to replicate it to FSM. The steps are:<BR />&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="314"><P><STRONG>Step</STRONG></P></TD><TD width="314"><P><STRONG>What happens</STRONG></P></TD></TR><TR><TD width="314"><P><STRONG>1 &nbsp; Trigger</STRONG></P></TD><TD width="314"><P>PM order save detected. Replication check begins in the background.</P></TD></TR><TR><TD width="314"><P><STRONG>2 &nbsp; Company routing</STRONG></P></TD><TD width="314"><P>The order's planning plant and order type are matched against configuration to<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; identify the responsible FSM company.</P></TD></TR><TR><TD width="314"><P><STRONG>3 &nbsp; Relevance check</STRONG></P></TD><TD width="314"><P>The order's current system status is compared against the configured filter rules.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Only orders in a qualifying status proceed.</P></TD></TR><TR><TD width="314"><P><STRONG>4 &nbsp; Field mapping</STRONG></P></TD><TD width="314"><P>PM order data is translated into an FSM Service Call payload — subject, status,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type, priority, region, activities, components, partners, and more.</P></TD></TR><TR><TD width="314"><P><STRONG>5 &nbsp; Replication</STRONG></P></TD><TD width="314"><P>The payload is sent asynchronously to FSM. FSM creates or updates the Service<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call and its Activities accordingly.</P></TD></TR><TR><TD width="314"><P><STRONG>6 &nbsp; Response &amp; logging</STRONG></P></TD><TD width="314"><P>The FSM response is evaluated and logged in SAP's Application Interface<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Framework (AIF), giving operations teams full visibility and restart capability.</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><STRONG>Note:&nbsp; </STRONG>Why asynchronous? Replication happens in the background via a queue —<BR />&nbsp;&nbsp;&nbsp; it does not hold up the PM order save transaction. Planners experience no delay;<BR />&nbsp;&nbsp;&nbsp; the FSM API call is processed independently after the order is committed in S/4HANA.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_1-1782875764723.png" style="width: 434px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427954i28D496A4B82E8E2D/image-dimensions/434x323?v=v2" width="434" height="323" role="button" title="MayankRaj007_1-1782875764723.png" alt="MayankRaj007_1-1782875764723.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-14415953-h_766708473861782879178130">4. Step-by-Step Configuration Guide</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Configuration lives in two places in SPRO (transaction <STRONG>SPRO)</STRONG><BR />&nbsp; </SPAN></P><UL><LI><SPAN><SPAN><STRONG>Multi-company routing</STRONG> (Steps 1–5) is maintained via a single SPRO node that<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; opens a <STRONG>view cluster</STRONG>. All sub-views are navigated through the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EM>Dialog Structure</EM> panel on the left-hand side of the screen.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR /><STRONG>SPRO Node:</STRONG>&nbsp;Service → Integration with Other SAP Solutions → SAP Field Service Management →<BR />Configure Multiple Company Replication<BR />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</SPAN></SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_17-1782876673085.png" style="width: 537px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427978iE8C91C44B26AD9F5/image-dimensions/537x188?v=v2" width="537" height="188" role="button" title="MayankRaj007_17-1782876673085.png" alt="MayankRaj007_17-1782876673085.png" /></span><SPAN><BR /><BR /></SPAN></LI><LI><SPAN><STRONG>Code-list mappings &amp; region</STRONG> (Steps 6–7) are direct child nodes under<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a separate path with no additional grouping:<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR />&nbsp; &nbsp; &nbsp; &nbsp;<STRONG>SPRO Node:</STRONG> Plant Maintenance and Customer Service → Integration with SAP Field Service Management&nbsp;</SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_3-1782875764736.png" style="width: 508px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427959i84A8C3170016B7D1/image-dimensions/508x335?v=v2" width="508" height="335" role="button" title="MayankRaj007_3-1782875764736.png" alt="MayankRaj007_3-1782875764736.png" /></span></LI></UL><P>&nbsp;</P><H3 id="toc-hId-1160352733">4.1. Define S/4 FSM Companies</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a logical identifier for each FSM company you want to replicate to. This short key<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; — for example <EM>COMP_NORTH</EM> or <EM>COMP_SOUTH</EM> — becomes the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>master reference</STRONG> that all subsequent configuration links back to:<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FSM account details, plant assignments, filter rules, and code-list mappings all<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reference this identifier.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Configure Multiple Company Replication → Dialog Structure:Define S/4HANA FSM Company</STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_4-1782875764738.png" style="width: 505px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427957iFF8B547B74ECAE92/image-dimensions/505x226?v=v2" width="505" height="226" role="button" title="MayankRaj007_4-1782875764738.png" alt="MayankRaj007_4-1782875764738.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-963839228">4.2. Assign FSM Account &amp; Company Details</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For each S/4 FSM Company ID, enter the technical identifiers from your FSM tenant.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; These are found in the <STRONG>FSM Admin portal</STRONG> under<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EM>Account → Account Information</EM> and <EM>Account → Companies</EM>.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="209"><P><STRONG>Field</STRONG></P></TD><TD width="209"><P><STRONG>Description</STRONG></P></TD><TD width="209"><P><STRONG>Where to find in FSM Admin</STRONG></P></TD></TR><TR><TD width="209"><P>FSM Account ID</P></TD><TD width="209"><P>Numeric identifier for the FSM tenant account</P></TD><TD width="209"><P>FSM Admin → Account Information</P></TD></TR><TR><TD width="209"><P>FSM Company ID</P></TD><TD width="209"><P>Numeric identifier for the specific FSM company</P></TD><TD width="209"><P>FSM Admin → Companies → select company → ID field</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Configure Multiple Company Replication → Dialog Structure: Define S/4HANA FSM Company →Assign FSM Company Details</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_5-1782875764741.png" style="width: 430px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427958iDB7019AAC3915C55/image-dimensions/430x188?v=v2" width="430" height="188" role="button" title="MayankRaj007_5-1782875764741.png" alt="MayankRaj007_5-1782875764741.png" /></span></P><P><STRONG>Note:&nbsp;</STRONG>&nbsp;RFC destination is shared across all companies: The FSM Account ID<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and Company ID configured here are sent as HTTP request headers and can differ per S/4 FSM<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Company. However, the underlying RFC destination — which defines the FSM<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endpoint URL and OAuth profile — is always read from the global configuration<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( CRMC_FSM_CONFIG ) and cannot be varied per company, either through the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multi-company table or through the BAdI. This means all S/4 FSM companies must<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reside within the same FSM tenant — they are separate companies within one<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; account, not companies on different FSM endpoints.</P><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-767325723">4.3. Assign Rule Type to the PM Replication Object</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify <EM>how</EM> the system determines which FSM company a PM order is routed to.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The rule type is a configuration value that tells the system which routing strategy to<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apply. Two rule types are supported for PM orders:<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="209"><P><STRONG>Code</STRONG></P></TD><TD width="209"><P><STRONG>Name</STRONG></P></TD><TD width="209"><P><STRONG>When to choose it</STRONG></P></TD></TR><TR><TD width="209"><P><STRONG>01</STRONG></P></TD><TD width="209"><P><STRONG>Plant</STRONG></P></TD><TD width="209"><P><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The target FSM company is determined by the order's <STRONG>planning plant</STRONG><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and <STRONG>order type</STRONG>. This is the standard approach and covers<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the vast majority of customer scenarios.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P></TD></TR><TR><TD width="209"><P><STRONG>07</STRONG></P></TD><TD width="209"><P><STRONG>Custom Logic</STRONG></P></TD><TD width="209"><P><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A custom BAdI implementation determines the FSM company programmatically.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use this only when plant and order type alone are not sufficient — for example,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when routing depends on a functional location attribute or a custom partner function.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See Section 6 for details.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><SPAN>Set the Replication Object = <STRONG>PM</STRONG> and select the appropriate rule type.</SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Configure Multiple Company Replication → Dialog Structure:Assign Rule Type to Replication Object</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_6-1782875764746.png" style="width: 435px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427960i9D2663E7C5CB5026/image-dimensions/435x201?v=v2" width="435" height="201" role="button" title="MayankRaj007_6-1782875764746.png" alt="MayankRaj007_6-1782875764746.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId-570812218">4.4. Enable PM Replication per Company</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For each S/4 FSM Company ID, activate PM order replication by adding the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replication object <STRONG>PM</STRONG>. This acts as a<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>per-company master switch</STRONG> — if a company does not have PM enabled here,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no PM orders will ever be routed to it, regardless of the plant configuration in Step 4.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Configure Multiple Company Replication → Dialog Structure:Assign Replication Object Details</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_18-1782878714138.png" style="width: 430px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428001iC8A6249F0F9F8B1E/image-dimensions/430x186?v=v2" width="430" height="186" role="button" title="MayankRaj007_18-1782878714138.png" alt="MayankRaj007_18-1782878714138.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-374298713">4.5. Assign Relevant Plants — Rule Type 01 Only</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For plant-based routing, define which combination of <STRONG>S/4 FSM Company +<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Planning Plant + Order Type</STRONG> should route PM orders to which FSM company.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the core routing table.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>Important:&nbsp; </STRONG>This routing configuration is maintained here under the multi-company replication IMG node. It is a separate entry point from the&nbsp;&nbsp; single-company plant filter and must not be confused with it.</P><TABLE><TBODY><TR><TD width="157"><P><STRONG>S/4 FSM Company</STRONG></P></TD><TD width="157"><P><STRONG>Planning Plant</STRONG></P></TD><TD width="157"><P><STRONG>Order Type</STRONG></P></TD><TD width="157"><P><STRONG>Routes to</STRONG></P></TD></TR><TR><TD width="157"><P>COMP_NORTH</P></TD><TD width="157"><P>1000</P></TD><TD width="157"><P>PM01</P></TD><TD width="157"><P>Northern Operations FSM</P></TD></TR><TR><TD width="157"><P>COMP_SOUTH</P></TD><TD width="157"><P>2000</P></TD><TD width="157"><P>PM01</P></TD><TD width="157"><P>Southern Operations FSM</P></TD></TR><TR><TD width="157"><P>COMP_SOUTH</P></TD><TD width="157"><P>3000</P></TD><TD width="157"><P>PM02</P></TD><TD width="157"><P>Southern Operations FSM</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Configure Multiple Company Replication → Dialog Structure: Assign Replication Object Details →Assign Relevant Plants</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_7-1782875764749.png" style="width: 441px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427961i592C9A93F64CBCBF/image-dimensions/441x236?v=v2" width="441" height="236" role="button" title="MayankRaj007_7-1782875764749.png" alt="MayankRaj007_7-1782875764749.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H3 id="toc-hId-177785208">4.6. Configure Code-List Mappings &amp; Filters</H3><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAP PM and FSM use different codes for the same business concepts. All configuration<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in this step uses SPRO node:<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Plant Maintenance and Customer Service →Integration with SAP Field Service Management</STRONG></P><P><SPAN>Each item below corresponds to a separate child node in this path.</SPAN></P><P><STRONG>4.6.1. Define System Status to filter Maintenance Order replication</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Configure which S/4 system statuses should <STRONG>trigger</STRONG> or<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>block</STRONG> replication for each company and order type. Each subsidiary<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; independently decides at which point in the PM lifecycle orders flow to FSM.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="314"><P><STRONG>Setting</STRONG></P></TD><TD width="314"><P><STRONG>Meaning</STRONG></P></TD></TR><TR><TD width="314"><P>Order Status</P></TD><TD width="314"><P>The S/4 system status that activates this rule — e.g.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Released</STRONG>, <STRONG>Ready for Scheduling</STRONG>,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Technically Complete</STRONG></P></TD></TR><TR><TD width="314"><P>Replication Type <STRONG>1</STRONG></P></TD><TD width="314"><P>Replicate when this status is active → order lands on the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Dispatching Board</STRONG> in FSM</P></TD></TR><TR><TD width="314"><P>Replication Type <STRONG>2</STRONG></P></TD><TD width="314"><P>Block replication when this status is active</P></TD></TR><TR><TD width="314"><P>Replication Type <STRONG>3</STRONG></P></TD><TD width="314"><P>Replicate when this status is active → order lands on the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Capacity Planning Board</STRONG> in FSM</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Define System Status to filter Maintenance Order replication</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_9-1782875764754.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427963i83E57985048AC8B3/image-size/medium?v=v2&amp;px=400" role="button" title="MayankRaj007_9-1782875764754.png" alt="MayankRaj007_9-1782875764754.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><P><STRONG>4.6.2 Configure Mapping for Status Codelist</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Translates S/4 system statuses to FSM Service Call status codes. When multiple<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; active statuses match simultaneously, the entry with the<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>lowest configured priority number</STRONG> is applied.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Example: S/4 <EM>Released</EM> → FSM status <EM>–2 (Ready to Plan)</EM>.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Configure Mapping for Status Codelist</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_10-1782875764755.png" style="width: 449px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427964i1E248AB8B44799A4/image-dimensions/449x175?v=v2" width="449" height="175" role="button" title="MayankRaj007_10-1782875764755.png" alt="MayankRaj007_10-1782875764755.png" /></span></P><P>&nbsp;</P><P><STRONG>4.6.3. Configure Mapping for Service Call Type Codelist</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maps the S/4 <STRONG>order type</STRONG> (e.g. PM01, PM02) to the FSM<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Service Call Type</STRONG> (e.g. Maintenance, Repair, Inspection).<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This determines how work is categorised in FSM and affects which service call<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; templates and follow-up workflows are triggered.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Configure Mapping for Service Call Type Codelist</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_11-1782875764757.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427965i2CB708CE2C47ECC3/image-size/medium?v=v2&amp;px=400" role="button" title="MayankRaj007_11-1782875764757.png" alt="MayankRaj007_11-1782875764757.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><P><STRONG>4.6.4. Configure Mapping for Problem Type Codelist</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maps the S/4 <STRONG>maintenance activity type</STRONG> (e.g. Electrical, Mechanical,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Preventive) to the FSM <STRONG>Problem Type</STRONG>. This helps dispatchers instantly<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; understand the nature of the job and assign a technician with the right skill set.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Configure Mapping for Problem Type Codelist</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_12-1782875764759.png" style="width: 456px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427966i200012A5F5783C83/image-dimensions/456x186?v=v2" width="456" height="186" role="button" title="MayankRaj007_12-1782875764759.png" alt="MayankRaj007_12-1782875764759.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><P><STRONG>4.6.5. Configure Mapping for Priority Codelist</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maps S/4 PM priority codes to FSM priority values (HIGH, MEDIUM, LOW). A separate<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>Emergency Priority</STRONG> field is also available — when an emergency order<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is processed (identified by its processing context), this value overrides the standard<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; priority mapping, ensuring urgent work is immediately visible to the FSM dispatcher.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Configure Mapping for Priority Codelist</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_13-1782875764761.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427967iC80EF367CD4302DB/image-size/medium?v=v2&amp;px=400" role="button" title="MayankRaj007_13-1782875764761.png" alt="MayankRaj007_13-1782875764761.png" /></span></P><P><SPAN>&nbsp;</SPAN></P><P><STRONG>4.6.6. Set Default Business Partner (Customer)</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Defines a fallback customer (Business Partner) per FSM company, used when the PM order<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; does not carry a Ship-To party. FSM requires a business partner on every Service Call,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; so this default prevents replication failures for orders that have no customer reference.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Set Default Business Partner (Customer)</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_14-1782875764761.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427968i39E78ABFA69EF29C/image-size/medium?v=v2&amp;px=400" role="button" title="MayankRaj007_14-1782875764761.png" alt="MayankRaj007_14-1782875764761.png" /></span></P><P>&nbsp;</P><P><STRONG>4.6.7. Configure Region</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In FSM, a <STRONG>Region</STRONG> links each Activity to a geographical or organisational<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; area, which drives scheduling availability, resource pooling, and address resolution.<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For PM integration, the region code is derived from S/4HANA data and included in<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; every Activity sent to FSM. The <EM>source</EM> of that region code is configurable<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>per FSM company</STRONG>, giving each subsidiary the flexibility to align<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the region model to how they have structured FSM.<BR />&nbsp;&nbsp;&nbsp; </SPAN></P><P><STRONG>SPRO:&nbsp; </STRONG><STRONG>Integration with SAP Field Service Management →Configure Region</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MayankRaj007_15-1782875764762.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/427969i55A90EFFCC7048A9/image-size/medium?v=v2&amp;px=400" role="button" title="MayankRaj007_15-1782875764762.png" alt="MayankRaj007_15-1782875764762.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_308525265811782879168341">5. Controlling the FSM Planning Board</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; When a PM order arrives in FSM it lands on one of two planning boards, depending on how<BR />&nbsp;&nbsp;&nbsp; the filter rule was configured in Step 6. This determines how the dispatcher interacts<BR />&nbsp;&nbsp;&nbsp; with the work before a technician is assigned.<BR />&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="209"><P><STRONG>FSM Board</STRONG></P></TD><TD width="209"><P><STRONG>When it is used</STRONG></P></TD><TD width="209"><P><STRONG>What the dispatcher sees</STRONG></P></TD></TR><TR><TD width="209"><P><STRONG>Dispatching Board</STRONG></P></TD><TD width="209"><P>Replication triggered from Released status (Replication Type 1).<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The order is ready for immediate technician assignment.</P></TD><TD width="209"><P>Service Call appears directly on the Dispatching Board — the dispatcher can<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drag and drop it onto a technician's schedule straight away.</P></TD></TR><TR><TD width="209"><P><STRONG>Capacity Planning Board</STRONG></P></TD><TD width="209"><P>Replication triggered from Ready for Scheduling status<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Replication Type 3). The order needs resource-level planning first.</P></TD><TD width="209"><P>Service Call appears on the Capacity Planning Board for workload balancing<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and resource allocation before moving to Dispatching.</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_756197131271782879098340">6. Extensibility</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; When rule type <STRONG>07 (Custom Logic)</STRONG> is configured for the PM replication<BR />&nbsp;&nbsp;&nbsp; object, the system invokes BAdI <STRONG>CRMS4_FSM_RELV_COMP_DETERM</STRONG> to determine<BR />&nbsp;&nbsp;&nbsp; which FSM company and account a PM order should be routed to. This gives full programmatic<BR />&nbsp;&nbsp;&nbsp; control over company routing for scenarios that cannot be handled by plant and order type<BR />&nbsp;&nbsp;&nbsp; alone.<BR />&nbsp; </SPAN></P><H3 id="toc-hId--486986676">BAdI: CRMS4_FSM_RELV_COMP_DETERM</H3><P><EM><SPAN>Method: DETERMINE_RELVNT_COMP</SPAN></EM></P><P><STRONG>When to implement</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Use this BAdI when the target FSM company cannot be resolved from planning plant and order<BR />&nbsp;&nbsp;&nbsp; type alone. Common examples:<BR />&nbsp; </SPAN></P><UL><LI><SPAN>Routing based on a <STRONG>functional location hierarchy</STRONG> — e.g. all orders<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; under a specific FL node go to a specific FSM company regardless of plant</SPAN></LI><LI><SPAN>Routing based on a <STRONG>custom partner function</STRONG> or responsible person on<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the PM order</SPAN></LI><LI><SPAN>Routing determined by an <STRONG>external system lookup</STRONG> or custom Z-field</SPAN></LI><LI><SPAN>Complex multi-level routing logic that changes dynamically at runtime</SPAN></LI></UL><P><STRONG>How it works</STRONG></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp; The BAdI is called inside the replication class.<BR />&nbsp;&nbsp;&nbsp; Before the BAdI is called, any company and account values already resolved by the standard<BR />&nbsp;&nbsp;&nbsp; plant-based lookup are <STRONG>cleared</STRONG>. This means the BAdI has full responsibility<BR />&nbsp;&nbsp;&nbsp; for the result — it completely overrides the standard determination.<BR />&nbsp; </SPAN></P><P><SPAN><BR />&nbsp;&nbsp;&nbsp; The BAdI is retrieved with a <STRONG>filter on replication object PM</STRONG>,<BR />&nbsp;&nbsp;&nbsp; so a single enhancement spot can hold separate implementations for PM orders, Service Orders,<BR />&nbsp;&nbsp;&nbsp; Equipment, and other replication objects — each triggered independently without interference.<BR />&nbsp; </SPAN></P><P><STRONG>Interface</STRONG></P><TABLE><TBODY><TR><TD width="209"><P><STRONG>Parameter</STRONG></P></TD><TD width="209"><P><STRONG>Direction</STRONG></P></TD><TD width="209"><P><STRONG>Description</STRONG></P></TD></TR><TR><TD width="209"><P>IT_RELEVANT_OBJ_ID</P></TD><TD width="209"><P>Importing (table)</P></TD><TD width="209"><P><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; One row per order:<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; • SRVCMGMTFSMREPLICATIONOBJECT = PM<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; • SRVCMGMTFSMRPLCTNOBJID = maintenance order number<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P></TD></TR><TR><TD width="209"><P>CT_RELEVANT_COMP</P></TD><TD width="209"><P>Changing (table)</P></TD><TD width="209"><P><BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Your implementation must populate at minimum:<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; • FSMCOMPANY — target FSM Company ID<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; • FSMACCOUNT — target FSM Account ID<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><STRONG>Important:&nbsp; </STRONG>Important: If CT_RELEVANT_COMP is left empty or an exception<BR />&nbsp;&nbsp;&nbsp; is raised, replication is silently skipped for that order — no error is<BR />&nbsp;&nbsp;&nbsp; written to AIF. Always ensure your implementation populates at least one row with a valid<BR />&nbsp;&nbsp;&nbsp; FSM Company ID and Account ID.</P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_794808421431782879141371">7. Monitoring &amp; Error Recovery</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Every replication attempt — successful or failed — is recorded in SAP's<BR />&nbsp;&nbsp;&nbsp; <STRONG>Application Interface Framework (AIF)</STRONG>. This gives operations<BR />&nbsp;&nbsp;&nbsp; teams complete visibility into what was sent to FSM, what FSM responded,<BR />&nbsp;&nbsp;&nbsp; and the ability to restart any failed message after the root cause is resolved —<BR />&nbsp;&nbsp;&nbsp; all without developer involvement.<BR />&nbsp; </SPAN></P><P><SPAN>From the AIF monitor, teams can:</SPAN></P><UL><LI><SPAN>See exactly <STRONG>which PM orders were replicated</STRONG> and when</SPAN></LI><LI><SPAN>Inspect the <STRONG>full message payload</STRONG> sent to FSM and the FSM response received</SPAN></LI><LI><STRONG><SPAN>Restart failed messages</SPAN></STRONG><SPAN> with a single action — for example after a<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; missing region in FSM has been created, or a connectivity issue has been resolved</SPAN></LI><LI><SPAN>Receive <STRONG>automatic alerts</STRONG> when errors occur, via configurable<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recipient groups — ensuring nothing fails silently</SPAN></LI></UL><TABLE><TBODY><TR><TD width="314"><P><STRONG>AIF Key</STRONG></P></TD><TD width="314"><P><STRONG>Value</STRONG></P></TD></TR><TR><TD width="314"><P>Namespace</P></TD><TD width="314"><P><STRONG>/FSMPM</STRONG></P></TD></TR><TR><TD width="314"><P>ORDER_OUT</P></TD><TD width="314"><P>bgRFC Interface for PM Order replication to FSM</P></TD></TR><TR><TD width="314"><P>ORD_CRT_IN</P></TD><TD width="314"><P>Maintenance Order Inbound on create</P></TD></TR><TR><TD width="314"><P>ORDER_IN</P></TD><TD width="314"><P>Maintenance Order Inbound</P></TD></TR><TR><TD width="314"><P>ORDEROP_IN</P></TD><TD width="314"><P>Maintenance Order Operation Inbound</P></TD></TR><TR><TD width="314"><P>CONFIRM_IN</P></TD><TD width="314"><P>Maintenance Order Confirmation Inbound</P></TD></TR><TR><TD width="314"><P>Transaction</P></TD><TD width="314"><P>/AIF/ERR</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-14415953-h_763162528701782879157720">8. Summary</H2><P><SPAN><BR />&nbsp;&nbsp;&nbsp; Multi-company PM FSM integration enables enterprises to run a unified SAP system while<BR />&nbsp;&nbsp;&nbsp; keeping each business unit's field service operations fully independent. Here is<BR />&nbsp;&nbsp;&nbsp; what it delivers at a glance:<BR />&nbsp; </SPAN></P><TABLE><TBODY><TR><TD width="314"><P><STRONG>Capability</STRONG></P></TD><TD width="314"><P><STRONG>Benefit</STRONG></P></TD></TR><TR><TD width="314"><P><STRONG>Automatic plant-based routing</STRONG></P></TD><TD width="314"><P>Each plant's PM orders flow to the correct FSM company without manual steps<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or middleware logic.</P></TD></TR><TR><TD width="314"><P><STRONG>Per-company status filters</STRONG></P></TD><TD width="314"><P>Each subsidiary independently decides at which PM lifecycle stage orders<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are pushed to FSM.</P></TD></TR><TR><TD width="314"><P><STRONG>Per-company code-list mappings</STRONG></P></TD><TD width="314"><P>Status, priority, service call type, and problem type mappings are fully<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; independent per FSM company.</P></TD></TR><TR><TD width="314"><P><STRONG>Flexible region derivation</STRONG></P></TD><TD width="314"><P>Region codes can be sourced from the order work center, operation work center,<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or planner group — independently per FSM company.</P></TD></TR><TR><TD width="314"><P><STRONG>FSM planning board control</STRONG></P></TD><TD width="314"><P>Orders land on the Dispatching Board or Capacity Planning Board based on<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the PM process used, with full Phase Model and emergency order support.</P></TD></TR><TR><TD width="314"><P><STRONG>Custom company routing (Rule Type 07)</STRONG></P></TD><TD width="314"><P>A BAdI provides full programmatic control for complex routing scenarios<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that go beyond plant and order type.</P></TD></TR><TR><TD width="314"><P><STRONG>Full backward compatibility</STRONG></P></TD><TD width="314"><P>If no multi-company configuration is present, the system falls back<BR />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; automatically to single-company mode — no migration required.</P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId--783124184">References</H2><UL><LI><SPAN><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-sap/integrating-sap-s-4hana-plant-maintenance-orders-with-sap-field-service/ba-p/14360715" target="_blank">Integrating SAP S/4HANA Plant Maintenance Orders with SAP FSM</A></SPAN></LI></UL><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2026-07-01T11:01:10.081000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/what-s-new-in-sap-hana-cloud-july-2026/ba-p/14419199 What’s New in SAP HANA Cloud – July 2026 2026-07-03T11:29:14.472000+02:00 thomashammer https://community.sap.com/t5/user/viewprofilepage/user-id/122781 <P>The Q2 2026 release of SAP HANA Cloud continues to advance our vision of delivering an intelligent, AI-native, and enterprise-scale data platform. This quarter introduces innovations that make it easier to build AI-powered applications, manage large-scale enterprise workloads, simplify database administration, and strengthen security across your data landscape.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="blog.png" style="width: 725px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428619i31CE476C9DFE786B/image-dimensions/725x281?v=v2" width="725" height="281" role="button" title="blog.png" alt="blog.png" /></span></P><P>From deeper integration with SAP AI Core and new machine learning capabilities, to larger database instance sizes, enhanced data integration, and intelligent administration tools, this release allows you to unlock greater value from your data while reducing operational complexity.</P><P>Whether you're building next-generation AI applications, modernizing your enterprise data landscape, or optimizing business-critical workloads, SAP HANA Cloud continues to provide the foundation for secure, scalable, and intelligent data management.</P><P>Let's take a look at some of the key innovations introduced with the Q2 2026 release.</P><H2 id="toc-hId-1817435640">&nbsp;</H2><H2 id="toc-hId-1620922135">Agentic Data Access in SAP HANA Cloud</H2><P>We're taking another major step toward an AI-native data platform with new capabilities that enable agentic data access in SAP HANA Cloud.</P><P>At the core of this innovation is the ability to automatically generate a custom database objects knowledge graph. SAP HANA Cloud scans your database metadata including: tables, views, columns, and their relationships, and automatically builds a semantic representation of your data landscape.</P><P>By eliminating the need for manual semantic modeling, this knowledge graph provides a rich foundation for data discovery, reasoning, and AI-driven interactions. It enables both users and AI agents to better understand how enterprise data is organized and connected.</P><P>Building on this semantic foundation, we are introducing the Database Object Discovery Tool and the Data Retrieval Tool, available beginning in early July.</P><P>Today, working with enterprise data often requires you to understand complex database schemas, identify the right database objects, and manually write SQL queries to retrieve information. With these new capabilities, you can simply describe what they are looking for using natural language.</P><P>The Database Object Discovery Tool identifies the relevant database objects and relationships by leveraging the database objects knowledge graph. The Data Retrieval Tool then translates your request into an executable SQL statement and runs it directly within SAP HANA Cloud.</P><P>Together, these capabilities dramatically simplify the way we can discover, understand, and query enterprise data, without requiring deep SQL expertise or detailed knowledge of the underlying database schema.</P><P>Built on the multi-model foundation and Knowledge Graph Engine of SAP HANA Cloud, these innovations lay the groundwork for a new generation of conversational, agent-driven, and AI-powered data experiences, making it easier than ever to build intelligent applications on enterprise data.</P><P><SPAN>To learn more about the agentic database tools, take a look at Shabana's blog <A class="" title="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-hana-cloud-becomes-agentic-introducing-discovery-agent-amp-data-agent/ba-p/14257394" href="https://community.sap.com/t5/technology-blog-posts-by-sap/from-preview-to-production-get-started-with-the-sap-hana-cloud-s-agentic/ba-p/14440515" target="_blank">post</A>.</SPAN></P><P data-unlink="true">You can also learn how to set them up through this <A href="https://developers.sap.com/tutorials/hana-cloud-data-exploration-tools.html" target="_blank" rel="noopener noreferrer">tutorial</A> by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/170036">@Dan_vL</a>&nbsp;</P><P data-unlink="true">&nbsp;</P><H2 id="toc-hId-1424408630">Natural Language Processing (NLP),&nbsp;Machine Learning and&nbsp;AI Core integration&nbsp;</H2><P><SPAN>With the Q2&nbsp;2026 release of SAP HANA Cloud, we continue to strengthen embedded&nbsp;NLP and&nbsp;Machine Learning capabilities&nbsp;with broader SAP AI Core integration, unlocking&nbsp;access to&nbsp;SAP RPT-1&nbsp;and&nbsp; LLMs&nbsp;and thus completely new type of AI-driven database applications.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Key highlights&nbsp;as part of the Predictive Analysis Library (PAL)&nbsp;include:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>A new&nbsp;function for synthetic data generation using&nbsp;<EM>diffusion models</EM>,&nbsp;e.g&nbsp;for securing data privacy when training custom AI models</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Time Series Forecasting function enhancements like support for&nbsp;<EM>lagged regressors</EM>&nbsp;with&nbsp;<EM>Additive Model&nbsp;Time Series Analysis</EM>&nbsp;(aka prophet) and easier time series cross validation using the&nbsp;<EM>Unified&nbsp;Time&nbsp;Series</EM>&nbsp;procedures for better forecast predictions</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Further enhancements include&nbsp;columnar analysis of large data sets&nbsp;using&nbsp;Online Univariate Analysis</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>The full list of PAL&nbsp;</SPAN><SPAN>enhancements&nbsp;for&nbsp;SAP HANA Cloud 2026 Q2&nbsp;is documented&nbsp;</SPAN><A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e?Category=Predictive+Analysis+Library&amp;Valid_as_Of=2026-06-01:2026-06-30&amp;locale=en-US" target="_blank" rel="noopener noreferrer"><SPAN>here.</SPAN></A>&nbsp;Additionally, th<SPAN>e python Machine Learning client for SAP HANA 2.29 is supporting several new functions&nbsp;(see&nbsp;</SPAN><A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/Latest/en-US/change_log.html" target="_blank" rel="noopener noreferrer"><SPAN>here</SPAN></A><SPAN>)&nbsp;like&nbsp;PCA-based vector dimension reduction or the text&nbsp;tf-idf&nbsp;operator in AutoML.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Key highlights for SAP AI Core integration include:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>Remote sources to SAP AI Core now supporting use of LLMs and SAP RPT-1&nbsp;as standardized and secure gateway for 3rd party LLMs access</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Benefit from on-the-fly predictions, without the need to create, train and manage use-case specific ML models&nbsp;by&nbsp;s</SPAN><SPAN>imply&nbsp;utilizing&nbsp;the&nbsp;new&nbsp;AI_TABULAR_PREDICTION SQL procedure to access tabular AI models&nbsp;like SAP RPT-1&nbsp;</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Ability to leverage LLM capabilities, directly from the database SQL processing engine, by s</SPAN><SPAN>imply&nbsp;utilizing&nbsp;the new AI_TEXT_COMPLETION SQL function to execute one-shot-tasks like text generation or text summarization based on your text data managed in SAP HANA Cloud, unlocking for completely new type of LLM-driven application scenarios.</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>These enhancements focus on making tabular AI predictions using custom AI </SPAN><SPAN>models or semantic data retrieval scenario easier to use and applied to&nbsp;real business&nbsp;application data.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_0-1783013936469.png" style="width: 795px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428611iC30E6D7085D6554B/image-dimensions/795x306?v=v2" width="795" height="306" role="button" title="thomashammer_0-1783013936469.png" alt="thomashammer_0-1783013936469.png" /></span></P><P>&nbsp;</P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-1227895125">Right-sizing your instance with<SPAN><STRONG>&nbsp;Performance Class Advisor</STRONG></SPAN></H2><P><SPAN>Knowing whether your SAP HANA Cloud instance is the right size&nbsp;shouldn't&nbsp;require manual analysis or reactive firefighting. The Performance Class Advisor changes that by continuously&nbsp;monitoring&nbsp;your instance's&nbsp;compute&nbsp;and memory usage and automatically generating right-sizing recommendations every Sunday, without any manual trigger.</SPAN></P><P><SPAN>You choose a lookback window of 2, 4, or&nbsp;6 weeks&nbsp;to match your workload patterns, and the advisor checks whether CPU or memory usage has exceeded 80% during that period, if either threshold is breached, a recommendation is triggered.&nbsp;</SPAN><SPAN>The advisor then calculates the&nbsp;optimal&nbsp;upsized spec, targeting approximately 20%&nbsp;additional&nbsp;capacity and snapping to the nearest valid instance configuration.</SPAN></P><P><SPAN>In this&nbsp;initial&nbsp;release, recommendations are limited to upsizing only, as downsizing carries higher risk given that short lookback windows may not capture infrequent but critical workload spikes, and that is in our backlog to investigate further. The benefits are threefold: right-sizing guidance based on actual historical workload patterns rather than guesswork; proactive resource management that surfaces capacity pressure before it impacts business continuity, giving you time to act rather than react; and automated weekly insights with zero manual effort — switch it on once, and stay informed from there.</SPAN><SPAN>&nbsp;</SPAN></P><P>Learn more on SAP HANA Cloud's Intelligent Advisors in <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/stop-tuning-your-database-manually-let-sap-hana-cloud-s-intelligent/ba-p/14422705" target="_blank">this blogpost</A> by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/159990">@jinheejeong</a>&nbsp;</P><P>&nbsp;</P><H2 id="toc-hId-1031381620"><SPAN><STRONG>Automated SQL Plan Management with SQL Plan Advisor</STRONG></SPAN><SPAN>&nbsp;</SPAN></H2><P><SPAN>SQL execution performance can fluctuate for&nbsp;various reasons. A common culprit is a change in the execution plan within the SQL Plan Cache, either because a cached plan becomes suboptimal over time, or because an inefficient plan was cached based on the&nbsp;initial&nbsp;parameter sets used during compilation.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To better manage these regressions,&nbsp;<STRONG>SQL Plan Advisor</STRONG>&nbsp;was introduced in QRC 2/2024. It automatically detects degraded query executions by analyzing historical performance statistics stored via&nbsp;<STRONG>SQL Plan Stability</STRONG>. To resolve a performance dip, older, historical plans had to be verified to ensure they performed faster than the currently cached plan. However, this verification and testing process could only be triggered manually.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>With QRC 2/2026,&nbsp;<STRONG>this testing process is now fully automated</STRONG>. The system autonomously executes faster historical plans to verify their effectiveness, swapping out the degraded cached plan to seamlessly restore&nbsp;optimal&nbsp;database performance.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Please check out the details in the blog by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/202976">@Taesuk</a>&nbsp; found&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/automated-sql-plan-management-to-recover-from-degraded-performance/ba-p/14419577" target="_blank"><SPAN>here</SPAN></A>.<SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><H2 id="toc-hId-834868115">Database Administration &amp; Developer Productivity</H2><H3 id="toc-hId-767437329">Import &amp; Export&nbsp;&nbsp;</H3><P><SPAN>SAP HANA Cloud Central&nbsp;will&nbsp;soon&nbsp;be adding a&nbsp;new top-level&nbsp;application&nbsp;named&nbsp;Import and Export designed&nbsp;to enable users to quickly complete import and export operations within SAP HANA Cloud. This application provides guided wizards for importing data into a table, exporting data from a table or view, and importing and exporting both catalog objects and SAP HANA deployment infrastructure containers.&nbsp;&nbsp;Supported storage providers include SAP HANA Cloud data lake, Amazon S3, Microsoft Azure storage, and Google Cloud storage.&nbsp;Users can also view the generated SQL for any import or export task directly within the wizard.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_3-1783013999341.png" style="width: 631px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428614i7B165F92C3CFD5B5/image-dimensions/631x369?v=v2" width="631" height="369" role="button" title="thomashammer_3-1783013999341.png" alt="thomashammer_3-1783013999341.png" /></span></P><P><SPAN>&nbsp;</SPAN><SPAN>Additionally,&nbsp;the export&nbsp;wizard will support the ability to provide a query to further filter the data being exported.</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_2-1783013991448.png" style="width: 632px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428613i861F63F890C8309C/image-dimensions/632x295?v=v2" width="632" height="295" role="button" title="thomashammer_2-1783013991448.png" alt="thomashammer_2-1783013991448.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-441841105">SQL Console&nbsp;</H2><P><U>Improved Tab Management&nbsp;</U><BR /><SPAN>Previously if a&nbsp;SQL console tab&nbsp;was&nbsp;closed&nbsp;accidently,&nbsp;its contents were gone.&nbsp;Users can now restore closed tabs&nbsp;using&nbsp;the&nbsp;<STRONG>Restore Last Closed Tab</STRONG>&nbsp;option in the&nbsp;toolbar.&nbsp;Additionally, tabs can be renamed and reordered, making it easier to stay organized when working across multiple queries at once.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_4-1783014025884.png" style="width: 598px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428615i7450DD56208D68B4/image-dimensions/598x263?v=v2" width="598" height="263" role="button" title="thomashammer_4-1783014025884.png" alt="thomashammer_4-1783014025884.png" /></span></P><P><SPAN>A new search capability is also available&nbsp;from the actions menu, that lets users search across the content of all open tabs&nbsp;enabling a&nbsp;specific query&nbsp;to be&nbsp;quickly&nbsp;located.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_5-1783014033226.png" style="width: 571px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428616iCC834D7688EF5E5B/image-dimensions/571x314?v=v2" width="571" height="314" role="button" title="thomashammer_5-1783014033226.png" alt="thomashammer_5-1783014033226.png" /></span></P><P><U>Enhanced Syntax Help Panel<STRONG>&nbsp;</STRONG>&nbsp;</U><BR /><SPAN>The syntax help panel has also received a refresh. Object details are now collapsible, reducing visual clutter when users only need a quick reference.&nbsp;Columns and parameters are also&nbsp;searchable, which allows users to find what they need without scrolling through extensive lists.&nbsp;These columns are now clickable as well – selecting one directly inserts it into the editor.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_6-1783014051187.png" style="width: 587px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428617i2BEB452B4DCF74A6/image-dimensions/587x418?v=v2" width="587" height="418" role="button" title="thomashammer_6-1783014051187.png" alt="thomashammer_6-1783014051187.png" /></span></P><P><U>SQL Results<STRONG>&nbsp;</STRONG>&nbsp;</U><BR /><SPAN>Users now also have more control within SQL results, which has been enhanced with options to handle how data is displayed and refreshed.&nbsp;Users can customize which columns they want to be&nbsp;shown&nbsp;or&nbsp;hidden&nbsp;and&nbsp;also&nbsp;reorder them in whichever way that suits their workflow.&nbsp;Results can also be re-executed on&nbsp;demand&nbsp;without requiring parameters to be re-entered.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="thomashammer_0-1783014096304.png" style="width: 601px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/428618i280B7ACAFC93F0DB/image-dimensions/601x314?v=v2" width="601" height="314" role="button" title="thomashammer_0-1783014096304.png" alt="thomashammer_0-1783014096304.png" /></span></P><P>&nbsp;</P><H2 id="toc-hId-245327600"><SPAN><STRONG>Data Integration</STRONG></SPAN><SPAN>&nbsp;(Federation &amp; Replication)</SPAN></H2><H3 id="toc-hId-177896814"><SPAN><STRONG>SQL on Files: Apache Iceberg REST Catalog support in SAP HANA Cloud</STRONG></SPAN><SPAN>&nbsp;</SPAN></H3><P><SPAN>Direct read-only access to Apache Iceberg tables in object storage, which has been introduced since QRC 3/2025, has offered real-time analytics on Iceberg&nbsp;lakehouses&nbsp;without moving data into SAP HANA Cloud.&nbsp;With QRC 2/2026, it evolves further by supporting&nbsp;<STRONG>Apache Iceberg REST Catalogs</STRONG>,&nbsp;which is&nbsp;how&nbsp;the&nbsp;modern enterprise&nbsp;lakehouses&nbsp;centralize table management, access control, and metadata governance.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Through the&nbsp;new&nbsp;<EM>icebergcatalog</EM>&nbsp;adapter, SAP HANA Cloud now connects directly to spec-compliant Iceberg REST Catalogs across AWS, Azure, and GCP, bringing enterprise-grade integration to your Iceberg&nbsp;lakehouse&nbsp;with minimal effort.&nbsp;Note&nbsp;that while the adapter is designed to work with any spec-compliant&nbsp;Iceberg&nbsp;REST Catalog, only a defined set of providers is&nbsp;officially certified by SAP per QRC.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To learn more about SAP HANA Cloud's new Apache Iceberg REST Catalog support, take a look at <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/204092">@SeungjoonLee</a>'s blog post&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/going-beyond-the-tip-of-the-iceberg-with-sap-hana-cloud-sql-on-files/ba-p/14413871" target="_blank"><SPAN>here</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN><STRONG>S/4HANA CDS View Entity replication to SAP HANA Cloud</STRONG></SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>S/4HANA Federated access was introduced in QRC 1/2024, as detailed in the blog&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/taking-data-federation-to-the-next-level-accessing-remote-abap-cds-view/ba-p/13635034" target="_blank"><SPAN>Taking Data Federation to the Next Level: Accessing Remote ABAP CDS View Entities in SAP HANA Cloud.</SPAN></A><SPAN>&nbsp;Building on this, QRC 2/2026 introduces support for replicating data directly to SAP HANA Cloud.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>CDS view replication allows you to copy data from SAP S/4HANA CDS&nbsp;view&nbsp;entities into local tables within SAP HANA Cloud, enabling fast local analytics without the need for remote federated queries.<BR /><BR />Key benefits include:</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN><STRONG>Lower Latency:</STRONG></SPAN><SPAN>&nbsp;Data&nbsp;resides&nbsp;locally, and efficiency is maximized by replicating only changed rows.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN><STRONG>Reduced Source Overhead:</STRONG></SPAN><SPAN>&nbsp;Impact on the source system is minimized because replication can be scheduled at custom intervals or run entirely on demand.</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN><STRONG>Flexible Filtering:</STRONG></SPAN><SPAN>&nbsp;Data can be filtered by specific rows, selected columns, or both.</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>You can configure replication via SQL or by using the Data Replication tool in SAP HANA Cloud Central.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To learn more about SAP HANA Cloud’s new S/4HANA CDS View replication, check out <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/202976">@Taesuk</a>&nbsp;’s blog post&nbsp;</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/replicating-sap-s-4hana-cds-view-entities-into-sap-hana-cloud-a-practical/ba-p/14419559" target="_blank"><SPAN>here</SPAN></A><SPAN>.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><H2 id="toc-hId-199554947"><SPAN>Security, Data Protection &amp; Privacy<BR /><BR /></SPAN></H2><H2 id="toc-hId-3041442"><SPAN><STRONG>Post-quantum cryptography (PQC) for Transport Layer Security (TLS) connections</STRONG></SPAN><SPAN><STRONG>&nbsp;</STRONG></SPAN></H2><P><SPAN>With the Q2 2026 release, SAP HANA Cloud&nbsp;database&nbsp;introduces post-quantum cryptography (PQC) for TLS connections, providing quantum-resistant protection for all data in transit between clients and SAP HANA Cloud databases.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Post-quantum cryptography addresses the "harvest now, decrypt later" threat — where adversaries capture encrypted traffic today with the intent of decrypting it once quantum computers become capable. By enabling PQC now, SAP HANA Cloud ensures that data encrypted today&nbsp;remains&nbsp;protected against future quantum attacks.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Key capabilities include:</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN><STRONG>Hybrid Post-Quantum Key Exchange</STRONG></SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>A transparent ML-KEM key establishment negotiated during TLS 1.3 handshakes, combining classical and quantum-resistant algorithms. Enabled by default for all SAP HANA Cloud databases with no customer configuration&nbsp;required.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN><STRONG>Full Backward Compatibility</STRONG></SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Clients with PQC support (SAP Client using&nbsp;OpenSSL 3.5+, SAP HANA client 2.29+) automatically negotiate the quantum-resistant hybrid exchange. Clients without PQC support safely fall back to classical key exchange with zero disruption to existing applications.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN><STRONG>Built-in Observability</STRONG></SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>New SSL_KEY_EXCHANGE and SSL_SIGNATURE columns in M_CONNECTIONS and M_OUTBOUND_NETWORK_IO system views, enabling administrators to verify PQC adoption per connection and&nbsp;identify&nbsp;clients that need upgrading.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>The feature is aligned with NIST post-quantum standards (ML-KEM / FIPS 203) ahead of&nbsp;anticipated&nbsp;regulatory mandates and requires no customer action to activate.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Typical use cases include verifying quantum-safe connection status across the landscape&nbsp;and meeting compliance requirements for post-quantum readiness.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><H2 id="toc-hId--193472063">Access Logging &amp; Column-Level Security for SQL Views</H2><P>SAP HANA Cloud introduces two complementary capabilities for protecting sensitive data: access logging for columns&nbsp;containing&nbsp;sensitive data and column-level security for SQL views. Together, these address&nbsp;two&nbsp;sides of the compliance equation - preventing unauthorized access and detecting all access for audit purposes - enabling compliant direct SQL access to data&nbsp;containing&nbsp;sensitive columns.&nbsp;</P><H3 id="toc-hId--683388575"><STRONG>The Context</STRONG>&nbsp;</H3><P>Regulations like GDPR require both prevention of unauthorized access to personal data AND demonstrable accountability for all access. Direct SQL access to HANA databases&nbsp;containing&nbsp;sensitive data requires enforcement and audit trails to meet these compliance requirements.&nbsp;</P><P>These two capabilities address this:&nbsp;</P><TABLE width="0"><TBODY><TR><TD width="75"><P>Prevent:&nbsp;</P></TD><TD width="206"><P><STRONG>Column-Level Security for SQL Views</STRONG>&nbsp;</P></TD><TD width="348"><P>Ensures unauthorized users cannot see sensitive columns (returned as NULL)&nbsp;</P></TD></TR><TR><TD width="75"><P>Detect:&nbsp;</P></TD><TD width="206"><P><STRONG>Access Logging for Sensitive Columns</STRONG>&nbsp;</P></TD><TD width="348"><P>Logs who accessed which sensitive columns, when, and on which table (values never logged)&nbsp;</P></TD></TR></TBODY></TABLE><H3 id="toc-hId--879902080">Access Logging&nbsp;</H3><P>Access logging is activated directly in the table definition using the AUDIT (READ | NONE) syntax. Once columns are marked, read access is automatically reported via the predefined "SAP - column access" audit policy, as no custom policy creation is needed. Both direct and indirect access is reported, including access via views or during procedure execution. The audit log entry includes the schema name, table name, and the list of accessed columns (quoted and comma-separated), while the actual data values and SQL statements are never logged&nbsp;-&nbsp;ensuring the audit trail provides accountability without creating a secondary repository of sensitive data.&nbsp;</P><H3 id="toc-hId--1076415585">Column-Level Security&nbsp;</H3><P>Column-level security for SQL views&nbsp;provides&nbsp;a dynamic access control mechanism. Columns on SQL views are tagged with DPP classification&nbsp;identifying&nbsp;Sensitive Personal Data, and the authorization model&nbsp;determines&nbsp;which tagged columns are&nbsp;permitted&nbsp;for access.&nbsp;At query&nbsp;execution time,&nbsp;the engine evaluates&nbsp;authorization&nbsp;dynamically – this evaluation is not tied to the current database user but can rely on any information in the session context&nbsp;or other tables.&nbsp;Authorized columns return actual values, while unauthorized columns return NULL. The key design decision is that columns are masked, not omitted - query structure&nbsp;remains&nbsp;stable for all consumers, meaning downstream dashboards, pipelines, and applications continue to function without modification.&nbsp;</P><H3 id="toc-hId--1272929090"><STRONG>Combined Value</STRONG>&nbsp;</H3><P>Together, these capabilities enable compliant direct SQL access to sensitive data in SAP HANA Cloud. Column-level security ensures users see only data they&nbsp;are authorized to&nbsp;access, while access logging provides auditable evidence of all access events, satisfying both the prevention and accountability requirements of GDPR and similar regulations.<BR />The operational overhead is minimal: DDL-based activation for access logging, a system-managed audit policy, and dynamic authorization evaluation for column-level security&nbsp;-&nbsp;with no duplicate views, no application-layer workarounds, and no custom configuration frameworks&nbsp;required.&nbsp;</P><P>&nbsp;</P><H2 id="toc-hId--1176039588"><SPAN>Increase in-memory capacity with up to 16 TB and 24 TB Instances on AWS</SPAN><SPAN>&nbsp;</SPAN></H2><P>As enterprise workloads continue to grow in size and complexity, organizations increasingly require larger in-memory database configurations to support mission-critical transactional and analytical applications.<BR />With the Q2 2026 release, SAP HANA Cloud expands its scalability by introducing support for <STRONG>16 TB and 24 TB database instances on AWS</STRONG>.</P><P>These new instance sizes are designed for customers running some of the most demanding enterprise workloads, providing the processing power and memory capacity required for large-scale SAP and custom applications while maintaining the simplicity of a fully managed cloud service.</P><P>To ensure predictable performance and guaranteed resource availability, these instances are deployed on <STRONG>dedicated, pre-reserved physical infrastructure</STRONG> that is allocated exclusively to a customer's subaccount within a selected AWS availability zone. The reserved capacity remains available throughout the three-year reservation period, regardless of whether the database instance is running, stopped, paused, or temporarily deprovisioned.</P><P>Customers can request these instance sizes directly through SAP HANA Cloud Central by opening an SAP support ticket. Once the requested capacity has been approved and the dedicated infrastructure has been provisioned, the new database instance can be deployed against the reserved resources.</P><P>Support for 16 TB and 24 TB instances is currently available in selected AWS regions. For the latest information on supported regions and availability zones, please refer to the SAP HANA Cloud <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/large-sap-hana-database-instances" target="_blank" rel="noopener noreferrer">documentation</A>.</P><P>&nbsp;</P><H2 id="toc-hId--1372553093"><SPAN><STRONG>Data Lake Innovations</STRONG></SPAN></H2><H3 id="toc-hId--1862469605"><SPAN><STRONG>Thin Clone Decoupling for Data Lake Relational Engine</STRONG></SPAN><SPAN>&nbsp;</SPAN></H3><P><SPAN>Building on the thin clone capability in SAP HANA Cloud, data lake relational engine, which is designed for creation and deployment of clones of petabyte-scale databases in development and testing environments in just a few minutes, we are introducing&nbsp;</SPAN><SPAN>thin clone decoupling.&nbsp;</SPAN><SPAN>Thin clone decoupling promotes a thin clone to a fully standalone SAP HANA Cloud, data lake relational engine instance. Once the decoupling process completes, the instance&nbsp;operates&nbsp;independently, completely detached from the parent instance.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Upon decoupling, backups are enabled on the decoupled instance, making it eligible for disaster recovery scenarios. The decoupled instance can itself serve as a source for creating new thin clones.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN> </SPAN><SPAN>Thin clone decoupling opens a clear path for promoting development or test databases to production-grade instances improving data reliability and integrity.</SPAN><SPAN>&nbsp;</SPAN></P><P>&nbsp;</P><H2 id="toc-hId--1597396412"><SPAN><STRONG>Innovations on Calculation View features</STRONG></SPAN></H2><P>The <A class="" title="https://community.sap.com/t5/technology-blog-posts-by-sap/calculation-view-features-of-2026-qrc2/ba-p/14415862" href="https://community.sap.com/t5/technology-blog-posts-by-sap/calculation-view-features-of-2026-qrc2/ba-p/14415862" target="_blank">calculation view features blog for 2026 QRC2</A>&nbsp;by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/239612">@jan_zwickel</a>&nbsp;covers several new calculation view capabilities. Two complementary deployment options help to reduce deployment time and protect privileges: <STRONG>optimized redeployment</STRONG> skips unchanged dependent views instead of dropping and recreating them all, and the new <STRONG>replace option</STRONG> performs in-place replacement so that cross-container privileges are not lost.</P><P>On the scalability front, <STRONG>Active/Active read-enabled hints</STRONG> can be set at the individual calculation view level for fine-grained query routing to read replicas. A <STRONG>Join-to-Non-Equi-Join conversion</STRONG> in the context menu eliminates the need to rebuild join logic from scratch when switching from equi joins to non-equi joins. The support of <STRONG>calculated measures executed at query runtime&nbsp;</STRONG>allow defining runtime calculations for <STRONG>MDS Cubes</STRONG> in calculation views. Finally, a new <STRONG>status dialog</STRONG> surfaces the view's connection state, read-only reasons, data classification inconsistencies, and BDC integration status when a calculation view is opened.</P><P>&nbsp;</P><HR /><P>&nbsp;</P><P>Thanks for taking the time to explore the What’s New in SAP HANA Cloud on Q2 2026 innovations!</P><P>If you’d like to go deeper into the technical details of the Q2 2026 release, we recommend visiting the&nbsp;<A href="https://help.sap.com/whats-new/2495b34492334456a49084831c2bea4e" target="_blank" rel="noopener noreferrer">What’s New Viewer</A>&nbsp;in the technical documentation. It provides a comprehensive overview of the full release scope. To stay informed about upcoming innovations, announcements, and best practices, follow the&nbsp;<A href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud/pd-p/73554900100800002881" target="_blank">SAP HANA Cloud tag</A>.</P><P>You can also find our latest blog posts by searching for the&nbsp;<A href="https://community.sap.com/t5/tag/whatsnewinsaphanacloud/tg-p" target="_blank">#whatsnewinsaphanacloud</A>&nbsp;hashtag.</P><P>If you missed earlier What’s New webinars, you’ll find recordings of past sessions and upcoming events in our&nbsp;<A href="https://www.youtube.com/playlist?list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN" target="_blank" rel="noopener nofollow noreferrer">YouTube playlist</A>. Our What’s New webinar covering the Q2 2026 innovations will be posted on this playlist very soon. You can also download the slides from the webinar <A href="https://dam.sap.com/mac/u/a/kABQpTr?rc=10&amp;doi=SAP1324444" target="_blank" rel="noopener noreferrer">here</A>.</P><P>Do you have questions about SAP HANA Cloud or want to share your thoughts on the new features?<BR />Join the conversation in the&nbsp;<A href="https://community.sap.com/t5/technology-q-a/qa-p/technology-questions" target="_blank">SAP HANA Cloud Community Q&amp;A</A>&nbsp;or leave a comment below. We’d love to hear from you!</P> 2026-07-03T11:29:14.472000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/code-connect-2026-final-info-before-we-kick-off/ba-p/14434082 Code Connect 2026: Final Info Before We Kick Off! 2026-07-06T11:02:20.615000+02:00 BirgitS https://community.sap.com/t5/user/viewprofilepage/user-id/41902 <P><SPAN>Code Connect 2026 is just around the corner! From <STRONG>July 13–16, 2026</STRONG>, the SAP developer community will gather in <STRONG>St. Leon-Rot, Germany</STRONG> – onsite and online.</SPAN></P><P><SPAN>Here’s everything you need to know before we get started.</SPAN></P><P>&nbsp;</P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Code Connect 2026" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/429665i8288C16ACE3EC08A/image-size/large?v=v2&amp;px=999" role="button" title="BirgitS_0-1783324399225.png" alt="BirgitS_0-1783324399225.png" /></span></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1819132728">We Are Fully Booked!</H2><P><SPAN>All onsite tickets are <STRONG>fully booked</STRONG> - thank you for the amazing interest!</SPAN></P><P><SPAN>If you couldn’t secure a ticket:</SPAN></P><UL><LI><SPAN>Join the <STRONG>waiting lists on </STRONG><A href="https://code-connect.dev/" target="_blank" rel="noopener nofollow noreferrer"><STRONG>Code Connect 2026</STRONG></A> in case seats become available.</SPAN></LI><LI><SPAN>Follow selected sessions via <STRONG>live stream</STRONG> or <STRONG>Microsoft Teams</STRONG> link.</SPAN></LI></UL><P><SPAN>Even if you're not onsite, you can still be part of Code Connect. Selected sessions will be streamed live, and recordings of some sessions will be available afterwards. Check back soon for details.</SPAN></P><P>&nbsp;</P><TABLE><TBODY><TR><TD width="200px"><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="UI5con" style="width: 76px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/429685i9BABBF665F151967/image-size/small?v=v2&amp;px=200" role="button" title="UI5conSmall.png" alt="UI5conSmall.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG><SPAN>UI5con (July 14)</SPAN></STRONG></P></TD><TD width="465.047px"><UL><LI><SPAN>Main stage sessions will be live streamed on <A href="https://www.youtube.com/live/CMPudw4scSE" target="_blank" rel="noopener nofollow noreferrer">YouTube</A>. </SPAN></LI><LI><SPAN>Check the <A href="https://openui5.org/ui5con/program.html" target="_blank" rel="noopener nofollow noreferrer">agenda</A> to see which sessions are streamed.</SPAN></LI></UL></TD></TR><TR><TD width="200px"><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="reCAP" style="width: 76px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/429686i805B9E02FF474F62/image-size/small?v=v2&amp;px=200" role="button" title="reCAPSmall.png" alt="reCAPSmall.png" /></span></STRONG></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>re&gt;≡CAP (July 15)</STRONG></P></TD><TD width="465.047px"><UL><LI><SPAN>Main stage sessions will be <A href="https://broadcast.sap.com/go/reCAP" target="_blank" rel="noopener noreferrer">broadcasted</A>. </SPAN></LI><LI><SPAN>Some sidetracks (W1/W2) can be attended via <A href="https://teams.microsoft.com/meet/347149883889697?p=ZkR4erzGjpPRtZ6zJh" target="_blank" rel="noopener nofollow noreferrer">Microsoft Teams link</A>. </SPAN></LI><LI><SPAN>Check the <A href="https://recap-conf.dev/program.html" target="_blank" rel="noopener nofollow noreferrer">agenda</A> to see which sessions are broadcasted or available via Microsoft Teams link.</SPAN></LI></UL></TD></TR><TR><TD width="200px"><P><STRONG><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="HANATechCon" style="width: 76px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/429687iDED26458B98CF5BC/image-size/small?v=v2&amp;px=200" role="button" title="HANATechConSmall.png" alt="HANATechConSmall.png" /></span></SPAN></STRONG></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG><SPAN>HANA Tech Con (July 16)</SPAN></STRONG></P></TD><TD width="465.047px"><UL><LI><SPAN>The links will be announced on the event day.</SPAN></LI></UL></TD></TR></TBODY></TABLE><P>&nbsp;</P><H2 id="toc-hId-1622619223">The Agendas Are Live</H2><P><SPAN>The full program is already available - time to plan your schedule!</SPAN></P><P><SPAN>Check-In opens at 8.00 AM every day. Please bring the QR code with you that you can find in your ticket.</SPAN></P><P><STRONG><SPAN>July 13 – Code Jams &amp; Community Meetup</SPAN></STRONG></P><UL><LI><SPAN>Hands-on <STRONG>Code Jams</STRONG>:</SPAN></LI><UL><LI><STRONG><SPAN>OpenUI5</SPAN></STRONG></LI><LI><STRONG><SPAN>CAP</SPAN></STRONG></LI><LI><STRONG><SPAN>AI Agents</SPAN></STRONG></LI></UL><LI><SPAN>Informal <STRONG>pre-event meetup</STRONG> (no registration needed):<BR />Ihle Besen, Höfe am Sträßel 3, 69231 Rauenberg<BR />5:00 PM CEST</SPAN></LI></UL><P><STRONG><SPAN>July 14–16 – Main Conference Days</SPAN></STRONG></P><P><SPAN>Explore all agendas:</SPAN></P><UL><LI><STRONG><SPAN>July 14:</SPAN></STRONG><SPAN> <A href="https://openui5.org/ui5con/program.html" target="_blank" rel="noopener nofollow noreferrer">UI5con</A></SPAN></LI><LI><STRONG><SPAN>July 15:</SPAN></STRONG><SPAN> <A href="https://recap-conf.dev/program.html" target="_blank" rel="noopener nofollow noreferrer">re&gt;≡CAP</A> </SPAN></LI><LI><STRONG><SPAN>July 16:</SPAN></STRONG><SPAN> <A href="https://hanatech.community/" target="_blank" rel="noopener nofollow noreferrer">HANA Tech Con</A></SPAN></LI></UL><P><SPAN>On <STRONG>July 14</STRONG> also the <STRONG>HANA AI CodeJam</STRONG> takes place. </SPAN></P><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-1426105718">Location</H2><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Location" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/429667i854A5327BE35386B/image-size/large?v=v2&amp;px=999" role="button" title="BirgitS_4-1783324399247.png" alt="BirgitS_4-1783324399247.png" /></span></P><P><SPAN>Code Connect takes place at:</SPAN></P><P><SPAN>SAP-Allee 27<BR />68789 St. Leon-Rot, Germany</SPAN></P><P><SPAN>Find detailed information on <STRONG>directions, parking, and public transport</STRONG> <A href="https://code-connect.dev/location.html" target="_blank" rel="noopener nofollow noreferrer">here.</A></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1229592213"><SPAN>Final Tips</SPAN></H2><UL><LI>Bookmark your favorite sessions in advance</LI><LI><SPAN>Arrive early for popular sessions (rooms fill quickly!)</SPAN></LI><LI>Bring your laptop for Code Jams and hands-on sessions/ workshops</LI><LI><SPAN>Don’t miss the networking moments - some of the best conversations happen in between sessions</SPAN></LI><LI><SPAN>Follow the agendas closely for last-minute updates</SPAN></LI></UL><P><SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-1033078708">See You Soon!</H2><P><SPAN>We’re looking forward to an inspiring week of learning, sharing, and connecting.</SPAN></P><P><STRONG><SPAN>See you at Code Connect 2026!</SPAN></STRONG></P> 2026-07-06T11:02:20.615000+02:00 https://community.sap.com/t5/abap-blog-posts/why-stock-fields-return-zero-in-custom-cds-views-on-marc-and-how-to-resolve/ba-p/14417444 Why Stock Fields Return Zero in Custom CDS Views on MARC - and How to Resolve It 2026-07-08T11:22:05.761000+02:00 subhasmit_12369 https://community.sap.com/t5/user/viewprofilepage/user-id/855662 <P><STRONG>Why Stock Fields Return Zero in Custom CDS Views on MARC - and How to Resolve It</STRONG><BR /><BR />I was building a custom CDS view on the <STRONG>MARC</STRONG> table (Plant Data for Material) to extract data into <STRONG>SAP Datasphere</STRONG> using <STRONG>Change Data Capture (CDC)</STRONG> for delta loads.</P> <P>After activating the view, I checked the data and found something odd. The field <STRONG>TRAME</STRONG> (Stock in Transit) had a proper value in the MARC table, but in my CDS view the same field was completely empty.</P> <P>To give a concrete example, for one material and plant the MARC table showed <STRONG>TRAME = 50.000</STRONG>, but my CDS view showed <STRONG>TRAME = 0.000</STRONG> for the same key. All the master data fields were perfectly fine. Only the stock field was wrong.</P> <P>That single clue — master data correct, stock field zero — is what pointed me to the real cause.</P> <P><STRONG><BR />Where the data actually lives in S/4HANA</STRONG></P> <P>In the older SAP ECC system, stock quantities were physically saved in many tables, and the same figure was often repeated in several places. This created redundancy and slowed things down.</P> <P>In S/4HANA, SAP redesigned this part of the system with the <STRONG>New Simplified Data Model (NSDM)</STRONG>. The idea is straightforward: all stock movements are written into a single table called <STRONG>MATDOC</STRONG>, and the stock figures are <STRONG>calculated when you ask for them</STRONG> instead of being stored everywhere.</P> <P>Because of this change, MARC became a so-called <STRONG>hybrid table</STRONG>. It still physically stores the material master and planning data, but the <STRONG>stock quantity fields are no longer filled in the table itself</STRONG>. Fields like TRAME, UMLMC, GLGMG and BWESB are now worked out on the fly from MATDOC whenever they are read.</P> <P>So in S/4HANA, the TRAME column inside the physical MARC table is basically empty. The real stock-in-transit figure is calculated from MATDOC only at the moment it is needed.<BR /><BR /><STRONG>Why SE16 showed the value but my CDS did not</STRONG></P> <P>This is the most important point of the whole story. SE16 and my CDS view were reading the same table through two completely different paths.</P> <P>When you open MARC in <STRONG>SE16</STRONG>, the read goes through the normal application layer. SAP automatically <STRONG>redirects</STRONG> that read to a proxy object behind MARC, which performs the MATDOC calculation and returns the correct TRAME value. That is why SE16 happily showed 50.000.</P> <P>My CDS view, on the other hand, was written as select from marc. A CDS view runs straight on the database and reads the <STRONG>physical MARC table directly</STRONG>. It never passes through the redirect, so it picked up the empty physical column and returned 0.000.</P> <P>In one sentence:</P> <P>SE16 reads MARC through the proxy and gets the calculated value. A CDS that selects directly from MARC reads the raw table and gets nothing. That difference in the read path was the entire reason the data "did not come."<BR /><BR /></P> <P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="subhasmit_12369_0-1781252226540.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/421086iD5A8F7D68C03AB8B/image-size/medium?v=v2&amp;px=400" role="button" title="subhasmit_12369_0-1781252226540.png" alt="subhasmit_12369_0-1781252226540.png" /></span></P> <P><STRONG><BR />My first fix — and why it failed</STRONG><BR /><BR />My first idea was simple. If the proxy returns the correct value, why not read from the proxy instead of the table? So I changed the source of my view to the proxy object:<BR /><BR /><STRONG>Before (TRAME comes as zero):<BR /><BR /></STRONG>@AbapCatalog.sqlViewName: 'ZCDS_MARC_DEX'</P> <P>@AbapCatalog.compiler.compareFilter: true</P> <P>@AbapCatalog.preserveKey: true</P> <P>@AccessControl.authorizationCheck: #NOT_REQUIRED</P> <P>@EndUserText.label: 'Plant Data for Material'</P> <P>@Metadata.ignorePropagatedAnnotations: true</P> <P><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/15206">@analytics</a>.dataExtraction:{enabled: true,</P> <P>delta.changeDataCapture:{mapping:[</P> <P>{table:'marc',role:#MAIN,</P> <P>viewElement:['Matnr','Werks'],</P> <P>tableElement:['matnr','werks']}]}}</P> <P>define view ZCDS_MARC_DEX_CDC as select from marc</P> <P>{</P> <P>&nbsp;&nbsp; key matnr as Matnr,</P> <P>&nbsp;&nbsp; key werks as Werks,</P> <P>&nbsp;&nbsp; pstat as Pstat,</P> <P>&nbsp;&nbsp; lvorm as Lvorm,</P> <P>&nbsp;&nbsp; bwtty as Bwtty,</P> <P>&nbsp;&nbsp; xchar as Xchar,</P> <P>&nbsp;&nbsp; trame as Trame,</P> <P><STRONG>... remaining MARC fields ...<BR /><BR /></STRONG><STRONG>After (TRAME correct and CDC activates):<BR /><BR /></STRONG>@AbapCatalog.sqlViewName: 'ZCDS_MARC_DEX'</P> <P>@AbapCatalog.compiler.compareFilter: true</P> <P>@AbapCatalog.preserveKey: true</P> <P>@AccessControl.authorizationCheck: #NOT_REQUIRED</P> <P>@EndUserText.label: 'Plant Data for Material'</P> <P>@Metadata.ignorePropagatedAnnotations: true&nbsp;</P> <P><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/15206">@analytics</a>:{</P> <P>dataExtraction.enabled: true,</P> <P>dataExtraction.delta.changeDataCapture:{</P> <P>mapping:[</P> <P>&nbsp;&nbsp; {</P> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table:'marc',</P> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role:#MAIN,</P> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; viewElement:['Matnr','Werks'],</P> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableElement:['matnr','werks']</P> <P>&nbsp;&nbsp; }]</P> <P>}</P> <P>}</P> <P><STRONG>define view ZCDS_MARC_DEX_CDC as select from nsdm_e_marc</STRONG></P> <P>{</P> <P>&nbsp;&nbsp; key matnr as Matnr,</P> <P>&nbsp;&nbsp; key werks as Werks,</P> <P>&nbsp;&nbsp; pstat as Pstat,</P> <P>&nbsp;&nbsp; lvorm as Lvorm,</P> <P>&nbsp;&nbsp; bwtty as Bwtty,&nbsp;</P> <P>&nbsp;&nbsp; xchar as Xchar,</P> <P>&nbsp;&nbsp; trame as Trame,</P> <P><STRONG>... remaining MARC fields ...<BR /></STRONG><BR />The only real change is the data source: from marc to nsdm_e_marc. The CDC mapping still refers to the physical table marc</P> <P><STRONG><BR />This is not only a MARC problem</STRONG></P> <P>The same behaviour happens with <STRONG>all NSDM stock tables</STRONG> in S/4HANA. If your CDS reads stock fields straight from any of these, you can get zeros:</P> <UL> <LI>MARC – plant stock fields (TRAME, UMLMC, GLGMG, BWESB)</LI> <LI>MARD – storage location stock</LI> <LI>MCHB – batch stock</LI> <LI>MKOL – special / consignment stock</LI> <LI>MSKA – sales order stock</LI> <LI>MSKU – customer special stock</LI> <LI>MSLB – stock with vendor (subcontracting)</LI> <LI>MSPR, MSSA, MSSQ – project and sales order stock totals</LI> <LI>MSTB, MSTE, MSTQ – stock in transit tables</LI> </UL> <P><BR />A simple rule of thumb: if a table held <STRONG>stock quantities</STRONG> in ECC, in S/4HANA those quantities are now calculated, and a direct CDS read will return zero. Use the table's<STRONG> proxy</STRONG> instead.<BR /><BR /><STRONG>How to find the correct proxy in your own system</STRONG></P> <P>You do not have to guess the name. For any table (example: MARC):</P> <OL> <LI>Open the table in <STRONG>SE11</STRONG>.</LI> <LI>Choose menu <STRONG>Extras → Replacement Object</STRONG> to see the assigned proxy (for MARC it is NSDM_E_MARC).</LI> </OL> <P><STRONG>Example</STRONG> – "<STRONG>MARC"</STRONG> Replacement Object</P> <P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="subhasmit_12369_1-1781252226545.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/421085iF97E468158DFCD53/image-size/medium?v=v2&amp;px=400" role="button" title="subhasmit_12369_1-1781252226545.png" alt="subhasmit_12369_1-1781252226545.png" /></span></P> <P class=""><STRONG>Conclusion</STRONG></P> <P class="">What first looked like a bug in my CDS view turned out to be normal S/4HANA behaviour. Under the New Simplified Data Model, stock quantity fields are no longer stored in tables like MARC — they are calculated from MATDOC only when they are read. SE16 shows the correct value because it goes through the replacement object, while a CDS view that reads the table directly picks up the empty physical column and returns zero.</P> <P class="">The fix itself is small but important: source the CDS view from the replacement object (for MARC, NSDM_E_MARC) instead of the base table. After that one change, TRAME returned the correct value. And because this is standard NSDM behaviour, the same approach works for every stock table in the family — whenever a stock field comes back as zero, the first thing to check is whether you are reading the base table directly instead of its replacement object.</P> <P class="">The bigger lesson I took away is to always confirm where a field's data actually lives before building a CDS view on top of a table. A quick look at SE11 → Extras → Replacement Object tells you whether a table is a hybrid table and which object you should really be reading from. That single check can save a lot of confusing "the value is there in SE16 but missing in my view" situations.</P> 2026-07-08T11:22:05.761000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/calculation-view-features-of-2026-qrc2/ba-p/14415862 Calculation View Features of 2026 QRC2 2026-07-08T14:50:53.797000+02:00 jan_zwickel https://community.sap.com/t5/user/viewprofilepage/user-id/239612 <P><SPAN>Within the time frame of 2026 Q2, several new calculation view features have been released in SAP Business Application Studio when connected to SAP HANA Cloud database QRC2. Some of these features are highlighted below. You can find examples that illustrate the individual features&nbsp;</SPAN><A href="https://github.com/SAP-samples/hana-cloud-learning/tree/main/CV_2026_QRC2_Selected_Calculation_View_Modeling_Features" target="_blank" rel="nofollow noopener noreferrer">here</A><SPAN>. An overview of features of other releases can be found&nbsp;</SPAN><A href="https://blogs.sap.com/2022/08/25/new-calculation-view-modeling-features-in-sap-hana-cloud/" target="_blank" rel="noopener noreferrer">here</A><SPAN>.</SPAN></P><H3 id="toc-hId-1946405822"><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-performance-guide-for-developers/optimized-redeployment-of-calculation-views" target="_self" rel="noopener noreferrer">Optimized Redeployment</A></H3><P>When a calculation view is redeployed in a stacked scenario, all dependent objects in the same HDI container are normally dropped and sequentially recreated. This default behavior avoids cascading revalidations but comes with a cost: privileges on dependent objects are temporarily, or in cross-container scenarios potentially permanently, revoked, and the full recreate cycle adds significant deployment time.</P><P>Optimized redeployment addresses this. Instead of dropping all dependents upfront, a consistency check determines which dependent views are still valid after the change. Views unaffected by the redeployed calculation view are kept as-is and skipped entirely. This reduces both the time spent recreating unaffected views and the privilege reassignment overhead.</P><P>To enable optimized redeployment for calculation views, add the following parameter to the <CODE>hdi-deploy</CODE> invocation in <CODE>package.json</CODE>:</P><DIV class=""><PRE><CODE>"start": "node node_modules/@sap/hdi-deploy/deploy.js --parameter com.sap.hana.di.calculationview/optimized_redeploy=true"</CODE></PRE></DIV><P>A global parameter (<CODE>optimized_redeploy=true</CODE>) is also available and activates the behavior for all HDI object types that support it.<BR /><BR /></P><H3 id="toc-hId-1749892317"><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-performance-guide-for-developers/optimized-redeployment-of-calculation-views" target="_self" rel="noopener noreferrer">Replace Instead of Drop and Recreate During Redeployment</A></H3><P>By default, calculation views are dropped and recreated during redeployment. Dropping a view revokes all privileges associated with it. Privileges defined in HDI roles of the same container are automatically regranted at the end of deployment, but direct privileges held by roles outside the current HDI container are permanently lost.</P><P>The new replace option substitutes the drop-and-recreate cycle with an in-place replacement. Because the object is never dropped, existing privileges are preserved throughout deployment. The benefit is most significant when combined with optimized redeployment: without it, dependent views are dropped before the root view is replaced, so they never benefit from the replace logic. With both options active, the replace strategy also applies to dependent views.</P><P>To enable the replace behavior, pass the following parameter:</P><DIV class=""><PRE><CODE>"start": "node node_modules/@sap/hdi-deploy/deploy.js --parameter optimized_replace=true"</CODE></PRE></DIV><P>Combining <CODE>optimized_replace=true</CODE> with <CODE>optimized_redeploy=true</CODE> gives the strongest deployment time and privilege preservation benefit.</P><P>&nbsp;</P><H3 id="toc-hId-1553378812"><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-modeling-guide-for-sap-business-application-studio/supported-execution-hints" target="_self" rel="noopener noreferrer">Active/Active Read-Enabled Hints</A></H3><P>In an Active/Active (Read-Enabled) setup, query routing hints can now be configured at the individual calculation view level. This gives fine-grained control over whether a query is directed to the primary system or the read replica, allowing workload to be distributed and overall throughput to be increased.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="activeActiveHint.png" style="width: 764px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420173i8E72DAB3B1B8B101/image-size/large?v=v2&amp;px=999" role="button" title="activeActiveHint.png" alt="activeActiveHint.png" /></span></P><P>&nbsp;</P><P>Hints are evaluated only on calculation views that are directly referenced in the query.&nbsp;</P><P>&nbsp;</P><H3 id="toc-hId-1356865307"><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-modeling-guide-for-sap-business-application-studio/convert-join-nodes-to-non-equi-join-nodes" target="_self" rel="noopener noreferrer">Switching from a Join Node to a Non-Equi Join Node</A></H3><P>A Join node can now be converted directly to a Non-Equi Join node via the node's context menu, without needing to manually rebuild the join logic.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="convert.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420174iDFE0CC3FB4F2FEA8/image-size/large?v=v2&amp;px=999" role="button" title="convert.png" alt="convert.png" /></span></P><P>During conversion you can choose how the resulting join condition is expressed: either graphically, based on the column display,</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="graphical.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420175i61E31946FC8EC9A2/image-size/large?v=v2&amp;px=999" role="button" title="graphical.png" alt="graphical.png" /></span></P><P>or as an explicit join expression.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="expression.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420176iE7BC947C16BB8D08/image-size/large?v=v2&amp;px=999" role="button" title="expression.png" alt="expression.png" /></span></P><P>This simplifies the refactoring of join logic and reduces manual rework. Note that features not supported by Non-Equi Join nodes, such as dynamic joins, text joins, and filter expressions, are removed automatically during the conversion.</P><H3 id="toc-hId-1160351802">Calculation View Status Dialog</H3><P>When opening a calculation view with certain properties, a status dialog now appears and reports details about the current view state. Where applicable, the dialog also offers direct actions to resolve issues, for example, prompting you to log in to Cloud Foundry when no active database connection is found.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="status.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420178i974FE862FAC05D73/image-size/large?v=v2&amp;px=999" role="button" title="status.png" alt="status.png" /></span></P><P>The dialog covers four categories:</P><UL><LI><STRONG>Read-only mode:</STRONG>&nbsp;reasons why the calculation view was opened in read-only mode</LI><LI><STRONG>Database connection:</STRONG>&nbsp;current connection status to the database</LI><LI><STRONG><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-modeling-guide-for-sap-business-application-studio/data-classification-for-calculation-views" target="_self" rel="noopener noreferrer">Data classification</A> inconsistencies:</STRONG>&nbsp;detected mismatches in the data classification setting</LI><LI><STRONG><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-modeling-guide-for-sap-business-application-studio/calculation-views-for-sap-business-data-cloud" target="_self" rel="noopener noreferrer">BDC integration</A>:</STRONG>&nbsp;whether the calculation view is used with BDC integration mode</LI></UL><H3 id="toc-hId-963838297">&nbsp;</H3><H3 id="toc-hId-767324792"><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-modeling-guide-for-sap-business-application-studio/define-mds-cube-based-on-elements-in-calculation-view" target="_self" rel="noopener noreferrer">Calculated Measures in MDS Cubes</A></H3><P>Calculated measures can now be added to MDS Cubes and are evaluated at query runtime. This makes it possible to execute calculations at query runtime.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="calculatedMeasures.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/420183iC91644058E048978/image-size/large?v=v2&amp;px=999" role="button" title="calculatedMeasures.png" alt="calculatedMeasures.png" /></span></P><P>If a calculated measure cannot be translated into a valid MDS formula, deployment fails with a corresponding error message.</P> 2026-07-08T14:50:53.797000+02:00 https://community.sap.com/t5/sap-cap-blog-posts/connecting-two-sap-cap-projects-without-duplicating-your-data/ba-p/14422754 Connecting Two SAP CAP Projects Without Duplicating Your Data 2026-07-08T22:32:55.964000+02:00 Inderpreet https://community.sap.com/t5/user/viewprofilepage/user-id/1390712 <P>There's a problem that comes up on almost every multi-project SAP BTP engagement, and I've seen teams solve it in some really messy ways.</P><P>You have two CAP projects. One of them — let's call it Project A — owns a set of shared constants, configuration parameters, maybe a job run log. Project B needs to read that data. So what do people do? They copy the table. Or they create an API. Or they hardcode values that really shouldn't be hardcoded.</P><P>All of these work. None of them are clean.</P><P>The proper solution is HDI cross-container synonyms. Once it's set up, Project B can query Project A's HANA tables directly — same SQL, same CAP service code, no replication, no drift between environments. It looks and feels like a local table. It just happens to live in someone else's HDI container.</P><P>I put together a Tech Bite on this recently and figured it's worth writing up properly, because the documentation is scattered and the first time you set it up you will almost certainly hit at least one of the three errors I mention at the end.</P><HR /><H2 id="toc-hId-1818156261">The thing nobody explains first: why it's complicated at all</H2><P>HDI containers are isolated. That's the point of them — each CAP project gets its own schema, its own deploy lifecycle, its own access controls. But that isolation also means Container B can't just say "I want to read from Container A's schema" — because the schema name is dynamically assigned at deployment time. You can't hardcode it.</P><P>So SAP's solution is a User-Provided Service, or UPS. It's a simple Cloud Foundry construct — basically a key-value store with no runtime component — that carries the schema name of Project A. You register it with the <CODE>-t hana</CODE> tag, declare it in Project B's <CODE>mta.yaml</CODE>, and the HDI deployer picks it up during deployment and injects the correct schema wherever you've referenced it.</P><P>That's it. That's the whole trick. Everything else — the synonym files, the config files, the grants — is just plumbing on top of that core idea.</P><HR /><H2 id="toc-hId-1621642756">What you're actually building in Project B</H2><P>Once you understand what the UPS is doing, the rest makes sense. You need four types of files:</P><P><STRONG><CODE>.hdiconfig</CODE></STRONG> tells the deployer which plugins to use. You need two of these — one in <CODE>db/src/</CODE> and one in <CODE>db/cfg/</CODE>. It's a small JSON file, easy to get wrong by forgetting one of the two locations.</P><P><STRONG><CODE>.hdbsynonym</CODE></STRONG> is where you define the local alias. So instead of referencing <CODE>PROJECT_A_SCHEMA.CONSTANTS_TABLE</CODE> (which you can't hardcode anyway), you just write <CODE>CONSTANTS_TABLE</CODE> and map it to the actual technical object name in Project A. This lives in <CODE>db/src/</CODE>.</P><P><STRONG><CODE>.hdbsynonymconfig</CODE></STRONG> is the file that connects the synonym to the UPS. This is what makes the schema resolution dynamic. It lives in <CODE>db/cfg/</CODE> — deliberately separate from <CODE>db/src/</CODE> to avoid deployment conflicts. The key thing here is that the value you put in <CODE>schema.configure</CODE> must start with exactly the same string you used as the <CODE>key</CODE> in <CODE>mta.yaml</CODE>. More on this when I get to the errors.</P><P><STRONG><CODE>.hdbgrants</CODE></STRONG> is the access control piece. Project B's container needs to be explicitly granted a role from Project A. That role needs to already exist over in Project A — it's not something you create in Project B. Your Project A team needs to have a role set up that grants SELECT on the tables you need.</P><HR /><H2 id="toc-hId-1425129251">The setup, briefly</H2><P>On the Cloud Foundry side, you create the UPS once:</P><PRE><CODE>cf create-user-provided-service ProjectA_UPS \ -p '{"schema": "YOUR_PROJECT_A_SCHEMA"}' -t hana</CODE></PRE><P>Then in Project B's <CODE>mta.yaml</CODE>, you declare it as an existing service resource and bind it to the db-deployer module under <CODE>SERVICE_REPLACEMENTS</CODE>:</P><PRE><CODE>- name: ProjectA-UPS-resource group: SERVICE_REPLACEMENTS properties: key: ProjectA_UPS service: ~{service-name}</CODE></PRE><P>Your synonym config then references it like this:</P><PRE><CODE>"schema.configure": "ProjectA_UPS/schema"</CODE></PRE><P>And once everything deploys, your CAP service code doesn't need to know any of this happened. You just query it:</P><PRE><CODE>const db = await cds.connect.to("db"); const results = await db.run( `SELECT * FROM "CONSTANTS_TABLE" WHERE "PARAM" = ?`, [value] );</CODE></PRE><P>Clean. No different from querying a local table.</P><HR /><H2 id="toc-hId-1228615746">The three errors you will probably hit</H2><P>I'm not going to pretend this always works first time. Here's what goes wrong most often:</P><P><STRONG>"synonym config refers to unknown service replacement"</STRONG> — This one is almost always a key mismatch. The string you put as <CODE>key</CODE> in <CODE>mta.yaml</CODE> and the prefix before <CODE>/schema</CODE> in your <CODE>.hdbsynonymconfig</CODE> need to be identical. Character for character. Check both files side by side.</P><P><STRONG>"insufficient privilege"</STRONG> — The role you referenced in <CODE>.hdbgrants</CODE> doesn't exist in Project A, or it exists but doesn't include SELECT on the tables you're trying to reach. You'll need to go back to whoever owns Project A and check what roles are actually deployed there. HANA DB Explorer is your friend here.</P><P><STRONG>"object not found"</STRONG> — The object name in your <CODE>.hdbsynonym</CODE> is wrong. The technical name of a table in HDI usually follows a namespace pattern with underscores replacing dots — something like <CODE>HR_HTR_UTILITY_OBJECTS_CONSTANTS_TABLE</CODE>. The only reliable way to find the exact name is to look it up directly in HANA DB Explorer under Project A's schema.</P><HR /><H2 id="toc-hId-1032102241">One thing worth knowing for local development</H2><P>When you run <CODE>cds watch</CODE> locally, you're using SQLite — there's no HDI container, no synonym. So you need a workaround for local testing.</P><P>The simplest approach is to create a CDS entity with <CODE><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1434188">@CDS</a>.persistence.exists</CODE> that mirrors the external table's structure, and seed it with a CSV file. It won't be connected to Project A's live data, but it lets you develop and test the rest of your logic without needing a full BTP deployment every time.</P><HR /><H2 id="toc-hId-835588736">Worth the setup</H2><P>The first time you wire this up it feels like a lot of moving parts. And honestly, it is. But once it's done, it just works — and it works cleanly. No sync jobs, no API calls for what is essentially a config lookup, no risk of the two sides drifting apart over time.</P><P>If your project has shared reference data living in another team's HDI container, this is the right way to access it.</P><P>Happy to answer questions in the comments if you hit something I haven't covered here.</P><P>#SAP #SAPCAP #SAPHANA #BTP #SAPDevelopment #HDI #CloudFoundry #PwC</P> 2026-07-08T22:32:55.964000+02:00 https://community.sap.com/t5/technology-blog-posts-by-members/ext4-file-system-change-to-xfs-file-system-in-sap-hana-database/ba-p/14426924 EXT4 File System Change to XFS File System in SAP HANA Database. 2026-07-13T06:46:28.542000+02:00 shalabhkumar https://community.sap.com/t5/user/viewprofilepage/user-id/2036322 <P>&nbsp;</P><P>After reading this post,&nbsp; please check your HANA default File System type. If it is <STRONG>EXT4</STRONG>, please follow this post to change it to XFS.</P><P>because HANA does not supported EXT4 File System.</P><P>My Operating System is Linux Enterprise Server.</P><P><STRONG>df -hT</STRONG>&nbsp; command to check File System Type in Linux.</P><P><STRONG>Overview</STRONG></P><P><STRONG>XFS</STRONG> is designed to give fast performance and handle big data smoothly and It is a high-performance file system used mostly in Linux.&nbsp; XFS File System is easy to understand&nbsp; ,&nbsp; High performance&nbsp; and&nbsp; Reads , writes data very fast.</P><P>in SAP/HANA environments, XFS is often used for</P><P>/hana/data<BR />/hana/log<BR />/hana/shared</P><P>&nbsp;</P><P><STRONG>Below&nbsp;supported filesystems.</STRONG></P><P>GPFS<BR />MPFS*<BR />NFS<BR />OCFS2*<BR />XFS<BR />ext3*<BR />NFS4</P><P><STRONG>Where XFS&nbsp; is used?</STRONG></P><P>1&nbsp; Linux servers<BR />2&nbsp; SAP systems (like HANA environments)<BR />3&nbsp; Databases<BR />4&nbsp; Cloud storage<BR />5&nbsp; Backup systems</P><P>&nbsp;</P><P><STRONG>EXT4 vs XFS Comparison</STRONG></P><P>&nbsp;</P><TABLE width="516"><TBODY><TR><TD width="85"><STRONG>Feature</STRONG></TD><TD width="192"><STRONG>EXT4</STRONG></TD><TD width="239"><STRONG>XFS</STRONG></TD></TR><TR><TD>Type</TD><TD>General-purpose file system</TD><TD>High-performance file system</TD></TR><TR><TD>Best For</TD><TD>Small to medium files</TD><TD>Large files and big data</TD></TR><TR><TD>Performance</TD><TD>Good for normal workloads</TD><TD>Excellent for heavy workloads</TD></TR><TR><TD>Scalability</TD><TD>Limited compared to XFS</TD><TD>Very high (handles TBs easily)</TD></TR><TR><TD>File Size</TD><TD>Supports large files</TD><TD>Supports very large files efficiently</TD></TR><TR><TD>Speed</TD><TD>Good</TD><TD>Faster for large data operations</TD></TR><TR><TD>Journaling</TD><TD>Yes</TD><TD>Yes</TD></TR><TR><TD>Recovery</TD><TD>Easier recovery tools available</TD><TD>Recovery is more complex</TD></TR><TR><TD>Usage</TD><TD>OS, apps, general storage</TD><TD>Databases, SAP, large storage systems</TD></TR><TR><TD>Default Use</TD><TD>Common default in Linux</TD><TD>Used in enterprise environments</TD></TR></TBODY></TABLE><P>&nbsp;</P><P><STRONG>Team Requirement.</STRONG></P><P>1. SAP Basis Team<BR />Main owner of the activity</P><P>Plan downtime and activity steps<BR />Stop &amp; start SAP Application and HANA system<BR />Validate system after change<BR />Coordinate with all teams</P><P><BR />2. <STRONG>OS / Linux Team</STRONG><BR />Responsible for file system change</P><P>Create new filesystem (XFS)<BR />Format disks using mkfs.xfs<BR />Mount new file system<BR />Update /etc/fstab<BR />Set correct permissions</P><P><BR />3<STRONG>. Backup Team</STRONG><BR />Ensures data safety</P><P>Take full HANA backup before change<BR />Provide restore support if needed</P><P>&nbsp;</P><P><STRONG>Prerequisites</STRONG>.</P><P><BR />1. <STRONG>Full System Backup (Mandatory)</STRONG></P><P>Take complete HANA backup (data + log)<BR />Also take OS-level backup if possible.</P><P><BR />2. <STRONG>Downtime Planning</STRONG></P><P>File system change requires system downtime<BR />Inform business/users and schedule maintenance window.</P><P><BR />3. <STRONG>Check Current File System Type.</STRONG><BR />df -hT</P><P><BR />4. <STRONG>Stop SAP Application and HANA DB Server.</STRONG><BR />HDB stop<BR />Ensure all HANA services are stopped.</P><P>&nbsp;</P><P>Step 1</P><P>I am changing here 3 File System Type.</P><P>/hana/shared</P><P>/hana/data</P><P>/hana/log</P><P>We can see here ext4 file system showing.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_0-1782359519005.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425911iC42F595345D6C621/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_0-1782359519005.png" alt="shalabhkumar_0-1782359519005.png" /></span></P><P>Step 2</P><P>Run this command ------<STRONG>zypper install xfsprogs</STRONG></P><P><STRONG>What is&nbsp;xfsprogs?</STRONG></P><P>xfsprogs&nbsp; to create, manage, check, and repair XFS file systems on Linux.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_1-1782359612203.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425912i845BB5068453A6A8/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_1-1782359612203.png" alt="shalabhkumar_1-1782359612203.png" /></span></P><P>xfsprogs has been installed.</P><P>Step 3</P><P>Take the backup of that File System&nbsp; which is you want to change.&nbsp; So i have taken backup of Dir , Files , and all other things which is contain in below File Systems.</P><P>/hana/shared</P><P>/hana/log</P><P>/hana/backup</P><P>Step 4</P><P><STRONG>Now Stop the ABAP Application.</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_3-1782360910495.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425922iAB3386C557CF5937/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_3-1782360910495.png" alt="shalabhkumar_3-1782360910495.png" /></span></P><P>Step 5</P><P><STRONG>Now stop Tenant DB from Studio.</STRONG></P><P>ALTER SYSTEM STOP DATABASE SID</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_4-1782360992827.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425923i0B501F2AA3D378B6/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_4-1782360992827.png" alt="shalabhkumar_4-1782360992827.png" /></span></P><P>&nbsp;</P><P>Step 6&nbsp;</P><P><STRONG>Now Stop HANA DB</STRONG></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_5-1782361065880.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425925iACD3E73F0247F7D1/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_5-1782361065880.png" alt="shalabhkumar_5-1782361065880.png" /></span></P><P>Step 7</P><P>Check the Process after stop HANA DB</P><P>HDB info</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_6-1782361124691.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425929iF772D259FFDD6537/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_6-1782361124691.png" alt="shalabhkumar_6-1782361124691.png" /></span></P><P>HANA DB Stopped</P><P>Step 8</P><P>Run this command&nbsp; umount /dev/xvdd&nbsp;&nbsp;&nbsp;&nbsp;</P><P>Target is busy so run this command------à fuser -km /hana/shared</P><P>Again, run this command------à&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unmount /dev/xvdd&nbsp;&nbsp;&nbsp;&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_7-1782361615199.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425944iD059AF6942B7D664/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_7-1782361615199.png" alt="shalabhkumar_7-1782361615199.png" /></span></P><P>Step 9</P><P>Now run lsbk command for checking the /hana/shared File System unmount or not.</P><P><STRONG>lsbk</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_8-1782361706153.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425945i69DAEB3486C8B342/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_8-1782361706153.png" alt="shalabhkumar_8-1782361706153.png" /></span></P><P>&nbsp;</P><P>We can see in above screenshot xvdd /hana/shared its unmount here.</P><P>&nbsp;</P><P>Step 10</P><P>Now run this command---&nbsp; <STRONG>sudo mkfs.xfs -f /dev/xvdd</STRONG></P><P>(for formatting existing partition having different filesystem) its completed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_9-1782361815397.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425946iF5C33059555E2E41/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_9-1782361815397.png" alt="shalabhkumar_9-1782361815397.png" /></span></P><P>Step 11</P><P>Now change the File System Type. Go to /etc/fstab</P><P>Cat /etc/fstab you can see here /hana/shared is ext4</P><P>Now open in vi /etc/fstab and change from ext4 to xfs and save :wq!</P><P>I red marked under line which is contain ext4 File system now as default.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_10-1782361929552.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425947i78DB48C897B4912D/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_10-1782361929552.png" alt="shalabhkumar_10-1782361929552.png" /></span></P><P>Step 12</P><P>Now run this command-----à mount -av its done.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_11-1782361960737.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425948i2D1A4C08B35556B7/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_11-1782361960737.png" alt="shalabhkumar_11-1782361960737.png" /></span></P><P>Step 13</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_12-1782361987099.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425949i878167B18A1C19A8/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_12-1782361987099.png" alt="shalabhkumar_12-1782361987099.png" /></span></P><P>&nbsp;</P><P>Step 14</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_13-1782362072870.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425950i4E02B1E41B08F132/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_13-1782362072870.png" alt="shalabhkumar_13-1782362072870.png" /></span></P><P>Step 15</P><P>Now change fstab file from ext4 to xfs</P><P>&nbsp; Vi /etc/fstab</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_14-1782362107246.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425951i0DA8C93040D60602/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_14-1782362107246.png" alt="shalabhkumar_14-1782362107246.png" /></span></P><P>Step 16</P><P>mount -av&nbsp;&nbsp; for checking the mount point</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_15-1782362135557.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425952i553FEBE33197A161/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_15-1782362135557.png" alt="shalabhkumar_15-1782362135557.png" /></span></P><P>Step 17</P><P>Copy again all Data in original location and create symbol link.</P><P>Cd /usr/sap/HDP</P><P>ln -s /hana/shared/HDP/HDB03 /usr/sap/HDP</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_16-1782362163196.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425953i484592811068C277/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_16-1782362163196.png" alt="shalabhkumar_16-1782362163196.png" /></span></P><P>Step 18</P><P>After creation link Start the HANA DB.</P><P>HDB start</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_17-1782362195304.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425954i0355D1CC28E4FE1A/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_17-1782362195304.png" alt="shalabhkumar_17-1782362195304.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_18-1782362214436.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425955iFA9D0AFF80EFA514/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_18-1782362214436.png" alt="shalabhkumar_18-1782362214436.png" /></span></P><P>&nbsp;</P><P>Step 19</P><P>Now start&nbsp; Tenant DB from Studio.&nbsp; Tenant DB automatically started when HANA DB started if not started we have to start to manually.&nbsp;</P><P>ALTER SYSTEM START DATABASE H4P</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_19-1782362342461.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425956i60A0C2BBB313E75F/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_19-1782362342461.png" alt="shalabhkumar_19-1782362342461.png" /></span></P><P>&nbsp;</P><P>Step 20</P><P>Now start&nbsp; Application Server.</P><P>Run this command <STRONG>df -hT</STRONG>&nbsp; to see File system type.</P><P>We have xfs File System now.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_20-1782362436436.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/425957iC9AD34657F316215/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_20-1782362436436.png" alt="shalabhkumar_20-1782362436436.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>Conclusion</STRONG>.</P><P>Changing from EXT4 to XFS in HANA is recommended to achieve better performance and handle large data efficiently.<BR /><BR />Use XFS for HANA systems because it gives better speed and handles large data more efficiently than EXT4.</P><P>for Better understanding check this SAP Note 2972496 - SAP HANA Filesystem Types</P><P>Please keep this in mind when you are planning to install HANA DB. First check File system Type.</P><P>Thanks</P> 2026-07-13T06:46:28.542000+02:00 https://community.sap.com/t5/technology-blog-posts-by-members/ssl-in-hana-cockpit/ba-p/14437400 SSL in HANA Cockpit 2026-07-13T09:04:02.734000+02:00 shalabhkumar https://community.sap.com/t5/user/viewprofilepage/user-id/2036322 <P><STRONG>SSL Configuration in SAP HANA Cockpit.</STRONG></P><P>SAP HANA Cockpit is a primary administration and recommended tool to manage SAP HANA databases. It provides some additional features and steps that are not available in HANA Studio.</P><P>&nbsp;</P><P><STRONG>Purpose.</STRONG><BR />This blog describes the steps to configure SSL for the SAP HANA Cockpit.</P><P><STRONG>Overview: SSL Configuration for SAP HANA Cockpit.</STRONG></P><P>Secure Sockets Layer (SSL) configuration for SAP HANA Cockpit is essential to ensure secure and encrypted communication between users (browsers) and the HANA Cockpit system.</P><P>&nbsp;</P><P><STRONG>Key Purpose.</STRONG></P><P>Protect sensitive data from unauthorized access.<BR />Ensure secure login and data transmission.</P><P><BR /><STRONG>How It Works.</STRONG></P><P>SSL uses digital certificates to encrypt communication.<BR />The SAP HANA Cockpit is configured to use HTTPS instead of HTTP.<BR />Certificates are issued by a trusted Certificate Authority (CA) or created internally if you have SSO Server in your environment.</P><P>&nbsp;</P><P><STRONG>High-Level Steps.</STRONG></P><P>HANA Cockpit Should be installed in your environment.<BR />Technical Communication User should be created.<BR />SYSTEM and TENANT DB must be added in Cockpit.<BR />Generate SSL certificate from OS level with sidadm user.<BR />Sign certificate with your CA authority or you can sign self if SSO Server in your environment.<BR />Import certificate into HANA XSA keystore.<BR />Configure HTTPS settings in HANA Cockpit.<BR />Restart Cockpit services to activate SSL.<BR />Access Cockpit using https://:</P><P><STRONG>Benefits</STRONG>.<BR />Secure browser access.</P><P><STRONG>Prerequisites</STRONG>.</P><P>HANA Cockpit Should be installed in your environment.<BR />Sign certificate with your CA authority.<BR />SSO Server installed (Optional)</P><P><STRONG>Team Requirements.</STRONG></P><P>Basis Consultant will install Cockpit and Configure SSL.</P><P>Certificate Authority&nbsp; will Sign Certificate.&nbsp;</P><P><STRONG>Now We are going to Configure SSL in HANA Cockpit.</STRONG></P><P><STRONG>Step 1</STRONG></P><P>Launch HANA Cockpit. We can see in Green Color Not secure coming in HANA Cockpit URL.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_0-1783665454241.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431279i3000F45CF2128289/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_0-1783665454241.png" alt="shalabhkumar_0-1783665454241.png" /></span></P><P><STRONG>Step 2</STRONG></P><P>Run env for checking the sec dir path</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_1-1783665674722.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431280iD7B2C226A17D2E2F/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_1-1783665674722.png" alt="shalabhkumar_1-1783665674722.png" /></span></P><P>Go to this path ---&gt; /usr/sap/D1C/HDB00/ and take backup of sec dir.</P><P><STRONG>Step 3</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_2-1783665779626.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431281i78536F7E7C0097E1/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_2-1783665779626.png" alt="shalabhkumar_2-1783665779626.png" /></span></P><P>Backup has been taken with sec_bkp_21_05_2021 name</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_3-1783665894161.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431282i970B77B7E3077877/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_3-1783665894161.png" alt="shalabhkumar_3-1783665894161.png" /></span></P><P><STRONG>Step 4</STRONG></P><P>Now generate the pse and csr name. I am generating here with this name domain.pse and domain.csr</P><P>Now run below command.</P><P><BR />sapgenpse gen_pse -p domain.pse -.r domain.csr -k "GN-dNSName:FQDN.com" -k "GN-dNSName:hostname" "CN=FQDN.com, OU=IT,</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_4-1783666258315.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431284iD6F68CB3855F3E58/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_4-1783666258315.png" alt="shalabhkumar_4-1783666258315.png" /></span></P><P><STRONG>Step 5</STRONG></P><P>Now check ls –ltr and see domanin.pse and domain.csr file generated.&nbsp; in /usr/sap/dic/HDB00/hostname/sec</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_5-1783666409318.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431285i8D33455AD3813FD3/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_5-1783666409318.png" alt="shalabhkumar_5-1783666409318.png" /></span></P><P><STRONG>Step 6</STRONG></P><P>Now open domain.csr file for checking the certificate.&nbsp; Copy this Certificate and Sign it from your CA Authority or SSO Server.</P><P>We have our SSO Server for signing the certificate.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_6-1783666603094.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431286i484C319C2510F7E6/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_6-1783666603094.png" alt="shalabhkumar_6-1783666603094.png" /></span></P><P>I am login in my SSO Server.</P><P>Now login in SSO Server.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_7-1783666875035.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431288i70853BA7956A52D5/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_7-1783666875035.png" alt="shalabhkumar_7-1783666875035.png" /></span></P><P><STRONG>Step 7</STRONG></P><P>Go to Certificate Management--&gt; Sign certificate requests and paste that certificate.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_8-1783666928010.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431289i76C249355D242E78/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_8-1783666928010.png" alt="shalabhkumar_8-1783666928010.png" /></span></P><P>Click on Show Certificate Request.</P><P><STRONG>Step 8</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_9-1783667035960.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431291iD7C12A9326045080/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_9-1783667035960.png" alt="shalabhkumar_9-1783667035960.png" /></span></P><P>Click on Sign Certificate and after Sign copy the Certificate</P><P><STRONG>Step 9</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_10-1783667080181.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431292iFDEFD6E4A2ED5DBE/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_10-1783667080181.png" alt="shalabhkumar_10-1783667080181.png" /></span></P><P>&nbsp;</P><P><STRONG>Step 10</STRONG></P><P>Now create one file with domain.p7b and paste Signed certificate in this file.</P><P>/usr/sap/SID/HDB00/Hostname/sec</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_11-1783667149057.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431293iE84CAA48C26A0211/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_11-1783667149057.png" alt="shalabhkumar_11-1783667149057.png" /></span></P><P><STRONG>Step 11</STRONG></P><P>I pasted Singed Certificated in domain.p7b file.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_12-1783667252262.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431295iC21FEE9914B3EB93/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_12-1783667252262.png" alt="shalabhkumar_12-1783667252262.png" /></span></P><P><STRONG>Step 12</STRONG></P><P>Now import the certificate with below command.</P><P>sapgenpse import_own_cert -p domain.pse -c domain.p7b</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_13-1783667569979.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431298i12DD2DC78DF6D501/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_13-1783667569979.png" alt="shalabhkumar_13-1783667569979.png" /></span></P><P>Certificated imported Successfully.</P><P><STRONG>Step 13</STRONG></P><P>Now we need to set certificate with domain. What domain we have run xs domains command for checking the domain name. We have only one domain.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_14-1783667724541.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431300i7CC89050D643A88D/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_14-1783667724541.png" alt="shalabhkumar_14-1783667724541.png" /></span></P><P>Before set the certificate run this command for checking the certificate status.<STRONG> xs domain-certificates</STRONG></P><P>We have no certificate now.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_15-1783667865174.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431302i2E2FD24947D2897A/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_15-1783667865174.png" alt="shalabhkumar_15-1783667865174.png" /></span></P><P><STRONG>Step 14</STRONG></P><P>Now run this for set the certificate&nbsp;&nbsp; &nbsp;xs set-certificate host --pse domain.pse</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_17-1783668020328.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431306i605E9D7EE9009B36/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_17-1783668020328.png" alt="shalabhkumar_17-1783668020328.png" /></span></P><P><STRONG>Step 15</STRONG></P><P>Certificate done now restart the XSA from <STRONG>XSA restart</STRONG> command.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_18-1783668160169.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431307iBA769BCA419B7C53/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_18-1783668160169.png" alt="shalabhkumar_18-1783668160169.png" /></span></P><P><STRONG>Step 16</STRONG></P><P>Now check again XSA Domain Certificate&nbsp;&nbsp; xs domain-certificates we can see certificate with signed.</P><P>Now check the https URL from xs version command.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_19-1783668419408.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431308i51D32A3484ADA4BA/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_19-1783668419408.png" alt="shalabhkumar_19-1783668419408.png" /></span></P><P>You can see hana-cockpit URL showing <A href="https://hostname:51026" target="_blank" rel="noopener nofollow noreferrer">https://hostname:51026</A></P><P><STRONG>Step 17</STRONG></P><P>Now run this command XSA diagnose for checking the issue in system.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_20-1783668534523.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431309iFB4042E9AD5EEAE1/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_20-1783668534523.png" alt="shalabhkumar_20-1783668534523.png" /></span></P><P>Now issue coming all is ok.</P><P><STRONG>Step 18</STRONG></P><P>Now run this command for open the Cockpit with ----&gt; <A href="https://hostname:51026" target="_blank" rel="noopener nofollow noreferrer">https://hostname:51026</A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shalabhkumar_0-1783671276697.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/431333iE4FCDA614A310CF0/image-size/large?v=v2&amp;px=999" role="button" title="shalabhkumar_0-1783671276697.png" alt="shalabhkumar_0-1783671276697.png" /></span></P><P>&nbsp;</P><P>HANA Cockpit SSL has been completed.</P><P>&nbsp;</P><P><STRONG>Conclusion</STRONG></P><P>SSL in SAP HANA Cockpit makes the system safe by protecting data between the user and the system.<BR />It allows access using HTTPS, which improves security and reliability.</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2026-07-13T09:04:02.734000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/sap-hana-cloud-release-june-2026-round-up/ba-p/14440351 SAP HANA Cloud release June 2026 Round-up 2026-07-15T16:05:19.094000+02:00 andreamiranda https://community.sap.com/t5/user/viewprofilepage/user-id/135788 <P><SPAN>Dear SAP HANA Cloud Enthusiasts,</SPAN><BR /><BR />We are excited to share a collection of the latest videos, blog posts, and resources highlighting the SAP HANA Cloud Q2 2026 release.</P><P>&nbsp;</P><TABLE border="1" width="100%"><TBODY><TR><TD width="50.129533678756474%" height="222px"><A href="https://www.youtube.com/watch?v=FsTR3NR1he0&amp;list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN&amp;index=2" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="playTeaserpng.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/432945iADFAAE345978F76B/image-size/medium?v=v2&amp;px=400" role="button" title="playTeaserpng.png" alt="playTeaserpng.png" /></span></A></TD><TD width="49.870466321243526%" height="222px"><H4 id="toc-hId-2078105312"><STRONG>What’s New Teaser</STRONG></H4>Explore the latest innovations in SAP HANA Cloud with Lead Product Manager Thomas Hammer, as he shares his top highlights from the newest release in this engaging teaser.<BR /><BR /><A href="https://www.youtube.com/watch?v=FsTR3NR1he0&amp;list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN&amp;index=2" target="_blank" rel="nofollow noopener noreferrer">Watch it now on YouTube.</A></TD></TR><TR><TD width="50.129533678756474%" height="250px"><H4 id="toc-hId-1881591807"><STRONG>What’s New blogpost</STRONG></H4>Intrigued by the teaser? Explore our "What’s New in SAP HANA Cloud in June 2026" blogpost for an in-depth look at the innovations and find valuable links to further demos and content.<BR /><BR /><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/what-s-new-in-sap-hana-cloud-july-2026/ba-p/14419199" target="_blank">Read it here!</A></TD><TD width="49.870466321243526%" height="250px"><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/what-s-new-in-sap-hana-cloud-july-2026/ba-p/14419199" target="_blank"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="blogpostSS.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/432946iB1F55C6248D7F214/image-size/medium?v=v2&amp;px=400" role="button" title="blogpostSS.png" alt="blogpostSS.png" /></span></A></TD></TR><TR><TD width="50.129533678756474%" height="250px"><A href="https://www.youtube.com/watch?v=QrGR38jGGZo&amp;list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN&amp;index=1" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PlayWebinar.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/432947i894D8E6CA32AB861/image-size/medium?v=v2&amp;px=400" role="button" title="PlayWebinar.png" alt="PlayWebinar.png" /></span></A></TD><TD width="49.870466321243526%" height="250px"><H4 id="toc-hId-1685078302">What's New Webinar</H4>Prefer watching over reading? Our 'What’s New' webinar is just for you! Join our Product experts for an in-depth view of the latest features. Available to watch anytime&nbsp;<A href="https://www.youtube.com/watch?v=QrGR38jGGZo&amp;list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN&amp;index=1" target="_blank" rel="noopener nofollow noreferrer">here</A>!</TD></TR></TBODY></TABLE><H3 id="toc-hId-1359482078">&nbsp;</H3><DIV class=""><HR /><SPAN>Don’t miss out on all the content and remember to&nbsp;</SPAN><A href="https://community.sap.com/topics/hana" target="_blank">follow us in the SAP HANA Community.</A></DIV><P>Remember to check our content following the # whatsnewinsaphanacloud tag:<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/tag/whatsnewinsaphanacloud/tg-p/board-id/technology-blog-sap" target="_blank">here</A><BR /><BR /><SPAN>Don’t forget to subscribe and follow SAP HANA Cloud on&nbsp;</SPAN><A href="https://www.youtube.com/playlist?list=PL3ZRUb1AKkpTDZQgENtRcupp6vsNg8NHN" target="_blank" rel="nofollow noopener noreferrer">YouTube</A><SPAN>&nbsp;to always stay up-to-date regarding the most recent innovations in SAP HANA Cloud.</SPAN><BR /><SPAN>&nbsp;</SPAN><BR /><SPAN>All the best,</SPAN><BR /><BR /><STRONG>Andrea on behalf of the SAP HANA Cloud team</STRONG></P><P><STRONG><A class="" href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud%25252C+SAP+HANA+database/pd-p/ada66f4e-5d7f-4e6d-a599-6b9a78023d84" target="_blank">#SAP HANA Cloud, SAP HANA database</A><SPAN>&nbsp;</SPAN>&nbsp;<SPAN>&nbsp;#</SPAN><A class="" href="https://community.sap.com/t5/c-khhcw49343/SAP+HANA+Cloud/pd-p/73554900100800002881" target="_blank">SAP HANA Cloud</A><SPAN>&nbsp;</SPAN>&nbsp;</STRONG></P><P><STRONG>#whatsnewinsaphanacloud</STRONG></P> 2026-07-15T16:05:19.094000+02:00 https://community.sap.com/t5/technology-blog-posts-by-members/building-custom-ai-agents-with-sap-joule-studio-a-practical-guide-part-1/ba-p/14402428 Building Custom AI Agents with SAP Joule Studio: A Practical Guide Part-1 2026-07-20T13:23:44.641000+02:00 Vennilla00 https://community.sap.com/t5/user/viewprofilepage/user-id/1390226 <H4 id="toc-hId-2074471685">Introduction</H4><P>Joule is already available in SAP Launchpad for many users, and it is great for broad questions.<BR />My challenge started when business users asked for <STRONG>operational actions,</STRONG> not guidance.</P><P>A user asked:<BR />“<STRONG>Show all blocked sales orders for customer 17100001 and remove the delivery block for order 487.”</STRONG></P><TABLE border="1" width="100%"><TBODY><TR><TD width="100%"><EM>I am unable to directly retrieve or display information on open sales orders due to system limitations. However, I can guide you on how to use the 'Sales Order - Query' to access this information manually. Would you like me to provide instructions on how to do this?</EM></TD></TR></TBODY></TABLE><P>Out of the box, Joule gave a helpful explanation, but it did not execute the business action.<BR />So I built a custom agent in Joule Studio that <STRONG>could read and update sales orders in SAP S/4HANA through OData APIs</STRONG>.</P><P>The Two Building Blocks: Skills &amp; Agents</P><P>Everything in Joule Studio revolves around two core concepts:</P><H6 id="toc-hId-2136123618">1. Skill — A Specific Task</H6><P>A&nbsp; skill is a single, focused capability. Think of it as <STRONG>one action your agent can perform</STRONG>. It could be:</P><OL><LI>A <STRONG>CRUD</STRONG> operation (Create, Read, Update, Delete)</LI><LI>A <STRONG>process&nbsp;or automation</STRONG></LI><LI>A&nbsp;&nbsp;condition check</LI><LI><STRONG>Launching another Joule skill</STRONG></LI><LI>Each skill does one thing well. For example:<UL><LI><STRONG>Read</STRONG> all sales orders</LI><LI><STRONG>Update</STRONG> delivery block on a sales order</LI><LI><STRONG>Create</STRONG> a new sales order</LI><LI><STRONG>Delete</STRONG> sales order.</LI></UL></LI></OL><H6 id="toc-hId-1939610113">2. Agent — The Orchestrator</H6><P>An <STRONG>agent is the brain that holds multiple skills together.</STRONG> It decides when to use which skill based on what the user asks. An agent can even call other agents — making it possible to <STRONG>build complex, multi-step workflows</STRONG>.</P><P><STRONG>Anatomy of an Agent</STRONG><BR />When you create an agent in Joule Studio, you'll work with several important configuration areas:</P><P><STRONG>Expertise &amp; Instructions</STRONG></P><OL><LI><STRONG>Expertise</STRONG> — Tell the agent what domain it specializes in. Is it for HR? Sales? Procurement? This helps the agent understand its boundaries.</LI><LI><STRONG>Instructions</STRONG> — This is where the magic happens. You're essentially writing a playbook for the agent:<OL class="lia-list-style-type-lower-alpha"><LI>What to do and what not to do</LI><LI>How to format responses</LI><LI>When to trigger which skill</LI><LI>Rules and guardrail</LI></OL></LI></OL><P><STRONG>Additional Context</STRONG> — Common abbreviations, company-specific terminology, or any contextual information the agent might need to understand your business language.</P><P><STRONG>Model Settings</STRONG><BR />You get to choose your LLM provider:</P><UL><LI>Anthropic</LI><LI>OpenAI</LI><LI>Google</LI><LI>MistralAI</LI></UL><P><STRONG>Enable Backup LLM Provider</STRONG>. This sets up automatic failover — if your primary provider is slow or unavailable, the backup kicks in automatically, keeping your agent running without interruption.</P><P><STRONG>MCP Servers</STRONG><BR />Add MCP (Model Context Protocol) Servers to give your agent access to additional tools and external capabilities.</P><P><STRONG>Tools</STRONG><BR />Add tools that provide the agent with additional context, system data access, or the ability to perform actions.</P><UL><LI>calculator</LI><LI>joule skill</LI><LI>joule agent</LI><LI>Documents(Document Grounding)</LI></UL><P><STRONG>Agent Output</STRONG></P><P>Define how the output should be formatted:</P><OL><LI>Markdown</LI><LI>Text</LI><LI>Data Type</LI><LI>JSON</LI></OL><H6 id="toc-hId-1743096608"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-05-23 213459.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/432429iFADD490495F39F12/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2026-05-23 213459.png" alt="Screenshot 2026-05-23 213459.png" /></span>What I Built (Actual Implementation)</H6><P>I implemented a Sales Order Assistant agent for a finance and sales operations scenario.</P><P>Scope of the agent:</P><UL><LI><STRONG>Read sales orders with filters</STRONG> (customer, status, billing date, block flags)</LI><LI>Update <STRONG>delivery block</STRONG> on a specific sales <STRONG>order</STRONG></LI><LI>Return a<STRONG> table-style summary</STRONG> for business users</LI><LI>Refuse to answer if live <STRONG>data cannot be read</STRONG></LI></UL><P>Technical stack:</P><UL><LI>Joule Studio <STRONG>agent</STRONG></LI><LI>3 custom skills (<STRONG>GET, PATCH, POST</STRONG>)</LI><LI>SAP S/4HANA OData service: <STRONG>API_SALES_ORDER_SRV</STRONG></LI><LI><STRONG>Destination-based connectivity</STRONG> in test environment</LI><LI>Primary + backup LLM provider enabled</LI></UL><H6 id="toc-hId-1546583103">Step 1: Skills I Created</H6><P>I separated skills by operation so tool selection remained predictable.</P><P>1. <STRONG>Read Sales Orders (GET)</STRONG><BR />Purpose: Retrieve sales orders and basic status fields.</P><P>2. <STRONG>Modify Sales Order (PATCH)</STRONG><BR />Purpose: Update delivery block and selected editable fields.</P><P>3. <STRONG>Create Sales Order (POST)</STRONG><BR />Purpose: Create a new order for approved scenarios.</P><P><EM>Why this helped: </EM><BR /><EM>When I initially combined read and update into one “do everything” skill, the agent often chose the wrong operation. Splitting skills reduced tool-calling errors significantly.</EM></P><P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-05-23 213256.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/432431i44FC49E7C3863DD3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2026-05-23 213256.png" alt="Screenshot 2026-05-23 213256.png" /></span></EM></P><H6 id="toc-hId-1350069598">Step 2: Agent Instructions I Actually Used</H6><P>The single biggest improvement came from strict instructions.</P><P>Key rules I configured:</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">1. Always <STRONG>call Read Sales Orders before any status</STRONG> answer.<BR />2. Call <STRONG>Modify</STRONG> Sales Order only when<STRONG> user intent</STRONG> is clearly an update.<BR />3. Never generate order numbers, dates, or statuses <STRONG>without API output</STRONG>.<BR />4. On 4XX/5XX, return a clear <STRONG>business-safe error message</STRONG> and next step.</P><P>Response format:</P><UL><LI>Always output a compact <STRONG>table</STRONG> for list queries.</LI><LI>Always include <STRONG>order ID, customer, billing date, </STRONG>and <STRONG>status.</STRONG></LI><LI><STRONG>Flag risky records</STRONG>: overdue billing, missing assignment, missing reference.</LI></UL><P>What changed after this:<BR />Before strict rules, I saw occasional “plausible” but unverified responses. After adding mandatory tool-use rules, those stopped.</P><H6 id="toc-hId-1153556093">Step 3: Real Test Cases and Results</H6><P>I tested using business-like prompts.</P><P><STRONG>Test prompts:</STRONG></P><UL><LI>“Show all blocked sales orders for customer 17100001.”</LI><LI>“Remove delivery block on order 500001234.”</LI><LI>“List overdue orders with missing assignment.”</LI></UL><P>Observed behavior:</P><UL><LI>Read queries: agent called <STRONG>GET skill,</STRONG> then summarized correctly.</LI><LI>Update queries: agent called <STRONG>PATCH skill with target order.</STRONG></LI><LI>Failure case (invalid order): agent returned API error context and suggested verification steps.</LI></UL><P><STRONG>One practical lesson:</STRONG><BR />If the API payload is too large, response quality drops. I reduced returned fields to only what users need and got more stable answers.</P><P>These were the most useful implementation learnings :</P><P>1. Keep <STRONG>skills narrow and explicit</STRONG><BR />Broad “multi-action” skills increase wrong tool selection.</P><P>2. Put tool-calling rules at the <STRONG>top of instructions</STRONG><BR />Priority placement improved consistency.</P><P>3. Add <STRONG>business-safe refusal</STRONG> behavior<BR />If data retrieval fails, the agent must refuse to guess.</P><P>4. Minimize<STRONG> API response</STRONG> payload early<BR />Too many fields create noisy reasoning and weaker summaries.</P><P>5. Add backup LLM provider, but validate output style<BR />Failover worked, but I had to align formatting instructions across models.</P><P>6. Test with <STRONG>ambiguous prompts</STRONG><BR />Examples like “fix this order” forced me to add clarification logic before updates.</P><P>Execution Trace: What Happens Under the Hood (From My Test Runs)<BR />For a prompt like “Show blocked orders for customer 17100001”:</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">1. Agent <STRONG>starts and loads instructions</STRONG>/context<BR />2. Intent classified as<STRONG> data retrieval</STRONG><BR />3. <STRONG>GET skill</STRONG> called with filters<BR />4. Raw response compressed<BR />5. Agent applies formatting + risk flags<BR />6. Final response <STRONG>returned as table</STRONG></P><P>For an update prompt:</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">1. Agent detects <STRONG>action intent</STRONG><BR />2. Validates target<STRONG> order context via read</STRONG><BR />3. <STRONG>PATCH skill</STRONG> executes update<BR />4. Agent confirms <STRONG>changed field and status</STRONG></P><P><STRONG>Real-World Example: Sales Order Assistant</STRONG><BR />Let me walk you through a practical example. My requirement was to build an agent that can:</P><OL><LI>Handle natural language queries like *"Show all open orders for customer X"* or *"Remove delivery block on order Y"*</LI><LI>Provide contextual insights (customer credit status, expected delivery dates)</LI><LI>Suggest corrective actions and guide users through SAP Fiori apps</LI></OL><P><FONT face="times new roman,times"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-05-23 215140.png" style="width: 450px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/413089i0B0E4C1382C36677/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2026-05-23 215140.png" alt="Screenshot 2026-05-23 215140.png" /></span></FONT></P><H6 id="toc-hId-957042588">Step 1: Pick Your API</H6><P>I went to the SAP Business Accelerator Hub&nbsp;and chose the standard OData service: `API_SALES_ORDER_SRV/`</P><H6 id="toc-hId-760529083">Step 2: Create Skills</H6><P>I built three separate skills — one for each operation:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="33.333333333333336%"><STRONG>Skill </STRONG></TD><TD width="33.333333333333336%"><STRONG>Operation </STRONG></TD><TD width="33.333333333333336%"><STRONG>Purpose</STRONG></TD></TR><TR><TD width="33.333333333333336%">Read Sales Orders</TD><TD width="33.333333333333336%">GET</TD><TD width="33.333333333333336%">&nbsp;Fetch all sales orders</TD></TR><TR><TD width="33.333333333333336%">Update Sales Order</TD><TD width="33.333333333333336%">PATCH</TD><TD width="33.333333333333336%">&nbsp;Modify fields like delivery block</TD></TR><TR><TD width="33.333333333333336%">Create Sales Order</TD><TD width="33.333333333333336%">POST</TD><TD width="33.333333333333336%">Create a new sales order</TD></TR></TBODY></TABLE><P><BR />The GET skill is that it retrieves all sales orders, but the agent processes the response based on your question. Ask for a specific customer? It filters and gives you only that data — not the entire list.</P><H6 id="toc-hId-564015578">Step 3: Configure the Agent</H6><P>Here's an example of how I set up the expertise and instructions:</P><P><STRONG>Expertise</STRONG>:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="100%"><P>You are an SAP Sales Order Assistant. Your expertise includes:<BR />- Retrieving sales order details from SAP S/4HANA using OData services<BR />- Explaining order status, delivery dates, and pricing information<BR />- Helping users understand delivery blocks and billing workflows</P><P>Instructions:<BR />CRITICAL RULES:<BR />1. You MUST ALWAYS call the "Read Sales Order" skill before answering<BR />ANY question about sales orders. NEVER answer from your own knowledge.<BR />2. You MUST call "Modify Sales Order" skill when user tries to modify<BR />a sales order.<BR />3. If you cannot call the tool, inform the user that you need to<BR />retrieve the data and cannot answer without it.</P><P>RESPONSIBILITIES:<BR />- Retrieve sales order headers (order number, customer, billing date, status)<BR />- Summarize order volumes by customer group, date range, or status<BR />- Identify orders requiring attention (overdue billing, missing assignments)<BR />- Present results in a clear table format</P><P>RESPONSE FORMAT:<BR />| # | Sales Order | Customer Group | Billing Date | Status |<BR />|---|------------|----------------|--------------|--------|<BR />| 1 | 4500001234 | Group 1 | 2026-05-25 | Open |</P><P>DO NOT:<BR />- Guess or fabricate order data<BR />- Ignore Error 4XX responses — always inform the user</P></TD></TR></TBODY></TABLE><P>&nbsp;</P><P>This is a basic example — in a real scenario, you'd provide far more detailed instructions based on your specific business requirements.</P><P><STRONG>Additional Context</STRONG></P><TABLE border="1" width="100%"><TBODY><TR><TD width="100%"><P>FIELD DEFINITIONS:<BR />- Reference → Order reference / external document number<BR />- Customer Group 1-4 → Classification groupings for the customer<BR />- Assignment → Cost assignment or project reference<BR />- Billing Date → Planned billing/invoicing date<BR />- Exchng. Rate Accntg. → Exchange rate used for accounting<BR />- Addit. Value Date → Additional value date for payment terms</P><P>SORTING &amp; PRIORITY RULES:<BR />- Default sort: Billing Date (earliest first)<BR />- Highlight orders where Billing Date &lt; today (overdue)<BR />- Flag orders with empty Assignment or Reference fields</P><P>ERROR HANDLING:<BR />- If API returns Error 4XX → inform user, suggest checking<BR />authorization or filters</P><P>ORDER STATUS LOGIC:<BR />- Billing Date &lt; today + no invoice = "Overdue"<BR />- Assignment field empty = "Needs Attention"<BR />- Reference field empty = "Missing Reference"</P></TD></TR></TBODY></TABLE><H6 id="toc-hId--975186474">Step 4: Connect Skills to Agent</H6><P>The connection is straightforward:</P><P>Agent → Tools → Add Skill → Select your skill</P><P>Do this for each skill. Then, in your instructions, specify when the agent should trigger which skill.</P><H6 id="toc-hId--1171699979">Step 5: Test</H6><P>Click Test, select your destination for the action calls, select your private environment, and start chatting:</P><OL class="lia-list-style-type-lower-alpha"><LI>Give me sales order 987</LI><LI>Show me all blocked sales orders</LI><LI>Remove the delivery block on order 456</LI></OL><P>What Happens Under the Hood?</P><P>When you test your agent, you can see the internal execution trace. Here's what happens when a user asks something:</P><P><STRONG>User Message</STRONG></P><H5 id="toc-hId--1074810477"><FONT face="times new roman,times"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-05-23 215316.png" style="width: 715px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/413090i7E2562B8DD84C89A/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2026-05-23 215316.png" alt="Screenshot 2026-05-23 215316.png" /></span></FONT></H5><H5 id="toc-hId--1271323982">&nbsp;</H5><P>Breaking It Down:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%" height="30px">Phase</TD><TD width="50%" height="30px">What It Does</TD></TR><TR><TD width="50%" height="30px">Start</TD><TD width="50%" height="30px">Initializes the agent, loads context, expertise, and instructions</TD></TR><TR><TD width="50%" height="57px">Direct Prompting</TD><TD width="50%" height="57px">Checks if the request can be answered without complex reasoning</TD></TR><TR><TD width="50%" height="30px">Decomposition</TD><TD width="50%" height="30px">&nbsp;Breaks the request into smaller sub-tasks</TD></TR><TR><TD width="50%" height="57px">Plan</TD><TD width="50%" height="57px">&nbsp;<SPAN>Creates an execution plan — decides order of steps, which APIs to call</SPAN></TD></TR><TR><TD width="50%" height="57px">Agent Thinking</TD><TD width="50%" height="57px">&nbsp;The LLM reasons about the plan and decides the action to take</TD></TR><TR><TD width="50%" height="30px">Read</TD><TD width="50%" height="30px">Executes the API call to S/4HANA</TD></TR><TR><TD width="50%" height="30px">Compressor</TD><TD width="50%" height="30px">Summarizes the raw API response to stay within token limits</TD></TR><TR><TD width="50%" height="30px">Agent Thinking (2nd)</TD><TD width="50%" height="30px">Processes compressed data and formulates the answer</TD></TR><TR><TD>Final Answer</TD><TD><P>Produces the user-facing response</P></TD></TR><TR><TD>Refinement</TD><TD><P>Quality check for accuracy, formatting, and completeness</P></TD></TR><TR><TD>End</TD><TD><P>Execution completes</P></TD></TR></TBODY></TABLE><H4 id="toc-hId--1174434480">Conclusion</H4><P><EM>The future of enterprise AI isn't just about having an AI assistant. It's about having your AI assistant, built for your business.</EM></P><P>Joule gives strong baseline assistance, but business operations need <STRONG>domain-specific actions</STRONG>.<BR />Joule Studio is where that becomes practical: you define the tools, the guardrails, and the <STRONG>behavior</STRONG>.</P><P>My key takeaway after implementation:<BR />Good agent quality is less about <STRONG>which model</STRONG> and more about:</P><UL><LI>strict tool-calling <STRONG>instructions</STRONG>,</LI><LI>small and <STRONG>clean payloads</STRONG>,</LI><LI>and real-world <STRONG>test prompts</STRONG> with edge cases.</LI></UL><P>If you are building your first <STRONG>Joule Studio agent,</STRONG> start with one business process, <STRONG>2-3 narrow skills</STRONG>, and strict non-hallucination rules. You will get better results faster than trying to build a broad agent on day one.</P><P><EM>Remember: you're essentially teaching a new team member how to do their job. The clearer your instructions, the better the results. Once everything is working as expected — launch it, and let your custom agent work for your users.</EM></P> 2026-07-20T13:23:44.641000+02:00 https://community.sap.com/t5/supply-chain-management-blog-posts-by-sap/reporting-of-ghg-emissions-2-options-of-receiving-actual-emissions-sent-by/ba-p/14444996 Reporting of GHG emissions - 2 options of receiving actual emissions sent by your carrier 2026-07-21T10:31:36.684000+02:00 Holger_Wittmer https://community.sap.com/t5/user/viewprofilepage/user-id/46980 <P>Good news – we have successfully implemented and tested the scope defined in our <A href="https://roadmaps.sap.com/board?PRODUCT=089E017A62AB1EDAA6CCB767DDDCC0E5&amp;range=CURRENT-LAST#Q3%202026" target="_self" rel="noopener noreferrer">Roadmap</A> for Transportation Management in SAP S/4HANA 2025 Feature Pack Stack 2</P><P>Subject to the overall availability of SAP S/4HANA 2025 FPS2, users can look forward to further improvements in the <A href="https://roadmaps.sap.com/board?PRODUCT=089E017A62AB1EDAA6CCB767DDDCC0E5&amp;range=CURRENT-LAST#;INNO=000D3ABE772D1FD0B3F1E70F6D41FED1" target="_blank" rel="noopener noreferrer">Sustainability</A>&nbsp;area, alongside other new innovations outlined in our Roadmap, starting in October 26 (*).</P><P>(*) Subject to change</P><P>This blog is the third in a sequence of three posts. It provides additional information for those interested in Transportation Management and Sustainability. It serves as supplementary material to the initial blog <A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-sap/reporting-of-ghg-emissions-receiving-of-actual-emissions-sent-by-your/ba-p/14217169" target="_blank">Reporting of GHG Emissions</A>. We recommend reading that post first to understand the basics.</P><P>TM in SAP S/4HANA 2025 FPS2 further contributes to Sustainability by enhancing the Service Interface TransportationEventBulkNotification_In with two new fields—one for the emission value and another for the unit of measure—and its underlying backend. This mirrors the approach outlined in the initial blog and offers a more flexible reporting solution. As promised, we continue to support your sustainability journey.</P><P>In this follow-up blog post, we aim to provide you with the necessary knowledge to enable receiving actual emission values at both the document level and the stage level.</P><P>Following this approach, an inbound message sent externally—for instance, by the carrier—will include two new fields: one for the emission value and another for the unit of measure.</P><P>&nbsp;</P><P><STRONG>Option 1 - reporting on stage level</STRONG></P><P>Stage 1 might be the one starting at Stop 10 and ending at Stop 20.</P><P>Hence, the reporting on stage 1 uses EventTypeCode 'REPORT_EMIVAL_STAGE' for Stop 20.</P><P><SPAN>Example FO:&nbsp; </SPAN><SPAN>6100018959</SPAN></P><P>Use the following example XML as a sample in order to update the freight order with reported CO2 emissions on stage level.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Fig. 1 illustrates the enhanced payload for reporting on stage level." style="width: 618px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/435373i4F1DC4F228234C63/image-size/large?v=v2&amp;px=999" role="button" title="Fig 1.png" alt="Fig. 1 illustrates the enhanced payload for reporting on stage level." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig. 1 illustrates the enhanced payload for reporting on stage level.</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>Option 2 - reporting on document level</STRONG></P><P>The reporting on document level uses EventTypeCode 'REPORT_EMIVAL_DOC'.</P><P><SPAN>Example FO:&nbsp; </SPAN><SPAN>6100018941</SPAN></P><P>Use the following example XML as a sample in order to update the freight order with reported CO2 emissions on header level.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Fig. 2 illustrates the enhanced payload for reporting on document level." style="width: 570px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/435371iF131F5F50C0ED326/image-size/large?v=v2&amp;px=999" role="button" title="Fig 2.png" alt="Fig. 2 illustrates the enhanced payload for reporting on document level." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig. 2 illustrates the enhanced payload for reporting on document level.</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Let us assume our FO consists of 2 stages. </SPAN><SPAN>The distances involved might be the following:</SPAN></P><P><SPAN>Stage 1: 478 km; Stage 2: 279 km; Ratio: 1.71</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Fig. 3 illustrates the stages and their distances." style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/435350iD61B561962C87B13/image-size/large?v=v2&amp;px=999" role="button" title="Fig 3.png" alt="Fig. 3 illustrates the stages and their distances." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig. 3 illustrates the stages and their distances.</span></span>The carrier reports 3001 KG on document level. Activating the views for the carbon emissions in the Freight Order will display a window showing the reported carbon emissions.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Fig. 4 illustrates the reported carbon emissions." style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/435349i4573A7C54E6C0374/image-size/large?v=v2&amp;px=999" role="button" title="Fig 4.png" alt="Fig. 4 illustrates the reported carbon emissions." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig. 4 illustrates the reported carbon emissions.</span></span><SPAN>The emissions reported at the header level are arithmetically distributed across the stage levels (Stage 1: 1,895 kg; Stage 2: 1,106 kg; ratio: 1.71), taking stage distances into account for illustration purposes only. The actual emissions data is stored and recorded at the document level in the database.</SPAN></P><P>That's it for now.</P><P>Stay tuned, there is even more to come.</P> 2026-07-21T10:31:36.684000+02:00 https://community.sap.com/t5/technology-blog-posts-by-sap/recap-2026-recordings-of-our-annual-cap-developer-conference/ba-p/14446111 reCAP 2026 – Recordings of our Annual CAP Developer Conference 2026-07-22T12:07:54.874000+02:00 BirgitS https://community.sap.com/t5/user/viewprofilepage/user-id/41902 <P><SPAN>On&nbsp;15 July 2026, the CAP community came together for&nbsp;reCAP 2026&nbsp;in&nbsp;St. Leon-Rot. Again, tickets were sold out within just a few minutes. We had more than&nbsp;400 participants onsite&nbsp;and many more joining online.</SPAN></P><P><SPAN>For everyone who couldn’t attend live, most sessions were recorded. Below is a summary of the recorded sessions, along with links to the recordings. You can find all recordings on <A href="https://www.youtube.com/@reCAP_unconference" target="_blank" rel="noopener nofollow noreferrer">YouTube</A>.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Entrance of the building where reCAP took place" style="width: 750px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/435982iE1D020350C44B8E6/image-size/large?v=v2&amp;px=999" role="button" title="reCAP2026.png" alt="reCAP2026.png" /></span><BR /></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1820116574"><SPAN>Opening &amp; Keynote</SPAN></H2><P><STRONG><SPAN>Intro </SPAN></STRONG><SPAN><EM>by&nbsp;Ole Lilienthal</EM><BR />Setting the stage, Ole gave an overview of the Autonomous Enterprise and how CAP plays a key role in enabling the SAP Business AI platform as the underlying platform for the Autonomous Enterprise. He also explained the importance of CAP in the age of AI. &nbsp;</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=qzsbXd9VUwY" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Keynote</SPAN></STRONG><SPAN>&nbsp;<EM>by&nbsp;Daniel Hutzel</EM><BR />In his keynote, Daniel shared an overview of the biggest CAP achievements since the last reCAP, including AI-related topics.<BR /></SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=mRs3oQPOcgM" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1623603069"><SPAN>Main Track Sessions in Audimax</SPAN></H2><P><STRONG><SPAN>CAP Tools – What’s New and Hot </SPAN></STRONG><EM><SPAN>by Christian Georgi</SPAN></EM><SPAN><BR />A tour through the latest and greatest in CAP tooling, including:</SPAN></P><UL><LI><SPAN>`cds repl` with queries</SPAN></LI><LI><SPAN>Debugging apps on Kyma</SPAN></LI><LI><SPAN>CDS Project outline in Visual Studio Code</SPAN></LI><LI><SPAN>CAP in browser</SPAN></LI></UL><P><SPAN><A href="https://www.youtube.com/watch?v=B3qQJ6b3tcg&amp;pp=0gcJCZsLAYcqIYzv" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Optimizing CAP Performance with Data Replication and Caching – Part II </SPAN></STRONG><EM><SPAN>by Mike Zaschka</SPAN></EM><SPAN><BR />As a follow-up to last year’s talk on&nbsp;cds-caching, this session broadened the view to the&nbsp;full landscape of caching, replication, and federation&nbsp;strategies in the CAP ecosystem. Mike walked through a curated selection of solutions and offered practical guidance on which approach fits which scenario.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=pUlnHE8iDNk" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>AI-Assisted Development of CAP Apps </SPAN></STRONG><EM><SPAN>by Daniel Schlachter and Stefan Rudi</SPAN></EM><SPAN><BR />A look at the&nbsp;CAP MCP development server, which gives AI coding assistants direct access to CAP documentation improving code quality in tools like&nbsp;<EM>Claude Code</EM>&nbsp;and&nbsp;<EM>GitHub Copilot</EM>. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=FQON2eNn0OY" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Expressions and Abstractions – Two Developer Superpowers in CAP </SPAN></STRONG><EM><SPAN>by Patrice Bender and DJ Adams</SPAN></EM><SPAN><BR />A demonstration of two powerful CAP affordances:&nbsp;expressions&nbsp;(what they are, how to use them, and why they matter) and&nbsp;mocking&nbsp;(letting you iterate fast on data, auth, messaging, and remote services).</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=51Uuj2dGEtE" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>CAP Plugins: Latest and Greatest </SPAN></STRONG><EM><SPAN>by Max Eckert, Dries Van Vaerenbergh, Matthis Vansteenhuyse, and Lisa Julia Nebel</SPAN></EM><SPAN><BR />CAP plugins dramatically simplify integration with SAP BTP services. This session demystified the plugin model and spotlighted the enhanced&nbsp;attachments plugin, the renovated&nbsp;change tracking plugin, a new&nbsp;notifications plugin for Java, and the new&nbsp;SAP Build Process Automation plugin.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=XDQ2FHrQtPc&amp;pp=0gcJCZsLAYcqIYzv" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Plug, Connect, Play: CAP Integration Made Effortless </SPAN></STRONG><EM><SPAN>by Ram Prasad GS and Bilal El-Massoudi</SPAN></EM><SPAN><BR />An introduction to&nbsp;cap-connect, a production-ready, open-source CAP plugin from Aarini Consulting that brings first-class connection management to any CAP application. The talk also showcased how cap-connect powers&nbsp;<EM>Prodsphere</EM>, Aarini’s own CAP-based product.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=U0U7ixe8Cpg" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Production GenAI in CAP: Beyond the Demo </SPAN></STRONG><EM><SPAN>by Moudhaffer Azizi</SPAN></EM><SPAN><BR />This session explored the architecture behind a production-grade CAP application on SAP BTP that uses RAG to analyse custom ABAP code against Clean Core standards. The session highlighted the journey from a single prompt to a resilient solution orchestrating 14 AI-powered operations. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=eFifbqiYQh0" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Beyond Vibe Coding: Engineering Deterministic CAP Applications with SDD </SPAN></STRONG><EM><SPAN>by Maximilian Hartig and Abdulbasıt Gülşen</SPAN></EM><SPAN><BR />A live "0-to-1" walkthrough of&nbsp;Spec-Driven Development&nbsp;using the open-source&nbsp;Spec Kit&nbsp;in Visual Studio Code to transform a raw business requirement into a CAP application.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=E6F7FFMO3Js" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>From Click-Ops to Code-Ops (Terraform) </SPAN></STRONG><EM><SPAN>by Nicholas Arefta</SPAN></EM><SPAN><BR />Nicholas demonstrated how to use Terraform to deploy multitenant apps on SAP BTP. He demonstrated provisioning of a Provider subaccount, deploying a multi-tenant application and onboarding a Subscriber completely hands-free.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=u8U4r3zTmTk" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Custom Business Logic with Predefined Extension Points – Using CDS-Oyster </SPAN></STRONG><EM><SPAN>by Nick Josipovic and Konrad Koschel</SPAN></EM><SPAN><BR />Together with Subscription Billing and Cloud Foundation, Nick and Konrad built an extensive&nbsp;Extension Box&nbsp;using CAP and the&nbsp;CDS-Oyster Code Sandbox&nbsp;enabling secure code extensions in a complex cloud environment.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=eqmgy6GqBMM" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Implementing Runtime Plugins in CAP Java </SPAN></STRONG><EM><SPAN>by Joshua Mitchell</SPAN></EM><SPAN><BR />Joshua demonstrated in his live session how to program a basic&nbsp;soft delete plugin&nbsp;for CAP Java using annotations, the IntelliJ debugger, and an expression evaluator.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=uhN6UXiPp7w" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1427089564"><SPAN>Side Track Sessions in W1/W2</SPAN></H2><P><STRONG><SPAN>Building Code-Based AI Agents with CAP and UI5: From Concept to Production </SPAN></STRONG><SPAN><EM>by</EM> <EM>Wouter Lemaire</EM></SPAN></P><P><SPAN>Using the Smart Monitoring Agent (previously demonstrated at SAP TechEd) as a real-world example, Wouter showed how to build intelligent, code-based AI agents by combining SAP AI Core with CAP and UI5. The session covered the complete journey from development to deployment. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=EIT4XRrACLQ" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Building AI-enabled Applications with CAP </SPAN></STRONG><SPAN><EM>by Max Eckert, Simon Engel, Markus Riedinger, and Peter W. Szabo</EM></SPAN></P><P><SPAN>An overview of how CAP is evolving to meet the AI era including: exposing CAP services as endpoints for AI agents, leveraging the CAP AI plugin, exploring additional features, and building intelligent, code-driven agents. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=Pf6qaC56cl0" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Building a CAP Application with Latest Best Practices and AI </SPAN></STRONG><SPAN><EM>by Lukas Theis, Johannes Vogt, Marc Becker, and Robin de Silva Jayasinghe</EM></SPAN></P><P><SPAN>A practical, end-to-end walkthrough from idea to production-ready CAP app, combining proven CAP architecture patterns with AI-assisted workflows. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=lFZN0YA5dG0&amp;pp=0gcJCZsLAYcqIYzv" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Declarative Programming Patterns in CAP - Less Code, More Power </SPAN></STRONG><SPAN><EM>by Adrian Görler, Robin de Silva Jayasinghe, and Vitaly Kozyura</EM></SPAN></P><P><SPAN>A look at how declarative mechanisms in CAP such as calculated elements, annotation-based constraints (e.g. @assert, @assert.range, @assert.format), and field control help to reduce custom code. The session also covered how status transition flows help reducing the need for custom validation logic while ensuring data integrity.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=fY_zMS0Il2E" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Update from the cap-js-community - Experience the latest additions to CAP </SPAN></STRONG><SPAN><EM>by Oliver Klemenz</EM></SPAN></P><P><SPAN>A focused technical update on the latest enhancements in the cap-js-community, with a deep dive into the WebSocket modules and the newly introduced common utilities module.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=BkyW8e4a_xU" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>AI-Assisted Security Hardening of CAP Applications</SPAN></STRONG><SPAN><EM> by Matthias Braun</EM></SPAN></P><P><SPAN>Matthias showed how AI-powered tools can help identify authorization gaps, generate comprehensive security tests, and detect attack vectors. This significantly reduces the effort required to build and maintain secure CAP applications. </SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=uqjjxnAFgeA" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Event Queues Scheduling&nbsp;</SPAN></STRONG><SPAN><EM>by&nbsp;Sebastian Van Syckel, Dietrich Mostowoj, Thomas Bonk, and Lars Plessing<BR /></EM>A deep dive into Transactional Event Queues, which allow scheduling of events and background tasks for asynchronous, exactly-once processing with strong resilience.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=54reW0ZdxLI" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Automated Testing with HANA Cloud&nbsp;</SPAN></STRONG><SPAN><EM>by&nbsp;Armin Hatting</EM><STRONG><BR /></STRONG>Armin presented practical approaches to integrating database-supported testing in CAP applications, setting up realistic test environments, and ensuring the functionality of SAP HANA Cloud native logic.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=7ypZydfAG1c" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P><STRONG><SPAN>Did you know about infix filters and projection functions?</SPAN></STRONG><SPAN><EM> by Nico Schoenteich</EM></SPAN></P><P><SPAN>A live-coding overview of infix filters and projection functions (Node.js) and how they were applied in a recent project to reduce custom service.</SPAN></P><P><SPAN><A href="https://www.youtube.com/watch?v=z6jyo82-Tgs" target="_blank" rel="noopener nofollow noreferrer"><EM>Recording link</EM></A></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1230576059"><SPAN>Thank You </SPAN></H2><P><SPAN>A huge thank-you to all speakers, attendees, and community members who made reCAP 2026 such an inspiring day. </SPAN><STRONG><span class="lia-unicode-emoji" title=":raising_hands:">🙌</span></STRONG><SPAN>&nbsp;The energy, the ideas, and the conversations are exactly what makes the CAP community special.</SPAN></P><P><SPAN>If you missed any session, use the recording links above to catch up. </SPAN></P><P><SPAN>We look forward to seeing how you use what you learned at reCAP 2026. If you have any feedback, please let us know. </SPAN></P><P><SPAN>Happy coding! </SPAN><span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:">😊</span></P> 2026-07-22T12:07:54.874000+02:00 https://community.sap.com/t5/technology-blog-posts-by-members/integrating-amazon-fba-with-sap-s4-hana-part-3/ba-p/14227294 Integrating Amazon FBA with SAP S4 HANA - Part 3 2026-07-23T01:30:00.973000+02:00 Shailendu https://community.sap.com/t5/user/viewprofilepage/user-id/225524 <P>Just in case you landed here directly, this is the third chapter in this series about integrating SAP S/4HANA with Amazon Seller Central.&nbsp;This article focuses on <STRONG>Amazon FBA SAP S4 HANA integration</STRONG>.</P><P>Unlike FBM, Amazon FBA is best modelled as a consignment process because Amazon physically holds and ships the inventory while the merchant continues to own it until the product is sold.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Amazon FBA SAP S4 HANA integration and consignment process" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436313i8C1EAB03BCEE5B7F/image-size/large?v=v2&amp;px=999" role="button" title="How to Integrate Amazon FBA and SAP S4 HANA.png" alt="How to Integrate Amazon FBA and SAP S4 HANA.png" /></span></P><UL><LI>In the first part I covered Amazon merchant models, the Selling Partner API, master data setup, and the process of obtaining an Amazon Developer ID. Here is the link to the article&nbsp;<A href="https://community.sap.com/t5/technology-blog-posts-by-members/how-to-get-started-with-sap-s-4hana-and-amazon-seller-central-integration/ba-p/14151024" target="_blank">How to Get Started with SAP S/4HANA and Amazon Seller Central Integration</A>&nbsp;</LI><LI>In the <A href="https://community.sap.com/t5/technology-blog-posts-by-members/amazon-seller-central-sap-s4-hana-integration-part-2-fulfilled-by-merchant/ba-p/14157584" target="_blank">second part on Fulfilled by Merchant</A><SPAN>, I explained how Amazon FBM maps to the standard SAP Sales and Distribution order-to-cash cycle.</SPAN></LI></UL><P>That distinction changes how inventory, revenue, receivables, tax, returns, reimbursements, and Amazon settlements should be recorded in SAP S/4HANA.</P><P>&nbsp;</P><P><EM>US division of a European Food Processing Company closed down their Amazon marketplace simply because they weren't able to manage the processes and reconcile their financials.&nbsp;</EM>&nbsp;<BR /><EM>A nutrition supplement company outsources their complete Amazon operations for a significant fees to a third party provider.</EM></P><P>If you Amazon FBA is the model you are exploring for your business, this tutorial will help simplify the entire concept and give you some confidence&nbsp;<span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:">😊</span> of mapping the process in the SAP terminologies.&nbsp;</P><HR /><H2 id="toc-hId-1761042233">Amazon FBA SAP S4 HANA Integration: Complete Consignment Process</H2><P>Amazon Fulfilled by Amazon, commonly called FBA, allows merchants to send inventory in bulk to Amazon fulfillment centers. Amazon then stores the inventory and manages order picking, packing, customer delivery, customer service, and returns.</P><P>In SAP S/4HANA, this model closely matches the customer consignment process. The goods remain the merchant’s property while they are stored at Amazon. Revenue is recognized only when a customer purchases the product and Amazon fulfills the order.</P><HR /><H3 id="toc-hId-1693611447">Amazon FBA and SAP S/4HANA: Key Takeaways</H3><P>Here are the key takeaways from mapping Amazon FBA with Consignment Process within SAP.&nbsp;</P><UL><LI>Stock sent to Amazon is recorded as customer consignment stock.</LI><LI>Inventory remains owned by the merchant until the customer sale.</LI><LI>No revenue is recognized when goods are initially sent to Amazon.</LI><LI>A customer purchase creates a consignment issue in SAP.</LI><LI>Customer returns create consignment returns and credit adjustments.</LI><LI>Unsold stock returned by Amazon creates a consignment pick-up.</LI><LI>Amazon settlements must be matched against sales, fees, returns, reserves, and reimbursements.</LI><LI>Special stock indicator W keeps Amazon-held inventory separate and visible.</LI></UL><HR /><H3 id="toc-hId-1497097942">What Is Amazon FBA? What are the steps involved business process wise</H3><P>Business process wise Amazon FBA cycle starts with the following steps.</P><UL><LI><STRONG>Identifying merchandize you will be selling</STRONG> - A big decision is which of your products you would want to launch on Amazon FBA store. Of course these are subsets of products that have a B2C demand and some market research to back it up.&nbsp;</LI><LI><STRONG>Sending a bulk shipment to Amazon Warehouse / Distribution Center</STRONG> - The first shipment that you sent to Amazon Warehouse, it often a butterfly in the stomach instance. You need to create a shipment prior to this with all the items that you intend to send to Amazon. You may also do some carrier shopping. In many cases I have seen Amazon's own carrier being the most cost effective.</LI></UL><P>&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_1-1784761035345.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436325i54DE157F477BFB29/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_1-1784761035345.png" alt="Shailendu_1-1784761035345.png" /></span></P><UL><LI><STRONG>When Amazon order comes through -&nbsp;</STRONG>As customers place orders, Amazon fulfills them and sends the information back to SAP. Each order is recorded as a consignment issue. In SAP, Amazon remains both the sold-to party and the payer, while the ship-to address is the end customer. Having the correct ship-to address is critical because it determines the tax calculation. The tax shown in SAP should match what Amazon collects and pays on behalf of the seller. Since pricing is driven by Amazon, you will need manual conditions within SAP to sync the pricing components to match Amazon will pay you at the period end.&nbsp;</LI></UL><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_0-1784761862291.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436326i62CF2F6EFED1E806/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_0-1784761862291.png" alt="Shailendu_0-1784761862291.png" /></span></P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">When Amazon Order comes to SAP, you need to ensure that you map correct ASIN number into customer material Number and the Net Line item and Order amount should match what Amazon will pay you in their settlement cycle for this order.&nbsp;</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_1-1784761941220.png" style="width: 771px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436327i2BC5ED60751386B6/image-dimensions/771x308?v=v2" width="771" height="308" role="button" title="Shailendu_1-1784761941220.png" alt="Shailendu_1-1784761941220.png" /></span></P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Having synchronization at periodic intervals, keeps your A/R accurate.&nbsp;</P><UL><LI><STRONG>Returns</STRONG>&nbsp;are also tracked. When Amazon processes a return, SAP creates a consignment return, followed by a return delivery and credit memo. This keeps your accounts receivable aligned with Amazon’s adjustments.</LI><LI>Finally,&nbsp;<STRONG>Payment reconciliation</STRONG>&nbsp;takes place. Every two weeks, Amazon sends a bulk payment that covers all orders, less fees, reserves, or special charges. With proper integration, the invoices in SAP match Amazon’s payouts, reducing manual work. Although there may still be small adjustments for account-level charges, most of the process runs automatically, saving time and effort for the finance team.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_3-1784762347833.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436329i345AFEB102B97CD3/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_3-1784762347833.png" alt="Shailendu_3-1784762347833.png" /></span></P><P>Under Amazon FBA, merchants do not ship each customer order themselves. Instead, they create an inbound shipment and send inventory in bulk to Amazon’s fulfillment network.</P><P>Amazon then handles inventory storage, order picking, packaging, delivery to the customer, customer service, customer returns, as well as selected inventory adjustments and reimbursements. This allows sellers to outsource most fulfillment operations while Amazon manages the end-to-end logistics and post-purchase experience.</P><P>The merchant continues to manage product listings, pricing, procurement, accounting, and inventory ownership.</P><H3 id="toc-hId-1300584437">Why Merchants Choose Amazon FBA</H3><P><A title="Amazon FBA advantages" href="https://sell.amazon.com/fulfillment-by-amazon" target="_blank" rel="noopener nofollow noreferrer">Merchants choose Amazon FBA</A> because it reduces logistics work and gives customers access to Amazon’s fulfillment network.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Business benefits of Amazon FBA fulfillment" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436314i068FA497E69B4BEF/image-size/large?v=v2&amp;px=999" role="button" title="Reasons why merchant prefer FBA model.png" alt="Reasons why merchant prefer FBA model.png" /></span></P><H4 id="toc-hId-1233153651">1. Lower Logistics Overhead</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Merchants no longer need to operate their own pick-pack-ship process for FBA products. This can reduce warehouse workload, packaging effort, and carrier management.</P><H4 id="toc-hId-1036640146">2. Faster Customer Delivery</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Amazon distributes inventory across its fulfillment network and places products closer to buyers. This can shorten delivery estimates and improve the customer experience.</P><H4 id="toc-hId-840126641">3. Prime Eligibility and Buyer Trust</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">FBA products may qualify for Prime delivery. Customers also receive Amazon-managed tracking, support, and returns, which can increase confidence in the purchase.</P><H4 id="toc-hId-643613136">4. Lower Exposure to Carrier Delays</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">In an FBM model, the merchant is responsible for carrier selection and delivery performance. Late deliveries can affect the merchant’s Amazon performance metrics.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Under FBA, Amazon assumes much of this fulfillment responsibility.</P><H4 id="toc-hId-447099631">5. Greater Sales Potential</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Fast delivery, Prime eligibility, and Amazon-backed customer service can make an FBA listing more attractive than a comparable merchant-fulfilled listing.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The trade-off is that Amazon gains physical control of the inventory while the merchant continues to own it. This is the main reason FBA should be treated as a consignment process in SAP.</P><HR /><H3 id="toc-hId-121503407">Why Amazon FBA Is a Consignment Process in SAP</H3><P>When products are stored inside an Amazon fulfillment center, they remain the merchant’s inventory.</P><P>Amazon has physical custody of the goods, but ownership has not transferred. No customer sale has occurred, and revenue should not be recognised.</P><P>This is the standard definition of consignment stock: goods stored at a customer or partner location that remain the seller’s property until they are consumed or sold.</P><P>SAP S/4HANA provides a four-step consignment cycle that maps closely to Amazon FBA.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Amazon FBA events mapped to SAP consignment steps" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436316iC4E292B57AF9EBFC/image-size/large?v=v2&amp;px=999" role="button" title="FBA Events versus SAP Consignment Flow.png" alt="FBA Events versus SAP Consignment Flow.png" /></span></P><P><SPAN>What Is Special Stock Indicator W?</SPAN></P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Special stock indicator <STRONG>W</STRONG> identifies customer consignment stock in SAP.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">It allows Amazon-held inventory to remain visible and valued as an asset while keeping it separate from normal unrestricted stock in the merchant’s warehouse.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">This distinction is important for inventory reporting, balance-sheet accuracy, available-to-promise calculations, and reconciliation with Amazon’s inventory reports.</P><H3 id="toc-hId--150241467">Amazon FBA Integration Architecture</H3><P>A complete Amazon FBA SAP S4 HANA integration normally connects Amazon Seller Central, Amazon Selling Partner API, SAP Sales and Distribution, Materials Management, Finance, and an integration platform or middleware layer.</P><P>The integration must support bidirectional data movement.</P><H4 id="toc-hId--640157979">Data Moving from SAP to Amazon</H4><UL><LI>Product and SKU data</LI><LI>Inventory planned for inbound shipments</LI><LI>Shipment and carton details</LI><LI>Product identifiers and mappings</LI><LI>Selected pricing or availability information</LI></UL><H4 id="toc-hId--836671484">Data Moving from Amazon to SAP</H4><UL><LI>FBA customer orders</LI><LI>Shipment and fulfillment data</LI><LI>Customer delivery addresses</LI><LI>Returns and refunds</LI><LI>FBA inventory balances</LI><LI>Lost and damaged inventory adjustments</LI><LI>Amazon fees and commissions</LI><LI>Reimbursements</LI><LI>Settlement and payout reports</LI></UL><H3 id="toc-hId--739781982">Master Data Required for Amazon FBA SAP S4 HANA Integration</H3><P>Reliable master data is the foundation of the integration. Incorrect mappings will eventually create inventory differences, tax errors, unmatched settlements, and incorrect receivables.</P><H4 id="toc-hId--1229698494">Amazon as Customer or Business Partner</H4><P>Amazon must be created as a customer or business partner because the SAP consignment cycle is executed against a customer account.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_5-1784762801176.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436331i046893F14A7E4928/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_5-1784762801176.png" alt="Shailendu_5-1784762801176.png" /></span></P><P class="lia-align-center" style="text-align: center;"><FONT size="2">Figure - Create Amazon as a business partner against which the consignment cycle will execute.&nbsp;</FONT></P><P>In a common FBA design:</P><UL><LI><STRONG>Sold-To Party:</STRONG> Amazon</LI><LI><STRONG>Payer:</STRONG> Amazon</LI><LI><STRONG>Ship-To:</STRONG> The end customer’s delivery address</LI></UL><P>Amazon is responsible for settling the merchant’s proceeds, but the end customer’s address is required for tax calculation and transaction reporting.</P><H4 id="toc-hId--1426211999">Amazon Consignment Inventory Structure</H4><P>The merchant must decide how Amazon-held inventory will be represented in SAP.</P><P>Depending on the implementation, FBA stock may be organised through a dedicated plant, storage location, customer consignment structure, or reporting dimension.</P><P>Many businesses maintain a dedicated storage location or reporting structure so Amazon inventory is never confused with stock physically available in their own warehouse.</P><H4 id="toc-hId--1622725504">ASIN, Seller SKU, and SAP Material Mapping</H4><P>Every Amazon ASIN or Seller SKU must map to the correct SAP material number.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_6-1784762922761.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436332iE92DC6AE6B87B155/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_6-1784762922761.png" alt="Shailendu_6-1784762922761.png" /></span></P><P>This mapping may be maintained through Customer Material Information Records or an integration-layer mapping table.</P><P>The mapping should work in both directions:</P><UL><LI>Amazon ASIN or Seller SKU to SAP material number</LI><LI>SAP material number to Amazon ASIN or Seller SKU</LI></UL><P>This mapping is required for fill-ups, customer sales, returns, inventory adjustments, reimbursements, and settlement reconciliation.</P><H4 id="toc-hId--1819239009">Amazon Fee and SAP Condition-Type Mapping</H4><P>Amazon commissions, FBA fulfillment fees, discounts, promotions, and other order-level charges should be mapped to appropriate SAP pricing condition types.</P><P>This allows the SAP net receivable to align with the order-level amount Amazon reports as payable.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shailendu_7-1784762967706.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/436333i11D5C654E6DFE133/image-size/large?v=v2&amp;px=999" role="button" title="Shailendu_7-1784762967706.png" alt="Shailendu_7-1784762967706.png" /></span></P><P>&nbsp;</P><H3 id="toc-hId--1722349507">Consignment Fill-Up: Sending Inventory to Amazon</H3><P>The FBA process begins when the merchant sends inventory to Amazon.</P><P>This step involves coordinated activity in Amazon Seller Central and SAP S/4HANA.</P><H4 id="toc-hId-2082701277">Amazon-Side Inbound Shipment Process</H4><P>In Seller Central, the merchant creates an inbound shipment or FBA shipment plan.</P><P>The merchant provides:</P><UL><LI>Products being sent</LI><LI>Quantity of each product</LI><LI>Source warehouse</LI><LI>Carton configuration</LI><LI>Preparation details</LI><LI>Shipping method</LI></UL><P>Amazon provides item labels, carton labels, preparation instructions, and fulfillment-center destinations.</P><P>Amazon may divide one inbound shipment across several fulfillment centers based on its inventory-placement requirements.</P><H4 id="toc-hId-2054371463">SAP Consignment Fill-Up Process</H4><P>In SAP S/4HANA, the corresponding process normally includes:</P><OL><LI>Creation of a consignment fill-up sales order</LI><LI>Creation of an outbound delivery</LI><LI>Picking and packing</LI><LI>Post Goods Issue</LI></OL><P>The goods issue moves stock from the merchant’s warehouse into Amazon customer consignment stock under special stock indicator W.</P><H4 id="toc-hId-1857857958">No Revenue at Consignment Fill-Up</H4><P><STRONG>No revenue or customer receivable should be posted when inventory is sent to Amazon.</STRONG></P><P>The merchant has moved inventory to another physical location, but the inventory has not yet been sold.</P><P>Recognising revenue during the fill-up would overstate sales, receivables, profit, and potentially tax.</P><H4 id="toc-hId-1661344453">Tracking Multiple Amazon Fulfillment Centers</H4><P>Amazon may send an inbound shipment to several fulfillment centers and later redistribute units within its network.</P><P>SAP does not always need to represent every fulfillment center as a separate accounting location. Many merchants track the aggregate consignment quantity held by Amazon while allowing Amazon to manage fulfillment-center-level placement.</P><P>Businesses requiring detailed operational reporting can maintain additional fulfillment-center visibility in the integration layer.</P><HR /><H3 id="toc-hId-1758233955">Consignment Issue: Processing Amazon FBA Customer Orders</H3><P>When a customer buys a product, Amazon picks, packs, and ships it from an FBA fulfillment center.</P><P>Amazon then makes the order and fulfillment information available through SP-API endpoints and reports.</P><P>In SAP, the completed customer sale is recorded as a <STRONG>consignment issue</STRONG>.</P><P>This is the moment when:</P><UL><LI>The product leaves special stock W.</LI><LI>Ownership transfers to the buyer.</LI><LI>Revenue is recognised.</LI><LI>The Amazon receivable is posted.</LI><LI>Relevant fees and taxes are recorded.</LI></UL><H4 id="toc-hId-1268317443">Amazon Order Number</H4><P>The Amazon order number should be stored in a searchable SAP reference field. Many implementations map it to the customer purchase-order field.</P><P>This reference is required for customer service, returns, settlement matching, and audit trails.</P><H4 id="toc-hId-1071803938">Sold-To, Payer, and Ship-To Determination</H4><P>Amazon normally remains the Sold-To Party and Payer because Amazon settles the merchant’s proceeds.</P><P>The end customer’s address is used as the Ship-To information. This address is especially important for tax determination.</P><H4 id="toc-hId-875290433">Product and Quantity Mapping</H4><P>Each Amazon SKU or ASIN must resolve to the correct SAP material. The consignment issue must consume the correct quantity from Amazon consignment stock.</P><H4 id="toc-hId-678776928">Amazon Fees and Net Receivables</H4><P>Amazon commissions, FBA fulfillment fees, discounts, and other order-level charges should be represented through SAP pricing condition types or related financial postings.</P><P>A useful validation rule is:</P><P><STRONG>If the SAP net receivable does not match Amazon’s order-level payable amount, the fee or pricing mapping is incomplete.</STRONG></P><H3 id="toc-hId-775666430">Amazon Marketplace Facilitator Tax in SAP</H3><P>Tax requires special attention in an Amazon FBA integration.</P><P>Under Marketplace Facilitator laws in the United States and similar rules in other regions, Amazon may calculate, collect, and remit sales tax on behalf of the merchant.</P><H4 id="toc-hId-285749918">Why the Ship-To Address Matters</H4><P>Tax generally follows the customer’s delivery destination. The end customer’s address must therefore be available in SAP even when Amazon is the Sold-To Party and Payer.</P><P>The ship-to address allows SAP to determine the correct tax jurisdiction and compare the result with Amazon’s tax reporting.</P><H4 id="toc-hId-257420104">Statistical Tax Condition</H4><P>Amazon-collected tax is often represented as a statistical condition in SAP.</P><P>This keeps the amount visible and reconcilable without incorrectly treating it as tax the merchant must remit where Amazon is responsible for remittance.</P><P>The SAP tax amount should align with Amazon’s Marketplace Facilitator reporting. A close match indicates that the ship-to and tax determination logic is working correctly.</P><H3 id="toc-hId-354309606">Consignment Return: Processing Amazon Customer Returns</H3><P>When Amazon accepts a customer return and places the product back into sellable FBA inventory, the transaction should create a consignment return in SAP.</P><P>The SAP process normally includes:</P><OL><LI>Consignment return order</LI><LI>Return delivery</LI><LI>Inventory movement back into special stock W</LI><LI>Credit memo linked to the original transaction</LI></OL><P>The return should reference the original Amazon order and the original SAP consignment issue whenever possible.</P><P>This ensures that SAP:</P><UL><LI>Reduces or reverses the original receivable</LI><LI>Restores eligible inventory to Amazon consignment stock</LI><LI>Records the credit memo correctly</LI><LI>Matches Amazon’s customer refund</LI></UL><H4 id="toc-hId--135606906">Sellable and Unsellable FBA Returns</H4><P>Not every customer return is placed back into sellable inventory.</P><P>Amazon may classify returned inventory as:</P><UL><LI>Sellable</LI><LI>Customer damaged</LI><LI>Carrier damaged</LI><LI>Warehouse damaged</LI><LI>Defective</LI><LI>Unsellable</LI></UL><P>The integration should use this disposition to determine whether the unit returns to sellable consignment stock or requires an adjustment, reimbursement claim, disposal, or removal order.</P><H3 id="toc-hId--38717404">Consignment Pick-Up: Returning Unsold Inventory</H3><P>Slow-moving FBA inventory can generate storage and aged-inventory charges. Merchants may also want to discontinue a product, change packaging, or move stock to another sales channel.</P><P>In these situations, the merchant creates a removal order in Seller Central.</P><P>When Amazon returns the inventory, SAP processes a <STRONG>consignment pick-up</STRONG>.</P><P>The inventory movement is:</P><P><STRONG>Amazon consignment stock under special stock W → merchant-owned warehouse inventory.</STRONG></P><P>This closes the inventory loop for goods sent to Amazon but never sold.</P><H3 id="toc-hId--235230909">Amazon FBA Inventory Reconciliation in SAP</H3><P>Inventory reconciliation is one of the most important differences between Amazon FBA and FBM.</P><P>Under FBM, the merchant physically controls the inventory. Under FBA, Amazon stores, transfers, fulfills, and adjusts the inventory across its network.</P><P>FBA units can become:</P><UL><LI>Lost inside the fulfillment network</LI><LI>Damaged by Amazon</LI><LI>Damaged by a carrier</LI><LI>Disposed of</LI><LI>Transferred between fulfillment centers</LI><LI>Reserved for customer orders</LI><LI>Classified as unsellable</LI><LI>Reimbursed by Amazon</LI></UL><P>SAP consignment stock should be reconciled periodically against Amazon’s FBA inventory ledger and adjustment reports.</P><H4 id="toc-hId--725147421">Inventory Reconciliation Data</H4><P>The reconciliation should compare:</P><UL><LI>Opening FBA inventory</LI><LI>Inbound shipment receipts</LI><LI>Customer shipments</LI><LI>Customer returns</LI><LI>Fulfillment-center transfers</LI><LI>Lost or damaged units</LI><LI>Disposals</LI><LI>Removal orders</LI><LI>Amazon reimbursements</LI><LI>Closing FBA inventory</LI></UL><P>Confirmed differences should create the appropriate SAP inventory or financial adjustment.</P><P>Without regular reconciliation, the quantity recorded as Amazon consignment stock in SAP will gradually differ from the quantity Amazon is actually holding.</P><H3 id="toc-hId--628257919">Amazon Settlement and Payment Reconciliation</H3><P>Amazon commonly settles merchant proceeds on an approximately 14-day cycle, although timing can vary by marketplace, account status, reserves, and transaction type.</P><P>A settlement can include:</P><UL><LI>Product sales</LI><LI>Customer refunds</LI><LI>Amazon commissions</LI><LI>FBA fulfillment fees</LI><LI>Storage charges</LI><LI>Removal and disposal fees</LI><LI>Advertising charges</LI><LI>Promotional costs</LI><LI>Inventory reimbursements</LI><LI>Account reserves</LI><LI>Other adjustments</LI></UL><P>The amount deposited into the bank is therefore not a simple total of customer invoices. It is a net settlement containing several transaction types.</P><H4 id="toc-hId--1118174431">Automated Amazon Settlement Reconciliation</H4><P>A scalable Amazon FBA SAP S4 HANA integration should:</P><OL><LI>Import Amazon settlement data.</LI><LI>Match sales against SAP consignment issues and invoices.</LI><LI>Match returns against credit memos.</LI><LI>Post fees to the correct general-ledger accounts.</LI><LI>Identify reimbursements and inventory adjustments.</LI><LI>Clear the Amazon customer account.</LI><LI>Highlight unmatched differences for review.</LI></OL><P>If order-level fees are mapped correctly, most transaction-level amounts can reconcile automatically.</P><H4 id="toc-hId--1314687936">Charges That May Require Separate Postings</H4><P>Some account-level charges may not be directly linked to individual customer orders:</P><UL><LI>Monthly FBA storage fees</LI><LI>Aged-inventory surcharges</LI><LI>Advertising expenses</LI><LI>Removal and disposal fees</LI><LI>Reserve adjustments</LI><LI>Other account-level deductions</LI></UL><P>These exceptions remain manageable when the main sales, return, fee, reimbursement, and settlement flows are automated.</P><H3 id="toc-hId--1217798434">Benefits of Amazon FBA SAP S4 HANA Integration</H3><H4 id="toc-hId--1539531255">True FBA Inventory Visibility</H4><P>The business always knows how much inventory is sitting at Amazon. Special stock indicator W keeps this inventory visible, correctly classified, and valued on the balance sheet.</P><H4 id="toc-hId--1736044760">Accurate Revenue Recognition</H4><P>Revenue is recognised when the customer purchase creates a consignment issue, not when inventory is sent to Amazon in bulk.</P><H4 id="toc-hId--1932558265">Automated Accounts Receivable</H4><P>Sales, returns, credit memos, fees, and reimbursements can flow into SAP without large volumes of manual journal entries.</P><H4 id="toc-hId--2129071770">Reconcilable Marketplace Tax</H4><P>Ship-to-driven statistical tax can be compared with Amazon’s Marketplace Facilitator reporting.</P><H4 id="toc-hId-1969382021">Reliable Inventory Accounting</H4><P>Amazon-held inventory remains visible as a merchant-owned asset without being confused with stock physically available in the merchant’s warehouse.</P><H4 id="toc-hId-1772868516">Faster Financial Close</H4><P>Automated settlement matching reduces the time finance teams spend investigating payouts, fees, refunds, and unexplained differences.</P><H4 id="toc-hId-1576355011">Exception-Based Operations</H4><P>Finance and operations teams can focus on genuine exceptions instead of manually processing every Amazon transaction.</P><H4 id="toc-hId-1379841506">Scalability</H4><P>The same closed-loop integration can support 100 orders per day or 10,000 orders per day without requiring a proportional increase in finance and operations headcount.</P><H3 id="toc-hId-1476731008">Amazon FBA SAP S4 HANA Integration Process Summary</H3><P>The complete process works as a closed loop:</P><OL><LI><STRONG>Consignment fill-up:</STRONG> Inventory moves to Amazon without revenue recognition.</LI><LI><STRONG>Consignment issue:</STRONG> A customer sale consumes FBA inventory and creates revenue and receivables.</LI><LI><STRONG>Consignment return:</STRONG> Eligible customer returns restore Amazon consignment stock and create credit adjustments.</LI><LI><STRONG>Consignment pick-up:</STRONG> Unsold inventory returns to the merchant’s warehouse.</LI><LI><STRONG>Inventory reconciliation:</STRONG> Lost, damaged, disposed, transferred, and reimbursed units are recorded.</LI><LI><STRONG>Settlement reconciliation:</STRONG> Sales, fees, returns, reimbursements, and reserves are matched to Amazon payouts.</LI></OL><H3 id="toc-hId-1280217503">Conclusion</H3><P><STRONG>Amazon FBA SAP S4 HANA integration</STRONG> is best designed around SAP’s customer consignment cycle.</P><P>The consignment fill-up moves stock to Amazon without recognising revenue. The consignment issue records the customer sale. Consignment returns and pick-ups keep inventory and receivables aligned. Inventory and settlement reconciliation connect SAP records with what Amazon is physically holding and financially paying.</P><P>Getting the customer master, consignment order types, ASIN mappings, ship-to information, fee conditions, tax logic, and reconciliation rules right creates a scalable foundation for Amazon growth.</P><P>The result combines Amazon’s fulfillment network with SAP S/4HANA’s inventory control and financial discipline—without losing visibility over inventory the merchant still owns.</P><P>In the next part of this series, we will cover implementation best practices and the most common mistakes businesses make when integrating Amazon FBM and FBA with SAP S/4HANA.</P><H3 id="toc-hId-1251887689">Frequently Asked Questions About Amazon FBA SAP S4 HANA Integration</H3><P>Here are some questions that are usually asked.&nbsp;</P><H4 id="toc-hId-761971177">What is the difference between Amazon FBA and FBM in SAP?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">With FBA, inventory is sent to Amazon in bulk and Amazon fulfills customer orders. It is best modelled as a consignment process.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">With FBM, the merchant stores and ships each order. It normally follows the standard SAP order-to-cash process.</P><H4 id="toc-hId-565457672">Why is Amazon FBA treated as consignment in SAP?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Inventory stored at Amazon remains the merchant’s property until a customer buys it. Amazon has physical custody, but ownership has not transferred.</P><H4 id="toc-hId-368944167">What are the main SAP consignment steps for Amazon FBA?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The four main steps are consignment fill-up, consignment issue, consignment return, and consignment pick-up. Not all of them will be applicable.&nbsp;</P><H4 id="toc-hId-172430662">When is revenue recognised for an Amazon FBA sale?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Revenue is recognised when the customer purchases the product and SAP creates the consignment issue. Revenue is not recognised when inventory is initially sent to Amazon.</P><H4 id="toc-hId--24082843">What is special stock indicator W in SAP?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Special stock indicator W identifies customer consignment stock. It keeps Amazon-held inventory visible as merchant-owned inventory while separating it from normal unrestricted stock.</P><H4 id="toc-hId--220596348">Does sending inventory to Amazon create an invoice?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">No. A consignment fill-up represents an inventory movement, not a customer sale. It should not create revenue or a standard customer invoice.</P><H4 id="toc-hId--417109853">Who should be the Sold-To Party and Payer?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Amazon typically remains the Sold-To Party and Payer because Amazon settles the merchant’s proceeds. The end customer’s address is used as the Ship-To information.</P><H4 id="toc-hId--613623358">Why is the customer ship-to address required?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The customer’s delivery address determines the tax jurisdiction. SAP needs this information to calculate and reconcile tax with Amazon’s Marketplace Facilitator reporting.</P><H4 id="toc-hId--810136863">How should Amazon-collected sales tax be recorded?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">It is often recorded as a statistical condition. This keeps the tax visible for reconciliation without treating it as tax the merchant must remit where Amazon is responsible.</P><H4 id="toc-hId--838466677">How are Amazon FBA customer returns handled in SAP?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">A sellable customer return creates a consignment return, return delivery, inventory movement back into special stock W, and a credit memo linked to the original transaction.</P><H4 id="toc-hId--1034980182">What happens when a returned product is unsellable?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The Amazon disposition should determine whether the unit requires an inventory adjustment, reimbursement, disposal, or removal order instead of returning to sellable consignment stock.</P><H4 id="toc-hId--1231493687">What happens to unsold Amazon FBA inventory?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The merchant can create a removal order in Seller Central. SAP then processes a consignment pick-up when Amazon returns the units.</P><H4 id="toc-hId--1428007192">How should lost or damaged FBA inventory be handled?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">SAP consignment inventory should be reconciled with Amazon’s FBA inventory reports. Confirmed lost, damaged, disposed, or reimbursed units should create appropriate inventory and financial adjustments.</P><H4 id="toc-hId--1624520697">How often does Amazon pay FBA merchants?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Amazon commonly settles merchant proceeds approximately every 14 days. The timing can vary by marketplace, account, reserve requirements, and transaction type.</P><H4 id="toc-hId--1821034202">Why does the Amazon payout not equal total product sales?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">The payout is net of customer refunds, commissions, fulfillment fees, storage charges, advertising costs, reserves, reimbursements, and other adjustments.</P><H4 id="toc-hId--2017547707">Can Amazon settlement reconciliation be fully automated?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Most order-related reconciliation can be automated when sales, returns, fees, and reimbursements are mapped correctly. Some account-level charges may still require separate postings or review.</P><H4 id="toc-hId-2080906084">Can the integration support high Amazon order volumes?</H4><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Yes. A scalable integration uses automated document creation, API processing, scheduled reconciliation, and exception management. The same consignment design can support hundreds or thousands of daily orders.</P> 2026-07-23T01:30:00.973000+02:00 https://community.sap.com/t5/transformation-management-learning-group-blog/accelerate-business-transformation-with-sap-activate-and-the-agent-led/ba-p/14446964 Accelerate Business Transformation with SAP Activate and the Agent-led Toolchain 2026-07-23T09:00:59.088000+02:00 JohnyBandela https://community.sap.com/t5/user/viewprofilepage/user-id/170808 <P>Successful business transformation requires the right methodology, the right tools, and the right skills. The BTM live session programme for H2 2026 brings together SAP Activate fundamentals, workstream deep dives, certification preparation, and intensive hands-on bootcamps — all designed to help consultants, project managers, and transformation leads deliver faster, more predictable outcomes.</P><P>The hands-on bootcamps place a particular focus on the agent-led toolchain — the integrated use of SAP Signavio, SAP LeanIX, and WalkMe alongside SAP Activate — for both new business transformation programmes and SAP S/4HANA system conversions.</P><P><STRONG>What You Will Learn</STRONG></P><UL><LI>Core SAP Activate methodology — phases, workstreams, and key deliverables.</LI><LI>How to apply the agent-led toolchain across the full transformation lifecycle.</LI><LI>Certification preparation for SAP Activate Project Manager and S/4HANA Project Systems.</LI><LI>Practical bootcamp exercises covering both business transformation and system conversion scenarios.</LI></UL><P><SPAN>&nbsp;</SPAN></P><P><STRONG>Scheduled Sessions</STRONG></P><TABLE><TBODY><TR><TD width="400"><P><STRONG>Session Title</STRONG></P></TD><TD width="200"><P><STRONG>Course ID</STRONG></P></TD><TD width="300"><P><STRONG>Dates &amp; Times (UTC)</STRONG></P></TD><TD width="300"><P><STRONG>Register</STRONG></P></TD></TR><TR><TD width="269"><P><STRONG>SAP Activate</STRONG></P></TD><TD width="115"><P>LS_00008352</P></TD><TD width="144"><P>4 Sep 2026 — 08:00<BR />4 Sep 2026 — 16:00<BR />6 Nov 2026 — 08:00<BR />6 Nov 2026 — 16:00<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/sap-activate-1" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR><TR><TD width="269"><P><STRONG>SAP Activate — Workstreams</STRONG></P></TD><TD width="115"><P>LS_00008353</P></TD><TD width="144"><P>27 Jul 2026 — 08:00<BR />27 Jul 2026 — 16:00<BR />12 Oct 2026 — 08:00<BR />12 Oct 2026 — 16:00<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/sap-activate-workstreams" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR><TR><TD width="269"><P><STRONG>Hands-on Bootcamp: Agent-led Toolchain for Business Transformation</STRONG></P></TD><TD width="115"><P>LS_00012324</P></TD><TD width="144"><P>28 Jul 2026 — 04:00<BR />18 Aug 2026 — 04:00<BR />19 Aug 2026 — 16:00<BR />20 Aug 2026 — 08:00<BR />8 Sep 2026 — 15:30<BR />10 Sep 2026 — 08:30<BR />20 Oct 2026 — 08:30<BR />3 Nov 2026 — 15:30<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/hands-on-bootcamp-leveraging-the-integrated-toolchain-for-business-transformation" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR><TR><TD width="269"><P><STRONG>Hands-on Bootcamp: Agent-led Toolchain for System Conversion</STRONG></P></TD><TD width="115"><P>LS_00012326</P></TD><TD width="144"><P>16 Sep 2026 — 15:00<BR />17 Sep 2026 — 08:00<BR />10 Nov 2026 — 08:00<BR />24 Nov 2026 — 15:00<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/hands-on-bootcamp-leveraging-the-integrated-toolchain-for-system-conversion" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR><TR><TD width="269"><P><STRONG>Get Certified: Project Manager — SAP Activate / Agile Implementation Management</STRONG></P></TD><TD width="115"><P>LS_00010428</P></TD><TD width="144"><P>24 Aug 2026 — 07:00<BR />25 Aug 2026 — 18:00<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/get-certified-project-manager-sap-activate-sap-activate-for-agile-implementation-management" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR><TR><TD width="269"><P><STRONG>Get Certified: SAP Certified — SAP S/4HANA Project Systems</STRONG></P></TD><TD width="115"><P>LS_00013920</P></TD><TD width="144"><P>27 Jul 2026 — 09:00<BR />27 Jul 2026 — 16:00<BR />5 Oct 2026 — 09:00<BR />5 Oct 2026 — 16:00<BR /><BR /></P></TD><TD width="173"><P><A href="https://learning.sap.com/live-sessions/get-certified-sap-certified-sap-s-4hana-project-systems" target="_blank" rel="noopener noreferrer">Register here</A></P></TD></TR></TBODY></TABLE><P><SPAN>&nbsp;</SPAN></P><P><EM>All times are in UTC. The hands-on bootcamp for business transformation runs the highest frequency of sessions — 8 offerings across H2 2026 — to maximize global participation. Bootcamp seats are limited; early registration is recommended.</EM></P> 2026-07-23T09:00:59.088000+02:00 https://community.sap.com/t5/technology-blog-posts-by-members/ai-driven-sap-performance-insights/ba-p/14441710 AI-Driven SAP Performance Insights 2026-07-23T09:06:22.369000+02:00 krishnavemulapalli https://community.sap.com/t5/user/viewprofilepage/user-id/592000 <P class="">All my fellow SAP Basis admins know how useful the <STRONG>HANA Expensive Statements</STRONG> view in <STRONG>DBACOCKPIT</STRONG> can be.</P><P class="">It gives us detailed insight into performance-critical information like execution duration, CPU usage, memory consumption, application source, work process details, and much more. It is one of those views we often rely on when troubleshooting database performance issues.</P><P class="">But there is a challenge we all run into: the data does not stay around for long.</P><P class="">In a typical SAP S/4HANA system, expensive statement history is usually short-lived — often only around <STRONG>6–8 hours</STRONG> in practical scenarios . So if an issue is reported later in the day, the next morning, or after a month-end process, the most useful evidence may already be gone.</P><P class="">That raises important questions:</P><P class="">&nbsp;</P><UL><LI>When did the issue actually start?</LI><LI>How did the query perform yesterday or during month-end close?</LI><LI>Which users executed it in the past month?</LI><LI>What parameters made it expensive compared with normal executions?</LI></UL><P>&nbsp;</P><P class="">With everything AI can do today, I started thinking: <STRONG>why not use AI to overcome the limitation of short-lived HANA expensive statement data — and make the analysis easier for both technical and functional teams?</STRONG></P><P class="">That idea led to the <STRONG>HANA Expensive Statement Analyzer</STRONG>, an application designed to convert short-lived HANA expensive statement data into <STRONG>historical, searchable, natural-language insights</STRONG></P><H2 id="ember67" id="toc-hId-1819973384">Solution Overview</H2><P class="">The idea behind this solution is simple: <STRONG>capture the expensive statement data before it disappears, store it historically, and then use AI to make that data easier to analyze.</STRONG></P><P class="">At a high level, the solution is built in three layers:</P><H3 id="ember70" id="toc-hId-1752542598">Layer 1: Data Collection and Persistence</H3><P class="">An ABAP program periodically reads data from the HANA expensive statements source i.e. M_EXPENSIVE_STATEMENTS, and stores the relevant details in a custom SAP table.</P><P class="">A CDS view is then built on top of this table to structure and expose the historical data in a reusable way. This creates the foundation for analyzing expensive statements beyond the short retention window normally available in DBACOCKPIT.</P><H3 id="ember73" id="toc-hId-1556029093">Layer 2: API Exposure</H3><P class="">The CDS-based data model is exposed through OData and made available as an API using SAP BTP AppRouter.</P><P class="">This layer helps securely expose the historical expensive statement data so it can be consumed by downstream applications or AI-based tools.</P><H3 id="ember76" id="toc-hId-1359515588">Layer 3: AI-Powered Natural Language Analysis</H3><P class="">The API is then connected to an enterprise AI assistant, with a system prompt designed to help users ask meaningful performance-related questions in natural language.</P><P class="">For example, instead of manually filtering through historical records, users can ask questions like:</P><P class="">&nbsp;</P><UL><LI>What were the top expensive statements today?</LI><LI>When did this query first become expensive?</LI><LI>Which time window had the highest database load last week?</LI><LI>Compare normal versus expensive executions for this statement.</LI><LI>Were there any expensive queries during month-end close?</LI><LI>Summarize performance issues for the last 30 days in business terms.</LI></UL><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="krishnavemulapalli_5-1784165829922.png" style="width: 642px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/433623iED7BAD5121575701/image-dimensions/642x214?v=v2" width="642" height="214" role="button" title="krishnavemulapalli_5-1784165829922.png" alt="krishnavemulapalli_5-1784165829922.png" /></span><P>&nbsp;</P></DIV><P class="">This makes the solution useful not only for SAP Basis administrators, but also for SAP developers and functional teams. Administrators can troubleshoot using current and historical data, developers can review expensive queries without recreating the issue, and business teams can ask performance questions in plain language.</P><H2 id="ember82" id="toc-hId-1033919364">A Look at the Tool in Action</H2><P class="">Let’s take a quick look at how the tool works and how it can be useful for different personas — <STRONG>SAP Administrators, Developers, and Functional teams.</STRONG></P><P class="">Below are a few sample prompts that show how each persona can use the tool in day-to-day performance analysis.</P><H3 id="ember85" id="toc-hId-966488578">SAP Administrators</H3><P class="">In the example below, I asked the tool to list the <STRONG>top 5 SQL statements by memory consumption for the day</STRONG>.</P><P class="">Along with returning the top 5 statements, the tool also provides useful observations such as:</P><P class="">&nbsp;</P><UL><LI>Which statements consumed the most memory</LI><LI>Whether the statements belong to the same functional area</LI><LI>Whether the same statement hash appeared multiple times</LI><LI>Which user or application pattern may need further investigation</LI><LI>Whether the issue looks like a repeated expensive query pattern</LI></UL><P>&nbsp;</P><P class="">This gives SAP Administrators a quick starting point for troubleshooting. Instead of only looking at raw expensive statement records, they can immediately see summarized insights that help identify users, execution times, application sources, peak load windows, and possible patterns for deeper analysis .</P><P class=""><STRONG>Sample prompt:</STRONG></P><BLOCKQUOTE>What are the top 5 SQLs by memory todayrsonal Favorite: Finding Busy and Idle Windows</BLOCKQUOTE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="krishnavemulapalli_6-1784165939888.png" style="width: 683px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/433624iD5F4148280320F04/image-dimensions/683x475?v=v2" width="683" height="475" role="button" title="krishnavemulapalli_6-1784165939888.png" alt="krishnavemulapalli_6-1784165939888.png" /></span></P><P>&nbsp;</P><P class="">One of my favorite examples is asking the tool to analyze a longer period of performance data and identify system usage trends.</P><P class="">Instead of looking at one expensive statement at a time, I can ask a broader question like:</P><BLOCKQUOTE><STRONG>Based on performance data for July, considering both memory and CPU, can you build a trend of the busiest times and idle times in the system?</STRONG></BLOCKQUOTE><P class="">This is where the historical data becomes really powerful. Since the expensive statement data is captured and stored over time, the tool can analyze patterns across days, weeks, or business cycles instead of being limited to the short-lived DBACOCKPIT history.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="krishnavemulapalli_7-1784166051392.png" style="width: 739px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/433625i40BD7DD7B70B4F42/image-dimensions/739x519?v=v2" width="739" height="519" role="button" title="krishnavemulapalli_7-1784166051392.png" alt="krishnavemulapalli_7-1784166051392.png" /></span>These are just a couple of examples, but the opportunities are endless. By combining historical expensive statement data with AI-powered natural-language analysis, SAP Administrators can quickly identify patterns, peak load windows, recurring expensive queries, and areas that need deeper investigation</P><H3 id="ember100" id="toc-hId-769975073">SAP Developers</H3><P class="">SAP Developers can use the tool to quickly identify expensive SQL statements originating from custom programs, CDS views, or application sources. Instead of waiting to recreate the issue or collect new traces, developers can analyze historical executions, compare expensive versus normal runs, and identify recurring patterns that may point to optimization opportunities.</P><P class="">For example, a developer can ask:</P><BLOCKQUOTE><STRONG>Can you list the top 5 memory-consuming statements for June 2026 originating from Z/custom application sources?</STRONG></BLOCKQUOTE><P class="">The tool can then summarize the most expensive custom/Z-originated statements, highlight memory and CPU usage, show repeated statement hashes, and provide key observations that help developers decide where to focus tuning efforts.</P><P class="">This helps developers move faster from “which query is expensive?” to “what custom object or pattern should I investigate and optimize?</P><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="krishnavemulapalli_8-1784166121944.png" style="width: 562px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/433626iC0A722E62277D03F/image-dimensions/562x1219?v=v2" width="562" height="1219" role="button" title="krishnavemulapalli_8-1784166121944.png" alt="krishnavemulapalli_8-1784166121944.png" /></span><P>&nbsp;</P></DIV><H3 id="ember107" id="toc-hId-573461568">SAP Functional Teams</H3><P class="">Functional teams can use the tool as a <STRONG>self-service capability</STRONG> to get quick insights into expensive queries related to their business areas. Instead of waiting for detailed technical analysis, they can ask performance questions in natural language and understand whether a performance issue may be related to user selections, business process volume, reporting filters, or other functional factors within their purview .</P><P class="">By reviewing the parameters passed to a query, functional teams can often identify whether the issue is caused by broad selections, missing filters, large date ranges, high-volume business scenarios, or unusual usage patterns. This helps them validate the business context before engaging SAP Administrators or Developers for deeper technical troubleshooting.</P><P class="">For example, a functional user can ask:</P><BLOCKQUOTE><STRONG>Based on July performance data, list the top 5 expensive queries by memory in the finance area.</STRONG></BLOCKQUOTE><P class="">The tool can summarize the most expensive queries for that business area, highlight related objects, and provide tuning-focused observations that can help functional teams collaborate more effectively with Basis and development teams.</P><P class="">This makes performance analysis more accessible beyond technical teams and helps move troubleshooting from “technical data only” to a shared conversation between functional, Basis, and development teams.</P><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="krishnavemulapalli_9-1784166170530.png" style="width: 607px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/433627i6DA794321A8F8A12/image-dimensions/607x952?v=v2" width="607" height="952" role="button" title="krishnavemulapalli_9-1784166170530.png" alt="krishnavemulapalli_9-1784166170530.png" /></span><P>&nbsp;</P></DIV><H2 id="ember115" id="toc-hId-247865344">Conclusion</H2><P class="">AI gives SAP Administrators a powerful opportunity to simplify routine analysis, reduce manual effort, and focus more on complex performance challenges. By combining historical HANA expensive statement data with natural-language analysis, we can move beyond short-lived monitoring and turn technical performance data into actionable insights.</P><P class="">This helps SAP Administrators, Developers, and Functional teams troubleshoot faster, identify recurring patterns, and collaborate more effectively when resolving performance issues.</P><P class="">Using AI in the right way allows us to add more value to the business — solving complex problems with better context, faster turnaround time, and more meaningful insights.</P><P class="">Please share your feedback, and feel free to comment if you have any technical questions about the solution. I would be happy to exchange ideas and learn from others working on similar SAP performance challenges.</P> 2026-07-23T09:06:22.369000+02:00 https://community.sap.com/t5/product-lifecycle-management-blog-posts-by-sap/in-period-and-period-end-forecasting-based-on-actuals/ba-p/14445037 In-Period and Period-End Forecasting based on Actuals 2026-07-24T10:54:42.117000+02:00 Rahul_Jalan https://community.sap.com/t5/user/viewprofilepage/user-id/147048 <P>In this blog,&nbsp;<STRONG>In-Period Forecasting</STRONG> and <STRONG>Period-End Forecasting</STRONG> based on Actuals along with examples is explained. Before proceeding, please refer to the blog <A href="https://community.sap.com/t5/blogs/blogworkflowpage/blog-id/plm-blog-sap/article-id/1676?prePageCrumb=BlogDashboardPage" target="_blank">Forecasting in Commercial Project Management</A>.</P><P>The following forecasting key figures are calculated in this blog:</P><UL><LI><STRONG>Estimate at Completion (EAC)</STRONG></LI><LI><STRONG>Estimate to Complete (ETC)</STRONG></LI></UL><BLOCKQUOTE><P><STRONG>Note:</STRONG> Key Figure values from all approved Change Requests will be considered and calculated as Plan Key Figure values. In this blog, Key Figure represents cost, revenue, and quantity based on resource type and forecast basis. Examples are focused on cost and quantity; however, revenue calculation is similar to cost except that commitments are not considered.</P></BLOCKQUOTE><HR /><H2 id="toc-hId-1820085890">Overview: What's the Difference?</H2><P>&nbsp;</P><TABLE width="840px"><TBODY><TR><TD width="185.837px" height="30px"><STRONG>Aspect </STRONG></TD><TD width="338.65px" height="30px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="314.712px" height="30px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="185.837px" height="57px"><STRONG>Forecast Period ETC</STRONG></TD><TD width="338.65px" height="57px">Compares Actual vs Plan; ETC = Plan − Actual (if Plan &gt; Actual), else 0</TD><TD width="314.712px" height="57px">Always 0</TD></TR><TR><TD width="185.837px" height="57px"><STRONG>Revenue</STRONG></TD><TD width="338.65px" height="57px">Not applicable</TD><TD width="314.712px" height="57px">Forecast for Revenue is also calculated</TD></TR></TBODY></TABLE><HR /><H2 id="toc-hId-1623572385">Calculation Logic</H2><P>Let us consider a financial plan across multiple periods. The calculation for each period is done based on the following logic:</P><H3 id="toc-hId-1556141599">When Forecasting has NOT been executed before</H3><P>&nbsp;</P><TABLE><TBODY><TR><TD><STRONG>Period </STRONG></TD><TD><STRONG>In-Period Forecasting</STRONG></TD><TD><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD><STRONG>Before Forecast Period</STRONG></TD><TD>ETC = 0</TD><TD>ETC = 0</TD></TR><TR><TD><STRONG>Forecast Period</STRONG></TD><TD>ETC = 0 if Actual ≥ Plan; ETC = Plan − Actual if Plan &gt; Actual</TD><TD>ETC = 0</TD></TR><TR><TD><STRONG>After Forecast Period</STRONG></TD><TD>ETC = Plan</TD><TD>ETC = Plan</TD></TR></TBODY></TABLE><P>&nbsp;</P><BLOCKQUOTE><P><STRONG>Note:&nbsp;</STRONG>Once <STRONG>Period-End Forecasting</STRONG> has been executed for a period, <STRONG>In-Period Forecasting</STRONG> can no longer be performed for that period. In-Period Forecasting will become available again when the next period opens.</P></BLOCKQUOTE><H3 id="toc-hId-1359628094">When Forecasting HAS been executed before</H3><P>&nbsp;</P><TABLE width="930px"><TBODY><TR><TD width="190.45px"><STRONG>Period </STRONG></TD><TD width="370.875px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="367.875px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="190.45px"><STRONG>Before Forecast Period</STRONG></TD><TD width="370.875px">ETC = 0</TD><TD width="367.875px">ETC = 0</TD></TR><TR><TD width="190.45px"><STRONG>Forecast Period</STRONG></TD><TD width="370.875px">ETC = 0 if Actual ≥ Plan; ETC = Plan − Actual if Plan &gt; Actual</TD><TD width="367.875px">ETC = 0</TD></TR><TR><TD width="190.45px"><STRONG>After Forecast Period</STRONG></TD><TD width="370.875px">ETC remains unchanged from the last forecast run</TD><TD width="367.875px">ETC remains unchanged from the last forecast run</TD></TR></TBODY></TABLE><H3 id="toc-hId-1163114589">EAC Formulas (applicable to both)</H3><UL><LI><STRONG>EAC Quantity</STRONG><SPAN>&nbsp;</SPAN>= Total ETC Quantity + Total Actual Quantity (up to Forecast Period).</LI><LI><STRONG>EAC Cost</STRONG><SPAN>&nbsp;</SPAN>= Total ETC Cost + Total Actual Cost (up to Forecast Period) + Total Commitments (up to Forecast Period).</LI><LI><STRONG>EAC Revenue</STRONG><SPAN>&nbsp;</SPAN><EM>(Period-End only)</EM><SPAN>&nbsp;</SPAN>= Total ETC Revenue + Total Actual Revenue (up to Forecast Period)</LI></UL><BLOCKQUOTE><P>For quantity-driven Resource Types: if Rate (Forecast) of the current period is null, Rate (Cost) of the current period is used as the Forecast Rate.</P></BLOCKQUOTE><HR /><H2 id="toc-hId-837518365">Example</H2><P>Consider a Financial Plan with a monthly breakdown from January to June for Resource Type <STRONG>Activity</STRONG> with plan/forecast basis set to <STRONG>Quantity</STRONG>.</P><P><STRONG>Planned and Actual Quantities:</STRONG></P><P>&nbsp;</P><TABLE width="739px"><TBODY><TR><TD width="81.6094px" height="30px"><STRONG>Month </STRONG></TD><TD width="175.547px" height="30px"><STRONG>Planned Quantity (H)</STRONG></TD><TD width="220.391px" height="30px"><STRONG>Actual Quantity Posted (H)</STRONG></TD><TD width="100.797px" height="30px"><STRONG>Rate (Cost) </STRONG></TD><TD width="159.656px" height="30px"><STRONG>Cost (Plan) (EUR)</STRONG></TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>January</STRONG></TD><TD width="175.547px" height="30px">100</TD><TD width="220.391px" height="30px">80</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">1000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>February</STRONG></TD><TD width="175.547px" height="30px">200</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">2000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>March</STRONG></TD><TD width="175.547px" height="30px">300</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">3000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>April</STRONG></TD><TD width="175.547px" height="30px">400</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">4000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>May</STRONG></TD><TD width="175.547px" height="30px">500</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">5000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>June</STRONG></TD><TD width="175.547px" height="30px">600</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.656px" height="30px">6000</TD></TR></TBODY></TABLE><HR /><H3 id="toc-hId-770087579">First Forecast Run — Forecast Period: January (Actual = 80H)</H3><P><STRONG>For January (Forecast Period):</STRONG></P><P>&nbsp;</P><TABLE width="832px"><TBODY><TR><TD width="273.725px" height="30px"><STRONG>ETC</STRONG></TD><TD width="336.638px" height="30px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="220.837px" height="30px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="273.725px" height="30px"><STRONG>Quantity (H)</STRONG></TD><TD width="336.638px" height="30px"><STRONG>20</STRONG><SPAN>&nbsp;</SPAN>(Plan 100 &gt; Actual 80 → ETC = 100 − 80)</TD><TD width="220.837px" height="30px"><STRONG>0</STRONG><SPAN>&nbsp;</SPAN>(always 0 at period-end)</TD></TR><TR><TD width="273.725px" height="30px"><STRONG>Cost (EUR):&nbsp;&nbsp;ETC Quantity * Rate</STRONG></TD><TD width="336.638px" height="30px">20 × 10 =<SPAN>&nbsp;</SPAN><STRONG>200</STRONG></TD><TD width="220.837px" height="30px">0 × 10 =<SPAN>&nbsp;</SPAN><STRONG>0</STRONG></TD></TR></TBODY></TABLE><P><STRONG>For February to June (Periods after Forecast Period):</STRONG></P><P>Both In-Period and Period-End forecasting yield the same results here as Actual = 0 for all future periods:</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><STRONG>Month </STRONG></TD><TD><STRONG>ETC Quantity (H)</STRONG></TD><TD><STRONG>ETC Cost (EUR): ETC Quantity * Rate</STRONG></TD></TR><TR><TD><STRONG>February</STRONG></TD><TD>200</TD><TD>2000</TD></TR><TR><TD><STRONG>March</STRONG></TD><TD>300</TD><TD>3000</TD></TR><TR><TD><STRONG>April</STRONG></TD><TD>400</TD><TD>4000</TD></TR><TR><TD><STRONG>May</STRONG></TD><TD>500</TD><TD>5000</TD></TR><TR><TD><STRONG>June</STRONG></TD><TD>600</TD><TD>6000</TD></TR></TBODY></TABLE><P><STRONG>ETC and EAC Summary — First Run:</STRONG></P><P>&nbsp;</P><TABLE width="850px"><TBODY><TR><TD width="267.531px" height="30px"><STRONG>Calculation</STRONG></TD><TD width="279.766px" height="30px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="301.703px" height="30px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="267.531px" height="30px"><STRONG>Total ETC Quantity</STRONG></TD><TD width="279.766px" height="30px">20+200+300+400+500+600 =<SPAN>&nbsp;</SPAN><STRONG>2020 H</STRONG></TD><TD width="301.703px" height="30px">0+200+300+400+500+600 =<SPAN>&nbsp;</SPAN><STRONG>2000 H</STRONG></TD></TR><TR><TD width="267.531px" height="30px"><STRONG>Total Actual Quantity (upto Jan)</STRONG></TD><TD width="279.766px" height="30px">80 H</TD><TD width="301.703px" height="30px">80 H</TD></TR><TR><TD width="267.531px" height="30px"><STRONG>EAC Quantity</STRONG></TD><TD width="279.766px" height="30px">2020 + 80 =<SPAN>&nbsp;</SPAN><STRONG>2100 H</STRONG></TD><TD width="301.703px" height="30px">2000 + 80 =<SPAN>&nbsp;</SPAN><STRONG>2080 H</STRONG></TD></TR><TR><TD width="267.531px" height="30px"><STRONG>Total ETC Cost</STRONG></TD><TD width="279.766px" height="30px"><STRONG>20200 EUR</STRONG></TD><TD width="301.703px" height="30px"><STRONG>20000 EUR</STRONG></TD></TR><TR><TD width="267.531px" height="30px"><STRONG>Total Actual Cost (upto Jan)</STRONG></TD><TD width="279.766px" height="30px">800 EUR</TD><TD width="301.703px" height="30px">800 EUR</TD></TR><TR><TD width="267.531px" height="30px"><STRONG>Total Commitments</STRONG></TD><TD width="279.766px" height="30px">0</TD><TD width="301.703px" height="30px">0</TD></TR><TR><TD width="267.531px" height="30px"><STRONG>EAC Cost</STRONG></TD><TD width="279.766px" height="30px">20200 + 800 + 0 =<SPAN>&nbsp;</SPAN><STRONG>21000 EUR</STRONG></TD><TD width="301.703px" height="30px">20000 + 800 + 0 =<SPAN>&nbsp;</SPAN><STRONG>20800 EUR</STRONG></TD></TR></TBODY></TABLE><HR /><H3 id="toc-hId-573574074">Second Forecast Run — Same Forecast Period (January), Additional Actuals Posted (Actual = 150H)</H3><P><STRONG>Updated Data:</STRONG></P><TABLE><TBODY><TR><TD width="81.6094px" height="30px"><STRONG>Month </STRONG></TD><TD width="175.547px" height="30px"><STRONG>Planned Quantity (H)</STRONG></TD><TD width="220.391px" height="30px"><STRONG>Actual Quantity Posted (H)</STRONG></TD><TD width="100.797px" height="30px"><STRONG>Rate (Cost) </STRONG></TD><TD width="159.641px" height="30px"><STRONG>Cost (Plan) (EUR)</STRONG></TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>January</STRONG></TD><TD width="175.547px" height="30px">100</TD><TD width="220.391px" height="30px"><STRONG>150</STRONG></TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">1000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>February</STRONG></TD><TD width="175.547px" height="30px">200</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">2000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>March</STRONG></TD><TD width="175.547px" height="30px">300</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">3000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>April</STRONG></TD><TD width="175.547px" height="30px">400</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">4000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>May</STRONG></TD><TD width="175.547px" height="30px">500</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">5000</TD></TR><TR><TD width="81.6094px" height="30px"><STRONG>June</STRONG></TD><TD width="175.547px" height="30px">600</TD><TD width="220.391px" height="30px">0</TD><TD width="100.797px" height="30px">10</TD><TD width="159.641px" height="30px">6000</TD></TR></TBODY></TABLE><P><STRONG>For January (Forecast Period):</STRONG></P><P>&nbsp;</P><TABLE width="737px"><TBODY><TR><TD width="266.688px"><STRONG>ETC</STRONG></TD><TD width="237.75px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="231.762px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="266.688px"><STRONG>Quantity (H)</STRONG></TD><TD width="237.75px"><STRONG>0</STRONG><SPAN>&nbsp;</SPAN>(Actual 150 &gt; Plan 100)</TD><TD width="231.762px"><STRONG>0</STRONG></TD></TR><TR><TD width="266.688px"><STRONG>Cost (EUR):&nbsp;&nbsp;ETC Quantity * Rate</STRONG></TD><TD width="237.75px">0</TD><TD width="231.762px">0</TD></TR></TBODY></TABLE><P><STRONG>For February to June:</STRONG></P><P>&nbsp;</P><TABLE width="894px"><TBODY><TR><TD width="251.775px" height="30px"><STRONG>ETC</STRONG> (<STRONG>Feb–Jun)</STRONG></TD><TD width="323.7px" height="30px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="317.725px" height="30px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="251.775px" height="57px"><STRONG>&nbsp;Quantity (H)</STRONG></TD><TD width="323.7px" height="57px">Retained from last forecast run (200, 300, 400, 500, 600)</TD><TD width="317.725px" height="57px">Retained from last forecast run (200, 300, 400, 500, 600)</TD></TR><TR><TD width="251.775px"><STRONG>Cost (EUR):&nbsp;ETC Quantity * Rate</STRONG></TD><TD width="323.7px">Retained from last forecast run (2000, 3000, 4000, 5000, 6000)</TD><TD width="317.725px">Retained from last forecast run (2000, 3000, 4000, 5000, 6000)</TD></TR></TBODY></TABLE><P>Both In-Period and Period-End forecasting yields the same ETC values for future periods in this run.</P><P><STRONG>ETC and EAC Summary — Second Run:</STRONG></P><P>&nbsp;</P><TABLE width="829px"><TBODY><TR><TD width="252.65px"><STRONG>Calculation </STRONG></TD><TD width="287.763px"><STRONG>In-Period Forecasting</STRONG></TD><TD width="287.788px"><STRONG>Period-End Forecasting</STRONG></TD></TR><TR><TD width="252.65px"><STRONG>Total ETC Quantity</STRONG></TD><TD width="287.763px">0+200+300+400+500+600 =<SPAN>&nbsp;</SPAN><STRONG>2000 H</STRONG></TD><TD width="287.788px">0+200+300+400+500+600 =<SPAN>&nbsp;</SPAN><STRONG>2000 H</STRONG></TD></TR><TR><TD width="252.65px"><STRONG>Total Actual Quantity (upto Jan)</STRONG></TD><TD width="287.763px">150 H</TD><TD width="287.788px">150 H</TD></TR><TR><TD width="252.65px"><STRONG>EAC Quantity</STRONG></TD><TD width="287.763px">2000 + 150 =<SPAN>&nbsp;</SPAN><STRONG>2150 H</STRONG></TD><TD width="287.788px">2000 + 150 =<SPAN>&nbsp;</SPAN><STRONG>2150 H</STRONG></TD></TR><TR><TD width="252.65px"><STRONG>Total ETC Cost</STRONG></TD><TD width="287.763px"><STRONG>20000 EUR</STRONG></TD><TD width="287.788px"><STRONG>20000 EUR</STRONG></TD></TR><TR><TD width="252.65px"><STRONG>Total Actual Cost (upto Jan)</STRONG></TD><TD width="287.763px">1500 EUR</TD><TD width="287.788px">1500 EUR</TD></TR><TR><TD width="252.65px"><STRONG>Total Commitments</STRONG></TD><TD width="287.763px">0</TD><TD width="287.788px">0</TD></TR><TR><TD width="252.65px"><STRONG>EAC Cost</STRONG></TD><TD width="287.763px">20000 + 1500 + 0 =<SPAN>&nbsp;</SPAN><STRONG>21500 EUR</STRONG></TD><TD width="287.788px">20000 + 1500 + 0 =<SPAN>&nbsp;</SPAN><STRONG>21500 EUR</STRONG></TD></TR></TBODY></TABLE><HR /><BLOCKQUOTE><P>Both methods converge to the same EAC values in the second run because actual postings exceeded the plan for January — removing the only difference between the two approaches.</P></BLOCKQUOTE> 2026-07-24T10:54:42.117000+02:00 https://community.sap.com/t5/product-lifecycle-management-blog-posts-by-sap/forecasting-in-commercial-project-management/ba-p/13653888 Forecasting in Commercial Project Management 2026-07-24T10:58:20.614000+02:00 Rahul_Jalan https://community.sap.com/t5/user/viewprofilepage/user-id/147048 <DIV class=""><P class="">The <A href="https://help.sap.com/docs/SAP_S4HANA_ON-PREMISE/d6c1ceb7e0074cd1a8f28dad8a1a649c/1c16d11effd34cb78c6c0ab348a56f99.html?locale=en-US" target="_self" rel="noopener noreferrer">forecasting</A> feature of <A href="https://help.sap.com/docs/SAP_S4HANA_ON-PREMISE/d6c1ceb7e0074cd1a8f28dad8a1a649c/537df85b5bac45e394fd67dafed37af7.html?locale=en-US" target="_self" rel="noopener noreferrer">Commercial Project Management</A>&nbsp;(CPM) can be used by project managers to calculate cost and revenue estimates at the completion based on past performance, during the execution phase of projects. Forecasting allows you to arrive at estimates of the following key figures:</P><UL class=""><LI><P class="">Estimate at completion (EAC) - Total projected cost, quantity, or revenue at project completion (Actuals + ETC).</P></LI><LI><P class="">Estimate to complete (ETC) - Projected remaining cost, quantity, or revenue from the forecast period to project completion.</P></LI></UL><H2 id="toc-hId-990712294"><SPAN class="">Resource Types&nbsp;b<SPAN>ased on Plan/Forecast basis</SPAN></SPAN></H2><P><SPAN>There are four categories in which resource types can be categorized based on Plan/Forecast basis:</SPAN></P><OL><LI><SPAN>Quantity - The&nbsp;<STRONG>Quantity,&nbsp;Rate, Cost (Rate) and Revenue (Rate)</STRONG> columns will be enabled for planning. Forecasted Cost and Forecasted Revenue are calculated based on Forecasted Quantity.</SPAN></LI><LI><SPAN>Cost and Revenue -&nbsp;The <STRONG>Cost</STRONG> and <STRONG>Revenue</STRONG>&nbsp;columns will be enabled for planning.</SPAN></LI><LI><SPAN>Revenue - Only the&nbsp;<STRONG>Revenue</STRONG> column will be enabled for planning.</SPAN></LI><LI><SPAN>Cost - Only the <STRONG>Cost</STRONG> column will be enabled for planning.</SPAN></LI></OL><P>In CPM, the following&nbsp;forecasting methods are used:</P><UL><LI><STRONG>Forecast based on Actuals:</STRONG> This method is suitable for those projects which are time bound and flexible with respect to cost. The Actuals and remaining Plan derive the EAC for the project. The EAC is calculated by summing up actuals from the past periods and remaining planning for future periods.</LI><LI><STRONG>Forecast based on Constant EAC:</STRONG> This method is suitable for those projects which are cost bound but flexible with respect to time. When the forecast is executed for the first time, the EAC will be copied as total plan value. The EAC remains constant throughout the forecast process until it is manually adjusted by changing ETC. In case the Actuals are not same as corresponding Planned values up to forecast period, the balanced value is adjusted to the future period. This adjustment is the difference between planned value up to forecast period and Actual value up to forecast period. If the adjustment is negative, then the ETC for the next period(s) will be reduced by this adjustment. Therefore ETC is re-calculated based on Actuals incurred while keeping the EAC constant.</LI><LI><STRONG>Forecast based on Configuration:</STRONG> It is the dynamic forecasting method and is the combination of both the above methods. It is suitable for those projects where certain resources are time bound and others are cost bound. Each Resource Type can be configured to follow one of the above forecasting method.</LI></UL></DIV><DIV class=""><H2 id="toc-hId-794198789"><SPAN class="">Period Options in Forecasting</SPAN></H2><P><SPAN>The following period options are available for forecasting:</SPAN></P><UL class=""><LI><P class=""><SPAN class="">In-Period Forecasting</SPAN>: Forecasting is performed at any time during an open period using the actuals posted up to that point, along with the remaining forecast for the rest of the period. Project Manager is allowed to adjust the forecast for current forecast period.</P></LI><LI><SPAN class="">Period-End Forecasting</SPAN>: Forecasting is performed while closing the period, that is, when all actuals for that period have been posted. This provides a forecast based on complete actual data for the period.</LI></UL><P><SPAN>There are different Planning Functions associated based on forecast method and the period option selected. These Planning Functions contain multiple formulae. Based on the above Resource types, the corresponding formula of the Planning Function will be executed. These formulae are part of BW IP Planning Function which gets executed when user executes the forecast.&nbsp;</SPAN></P><P><SPAN>Each forecasting scenario is described in detail&nbsp;with examples in the following blogs:</SPAN></P><UL><LI><SPAN><A href="https://community.sap.com/t5/blogs/blogworkflowpage/blog-id/plm-blog-sap/article-id/2031" target="_blank">In-Period and Period-End Forecasting based on Actuals</A></SPAN></LI><LI><SPAN><A href="https://community.sap.com/t5/blogs/blogworkflowpage/blog-id/plm-blog-sap/article-id/2032" target="_blank">In-Period and Period-End Forecasting based on constant EAC</A><BR /></SPAN></LI></UL></DIV> 2026-07-24T10:58:20.614000+02:00