A_ServiceOrder

DDL: A_SERVICEORDER Type: view COMPOSITE

Service Order

A_ServiceOrder is a Composite CDS View that provides data about "Service Order" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 80 fields with key field ServiceOrder. It has 25 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentEnhcd ServiceOrder from

Associations (25)

CardinalityTargetAliasCondition
[0..*] A_ServiceOrderItem _Item $projection.ServiceOrder = _Item.ServiceOrder
[0..*] A_ServiceOrderPersonResp _PersonResponsible $projection.ServiceOrder = _PersonResponsible.ServiceOrder
[0..*] A_ServiceOrderRefObject _ReferenceObject $projection.ServiceOrder = _ReferenceObject.ServiceOrder
[0..*] A_SrvcOrdProdRefObject _ProductReferenceObject $projection.ServiceOrder = _ProductReferenceObject.ServiceOrder
[0..*] A_ServiceOrderConfirmation _Confirmation $projection.ServiceOrder = _Confirmation.ServiceOrder
[0..*] A_ServiceOrderText _Text $projection.ServiceOrder = _Text.ServiceOrder
[0..*] A_ServiceOrderDefect _Defect $projection.ServiceOrder = _Defect.ServiceOrder
[0..*] A_SrvcOrdRefServiceContract _ReferenceServiceContract $projection.ServiceOrder = _ReferenceServiceContract.ServiceOrder
[0..1] I_ServiceDocumentPredecessor _RefServiceRequest $projection.ServiceOrderUUID = _RefServiceRequest.ServiceDocumentUUID and _RefServiceRequest.ServiceDocPrdcssrBusObjType = 'BUS2000223'
[0..1] I_ServiceDocumentPredecessor _RefServiceTemplate $projection.ServiceOrderUUID = _RefServiceTemplate.ServiceDocumentUUID and _RefServiceTemplate.ServiceDocPrdcssrBusObjType = 'BUS2000116' and $projection.ServiceDocumentTemplateType is not initial
[0..*] A_ServiceOrderPriceElement _PricingElement $projection.ServiceOrder = _PricingElement.ServiceOrder
[0..*] A_SrvcOrdQualification _Qualification $projection.ServiceOrder = _Qualification.ServiceOrder
[0..1] I_RespyMgmtTeamHeaderDetail _ServiceTeamHeader $projection.RespyMgmtServiceTeam = _ServiceTeamHeader.RespyMgmtTeamID
[0..1] I_SrvcOrdRefFSMServiceCall _SrvcOrdRefFSMServiceCall $projection.ServiceOrderUUID = _SrvcOrdRefFSMServiceCall.ServiceDocumentUUID and _SrvcOrdRefFSMServiceCall.PrdcssrSuccssrDocObjectType = 'FSMCALL'
[0..1] E_ServiceDocument _Extension _Extension.ServiceCategory = 'BUS2000116' and $projection.ServiceOrder = _Extension.ServiceOrder
[0..1] I_CustMgmtExtRefID _CustMgmtExtRef _CustMgmtExtRef.CustMgmtObjectType = 'BUS2000116' and $projection.ServiceOrder = _CustMgmtExtRef.CustMgmtDocument and _CustMgmtExtRef.CustMgmtExtRefIDType = '0001'
[0..1] P_SrvcPrdcssrSrvcContr _RefServiceContract $projection.ServiceOrderUUID = _RefServiceContract.ServiceDocumentUUID and _RefServiceContract.NumberOfOccurrences = 1
[0..*] A_ServiceOrdUserStatus _ServiceOrdUserStatus $projection.ServiceOrder = _ServiceOrdUserStatus.ServiceOrder
[0..*] A_SrvcOrdPartner _Partner $projection.ServiceOrder = _Partner.ServiceOrder
[0..*] A_SrvcOrdTransHistory _SrvcOrdTransHistory $projection.ServiceOrder = _SrvcOrdTransHistory.ServiceOrder
[0..*] A_SrvcOrdDuration _Duration $projection.ServiceOrder = _Duration.ServiceOrder
[0..*] A_SrvcOrdAppointment _Appointment $projection.ServiceOrder = _Appointment.ServiceOrder
[0..1] I_WBSElementBasicData _WBSElement _WBSElement.WBSElementInternalID = ServiceOrder.WBSElementInternalID
[0..1] I_WBSElementBasicData _WBSElementCO _WBSElementCO.WBSElement = ServiceOrder.WBSElement
[0..*] A_SrvcOrdInHouseRepairItem _InHouseRepairItem $projection.ServiceOrder = _InHouseRepairItem.ServiceOrder

