I_MyProjectBillingElements

DDL: I_MYPROJECTBILLINGELEMENTS SQL: IMYPRJBILLGELMNT Type: view COMPOSITE

Project Billing Elements by UserID

I_MyProjectBillingElements is a Composite CDS View that provides data about "Project Billing Elements by UserID" in SAP S/4HANA. It reads from 4 data sources (I_SDDocumentCompletePartners, I_SDDocumentCompletePartners, I_SalesOrderItem, I_SalesOrderItem) and exposes 4 fields with key fields BillingWBSElementInternalID, BillingPlan, BillingPlan, UserID.

Data Sources (4)

SourceAliasJoin Type
I_SDDocumentCompletePartners Partners inner
I_SDDocumentCompletePartners Partners inner
I_SalesOrderItem SalesOrderItem inner
I_SalesOrderItem SalesOrderItem inner

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName IMYPRJBILLGELMNT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
EndUserText.label Project Billing Elements by UserID view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view

Fields (4)

KeyFieldSource TableSource FieldDescription
KEY BillingWBSElementInternalID I_SalesOrderItem WBSElementInternalID
KEY BillingPlan I_SalesOrderItem BillingPlan
KEY BillingPlan I_SalesOrderItem BillingPlan
KEY UserID WorkForcePerson UserID
@AbapCatalog.sqlViewName: 'IMYPRJBILLGELMNT'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Project Billing Elements by UserID'
@ObjectModel.usageType: {
    sizeCategory: #XL,
    dataClass: #MIXED,
    serviceQuality: #C
}
define view I_MyProjectBillingElements
  as select distinct from I_WorkForcePersonMappings    as WorkForcePerson
    inner join            I_SDDocumentCompletePartners as Partners       on WorkForcePerson.WorkforceAssignment = Partners.Personnel
    inner join            I_SalesOrderItem             as SalesOrderItem on Partners.SDDocument = SalesOrderItem.SalesOrder
{
  key SalesOrderItem.WBSElementInternalID as BillingWBSElementInternalID,
  key SalesOrderItem.BillingPlan,
  key WorkForcePerson.UserID
}
where
      Partners.Personnel                                  is not initial
  and Partners.SDDocumentItem                             is initial
  and WorkForcePerson.UserID = $session.user


union


select distinct from I_WorkForcePersonMappings    as WorkForcePerson
  inner join         I_SDDocumentCompletePartners as Partners       on  WorkForcePerson.WorkforceAssignment = Partners.Personnel
  inner join         I_SalesOrderItem             as SalesOrderItem on  Partners.SDDocument     = SalesOrderItem.SalesOrder
                                                                    and Partners.SDDocumentItem = SalesOrderItem.SalesOrderItem
{
  key SalesOrderItem.WBSElementInternalID as BillingWBSElementInternalID,
  key SalesOrderItem.BillingPlan,
  key WorkForcePerson.UserID
}
where
      Partners.Personnel                                  is not initial
  and Partners.SDDocumentItem                             is not initial
  and WorkForcePerson.UserID = $session.user

//define view I_MyProjectBillingElements

//  as select distinct from I_SalesOrderItem             as SalesOrderItem

//    inner join            I_SDDocumentCompletePartners as Partners      on SalesOrderItem.SalesOrder = Partners.SDDocument

//    inner join            I_PersonWorkAgreement_1      as WorkAgreement on Partners.Personnel = WorkAgreement.PersonWorkAgreement

//{

//  key cast ( SalesOrderItem.WBSElement as ps_s4_pspnr preserving type ) as BillingWBSElementInternalID,

//  key SalesOrderItem.SalesOrder,

//  key SalesOrderItem.SalesOrderItem,

//  key WorkAgreement._WorkforcePerson._BusinessUser.UserID

//}

//where

//      Partners.Personnel                                  is not initial

//  and Partners.SDDocumentItem                             is initial

//  and WorkAgreement._WorkforcePerson._BusinessUser.UserID = $session.user

//

//

//union

//

//

//select distinct from I_SalesOrderItem             as SalesOrderItem

//  inner join         I_SDDocumentCompletePartners as Partners      on  SalesOrderItem.SalesOrder     = Partners.SDDocument

//                                                                   and SalesOrderItem.SalesOrderItem = Partners.SDDocumentItem

