@AbapCatalog.sqlViewName: 'IPROCSTLITMCB'
@Analytics: { dataCategory: #CUBE, dataExtraction.enabled: true }
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Project Cost Line Items Cube'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.allowExtensions:true
@ObjectModel.semanticKey: ['ProjectObjectNode']
@AbapCatalog.preserveKey:true
@AccessControl.privilegedAssociations: [ '_ProjectHierarchy' ]
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@AccessControl.personalData.blockingIndicator: ['true']
define view I_ProjectCostLineItemsCube
as select from I_ProjectCostLineItems as _ProjCostLineItems
association [0..1] to I_ProjectStructure as _ProjectHierarchy on $projection.ProjectObjectNode = _ProjectHierarchy.ProjectObjectNode
association [0..1] to I_PPM_AuthznByUsrH as _AuthUser on _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthUser.UserID = $session.user
and _AuthUser.Activity = 'Financials'
// CE:2002 commented to keep it consistannt with C_PPM_ProjectBriefCost
// and (
// _AuthUser.Activity = 'Admin'
// or _AuthUser.Activity = 'Write'
// or _AuthUser.Activity = 'Read'
// )
association [0..*] to I_PPM_AuthznBySubstitH as _AuthSubst on _AuthSubst.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthSubst.UserID = $session.user
and _AuthSubst.Activity = 'Financials'
// CE:2002 commented to keep it consistannt with C_PPM_ProjectBriefCost
// and (
// _AuthSubst.Activity = 'Admin'
// or _AuthSubst.Activity = 'Write'
// or _AuthSubst.Activity = 'Read'
// )
association [0..*] to I_PPM_AuthznByUserRoleH as _AuthRole on _AuthRole.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthRole.UserID = $session.user
and _AuthRole.Activity = 'Financials'
// CE:2002 commented to keep it consistannt with C_PPM_ProjectBriefCost
// and (
// _AuthRole.Activity = 'Admin'
// or _AuthRole.Activity = 'Write'
// or _AuthRole.Activity = 'Read'
// )
association [0..*] to I_PPM_AuthznByUsrGrpH as _AuthGroup on _AuthGroup.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthGroup.UserID = $session.user
and _AuthGroup.Activity = 'Financials'
// CE:2002 commented to keep it consistannt with C_PPM_ProjectBriefCost
// and (
// _AuthGroup.Activity = 'Admin'
// or _AuthGroup.Activity = 'Write'
// or _AuthGroup.Activity = 'Read'
// )
association [0..1] to I_SingleResponsibleForProj as _Responsible on $projection.ProjectSummaryTaskUUID = _Responsible.ReferencedObjectUUID
association [1..1] to I_User as _UserName on $projection.AccountingDocCreatedByUser = _UserName.UserID
association [0..1] to I_PlanningCategory as _PlanningCategory on $projection.PlanningCategory = _PlanningCategory.PlanningCategory
{
@ObjectModel.foreignKey.association: '_ProjectHierarchy'
key _ProjCostLineItems.ProjectObjectNode,
key _ProjCostLineItems.Ledger,
key _ProjCostLineItems.SourceLedger,
key _ProjCostLineItems.CompanyCode,
key _ProjCostLineItems.FiscalYear,
key _ProjCostLineItems.AccountingDocument,
key _ProjCostLineItems.LedgerGLLineItem,
// plan posting keys
key _ProjCostLineItems.FinancialPlanningReqTransSqnc,
key _ProjCostLineItems.FinancialPlanningDataPacket,
key _ProjCostLineItems.ActualPlanJournalEntryItem,
_ProjectHierarchy.ProjectObjectRootNode,
_ProjCostLineItems.FinancialPlanningEntryItem,
_ProjCostLineItems.PlanningCategory,
_ProjCostLineItems.ControllingObjectCurrency,
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
_ProjCostLineItems.AmountInObjectCurrency,
_ProjCostLineItems.SemanticTag,
_ProjCostLineItems.PostingDate,
_ProjCostLineItems.AccountingDocCreatedByUser,
_ProjCostLineItems.ProjectSummaryTaskUUID,
_ProjCostLineItems.ProjectCategory,
_ProjCostLineItems.BusinessArea,
_ProjCostLineItems.GLAccount,
_ProjCostLineItems.ChartOfAccounts,
// _WBSElement.WBSElementObject as ProjectObjectNode,
_ProjCostLineItems.ProfitCenter,
_ProjCostLineItems.WBSElementProfitCenter,
_ProjCostLineItems.ControllingArea,
_ProjCostLineItems.Project,
_ProjCostLineItems.ProjectUUID,
_ProjCostLineItems.ProjectDescription,
_ProjCostLineItems.ProjectProfileCode,
_ProjCostLineItems.ProjectInternalID,
_ProjCostLineItems.ProjectObject,
_ProjCostLineItems.WBSElement,
_ProjCostLineItems.WBSDescription,
_ProjCostLineItems.ResponsibleCostCenter,
//CE2005 Project Type as a filter
_ProjCostLineItems.ProjectType,
//_EnterpriseProject.EnterpriseProjectType as ProjectType,
//S/4HANA CE2108 - Maintenance Order enablement-Begin
_ProjCostLineItems.OrderID,
//_ProjCostLineItems.MaintenanceOrderDesc,
// case
// when OrderID is not initial
// then cast ( 1 as abap.int1( 3 ) ) // Maintenance Order
// else cast ( 2 as abap.int1( 3 ) ) // WBS
// end as MaintenanceOrderIsSelected,
MaintenanceOrderIsSelected,
// S/4HANA CE2108 - Maintenance Order enablement-End
_Responsible.BusinessPartnerFullName,
_Responsible.BusinessPartnerUUID,
_Responsible.IsBusinessPurposeCompleted,
IsCommitment,
@EndUserText.label: 'Created By'
_UserName.UserDescription,
IsSettled,
FiscalPeriod,
FiscalYearPeriod,
FiscalYearVariant,
//2008:fields Specific to PMO integration to cost report-start
// cast(MaintenanceOrderIsSelected as boolean ) as MaintenanceOrderIsSelected,
//S/4HANA CE2108 - Maintenance Order enablement-Begin
PlanningCategory1,
PlanningCategory2,
//S/4HANA CE2108 - Maintenance Order enablement-End
// OrderID,
//
// //planning category1
//S/4HANA CE2108 - Maintenance Order enablement-Begin
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInGlobalCurrency
else 0 end as OrderPlngCat1AmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInObjectCurrency
else 0 end as OrderPlngCat1AmtInObjCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInTransactionCurrency
else 0 end as OrderPlngCat1AmtInTransCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInCompanyCodeCurrency
else 0 end as OrderPlngCat1AmtInCoCodeCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency1
else 0 end as OrderPlngCat1AmtInFDCrcy1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency2
else 0 end as OrderPlngCat1AmtInFDCrcy2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency3
else 0 end as OrderPlngCat1AmtInFDCrcy3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency4
else 0 end as OrderPlngCat1AmtInFDCrcy4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency5
else 0 end as OrderPlngCat1AmtInFDCrcy5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency6
else 0 end as OrderPlngCat1AmtInFDCrcy6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency7
else 0 end as OrderPlngCat1AmtInFDCrcy7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
case
when PlanningCategory = PlanningCategory1
then
AmountInFreeDefinedCurrency8
else 0 end as OrderPlngCat1AmtInFDCrcy8,
//planning category 2
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInGlobalCurrency
else 0 end as OrderPlngCat2AmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInObjectCurrency
else 0 end as OrderPlngCat2AmtInObjCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInTransactionCurrency
else 0 end as OrderPlngCat2AmtInTransCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInCompanyCodeCurrency
else 0 end as OrderPlngCat2AmtInCoCodeCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency1
else 0 end as OrderPlngCat2AmtInFDCrcy1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency2
else 0 end as OrderPlngCat2AmtInFDCrcy2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency3
else 0 end as OrderPlngCat2AmtInFDCrcy3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency4
else 0 end as OrderPlngCat2AmtInFDCrcy4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency5
else 0 end as OrderPlngCat2AmtInFDCrcy5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency6
else 0 end as OrderPlngCat2AmtInFDCrcy6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency7
else 0 end as OrderPlngCat2AmtInFDCrcy7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
case
when PlanningCategory = PlanningCategory2
then
AmountInFreeDefinedCurrency8
else 0 end as OrderPlngCat2AmtInFDCrcy8,
//S/4HANA CE2108 - Maintenance Order enablement-End
//2008:fields Specific to PMO integration to cost report-end
@Semantics.currencyCode:true
TransactionCurrency,
@Semantics.currencyCode:true
CompanyCodeCurrency,
@Semantics.currencyCode:true
GlobalCurrency,
@Semantics.currencyCode:true
FreeDefinedCurrency1,
@Semantics.currencyCode:true
FreeDefinedCurrency2,
@Semantics.currencyCode:true
FreeDefinedCurrency3,
@Semantics.currencyCode:true
FreeDefinedCurrency4,
@Semantics.currencyCode:true
FreeDefinedCurrency5,
@Semantics.currencyCode:true
FreeDefinedCurrency6,
@Semantics.currencyCode:true
FreeDefinedCurrency7,
@Semantics.currencyCode:true
FreeDefinedCurrency8,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
AmountInTransactionCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
AmountInCompanyCodeCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
AmountInGlobalCurrency,
/*
// S/4HANA CE2308: Project stock costs enablement - Begin
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
PrjStockAmountInGlobalCurrency,
// S/4HANA CE2308: Project stock costs enablement - End
*/
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
AmountInFreeDefinedCurrency1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
AmountInFreeDefinedCurrency2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
AmountInFreeDefinedCurrency3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
AmountInFreeDefinedCurrency4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
AmountInFreeDefinedCurrency5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
AmountInFreeDefinedCurrency6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
AmountInFreeDefinedCurrency7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
AmountInFreeDefinedCurrency8,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
ActualAmountInGlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
ActlCostInProjCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
ActualAmountInFreeDfndCrcy1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
ActualAmountInFreeDfndCrcy2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
ActualAmountInFreeDfndCrcy3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
ActualAmountInFreeDfndCrcy4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
ActualAmountInFreeDfndCrcy5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
ActualAmountInFreeDfndCrcy6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
ActualAmountInFreeDfndCrcy7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
ActualAmountInFreeDfndCrcy8,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
PlanAmountInGlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
PlndCostAmtInProjCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
PlanAmountInFreeDefinedCrcy1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
PlanAmountInFreeDefinedCrcy2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
PlanAmountInFreeDefinedCrcy3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
PlanAmountInFreeDefinedCrcy4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
PlanAmountInFreeDefinedCrcy5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
PlanAmountInFreeDefinedCrcy6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
PlanAmountInFreeDefinedCrcy7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
PlanAmountInFreeDefinedCrcy8,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
CmtmtCostInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
@DefaultAggregation: #SUM
CmtmtCostInProjCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
CmtmtCostInFreeDefinedCrcy1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
CmtmtCostInFreeDefinedCrcy2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
CmtmtCostInFreeDefinedCrcy3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
CmtmtCostInFreeDefinedCrcy4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
CmtmtCostInFreeDefinedCrcy5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
CmtmtCostInFreeDefinedCrcy6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
CmtmtCostInFreeDefinedCrcy7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
CmtmtCostInFreeDefinedCrcy8,
_ProjectHierarchy,
_UserName,
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup
}
where
(
_Responsible.BusinessPartnerUUID is null
or(
_Responsible.BusinessPartnerUUID is not null
and _Responsible.IsBusinessPurposeCompleted != 'X'
)
)
//S/4HANA CE2108 - Maintenance Order enablement-Begin
and _ProjCostLineItems.PartnerAccountAssignmentType != 'OR'
//S/4HANA CE2108 - Maintenance Order enablement-End
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PROJECTCOSTLINEITEMS",
"I_PROJECTSTRUCTURE",
"I_SINGLERESPONSIBLEFORPROJ",
"I_USER"
],
"ASSOCIATED":
[
"I_PLANNINGCATEGORY",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PROJECTSTRUCTURE",
"I_SINGLERESPONSIBLEFORPROJ",
"I_USER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/