C_PurchaseOrderMassUpdate

DDL: C_PURCHASEORDERMASSUPDATE SQL: CPOMASSUPDATE Type: view CONSUMPTION

Mass Changes to Purchase Orders

C_PurchaseOrderMassUpdate is a Consumption CDS View that provides data about "Mass Changes to Purchase Orders" in SAP S/4HANA. It reads from 1 data source (I_PurchaseOrder) and exposes 48 fields with key field PurchaseOrder. It has 3 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_PurchaseOrder I_PurchaseOrder from

Associations (3)

CardinalityTargetAliasCondition
[0..*] C_PurchaseOrderItemMassUpdate _PurchaseOrderItemMassUpdate $projection.PurchaseOrder = _PurchaseOrderItemMassUpdate.PurchaseOrder
[1..*] C_POMassUpdtDelivSchedItm _ScheduleLine $projection.PurchaseOrder = _ScheduleLine.PurchaseOrder
[0..1] I_PurchaseOrderStatusText _PurchaseOrderStatus $projection.PurchaseOrder = _PurchaseOrderStatus.PurchaseOrder

Annotations (15)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName CPOMASSUPDATE view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Mass Changes to Purchase Orders view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
Metadata.ignorePropagatedAnnotations true view
UI.headerInfo.typeName Purchase Order Header view
UI.headerInfo.typeNamePlural Purchase Order Headers view

Fields (48)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder PurchaseOrder
Supplier Supplier
SupplierName _Supplier SupplierName
CompanyCode CompanyCode
CompanyCodeName _CompanyCode CompanyCodeName
PurchasingOrganization PurchasingOrganization Purchasing Organization
PurchasingOrganizationName _PurchasingOrganization PurchasingOrganizationName
PurchasingGroup PurchasingGroup
PurchasingGroupName _PurchasingGroup PurchasingGroupName
PurchaseOrderDate PurchaseOrderDate Order Date
PurchaseOrderType PurchaseOrderType Order Type
PurchasingDocumentTypeName
PaymentTerms PaymentTerms Terms of Payment
PaymentTermsName
IncotermsClassification I_PurchaseOrder IncotermsClassification Incoterms (Header)
IncotermsClassificationName
InvoicingParty InvoicingParty
InvoicingPartyName _InvoicingParty SupplierFullName
PurchasingDocumentStatus _PurchaseOrderStatus PurchasingDocumentStatus Order Status
PurchasingDocumentStatusName _PurchaseOrderStatus PurchasingDocumentStatusName
CashDiscount1Days CashDiscount1Days Day 1 / In Percent
CashDiscount2Days CashDiscount2Days Day 2 / In Percent
NetPaymentDays NetPaymentDays Days Net
CashDiscount1Percent CashDiscount1Percent Discount Percentage 1
CashDiscount2Percent CashDiscount2Percent Discount Percentage 2
ExchangeRate ExchangeRate Exchange Rate
DocumentCurrency DocumentCurrency
ValidityStartDate ValidityStartDate Validity Period Start
ValidityEndDate ValidityEndDate Validity Period End
SupplierRespSalesPersonName SupplierRespSalesPersonName
SupplierPhoneNumber SupplierPhoneNumber Supplier Telephone
SupplyingSupplier SupplyingSupplier
SupplierFullName _SupplyingSupplier SupplierFullName
HeaderIncotermsLoc1 IncotermsLocation1 Incoterm Location 1 (Header)
HeaderIncotermsLoc2 IncotermsLocation2 Incoterm Location 2 (Header)
IncotermsVersion IncotermsVersion Incoterms Version (Header)
IncotermsVersionName
MaterialGroup
Plant
Material
AccountAssignmentCategory Account Assignment Category
PurchaseOrderItemCategory
PurchasingDocumentDeletionCode
ScheduleLineDeliveryDate
PerformancePeriodStartDate
PerformancePeriodEndDate
_PurchaseOrderItemMassUpdate _PurchaseOrderItemMassUpdate
_ScheduleLine _ScheduleLine
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'CPOMASSUPDATE'
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck:#MANDATORY
@EndUserText.label: 'Mass Changes to Purchase Orders'
@AccessControl.personalData.blocking:  #BLOCKED_DATA_EXCLUDED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.createEnabled: true
@ObjectModel.updateEnabled: true
@ObjectModel.semanticKey: ['PurchaseOrder']
@Metadata.ignorePropagatedAnnotations: true
@UI.headerInfo:{
typeName: 'Purchase Order Header', 
typeNamePlural: 'Purchase Order Headers'
}

