A_ProjectStatus

DDL: A_PROJECTSTATUS Type: view_entity COMPOSITE

Project status

A_ProjectStatus is a Composite CDS View that provides data about "Project status" in SAP S/4HANA. It reads from 1 data source (I_ProjectData_2) and exposes 9 fields with key fields ProjectInternalID, StatusCode. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_ProjectData_2 _ProjectData inner

Associations (1)

CardinalityTargetAliasCondition
[1..1] A_Project_3 _Project $projection.ProjectInternalID = _Project.ProjectInternalID

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Project status view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
OData.entityType.name ProjectStatus_Type view

Fields (9)

KeyFieldSource TableSource FieldDescription
KEY ProjectInternalID I_ProjectData_2 ProjectInternalID
KEY StatusCode _StatusObject StatusCode
StatusObject _StatusObject StatusObject
StatusProfile _StatusObject StatusProfile
StatusIsActive _StatusObject StatusIsActive
IsUserStatus _StatusObject IsUserStatus
StatusShortNameendasStatusShortName
StatusNameendasStatusName
_Project _Project
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Project status'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #D,
  sizeCategory: #XL,
  dataClass: #MIXED
}
@VDM: {
    viewType: #COMPOSITE,
    lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@OData.entityType.name:'ProjectStatus_Type'

define view entity A_ProjectStatus
  as select distinct from  I_StatusObjectStatus as _StatusObject
    inner join             I_ProjectData_2      as _ProjectData    on _ProjectData.ProjectObject = _StatusObject.StatusObject
    left outer to one join I_StatusCodeText     as _StatusCodeText on  _StatusObject.StatusCode = _StatusCodeText.StatusCode
                                                                   and _StatusCodeText.Language = $session.system_language

  //Get user status short name and description

    left outer to one join I_UserStatusText     as _UserStatusText on  _StatusObject.StatusProfile = _UserStatusText.StatusProfile
                                                                   and _StatusObject.StatusCode    = _UserStatusText.UserStatus
                                                                   and _UserStatusText.Language    = $session.system_language

  association [1..1] to A_Project_3 as _Project on $projection.ProjectInternalID = _Project.ProjectInternalID
{
  key _ProjectData.ProjectInternalID,
  key _StatusObject.StatusCode,
      _StatusObject.StatusObject,
      _StatusObject.StatusProfile,
      _StatusObject.StatusIsActive,

      _StatusObject.IsUserStatus as IsUserStatus,

      case _StatusObject.IsUserStatus
       when 'X' then _UserStatusText.UserStatusShortName
       else  _StatusCodeText.StatusShortName
      end                        as StatusShortName,

      case _StatusObject.IsUserStatus
        when 'X' then _UserStatusText.UserStatusName
        else _StatusCodeText.StatusName
      end                        as StatusName,

      _Project 


}
where
  _StatusCodeText._StatusCode.StatusIsHidden = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PROJECTDATA_2",
"I_STATUSCODE",
"I_STATUSCODETEXT",
"I_STATUSOBJECTSTATUS",
"I_USERSTATUSTEXT"
],
"ASSOCIATED":
[
"A_PROJECT_3"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/