@AbapCatalog.sqlViewName: 'PRTPCREMPSTKPI'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@VDM.private:true
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
//@EndUserText.label: 'Posted Event-Based REM Orders KPI'
define view P_RTPC_REM_OrderPostedKPI
with parameters
P_FiscalPeriodStartDate : budat,
P_FiscalPeriodEndDate : budat
as select from P_RTPC_REM_Order as _Ord
inner join I_LedgerCompanyCodeCrcyRoles as _CrcyRoles on _Ord.CompanyCode = _CrcyRoles.CompanyCode
inner join I_Ledger as _Ledger on _CrcyRoles.Ledger = _Ledger.Ledger
and _Ledger.LedgerType = ''
left outer to one join P_RealTimePCCInspPostedWIP(P_FiscalPeriodStartDate : $parameters.P_FiscalPeriodStartDate,
P_FiscalPeriodEndDate : $parameters.P_FiscalPeriodEndDate
) as _PostedWIP on _PostedWIP.OrderID = _Ord.OrderID
and _PostedWIP.Ledger = _Ledger.Ledger
left outer to one join P_RealTimePCCInspPostedVarc(P_FiscalPeriodStartDate : $parameters.P_FiscalPeriodStartDate,
P_FiscalPeriodEndDate : $parameters.P_FiscalPeriodEndDate
) as _PostedVarc on _PostedVarc.OrderID = _Ord.OrderID
and _PostedVarc.Ledger = _Ledger.Ledger
{
key _Ord.OrderID,
key _Ledger.Ledger,
_CrcyRoles._Ledger._Text[1: Language = $session.system_language].LedgerName,
_Ord.OrderDescription,
_Ord.ControllingObject,
_Ord.OrderType,
_Ord.OrderCategory,
_Ord.ControllingArea,
_Ord.CompanyCode,
_Ord.Material,
_Ord.Plant,
_Ord.ProfitCenter,
_Ord.ResultsAnalysisKey,
'I0002' as StatusCode,
_Ord.ProductionVersion as ProductionVersion,
//To get the last posting date for EBWI, compare max posting date for WIP and variance
case
when _PostedWIP.PostingDate>=coalesce(_PostedVarc.PostingDate,'00000000') then _PostedWIP.PostingDate
else _PostedVarc.PostingDate end as PostingDate,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
coalesce(_PostedWIP.PeriodAmountInCompanyCodeCrcy, 0) as WIPPerdAmtInCoCodeCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
coalesce(_PostedWIP.PeriodAmountInGlobalCurrency, 0) as WIPPerdAmtInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy1, 0) as WIPPerdAmtInFreeDefinedCrcy1,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy2, 0) as WIPPerdAmtInFreeDefinedCrcy2,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy3, 0) as WIPPerdAmtInFreeDefinedCrcy3,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy4, 0) as WIPPerdAmtInFreeDefinedCrcy4,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy5, 0) as WIPPerdAmtInFreeDefinedCrcy5,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy6, 0) as WIPPerdAmtInFreeDefinedCrcy6,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy7, 0) as WIPPerdAmtInFreeDefinedCrcy7,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
coalesce(_PostedWIP.PeriodAmountInFreeDfndCrcy8, 0) as WIPPerdAmtInFreeDefinedCrcy8,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
coalesce(_PostedVarc.PeriodAmountInCompanyCodeCrcy, 0) as VarcPerdAmtInCoCodeCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
coalesce(_PostedVarc.PeriodAmountInGlobalCurrency, 0) as VarcPerdAmtInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy1, 0) as VarcPerdAmtInFreeDefinedCrcy1,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy2, 0) as VarcPerdAmtInFreeDefinedCrcy2,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy3, 0) as VarcPerdAmtInFreeDefinedCrcy3,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy4, 0) as VarcPerdAmtInFreeDefinedCrcy4,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy5, 0) as VarcPerdAmtInFreeDefinedCrcy5,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy6, 0) as VarcPerdAmtInFreeDefinedCrcy6,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy7, 0) as VarcPerdAmtInFreeDefinedCrcy7,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
coalesce(_PostedVarc.PeriodAmountInFreeDfndCrcy8, 0) as VarcPerdAmtInFreeDefinedCrcy8,
_CrcyRoles._CoCodeCurrencyRoleCurrency.Currency as CompanyCodeCurrency,
_CrcyRoles._GlobalCurrencyRoleCurrency.Currency as GlobalCurrency,
_CrcyRoles._FreeDfndCrcyRole1Currency.Currency as FreeDefinedCurrency1,
_CrcyRoles._FreeDfndCrcyRole2Currency.Currency as FreeDefinedCurrency2,
_CrcyRoles._FreeDfndCrcyRole3Currency.Currency as FreeDefinedCurrency3,
_CrcyRoles._FreeDfndCrcyRole4Currency.Currency as FreeDefinedCurrency4,
_CrcyRoles._FreeDfndCrcyRole5Currency.Currency as FreeDefinedCurrency5,
_CrcyRoles._FreeDfndCrcyRole6Currency.Currency as FreeDefinedCurrency6,
_CrcyRoles._FreeDfndCrcyRole7Currency.Currency as FreeDefinedCurrency7,
_CrcyRoles._FreeDfndCrcyRole8Currency.Currency as FreeDefinedCurrency8
}
where
_PostedWIP.OrderID is not null
or _PostedVarc.OrderID is not null