C_Customer360SolutionOrder

DDL: C_CUSTOMER360SOLUTIONORDER Type: view_entity CONSUMPTION Package: ODATA_SD_ADVNCD_CUSTOMER360

Solution Orders for customer 360

C_Customer360SolutionOrder is a Consumption CDS View that provides data about "Solution Orders for customer 360" in SAP S/4HANA. It reads from 2 data sources (I_Customer360BusDocSetting, I_ServiceDocumentEnhcd) and exposes 48 fields with key field BusinessSolutionOrder. It has 4 associations to related views. It is exposed through 1 OData service (SD_ADVNCD_CUSTOMER360). Part of development package ODATA_SD_ADVNCD_CUSTOMER360.

Data Sources (2)

SourceAliasJoin Type
I_Customer360BusDocSetting Customer360BusDocSetting inner
I_ServiceDocumentEnhcd SolutionOrder from

Associations (4)

CardinalityTargetAliasCondition
[0..1] P_BusSolnOrdCstmStsMappgEnhcd _BusSolnOrdCstmStsMappgEnhcd $projection.ServiceDocumentType = _BusSolnOrdCstmStsMappgEnhcd.ServiceDocumentType and $projection.BusSolnOrdStatus = _BusSolnOrdCstmStsMappgEnhcd.ServiceDocumentStatus and _BusSolnOrdCstmStsMappgEnhcd.Language = $session.system_language
[0..1] I_SrvcLifeCycleSystemStatusT _SrvcLifeCycleSystemStatusT $projection.BusSolnOrdStatus = _SrvcLifeCycleSystemStatusT.SrvcLifeCycleSystemStatus and _SrvcLifeCycleSystemStatusT.Language = $session.system_language
[0..1] I_SrvcMgmtObjectStatus _SolutionOrderStatus $projection.BusinessSolutionOrderUUID = _SolutionOrderStatus.SrvcMgmtObjectUUID and ( _SolutionOrderStatus.SrvcMgmtObjectStatus = 'I1002' or _SolutionOrderStatus.SrvcMgmtObjectStatus = 'I1003' or _SolutionOrderStatus.SrvcMgmtObjectStatus = 'I1004' or _SolutionOrderStatus.SrvcMgmtObjectStatus = 'I1005' ) and _SolutionOrderStatus.SrvcMgmtObjectStatusIsInactive = ''
[0..*] I_CustMgmtPartner _PersonResponsible $projection.BusinessSolutionOrder = _PersonResponsible.CustMgmtDocument and _PersonResponsible.CustMgmtObjectType = 'BUS2000172' and _PersonResponsible.CustMgmtPartFunctionCategory = '0008'

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Solution Orders for customer 360 view
Metadata.ignorePropagatedAnnotations true view
Search.searchable true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
VDM.viewType #CONSUMPTION view
Metadata.allowExtensions true view

OData Services (1)

ServiceBindingVersionContractRelease
SD_ADVNCD_CUSTOMER360 SD_ADVNCD_CUSTOMER360 V4 C1 NOT_RELEASED

Fields (48)

