I_MaintOrderHasOpenMainWork

DDL: I_MAINTORDERHASOPENMAINWORK Type: view_entity COMPOSITE Package: IWO1

I_MaintOrderHasOpenMainWork

I_MaintOrderHasOpenMainWork is a Composite CDS View that provides data about "I_MaintOrderHasOpenMainWork" in SAP S/4HANA. It reads from 2 data sources (I_MaintenanceOrderOperation, I_MaintOperationExecStageCode) and exposes 2 fields with key field MaintenanceOrder. Part of development package IWO1.

Data Sources (2)

SourceAliasJoin Type
I_MaintenanceOrderOperation _MaintenanceOrderOperation from
I_MaintOperationExecStageCode _MaintOperationExecStageCode inner

Annotations (6)

NameValueLevelField
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label I_MaintOrderHasOpenMainWork view
ObjectModel.usageType.dataClass #ORGANIZATIONAL view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view

Fields (2)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder I_MaintenanceOrderOperation MaintenanceOrder
_MaintenanceOrder I_MaintenanceOrderOperation _MaintenanceOrder
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'I_MaintOrderHasOpenMainWork'

@ObjectModel.usageType.dataClass: #ORGANIZATIONAL
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XL

define view entity I_MaintOrderHasOpenMainWork
  as select from           I_MaintenanceOrderOperation   as _MaintenanceOrderOperation

    inner join             I_MaintOperationExecStageCode as _MaintOperationExecStageCode on  _MaintenanceOrderOperation.MaintOperationExecStageCode = _MaintOperationExecStageCode.MaintOperationExecStageCode
                                                                                         and _MaintOperationExecStageCode.MaintOpExecStageGroupCode = 'MAIN'

    left outer to one join I_StatusObjectStatusBasic     as _StatusObjectStatusBasic_del on  _MaintenanceOrderOperation.MaintOrderOperationInternalID = _StatusObjectStatusBasic_del.StatusObject
                                                                                         and _StatusObjectStatusBasic_del.StatusCode                  = 'I0013' //Deleted


    left outer to one join I_StatusObjectStatusBasic     as _StatusObjectStatusBasic     on  _MaintenanceOrderOperation.MaintOrderOperationInternalID = _StatusObjectStatusBasic.StatusObject
                                                                                         and _StatusObjectStatusBasic.StatusCode                      = 'IEAMP' //Confirmed

                                                                                         and _StatusObjectStatusBasic.StatusIsInactive                = ''

    left outer to one join I_StatusObjectStatusBasic     as _StatusObjectStatusPCNF      on  _MaintenanceOrderOperation.MaintOrderOperationInternalID = _StatusObjectStatusPCNF.StatusObject
                                                                                         and _StatusObjectStatusPCNF.StatusCode                      = 'I0010' //Partially Confirmed

                                                                                         and _StatusObjectStatusPCNF.StatusIsInactive                = ''
                                                                                         
   left outer to one join I_StatusObjectStatusBasic     as _StatusObjectStatusSECF      on  _MaintenanceOrderOperation.MaintOrderOperationInternalID = _StatusObjectStatusSECF.StatusObject
                                                                                         and _StatusObjectStatusSECF.StatusCode                       = 'IEAMF' //Lean Service Confirmed

                                                                                         and _StatusObjectStatusSECF.StatusIsInactive                 = ''
    
    left outer to one join I_StatusObjectStatusBasic     as _StatusObjectStatusEODL      on  _MaintenanceOrderOperation.MaintOrderOperationInternalID = _StatusObjectStatusEODL.StatusObject
                                                                                         and _StatusObjectStatusEODL.StatusCode                       = 'I0378' //External Data Confirmed

                                                                                         and _StatusObjectStatusEODL.StatusIsInactive                 = ''
                                                                                                                                                                                 
   left outer to one join I_OperationControlProfile     as _OperationControlProfile      on  _MaintenanceOrderOperation.OperationControlKey            = _OperationControlProfile.OperationControlProfile
   
   left outer to one join I_MaintenanceOrderComponent_2 as _MaintenanceOrderComponent   on  _MaintenanceOrderComponent.MaintenanceOrder               = _MaintenanceOrderOperation.MaintenanceOrder
                                                                                         and  _MaintenanceOrderComponent.MaintenanceOrderOperation     = _MaintenanceOrderOperation.MaintenanceOrderOperation
                                                                                         and  _MaintenanceOrderComponent.MaintenanceOrderSubOperation  = _MaintenanceOrderOperation.MaintenanceOrderSubOperation 
                                                                                         and  _MaintenanceOrderComponent.ProductTypeCode               = '2'    //lean service

{
  key _MaintenanceOrderOperation.MaintenanceOrder,
  
     max(
         case
         // if lean service exists and is not SECF then flag is on 

          when ( _MaintenanceOrderComponent.MaintenanceOrderComponent is not null and _StatusObjectStatusSECF.StatusIsInactive is null ) then 'X'
          // if external data exists and is not EODL then flag is on 

          when ( _OperationControlProfile.OperationExternalProcessing = '+' and _StatusObjectStatusEODL.StatusIsInactive is null ) then 'X'
          --if there is no confirmed status -> indicate open main work depending on the control key
          when ( _OperationControlProfile.ConfirmationIsRequired = 'X' and _StatusObjectStatusBasic.StatusIsInactive is null ) then 'X'
          when ( _OperationControlProfile.ConfirmationIsOptional = 'X' and _StatusObjectStatusPCNF.StatusIsInactive is not null ) then 'X'
          -- in case confirmed is present -> indicate blank
          when _StatusObjectStatusBasic.StatusIsInactive is not null then ''
        end
       ) as MaintOrdHasOpenMainWork,

      _MaintenanceOrderOperation._MaintenanceOrder
}
where
  _StatusObjectStatusBasic_del.StatusIsInactive is null
group by
  _MaintenanceOrderOperation.MaintenanceOrder