define view C_PurchaseOrderMassUpdate
  as select from I_PurchaseOrder


  association [0..*] to C_PurchaseOrderItemMassUpdate as _PurchaseOrderItemMassUpdate on $projection.PurchaseOrder = _PurchaseOrderItemMassUpdate.PurchaseOrder

  association [1..*] to C_POMassUpdtDelivSchedItm  as _ScheduleLine             on  $projection.PurchaseOrder     = _ScheduleLine.PurchaseOrder
                                                                                

  association [0..1] to I_PurchaseOrderStatusText as _PurchaseOrderStatus on $projection.PurchaseOrder = _PurchaseOrderStatus.PurchaseOrder
  
  //TODO: remove after testing - I066990

  //association [0..*] to C_PurchaseOrderItemMassUpdate       as _PurchaseOrderItem       on  $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder 

{
      @UI.lineItem.position: 10
      @ObjectModel.filter.enabled: false
      @Consumption.semanticObject: 'PurchaseOrder'
  key PurchaseOrder,

      @ObjectModel.text.element: 'SupplierName'
      @Consumption.semanticObject: 'Supplier'
      @UI.lineItem.position: 30
      //@ObjectModel.foreignKey.association: '_Supplier'

      //TODO: remove after testing - I066990

      //@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_PUR_PO_MASS_FILTERS'

      Supplier,
      @UI.hidden: true
      _Supplier.SupplierName,

      @ObjectModel.text.element: 'CompanyCodeName'
      @Consumption.semanticObject: 'CompanyCode'
      @UI.lineItem.position: 80
      //            @ObjectModel.foreignkey.association: '_CompanyCode'

      CompanyCode,

      @UI.hidden: true
      _CompanyCode.CompanyCodeName,

      @ObjectModel.text.element: 'PurchasingOrganizationName'
      @EndUserText.label: 'Purchasing Organization'
      @Consumption.semanticObject: 'PurchasingOrganization'
      @UI.lineItem.position: 70
      //      @ObjectModel.foreignKey.association: '_PurchasingOrganization'

      PurchasingOrganization,
      @UI.hidden: true
      _PurchasingOrganization.PurchasingOrganizationName,

      @ObjectModel.text.element: 'PurchasingGroupName'
      @Consumption.semanticObject: 'PurchasingGroup'
      @UI.lineItem.position: 60
      //      @ObjectModel.foreignKey.association: '_PurchasingGroup'

      PurchasingGroup,

      @UI.hidden: true
      _PurchasingGroup.PurchasingGroupName,

      @Consumption: {  filter:{ selectionType: #INTERVAL, multipleSelections: false} }
      @UI.lineItem.position: 50
      @EndUserText.label: 'Order Date'
      PurchaseOrderDate,

      @EndUserText.label: 'Order Type'
      @ObjectModel.text.element: 'PurchasingDocumentTypeName'
      @UI.lineItem.position: 20
      //      @ObjectModel.foreignKey.association: '_PurchaseOrderType'

      PurchaseOrderType,
      @UI.hidden: true
      _PurchaseOrderType._Text[1:Language = $session.system_language].PurchasingDocumentTypeName,

      @ObjectModel.text.element: 'PaymentTermsName'
      @EndUserText.label: 'Terms of Payment'
      //      @ObjectModel.foreignKey.association: '_PaymentTerms'

      PaymentTerms,
      @UI.hidden: true
      _PaymentTerms._Text[1:Language = $session.system_language].PaymentTermsName,

      @ObjectModel.text.element: 'IncotermsClassificationName'
      @EndUserText.label: 'Incoterms (Header)'
      //      @ObjectModel.foreignKey.association: '_IncotermsClassification'

      I_PurchaseOrder.IncotermsClassification,
      @UI.hidden: true
      _IncotermsClassification._Text[1:Language = $session.system_language].IncotermsClassificationName,

      @ObjectModel.text.element: 'InvoicingPartyName'
      //      @ObjectModel.foreignKey.association: '_InvoicingParty'

      InvoicingParty,
      @UI.hidden: true
      _InvoicingParty.SupplierFullName               as InvoicingPartyName,

      @ObjectModel.text.element: 'PurchasingDocumentStatusName'
      @EndUserText.label: 'Order Status'
      @UI.textArrangement: #TEXT_ONLY
      @UI.lineItem.position: 40
      // @ObjectModel.foreignKey.association: '_PurchaseOrderStatus'

      _PurchaseOrderStatus.PurchasingDocumentStatus,
      @UI.hidden: true
      _PurchaseOrderStatus.PurchasingDocumentStatusName,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Day 1 / In Percent'
      CashDiscount1Days,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Day 2 / In Percent'
      CashDiscount2Days,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Days Net'
      NetPaymentDays,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Discount Percentage 1'
      CashDiscount1Percent,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Discount Percentage 2'
      CashDiscount2Percent,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Exchange Rate'
      ExchangeRate,

      @Consumption.filter.hidden: true
      DocumentCurrency,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Validity Period Start'
      ValidityStartDate,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Validity Period End'
      ValidityEndDate,

      @Consumption.filter.hidden: true
      SupplierRespSalesPersonName,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Supplier Telephone'
      SupplierPhoneNumber,

      @Consumption.filter.hidden: true
      @ObjectModel.text.element: 'SupplierFullName'
      //      @ObjectModel.foreignKey.association: '_SupplyingSupplier'

      SupplyingSupplier,

      @UI.hidden: true
      _SupplyingSupplier.SupplierFullName,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Incoterm Location 1 (Header)'
      IncotermsLocation1                             as HeaderIncotermsLoc1,

      @Consumption.filter.hidden: true
      @EndUserText.label: 'Incoterm Location 2 (Header)'
      IncotermsLocation2                             as HeaderIncotermsLoc2,

      @Consumption.filter.hidden: true
      @ObjectModel.text.element: 'IncotermsVersionName'
      @EndUserText.label: 'Incoterms Version (Header)'
      // @ObjectModel.foreignKey.association: '_IncotermsVersion'

      IncotermsVersion,

      @UI.hidden: true
      _IncotermsVersion._Text[1:Language = $session.system_language].IncotermsVersionName,

      //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      //The following fields are filter level item fields. They've been casted '' for resolving the info prompt shown

      //by the UI framework on the search results of the header table.

      //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('' as matkl)                             as MaterialGroup,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('' as ewerk)                             as Plant,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('' as matnr)                             as Material,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      @EndUserText.label: 'Account Assignment Category'
      cast ('' as knttp)                             as AccountAssignmentCategory,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('' as vdm_itemcategory)                  as PurchaseOrderItemCategory,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('' as eloek)                             as PurchasingDocumentDeletionCode,
      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      cast ('00000000' as eindt)                     as ScheduleLineDeliveryDate,
      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      @Consumption: {  filter:{ selectionType: #INTERVAL, multipleSelections: false} }
      cast('00000000' as performanceperiodstartdate) as PerformancePeriodStartDate,
      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER'
      @Consumption: {  filter:{ selectionType: #INTERVAL, multipleSelections: false} }
      cast('00000000' as mmpur_servproc_period_end)  as PerformancePeriodEndDate,
     // @ObjectModel.virtualElement:true

      //@ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER' 

     // cast ('0' as etmen)                     as ScheduleLineOrderQuantity,

      //@ObjectModel.virtualElement:true

      //@ObjectModel.filter.transformedBy: 'CL_MM_PUR_POMASS_UPDAT_FILTER' 

      //cast ('' as bstme)                     as PurchaseOrderQuantityUnit,

      
      //TODO: remove after testing - I066990

     // @ObjectModel.filter.transformedBy: 'ABAP:CL_MM_PUR_PO_MASS_FILTERS'

     // cast( '' as abap.sstring( 260 ) )                                          as ManufacturerMaterial


      //// Association for text fields

      //            _Supplier,

      //            _CompanyCode,

      //            _PurchasingOrganization,

      //      _PurchasingGroup,

      //      _PurchaseOrderType,

      //      _PaymentTerms,

      //      _IncotermsClassification,

      //      _InvoicingParty,

      //      _PurchaseOrderStatus,

      //      _SupplyingSupplier,

      //      _IncotermsVersion

      _PurchaseOrderItemMassUpdate,
      _ScheduleLine
       
      //_PurchaseOrderItemMassUpdate._ScheduleLine 

}

where
      I_PurchaseOrder.PurchasingDocumentDeletionCode <> 'L' // Do not display if Header is Marked for Deletion

  and I_PurchaseOrder.PurchasingDocumentDeletionCode <> 'S' // Do not display if the Header is Blocked

  and(
    (
      Supplier                                       =  ' '
    )
    or(
      _Supplier.IsBusinessPurposeCompleted           <> 'X'
    )
  )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_INCOTERMSCLASSIFICATION",
"I_INCOTERMSCLASSIFICATIONTEXT",
"I_INCOTERMSVERSION",
"I_INCOTERMSVERSIONTEXT",
"I_PAYMENTTERMS",
"I_PAYMENTTERMSTEXT",
"I_PURCHASEORDER",
"I_PURCHASEORDERSTATUSTEXT",
"I_PURCHASINGDOCUMENTTYPE",
"I_PURCHASINGDOCUMENTTYPETEXT",
"I_PURCHASINGGROUP",
"I_PURCHASINGORGANIZATION",
"I_SUPPLIER"
],
"ASSOCIATED":
[
"C_POMASSUPDTDELIVSCHEDITM",
"C_PURCHASEORDERITEMMASSUPDATE",
"I_PURCHASEORDERSTATUSTEXT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/