P_PROJCMTMTBUDGETLINEITMS

DDL: P_PROJCMTMTBUDGETLINEITMS SQL: PPRJBYCMTMTBGT Type: view COMPOSITE

Project Budget Commitment

P_PROJCMTMTBUDGETLINEITMS is a Composite CDS View that provides data about "Project Budget Commitment" in SAP S/4HANA. It reads from 13 data sources and exposes 179 fields with key fields SourceLedger, Ledger, CompanyCodeendasCompanyCode, FiscalYear, AccountingDocument. It has 1 association to related views.

Data Sources (13)

SourceAliasJoin Type
P_GetRlvtSemanticTagForProj _AllCost inner
P_GetRlvtSemanticTagForProj _AllCost inner
I_ControllingArea _ContArea inner
I_ControllingArea _ContArea inner
I_MaintenanceOrder _Orders inner
I_GLAccountLineItemRawData _ProjCstLineItm inner
P_ProjectsWithProjCat6 _Project inner
P_PROJECTSEMTAGACC _SemTagGL inner
P_PROJECTSEMTAGACC _SemTagGL inner
I_LedgerSourceLedger _SourceLedger inner
I_LedgerSourceLedger _SourceLedger inner
I_GLAccountLineItemRawData ProjCstLineItm union_all
P_ProjectsWithProjCat6 Project from

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_FiscalPeriodForVariant _FiscalPeriod $projection.LedgerFiscalYear = _FiscalPeriod.FiscalYear and $projection.FiscalPeriod = _FiscalPeriod.FiscalPeriod and $projection.FiscalYearVariant = _FiscalPeriod.FiscalYearVariant

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName PPRJBYCMTMTBGT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AbapCatalog.buffering.status #NOT_ALLOWED view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
VDM.viewType #COMPOSITE view
VDM.private true view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Project Budget Commitment view

Fields (179)