Annotations (15)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Service Order view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
AbapCatalog.sqlViewName ASRVORD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.representativeKey ServiceOrder view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
Metadata.ignorePropagatedAnnotations true view

Fields (80)

KeyFieldSource TableSource FieldDescription
KEY ServiceOrder ServiceDocument
ServiceOrderType ServiceDocumentType
ServiceOrderUUID ServiceDocumentUUID
ServiceOrderDescription ServiceDocumentDescription
ServiceObjectType ServiceObjectType
Language Language
ServiceDocumentPriority ServiceDocumentPriority
RequestedServiceStartDateTime RequestedServiceStartDateTime
RequestedServiceEndDateTime RequestedServiceEndDateTime
ErlstRequestedDeliveryDateTime ErlstRequestedDeliveryDateTime
ServiceDocChangedDateTime ServiceDocChangedDateTime
PostingDate PostingDate
ServiceDocumentCreationDate ServiceDocumentCreationDate
ServiceDocumentChangedDate ServiceDocumentChangedDate
ServiceDocumentCreatedByUser ServiceDocumentCreatedByUser
ServiceDocumentChangedByUser ServiceDocumentChangedByUser
ServiceDocumentTemplateType ServiceDocumentTemplateType
PurchaseOrderByCustomer PurchaseOrderByCustomer
CustomerPurchaseOrderDate CustomerPurchaseOrderDate
ServiceOrderIsReleased ServiceDocumentIsReleased
ServiceOrderIsRejected ServiceDocumentIsRejected
SrvcOrdIsBusinessCompleted SrvcOrdIsBusinessCompleted
SrvcOrdIsBusinessReopened SrvcOrdIsBusinessReopened
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
SoldToParty SoldToParty
ShipToParty ShipToParty
BillToParty BillToParty
PayerParty PayerParty
ContactPerson ContactPerson
ServiceDocGrossAmount ServiceDocGrossAmount
ServiceDocNetAmount ServiceDocNetAmount
ServiceDocTaxAmount ServiceDocTaxAmount
TransactionCurrency TransactionCurrency
ReferenceServiceRequest
ReferenceServiceContract _RefServiceContract ServiceContract
RefServiceOrderTemplate
ReferenceServiceOrder _CustMgmtExtRef CustMgmtExtRefID
ShippingCondition ShippingCondition
RespyMgmtServiceTeam RespyMgmtServiceTeam
RespyMgmtServiceTeamName _ServiceTeamHeader TeamName
RespyMgmtGlobalTeamID _ServiceTeamHeader RespyMgmtGlobalTeamID
SrvcOrdCreditStatus SrvcDocCreditStatus
SrvcOrdGTSEmbargoStatus SrvcDocGTSEmbargoStatus
SrvcOrdGTSScreeningStatus SrvcDocGTSScreeningStatus
SrvcOrdGTSLglControlStatus SrvcDocGTSLglControlStatus
SrvcOrdExecutionStatus SrvcDocExecutionStatus
PaymentTerms PaymentTerms
PaymentMethod PaymentMethod
SEPAMandate SEPAMandate
SrvcSEPAMandateRelevance SrvcSEPAMandateRelevance
SalesOrganizationOrgUnitID SalesOrganizationOrgUnitID
ServiceOrganization ServiceOrganization
SalesOfficeOrgUnitID SalesOfficeOrgUnitID
SalesGroupOrgUnitID SalesGroupOrgUnitID
EnterpriseServiceOrganization EnterpriseServiceOrganization
FSMServiceCall _SrvcOrdRefFSMServiceCall FSMServiceCall
ServiceOrderRejectionReason ServiceDocumentRejectionReason
ReferenceInHouseRepair ReferenceInHouseRepair
ReferenceInHouseRepairItem ReferenceInHouseRepairItem
ServiceDocumentCategory BusinessActivityCategory
_Item _Item
_PersonResponsible _PersonResponsible
_ReferenceObject _ReferenceObject
_ProductReferenceObject _ProductReferenceObject
_Confirmation _Confirmation
_Text _Text
_Defect _Defect
_ReferenceServiceContract _ReferenceServiceContract
_PricingElement _PricingElement
_Qualification _Qualification
_ServiceOrdUserStatus _ServiceOrdUserStatus
_InHouseRepairItem _InHouseRepairItem
_SrvcOrdTransHistory _SrvcOrdTransHistory
_Partner _Partner
_Duration _Duration
_Appointment _Appointment
@ClientHandling.algorithm:#SESSION_VARIABLE
@EndUserText.label: 'Service Order'
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@AbapCatalog: {
  sqlViewName: 'ASRVORD',
  compiler.compareFilter: true,
  preserveKey: true
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
   representativeKey: 'ServiceOrder',
   createEnabled: true,
   updateEnabled: true,
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #C,
     sizeCategory:   #L
   }
}
@Metadata.ignorePropagatedAnnotations: true


