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. Data Connections has the instructions to do this.
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 - Process Connector Installation tells you how to do this. 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 | 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. |
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 ON 1=1 AND VBAP.MANDT = VBUP.MANDT AND VBAP.VBELN = VBUP.VBELN AND VBAP.POSNR = VBUP.POSNR LEFT JOIN "O2C_VBFA_V" AS "VBFA" ON 1=1 AND VBAP.POSNR = VBFA.POSNV AND VBAP.VBELN = VBFA.VBELV AND VBAP.MANDT = VBFA.MANDT LEFT JOIN "O2C_LIPS" AS "LIPS" ON 1=1 AND "VBFA"."MANDT" = "LIPS"."MANDT" AND "VBFA"."VBELN" = "LIPS"."VBELN" AND "VBFA"."POSNN" = "LIPS"."POSNR" LEFT JOIN VBUP AS VBUP_DEL ON 1=1 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 ON 1=1 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.