KeyFieldSource TableSource FieldDescription
KEY SourceLedger I_GLAccountLineItemRawData SourceLedger
KEY Ledger I_LedgerSourceLedger Ledger
KEY CompanyCodeendasCompanyCode
KEY FiscalYear I_GLAccountLineItemRawData FiscalYear
KEY AccountingDocument I_GLAccountLineItemRawData AccountingDocument
KEY FinancialPlanningReqTransSqnc
KEY FinancialPlanningDataPacket
KEY ActualPlanJournalEntryItem
LedgerFiscalYear I_GLAccountLineItemRawData LedgerFiscalYear
LedgerGLLineItem I_GLAccountLineItemRawData LedgerGLLineItem
FinancialPlanningEntryItem
GLAccount I_GLAccountLineItemRawData GLAccount
ChartOfAccounts I_GLAccountLineItemRawData ChartOfAccounts
AccountingDocCreatedByUser I_GLAccountLineItemRawData AccountingDocCreatedByUser
GLAccountHierarchy P_PROJECTSEMTAGACC GLAccountHierarchy
BusinessArea I_GLAccountLineItemRawData BusinessArea
CostCenter I_GLAccountLineItemRawData CostCenter
BudgetProcess
PartnerOrder I_GLAccountLineItemRawData PartnerOrder
PartnerOrderCategory I_GLAccountLineItemRawData PartnerOrderCategory
PartnerWBSElement
PartnerProject
BusinessTransactionType I_GLAccountLineItemRawData BusinessTransactionType
DebitCreditCode I_GLAccountLineItemRawData DebitCreditCode
ControllingDebitCreditCode I_GLAccountLineItemRawData ControllingDebitCreditCode
ProfitCenterendasProfitCenter
WBSElementProfitCenter _WBSElementBasicData ProfitCenter
WBSDescription _WBSElementBasicData WBSDescription
ProjectObjectNode _WBSElementBasicData WBSElementObject
WBSElement _WBSElementBasicData WBSElementExternalID
ResponsibleCostCenter _WBSElementBasicData ResponsibleCostCenter
ProjectType _WBSElementBasicData ProjectType
WBSElementInternalID I_GLAccountLineItemRawData WBSElementInternalID
ControllingArea I_GLAccountLineItemRawData ControllingArea
Project P_ProjectsWithProjCat6 ProjectExternalID
ProjectInternalID P_ProjectsWithProjCat6 ProjectInternalID
ProjectExternalID _ProjectSummary Project
ProjectDescription P_ProjectsWithProjCat6 ProjectDescription
ProjectProfileCode P_ProjectsWithProjCat6 ProjectProfileCode
ProjectObject P_ProjectsWithProjCat6 ProjectObject
AvailabilityControlProfile P_ProjectsWithProjCat6 AvailabilityControlProfile
AvailabilityControlIsActive P_ProjectsWithProjCat6 AvailabilityControlIsActive
ParentSemanticTag
AvailyCtrlTimeRangeType
BudgetCurrencyRole
ProjectCurrency P_ProjectsWithProjCat6 ProjectCurrency
ProjectSummaryTaskUUID _ProjectSummary ProjectSummaryTaskUUID
ProjectCategory
ProjectUUID _ProjectSummary ProjectUUID
ProcessingStatus _ProjectSummary ProcessingStatus
TaskUUID _ProjectSummary ProjectSummaryTaskUUID
CreationDate I_GLAccountLineItemRawData CreationDate
FunctionalArea I_GLAccountLineItemRawData FunctionalArea
CostCtrActivityType I_GLAccountLineItemRawData CostCtrActivityType
ControllingObjectCurrency I_GLAccountLineItemRawData ControllingObjectCurrency
AmountInObjectCurrency I_GLAccountLineItemRawData AmountInObjectCurrency
TransactionCurrency I_GLAccountLineItemRawData TransactionCurrency
AmountInTransactionCurrency I_GLAccountLineItemRawData AmountInTransactionCurrency
CompanyCodeCurrency I_GLAccountLineItemRawData CompanyCodeCurrency
AmountInCompanyCodeCurrency I_GLAccountLineItemRawData AmountInCompanyCodeCurrency
GlobalCurrency I_GLAccountLineItemRawData GlobalCurrency
AmountInGlobalCurrency I_GLAccountLineItemRawData AmountInGlobalCurrency
FunctionalCurrency I_GLAccountLineItemRawData FunctionalCurrency
AmountInFunctionalCurrency I_GLAccountLineItemRawData AmountInFunctionalCurrency
CmtmtCostInGlobalCurrency I_GLAccountLineItemRawData AmountInGlobalCurrency
CmtmtCostInProjCrcy I_GLAccountLineItemRawData AmountInObjectCurrency
CmtmtAmountInFunctionalCrcy I_GLAccountLineItemRawData AmountInFunctionalCurrency
CmtmtCostInCCCrcy I_GLAccountLineItemRawData AmountInCompanyCodeCurrency
CmtmtCostInTransacCrcy I_GLAccountLineItemRawData AmountInTransactionCurrency
PlanningCategory
PostingDate I_GLAccountLineItemRawData PostingDate
DocumentDate I_GLAccountLineItemRawData DocumentDate
FiscalPeriod I_GLAccountLineItemRawData FiscalPeriod
FiscalYearPeriod I_GLAccountLineItemRawData FiscalYearPeriod
FiscalYearVariant I_GLAccountLineItemRawData FiscalYearVariant
PartnerCostObjectthenXendasIsSettled
SourceReferenceDocumentType I_GLAccountLineItemRawData SourceReferenceDocumentType
SourceLogicalSystem I_GLAccountLineItemRawData SourceLogicalSystem
SourceReferenceDocumentCntxt I_GLAccountLineItemRawData SourceReferenceDocumentCntxt
SourceReferenceDocument I_GLAccountLineItemRawData SourceReferenceDocument
SourceReferenceDocumentItem I_GLAccountLineItemRawData SourceReferenceDocumentItem
SourceReferenceDocSubitem I_GLAccountLineItemRawData SourceReferenceDocSubitem
IsCommitment I_GLAccountLineItemRawData IsCommitment
OrderID I_GLAccountLineItemRawData OrderID
MaintenanceOrderIsSelected
SemanticTag P_PROJECTSEMTAGACC SemanticTag
SemanticTagIsBudgetRelevant P_GetRlvtSemanticTagForProj SemanticTagIsBudgetRelevant
ObjectIsBudgeted P_GetRlvtSemanticTagForProj SemanticTagIsBudgetRelevant
ProjectIsBudgetRelevant P_GetRlvtSemanticTagForProj ProjectIsBudgetRelevant
SourceLedger
KEY Ledger I_LedgerSourceLedger Ledger
KEY CompanyCodeendasCompanyCode
KEY FiscalYear I_GLAccountLineItemRawData FiscalYear
KEY AccountingDocument I_GLAccountLineItemRawData AccountingDocument
KEY FinancialPlanningReqTransSqnc
KEY FinancialPlanningDataPacket
KEY ActualPlanJournalEntryItem
LedgerFiscalYear I_GLAccountLineItemRawData LedgerFiscalYear
LedgerGLLineItem I_GLAccountLineItemRawData LedgerGLLineItem
FinancialPlanningEntryItem
GLAccount I_GLAccountLineItemRawData GLAccount
ChartOfAccounts I_GLAccountLineItemRawData ChartOfAccounts
AccountingDocCreatedByUser I_GLAccountLineItemRawData AccountingDocCreatedByUser
GLAccountHierarchy P_PROJECTSEMTAGACC GLAccountHierarchy
BusinessArea I_GLAccountLineItemRawData BusinessArea
CostCenter I_GLAccountLineItemRawData CostCenter
BudgetProcess
PartnerOrder I_GLAccountLineItemRawData PartnerOrder
PartnerOrderCategory I_GLAccountLineItemRawData PartnerOrderCategory
PartnerWBSElement
PartnerProject
BusinessTransactionType I_GLAccountLineItemRawData BusinessTransactionType
DebitCreditCode I_GLAccountLineItemRawData DebitCreditCode
ControllingDebitCreditCode I_GLAccountLineItemRawData ControllingDebitCreditCode
ProfitCenterendasProfitCenter
WBSElementProfitCenter _WBSElementBasicData ProfitCenter
WBSDescription _WBSElementBasicData WBSDescription
ProjectObjectNode I_GLAccountLineItemRawData OrderID
WBSElement _WBSElementBasicData WBSElementExternalID
ResponsibleCostCenter _WBSElementBasicData ResponsibleCostCenter
ProjectType _WBSElementBasicData ProjectType
WBSElementInternalID I_MaintenanceOrder WBSElementInternalID
ControllingArea I_GLAccountLineItemRawData ControllingArea
Project P_ProjectsWithProjCat6 ProjectExternalID
ProjectInternalID P_ProjectsWithProjCat6 ProjectInternalID
ProjectExternalID _ProjectSummary Project
ProjectDescription P_ProjectsWithProjCat6 ProjectDescription
ProjectProfileCode P_ProjectsWithProjCat6 ProjectProfileCode
ProjectObject P_ProjectsWithProjCat6 ProjectObject
AvailabilityControlProfile P_ProjectsWithProjCat6 AvailabilityControlProfile
AvailabilityControlIsActive P_ProjectsWithProjCat6 AvailabilityControlIsActive
ParentSemanticTag
AvailyCtrlTimeRangeType
BudgetCurrencyRole
ProjectCurrency P_ProjectsWithProjCat6 ProjectCurrency
ProjectSummaryTaskUUID _ProjectSummary ProjectSummaryTaskUUID
ProjectCategory
ProjectUUID _ProjectSummary ProjectUUID
ProcessingStatus _ProjectSummary ProcessingStatus
TaskUUID _ProjectSummary ProjectSummaryTaskUUID
CreationDate I_GLAccountLineItemRawData CreationDate
FunctionalArea I_GLAccountLineItemRawData FunctionalArea
CostCtrActivityType I_GLAccountLineItemRawData CostCtrActivityType
ControllingObjectCurrency P_ProjectsWithProjCat6 ProjectCurrency
AmountInObjectCurrency I_GLAccountLineItemRawData AmountInObjectCurrency
TransactionCurrency I_GLAccountLineItemRawData TransactionCurrency
AmountInTransactionCurrency I_GLAccountLineItemRawData AmountInTransactionCurrency
CompanyCodeCurrency I_GLAccountLineItemRawData CompanyCodeCurrency
AmountInCompanyCodeCurrency I_GLAccountLineItemRawData AmountInCompanyCodeCurrency
GlobalCurrency I_GLAccountLineItemRawData GlobalCurrency
AmountInGlobalCurrency I_GLAccountLineItemRawData AmountInGlobalCurrency
FunctionalCurrency I_GLAccountLineItemRawData FunctionalCurrency
AmountInFunctionalCurrency I_GLAccountLineItemRawData AmountInFunctionalCurrency
CmtmtCostInGlobalCurrency I_GLAccountLineItemRawData AmountInGlobalCurrency
CmtmtCostInProjCrcy I_GLAccountLineItemRawData AmountInObjectCurrency
CmtmtAmountInFunctionalCrcy I_GLAccountLineItemRawData AmountInFunctionalCurrency
CmtmtCostInCCCrcy I_GLAccountLineItemRawData AmountInCompanyCodeCurrency
CmtmtCostInTransacCrcy I_GLAccountLineItemRawData AmountInTransactionCurrency
PlanningCategory
PostingDate I_GLAccountLineItemRawData PostingDate
DocumentDate I_GLAccountLineItemRawData DocumentDate
FiscalPeriod I_GLAccountLineItemRawData FiscalPeriod
FiscalYearPeriod I_GLAccountLineItemRawData FiscalYearPeriod
FiscalYearVariant I_GLAccountLineItemRawData FiscalYearVariant
PartnerCostObjectthenXendasIsSettled
SourceReferenceDocumentType I_GLAccountLineItemRawData SourceReferenceDocumentType
SourceLogicalSystem I_GLAccountLineItemRawData SourceLogicalSystem
SourceReferenceDocumentCntxt I_GLAccountLineItemRawData SourceReferenceDocumentCntxt
SourceReferenceDocument I_GLAccountLineItemRawData SourceReferenceDocument
SourceReferenceDocumentItem I_GLAccountLineItemRawData SourceReferenceDocumentItem
SourceReferenceDocSubitem I_GLAccountLineItemRawData SourceReferenceDocSubitem
IsCommitment I_GLAccountLineItemRawData IsCommitment
OrderID I_GLAccountLineItemRawData OrderID
MaintenanceOrderIsSelected
SemanticTag P_PROJECTSEMTAGACC SemanticTag
SemanticTagIsBudgetRelevant P_GetRlvtSemanticTagForProj SemanticTagIsBudgetRelevant
ObjectIsBudgeted P_GetRlvtSemanticTagForProj SemanticTagIsBudgetRelevant
ProjectIsBudgetRelevant P_GetRlvtSemanticTagForProj ProjectIsBudgetRelevant
_FiscalPeriod _FiscalPeriod
@AbapCatalog.sqlViewName: 'PPRJBYCMTMTBGT'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.usageType.serviceQuality: #D
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Project Budget Commitment'
define view P_PROJCMTMTBUDGETLINEITMS

  as 
  select from           P_ProjectsWithProjCat6      as Project
    inner join             I_GLAccountLineItemRawData  as _ProjCstLineItm      on _ProjCstLineItm.ProjectInternalID = Project.ProjectInternalID
    inner join             I_LedgerSourceLedger        as _SourceLedger        on _ProjCstLineItm.SourceLedger = _SourceLedger.SourceLedger
    inner join             I_ControllingArea           as _ContArea            on _ContArea.ControllingArea = _ProjCstLineItm.ControllingArea
    inner join             P_PROJECTSEMTAGACC          as _SemTagGL            on  _ProjCstLineItm.ControllingArea = _SemTagGL.ControllingArea
                                                                               and _ProjCstLineItm.GLAccount       = _SemTagGL.HierarchyNodeVal
                                                                               and _ProjCstLineItm.ChartOfAccounts = _SemTagGL.HierarchyNodeClass
    inner join             P_GetRlvtSemanticTagForProj as _AllCost             on _AllCost.ProjectInternalID = _ProjCstLineItm.ProjectInternalID

    left outer to one join I_WBSElementBasicData       as _WBSElementBasicData on _ProjCstLineItm.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID
    left outer to one join I_EnterpriseProject         as _ProjectSummary      on _ProjectSummary.ProjectInternalID = _ProjCstLineItm.ProjectInternalID

  association [0..1] to I_FiscalPeriodForVariant as _FiscalPeriod on  $projection.LedgerFiscalYear  = _FiscalPeriod.FiscalYear
                                                                  and $projection.FiscalPeriod      = _FiscalPeriod.FiscalPeriod
                                                                  and $projection.FiscalYearVariant = _FiscalPeriod.FiscalYearVariant