//  inner join         I_PersonWorkAgreement_1      as WorkAgreement on Partners.Personnel = WorkAgreement.PersonWorkAgreement

//{

//  key cast ( SalesOrderItem.WBSElement as ps_s4_pspnr preserving type ) as BillingWBSElementInternalID,

//  key SalesOrderItem.SalesOrder,

//  key SalesOrderItem.SalesOrderItem,

//  key WorkAgreement._WorkforcePerson._BusinessUser.UserID

//}

//where

//      Partners.Personnel                                  is not initial

//  and Partners.SDDocumentItem                             is not initial

//  and WorkAgreement._WorkforcePerson._BusinessUser.UserID = $session.user



//  as select distinct from I_SalesOrderItem             as SalesOrderItem

//    inner join            I_SDDocumentCompletePartners as Partners      on SalesOrderItem.SalesOrder = Partners.SDDocument

//                                                                        and(

//                                                                          Partners.SDDocumentItem    = SalesOrderItem.SalesOrderItem

//                                                                          or Partners.SDDocumentItem is initial

//                                                                        )

//    inner join            I_PersonWorkAgreement_1      as WorkAgreement on Partners.Personnel = WorkAgreement.PersonWorkAgreement

//{

//  key cast ( SalesOrderItem.WBSElement as ps_s4_pspnr preserving type ) as BillingWBSElementInternalID,

//  key WorkAgreement._WorkforcePerson._BusinessUser.UserID

//}

//where

//      Partners.Personnel                                  is not initial

//  and WorkAgreement._WorkforcePerson._BusinessUser.UserID = $session.user



//as select distinct from I_SDDocumentCompletePartners as SDDocumentPartner

//inner join I_SalesOrderItem as SalesOrderItem on SDDocumentPartner.SDDocument = SalesOrderItem.SalesOrder

//inner join I_PersonWorkAgreement_1 as PersonWorkAgreement_1 on SDDocumentPartner.Personnel = PersonWorkAgreement_1.PersonWorkAgreement

//--inner join I_WorkforcePerson as WorkforcePerson on PersonWorkAgreement_1.Person = WorkforcePerson.Person

//--inner join I_BusinessUser as BusinessUser on WorkforcePerson.BusinessPartnerUUID = BusinessUser.BusinessPartnerUUID

//{

//  key cast ( SalesOrderItem.WBSElement as ps_s4_pspnr preserving type ) as BillingWBSElementInternalID,

//  --key BusinessUser.UserID as UserID,

//  key PersonWorkAgreement_1._WorkforcePerson._BusinessUser.UserID,

//  SalesOrderItem._WBSElementBasicData

//}

//where SDDocumentPartner.Personnel is not initial

//  and SDDocumentPartner.SDDocumentItem is initial

//  --and BusinessUser.UserID = $session.user

//

//union

//

//select distinct from I_SDDocumentCompletePartners as SDDocumentPartner

//inner join I_SalesOrderItem as SalesOrderItem on SDDocumentPartner.SDDocument = SalesOrderItem.SalesOrder

//                                             and SDDocumentPartner.SDDocumentItem = SalesOrderItem.SalesOrderItem

//inner join I_PersonWorkAgreement_1 as PersonWorkAgreement_1 on SDDocumentPartner.Personnel = PersonWorkAgreement_1.PersonWorkAgreement

//--inner join I_WorkforcePerson as WorkforcePerson on PersonWorkAgreement_1.Person = WorkforcePerson.Person

//--inner join I_BusinessUser as BusinessUser on WorkforcePerson.BusinessPartnerUUID = BusinessUser.BusinessPartnerUUID

//{

//  key cast ( SalesOrderItem.WBSElement as ps_s4_pspnr preserving type ) as BillingWBSElementInternalID,

//--  key BusinessUser.UserID as UserID,

//  key PersonWorkAgreement_1._WorkforcePerson._BusinessUser.UserID,

//  SalesOrderItem._WBSElementBasicData

//}

//where SDDocumentPartner.Personnel is not initial

//  and SDDocumentPartner.SDDocumentItem is not initial

//  --and BusinessUser.UserID = $session.user

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SALESORDERITEM",
"I_SDDOCUMENTCOMPLETEPARTNERS",
"I_WORKFORCEPERSONMAPPINGS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/