Announcing Deeper SAP Integration for the Power Platform

Microsoft’s acquisition of Clear Software has led to new functionality for organizations running SAP in Power Apps, Power Automate, and Logic Apps that will enable large-scale adoption of the Power Platform.

In October 2021, Microsoft acquired Clear Software to enhance connectivity to complex systems of record like SAP and Oracle E-Business Suite. Since that time, we have been busy migrating functionality from Clear to multiple areas in the Power Platform.

We are excited to announce the Public Preview of a broad set of new functionality in the Power Platform that will make it easier for organizations running SAP to digitally transform and automate their business processes.

Prebuilt Power Apps for Common SAP Processes

Perhaps the most exciting announcement in our Public Preview is that we will provide a set of prebuilt Power Apps for the Order to Cash and Procure to Pay business processes in a downloadable solution called SAP Integration. During our Private Preview with a select subset of our customers, the resounding feedback was that these apps are game-changers that make it radically simpler to get more value from their investments.

For Public Preview, we have taken two of the most tedious tasks, Sales Order entry and Purchase Order entry, and streamlined all the screens and data attributes involved into one simple screen in Power Apps. In these apps, business users will be able to complete these tasks much faster while ensuring better data accuracy through automation of business rules in Power Automate.

Best of all, because Power Apps is completely configurable, our customers will be able to easily modify these templates to meet their organizations’ specific needs.

As we approach General Availability, we plan to extend the SAP Integration solution to include Power Apps for 25 of the most common SAP business processes:

  • Order to Cash – Customers, Quotes, Sales Orders, Deliveries, Customer Invoices, Customer Payments, and Mass Pricing Updates
  • Procure to Pay – Vendors, Requisitions, Purchase Orders, Goods Receipts, Vendor Invoices, and Vendor Payments
  • Record to Report – Financial Postings, GL Accounts, Cost Centers, Profit Centers, Cash Application, and Mass Journal Entry Upload
  • Make to Stock/Make to Order (MRP) – Production/Process Orders, Materials, Goods Movements, Equipment, Work Orders, and Shipments

Below is an example of the Purchase Orders Power App template, where a user can search for, display, create, and change SAP Purchase Orders:

Prebuilt Power Automate Flows for Common SAP Processes

In order to support the 25 SAP Power Apps, their corresponding Power Automate flows will also be prebuilt in the SAP Integration solution. These flows utilize released APIs from SAP and will work in any organization’s SAP environment, regardless of their SAP version. This is a huge win for a number of reasons:

  • Time to Value – our customers will no longer have to spend many frustrating months researching and experimenting with these APIs to get their flows working. These flows just work out of the box, with no installation requirements on our customers’ SAP servers.
  • No Technical Debt – by avoiding custom code in SAP, organizations will position themselves for smooth upgrades in the future and a lower technical debt load.
  • Sustainability – SAP’s published APIs have been supported for decades. These flows will continue to work as long as SAP continues to support their core APIs.

For Public Preview, we are providing approximately 20 Power Automate flows to support the Order to Cash and Procure to Pay business processes. Prior to General Availability, that number will grow to support the following areas:

  • Order to Cash
  • Procure to Pay
  • Record to Report
  • Make to Stock/Make to Order (MRP)

Below is an example of the prebuilt flow for approving a purchase order in SAP:

Advanced SAP System Connections

A frequent feedback item from our customers running SAP was that they could not use some of the advanced connection parameters for a user session, specifically message servers that support load balancing among thousands of users. We are pleased to announce that you can now use the connection parameters listed here to support message servers, gateway servers, and more advanced SSO configurations.

For Public Preview, this will be available through JSON environment variables inside solutions:

These connection parameters can then be easily referenced in flows using the new SAP connector:

Prior to General Availability, we will deliver a simplified user interface on top of these JSON environment variables that will make it easier for system administrators to maintain these advanced connections.

New On-Premises Data Gateway

We are also releasing a new version of the On-Premises Data Gateway to handle two requirements:

  1. Backwards Compatibility – since we have delivered a new SAP Connector, we need to ensure that existing customers running the prior version of the SAP connector will still be able to run their flows.
  2. Enhanced SSO – another frequent feedback item from our customers was that it was very difficult to set up and run SSO with SAP. The new gateway adds advanced features such as Kerberos delegation to ensure that SSO is now a seamless experience between Power Apps, Power Automate, and SAP.

New SAP Connector and Action

Prior to this public preview announcement, there was a known issue in Power Automate that when a complex API from SAP was selected, the parameters would fail to render after the schema was retrieved. Additionally, our customers frequently mentioned that it was difficult to work with any SAP API once the schema was retrieved.

We are pleased to announce a new SAP connector and action in Power Automate that implements the following improvements:

  • The ability for a Flow maker to select an advanced SAP system connection from a drop down without having to know any of the system details (e.g., IP address, client ID, system number)
  • Upon selection of an SAP API, it only returns required parameters and allows the Flow maker to specify additional optional parameters as needed.
  • Hides SSO and data gateway parameters inside the advanced system connection to reduce the number of data elements required in the action.

Below is a screenshot of the new action which utilizes the new SAP connector:

We plan to further simplify this maker experience based on your feedback after working with complex SAP APIs.

New Logic Apps Functions

The expression language in Power Automate is based on Logic Apps functions. To enable more efficient processing of SAP data, we have added several new functions:

  1. isInt – returns True if a data attribute in an integer. This allows Flow makers to determine if leading zeroes should be added to SAP data before sending to SAP APIs, or to remove from SAP data after retrieving records from SAP.
  2. chunk – splits text areas, long string, or file contents into an array of fixed length strings for SAP’s APIs.
  3. sort – sorts an array of objects by a key found in each object.
  4. reverse – reverse sorts an array of objects by a key found in each object.
  5. dateDifference – determines the difference between two dates and returns in the time unit specified in the function. This is especially useful for customers who use time-based billing.
  6. isFloat – there is a unique edge case where some SAP APIs return currency strings in a user’s localized format, which causes problems for mathematical operations. This function combined with float() removes the formatting so that math can do math.
  7. parseDateTime – converts the string representation of a timestamp to its a standard ISO 8601 format. This output of this function can be used reliably to do additional operations on the timestamp like the functions defined in Date and time functions.
  8. formatDateTime – A new optional parameter locale has been added to the existing formatDateTime. If not specified, the default locale is used.
  9. nthIndexOf – allows finding the nth occurrence of a substring.
  10. slice – provides a new way to extract a substring. The existing function substring already allows such capability by providing start index and length.

Below is an example of a Power Automate flow that is checking to see if an SAP Material ID is numeric or alpha-numeric. If it is numeric, the expression formats the SAP Material ID with the leading zeroes that SAP’s APIs expect:

More Information

Public preview documentation can be accessed at this link: https://aka.ms/learn-sap-integration. It offers an introduction to the solution and guidance on preparing your teams and systems for SAP integration with the Power Platform. Online documentation and training will continue to grow as the solution evolves.

Conclusion

These enhancements are based directly on feedback from you, our customers, and we’re excited to release this functionality to help you get more from your SAP and Power Platform investments. If you would like to provide feedback during Public Preview, feel free to use the Power Automate forum at this link: https://aka.ms/sap-powerusers-community