@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 entity 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
I_PurchaseOrder._Supplier.SupplierName,
@ObjectModel.text.element: [ 'CompanyCodeName']
@Consumption.semanticObject : 'CompanyCode'
@UI.lineItem: [ {position: 80 }]
// @ObjectModel.foreignkey.association : '_CompanyCode'
CompanyCode,
@UI.hidden: true
I_PurchaseOrder._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
I_PurchaseOrder._PurchasingOrganization.PurchasingOrganizationName,
@ObjectModel.text.element: [ 'PurchasingGroupName']
@Consumption.semanticObject : 'PurchasingGroup'
@UI.lineItem: [ {position: 60 }]
// @ObjectModel.foreignKey.association : '_PurchasingGroup'
PurchasingGroup,
@UI.hidden: true
I_PurchaseOrder._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
I_PurchaseOrder._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
I_PurchaseOrder._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,
@UI.hidden: true
@Consumption.filter .hidden: true
cast ('' as mm_vdm_single_sched) as AllItemsHaveSingleScheduleLine,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//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 (
I_PurchaseOrder._Supplier.IsBusinessPurposeCompleted <> 'X'
)
)
Depth:
1
2
3
4
5
All
Reload
C_PurchaseOrderMassUpdate view_entity