P_ProjScheduleWBSElementAttrib
P_ProjScheduleWBSElementAttrib is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (I_WBSElementByInternalKey) and exposes 57 fields with key field WBSElementInternalID. It has 3 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_WBSElementByInternalKey | ProjectWBSElement | from |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_StsObjConcatActiveStsILL | _Status | _Status.StatusObject = $projection.WBSElementObject |
| [0..1] | I_ProjectApplicant | _ProjectApplicant | $projection.ApplicantCode = _ProjectApplicant.ApplicantCode |
| [1..1] | E_WBSElement | _Extension | $projection.WBSElement = _Extension.WBSElement |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PWBSELEMATTR | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (57)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | WBSElementInternalID | I_WBSElementByInternalKey | WBSElementInternalID | |
| WBSElement | ||||
| WBSElementExternalID | I_WBSElementByInternalKey | WBSElementExternalID | ||
| WBSElementObject | I_WBSElementByInternalKey | WBSElementObject | ||
| ObjectType | ||||
| ProjectInternalID | I_WBSElementByInternalKey | ProjectInternalID | ||
| WBSDescriptionendasWBSDescription | ||||
| BasicStartDate | I_WBSElementByInternalKey | BasicStartDate | ||
| BasicEndDate | I_WBSElementByInternalKey | BasicEndDate | ||
| SchedldBasicEarliestStartDate | I_WBSElementByInternalKey | SchedldBasicEarliestStartDate | ||
| SchedldBasicEarliestEndDate | I_WBSElementByInternalKey | SchedldBasicEarliestEndDate | ||
| SchedldBasicLatestStartDate | I_WBSElementByInternalKey | SchedldBasicLatestStartDate | ||
| ScheduledBasicLatestEndDate | I_WBSElementByInternalKey | ScheduledBasicLatestEndDate | ||
| SchedldFcstdEarliestStartDate | I_WBSElementByInternalKey | SchedldFcstdEarliestStartDate | ||
| SchedldFcstdEarliestEndDate | I_WBSElementByInternalKey | SchedldFcstdEarliestEndDate | ||
| LatestSchedldFcstdStartDate | I_WBSElementByInternalKey | LatestSchedldFcstdStartDate | ||
| LatestSchedldFcstdEndDate | I_WBSElementByInternalKey | LatestSchedldFcstdEndDate | ||
| ActualStartDate | I_WBSElementByInternalKey | ActualStartDate | ||
| ActualEndDate | I_WBSElementByInternalKey | ActualEndDate | ||
| BasicDuration | I_WBSElementByInternalKey | BasicDuration | ||
| BasicDurationUnit | I_WBSElementByInternalKey | BasicDurationUnit | ||
| ActualDurationUnit | I_WBSElementByInternalKey | ActualDurationUnit | ||
| ActualDuration | I_WBSElementByInternalKey | ActualDuration | ||
| FreeDefinedAttribute01 | I_WBSElementByInternalKey | FreeDefinedAttribute01 | ||
| FreeDefinedAttribute02 | I_WBSElementByInternalKey | FreeDefinedAttribute02 | ||
| FreeDefinedAttribute03 | I_WBSElementByInternalKey | FreeDefinedAttribute03 | ||
| FreeDefinedAttribute04 | I_WBSElementByInternalKey | FreeDefinedAttribute04 | ||
| FreeDefinedQuantity1Unit | I_WBSElementByInternalKey | FreeDefinedQuantity1Unit | ||
| FreeDefinedQuantity1 | I_WBSElementByInternalKey | FreeDefinedQuantity1 | ||
| FreeDefinedQuantity2Unit | I_WBSElementByInternalKey | FreeDefinedQuantity2Unit | ||
| FreeDefinedQuantity2 | I_WBSElementByInternalKey | FreeDefinedQuantity2 | ||
| FreeDefinedAmount1Currency | I_WBSElementByInternalKey | FreeDefinedAmount1Currency | ||
| FreeDefinedAmount1 | I_WBSElementByInternalKey | FreeDefinedAmount1 | ||
| FreeDefinedAmount2Currency | I_WBSElementByInternalKey | FreeDefinedAmount2Currency | ||
| FreeDefinedAmount2 | I_WBSElementByInternalKey | FreeDefinedAmount2 | ||
| FreeDefinedDate1 | I_WBSElementByInternalKey | FreeDefinedDate1 | ||
| FreeDefinedDate2 | I_WBSElementByInternalKey | FreeDefinedDate2 | ||
| FreeDefinedIndicator1 | I_WBSElementByInternalKey | FreeDefinedIndicator1 | ||
| FreeDefinedIndicator2 | I_WBSElementByInternalKey | FreeDefinedIndicator2 | ||
| PriorityCode | I_WBSElementByInternalKey | PriorityCode | ||
| WBSElementHierarchyLevel | I_WBSElementByInternalKey | WBSElementHierarchyLevel | ||
| Currency | I_WBSElementByInternalKey | Currency | ||
| Plant | I_WBSElementByInternalKey | Plant | ||
| CompanyCode | I_WBSElementByInternalKey | CompanyCode | ||
| WBSElementIsPlanningElement | I_WBSElementByInternalKey | WBSElementIsPlanningElement | ||
| WBSIsAccountAssignmentElement | I_WBSElementByInternalKey | WBSIsAccountAssignmentElement | ||
| WBSElementIsBillingElement | I_WBSElementByInternalKey | WBSElementIsBillingElement | ||
| ProjectType | I_WBSElementByInternalKey | ProjectType | ||
| CreationDate | I_WBSElementByInternalKey | CreationDate | ||
| CreatedByUser | I_WBSElementByInternalKey | CreatedByUser | ||
| LastChangeDate | I_WBSElementByInternalKey | LastChangeDate | ||
| ResponsiblePerson | I_WBSElementByInternalKey | ResponsiblePerson | ||
| ResponsiblePersonName | I_WBSElementByInternalKey | ResponsiblePersonName | ||
| CostCenter | I_WBSElementByInternalKey | CostCenter | Cost Center to which costs are posted | |
| ResponsibleCostCenter | I_WBSElementByInternalKey | ResponsibleCostCenter | ||
| _ProjectApplicant | _ProjectApplicant | |||
| _Project | _Project |
@AbapCatalog.sqlViewName: 'PWBSELEMATTR'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory : #M
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_ProjScheduleWBSElementAttrib
as select from I_WBSElementByInternalKey as ProjectWBSElement
association [0..1] to I_StsObjConcatActiveStsILL as _Status on _Status.StatusObject = $projection.WBSElementObject
association [0..1] to I_ProjectApplicant as _ProjectApplicant on $projection.ApplicantCode = _ProjectApplicant.ApplicantCode
association [1..1] to E_WBSElement as _Extension on $projection.WBSElement = _Extension.WBSElement
{
key ProjectWBSElement.WBSElementInternalID as WBSElementInternalID,
cast ( ProjectWBSElement.WBSElement as ps_posid_edit ) as WBSElement,
ProjectWBSElement.WBSElementExternalID as WBSElementExternalID,
ProjectWBSElement.WBSElementObject as WBSElementObject,
'PR' as ObjectType,
ProjectWBSElement.ProjectInternalID as ProjectInternalID,
@Semantics.text: true
case
when ProjectWBSElement._WBSElementShortText.LanguageBasedShortText is not initial
then ProjectWBSElement._WBSElementShortText.LanguageBasedShortText
else ProjectWBSElement.WBSDescription
end as WBSDescription,
//ProjectWBSElement.WBSDescription as WBSDescription,
ProjectWBSElement.BasicStartDate as BasicStartDate,
ProjectWBSElement.BasicEndDate as BasicEndDate,
ProjectWBSElement.ForecastedStartDate as ForecastedStartDate,
ProjectWBSElement.ForecastedEndDate as ForecastedEndDate,
ProjectWBSElement.SchedldBasicEarliestStartDate as SchedldBasicEarliestStartDate,
ProjectWBSElement.SchedldBasicEarliestEndDate as SchedldBasicEarliestEndDate,
ProjectWBSElement.SchedldBasicLatestStartDate as SchedldBasicLatestStartDate,
ProjectWBSElement.ScheduledBasicLatestEndDate as ScheduledBasicLatestEndDate,
ProjectWBSElement.SchedldFcstdEarliestStartDate as SchedldFcstdEarliestStartDate,
ProjectWBSElement.SchedldFcstdEarliestEndDate as SchedldFcstdEarliestEndDate,
ProjectWBSElement.LatestSchedldFcstdStartDate as LatestSchedldFcstdStartDate,
ProjectWBSElement.LatestSchedldFcstdEndDate as LatestSchedldFcstdEndDate,
ProjectWBSElement.ActualStartDate as ActualStartDate,
ProjectWBSElement.ActualEndDate as ActualEndDate,
@Semantics.quantity.unitOfMeasure: 'BasicDurationUnit'
ProjectWBSElement.BasicDuration as BasicDuration,
@Semantics.unitOfMeasure: true
ProjectWBSElement.BasicDurationUnit as BasicDurationUnit,
@Semantics.quantity.unitOfMeasure: 'ForecastedDurationUnit'
ProjectWBSElement.ForecastedDuration as ForecastedDuration,
@Semantics.unitOfMeasure: true
ProjectWBSElement.ForecastedDurationUnit as ForecastedDurationUnit,
@Semantics.unitOfMeasure: true
ProjectWBSElement.ActualDurationUnit as ActualDurationUnit,
@Semantics.quantity.unitOfMeasure: 'ActualDurationUnit'
ProjectWBSElement.ActualDuration as ActualDuration,
ProjectWBSElement.FreeDefinedAttribute01 as FreeDefinedAttribute01,
ProjectWBSElement.FreeDefinedAttribute02 as FreeDefinedAttribute02,
ProjectWBSElement.FreeDefinedAttribute03 as FreeDefinedAttribute03,
ProjectWBSElement.FreeDefinedAttribute04 as FreeDefinedAttribute04,
@Semantics.unitOfMeasure: true
ProjectWBSElement.FreeDefinedQuantity1Unit as FreeDefinedQuantity1Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity1Unit'
ProjectWBSElement.FreeDefinedQuantity1 as FreeDefinedQuantity1,
@Semantics.unitOfMeasure: true
ProjectWBSElement.FreeDefinedQuantity2Unit as FreeDefinedQuantity2Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity2Unit'
ProjectWBSElement.FreeDefinedQuantity2 as FreeDefinedQuantity2,
@Semantics.currencyCode: true
ProjectWBSElement.FreeDefinedAmount1Currency as FreeDefinedAmount1Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
ProjectWBSElement.FreeDefinedAmount1 as FreeDefinedAmount1,
@Semantics.currencyCode: true
ProjectWBSElement.FreeDefinedAmount2Currency as FreeDefinedAmount2Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
ProjectWBSElement.FreeDefinedAmount2 as FreeDefinedAmount2,
ProjectWBSElement.FreeDefinedDate1 as FreeDefinedDate1,
ProjectWBSElement.FreeDefinedDate2 as FreeDefinedDate2,
ProjectWBSElement.FreeDefinedIndicator1 as FreeDefinedIndicator1,
ProjectWBSElement.FreeDefinedIndicator2 as FreeDefinedIndicator2,
ProjectWBSElement.PriorityCode as PriorityCode,
ProjectWBSElement.WBSElementHierarchyLevel as WBSElementHierarchyLevel,
ProjectWBSElement.Currency as Currency,
ProjectWBSElement.Plant as Plant,
ProjectWBSElement.CompanyCode as CompanyCode,
cast( case
when ProjectWBSElement.ApplicantCode = '00000000'
then ''
else ProjectWBSElement.ApplicantCode
end as ps_s4_astnr ) as ApplicantCode,
ProjectWBSElement.WBSElementIsPlanningElement as WBSElementIsPlanningElement,
ProjectWBSElement.WBSIsAccountAssignmentElement as WBSIsAccountAssignmentElement,
ProjectWBSElement.WBSElementIsBillingElement as WBSElementIsBillingElement,
ProjectWBSElement.ProjectType as ProjectType,
ProjectWBSElement.CreationDate as CreationDate,
ProjectWBSElement.CreatedByUser as CreatedByUser,
ProjectWBSElement.LastChangeDate as LastChangeDate,
ProjectWBSElement.ResponsiblePerson as ResponsiblePerson,
ProjectWBSElement.ResponsiblePersonName as ResponsiblePersonName,
@EndUserText.label: 'Cost Center to which costs are posted'
ProjectWBSElement.CostCenter as CostCenter,
ProjectWBSElement.ResponsibleCostCenter as ResponsibleCostCenter,
//Remove Status fields
// case
// when _Status.ConcatenatedActiveSystStsName is null
// then ''
// else _Status.ConcatenatedActiveSystStsName
// end as ConcatenatedActiveSystStsName,
// case
// when _Status.ConcatenatedActiveUserStsName is null
// then ''
// else _Status.ConcatenatedActiveUserStsName
// end as ConcatenatedActiveUserStsName,
//Remove Status fields
//New Dummy fields
'' as ConcatenatedActiveSystStsName,
'' as ConcatenatedActiveUserStsName,
//New Dummy fields
_ProjectApplicant,
_Project
}
//04.01.2022 - Begin of code(perfomance fixes)
//where
// WBSElementObject like 'PR%'
// or WBSElementObject like 'V2%'
//04.01.2022 - Begin of code(perfomance fixes)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PROJECTOBJECTSHORTTEXT",
"I_WBSELEMENTBYINTERNALKEY"
],
"ASSOCIATED":
[
"E_WBSELEMENT",
"I_PROJECTAPPLICANT",
"I_PROJECTBYINTERNALKEY",
"I_STSOBJCONCATACTIVESTSILL"
],
"BASE":
[
"I_WBSELEMENTBYINTERNALKEY"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA