P_RSHOrderProcessingStatus

DDL: P_RSHORDERPROCESSINGSTATUS SQL: PRSHORDPROCSTAT Type: view CONSUMPTION

Processing Status for Orders

P_RSHOrderProcessingStatus is a Consumption CDS View that provides data about "Processing Status for Orders" in SAP S/4HANA. It reads from 3 data sources (I_MaintenanceOrder, I_OrderOperationBasic, I_RSHOperationProcessingStatus) and exposes 3 fields with key field MaintenanceOrderInternalID.

Data Sources (3)

SourceAliasJoin Type
I_MaintenanceOrder _MaintenanceOrder from
I_OrderOperationBasic _Operation inner
I_RSHOperationProcessingStatus _ProcStatus inner

Annotations (7)

NameValueLevelField
AbapCatalog.sqlViewName PRSHORDPROCSTAT view
VDM.private true view
VDM.viewType #CONSUMPTION view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Processing Status for Orders view

Fields (3)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrderInternalID MaintenanceOrderInternalID
MaintenanceOrder MaintenanceOrder
ProcessingStatus
@AbapCatalog.sqlViewName: 'PRSHORDPROCSTAT'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter:true
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Processing Status for Orders'

/*
CONTRACT*************************************************************************************************************************
Name:                       Order Processing Status Determination
Specification:              This view will calculate the Processing Status
Requires:                   NA
Ensures:                    Processing Status per order is returned
Owners:                     CK
Contributors:
Unit Test required Y/N:     Y
Additional comments         Intended only for Maintenance Asset Board

END OF CONTRACT******************************************************************************************************************
*/

//define view P_RSHOrderProcessingStatus

//  as select from    I_MaintenanceOrder        as _MaintenanceOrder

//    inner join      I_OrderOperationBasic     as _Operation     on _Operation.OrderInternalID = _MaintenanceOrder.MaintOrderRoutingNumber

//  //status filter -> see where condition at the bottom

//    left outer join I_StatusObjectStatusBasic as _ExclStatusObj on  _Operation.ObjectInternalID     = _ExclStatusObj.StatusObject

//                                                                and _ExclStatusObj.StatusIsInactive = ''

//                                                                and (

//                                                                   _ExclStatusObj.StatusCode        = 'I0013' //DELETED

//                                                                   or _ExclStatusObj.StatusCode     = 'I0045' //CONFIRMED (TECO)

//                                                                   or _ExclStatusObj.StatusCode     = 'I0009' //CONFIRMED (CNF)

//                                                                   or _ExclStatusObj.StatusCode     = 'I0043' //LOCKED    (LKD)

//                                                                   or _ExclStatusObj.StatusCode     = 'I0046' //CLOSED  (Business Closed)

//                                                                 )

//  association [1..1] to I_RSHOperationProcessingStatus as _ProcStatus on _Operation.ObjectInternalID = _ProcStatus.StatusObject

//

//{

//

//  key MaintenanceOrderInternalID,

//      MaintenanceOrder,

//      min(_ProcStatus.ProcessingStatus) as ProcessingStatus

//

//}

//where

//  _ExclStatusObj.StatusObject is null

//group by

//  MaintenanceOrderInternalID,

//  MaintenanceOrder


// Performance changes


define view P_RSHOrderProcessingStatus
  as select from I_MaintenanceOrder             as _MaintenanceOrder
    inner join   I_OrderOperationBasic          as _Operation  on _Operation.OrderInternalID = _MaintenanceOrder.MaintOrderRoutingNumber
    inner join   I_RSHOperationProcessingStatus as _ProcStatus on _ProcStatus.StatusObject       = _Operation.ObjectInternalID
                                                               and(
                                                                 _ProcStatus.ProcessingStatus    = 20
                                                                 or _ProcStatus.ProcessingStatus = 30
                                                                 or _ProcStatus.ProcessingStatus = 40
                                                               )
{

  key MaintenanceOrderInternalID,
      MaintenanceOrder,
      min(_ProcStatus.ProcessingStatus) as ProcessingStatus

}
group by
  MaintenanceOrderInternalID,
  MaintenanceOrder
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MAINTENANCEORDER",
"I_ORDEROPERATIONBASIC",
"I_RSHOPERATIONPROCESSINGSTATUS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/