Skip to main content

Celonis Product Documentation

Customizations for Analysts - Automations
Adding SAP Action

User story: As as user of the OOP Application, I would like to have a instant connection into SAP so that I don't have to switch applications and can trigger multiple actions which increases my efficiency

Business Impact / Added Value

High

Triggering SAP Actions from Celonis reduces time for order processing and users don’t need to switch tool. Also significantly increases stickiness and usage.

Technical Complexity

High

- Data Integration: Requires a running replication cockpit & a fast loading DM

- Studio: Create skills and action flows

- Others: Agent connection must be active and knowledge on SAP BABIs required

Impacted by Customizations

Low

Relevant Tables are SAP ECC Standard and should not be impacted by customizations.

Important

Potential Use Cases:

This document focusses on the specific use case remove delivery block. Of course it is possible to enable all kinds of different SAP actions.

There is also a general page on how to set-up SAP actions using Action Flows not only focussing on Order to Cash and another page explaining the following different modules:

  • Change Incoterms/Payment Terms/Requested Delivery Date/Purchase Order Number

  • Set/Remove Delivery Block

  • Set/Remove Billing Block

  • Change Material/Quantity/Plant/Storage Location

  • Reject Order Item

  • Post Goods Issue

  • Create Delivery from Sales Order

Important

Personalized SAP User Connection

This guide describes the implementation using Skills and Action Flows for one central SAP user. In case you prefer a personalized user connection, the Action Flow has to be replaced by an action in the Skill which increases complexity. Hence, we recommend the described approach. However, we append the general solution for a central user using skills which can be adjusted for personalized user connections.

Before you begin:

  • Ensure to have a fast-loading Data Model and Replication Cockpit in use for real-time data.

  • Check if there is an SAP Agent configured and running.

  1. Create Skill - Example Remove Delivery Block:

    Notice

    From this point the procedure is similar for different use cases. Only difference is the naming and the specific Action Flow module that is necessary. Please familiarize yourself with possible SAP modules in Action Flows to identify how your application might be extended in the best possible way.

    • The action can either be added to an existing task for an inefficiency or as a general action (e.g. existing skill 'Open in SAP'). We explain the first approach here as it aligns with the strategy of having central inefficiencies and using tasks to solve them.

      1. In the folder user actions, create an Action Flow 'Remove Delivery Block' with only the module 'Custom Webhook'. Save, publish and set the Action Flow to active.

      2. Go to the skill that creates all tasks for the inefficiency Pending Delivery Block.

      3. Add the next steps 'Remove Delivery Block' and then select 'Execute Action Flow' as following step. In the dropdown select the previously created Action Flow and paste the following information in the text field:

        {
            "Sales Order Number": "${b1["ORDER_NUMBER"]}"
        }
      4. Add the action 'Update Task' as following step where the status can be set to Done. Create another following action as execution output where the user is notified about their action. Finally, save everything and publish.

      5. Run the Action Flow once and also execute the skill once from your Team Lead View by selecting an order with Delivery Block.

        Note

        No changes will be visible in SAP as the Action Flow configuration hasn't been modified yet.

      6. Go to the Action Flow. You should now be able to access the parsed data from the skill. Add the SAP module 'Remove Delivery Block' as the next step and configure it using your connection and the Sales Order Number. Again, save and publish the Action Flow.

  2. (Optional) Make it shiny!

    • It is possible to have a visual indicator besides from the task. Augmentation attributes can be leveraged to capture the value and orders that were resolved by automated actions.

      1. Add an augmentation attribute to the record order in the knowledge model and paste the following configuration

              - id: DELIVERY_BLOCK_STATUS
                displayName: Delivery Block Status
                possibleValues:
                  - Failure - connectivity
                  - Pending - connectivity (wait for 15 min)
                  - Success - Celonis update pending
                  - Success - But no changes identified (optional)
                  - ""
                columnType: STRING
      2. Add the 'Update Augmentation Attribute' module to the Action Flow and configure it using the previously created attribute. The status should be changed according to the execution output of the SAP module and can be set using the routing and filtering option in the Action Flow.

      3. The attribute can now be added to the sales order table view. This helps users to get an insight on the status and development of delivery blocks

        Order_Table_DelBlockStatus.png

If you need personalized connections it is not possible to use Action Flows. Thus, we will explain the 'Remove Delivery Block' use case to be implemented in the skill in the following. Adjusting the field ORDER_HEADER_INX:DLV_BLOCK enables more use cases for automations in SAP using skills (e.g. Billing Block change: ORDER_HEADER_INX:BILL_BLOCK).

  1. The first step is similar to the general Action Flow example.

  2. Instead of creating an Action Flow, immediately go to the respective skill and similar to the previous instructions, create a step called 'Remove Delivery Block'. However, as a next step select 'Execute SAP Action (Advanced)'.

    1. Use your agent and connection for setup

    2. and fill the form using this information:

      Function Module             = BAPI_SALESORDER_CHANGE
      SALESDOCUMENT:VBELN         = ${b1["ORDER_NUMBER"]}
      ORDER_HEADER_INX:UPDATEFLAG = U
      ORDER_HEADER_INX:DLV_BLOCK  = X
      unnamed.png
  3. All following steps are similar to the Action Flow setup and updating an augmented attribute is possible using skill actions.