C_QuantityContractAcctAssgmt

DDL: C_QUANTITYCONTRACTACCTASSGMT SQL: CQTYCONTRACCT Type: view CONSUMPTION Package: ODATA_MM_ANALYTICS

Quantity Contract Account Assignment

C_QuantityContractAcctAssgmt is a Consumption CDS View (Cube) that provides data about "Quantity Contract Account Assignment" in SAP S/4HANA. It reads from 8 data sources and exposes 100 fields with key fields PurchaseContract, PurchaseContractItem, AccountAssignmentNumber, ReleaseOrder, ReleaseOrderItem. It has 10 associations to related views. Part of development package ODATA_MM_ANALYTICS.

Data Sources (8)

SourceAliasJoin Type
P_UNSGNDMATGRPTXT _Doc left_outer
P_UNSGNDMATGRPTXT _Doc left_outer
P_QuantityContractAcctAssgmt P_QuantityContractAcctAssgmt from
P_QuantityContractPrediction P_QuantityContractPrediction union_all
I_PurchasingCategoryMatlGroup PurchasingCategoryMatlGroup left_outer
I_PurchasingCategoryMatlGroup PurchasingCategoryMatlGroup left_outer
I_CalendarDate RelevantDates left_outer
I_CalendarDate RelevantDates left_outer

Parameters (3)

NameTypeDefault
P_DisplayCurrency displaycurrency
P_StartDate vdm_validitystart
P_EndDate vdm_validitystart

Associations (10)