{
  key _ProjCstLineItm.SourceLedger,
  key _SourceLedger.Ledger,

  key case
      when _ProjCstLineItm.CompanyCode is initial or _ProjCstLineItm.CompanyCode is null
      then _WBSElementBasicData.CompanyCode
      else _ProjCstLineItm.CompanyCode end                                     as CompanyCode,
  key _ProjCstLineItm.FiscalYear,
  key _ProjCstLineItm.AccountingDocument,
  key cast( '00000000000000000000000'  as fis_fp_request_tsn preserving type ) as FinancialPlanningReqTransSqnc,

  key cast( '000000' as fis_fp_data_packet preserving type )                   as FinancialPlanningDataPacket,

  key cast( LedgerGLLineItem as fis_act_pln_docln)                             as ActualPlanJournalEntryItem,

      _ProjCstLineItm.LedgerFiscalYear,
      _ProjCstLineItm.LedgerGLLineItem,
      cast( 0 as fis_fp_entry_item )                                           as FinancialPlanningEntryItem,

      _ProjCstLineItm.GLAccount,
      _ProjCstLineItm.ChartOfAccounts,
      _ProjCstLineItm.AccountingDocCreatedByUser,
      _SemTagGL.GLAccountHierarchy,
      _ProjCstLineItm.BusinessArea,
      _ProjCstLineItm.CostCenter,
      cast('    ' as budget_process preserving type )                          as BudgetProcess,

      _ProjCstLineItm.PartnerOrder,
      _ProjCstLineItm.PartnerOrderCategory,

      // S/4 Hana CE2302- Field Deprecation - Begin

      // _ProjCstLineItm.PartnerWBSElement,

      _ProjCstLineItm._PartnerWBSElementBasicData.WBSElementExternalID         as PartnerWBSElement,

      // _ProjCstLineItm.PartnerProject,

      _ProjCstLineItm._PartnerProjectBasicData.ProjectExternalID               as PartnerProject,
      // S/4 Hana CE2302- Field Deprecation - End


      _ProjCstLineItm.BusinessTransactionType,
      _ProjCstLineItm.DebitCreditCode,
      _ProjCstLineItm.ControllingDebitCreditCode,

      case
      when _ProjCstLineItm.ProfitCenter is initial or _ProjCstLineItm.ProfitCenter is null
      then _WBSElementBasicData.ProfitCenter
      else _ProjCstLineItm.ProfitCenter end                                    as ProfitCenter,

      _WBSElementBasicData.ProfitCenter                                        as WBSElementProfitCenter,
      _WBSElementBasicData.WBSDescription,

      _WBSElementBasicData.WBSElementObject                                    as ProjectObjectNode,

      //   S/4 HANA CE2208: mapping change for coding mask- start

      //_ProjCstLineItm.WBSElement,

      _WBSElementBasicData.WBSElementExternalID                                as WBSElement,
      //   S/4 HANA CE2208:  mapping change for coding mask - end


      _WBSElementBasicData.ResponsibleCostCenter,
      //  S/4HANA CE2202: Project Type normalization - Begin

      _WBSElementBasicData.ProjectType,
      //   S/4HANA CE2202: Project Type normalization - End

      _ProjCstLineItm.WBSElementInternalID,

      //   S/4 HANA CE2208:  mapping change for coding mask - start

      //Project.ControllingArea,

      _ProjCstLineItm.ControllingArea,

      //_ProjCstLineItm.Project,

      Project.ProjectExternalID                                                as Project,

      //_ProjCstLineItm.ProjectInternalID,

      Project.ProjectInternalID,
      //   S/4 HANA CE2208:  mapping change for coding mask - end


      _ProjectSummary.Project                                                  as ProjectExternalID,

      Project.ProjectDescription,
      Project.ProjectProfileCode,
      Project.ProjectObject,
      Project.AvailabilityControlProfile,
      Project.AvailabilityControlIsActive,
      Project._AvailabilityCtrlProfile._SemanticTag.SemanticTag                as ParentSemanticTag,
      Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
      Project._AvailabilityCtrlProfile.BudgetCurrencyRole,
      Project.ProjectCurrency,
      _ProjectSummary.ProjectSummaryTaskUUID,
      '6'                                                                      as ProjectCategory,
      _ProjectSummary.ProjectUUID,
      _ProjectSummary.ProcessingStatus,
      _ProjectSummary.ProjectSummaryTaskUUID                                   as TaskUUID,
      _ProjCstLineItm.CreationDate,
      _ProjCstLineItm.FunctionalArea,
      _ProjCstLineItm.CostCtrActivityType,

      @Semantics.currencyCode: true
      _ProjCstLineItm.ControllingObjectCurrency,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'ControllingObjectCurrency'
      _ProjCstLineItm.AmountInObjectCurrency,

      @Semantics.currencyCode:true
      _ProjCstLineItm.TransactionCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      _ProjCstLineItm.AmountInTransactionCurrency,

      @Semantics.currencyCode:true
      _ProjCstLineItm.CompanyCodeCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      _ProjCstLineItm.AmountInCompanyCodeCurrency,

      @Semantics.currencyCode:true
      _ProjCstLineItm.GlobalCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
      _ProjCstLineItm.AmountInGlobalCurrency,

      @Semantics.currencyCode:true
      _ProjCstLineItm.FunctionalCurrency,

      @Semantics: { amount : {currencyCode: 'FunctionalCurrency'} }
      @DefaultAggregation: #SUM
      _ProjCstLineItm.AmountInFunctionalCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
      _ProjCstLineItm.AmountInGlobalCurrency                                   as CmtmtCostInGlobalCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
      _ProjCstLineItm.AmountInObjectCurrency                                   as CmtmtCostInProjCrcy,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FunctionalCurrency'} }
      _ProjCstLineItm.AmountInFunctionalCurrency                               as CmtmtAmountInFunctionalCrcy,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      _ProjCstLineItm.AmountInCompanyCodeCurrency                              as CmtmtCostInCCCrcy,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      _ProjCstLineItm.AmountInTransactionCurrency                              as CmtmtCostInTransacCrcy,


      cast( cast( 'CMTMT' as abap.char( 10  )) as fcom_category)               as PlanningCategory,


      _ProjCstLineItm.PostingDate,
      _ProjCstLineItm.DocumentDate,
      _ProjCstLineItm.FiscalPeriod,
      _ProjCstLineItm.FiscalYearPeriod,
      _ProjCstLineItm.FiscalYearVariant,

      case
        //S/4HANA CE2308 - Performence tuning Begin

        when ( _ProjCstLineItm.ControllingDebitCreditCode <> 'A' and _ProjCstLineItm.ControllingDebitCreditCode <> 'S' )
          or ( _ProjCstLineItm.ControllingDebitCreditCode = 'S' and (  _ProjCstLineItm.BusinessTransactionType <> 'KOAO' and _ProjCstLineItm.BusinessTransactionType <> 'KOAE' ) )
          or ( _ProjCstLineItm.ControllingDebitCreditCode = 'S' and (_ProjCstLineItm.BusinessTransactionType = 'KOAO' or _ProjCstLineItm.BusinessTransactionType = 'KOAE') 
              and ( _ProjCstLineItm.PartnerProject <> _ProjCstLineItm.Project and ( _ProjCstLineItm.PartnerProject <> ' '  or _ProjCstLineItm.PartnerOrder <> ' ' or _ProjCstLineItm.PartnerSalesDocument <> ' ' or
           _ProjCstLineItm.PartnerProjectNetwork <> ' '  or _ProjCstLineItm.PartnerProjectNetworkActivity <> ' ' or
           _ProjCstLineItm.PartnerBusinessProcess <> ' ' or _ProjCstLineItm.PartnerCostObject <> ' ') )
             )
         then 'X'
        //S/4HANA CE2308 - Performence tuning End

      end                                                                      as IsSettled,

      _ProjCstLineItm.SourceReferenceDocumentType,
      _ProjCstLineItm.SourceLogicalSystem,
      _ProjCstLineItm.SourceReferenceDocumentCntxt,
      _ProjCstLineItm.SourceReferenceDocument,
      _ProjCstLineItm.SourceReferenceDocumentItem,
      _ProjCstLineItm.SourceReferenceDocSubitem,
      _ProjCstLineItm.IsCommitment,

      //S/4HANA CE2302 - Maintenance Order enablement-Begin

      _ProjCstLineItm.OrderID,
      cast( 'X' as boolean )                                                   as MaintenanceOrderIsSelected,
      //S/4HANA CE2302 - Maintenance Order enablement-End

      _SemTagGL.SemanticTag,
      _AllCost.SemanticTagIsBudgetRelevant,
      _AllCost.SemanticTagIsBudgetRelevant                                     as ObjectIsBudgeted,
      _AllCost.ProjectIsBudgetRelevant,

      _FiscalPeriod

}

