I_EngmntProjectSupplyData

DDL: I_ENGMNTPROJECTSUPPLYDATA SQL: IENGPRJSPLYDATA Type: view BASIC

Engagement Project Supply Data

I_EngmntProjectSupplyData is a Basic CDS View that provides data about "Engagement Project Supply Data" in SAP S/4HANA. It reads from 3 data sources (/cpd/plandata, I_EngagementProjFinancialPlan, I_WorkPackage) and exposes 47 fields with key fields EngagementProjFinPlanUUID, WorkPackageUUID, EngmtProjFinPlanVersion, EngagementProjectResourceType, WorkPackage. It has 15 associations to related views.

Data Sources (3)

SourceAliasJoin Type
/cpd/plandata EngagementProjectSupplyData from
I_EngagementProjFinancialPlan I_EngagementProjFinancialPlan inner
I_WorkPackage I_WorkPackage inner

Associations (15)

CardinalityTargetAliasCondition
[0..1] I_EngagementProject _EngagementProject $projection.EngagementProjectUUID = _EngagementProject.EngagementProjectUUID
[0..1] I_EngagementProjFinancialPlan _EngagementProjFinancialPlan $projection.EngagementProjFinPlanUUID = _EngagementProjFinancialPlan.EngagementProjFinPlanUUID
[1..1] I_WorkPackage _WorkPackage $projection.WorkPackage = _WorkPackage.WorkPackage
[0..1] I_BillingControlCategory _BillingControlCategory $projection.BillingControlCategory = _BillingControlCategory.BillingControlCategory
[0..1] I_EngmtProjFinPlanVersion _EngmtProjFinPlanVersion $projection.EngagementProjFinPlanUUID = _EngmtProjFinPlanVersion.EngagementProjFinPlanUUID and $projection.EngmtProjFinPlanVersion = _EngmtProjFinPlanVersion.EngmtProjFinPlanVersion
[0..1] I_EngmntProjResourceType _EngmntProjResourceType $projection.EngagementProjectResourceType = _EngmntProjResourceType.EngagementProjectResourceType
[0..*] I_EngagementProjectResource _EngagementProjectResource $projection.EngagementProjectResource = _EngagementProjectResource.EngagementProjectResource
[0..1] I_WorkPackageWorkItem _WorkItem $projection.WorkItem = _WorkItem.WorkItem and $projection.WorkPackage = _WorkItem.WorkPackage
[0..1] I_Currency _Currency $projection.Currency = _Currency.Currency
[0..1] I_UnitOfMeasure _UnitOfMeasure $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure
[0..*] I_PersnWrkAgreementDet _PersonWorkAgreementDet $projection.EmploymentInternalID = _PersonWorkAgreementDet.PersonWorkAgreement
[0..1] I_Employment _Employment $projection.EmploymentInternalID = _Employment.EmploymentInternalID
[0..1] I_PersonWorkAgreement_1 _PersonWorkAgreement_1 $projection.EmploymentInternalID = _PersonWorkAgreement_1.PersonWorkAgreement
[0..1] I_EngagementProjectSrvcOrg _EngagementProjectServiceOrg $projection.EngagementProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg
[0..1] I_PlanSkillTags _PlanSkillTags $projection.ResourceDemandUUID = _PlanSkillTags.ResourceDemandUUID

Annotations (12)

NameValueLevelField
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AbapCatalog.preserveKey true view
AbapCatalog.sqlViewName IENGPRJSPLYDATA view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
VDM.viewType #BASIC view
EndUserText.label Engagement Project Supply Data view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (47)

