@AbapCatalog.sqlViewName: 'CEBPCCDETAIL'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #REQUIRED
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.compositionRoot: true
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@UI.textArrangement: #TEXT_LAST
@ObjectModel.query.implementedBy: 'ABAP:CL_FCO_EBPCC_DETAIL_QUERY'
@EndUserText.label: 'Event-Based Product Cost Collector Detail'
define view C_EvtBsdProdCostCollectorDet
with parameters
P_OrderID : fis_order_number,
P_ProducedProduct : fis_produced_product,
P_FromFiscalYearPeriod : fins_fyearperiod,
P_ToFiscalYearPeriod : fins_fyearperiod,
P_Ledger : fins_ledger,
P_CostComponentStructure : ck_elesmhk,
P_CurrencyRole : fac_crcyrole
as select from P_EBPCC_Cost( P_OrderID : :P_OrderID,
P_ProducedProduct : :P_ProducedProduct,
P_FromFiscalYearPeriod : :P_FromFiscalYearPeriod,
P_ToFiscalYearPeriod : :P_ToFiscalYearPeriod,
P_Ledger : :P_Ledger,
P_CostComponentStructure : :P_CostComponentStructure,
P_CurrencyRole : :P_CurrencyRole )
{
@Consumption.semanticObject: 'GLAccount'
@ObjectModel.text.element: ['GLAccountName']
key CostElement,
@ObjectModel.text.element: ['CtrlgOriginClassificationName']
key cast(CtrlgOriginClassification as fco_origin_indicator) as CtrlgOriginClassification,
@ObjectModel.text.element: ['MfgDebitCreditCodeName']
key cast(ControllingDebitCreditCode as fco_dbt_crdt_indicator preserving type) as ControllingDebitCreditCode,
@UI.hidden: true
key MfgOrderBusTransactionType,
@ObjectModel.text.element: ['CostCenterDescription']
key cast(OriginCostCenter as fis_usp_kostl) as OriginCostCenter,
@ObjectModel.text.element: ['CostCtrActivityTypeDesc']
key cast(OriginCostCtrActivityType as fis_origin_activity_type) as OriginCostCtrActivityType,
key OriginBusinessProcess,
key CostOriginType,
key cast(ltrim(OriginObject, '0') as kkb_herku) as OriginObject,
key CostOriginGroup,
@ObjectModel.text.element: ['PartnerCostCenterText']
key cast(PartnerCostCenter as sendercostcenter) as PartnerCostCenter,
@ObjectModel.text.element: ['PartnerCostCtrActivityTypeName']
key cast(PartnerCostCtrActivityType as fco_par_cost_ctr_activity_type) as PartnerCostCtrActivityType,
key PartnerBusinessProcess,
key PartnerOrder,
key cast(ltrim(PartnerCostObject, '0') as kkb_partn) as PartnerCostObject,
@Semantics.unitOfMeasure:true
key UnitOfMeasure,
@ObjectModel.text.element: ['MaterialName']
key Material,
key IsLotSizeIndependent,
@ObjectModel.text.element: ['SubLedgerAcctLineItemTypeName']
key cast(SubLedgerAcctLineItemType as fco_rt_slalittype) as SubLedgerAcctLineItemType,
Plant,
// Assignment
ControllingArea,
CompanyCode,
@ObjectModel.text.element: ['ProfitCenterLongName']
ProfitCenter,
ResponsibleCostCenter,
OrderCategory,
OrderType,
ChartOfAccounts,
@Consumption.filter.hidden: true
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@UI.hidden: true
cast('' as ck_herko) as CostCompIsForCOGM,
@ObjectModel.text.element: ['CostComponentName']
cast( coalesce( CostComponent, '000' ) as fco_cost_component) as CostComponent,
@ObjectModel.text.element: ['CostComponentGroupName']
cast( coalesce( CostComponentGroup, '' ) as fco_cost_comp_group) as CostComponentGroup,
@Semantics.text: true
cast( coalesce( CostComponentGroupName, '' ) as fco_cost_comp_group_name) as CostComponentGroupName,
@UI.hidden: true
CostComponentStructure as CostComponentStructure,
// Currencies
@Semantics.currencyCode: true
DisplayCurrency,
// Unit of Measure for % fields
@Semantics.unitOfMeasure:true
@Consumption.filter.hidden: true
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
cast(RatioUnit as fco_rt_prod_costs_prcntg_unit) as RatioUnit,
// Actual costs
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CreditActlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitActlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CrdtActlFxdCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitActlFxdCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlFixedCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitActlVarblCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CrdtActlVarblCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlVarblCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
ActualQtyInCostSourceUnit,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
ActlFixedQtyInCostSourceUnit,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
ActlVarblQtyInCostSourceUnit,
// Target costs
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CrdtTargetCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitTargetCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
TargetCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
TargetQtyInCostSourceUnit,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
TargetFixedQtyInCostSourceUnit,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
TargetVarblQtyInCostSourceUnit,
// Control Costs at actual
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CrdtActlCtrlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitActlCtrlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlCtrlCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
ActlCtrlQtyInCostSourceUnit,
/////////////////////////////////////////////////////////////////////////////////////
// Variances
/////////////////////////////////////////////////////////////////////////////////////
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
CostVarianceInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
InptPrVarcAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
InptQtyVarcAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
RsceUsgeVarcAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
OutpPrVarcAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
LotSizeVarcAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
RmngVarcAmtInDspCrcy,
/////////////////////////////////////////////////////////////////////////////////////
// WIP
/////////////////////////////////////////////////////////////////////////////////////
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
WIPCostInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
UnrlzdCostRsrvAmtInDspCrcy,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
TotalWIPAmountInDspCrcy,
/////////////////////////////////////////////////////////////////////////////////////
// Calculates deviations
/////////////////////////////////////////////////////////////////////////////////////
//Target - Actual deviation
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlTgtDiffCostInDspCrcy,
@Aggregation.default: #SUM // % fields has to be recalculated in query implementation class
@Semantics: { quantity : {unitOfMeasure: 'RatioUnit'} }
cast( 0 as fis_dspcrcy_actltgtdiffpct) as DspCrcyActlTgtDiffPct,
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
DebitActlTgtDiffCostInDspCrcy,
@Aggregation.default: #SUM // % fields has to be recalculated in query implementation class
@Semantics: { quantity : {unitOfMeasure: 'RatioUnit'} }
DebitActlTgtDiffPercent,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
ActlTgtDiffQuantity,
//Control - Target deviation at Actual
@Aggregation.default: #SUM
@Semantics: { amount : {currencyCode: 'DisplayCurrency'} }
ActlCtrlTgtDiffCostInDspCrcy,
@Aggregation.default: #SUM // % fields has to be recalculated in query implementation class
@Semantics: { quantity : {unitOfMeasure: 'RatioUnit'} }
cast(0 as fis_dspcrcy_actlctrltgtdiffpct) as DspCrcyActlCtrlTgtDiffPct,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'UnitOfMeasure'} }
cast( (ActlCtrlQtyInCostSourceUnit - TargetQtyInCostSourceUnit) as fis_actlctrltgt_diffqty ) as ActlCtrlTgtDiffQuantity,
// Texts
cast(_COProdnOrderBusTransText[1: Language = $session.system_language].MfgOrderBusTransactionTypeName as fco_transaction_type_name) as MfgOrderBusTransactionTypeName,
@Semantics.text: true
cast(_GLAccountTxt[1: Language = $session.system_language].GLAccountName as fco_glaccount_name) as GLAccountName,
@Semantics.text: true
_MfgDebitCreditCodeText[1: Language = $session.system_language].MfgDebitCreditCodeName,
@Semantics.text: true
_CostCenterText[1: Language = $session.system_language].CostCenterDescription,
@Semantics.text: true
_PartnerCostCenterText[1: Language = $session.system_language].CostCenterDescription as PartnerCostCenterText,
@Semantics.text: true
_CostCenterActivityTypeText[1: Language = $session.system_language].CostCtrActivityTypeDesc,
@Semantics.text: true
cast(_PartnerCostCtrActivityTypeTxt[1: Language = $session.system_language].CostCtrActivityTypeDesc as fis_partner_activity_type_name) as PartnerCostCtrActivityTypeName,
@Semantics.text: true
_MaterialText[1: Language = $session.system_language].MaterialName,
@Semantics.text: true
_SubLedgerAcctLineItemTypeText[1: Language = $session.system_language].SubLedgerAcctLineItemTypeName,
@Semantics.text: true
_ProfitCenterText[1: Language = $session.system_language].ProfitCenterLongName,
@Semantics.text: true
_CostComponentText[1: Language = $session.system_language].CostComponentName,
@Semantics.text: true
_CostCtrlgOriginIndicatorText[1: Language = $session.system_language].CtrlgOriginClassificationName,
@Semantics.fiscal.yearPeriod: true
cast('' as fins_fyearperiod) as FromFiscalYearPeriod,
@Semantics.fiscal.yearPeriod: true
cast('' as fins_fyearperiod) as ToFiscalYearPeriod,
@UI.hidden: true
cast('' as fco_cost_comp_struc_name) as CostComponentStructureName
}