KeyFieldSource TableSource FieldDescription
KEY BusinessSolutionOrder I_ServiceDocumentEnhcd ServiceDocument
BusSolnOrdDescription I_ServiceDocumentEnhcd ServiceDocumentDescription
RespEmployeeBusinessPartnerId I_ServiceDocumentEnhcd ResponsibleEmployee
SoldToParty I_ServiceDocumentEnhcd SoldToParty
ContactPersonBusinessPartnerId I_ServiceDocumentEnhcd ContactPerson
TransactionCurrency I_ServiceDocumentEnhcd TransactionCurrency
BusSolnOrdNetAmount I_ServiceDocumentEnhcd ServiceDocNetAmount
BusSolnOrdGrossAmount I_ServiceDocumentEnhcd ServiceDocGrossAmount
BusSolnOrdStatus I_ServiceDocumentEnhcd ServiceDocumentStatus
BusSolnOrdHasError I_ServiceDocumentEnhcd ServiceDocumentHasError
ServiceDocumentHasErrorName
CreationDate I_ServiceDocumentEnhcd ServiceDocumentCreationDate
ServiceDocumentChangedByUser I_ServiceDocumentEnhcd ServiceDocumentChangedByUser
PostingDate I_ServiceDocumentEnhcd PostingDate
LastChangedDate I_ServiceDocumentEnhcd ServiceDocumentChangedDate
ServiceDocumentCreatedByUser I_ServiceDocumentEnhcd ServiceDocumentCreatedByUser
SystemStatus _SolutionOrderStatus SrvcMgmtObjectStatus
StatusProfile
PurchaseOrderByCustomer I_ServiceDocumentEnhcd PurchaseOrderByCustomer External Reference
SalesOrganization I_ServiceDocumentEnhcd SalesOrganization
SalesOrganizationName
DistributionChannel I_ServiceDocumentEnhcd DistributionChannel
DistributionChannelName
Division I_ServiceDocumentEnhcd Division
DivisionName
SalesOffice I_ServiceDocumentEnhcd SalesOffice
SalesOfficeName
SalesGroup I_ServiceDocumentEnhcd SalesGroup
SalesGroupName
BusinessSolutionOrderUUID I_ServiceDocumentEnhcd ServiceDocumentUUID
ServiceDocumentType I_ServiceDocumentEnhcd ServiceDocumentType
RespEmployeeAtPartnerName
SoldToPartyName
CompanyContactPersonFullName
_ContactPerson I_ServiceDocumentEnhcd _ContactPerson
_RespEmployee I_ServiceDocumentEnhcd _RespEmployee
_SoldToParty I_ServiceDocumentEnhcd _SoldToParty
_PersonResponsible _PersonResponsible
_SalesOrganization I_ServiceDocumentEnhcd _SalesOrganization
_DistributionChannel I_ServiceDocumentEnhcd _DistributionChannel
_Division I_ServiceDocumentEnhcd _Division
_SalesOffice I_ServiceDocumentEnhcd _SalesOffice
_SalesGroup I_ServiceDocumentEnhcd _SalesGroup
SalesOrganizationOrgUnitID I_ServiceDocumentEnhcd SalesOrganizationOrgUnitID
SalesOfficeOrgUnitID I_ServiceDocumentEnhcd SalesOfficeOrgUnitID
SalesGroupOrgUnitID I_ServiceDocumentEnhcd SalesGroupOrgUnitID
ServiceOrganization I_ServiceDocumentEnhcd ServiceOrganization
ServiceObjectType I_ServiceDocumentEnhcd ServiceObjectType
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Solution Orders for customer 360'
@Metadata.ignorePropagatedAnnotations: true
@Search.searchable: true
@ObjectModel: {
   usageType: {
     dataClass: #MIXED,
     serviceQuality: #C,
     sizeCategory:   #XXL
   }
}

@VDM.viewType: #CONSUMPTION
@Metadata.allowExtensions: true

define view entity C_Customer360SolutionOrder
  as select from I_ServiceDocumentEnhcd     as SolutionOrder
    inner join   I_Customer360BusDocSetting as Customer360BusDocSetting on  Customer360BusDocSetting.Cust360BusDocCategory     = 'SOLO'
                                                                        and Customer360BusDocSetting.BusinessDocumentIsEnabled = 'X'
  association [0..1] to P_BusSolnOrdCstmStsMappgEnhcd as _BusSolnOrdCstmStsMappgEnhcd on  $projection.ServiceDocumentType       = _BusSolnOrdCstmStsMappgEnhcd.ServiceDocumentType
                                                                                      and $projection.BusSolnOrdStatus          = _BusSolnOrdCstmStsMappgEnhcd.ServiceDocumentStatus
                                                                                      and _BusSolnOrdCstmStsMappgEnhcd.Language = $session.system_language

  association [0..1] to I_SrvcLifeCycleSystemStatusT  as _SrvcLifeCycleSystemStatusT  on  $projection.BusSolnOrdStatus         = _SrvcLifeCycleSystemStatusT.SrvcLifeCycleSystemStatus
                                                                                      and _SrvcLifeCycleSystemStatusT.Language = $session.system_language

//  association [1]    to I_BusinessPartner             as _ServiceDocCreatedBy         on  $projection.ServiceDocumentCreatedByUser = _ServiceDocCreatedBy.BusinessPartner

