A_BusSolnOrdEntProjectItem

DDL: A_BUSSOLNORDENTPROJECTITEM Type: view COMPOSITE Package: ODATA_CRMS4_SOLUTIONORDER

Enterprise Project Item

A_BusSolnOrdEntProjectItem is a Composite CDS View that provides data about "Enterprise Project Item" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentItemEnhcd) and exposes 36 fields with key fields BusinessSolutionOrder, BusinessSolutionOrderItem. It has 11 associations to related views. Part of development package ODATA_CRMS4_SOLUTIONORDER.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentItemEnhcd I_ServiceDocumentItemEnhcd from

Associations (11)

CardinalityTargetAliasCondition
[1..1] A_BusinessSolutionOrder _BusinessSolutionOrder $projection.BusinessSolutionOrder = _BusinessSolutionOrder.BusinessSolutionOrder
[0..1] A_BusSolnOrdItmFUPEntProject _EnterpriseProject $projection.BusinessSolutionOrder = _EnterpriseProject.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _EnterpriseProject.BusinessSolutionOrderItem
[0..*] I_SrvcDocAppointment _EnterpriseProjectDates $projection.BusinessSolutionOrderItemUUID = _EnterpriseProjectDates.SrvcMgmtObjectUUID
[0..1] I_CustMgmtPartner _ProjectManager $projection.BusinessSolutionOrder = _ProjectManager.CustMgmtDocument and $projection.BusinessSolutionOrderItem = _ProjectManager.CustMgmtDocumentItem and _ProjectManager.CustMgmtPartFunctionCategory = '0093' and _ProjectManager.CustMgmtObjectType = 'BUS2000172'
[0..*] A_BusSolutionOrderItemText _Text $projection.BusinessSolutionOrder = _Text.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _Text.BusinessSolutionOrderItem
[0..1] I_CustMgmtExtRefID _ExternalReference $projection.BusinessSolutionOrder = _ExternalReference.CustMgmtDocument and _ExternalReference.CustMgmtObjectType = 'BUS2000172' and $projection.BusinessSolutionOrderItem = _ExternalReference.CustMgmtDocumentItem and _ExternalReference.CustMgmtExtRefIDType = '0013'
[0..1] E_ServiceDocumentItem _Extension _Extension.ServiceCategory = 'BUS2000172' and $projection.BusinessSolutionOrder = _Extension.ServiceOrderItem and $projection.BusinessSolutionOrderItem = _Extension.ServiceLineExternalID
[0..*] A_BusSolnOrdItmUserStatus _UserStatus $projection.BusinessSolutionOrder = _UserStatus.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _UserStatus.BusinessSolutionOrderItem
[0..1] I_ServiceDocumentItemSuccssr_3 _ProjectLinkage _ProjectLinkage.ServiceDocumentItmRelationType = 'SOL1' and _ProjectLinkage.ServiceDocItmSuccssrBusObjType = 'CPMPROJI' and $projection.ServiceDocumentItemCharUUID = _ProjectLinkage.ServiceDocumentItemCharUUID
[0..1] I_UnitOfMeasure _QuantityUnit $projection.QuantityUnit = _QuantityUnit.UnitOfMeasure
[0..*] A_BusSolnOrdItmPartner _Partner $projection.BusinessSolutionOrder = _Partner.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _Partner.BusinessSolutionOrderItem

Annotations (15)

NameValueLevelField
EndUserText.label Enterprise Project Item view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
AbapCatalog.sqlViewName ABSOENTPROJITM view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
Metadata.ignorePropagatedAnnotations true view

Fields (36)

