ecc/POOrderHistory.sql (105 lines of code) (raw):
SELECT
PO.VendorAccountNumber_LIFNR,
ekbe.MANDT AS Client_MANDT,
ekbe.EBELN AS PurchasingDocumentNumber_EBELN,
ekbe.EBELP AS ItemNumberOfPurchasingDocument_EBELP,
ekbe.ZEKKN AS SequentialNumberOfAccountAssignment_ZEKKN,
ekbe.VGABE AS TransactioneventType_VGABE,
ekbe.GJAHR AS MaterialDocumentYear_GJAHR,
ekbe.BELNR AS NumberOfMaterialDocument_BELNR,
ekbe.BUZEI AS ItemInMaterialDocument_BUZEI,
ekbe.BEWTP AS PurchaseOrderHistoryCategory_BEWTP,
ekbe.BWART AS MovementType__inventoryManagement___BWART,
ekbe.BUDAT AS PostingDateInTheDocument_BUDAT,
ekbe.MENGE AS Quantity_MENGE,
ekbe.BPMNG AS QuantityInPurchaseOrderPriceUnit_BPMNG,
ekbe.WAERS AS CurrencyKey_WAERS,
ekbe.WESBS AS GoodsReceiptBlockedStockInOrderUnit_WESBS,
ekbe.BPWES AS QuantityInGrBlockedStockInOrderPriceUnit_BPWES,
ekbe.SHKZG AS DebitcreditIndicator_SHKZG,
ekbe.BWTAR AS ValuationType_BWTAR,
ekbe.ELIKZ AS deliveryCompleted_ELIKZ,
ekbe.XBLNR AS ReferenceDocumentNumber_XBLNR,
ekbe.LFGJA AS FiscalYearOfAReferenceDocument_LFGJA,
ekbe.LFBNR AS DocumentNoOfAReferenceDocument_LFBNR,
ekbe.LFPOS AS ItemOfAReferenceDocument_LFPOS,
ekbe.GRUND AS ReasonForMovement_GRUND,
ekbe.CPUDT AS DayOnWhichAccountingDocumentWasEntered_CPUDT,
ekbe.CPUTM AS TimeOfEntry_CPUTM,
ekbe.EVERE AS ComplianceWithShippingInstructions_EVERE,
ekbe.REFWR AS InvoiceValueInForeignCurrency_REFWR,
ekbe.MATNR AS MaterialNumber_MATNR,
ekbe.WERKS AS Plant_WERKS,
ekbe.XWSBR AS ReversalOfGrAllowedForGrBasedIvDespiteInvoice_XWSBR,
ekbe.ETENS AS SequentialNumberOfVendorConfirmation_ETENS,
ekbe.KNUMV AS NumberOfTheDocumentCondition_KNUMV,
ekbe.MWSKZ AS TaxOnSalespurchasesCode_MWSKZ,
ekbe.LSMNG AS QuantityInUnitOfMeasureFromDeliveryNote_LSMNG,
ekbe.LSMEH AS UnitOfMeasureFromDeliveryNote_LSMEH,
ekbe.EMATN AS MaterialNumber_EMATN,
ekbe.HSWAE AS LocalCurrencyKey_HSWAE,
ekbe.BAMNG AS Quantity_BAMNG,
ekbe.CHARG AS BatchNumber_CHARG,
ekbe.BLDAT AS DocumentDateInDocument_BLDAT,
ekbe.XWOFF AS CalculationOfValOpen_XWOFF,
ekbe.XUNPL AS UnplannedAccountAssignmentFromInvoiceVerification_XUNPL,
ekbe.ERNAM AS NameOfPersonWhoCreatedTheObject_ERNAM,
ekbe.SRVPOS AS ServiceNumber_SRVPOS,
ekbe.PACKNO AS PackageNumberOfService_PACKNO,
ekbe.INTROW AS LineNumberOfService_INTROW,
ekbe.BEKKN AS NumberOfPoAccountAssignment_BEKKN,
ekbe.LEMIN AS ReturnsIndicator_LEMIN,
ekbe.AREWB AS ClearingValueOnGrirAccountInPoCurrency_AREWB,
ekbe.REWRB AS InvoiceAmountInPoCurrency_REWRB,
ekbe.SAPRL AS SapRelease_SAPRL,
ekbe.MENGE_POP AS Quantity_MENGE_POP,
ekbe.BPMNG_POP AS QuantityInPurchaseOrderPriceUnit_BPMNG_POP,
ekbe.DMBTR_POP AS AmountInLocalCurrency_DMBTR_POP,
ekbe.WRBTR_POP AS AmountInDocumentCurrency_WRBTR_POP,
ekbe.WESBB AS ValuatedGoodsReceiptBlockedStockInOrderUnit_WESBB,
ekbe.BPWEB AS QuantityInValuatedGrBlockedStockInOrderPriceUnit_BPWEB,
ekbe.WEORA AS AcceptanceAtOrigin_WEORA,
ekbe.AREWR_POP AS GrirAccountClearingValueInLocalCurrency_AREWR_POP,
ekbe.KUDIF AS ExchangeRateDifferenceAmount_KUDIF,
ekbe.RETAMT_FC AS RetentionAmountInDocumentCurrency_RETAMT_FC,
ekbe.RETAMT_LC AS RetentionAmountInCompanyCodeCurrency_RETAMT_LC,
ekbe.RETAMTP_FC AS PostedRetentionAmountInDocumentCurrency_RETAMTP_FC,
ekbe.RETAMTP_LC AS PostedSecurityRetentionAmountInCompanyCodeCurrency_RETAMTP_LC,
ekbe.XMACC AS MultipleAccountAssignment_XMACC,
ekbe.WKURS AS ExchangeRate_WKURS,
ekbe.INV_ITEM_ORIGIN AS OriginOfAnInvoiceItem_INV_ITEM_ORIGIN,
ekbe.VBELN_ST AS Delivery_VBELN_ST,
ekbe.VBELP_ST AS DeliveryItem_VBELP_ST,
ekbe.SGT_SCAT AS StockSegment_SGT_SCAT,
ekbe.ET_UPD AS ProcedureForUpdatingTheScheduleLineQuantity_ET_UPD,
ekbe.J_SC_DIE_COMP_F AS DepreciationCompletionFlag_J_SC_DIE_COMP_F,
-- ekbe.FSH_SEASON_YEAR AS SeasonYear_FSH_SEASON_YEAR,
-- ekbe.FSH_SEASON AS Season_FSH_SEASON,
-- ekbe.FSH_COLLECTION AS FashionCollection_FSH_COLLECTION,
-- ekbe.FSH_THEME AS FashionTheme_FSH_THEME,
ekbe.WRF_CHARSTC1 AS CharacteristicValue1_WRF_CHARSTC1,
ekbe.WRF_CHARSTC2 AS CharacteristicValue2_WRF_CHARSTC2,
ekbe.WRF_CHARSTC3 AS CharacteristicValue3_WRF_CHARSTC3,
--##CORTEX-CUSTOMER Consider adding other dimensions from the calendar_date_dim table as per your requirement
CalendarDateDimension_BUDAT.CalYear AS YearOfPostingDateInTheDocument_BUDAT,
CalendarDateDimension_BUDAT.CalMonth AS MonthOfPostingDateInTheDocument_BUDAT,
CalendarDateDimension_BUDAT.CalWeek AS WeekOfPostingDateInTheDocument_BUDAT,
CalendarDateDimension_BUDAT.CalQuarter AS QuarterOfPostingDateInTheDocument_BUDAT,
CalendarDateDimension_BLDAT.CalYear AS YearOfDocumentDateInDocument_BLDAT,
CalendarDateDimension_BLDAT.CalMonth AS MonthOfDocumentDateInDocument_BLDAT,
CalendarDateDimension_BLDAT.CalWeek AS WeekOfDocumentDateInDocument_BLDAT,
CalendarDateDimension_BLDAT.CalQuarter AS QuarterOfDocumentDateInDocument_BLDAT,
--##CORTEX-CUSTOMER If you prefer to use currency conversion, uncomment below
-- currency_conversion.UKURS AS ExchangeRate_UKURS,
-- currency_conversion.TCURR AS TargetCurrency_TCURR,
-- currency_conversion.conv_date AS Conversion_date,
-- COALESCE(ekbe.DMBTR * currency_decimal.CURRFIX, ekbe.DMBTR) * currency_conversion.UKURS AS AmountInTargetCurrency_DMBTR,
-- COALESCE(ekbe.WRBTR * currency_decimal.CURRFIX, ekbe.WRBTR) * currency_conversion.UKURS AS AmountInTargetCurrency_WRBTR,
-- COALESCE(ekbe.AREWR * currency_decimal.CURRFIX, ekbe.AREWR) * currency_conversion.UKURS AS GrirAccountClearingValueInTargetCurrency_AREWR,
-- COALESCE(ekbe.REEWR * currency_decimal.CURRFIX, ekbe.REEWR) * currency_conversion.UKURS AS InvoiceValueEntered__InTargetCurrency___REEWR,
-- COALESCE(ekbe.AREWW * currency_decimal.CURRFIX, ekbe.AREWW) * currency_conversion.UKURS AS ClearingValueOnGrirClearingAccount__InTargetCurrency___AREWW,
COALESCE(ekbe.DMBTR * currency_decimal.CURRFIX, ekbe.DMBTR) AS AmountInLocalCurrency_DMBTR,
COALESCE(ekbe.WRBTR * currency_decimal.CURRFIX, ekbe.WRBTR) AS AmountInDocumentCurrency_WRBTR,
COALESCE(ekbe.AREWR * currency_decimal.CURRFIX, ekbe.AREWR) AS GrirAccountClearingValueInLocalCurrency_AREWR,
COALESCE(ekbe.REEWR * currency_decimal.CURRFIX, ekbe.REEWR) AS InvoiceValueEntered__inLocalCurrency___REEWR,
COALESCE(ekbe.AREWW * currency_decimal.CURRFIX, ekbe.AREWW) AS ClearingValueOnGrirClearingAccount__transacCurrency___AREWW
FROM
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.PurchaseDocuments` AS PO
INNER JOIN
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.ekbe` AS ekbe
ON PO.Client_MANDT = ekbe.MANDT
AND PO.DocumentNumber_EBELN = ekbe.EBELN
AND PO.Item_EBELP = ekbe.EBELP
LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.currency_decimal` AS currency_decimal
ON PO.CurrencyKey_WAERS = currency_decimal.CURRKEY
--##CORTEX-CUSTOMER If you prefer to use currency conversion, uncomment below
-- LEFT JOIN
-- `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.currency_conversion` AS currency_conversion
-- ON PO.Client_MANDT = currency_conversion.MANDT
-- AND PO.CurrencyKey_WAERS = currency_conversion.FCURR
-- AND PO.ChangeDate_AEDAT = currency_conversion.conv_date
-- AND currency_conversion.TCURR IN UNNEST({{ sap_currencies }})
--##CORTEX-CUSTOMER Modify the exchange rate type based on your requirement
-- AND currency_conversion.KURST = 'M'
LEFT JOIN `{{ project_id_src }}.{{ k9_datasets_processing }}.calendar_date_dim` AS CalendarDateDimension_BUDAT
ON CalendarDateDimension_BUDAT.Date = ekbe.BUDAT
LEFT JOIN `{{ project_id_src }}.{{ k9_datasets_processing }}.calendar_date_dim` AS CalendarDateDimension_BLDAT
ON CalendarDateDimension_BLDAT.Date = ekbe.BLDAT
--vgabe='1' for Goods Receipt and vgabe='2' for Invoice Receipt
WHERE ekbe.VGABE IN ('1', '2')