//  association [1]    to I_BusinessPartner             as _ServiceDocChangedBy         on  $projection.ServiceDocumentChangedByUser = _ServiceDocChangedBy.BusinessPartner

  association [0..1] to I_SrvcMgmtObjectStatus        as _SolutionOrderStatus         on  $projection.BusinessSolutionOrderUUID               = _SolutionOrderStatus.SrvcMgmtObjectUUID
                                                                                      and (
                                                                                         _SolutionOrderStatus.SrvcMgmtObjectStatus            = 'I1002'
                                                                                         or _SolutionOrderStatus.SrvcMgmtObjectStatus         = 'I1003'
                                                                                         or _SolutionOrderStatus.SrvcMgmtObjectStatus         = 'I1004'
                                                                                         or _SolutionOrderStatus.SrvcMgmtObjectStatus         = 'I1005'
                                                                                       )
                                                                                      and _SolutionOrderStatus.SrvcMgmtObjectStatusIsInactive = ''

  association [0..*] to I_CustMgmtPartner             as _PersonResponsible           on  $projection.BusinessSolutionOrder               = _PersonResponsible.CustMgmtDocument
                                                                                      and _PersonResponsible.CustMgmtObjectType           = 'BUS2000172'
                                                                                      and _PersonResponsible.CustMgmtPartFunctionCategory = '0008'