where
        _SemTagGL.GLAccountHierarchy          =  _ContArea.CtrlgStdFinStatementVersion
  and   _ContArea.CtrlgStdFinStatementVersion is not initial
  and(
        _SourceLedger.Ledger                  =  _ProjCstLineItm.SourceLedger
  )

  and   Project.Project != ''
  and(
        _SemTagGL.ValidityStartDate           <= $session.system_date
    and _SemTagGL.ValidityEndDate             >= $session.system_date
  )
  and   _SemTagGL.SemanticTag                 =  _AllCost.SemanticTag
  and   _AllCost.FinancialStatementVariant    =  _ContArea.CtrlgStdFinStatementVersion
  and   Project.ProjectProfileCode            <> 'YP01'
  and   _ProjectSummary.ProjectInternalID     =  _ProjCstLineItm.ProjectInternalID

  and   _ProjCstLineItm.IsCommitment          =  'X'
//S/4HANA CE2302 - Include only relevant project costs  -Begin

  and   (    _ProjCstLineItm.AccountAssignmentType = 'PR'
          or _ProjCstLineItm.AccountAssignmentType = 'KS' )
//S/4HANA CE2302 - Include only relevant project costs -End

  and   _ProjCstLineItm.JointVentureAccountingActivity != 'CI'
  