CardinalityTargetAliasCondition
[1..1] I_Material _Material $projection.Material = _Material.Material
[1..1] I_MaterialGroup _MaterialGroup $projection.MaterialGroup = _MaterialGroup.MaterialGroup
[1..1] I_Supplier _Supplier $projection.Supplier = _Supplier.Supplier
[1..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[1..1] I_PurchasingOrganization _PurchasingOrganization $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
[1..1] I_PurchasingGroup _PurchasingGroup $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
[1..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[1..1] I_PurchasingDocumentType _PurchasingDocumentType $projection.PurchaseContractType = _PurchasingDocumentType.PurchasingDocumentType and $projection.PurchasingDocumentCategory = _PurchasingDocumentType.PurchasingDocumentCategory
[1..1] I_PurgDocumentItemCategory _PurgDocumentItemCategory $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory
[1..1] I_PurchasingDocumentCategory _PurchaseOrderCategory $projection.PurchasingDocumentCategory = _PurchaseOrderCategory.PurchasingDocumentCategory

Annotations (12)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
AbapCatalog.sqlViewName CQTYCONTRACCT view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.viewType #CONSUMPTION view
Analytics.dataCategory #CUBE view
Metadata.allowExtensions true view
EndUserText.label Quantity Contract Account Assignment view

Fields (100)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract PurchaseContractItem PurchaseContract
KEY PurchaseContractItem PurchaseContractItem PurchaseContractItem
KEY AccountAssignmentNumber AccountAssignmentNumber
KEY ReleaseOrder ReleaseOrder
KEY ReleaseOrderItem ReleaseOrderItem
PurchaseOrderItemUniqueID
FormattedPurchaseContractItem FormattedPurchaseContractItem
DocNumber
Supplier Supplier
PurchasingGroup PurchaseContractItem PurchasingGroup
PurchasingOrganization PurchaseContractItem PurchasingOrganization
CompanyCode PurchaseContractItem CompanyCode
PurchasingDocumentCategory PurchasingDocumentCategory
PurchaseContractType PurchaseContractType
PurchasingDocumentItemCategory PurchasingDocumentItemCategory
Material PurchaseContractItem Material
MaterialGroup PurchaseContractItem MaterialGroup
Plant PurchaseContractItem Plant
CostCenter CostCenter
PurchasingCategory
PurgCatNameendasPurgCatName
CreatedByUser CreatedByUser
ValidityEndDate ValidityEndDate
CalendarYear I_CalendarDate CalendarYear
CalendarQuarter I_CalendarDate CalendarQuarter
CalendarMonth I_CalendarDate CalendarMonth
CalendarWeek I_CalendarDate CalendarWeek
DisplayCurrency PurchaseContractItem DisplayCurrency
OrderQuantityUnit PurchaseContractItem OrderQuantityUnit
TargetQuantity PurchaseContractItem TargetQuantity
TargetAmount
RelOrdLvlContractTargetAmount
ReleaseOrderItemNetAmount
ContrNetPrRltvReleasedAmount
ReleaseOrderItemOrderQuantity ReleaseOrderItemOrderQuantity
PredictedConsumptionAmount
ContractExpiryPredictedDate
PredictedDaysToContrExpiry
PredictiveConsumptionInPct
NumberOfPurchaseOrders Number of Purchase Orders
_PurchaseOrderCategory _PurchaseOrderCategory
_PurchasingDocumentType _PurchasingDocumentType
_PurgDocumentItemCategory _PurgDocumentItemCategory
_Material _Material
_MaterialGroup _MaterialGroup
_Plant _Plant
_Supplier _Supplier
_PurchasingGroup _PurchasingGroup
_PurchasingOrganization _PurchasingOrganization
P_DisplayCurrency
P_StartDate
KEY PurchaseContractItem PurchaseContractItem
KEY AccountAssignmentNumber AccountAssignmentNumber
KEY ReleaseOrder ReleaseOrder
KEY ReleaseOrderItem ReleaseOrderItem
PurchaseOrderItemUniqueID
FormattedPurchaseContractItem FormattedPurchaseContractItem
DocNumber
Supplier Supplier
PurchasingGroup PurchasingGroup
PurchasingOrganization PurchasingOrganization
CompanyCode CompanyCode
PurchasingDocumentCategory PurchasingDocumentCategory
PurchaseContractType PurchaseContractType
PurchasingDocumentItemCategory PurchasingDocumentItemCategory
Material Material
MaterialGroup ContractPrediction MaterialGroup
Plant Plant
CostCenter CostCenter
PurchasingCategory
PurgCatNameendasPurgCatName
CreatedByUser CreatedByUser
ValidityEndDate ValidityEndDate
CalendarYear I_CalendarDate CalendarYear
CalendarQuarter I_CalendarDate CalendarQuarter
CalendarMonth I_CalendarDate CalendarMonth
CalendarWeek I_CalendarDate CalendarWeek
DisplayCurrency DisplayCurrency
OrderQuantityUnit OrderQuantityUnit
TargetQuantity 0
TargetAmount
RelOrdLvlContractTargetAmount 0
ReleaseOrderItemNetAmount
ContrNetPrRltvReleasedAmount
ReleaseOrderItemOrderQuantity
PredictedConsumptionAmount PredictedConsumptionAmount
ContractExpiryPredictedDate ContractExpiryPredictedDate
PredictedDaysToContrExpiry PredictedDaysToContrExpiry
PredictiveConsumptionInPct
NumberOfPurchaseOrders Number of Purchase Orders
_PurchaseOrderCategory _PurchaseOrderCategory
_PurchasingDocumentType _PurchasingDocumentType
_PurgDocumentItemCategory _PurgDocumentItemCategory
_Material _Material
_MaterialGroup _MaterialGroup
_Plant _Plant
_Supplier _Supplier
_PurchasingGroup _PurchasingGroup
_PurchasingOrganization _PurchasingOrganization
_CompanyCode _CompanyCode
@ClientHandling.algorithm: #SESSION_VARIABLE //Inserted by VDM CDS Suite Plugin

@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality:  #D
@ObjectModel.usageType.sizeCategory: #L
@AbapCatalog.sqlViewName: 'CQTYCONTRACCT'
//Commented by VDM CDS Suite Plugin:@ClientDependent: true

@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType : #CONSUMPTION
@Analytics.dataCategory: #CUBE
@Metadata.allowExtensions:true
@EndUserText.label: 'Quantity Contract Account Assignment'

define view C_QuantityContractAcctAssgmt

  with parameters
    P_DisplayCurrency : displaycurrency,

    P_StartDate       : vdm_validitystart,

    P_EndDate         : vdm_validitystart


  as select from    P_QuantityContractAcctAssgmt( P_DisplayCurrency:$parameters.P_DisplayCurrency,
                                                  P_StartDate:$parameters.P_StartDate,
                                                  P_EndDate:$parameters.P_EndDate) as PurchaseContractItem

    left outer join I_CalendarDate                                                 as RelevantDates               on ReleaseOrderDate = RelevantDates.CalendarDate

    left outer join I_PurchasingCategoryMatlGroup                                  as PurchasingCategoryMatlGroup on PurchaseContractItem.MaterialGroup = PurchasingCategoryMatlGroup.MaterialGroup

    left outer join P_UNSGNDMATGRPTXT                                              as _Doc                        on DocNumber = _Doc.DocNumber

  association [1..1] to I_Material                   as _Material                 on  $projection.Material = _Material.Material

  association [1..1] to I_MaterialGroup              as _MaterialGroup            on  $projection.MaterialGroup = _MaterialGroup.MaterialGroup

  association [1..1] to I_Supplier                   as _Supplier                 on  $projection.Supplier = _Supplier.Supplier

  association [1..1] to I_Plant                      as _Plant                    on  $projection.Plant = _Plant.Plant

  association [1..1] to I_PurchasingOrganization     as _PurchasingOrganization   on  $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization

  association [1..1] to I_PurchasingGroup            as _PurchasingGroup          on  $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
  
  association [1..1] to I_CompanyCode                as _CompanyCode              on $projection.CompanyCode = _CompanyCode.CompanyCode

  association [1..1] to I_PurchasingDocumentType     as _PurchasingDocumentType   on  $projection.PurchaseContractType       = _PurchasingDocumentType.PurchasingDocumentType
                                                                                  and $projection.PurchasingDocumentCategory = _PurchasingDocumentType.PurchasingDocumentCategory

  association [1..1] to I_PurgDocumentItemCategory   as _PurgDocumentItemCategory on  $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory

  association [1..1] to I_PurchasingDocumentCategory as _PurchaseOrderCategory    on  $projection.PurchasingDocumentCategory = _PurchaseOrderCategory.PurchasingDocumentCategory //2968854


{
  key PurchaseContractItem.PurchaseContract,
  key PurchaseContractItem.PurchaseContractItem,
  key AccountAssignmentNumber,
  key ReleaseOrder,
  key ReleaseOrderItem,

      concat(ReleaseOrder,ReleaseOrderItem)                                                                                   as PurchaseOrderItemUniqueID,

      FormattedPurchaseContractItem,

      cast('1' as exbu_type )                                                                                                 as DocNumber,

      @ObjectModel.foreignKey.association: '_Supplier'
      Supplier,
      @ObjectModel.foreignKey.association: '_PurchasingGroup'
      PurchaseContractItem.PurchasingGroup,
      @ObjectModel.foreignKey.association: '_PurchasingOrganization'
      PurchaseContractItem.PurchasingOrganization,
      @ObjectModel.foreignKey.association: '_CompanyCode'
      PurchaseContractItem.CompanyCode,

      @ObjectModel.foreignKey.association: '_PurchaseOrderCategory' //2968854

      PurchasingDocumentCategory,
      @ObjectModel.foreignKey.association: '_PurchasingDocumentType'
      PurchaseContractType,
      @ObjectModel.foreignKey.association: '_PurgDocumentItemCategory'
      PurchasingDocumentItemCategory,

      @ObjectModel.foreignKey.association: '_Material'
      PurchaseContractItem.Material,
      @ObjectModel.foreignKey.association: '_MaterialGroup'
      PurchaseContractItem.MaterialGroup,
      @ObjectModel.foreignKey.association: '_Plant'
      PurchaseContractItem.Plant,

      CostCenter,

      cast(coalesce(PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory,'') as /srmsmc/purchasing_category_id) as PurchasingCategory,
      case when PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName is null then
        _Doc.DomainText //  'Material Group not linked to purchasing category'

      else PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName   end                                                  as PurgCatName,

      CreatedByUser,
      ValidityEndDate,
      @Semantics.calendar.year: true
      RelevantDates.CalendarYear,
      RelevantDates.CalendarQuarter,
      RelevantDates.CalendarMonth,
      RelevantDates.CalendarWeek,

      @Semantics.currencyCode: true
      PurchaseContractItem.DisplayCurrency,

      @Semantics.unitOfMeasure: true
      PurchaseContractItem.OrderQuantityUnit,

      //@Aggregation.default: #SUM

      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      PurchaseContractItem.TargetQuantity,

      @Aggregation.default: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast( ContractNetPriceAmount * AverageTargetQuantity as mm_a_target_amount )                                            as TargetAmount,

      @Aggregation.default: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast( ContractNetPriceAmount * TargetQuantity as mm_a_target_amount )                                                   as RelOrdLvlContractTargetAmount,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast(ReleaseOrderItemNetAmount as mm_a_release_ord_net_amt_21_2 ) as ReleaseOrderItemNetAmount,  //3229617


      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast( ContractNetPriceAmount * ReleaseOrderItemOrderQuantity  as mm_a_release_ord_net_amt_21_2 ) as ContrNetPrRltvReleasedAmount,  //3229617


      //@DefaultAggregation: #SUM

      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      ReleaseOrderItemOrderQuantity,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast(0  as mm_a_release_order_net_amount )                                                                              as PredictedConsumptionAmount,

      @DefaultAggregation: #MAX
      cast ( '00000000' as mm_a_cntr_expiry_predict_date)                                                                     as ContractExpiryPredictedDate,

      @DefaultAggregation: #MAX
      cast(0  as abap.int4 )                                                                                                  as PredictedDaysToContrExpiry,

      @DefaultAggregation: #MAX
      cast( 0 as abap.dec(15,2) )                                                                                             as PredictiveConsumptionInPct,

      // Added for ATC,not used in KPI,dont remove as the CDS has @Metadata.allowExtensions:true

      @Consumption.hidden: true
      @DefaultAggregation: #SUM
      @EndUserText.label: 'Number of Purchase Orders'
      cast(0  as abap.int4 )                                                                                                  as NumberOfPurchaseOrders,


      _PurchaseOrderCategory, //2968854

      _PurchasingDocumentType,
      _PurgDocumentItemCategory,
      _Material,
      _MaterialGroup,
      _Plant,
      _Supplier,
      _PurchasingGroup,
      _PurchasingOrganization,
      _CompanyCode

}
union all select from P_QuantityContractPrediction(P_DisplayCurrency:$parameters.P_DisplayCurrency,
                                                   P_StartDate:$parameters.P_StartDate,
                                                   P_EndDate:$parameters.P_EndDate) as ContractPrediction

  left outer join     I_PurchasingCategoryMatlGroup                                 as PurchasingCategoryMatlGroup on ContractPrediction.MaterialGroup = PurchasingCategoryMatlGroup.MaterialGroup

  left outer join     I_CalendarDate                                                as RelevantDates               on ContractPrediction.ContractExpiryPredictedDate = RelevantDates.CalendarDate
  left outer join     P_UNSGNDMATGRPTXT                                             as _Doc                        on DocNumber = _Doc.DocNumber

association [1..1] to I_Material                   as _Material                 on  $projection.Material = _Material.Material

association [1..1] to I_MaterialGroup              as _MaterialGroup            on  $projection.MaterialGroup = _MaterialGroup.MaterialGroup

association [1..1] to I_Supplier                   as _Supplier                 on  $projection.Supplier = _Supplier.Supplier

association [1..1] to I_Plant                      as _Plant                    on  $projection.Plant = _Plant.Plant

association [1..1] to I_PurchasingOrganization     as _PurchasingOrganization   on  $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization

association [1..1] to I_PurchasingGroup            as _PurchasingGroup          on  $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup

association [1..1] to I_CompanyCode                as _CompanyCode              on  $projection.CompanyCode = _CompanyCode.CompanyCode

association [1..1] to I_PurchasingDocumentType     as _PurchasingDocumentType   on  $projection.PurchaseContractType       = _PurchasingDocumentType.PurchasingDocumentType
                                                                                and $projection.PurchasingDocumentCategory = _PurchasingDocumentType.PurchasingDocumentCategory

association [1..1] to I_PurgDocumentItemCategory   as _PurgDocumentItemCategory on  $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory

association [1..1] to I_PurchasingDocumentCategory as _PurchaseOrderCategory    on  $projection.PurchasingDocumentCategory = _PurchaseOrderCategory.PurchasingDocumentCategory //2968854



{
  key PurchaseContract                                                                                                        as PurchaseContract,
  key PurchaseContractItem                                                                                                    as PurchaseContractItem,
  key AccountAssignmentNumber,
  key ReleaseOrder,
  key ReleaseOrderItem,

      concat(ReleaseOrder,ReleaseOrderItem)                                                                                   as PurchaseOrderItemUniqueID,

      FormattedPurchaseContractItem,

      cast('1' as exbu_type )                                                                                                 as DocNumber,

      @ObjectModel.foreignKey.association: '_Supplier'
      Supplier,
      @ObjectModel.foreignKey.association: '_PurchasingGroup'
      PurchasingGroup,
      @ObjectModel.foreignKey.association: '_PurchasingOrganization'
      PurchasingOrganization,
      @ObjectModel.foreignKey.association: '_CompanyCode'
      CompanyCode,

      @ObjectModel.foreignKey.association: '_PurchaseOrderCategory' //2968854

      PurchasingDocumentCategory,
      @ObjectModel.foreignKey.association: '_PurchasingDocumentType'
      PurchaseContractType,
      @ObjectModel.foreignKey.association: '_PurgDocumentItemCategory'
      PurchasingDocumentItemCategory,

      @ObjectModel.foreignKey.association: '_Material'
      Material,
      @ObjectModel.foreignKey.association: '_MaterialGroup'
      ContractPrediction.MaterialGroup,
      @ObjectModel.foreignKey.association: '_Plant'
      Plant,

      CostCenter,

      cast(coalesce(PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory,'') as /srmsmc/purchasing_category_id) as PurchasingCategory,
      case when PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName is null then
          _Doc.DomainText //  'Material Group not linked to purchasing category'

       else PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName   end                                                 as PurgCatName,

      CreatedByUser,
      ValidityEndDate,
      RelevantDates.CalendarYear,
      RelevantDates.CalendarQuarter,
      RelevantDates.CalendarMonth,
      RelevantDates.CalendarWeek,

      @Semantics.currencyCode: true
      DisplayCurrency,

      @Semantics.unitOfMeasure: true
      OrderQuantityUnit,

      //@Aggregation.default: #SUM

      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      0                                                                                                                       as TargetQuantity,

      @Aggregation.default: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast( 0 as mm_a_target_amount )                                                                                         as TargetAmount,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      0                                                                                                                       as RelOrdLvlContractTargetAmount,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast(0 as mm_a_release_ord_net_amt_21_2 )                                                                               as ReleaseOrderItemNetAmount,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast(0 as mm_a_release_ord_net_amt_21_2 )                                                                               as ContrNetPrRltvReleasedAmount,  //3229617


      //@DefaultAggregation: #SUM

      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      cast( 0 as mm_a_release_order_quantity )                                                                                as ReleaseOrderItemOrderQuantity,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      PredictedConsumptionAmount,

      @DefaultAggregation: #MAX
      ContractExpiryPredictedDate,

      @DefaultAggregation: #MAX
      PredictedDaysToContrExpiry,

      @DefaultAggregation: #MAX
      cast( 1 as abap.dec(15,2) )                                                                                             as PredictiveConsumptionInPct,

      // Added for ATC,not used in KPI,dont remove as the CDS has @Metadata.allowExtensions:true

      @Consumption.hidden: true
      @DefaultAggregation: #SUM
      @EndUserText.label: 'Number of Purchase Orders'
      cast(0  as abap.int4 )                                                                                                  as NumberOfPurchaseOrders,

      _PurchaseOrderCategory, //2968854

      _PurchasingDocumentType,
      _PurgDocumentItemCategory,
      _Material,
      _MaterialGroup,
      _Plant,
      _Supplier,
      _PurchasingGroup,
      _PurchasingOrganization,
      _CompanyCode
      //

      //    _PurchaseContractItem,

      //    _PurchaseContract,

      //    _CalendarDate


}
where
  PredictedConsumptionAmount >= 0