{
       @ObjectModel.readOnly: true
       @Consumption.semanticObject: 'BusinessSolutionOrder'
       @Search: {
           defaultSearchElement: true,
           ranking: #HIGH,
           fuzzinessThreshold: 1.0 }
  key  SolutionOrder.ServiceDocument                                                         as BusinessSolutionOrder,

       @Search: {
           defaultSearchElement: true,
           ranking: #HIGH,
           fuzzinessThreshold: 0.8 }
       SolutionOrder.ServiceDocumentDescription                                              as BusSolnOrdDescription,

       // Partners

       @ObjectModel.text.element: [ 'RespEmployeeAtPartnerName' ]
       SolutionOrder.ResponsibleEmployee                                                     as RespEmployeeBusinessPartnerId,

       @UI.hidden: true
       @ObjectModel.text.element: [ 'SoldToPartyName' ]
       @Search: {
           defaultSearchElement: true,
           ranking: #MEDIUM,
           fuzzinessThreshold: 0.9 }
       SolutionOrder.SoldToParty,

       @ObjectModel.text.element: [ 'CompanyContactPersonFullName' ]
       SolutionOrder.ContactPerson                                                           as ContactPersonBusinessPartnerId, // ContactPerson,


       @UI.hidden: true
       SolutionOrder.TransactionCurrency,

       @Consumption.filter.hidden: true
       @Semantics: { amount : { currencyCode: 'TransactionCurrency' } }
       SolutionOrder.ServiceDocNetAmount                                                     as BusSolnOrdNetAmount,

       @Consumption.filter.hidden: true
       @Semantics: { amount : { currencyCode: 'TransactionCurrency' } }
       SolutionOrder.ServiceDocGrossAmount                                                   as BusSolnOrdGrossAmount,


       @ObjectModel.text.element: ['ServiceDocumentStatusName']
       @Semantics.text: true
       SolutionOrder.ServiceDocumentStatus                                                   as BusSolnOrdStatus,

       @UI.hidden: true
       case SolutionOrder._ServiceDocumentType.StatusProfile
       when ''
       then _SrvcLifeCycleSystemStatusT.SrvcLifeCycleSystemStatusName
       else
       case _BusSolnOrdCstmStsMappgEnhcd.ServiceDocumentStatus
       when ''
       then _SrvcLifeCycleSystemStatusT.SrvcLifeCycleSystemStatusName
       else _BusSolnOrdCstmStsMappgEnhcd.StatusDescription
       end
       end                                                                                   as ServiceDocumentStatusName,

       @ObjectModel.text.element: ['ServiceDocumentHasErrorName']
       @Semantics.booleanIndicator
       SolutionOrder.ServiceDocumentHasError                                                 as BusSolnOrdHasError,

       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._ServiceDocHasError._ServiceDocHasErrorText[1:Language = $session.system_language].ServiceDocumentHasErrorName as ServiceDocumentHasErrorName,


       // Admin fields for Solution Orders

       @Semantics.businessDate.at: true
       SolutionOrder.ServiceDocumentCreationDate                                             as CreationDate,


       @Consumption.filter.hidden: true
       SolutionOrder.ServiceDocumentChangedByUser,
       
       SolutionOrder.PostingDate,

       @Consumption.filter.hidden: true
       SolutionOrder.ServiceDocumentChangedDate                                              as LastChangedDate,

       @Consumption.filter.hidden: true
//       @ObjectModel.text.element: [ 'BusinessPartnerFullName' ]

       SolutionOrder.ServiceDocumentCreatedByUser,

//       @UI.hidden: true

//       _ServiceDocCreatedBy.BusinessPartnerFullName                                          as BusinessPartnerFullName,


//       @UI.hidden: true

//       _ServiceDocChangedBy.BusinessPartnerFullName                                          as LastChangedByUserName,

       
       @UI.hidden: true
       _SolutionOrderStatus.SrvcMgmtObjectStatus                                             as SystemStatus,

       SolutionOrder._ServiceDocumentType.StatusProfile,

       @EndUserText.label: 'External Reference'
       @Search: {
           defaultSearchElement: true,
           ranking: #MEDIUM,
           fuzzinessThreshold: 0.8 }
       SolutionOrder.PurchaseOrderByCustomer,

       @ObjectModel.text.element: [ 'SalesOrganizationName' ]
       SolutionOrder.SalesOrganization,

       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._SalesOrganization._Text[1:Language =  $session.system_language ].SalesOrganizationName,

       @ObjectModel.text.element: [ 'DistributionChannelName' ]
       SolutionOrder.DistributionChannel,

       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._DistributionChannel._Text[1:Language =  $session.system_language ].DistributionChannelName,
       
       @ObjectModel.text.element: [ 'DivisionName' ]
       SolutionOrder.Division,

       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._Division._Text[1:Language =  $session.system_language ].DivisionName,
              
       @ObjectModel.text.element: [ 'SalesOfficeName' ]
       SolutionOrder.SalesOffice,
       
       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._SalesOffice._Text[1:Language =  $session.system_language ].SalesOfficeName,

       @ObjectModel.text.element: [ 'SalesGroupName' ]
       SolutionOrder.SalesGroup,

       @Semantics.text: true
       @UI.hidden: true
       SolutionOrder._SalesGroup._Text[1:Language =  $session.system_language ].SalesGroupName,

       @UI.hidden: true
       SolutionOrder.ServiceDocumentUUID                                                     as BusinessSolutionOrderUUID,
       @UI.hidden: true
       SolutionOrder.ServiceDocumentType,
       @UI.hidden: true
       SolutionOrder._RespEmployee.BusinessPartnerFullName                                   as RespEmployeeAtPartnerName,
       @UI.hidden: true
       SolutionOrder._SoldToParty.BusinessPartnerFullName                                    as SoldToPartyName,
       @UI.hidden: true
       SolutionOrder._ContactPerson.BusinessPartnerFullName                                  as CompanyContactPersonFullName,

       // Associations

       @UI.hidden: true
       SolutionOrder._ContactPerson,
       @UI.hidden: true
       SolutionOrder._RespEmployee,
       @UI.hidden: true
       SolutionOrder._SoldToParty,
       @UI.hidden: true
       _PersonResponsible,
       @UI.hidden: true
       SolutionOrder._SalesOrganization,
       @UI.hidden: true
       SolutionOrder._DistributionChannel,
       @UI.hidden: true
       SolutionOrder._Division,
       @UI.hidden: true
       SolutionOrder._SalesOffice,
       @UI.hidden: true
       SolutionOrder._SalesGroup,

       // DCL Fields

       @UI.hidden: true
       SolutionOrder.SalesOrganizationOrgUnitID,
       @UI.hidden: true
       SolutionOrder.SalesOfficeOrgUnitID,
       @UI.hidden: true
       SolutionOrder.SalesGroupOrgUnitID,
       @UI.hidden: true
       SolutionOrder.ServiceOrganization,
       @UI.hidden: true
       SolutionOrder.ServiceObjectType
}
where
      SolutionOrder.ServiceObjectType           =  'BUS2000172'
  and SolutionOrder.ServiceDocumentTemplateType =  ''
  and SolutionOrder.ServiceDocCreationDateTime  >  dats_tims_to_tstmp(dats_add_days( tstmp_to_dats(tstmp_current_utctimestamp(), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), - Customer360BusDocSetting.BusDocumentDurationInDays, 'INITIAL'), tstmp_to_tims(tstmp_current_utctimestamp(), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')
  and SolutionOrder.ServiceDocCreationDateTime  <= tstmp_current_utctimestamp()