//S/4HANA CE2302 - Exclude Balance Carry Forward amount -Begin

  and   _ProjCstLineItm.FiscalPeriod > '000' 
//S/4HANA CE2302 - Exclude Balance Carry Forward amount -End

  
//S/4HANA CE2302 - Maintenance Order enablement-Begin

 union all
  select from        I_GLAccountLineItemRawData  as ProjCstLineItm
    inner join       I_MaintenanceOrder          as _Orders              on ProjCstLineItm.OrderID   = _Orders.MaintenanceOrder
    inner join       P_ProjectsWithProjCat6      as _Project             on _Orders.ProjectInternalID = _Project.ProjectInternalID               
    inner join       I_LedgerSourceLedger        as _SourceLedger        on ProjCstLineItm.SourceLedger = _SourceLedger.SourceLedger               
    inner join       I_ControllingArea           as _ContArea            on _ContArea.ControllingArea = ProjCstLineItm.ControllingArea               
    inner join       P_PROJECTSEMTAGACC          as _SemTagGL            on  ProjCstLineItm.ControllingArea = _SemTagGL.ControllingArea                
                                                                               and ProjCstLineItm.GLAccount       = _SemTagGL.HierarchyNodeVal               
                                                                               and ProjCstLineItm.ChartOfAccounts = _SemTagGL.HierarchyNodeClass               
    inner join       P_GetRlvtSemanticTagForProj as _AllCost             on _AllCost.ProjectInternalID = _Orders.ProjectInternalID                
                
    left outer to one join I_WBSElementBasicData       as _WBSElementBasicData on _Orders.WBSElementInternalID      = _WBSElementBasicData.WBSElementInternalID                
    left outer to one join I_EnterpriseProject         as _ProjectSummary      on _ProjectSummary.ProjectInternalID = _Orders.ProjectInternalID               
                
  association [0..1] to I_FiscalPeriodForVariant as _FiscalPeriod on  $projection.LedgerFiscalYear  = _FiscalPeriod.FiscalYear                
                                                                  and $projection.FiscalPeriod      = _FiscalPeriod.FiscalPeriod                
                                                                  and $projection.FiscalYearVariant = _FiscalPeriod.FiscalYearVariant               
                
