...
| draw.io Diagram | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Table of Contents | ||||
|---|---|---|---|---|
|
...
| Extractor Name | Details | Build Jira Ref For Extension Information |
|---|---|---|
| /SYQ/I_PurReqnAcctAssgmtAPI01 | Wrapper CDS View for SAP delivered CDS view I_PurReqnAcctAssgmtAPI01 to enable data extraction | |
| /SYQ/E_C_PurchaseContractDex_01 | Extension for CDS view C_PurhcaseContractDex to add the custom fields for Take or Pay | |
| /SYQ/I_PurOrdConfirmationDispute | New CDS view on top of a custom table (name tbc) to get all the fields. It will be delta enabled based on changed on timestamp | |
| /SYQ/I_PurOrdMessages | New CDS view (delta enabled) on top of table NAST to fetch PO messages sent to vendors. Filter KAPPL = 'EF' and PARVW = 'LF' |
Inbound Layer
No transformations to be applied in the inbound layer.
...
| CDS View Name (Source) | RoW | China |
|---|---|---|
| C_PurchaseOrderDEX | 1FR_S4HR_S2PP2R_DELTA_1 | 1FR_S4HC_S2PP2R_DELTA_1 |
| C_PurchaseOrderItemDEX | ||
| C_PurOrdScheduleLineDEX | ||
| C_POSupplierConfirmationDEX | ||
| C_PurchaseOrderHistoryDEX | ||
| C_PurOrdAccountAssignmentDEX | ||
| C_PurchaseRequisitionItemDEX | 1FR_S4HR_S2PP2R_DELTA_2 | 1FR_S4HC_S2PP2R_DELTA_2 |
| /SYQ/I_PurReqnAcctAssgmtAPI01 | ||
| /SYQ/I_PurOrdConfirmationDispute | 1FR_S4HR_S2PP2R_DELTA_3 | 1FR_S4HR_S2PP2R_DELTA_3 |
| /SYQ/I_PurOrdMessages | ||
| C_PurchaseContractDEX | 1FR_S4HR_S2PS2C_DELTA_1 | 1FR_S4HC_S2PS2C_DELTA_1 |
| C_PurchaseContractItemDEX | ||
| C_PurchaseContractHistoryDEX | ||
| C_SupplierInvoiceDEX | 1FR_S4HR_S2PI2P_DELTA_1 | 1FR_S4HC_S2PI2P_DELTA_1 |
| C_SupplierInvoiceItemDEX |
...
A Source System Identifier will be included as part of the primary key in the 2TL* tables to uniquely distinguish records originating from different source systems.
...
1TL_
...
CNTROL_
...
POACTIVITIESMAPPING
Purpose
This table will list all in-scope activities and indicate their relevance for rework, automation, SBS scope, and changes. Each activity will be mapped to the corresponding PO DB field to enable tagging and tracking using data from the change log table.
The data in the table will be maintained by uploading csv file. The following is the list of fields on the table,
- DB Field - Field to track an activity on the PO (usually on table EKKO or EKPO)
- Activity - Name of the PO activity
- Rework - In scope for rework
- Automation - In scope for automation
- Changes - In scope for changes
- SBS Scope - In scope for SBS
2VR_S4HARM_C_PurchaseRequisitionItem
Purpose
Join PR Item data with PR Account Assignment to create a reusable view for reporting on Purchasing Requisitions. Profit Centre from Account Assignment will be picked which Join PR Item data with PR Account Assignment to create a reusable view for reporting on Purchasing Requisitions. Profit Centre from Account Assignment will be picked which is needed for GBU derivation.
...
Join type: Left outer join
Cardinality: 1:1
...
Projection
Before joining a filter projection will be applied on 2VR_S4HARM_I_PurReqnAcctAssgmtAPI01 to get only PurchaseRequistion, PurchaseRequistionItem, ProfitCenter fields
Filter
Post projection a filter will be applied on to get only records with Profit Centre populated.
Calculation
Calculated Column DCD_SequenceNumber = ROW_NUMBER() OVER (PARTITION BY PurchaseRequisition, PurchaseRequisitionItem ORDER BY PurchaseRequisition, PurchaseRequisitionItem)
Calculated Column DCD_SequenceNumberFilter = DCD_SequenceNumber
Filter
DCD_SequenceNumberFilter = 1
2VR_S4HARM_C_PurchaseOrderItem
Purpose
Join PO Item data with PO Header to create a reusable view for reporting on Purchasing Orders.
...
Join type: Inner join
Cardinality: 1:1
Projection
Remove all the duplicate fields from 2TL_S4HARM_C_PurchaseOrderDex.
Calculation
Calculated Dimension - DCD_TwoThreeWayMatch (Two Three Way PO Match). Formula: When WEPOS is null then 2-Way Match else When WEPOS is not null and WEUNB is null then 3-Way Match
2VR_S4HARM_C_PurchaseContractItem
Purpose
Join PO Contract Item data with PO Contract Header to create a reusable view for reporting on Purchasing Contracts (outline agreements).
...
Join type: Inner join
Cardinality: 1:1
Projection
Remove all the duplicate fields from 2TL_S4HARM_C_PurchaseContractDex.
2VR_S4HARM_C_SupplierInvoiceItem
Purpose
Join Supplier Invoice Item data with Supplier Invoice Header to create a reusable view for reporting on Supplier Invoices.
...
A dimension view will be created on top of 2VR_S4HARM_C_PurchaseOrderItemDex. A left outer join will be added with 2VR_S4HARM_C_PurOrdAccountAssignmentDex to get the Profit Centre. Master data associations to the attributes will be done in this dimension view.
Below rules will be applied on 2VR_S4HARM_C_PurchaseOrderItemDex. A left outer join will be added with 2VR_S4HARM_C_PurOrdAccountAssignmentDex to get the Profit Centre. Master data associations to the attributes will be done in this dimension view._PurOrdAccountAssignmentDexbefore the join
Projection
A projection will be applied to get only PurchaseOrder, PurchaseOrderItem, ProfitCenter fields
Filter
Post projection a filter will be applied on to get only records with Profit Centre populated.
Calculation
Calculated Column DCD_SequenceNumber = ROW_NUMBER() OVER (PARTITION BY PurchaseOrder, PurchaseOrderItem ORDER BY PurchaseOrder, PurchaseOrderItem)
Calculated Column DCD_SequenceNumberFilter = DCD_SequenceNumber
Filter
DCD_SequenceNumberFilter = 1
Other 2VR* Relational Views
...
| Transformation Flow | Source | Target |
|---|---|---|
| 2FT_S4HARM_C_PurchaseOrderDex_S4HR | 1TL_S4HR_C_PURCHASEORDERDEX | 2TL_S4HARM_C_PurchaseOrderDex |
| 2FT_S4HARM_C_PurchaseOrderItem_S4HR | 1TL_S4HR_C_PURCHASEORDERITEMDEX | 2TL_S4HARM_C_PurchaseOrderItemDex |
| 2FT_S4HARM_C_PurOrdScheduleLine_S4HR | 1TL_S4HR_C_PURORDSCHEDULELINEDEX | 2TL_S4HARM_C_PurOrdScheduleLineDex |
| 2FT_S4HARM_C_POSupplierConfirmation_S4HR | 1TL_S4HR_C_POSUPPLIERCONFIRMATIONDEX | 2TL_S4HARM_C_POSupplierConfirmationDex |
| 2FT_S4HARM_C_PurchaseOrderHistory_S4HR | 1TL_S4HR_C_PURCHASEORDERHISTORYDEX | 2TL_S4HARM_C_PurchaseOrderHistoryDex |
| 2FT_S4HARM_C_PurOrdAccountAssignment_S4HR | 1TL_S4HR_C_PURORDACCOUNTASSIGNMENTDEX | 2TL_S4HARM_C_PurOrdAccountAssignmentDex |
| 2FT_S4HARM_C_PurchaseRequisitionItem_S4HR | 1TL_S4HR_C_PURCHASEREQUISITIONITEMDEX | 2TL_S4HARM_C_PurchaseRequisitionItemDex |
| 2FT_S4HARM_SYQI_PurReqnAcctAssgmtAPI01_S4HR | 1TL_S4HR_SYQI_PURREQNACCTASSGMTAPI01 | 2TL_S4HARM_SYQI_PurReqnAcctAssgmtAPI01 |
| 2FT_S4HARM_SYQ_C_PurReqnAcctAssgmtAPI01PurchaseContract_S4HR | 1TL_S4HR_C_PURCHASECONTRACTDEX | 2TL_S4HARM_C_PurchaseContractDex |
| 2FT_S4HARM_C_PurchaseContractItem_S4HR | 1TL_SYQS4HR_C_PURREQNACCTASSGMTAPI01PURCHASECONTRACTITEMDEX | 2TL_S4HARM_SYQ_C_PurReqnAcctAssgmtAPI01PurchaseContractItemDex |
| 2FT_S4HARM_C_PurchaseContractPurchaseContractHistory_S4HR | 1TL_S4HR_C_PURCHASECONTRACTDEXPURCHASECONTRACTHISTORYDEX | 2TL_S4HARM_C_PurchaseContractDexPurchaseContractHistoryDex |
| 2FT_S4HARM_C_PurchaseContractItemSupplierInvoice_S4HR | 1TL_S4HR_C_PURCHASECONTRACTITEMDEXSUPPLIERINVOICEDEX | 2TL_S4HARM_C_PurchaseContractItemDexSupplierInvoiceDex |
| 2FT_S4HARM_C_PurchaseContractHistorySupplierInvoiceItem_S4HR | 1TL_S4HR_C_PURCHASECONTRACTHISTORYDEXSUPPLIERINVOICEITEMDEX | 2TL_S4HARM_C_PurchaseContractHistoryDexSupplierInvoiceItemDex |
| 2FT_S4HARM_ | ||
| SYQI_ | ||
| PurOrdConfirmationDispute_S4HR | 1TL_S4HR_ | |
| SYQI_ | ||
| PURORDCONFIRMATIONDISPUTE | 2TL_S4HARM_ | |
| SYQI_ | ||
| PurOrdConfirmationDispute | ||
| 2FT_S4HARM_ | ||
| SYQI_ | ||
| PurOrdMessages_S4HR | 1TL_S4HR_ | |
| SYQI_ | ||
| PURORDMESSAGES | 2TL_S4HARM_ | |
| SYQI_ | ||
| PurOrdMessages | ||
| 2FT_S4HARM_C_PurchaseOrderDex_S4HC | 1TL_S4HC_C_PURCHASEORDERDEX | 2TL_S4HARM_C_PurchaseOrderDex |
| 2FT_S4HARM_C_PurchaseOrderItem_S4HC | 1TL_S4HC_C_PURCHASEORDERITEMDEX | 2TL_S4HARM_C_PurchaseOrderItemDex |
| 2FT_S4HARM_C_PurOrdScheduleLine_S4HC | 1TL_S4HC_C_PURORDSCHEDULELINEDEX | 2TL_S4HARM_C_PurOrdScheduleLineDex |
| 2FT_S4HARM_C_POSupplierConfirmation_S4HC | 1TL_S4HC_C_POSUPPLIERCONFIRMATIONDEX | 2TL_S4HARM_C_POSupplierConfirmationDex |
| 2FT_S4HARM_C_PurchaseOrderHistory_S4HC | 1TL_S4HC_C_PURCHASEORDERHISTORYDEX | 2TL_S4HARM_C_PurchaseOrderHistoryDex |
| 2FT_S4HARM_C_PurOrdAccountAssignment_S4HC | 1TL_S4HC_C_PURORDACCOUNTASSIGNMENTDEX | 2TL_S4HARM_C_PurOrdAccountAssignmentDex |
| 2FT_S4HARM_C_PurchaseRequisitionItem_S4HC | 1TL_S4HC_C_PURCHASEREQUISITIONITEMDEX | 2TL_S4HARM_C_PurchaseRequisitionItemDex |
| 2FT_S4HARM_SYQ_CSYQI_PurReqnAcctAssgmtAPI01_S4HC | 1TL_S4HC_SYQ_CSYQI_PURREQNACCTASSGMTAPI01 | 2TL_S4HARM_SYQ_CSYQI_PurReqnAcctAssgmtAPI01 |
| 2FT_S4HARM_C_PurchaseContract_S4HC | 1TL_S4HC_C_PURCHASECONTRACTDEX | 2TL_S4HARM_C_PurchaseContractDex |
| 2FT_S4HARM_C_PurchaseContractItem_S4HC | 1TL_S4HC_C_PURCHASECONTRACTITEMDEX | 2TL_S4HARM_C_PurchaseContractItemDex |
| 2FT_S4HARM_C_PurchaseContractHistory_S4HC | 1TL_S4HC_C_PURCHASECONTRACTHISTORYDEX | 2TL_S4HARM_C_PurchaseContractHistoryDex |
| 2FT_S4HARM_C_SupplierInvoice_S4HC | 1TL_S4HC_C_SUPPLIERINVOICEDEX | 2TL_S4HARM_C_SupplierInvoiceDex |
| 2FT_S4HARM_C_SupplierInvoiceItem_S4HC | 1TL_S4HC_C_SUPPLIERINVOICEITEMDEX | 2TL_S4HARM_C_SupplierInvoiceItemDex |
| 2FT_S4HARM_SYQI_PurOrdConfirmationDispute_S4HC | 1TL_S4HC_SYQI_PURORDCONFIRMATIONDISPUTE | 2TL_S4HARM_SYQI_PurOrdConfirmationDispute |
| 2FT_S4HARM_SYQI_PurOrdMessages_S4HC | 1TL_S4HC_SYQI_PURORDMESSAGES | 2TL_S4HARM_SYQI_PurOrdMessages |
Propagation Layer
3VR_S2PP2R_PurchaseRequisitionItem
...
Join type: Left Outer Join
Cardinality: 1:1
Calculation
Calculated measure: DCM_Counter = Constant 1
...
Join type: Left Outer Join
Cardinality: 1:1
Calculation
Calculated measure: DCM_POAmount = NetPriceAmount * ScheduleLineOrderQuantity
...
Join type: Left Outer Join
Cardinality: 1:1
Calculation
Before joining 3VR_S2PP2R_PurchaseOrderHistory, below steps need to performed to get data at required granularity which is PO and PO item,
...
3VR_S2PP2R_SuplrCsgnmtPplineWithdrwl
Calculation
The source object 2VR* is defined in the P2F DDFS. Use Formula component to modify the expression of below measures.
...
Join type: Left Outer Join
Cardinality: 1:1
Calculation
Calculated dimension: DCD_LatePO (Late PO Creation) = If PODOCUMENTDATE is null or blank or > DOCUMENTDATE then X else ''
...