KeyFieldSource TableSource FieldDescription
KEY BusinessSolutionOrder ServiceDocument
KEY BusinessSolutionOrderItem ServiceDocumentItem
BusinessSolutionOrderItemUUID ServiceDocumentItemUUID
BusSolnOrdItmCategory ServiceDocItemCategory
Product Product
Quantity ServiceDocumentItemQuantity
QuantityUnit ServiceDocItemQuantityUnit
BusSolnOrdItmQtyUnitSAPCode
BusSolnOrdItmQtyUnitISOCode
BusSolnOrdItmDescription ServiceDocumentItemDescription
ServiceDocumentItemNetAmount ServiceDocumentItemNetAmount
TransactionCurrency TransactionCurrency
BusSolnOrdItmExtReference _ExternalReference CustMgmtExtRefID
ParentServiceDocumentItemUUID ParentServiceDocumentItemUUID
ParentBusSolnOrdItem _ParentServiceDocItem ServiceDocumentItem
BusSolnOrdItemBundleProduct BusSolnOrdItemBundleProduct
BusSolnOrdItemBundleItem BusSolnOrdItemBundleItem
BusSolnOrdItmIsReleased ServiceDocumentItemIsReleased
BusSolnOrdItmDistrStatus
BusSolnOrdItmDistrStatusName
Language Language
SoldToParty SoldToParty
ProjectManager _ProjectManager CustMgmtBusinessPartner
PersonResponsible
clientNULLasProjectStartDate
clientNULLasProjectEndDate
ResponsibleCostCenter ResponsibleCostCenter
ProfitCenter ProfitCenter
EnterpriseProjectServiceOrg EnterpriseProjectServiceOrg
ServiceDocumentItemCharUUID ServiceDocumentItemCharUUID
ProjectelseendasLinkedProject
_BusinessSolutionOrder _BusinessSolutionOrder
_EnterpriseProject _EnterpriseProject
_Text _Text
_UserStatus _UserStatus
_Partner _Partner
@EndUserText.label: 'Enterprise Project Item'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@AbapCatalog: {
  sqlViewName: 'ABSOENTPROJITM',
  compiler.compareFilter: true,
  preserveKey: true
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
   createEnabled: true,
   updateEnabled: true,
   deleteEnabled: true,
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #C,
     sizeCategory:   #L
   }
}
@Metadata.ignorePropagatedAnnotations: true

