I_MaintOrderHasOpenMainWork

DDL: I_MAINTORDERHASOPENMAINWORK SQL: IPMORDERHASWORK Type: view COMPOSITE

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.

Data Sources (2)

SourceAliasJoin Type
I_MaintenanceOrderOperation _MaintenanceOrderOperation from
I_MaintOperationExecStageCode _MaintOperationExecStageCode inner

Annotations (10)

NameValueLevelField
VDM.viewType #COMPOSITE view
AbapCatalog.sqlViewName IPMORDERHASWORK view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label I_MaintOrderHasOpenMainWork view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #ORGANIZATIONAL view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view

Fields (2)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder MaintenanceOrder
_MaintenanceOrder _MaintenanceOrder
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IPMORDERHASWORK'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'I_MaintOrderHasOpenMainWork'

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

define view 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_OperationControlProfile     as _OperationControlProfile      on  _MaintenanceOrderOperation.OperationControlKey            = _OperationControlProfile.OperationControlProfile
                                                                                        
{
  key MaintenanceOrder,
  
     max(
         case
          --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,

      _MaintenanceOrder
}
where
  _StatusObjectStatusBasic_del.StatusIsInactive is null
group by
  MaintenanceOrder
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MAINTENANCEORDEROPERATION",
"I_MAINTOPERATIONEXECSTAGECODE",
"I_OPERATIONCONTROLPROFILE",
"I_STATUSOBJECTSTATUSBASIC"
],
"ASSOCIATED":
[
"I_MAINTENANCEORDER"
],
"BASE":
[
"I_MAINTENANCEORDEROPERATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/