define view A_ServiceOrder
  as select from I_ServiceDocumentEnhcd as ServiceOrder

  association [0..*] to A_ServiceOrderItem           as _Item                     on  $projection.ServiceOrder = _Item.ServiceOrder

  association [0..*] to A_ServiceOrderPersonResp     as _PersonResponsible        on  $projection.ServiceOrder = _PersonResponsible.ServiceOrder

  association [0..*] to A_ServiceOrderRefObject      as _ReferenceObject          on  $projection.ServiceOrder = _ReferenceObject.ServiceOrder

  association [0..*] to A_SrvcOrdProdRefObject       as _ProductReferenceObject   on  $projection.ServiceOrder = _ProductReferenceObject.ServiceOrder


  association [0..*] to A_ServiceOrderConfirmation   as _Confirmation             on  $projection.ServiceOrder = _Confirmation.ServiceOrder

  association [0..*] to A_ServiceOrderText           as _Text                     on  $projection.ServiceOrder = _Text.ServiceOrder

  association [0..*] to A_ServiceOrderDefect         as _Defect                   on  $projection.ServiceOrder = _Defect.ServiceOrder

  association [0..*] to A_SrvcOrdRefServiceContract  as _ReferenceServiceContract on  $projection.ServiceOrder = _ReferenceServiceContract.ServiceOrder

  association [0..1] to I_ServiceDocumentPredecessor as _RefServiceRequest        on  $projection.ServiceOrderUUID                   = _RefServiceRequest.ServiceDocumentUUID
                                                                                  and _RefServiceRequest.ServiceDocPrdcssrBusObjType = 'BUS2000223'

  //  association [0..1] to I_ServiceDocumentPredecessor as _RefServiceContract       on  $projection.ServiceOrderUUID                    = _RefServiceContract.ServiceDocumentUUID

  //                                                                                  and _RefServiceContract.ServiceDocPrdcssrBusObjType = 'BUS2000112'


  association [0..1] to I_ServiceDocumentPredecessor as _RefServiceTemplate       on  $projection.ServiceOrderUUID                    = _RefServiceTemplate.ServiceDocumentUUID
                                                                                  and _RefServiceTemplate.ServiceDocPrdcssrBusObjType = 'BUS2000116'
                                                                                  and $projection.ServiceDocumentTemplateType         is not initial

  association [0..*] to A_ServiceOrderPriceElement   as _PricingElement           on  $projection.ServiceOrder = _PricingElement.ServiceOrder

  association [0..*] to A_SrvcOrdQualification       as _Qualification           on  $projection.ServiceOrder = _Qualification.ServiceOrder

  association [0..1] to I_RespyMgmtTeamHeaderDetail  as _ServiceTeamHeader        on  $projection.RespyMgmtServiceTeam = _ServiceTeamHeader.RespyMgmtTeamID

  association [0..1] to I_SrvcOrdRefFSMServiceCall   as _SrvcOrdRefFSMServiceCall on  $projection.ServiceOrderUUID                          = _SrvcOrdRefFSMServiceCall.ServiceDocumentUUID
                                                                                  and _SrvcOrdRefFSMServiceCall.PrdcssrSuccssrDocObjectType = 'FSMCALL'

  //Extensibility

  association [0..1] to E_ServiceDocument            as _Extension                on  _Extension.ServiceCategory = 'BUS2000116'
                                                                                  and $projection.ServiceOrder   = _Extension.ServiceOrder
  //External ID

  association [0..1] to I_CustMgmtExtRefID           as _CustMgmtExtRef           on  _CustMgmtExtRef.CustMgmtObjectType   = 'BUS2000116'
                                                                                  and $projection.ServiceOrder             = _CustMgmtExtRef.CustMgmtDocument
                                                                                  and _CustMgmtExtRef.CustMgmtExtRefIDType = '0001'


  association [0..1] to P_SrvcPrdcssrSrvcContr       as _RefServiceContract       on  $projection.ServiceOrderUUID            = _RefServiceContract.ServiceDocumentUUID
                                                                                  and _RefServiceContract.NumberOfOccurrences = 1
  association [0..*] to A_ServiceOrdUserStatus       as _ServiceOrdUserStatus     on  $projection.ServiceOrder = _ServiceOrdUserStatus.ServiceOrder

  association [0..*] to A_SrvcOrdPartner             as _Partner                  on  $projection.ServiceOrder = _Partner.ServiceOrder

    association [0..*] to A_SrvcOrdTransHistory      as _SrvcOrdTransHistory    on  $projection.ServiceOrder = _SrvcOrdTransHistory.ServiceOrder

  association [0..*] to A_SrvcOrdDuration            as _Duration                 on  $projection.ServiceOrder = _Duration.ServiceOrder

  association [0..*] to A_SrvcOrdAppointment         as _Appointment              on  $projection.ServiceOrder = _Appointment.ServiceOrder

  association [0..1] to I_WBSElementBasicData        as _WBSElement               on  _WBSElement.WBSElementInternalID = ServiceOrder.WBSElementInternalID
  association [0..1] to I_WBSElementBasicData        as _WBSElementCO             on  _WBSElementCO.WBSElement = ServiceOrder.WBSElement

  association [0..*] to A_SrvcOrdInHouseRepairItem   as _InHouseRepairItem        on $projection.ServiceOrder = _InHouseRepairItem.ServiceOrder
{

  key  ServiceDocument                                 as ServiceOrder,
       @ObjectModel.sapObjectNodeTypeReference: 'ServiceDocumentType'
       ServiceDocumentType                             as ServiceOrderType,
       ServiceDocumentUUID                             as ServiceOrderUUID,
       ServiceDocumentDescription                      as ServiceOrderDescription,
       ServiceObjectType,
       Language,
       @ObjectModel.sapObjectNodeTypeReference: 'ServiceDocumentPriority'
       ServiceDocumentPriority,
       RequestedServiceStartDateTime,
       RequestedServiceEndDateTime,
       ErlstRequestedDeliveryDateTime,


       @ObjectModel.readOnly: true
       ServiceDocChangedDateTime,


       PostingDate,
       @ObjectModel.readOnly: true
       ServiceDocumentCreationDate,
       @ObjectModel.readOnly: true
       ServiceDocumentChangedDate,

       @ObjectModel.readOnly: true
       ServiceDocumentCreatedByUser,
       @ObjectModel.readOnly: true
       ServiceDocumentChangedByUser,



       ServiceDocumentTemplateType,

       PurchaseOrderByCustomer,
       CustomerPurchaseOrderDate,

       /* STATUS */
       //       ServiceDocumentIsOpen                           as ServiceOrderIsOpen,


       ServiceDocumentIsReleased                       as ServiceOrderIsReleased,
       //       case ServiceDocumentStatus

       //       when 'C' then 'X'

       //       else ''

       //       end                                             as ServiceOrderIsCompleted,


       case ServiceDocumentIsOpen
       when '' then
       case ServiceDocumentIsReleased
       when '' then 'X' else ''
       end
       else ''
       end                                             as ServiceOrderIsCompleted,

       ServiceDocumentIsRejected                       as ServiceOrderIsRejected,

       @Semantics.booleanIndicator:true
       SrvcOrdIsBusinessCompleted,

       @Semantics.booleanIndicator:true
       @ObjectModel.readOnly: true
       SrvcOrdIsBusinessReopened,

       /* ORG */
       SalesOrganization,
       DistributionChannel,
       @ObjectModel.sapObjectNodeTypeReference: 'Division'
       Division,
       SalesOffice,
       SalesGroup,
       //     ServiceOrganization,


       /* PARTNER */
       SoldToParty,
       ShipToParty,
       BillToParty,
       PayerParty,
       ContactPerson,

       /* CUMULAT_H */
       @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
       ServiceDocGrossAmount,
       @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
       ServiceDocNetAmount,
       @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
       ServiceDocTaxAmount,
       @ObjectModel.sapObjectNodeTypeReference: 'Currency'
       TransactionCurrency,

       /* DOCFLOW - Preceding Document
       @ObjectModel.virtualElement: true
       @ObjectModel.virtualElementCalculatedBy: 'cl_crms4_api_odata_srv_ord'
       cast ('' as crmt_object_id)                                    as ReferenceServiceRequest,
       cast ('' as crmt_object_id)                                    as ReferenceServiceContract, */

       _RefServiceRequest._ServiceDoc.ServiceDocument  as ReferenceServiceRequest,

       //_RefServiceContract._ServiceDoc.ServiceDocument

       _RefServiceContract.ServiceContract             as ReferenceServiceContract,

       _RefServiceTemplate._ServiceDoc.ServiceDocument as RefServiceOrderTemplate,

       /* SUBJECT - Categorization Schema
       ServiceDefectSchema,
       ServiceDefectCategory, */

       _CustMgmtExtRef.CustMgmtExtRefID                as ReferenceServiceOrder,

       /* Shipping */
       ShippingCondition,

       /********************************************************/
       /*********  Cloud Specific Fields **************************/
       //Service Team

       //@ObjectModel.editableFieldFor: 'RespyMgmtServiceTeamName'

       //@feature: 'BF:API_ESSENTIALSCOPE'

       RespyMgmtServiceTeam,

       //@feature: 'BF:API_ESSENTIALSCOPE'

       @ObjectModel.readOnly: true
       _ServiceTeamHeader.TeamName                     as RespyMgmtServiceTeamName,

       //@feature: 'BF:API_ESSENTIALSCOPE'

       _ServiceTeamHeader.RespyMgmtGlobalTeamID        as RespyMgmtGlobalTeamID,

       @ObjectModel.sapObjectNodeTypeReference: 'SrvcDocCreditStatus'
       @Feature: 'BF:API_ESSENTIALSCOPE'
       @ObjectModel.readOnly: true
       SrvcDocCreditStatus                             as SrvcOrdCreditStatus,

        // GTS Embargo Status


        @ObjectModel.readOnly: true
        SrvcDocGTSEmbargoStatus                     as SrvcOrdGTSEmbargoStatus,

        // GTS Screening Status


        @ObjectModel.readOnly: true
        SrvcDocGTSScreeningStatus                   as SrvcOrdGTSScreeningStatus,

        // GTS Legal Control


        @ObjectModel.readOnly: true
        SrvcDocGTSLglControlStatus                  as SrvcOrdGTSLglControlStatus,


       @ObjectModel.sapObjectNodeTypeReference: 'SrvcDocExecutionStatus'
       SrvcDocExecutionStatus                          as SrvcOrdExecutionStatus,

       //@feature: 'BF:API_ESSENTIALSCOPE'

       @ObjectModel.sapObjectNodeTypeReference: 'PaymentTerms'
       PaymentTerms,
       //@feature: 'BF:API_ESSENTIALSCOPE'

       @ObjectModel.sapObjectNodeTypeReference: 'PaymentMethod'
       PaymentMethod,
       //@feature: 'BF:API_ESSENTIALSCOPE'

       SEPAMandate,
       //@Feature: 'BF:API_ESSENTIALSCOPE'

       @ObjectModel.readOnly: true
       @ObjectModel.sapObjectNodeTypeReference: 'SrvcSEPAMandateRelevance'
       SrvcSEPAMandateRelevance,

       case SrvcDocAcctAssgmtObjectType
       when '03' then _WBSElementCO.WBSElementExternalID
       else _WBSElement.WBSElementExternalID
       end as WBSElementExternalID,

       //  SrvcDocCreditStatus,

       /********************************************************/

       /********************************************************/
       /*********  OP Specific Fields **************************/
       //@feature: 'BF:API_FULLSCOPE'

       SalesOrganizationOrgUnitID,

       //@feature: 'BF:API_FULLSCOPE'

       ServiceOrganization,

       //@feature: 'BF:API_FULLSCOPE'

       SalesOfficeOrgUnitID,

       //@feature: 'BF:API_FULLSCOPE'

       SalesGroupOrgUnitID,

       @Feature: 'BF:API_FULLSCOPE'
       @ObjectModel.sapObjectNodeTypeReference: 'EnterpriseServiceOrganization'
       EnterpriseServiceOrganization,

       /********************************************************/


       /********************************************************/
       /*********  FSM Specific Fields **************************/
       _SrvcOrdRefFSMServiceCall.FSMServiceCall,
       /********************************************************/

       @ObjectModel.sapObjectNodeTypeReference: 'SalesDocumentRjcnReason'
       ServiceDocumentRejectionReason                  as ServiceOrderRejectionReason,

       /********************************************************/
       /*********  In-House Repair Specific Fields *************/
       ReferenceInHouseRepair                          as ReferenceInHouseRepair,
       ReferenceInHouseRepairItem                      as ReferenceInHouseRepairItem,

       @Feature: 'BF:API_FULLSCOPE' //! OP Specific field

       BusinessActivityCategory                        as ServiceDocumentCategory,

       //Associations

       _Item,
       _PersonResponsible,
       _ReferenceObject,
       _ProductReferenceObject,
       _Confirmation,
       _Text,
       _Defect,
       _ReferenceServiceContract,
       _PricingElement,
       _Qualification,
       _ServiceOrdUserStatus,
       _InHouseRepairItem,
       _SrvcOrdTransHistory,

       //@Feature: 'BF:API_FULLSCOPE'

       _Partner,
       _Duration,
       _Appointment
}
where
      ServiceObjectType          = 'BUS2000116' // Service Process

  and ServiceDocumentIsQuotation is initial