define view A_BusSolnOrdEntProjectItem
  as select from I_ServiceDocumentItemEnhcd
  association [1..1] to A_BusinessSolutionOrder        as _BusinessSolutionOrder  on  $projection.BusinessSolutionOrder = _BusinessSolutionOrder.BusinessSolutionOrder
  association [0..1] to A_BusSolnOrdItmFUPEntProject   as _EnterpriseProject      on  $projection.BusinessSolutionOrder     = _EnterpriseProject.BusinessSolutionOrder
                                                                                  and $projection.BusinessSolutionOrderItem = _EnterpriseProject.BusinessSolutionOrderItem
  association [0..*] to I_SrvcDocAppointment           as _EnterpriseProjectDates on  $projection.BusinessSolutionOrderItemUUID = _EnterpriseProjectDates.SrvcMgmtObjectUUID
  association [0..1] to I_CustMgmtPartner              as _ProjectManager         on  $projection.BusinessSolutionOrder            = _ProjectManager.CustMgmtDocument
                                                                                  and $projection.BusinessSolutionOrderItem        = _ProjectManager.CustMgmtDocumentItem
                                                                                  and _ProjectManager.CustMgmtPartFunctionCategory = '0093'
                                                                                  and _ProjectManager.CustMgmtObjectType           = 'BUS2000172'
  association [0..*] to A_BusSolutionOrderItemText     as _Text                   on  $projection.BusinessSolutionOrder     = _Text.BusinessSolutionOrder
                                                                                  and $projection.BusinessSolutionOrderItem = _Text.BusinessSolutionOrderItem
  association [0..1] to I_CustMgmtExtRefID             as _ExternalReference      on  $projection.BusinessSolutionOrder       = _ExternalReference.CustMgmtDocument
                                                                                  and _ExternalReference.CustMgmtObjectType   = 'BUS2000172'
                                                                                  and $projection.BusinessSolutionOrderItem   = _ExternalReference.CustMgmtDocumentItem
                                                                                  and _ExternalReference.CustMgmtExtRefIDType = '0013'
  association [0..1] to E_ServiceDocumentItem          as _Extension              on  _Extension.ServiceCategory            = 'BUS2000172'
                                                                                  and $projection.BusinessSolutionOrder     = _Extension.ServiceOrderItem
                                                                                  and $projection.BusinessSolutionOrderItem = _Extension.ServiceLineExternalID
  association [0..*] to A_BusSolnOrdItmUserStatus      as _UserStatus             on  $projection.BusinessSolutionOrder     = _UserStatus.BusinessSolutionOrder
                                                                                  and $projection.BusinessSolutionOrderItem = _UserStatus.BusinessSolutionOrderItem
  association [0..1] to I_ServiceDocumentItemSuccssr_3 as _ProjectLinkage         on  _ProjectLinkage.ServiceDocumentItmRelationType = 'SOL1'
                                                                                  and _ProjectLinkage.ServiceDocItmSuccssrBusObjType = 'CPMPROJI'
                                                                                  and $projection.ServiceDocumentItemCharUUID        = _ProjectLinkage.ServiceDocumentItemCharUUID
  association [0..1] to I_UnitOfMeasure                as _QuantityUnit           on  $projection.QuantityUnit = _QuantityUnit.UnitOfMeasure

  association [0..*] to A_BusSolnOrdItmPartner         as _Partner                on  $projection.BusinessSolutionOrder     = _Partner.BusinessSolutionOrder
                                                                                  and $projection.BusinessSolutionOrderItem = _Partner.BusinessSolutionOrderItem
{
  key   ServiceDocument                                                                as BusinessSolutionOrder,
  key   ServiceDocumentItem                                                            as BusinessSolutionOrderItem,

        @ObjectModel.readOnly: true
        ServiceDocumentItemUUID                                                        as BusinessSolutionOrderItemUUID,
        @ObjectModel.sapObjectNodeTypeReference: 'ServiceDocumentItemCategory'
        ServiceDocItemCategory                                                         as BusSolnOrdItmCategory,
        Product,

        @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
        @Semantics.quantity.unitOfMeasureSapCode: 'BusSolnOrdItmQtyUnitSAPCode'
        @Semantics.quantity.unitOfMeasureIsoCode: 'BusSolnOrdItmQtyUnitISOCode'
        ServiceDocumentItemQuantity                                                    as Quantity,
        @Semantics.unitOfMeasure: true
        ServiceDocItemQuantityUnit                                                     as QuantityUnit,
        cast(_QuantityUnit.UnitOfMeasureSAPCode as sd_ord_qty_sapunit preserving type) as BusSolnOrdItmQtyUnitSAPCode,
        cast(_QuantityUnit.UnitOfMeasureISOCode as sd_ord_qty_isounit preserving type) as BusSolnOrdItmQtyUnitISOCode,

        ServiceDocumentItemDescription                                                 as BusSolnOrdItmDescription,
        @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
        @ObjectModel.readOnly: true
        ServiceDocumentItemNetAmount,
        @ObjectModel.sapObjectNodeTypeReference: 'Currency'
        TransactionCurrency,
        _ExternalReference.CustMgmtExtRefID                                            as BusSolnOrdItmExtReference,
        @ObjectModel.readOnly: true
        ParentServiceDocumentItemUUID,
        @ObjectModel.readOnly: true
        _ParentServiceDocItem.ServiceDocumentItem                                      as ParentBusSolnOrdItem,
        @ObjectModel.readOnly: true
        BusSolnOrdItemBundleProduct,
        @ObjectModel.readOnly: true
        BusSolnOrdItemBundleItem,

        /* STATUS */
        ServiceDocumentItemIsReleased                                                  as BusSolnOrdItmIsReleased,
        case ServiceDocumentItemStatus
        when 'C'  then 'X'
        else ''
        end                                                                            as BusSolnOrdItmIsCompleted,
        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_DISTR_EXIT'
        cast( '' as abap.char( 1 ) )                                                   as BusSolnOrdItmDistrStatus,
        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_DISTR_EXIT'
        cast( '' as abap.char( 60 ) )                                                  as BusSolnOrdItmDistrStatusName,
        Language,

        /* PARTNERS */
        SoldToParty,
        _ProjectManager.CustMgmtBusinessPartner                                        as ProjectManager,
        cast(ResponsibleEmployee as abap.char( 12 ) )                                  as PersonResponsible,

        /*DATES */
        tstmp_to_dats( _EnterpriseProjectDates[1:SrvcDocAppointmentType = 'PROJSTART'].SrvcDocApptStartDateTime,
                       abap_system_timezone( $session.client,'NULL' ),
                       $session.client,'NULL' )                                        as ProjectStartDate,
        tstmp_to_dats( _EnterpriseProjectDates[1:SrvcDocAppointmentType = 'PROJEND'].SrvcDocApptStartDateTime,
                       abap_system_timezone( $session.client,'NULL' ),
                       $session.client,'NULL' )                                        as ProjectEndDate,

        ResponsibleCostCenter,
        ProfitCenter,
        EnterpriseProjectServiceOrg,
        @ObjectModel.readOnly: true
        @Semantics.uuid: true
        ServiceDocumentItemCharUUID,
        case  _ProjectLinkage.ServiceDocumentItmRelationType
        when 'SOL1' then _EnterpriseProject.Project
        else ''
        end                                                                            as LinkedProject,
        _BusinessSolutionOrder,
        _EnterpriseProject,
        _Text,
        _UserStatus,
        _Partner
}
where
      ServiceObjectType             = 'BUS2000172'
  and ServiceDocumentItemObjectType = 'BUS2000193'