A_DevelopmentProjectStatus

DDL: A_DEVELOPMENTPROJECTSTATUS Type: view_entity COMPOSITE

Development Project Status

A_DevelopmentProjectStatus is a Composite CDS View that provides data about "Development Project Status" in SAP S/4HANA. It reads from 1 data source (I_PPM_Task) and exposes 8 fields with key fields DevProjElmntUUID, StatusCode. It has 1 association to related views. It is exposed through 1 OData service (API_DEVELOPMENTPROJECT).

Data Sources (1)

SourceAliasJoin Type
I_PPM_Task _TaskData inner

Associations (1)

CardinalityTargetAliasCondition
[1..1] A_DevelopmentProject _Project $projection.ProjectUUID = _Project.ProjectUUID

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Development Project Status view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #C 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 DevelopmentProjectStatus_Type view

OData Services (1)

ServiceBindingVersionContractRelease
API_DEVELOPMENTPROJECT API_DEVELOPMENTPROJECT V4 C2 C1

Fields (8)

KeyFieldSource TableSource FieldDescription
KEY DevProjElmntUUID I_PPM_Task TaskUUID
KEY StatusCode _StatusObject StatusCode
ProjectUUID I_PPM_Task ProjectUUID
StatusProfile _StatusObject StatusProfile
StatusIsInactive _StatusObject StatusIsInactive
IsSystemStatus _StatusObject IsSystemStatus
StatusNameendasDevProjStatusName
_Project _Project
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Development Project Status'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #XL,
  dataClass: #MIXED
}
@VDM: {
    viewType: #COMPOSITE,
    lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@OData.entityType.name: 'DevelopmentProjectStatus_Type'

define view entity A_DevelopmentProjectStatus
  as select distinct from  I_DevStatusObjectDetail as _StatusObject
    inner join             I_PPM_Task              as _TaskData       on _TaskData.TaskUUID = _StatusObject.StatusObjectUUID
    left outer to one join I_StatusCodeText        as _StatusCodeText on  _StatusObject.StatusCode = _StatusCodeText.StatusCode
                                                                      and _StatusCodeText.Language = $session.system_language

    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_DevelopmentProject as _Project on $projection.ProjectUUID = _Project.ProjectUUID

{
  key _TaskData.TaskUUID             as DevProjElmntUUID,
  key _StatusObject.StatusCode       as StatusCode,
      _TaskData.ProjectUUID          as ProjectUUID,
      _StatusObject.StatusProfile    as StatusProfile,
      _StatusObject.StatusIsInactive as StatusIsInactive,

      _StatusObject.IsSystemStatus   as IsSystemStatus,

      case _StatusObject.IsSystemStatus
       when 'X' then _StatusCodeText.StatusShortName
       else  ' '
      end                            as DevProjStatusShortName,

      case _StatusObject.IsSystemStatus
        when ' ' then _UserStatusText.UserStatusName
        else _StatusCodeText.StatusName
      end                            as DevProjStatusName,

      _Project
}
where
      _StatusCodeText._StatusCode.StatusIsHidden = ''
  and _TaskData.ObjectType                       = 'DPO'