{               
  key ProjCstLineItm.SourceLedger,               
  key _SourceLedger.Ledger,               
                
  key case                
      when ProjCstLineItm.CompanyCode is initial or ProjCstLineItm.CompanyCode is null                
      then _WBSElementBasicData.CompanyCode               
      else ProjCstLineItm.CompanyCode end                                     as CompanyCode,                
  key ProjCstLineItm.FiscalYear,               
  key ProjCstLineItm.AccountingDocument,               
                
  key cast( '00000000000000000000000'  as fis_fp_request_tsn preserving type ) as FinancialPlanningReqTransSqnc,                
                
  key cast( '000000' as fis_fp_data_packet preserving type )                   as FinancialPlanningDataPacket,                
                
  key cast( LedgerGLLineItem as fis_act_pln_docln)                             as ActualPlanJournalEntryItem,               
                
      ProjCstLineItm.LedgerFiscalYear,               
      ProjCstLineItm.LedgerGLLineItem,               
      cast( 0 as fis_fp_entry_item )                                           as FinancialPlanningEntryItem,               
                
      ProjCstLineItm.GLAccount,                
      ProjCstLineItm.ChartOfAccounts,                
      ProjCstLineItm.AccountingDocCreatedByUser,               
      _SemTagGL.GLAccountHierarchy,               
      ProjCstLineItm.BusinessArea,               
      ProjCstLineItm.CostCenter,               
      cast('    ' as budget_process preserving type )                          as BudgetProcess,                
                
      ProjCstLineItm.PartnerOrder,               
      ProjCstLineItm.PartnerOrderCategory,               
                
      // S/4 Hana CE2302- Field Deprecation - Begin               

      // ProjCstLineItm.PartnerWBSElement,               

      ProjCstLineItm._PartnerWBSElementBasicData.WBSElementExternalID         as PartnerWBSElement,                
                
      // ProjCstLineItm.PartnerProject,                

      ProjCstLineItm._PartnerProjectBasicData.ProjectExternalID               as PartnerProject,               
      // S/4 Hana CE2302- Field Deprecation - End               

                
      ProjCstLineItm.BusinessTransactionType,                
      ProjCstLineItm.DebitCreditCode,                
      ProjCstLineItm.ControllingDebitCreditCode,               
                
      case                
      when ProjCstLineItm.ProfitCenter is initial or ProjCstLineItm.ProfitCenter is null                
      then _WBSElementBasicData.ProfitCenter                
      else ProjCstLineItm.ProfitCenter end                                    as ProfitCenter,               
                
      _WBSElementBasicData.ProfitCenter                                        as WBSElementProfitCenter,               
      _WBSElementBasicData.WBSDescription,                
      
//S/4HANA CE2302 - Maintenance Order enablement-Begin

      ProjCstLineItm.OrderID                                                  as ProjectObjectNode,
//S/4HANA CE2302 - Maintenance Order enablement-End


      //   S/4 HANA CE2208: mapping change for coding mask- start               

      //ProjCstLineItm.WBSElement,               

      _WBSElementBasicData.WBSElementExternalID                                as WBSElement,               
      //   S/4 HANA CE2208:  mapping change for coding mask - end               

                
      _WBSElementBasicData.ResponsibleCostCenter,               
      //  S/4HANA CE2202: Project Type normalization - Begin                

      _WBSElementBasicData.ProjectType,               
      //   S/4HANA CE2202: Project Type normalization - End               

      _Orders.WBSElementInternalID,                                            //CE2302 Maintenace order - WBSElement Internal ID

                
      //   S/4 HANA CE2208:  mapping change for coding mask - start               

      //_Project.ControllingArea,                

      ProjCstLineItm.ControllingArea,                
                
      //ProjCstLineItm.Project,                

      _Project.ProjectExternalID                                                as Project,                
                
      //ProjCstLineItm.ProjectInternalID,                

      _Project.ProjectInternalID,                
      //   S/4 HANA CE2208:  mapping change for coding mask - end               

                
      _ProjectSummary.Project                                                  as ProjectExternalID,                
                
      _Project.ProjectDescription,               
      _Project.ProjectProfileCode,               
      _Project.ProjectObject,                
      _Project.AvailabilityControlProfile,               
      _Project.AvailabilityControlIsActive,                
      _Project._AvailabilityCtrlProfile._SemanticTag.SemanticTag                as ParentSemanticTag,                
      _Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,               
      _Project._AvailabilityCtrlProfile.BudgetCurrencyRole,                
      _Project.ProjectCurrency,                
      _ProjectSummary.ProjectSummaryTaskUUID,               
      '6'                                                                      as ProjectCategory,                
      _ProjectSummary.ProjectUUID,                
      _ProjectSummary.ProcessingStatus,               
      _ProjectSummary.ProjectSummaryTaskUUID                                   as TaskUUID,               
      ProjCstLineItm.CreationDate,               
      ProjCstLineItm.FunctionalArea,               
      ProjCstLineItm.CostCtrActivityType,                
                
      @Semantics.currencyCode: true
//S/4HANA CE2302 - Maintenance Order enablement-Start

      //Maintenace order doesn't have object currency               

       _Project.ProjectCurrency                                                 as  ControllingObjectCurrency,
//S/4HANA CE2302 - Maintenance Order enablement-End                

                
      @DefaultAggregation: #SUM               
      @Semantics.amount.currencyCode: 'ControllingObjectCurrency'
      ProjCstLineItm.AmountInObjectCurrency,
                
      @Semantics.currencyCode:true                
      ProjCstLineItm.TransactionCurrency,                
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }                
      ProjCstLineItm.AmountInTransactionCurrency,                
                
      @Semantics.currencyCode:true                
      ProjCstLineItm.CompanyCodeCurrency,                
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }                
      ProjCstLineItm.AmountInCompanyCodeCurrency,                
                
      @Semantics.currencyCode:true                
      ProjCstLineItm.GlobalCurrency,               
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }               
      ProjCstLineItm.AmountInGlobalCurrency,               
                
      @Semantics.currencyCode:true                
      ProjCstLineItm.FunctionalCurrency,               
                
      @Semantics: { amount : {currencyCode: 'FunctionalCurrency'} }               
      @DefaultAggregation: #SUM               
      ProjCstLineItm.AmountInFunctionalCurrency,               
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }               
      ProjCstLineItm.AmountInGlobalCurrency                                   as CmtmtCostInGlobalCurrency,                
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
      ProjCstLineItm.AmountInObjectCurrency                                   as CmtmtCostInProjCrcy,
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'FunctionalCurrency'} }               
      ProjCstLineItm.AmountInFunctionalCurrency                               as CmtmtAmountInFunctionalCrcy,                
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }                
      ProjCstLineItm.AmountInCompanyCodeCurrency                              as CmtmtCostInCCCrcy,                
                
      @DefaultAggregation: #SUM               
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }                
      ProjCstLineItm.AmountInTransactionCurrency                              as CmtmtCostInTransacCrcy,               
                
                
      cast( cast( 'CMTMT' as abap.char( 10  )) as fcom_category)               as PlanningCategory,               
                
                
      ProjCstLineItm.PostingDate,                
      ProjCstLineItm.DocumentDate,               
      ProjCstLineItm.FiscalPeriod,               
      ProjCstLineItm.FiscalYearPeriod,               
      ProjCstLineItm.FiscalYearVariant,                
                
      case
        //S/4HANA CE2308 - Performence tuning Begin

        when ( ProjCstLineItm.ControllingDebitCreditCode <> 'A' and ProjCstLineItm.ControllingDebitCreditCode <> 'S' )
          or ( ProjCstLineItm.ControllingDebitCreditCode = 'S' and (  ProjCstLineItm.BusinessTransactionType <> 'KOAO' and ProjCstLineItm.BusinessTransactionType <> 'KOAE' ) )
          or ( ProjCstLineItm.ControllingDebitCreditCode = 'S' and ( ProjCstLineItm.BusinessTransactionType = 'KOAO' or ProjCstLineItm.BusinessTransactionType = 'KOAE') 
              and ( ProjCstLineItm.PartnerProject <> ProjCstLineItm.Project and ( ProjCstLineItm.PartnerProject <> ' '  or ProjCstLineItm.PartnerOrder <> ' ' or ProjCstLineItm.PartnerSalesDocument <> ' ' or
           ProjCstLineItm.PartnerProjectNetwork <> ' '  or ProjCstLineItm.PartnerProjectNetworkActivity <> ' ' or
           ProjCstLineItm.PartnerBusinessProcess <> ' ' or ProjCstLineItm.PartnerCostObject <> ' ') )
             )
         then 'X' 
        //S/4HANA CE2308 - Performence tuning End

      end                                                                      as IsSettled,                
                
      ProjCstLineItm.SourceReferenceDocumentType,                
      ProjCstLineItm.SourceLogicalSystem,                
      ProjCstLineItm.SourceReferenceDocumentCntxt,               
      ProjCstLineItm.SourceReferenceDocument,                
      ProjCstLineItm.SourceReferenceDocumentItem,                
      ProjCstLineItm.SourceReferenceDocSubitem,                
      ProjCstLineItm.IsCommitment,               
                
      //S/4HANA CE2302 - Maintenance Order enablement-Begin

      ProjCstLineItm.OrderID,
      cast( ' ' as boolean )                                                   as MaintenanceOrderIsSelected,
      //S/4HANA CE2302 - Maintenance Order enablement-End                          

                
      _SemTagGL.SemanticTag,                
      _AllCost.SemanticTagIsBudgetRelevant,               
      _AllCost.SemanticTagIsBudgetRelevant                                     as ObjectIsBudgeted,               
      _AllCost.ProjectIsBudgetRelevant,               
                
      _FiscalPeriod               
                
}               
                
