Prerequisites for the case-centric Unshipped Orders app
Before you set up the Unshipped Orders app, you’ll need to complete these prerequisite steps:
Install and configure a Data Connection between Celonis and your source system.
If you’ve already set up a Data Connection to this source system, you can reuse it. If not, you'll need to install the Celonis components in your source system, set up the extractor server, and configure a Data Connection in the Celonis platform.
Install and configure the newest version of the Order to Cash SAP ECC Process Connector.
This is the one shown on the app’s Celonis Marketplace listing page as the required connector. The Data Model “SAP ECC - Order to Cash Data Model” that you’ll use with the app comes with the Process Connector. The easiest way to get the connector is through the Process Connector library. If you’ve already set up this Process Connector for a different app, you can reuse it.
Load the Data Model “SAP ECC - Order to Cash Data Model” with your data.
Required tables and columns lists the tables and columns you’ll need from SAP ECC.
Important
The VBAP and LIPS tables, which contain sales order items and delivery items, must have fewer than 30 million rows for the Unshipped Orders app’s augmentation functionality to work. If yours are larger, see Reducing the VBAP or LIPS table size for how to work around this.
When the Data Connection and Process Connector are in place and you’ve loaded the Data Model, follow the steps in Installing the case-centric Unshipped Orders app.
If you need to get help with any of the app’s prerequisites or setup steps, Support tells you how.
Required tables and columns
Here’s the reference list of the SAP ECC tables and columns that the Unshipped Orders app needs data from:
Table | Columns |
---|---|
LIKP | MANDT, VBELN, KUNNR, ERNAM, LIFSK, TS_WADAT, TS_ERDAT, INCO1 |
LIPS | MANDT, VBELN, POSNR, LFIMG, TS_ERDAT, MATNR, WERKS, VGPOS, VGBEL |
VBUP_DELIVERY (see note below) | MANDT, VBELN, POSNR, WBSTA, KOSTA, PKSTA, CMPPI, CMPPJ, GBSTA |
KNA1 | KUNNR, MANDT, NAME1, VBUND, ORT01, LAND01 |
VBAK | AUART, AUART_TEXT, BUKRS_TEXT, BUKRS_VF, ERNAM, KUNNR, MANDT, VBELN, VKGRP, VKGRP_TEXT, VKORG, VKORG_TEXT, VTWEG, VTWEG_TEXT, WAERK, LIFSK, KVGR1, INCO1 |
VBAP | ABGRU, MANDT, MATKL, MATKL_TEXT, MATNR, MATNR_TEXT, NETWR, NETWR_CONVERTED, POSNR, VBELN, WERKS, WERKS_TEXT |
VBUK | MANDT, VBELN, CMGST |
VBFA | MANDT, VBELN, POSNN, VBELV, POSNV |
VBEP | MANDT, VBELN, POSNR, ETENR, BMENG |
ACTIVITY TABLE | The activity table needs to have an activity column, a case column and a timestamp column. |
Note
The VBUP_DELIVERY table was only added to the Celonis Order to Cash connector recently, so if you set up the Order Management process in Celonis a while ago, you might not have it in your Data Model. The steps to add it are in Adding VBUP_DELIVERY to the Order to Cash Data Model.
Reducing the VBAP or LIPS table size
If the VBAP or LIPS tables, which contain sales order items and delivery items, exceed 30 million rows, you’ll need to reduce their sizes so that the app can create augmented attributes. The Unshipped Orders app doesn’t need to look at shipped sales order items or delivery items, so you can safely exclude these.
Here’s how to create and use reduced versions of the tables:
Create a copy of the Data Model for the Unshipped Orders app. Duplicate the original “Order-to-Cash for SAP ECC” Data Model, where you’ll be replacing the VBAP and LIPS tables with your reduced tables.
Tip
If you want to reduce the reload time for your Data Model copy for the Unshipped Orders app, you can remove tables that aren’t required for the Unshipped Orders use case.
In the Data Pool that the Unshipped Orders app is using, create a new transformation in a new or existing data job. In the transformation, paste in the following statements to create a reduced version of the VBAP table named O2C_VBAP_OPS, that excludes sales order items that have been shipped.
DROP TABLE IF EXISTS O2C_VBAP_OPS; CREATE TABLE O2C_VBAP_OPS AS ( SELECT DISTINCT VBAP.* FROM O2C_VBAP AS VBAP JOIN O2C_VBUP AS VBUP VBAP.MANDT = VBUP.MANDT AND VBAP.VBELN = VBUP.VBELN AND VBAP.POSNR = VBUP.POSNR LEFT JOIN "O2C_VBFA_V" AS "VBFA" AND VBAP.POSNR = VBFA.POSNV AND VBAP.VBELN = VBFA.VBELV AND VBAP.MANDT = VBFA.MANDT LEFT JOIN "O2C_LIPS" AS "LIPS" AND "VBFA"."MANDT" = "LIPS"."MANDT" AND "VBFA"."VBELN" = "LIPS"."VBELN" AND "VBFA"."POSNN" = "LIPS"."POSNR" LEFT JOIN VBUP AS VBUP_DEL AND "VBUP_DEL"."MANDT" = "LIPS"."MANDT" AND "VBUP_DEL"."VBELN" = "LIPS"."VBELN" AND "VBUP_DEL"."POSNR" = "LIPS"."POSNR" WHERE (-- 0) Make sure to use your brackets correctly (-- 1) order item is not yet completed nor rejected VBUP.GBSTA IS NOT NULL AND VBUP.GBSTA !='C' AND VBUP.ABSTA != 'C' ) OR -- 2) order item is completed, but DN item is not yet completed nor rejected but not irrelevant (i.e. not null) -- 2.1) it exists -- 2.2) open DN item -- 2.3) which is not rejected -- Use COALESCE() to replace with '' if not existent yet, as NULL included would lead condition to not being applied ( VBUP_DEL.GBSTA IS NOT NULL AND -- 2.1) VBUP_DEL.GBSTA != 'C' AND -- 2.2) COALESCE("VBUP_DEL"."ABSTA",'') != 'C' -- 2.3) ) ) );
Create another transformation in the same way, and paste in the following statements to create a reduced version of the LIPS table named O2C_LIPS_OPS, that excludes delivery items that have been shipped.
DROP TABLE IF EXISTS O2C_LIPS_OPS; CREATE TABLE O2C_LIPS_OPS AS ( SELECT DISTINCT LIPS.* FROM O2C_LIPS AS LIPS JOIN O2C_VBUP_DELIVERY AS VBUP AND LIPS.MANDT = VBUP.MANDT AND LIPS.VBELN = VBUP.VBELN AND LIPS.POSNR = VBUP.POSNR WHERE -- delivery item is not yet completed nor rejected VBUP.GBSTA IS NOT NULL AND VBUP.GBSTA !='C' AND VBUP.ABSTA != 'C' );
In your Data Model copy for the Unshipped Orders app, replace the current VBAP table with the O2C_VBAP_OPS table you just created. Check that the alias name specified in the Alias field is VBAP - this is the default, so it’ll be there unless you changed it previously. Do the same with the O2C_LIPS_OPS table, with the alias LIPS.
Load your Data Model copy for the Unshipped Orders app to verify that the number of rows in the VBAP table and in the LIPS table is now below 30 million.
Adding VBUP_DELIVERY to the Order to Cash Data Model
The VBUP_DELIVERY table is a version of the regular VBUP table present in most Order to Cash Data Models. It contains information related to the delivery item table LIPS. The VBUP_DELIVERY table was only added to the Celonis Order to Cash connector recently, so if you set up the Order Management process in Celonis a while ago, you might not have it in your Data Model. The Unshipped Orders app requires the VBUP_DELIVERY table, so if you don’t have it, you’ll need to add it manually to the Data Model. Here’s how:
Go to the data pool where you are extracting your source system data for the app.
Click Data Jobs and select the scope for the Data Connection that you're using to extract the data.
In the extraction row, click Add to add a new extraction task.
Give the new extraction task any meaningful name - we’ve used “Extract table: VBUP_DELIVERY”. You don’t need to choose a task template. Click Save.
Select the new extraction task and click Add Extraction.
Search for the VBUP table and check it to add it to the extraction task.
In the Table Configuration tab, select the VBUP table, and go to the column configuration (under the General heading). Check Rename target table and specify the target table name VBUP_DELIVERY.
In the join configuration for the VBUP table, select Join another table during extraction, then click Add Join, and select the LIPS table from the list.
For the LIPS table, select Use primary keys to join tables. Add this statement in the Filter on joined table box to filter the joined table with the startDate parameter:
ERDAT >= <%=startDate%>
Run the extraction task.
Go to the Order to Cash Data Model in your Data Pool. Click Add Tables, search for the VBUP_DELIVERY table, and click on the + icon to add it. Then click Save.
Click New foreign key on the VBUP_DELIVERY table’s tile.
Link the VBUP_DELIVERY table to the LIPS table using the primary keys (MANDT, VBELN, and POSNR), with the LIPS table as the dimension table (1) and the VBUP_DELIVERY table as the fact table (N).
Reload the Order to Cash Data Model.