KeyFieldSource TableSource FieldDescription
KEY EngagementProjFinPlanUUID
KEY WorkPackageUUID
KEY EngmtProjFinPlanVersion /cpd/plandata version
KEY EngagementProjectResourceType /cpd/plandata res_type
KEY WorkPackage I_WorkPackage WorkPackage
KEY FiscalPeriod /cpd/plandata period
KEY FiscalYear /cpd/plandata fc_year
KEY EngagementProjectResource /cpd/plandata resource_id
KEY EmploymentInternalID /cpd/plandata employee
KEY EngmtProjEmployeeIsStaffed /cpd/plandata confirmed
KEY WorkItem /cpd/plandata workitem_id
KEY ResourceDemandUUID /cpd/plandata demand_key
EngagementProjectUUID
BillingControlCategory /cpd/plandata billgctrlcat
EngagementProjectServiceOrg /cpd/plandata delvry_serv_org
Currency /cpd/plandata currency
EngmntProjPlanLineType /cpd/plandata line_type
ResourceDemand /cpd/plandata resource_demand_id
ResourceSupply /cpd/plandata resource_supply_id
SourceOfSupply /cpd/plandata source_of_supply
SupplySource /cpd/plandata source_of_supply
PlndCostAmt /cpd/plandata cost
UnitOfMeasure /cpd/plandata uom
PlndEffortQty /cpd/plandata effort
PlndRevnAmt /cpd/plandata revenue
ActualPlanDeviationCost /cpd/plandata cost_deviation
ActualPlanDeviationEffort /cpd/plandata effort_deviation
ActualPlanDeviationRevenue /cpd/plandata revenue_deviation
SalesOrder I_WorkPackage SalesOrder
SalesOrderItem
WorkPackageStartDate I_WorkPackage WorkPackageStartDate
WorkPackageEndDate I_WorkPackage WorkPackageEndDate
_EngagementProject _EngagementProject
_EngagementProjFinancialPlan _EngagementProjFinancialPlan
_EngmtProjFinPlanVersion _EngmtProjFinPlanVersion
_WorkPackage _WorkPackage
_EngmntProjResourceType _EngmntProjResourceType
_WorkItem _WorkItem
_EngagementProjectResource _EngagementProjectResource
_PersonWorkAgreementDet _PersonWorkAgreementDet
_Currency _Currency
_EngagementProjectServiceOrg _EngagementProjectServiceOrg
_BillingControlCategory _BillingControlCategory
_UnitOfMeasure _UnitOfMeasure
_PlanSkillTags _PlanSkillTags
_Employment _Employment
_PersonWorkAgreement_1 _PersonWorkAgreement_1
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@AbapCatalog.preserveKey: true
@AbapCatalog.sqlViewName: 'IENGPRJSPLYDATA'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #BASIC
@EndUserText.label: 'Engagement Project Supply Data'
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AccessControl.personalData.blocking: #NOT_REQUIRED
define view I_EngmntProjectSupplyData
  as select from /cpd/plandata as EngagementProjectSupplyData
    inner join   I_WorkPackage                 on I_WorkPackage.WorkPackageUUID = EngagementProjectSupplyData.wp_key
    inner join   I_EngagementProjFinancialPlan on I_EngagementProjFinancialPlan.EngagementProjFinPlanUUID = EngagementProjectSupplyData.fp_key

  association [0..1] to I_EngagementProject           as _EngagementProject           on  $projection.EngagementProjectUUID = _EngagementProject.EngagementProjectUUID

  association [0..1] to I_EngagementProjFinancialPlan as _EngagementProjFinancialPlan on  $projection.EngagementProjFinPlanUUID = _EngagementProjFinancialPlan.EngagementProjFinPlanUUID

  association [1..1] to I_WorkPackage                 as _WorkPackage                 on  $projection.WorkPackage = _WorkPackage.WorkPackage



  association [0..1] to I_BillingControlCategory      as _BillingControlCategory      on  $projection.BillingControlCategory = _BillingControlCategory.BillingControlCategory


  association [0..1] to I_EngmtProjFinPlanVersion     as _EngmtProjFinPlanVersion     on  $projection.EngagementProjFinPlanUUID = _EngmtProjFinPlanVersion.EngagementProjFinPlanUUID
                                                                                      and $projection.EngmtProjFinPlanVersion   = _EngmtProjFinPlanVersion.EngmtProjFinPlanVersion


  association [0..1] to I_EngmntProjResourceType      as _EngmntProjResourceType      on  $projection.EngagementProjectResourceType = _EngmntProjResourceType.EngagementProjectResourceType

  association [0..*] to I_EngagementProjectResource   as _EngagementProjectResource   on  $projection.EngagementProjectResource = _EngagementProjectResource.EngagementProjectResource
                                                                                      
  association [0..1] to I_WorkPackageWorkItem         as _WorkItem                    on  $projection.WorkItem    = _WorkItem.WorkItem
                                                                                      and $projection.WorkPackage = _WorkItem.WorkPackage

  association [0..1] to I_Currency                    as _Currency                    on  $projection.Currency = _Currency.Currency

  association [0..1] to I_UnitOfMeasure               as _UnitOfMeasure               on  $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure

  association [0..*] to I_PersnWrkAgreementDet        as _PersonWorkAgreementDet      on  $projection.EmploymentInternalID = _PersonWorkAgreementDet.PersonWorkAgreement
  //and _PersonWorkAgreementDet.StartDate <= $projection.WorkPackageEndDate

  // and _PersonWorkAgreementDet.EndDate   >= $projection.WorkPackageStartDate


  association [0..1] to I_Employment                  as _Employment                  on  $projection.EmploymentInternalID = _Employment.EmploymentInternalID
  association [0..1] to I_PersonWorkAgreement_1       as _PersonWorkAgreement_1       on  $projection.EmploymentInternalID = _PersonWorkAgreement_1.PersonWorkAgreement
  // and _PersonWorkAgreement_1.StartDate            <= $projection.WorkPackageEndDate

  // and _PersonWorkAgreement_1.EndDate              >= $projection.WorkPackageStartDate


  association [0..1] to I_EngagementProjectSrvcOrg    as _EngagementProjectServiceOrg on  $projection.EngagementProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg

  association [0..1] to I_PlanSkillTags               as _PlanSkillTags               on  $projection.ResourceDemandUUID = _PlanSkillTags.ResourceDemandUUID
{

  key cast(EngagementProjectSupplyData.fp_key  as /cpd/eng_pfp_db_key preserving type )                  as EngagementProjFinPlanUUID,

  key cast(EngagementProjectSupplyData.wp_key as /cpd/wp_db_key preserving type )                        as WorkPackageUUID,

  key EngagementProjectSupplyData.version                                                                as EngmtProjFinPlanVersion,

      @ObjectModel.foreignKey.association: '_EngmntProjResourceType'
  key EngagementProjectSupplyData.res_type                                                               as EngagementProjectResourceType,


      @ObjectModel.foreignKey.association:'_WorkPackage'
  key I_WorkPackage.WorkPackage                                                                          as WorkPackage,

      @Semantics.fiscal.period: true
  key EngagementProjectSupplyData.period                                                                 as FiscalPeriod,

      @Semantics.fiscal.year: true
  key EngagementProjectSupplyData.fc_year                                                                as FiscalYear,

      @ObjectModel.foreignKey.association: '_EngagementProjectResource'
  key EngagementProjectSupplyData.resource_id                                                            as EngagementProjectResource,

      @ObjectModel.foreignKey.association: '_PersonWorkAgreement_1'
  key EngagementProjectSupplyData.employee                                                               as EmploymentInternalID,
  key EngagementProjectSupplyData.confirmed                                                              as EngmtProjEmployeeIsStaffed,
      @ObjectModel.foreignKey.association: '_WorkItem'
  key EngagementProjectSupplyData.workitem_id                                                            as WorkItem,

  key EngagementProjectSupplyData.demand_key                                                             as ResourceDemandUUID,


      cast(I_EngagementProjFinancialPlan.EngagementProjectUUID as /cpd/eng_db_key preserving type )      as EngagementProjectUUID,


      @ObjectModel.foreignKey: {
             association: '_BillingControlCategory'
           }

      EngagementProjectSupplyData.billgctrlcat                                                           as BillingControlCategory,

      @ObjectModel.foreignKey.association:'_EngagementProjectServiceOrg'
      EngagementProjectSupplyData.delvry_serv_org                                                        as EngagementProjectServiceOrg,

      @Semantics.currencyCode: true
      EngagementProjectSupplyData.currency                                                               as Currency,

      EngagementProjectSupplyData.line_type                                                              as EngmntProjPlanLineType,
      
      EngagementProjectSupplyData.resource_demand_id                                                     as ResourceDemand,
      
      EngagementProjectSupplyData.resource_supply_id                                                     as ResourceSupply,
      
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'SupplySource'
      EngagementProjectSupplyData.source_of_supply                                                       as SourceOfSupply,
      EngagementProjectSupplyData.source_of_supply                                                       as SupplySource,
      
      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.cost                                                                   as PlndCostAmt,

      @Semantics.unitOfMeasure: true
      EngagementProjectSupplyData.uom                                                                    as UnitOfMeasure,

      @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.effort                                                                 as PlndEffortQty,

      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.revenue                                                                as PlndRevnAmt,
      
      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.cost_deviation                                                         as ActualPlanDeviationCost,

      @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.effort_deviation                                                       as ActualPlanDeviationEffort,
      
      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #SUM
      EngagementProjectSupplyData.revenue_deviation                                                      as ActualPlanDeviationRevenue,

      I_WorkPackage.SalesOrder                                                                           as SalesOrder,

      cast(I_WorkPackage.SalesOrderItem as /cpd/so_item_id preserving type )                             as SalesOrderItem,

      I_WorkPackage.WorkPackageStartDate                                                                 as WorkPackageStartDate,

      I_WorkPackage.WorkPackageEndDate                                                                   as WorkPackageEndDate,

      _EngagementProject,
      _EngagementProjFinancialPlan,
      _EngmtProjFinPlanVersion,
      _WorkPackage,
      _EngmntProjResourceType,
      _WorkItem,
      _EngagementProjectResource,
      _PersonWorkAgreementDet,
      _Currency,
      _EngagementProjectServiceOrg,
      _BillingControlCategory,
      _UnitOfMeasure,
      _PlanSkillTags,
       @VDM.lifecycle: {
         successor: '_PersonWorkAgreement_1',
         status: #DEPRECATED
       }
      _Employment,
      _PersonWorkAgreement_1
}

where
      EngagementProjectSupplyData.line_type =  'S'
  and EngagementProjectSupplyData.version   =  '1'
  and EngagementProjectSupplyData.is_draft  <> 'X'

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENGAGEMENTPROJFINANCIALPLAN",
"I_WORKPACKAGE",
"/CPD/PLANDATA"
],
"ASSOCIATED":
[
"I_BILLINGCONTROLCATEGORY",
"I_CURRENCY",
"I_EMPLOYMENT",
"I_ENGAGEMENTPROJECT",
"I_ENGAGEMENTPROJECTRESOURCE",
"I_ENGAGEMENTPROJECTSRVCORG",
"I_ENGAGEMENTPROJFINANCIALPLAN",
"I_ENGMNTPROJRESOURCETYPE",
"I_ENGMTPROJFINPLANVERSION",
"I_PERSNWRKAGREEMENTDET",
"I_PERSONWORKAGREEMENT_1",
"I_PLANSKILLTAGS",
"I_UNITOFMEASURE",
"I_WORKPACKAGE",
"I_WORKPACKAGEWORKITEM"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/