A_BusSolnOrdEntProjectItem

DDL: A_BUSSOLNORDENTPROJECTITEM Type: view COMPOSITE

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 30 fields with key fields BusinessSolutionOrder, BusinessSolutionOrderItem. It has 10 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentItemEnhcd I_ServiceDocumentItemEnhcd from

Associations (10)

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

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 (30)

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
BusSolnOrdItmIsReleased ServiceDocumentItemIsReleased
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
@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
{
  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,

        /* STATUS */
        ServiceDocumentItemIsReleased                 as BusSolnOrdItmIsReleased,
        case ServiceDocumentItemStatus
        when 'C'  then 'X'
        else ''
        end                                           as BusSolnOrdItmIsCompleted,

        /* 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
}
where
      ServiceObjectType             = 'BUS2000172'
  and ServiceDocumentItemObjectType = 'BUS2000193'