P_ServiceOrderBpfPrdcssr is a Composite CDS View that provides data about "Process Flow for Predecessor Service Transactions" in SAP S/4HANA. It reads from 2 data sources (I_ServiceDocumentSuccessor, C_SrvcDocDocumentFlow) and exposes 9 fields with key fields ServiceDocument, ServiceDocumentRelationUUID, CustMgmtPrdcssrTransactionKey.
@AbapCatalog.viewEnhancementCategory: [#NONE]@AccessControl.authorizationCheck: #NOT_REQUIRED@EndUserText.label: 'Process Flow for Predecessor Service Transactions'
@Metadata.ignorePropagatedAnnotations: true@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}@VDM.private: true@VDM: {
viewType: #COMPOSITE
}defineviewentity P_ServiceOrderBpfPrdcssr
asselectfrom C_SrvcDocDocumentFlow as _ServiceOrder
innerjoin I_ServiceDocumentSuccessor as _PredecessorSuccessor on _ServiceOrder.SrvcMgmtObjectUUID = _PredecessorSuccessor.ServiceDocumentUUID
and _ServiceOrder.ServiceDocumentRelationUUID = _PredecessorSuccessor.ServiceDocumentRelationUUID
and _ServiceOrder.ReltdSrvcDocIsPredecessor = 'X'
and _PredecessorSuccessor.ServiceDocumentSuccessorUUID isnotnull
{
key _ServiceOrder.ServiceDocument,
key _ServiceOrder.ServiceDocumentRelationUUID,
key _ServiceOrder.CustMgmtPrdcssrTransactionKey,
_ServiceOrder.ServiceOrder,
_ServiceOrder.SrvcMgmtObjectUUID,
_ServiceOrder.CustMgmtPrdcssrTransactionKey as PrecedingDocument,
concat(_ServiceOrder.PrdcssrSuccssrDocObjectType,_ServiceOrder.ServiceDocumentIsQuotation) as PrecedingDocumentCategory,
_PredecessorSuccessor._ServiceDoc.ServiceDocument as SubsequentDocument,
concat(_PredecessorSuccessor.ServiceDocSuccessorBusObjType,_PredecessorSuccessor._ServiceDoc.ServiceDocumentIsQuotation) as SubsequentDocumentCategory
// _PredecessorSuccessor.ServiceDocumentSuccessorUUID as ServiceDocumentSuccessorUUID, //Not Required
// _ServiceOrder.ServiceObjectType //Not Required
//
}
where _ServiceOrder.ReltdSrvcDocIsPredecessor = 'X'
and(
_ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000116'
or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000117'
or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000172'
or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'VBRK'
)
//Added for predecessors which are not part of _Servicedoc association for get Predecessor's Successor. But since only Sol Order ,
//Service Quotation are only considered. No need to add below part
//
//unionselectfrom C_SrvcDocDocumentFlow as _ServiceOrder
// innerjoin I_ServiceDocumentSuccessor as _PredecessorSuccessor on _ServiceOrder.SrvcMgmtObjectUUID = _PredecessorSuccessor.ServiceDocumentUUID
// and _ServiceOrder.ServiceDocumentRelationUUID = _PredecessorSuccessor.ServiceDocumentRelationUUID
// and _ServiceOrder.ReltdSrvcDocIsPredecessor = 'X'
// and _PredecessorSuccessor.ServiceDocumentSuccessorUUID isnull//{
// key _ServiceOrder.ServiceDocument,
// key _ServiceOrder.ServiceDocumentRelationUUID,
// key _ServiceOrder.CustMgmtPrdcssrTransactionKey,
// _ServiceOrder.ServiceOrder,
// _ServiceOrder.SrvcMgmtObjectUUID,
// _ServiceOrder.CustMgmtPrdcssrTransactionKey as PrecedingDocument,
// _ServiceOrder.PrdcssrSuccssrDocObjectType as PrecedingDocumentCategory,
// substring(_PredecessorSuccessor.ServiceDocSuccessor, 1, 10) as SubsequentDocument,
// _PredecessorSuccessor.ServiceDocSuccessorBusObjType as SubsequentDocumentCategory,
// _PredecessorSuccessor.ServiceDocumentSuccessorUUID as ServiceDocumentSuccessorUUID, //Not Required
// _ServiceOrder.ServiceObjectType //Not Required
//
//
//}
//where _ServiceOrder.ReltdSrvcDocIsPredecessor = 'X'
//and(
// _ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000116'
// or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000117'
// or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'BUS2000172'
// or _ServiceOrder.PrdcssrSuccssrDocObjectType = 'VBRK'
// )