where               
        _SemTagGL.GLAccountHierarchy          =  _ContArea.CtrlgStdFinStatementVersion                
  and   _ContArea.CtrlgStdFinStatementVersion is not initial                
  and(                
        _SourceLedger.Ledger                  =  ProjCstLineItm.SourceLedger               
  )               
                
  and   _Project.Project != ''               
  and(                
        _SemTagGL.ValidityStartDate           <= $session.system_date               
    and _SemTagGL.ValidityEndDate             >= $session.system_date               
  )               
  and   _SemTagGL.SemanticTag                 =  _AllCost.SemanticTag               
  and   _AllCost.FinancialStatementVariant    =  _ContArea.CtrlgStdFinStatementVersion                
  and   _Project.ProjectProfileCode            <> 'YP01'               
  and   _ProjectSummary.ProjectInternalID     =  _Orders.ProjectInternalID                
                
  and   ProjCstLineItm.IsCommitment          =  'X'                
  and   ProjCstLineItm.AccountAssignmentType = 'OR'          //S/4HANA CE2302 - Maintenance Order enablement

  and   ProjCstLineItm.JointVentureAccountingActivity != 'CI'                
  
//S/4HANA CE2302 - Maintenance Order enablement-End


//S/4HANA CE2302 - Exclude Balance Carry Forward amount -Begin

  and   ProjCstLineItm.FiscalPeriod > '000' 
//S/4HANA CE2302 - Exclude Balance Carry Forward amount -End

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_AVAILABILITYCTRLPROFILE",
"I_AVAILYCTRLPROFILESEMANTICTAG",
"I_CONTROLLINGAREA",
"I_ENTERPRISEPROJECT",
"I_GLACCOUNTLINEITEMRAWDATA",
"I_LEDGERSOURCELEDGER",
"I_MAINTENANCEORDER",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA",
"P_GETRLVTSEMANTICTAGFORPROJ",
"P_PROJECTSEMTAGACC",
"P_PROJECTSWITHPROJCAT6"
],
"ASSOCIATED":
[
"I_FISCALPERIODFORVARIANT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/