@VDM.lifecycle.status: #DEPRECATED
@VDM.viewType: #CONSUMPTION
@AbapCatalog: { sqlViewName: 'CPURORDLIMITMTP' }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Purchase Order Limit Item'
@AccessControl.authorizationCheck: #CHECK
/*@ObjectModel: {
transactionalProcessingDelegated: true,
semanticKey: ['PurchaseOrder', 'PurchaseOrderItem'],
representativeKey: 'PurchaseOrderItem',
createEnabled,
updateEnabled,
deleteEnabled
}*/
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@Search.searchable: true
/*@UI: {
lineItem.criticality: 'HighestMessageSeverityLevel'
}*/
/*@UI.headerInfo:{
typeName: 'Purchase Order Limit Item',
typeNamePlural: 'Purchase Order Limit Items',
// imageUrl: 'PurchaseOrderURL',
title: {value: 'PurchaseOrderItem'},
description: {value: 'PurOrdItemCategoryName'}
}
*/
define view C_PurchaseOrderLimitItemTP
as select from I_PurchaseOrderItemTP as PurchaseOrderItemTP
-------------------------------------------------------------------------------------------
-- COMPOSITION NODE: Purchase Order Item --
-------------------------------------------------------------------------------------------
-- :* association to parent node
association [1..1] to C_PurchaseOrderTP as _PurchaseOrderTP on _PurchaseOrderTP.PurchaseOrder = $projection.PurchaseOrder
association [1..*] to C_PurOrdScheduleLineTP as _PurOrdScheduleLineTP on _PurOrdScheduleLineTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdScheduleLineTP.PurchaseOrderItem = $projection.PurchaseOrderItem
-- :* association to the Account Assignment child node
association [1..*] to C_PurOrdAcctAssignmentTP as _PurOrdAcctAssignmentTP on _PurOrdAcctAssignmentTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdAcctAssignmentTP.PurchaseOrderItem = $projection.PurchaseOrderItem
-- :* association to the Pricing Elements child node
association [1..*] to C_PurOrdPricingElementTP as _PurOrdPricingElementTP on _PurOrdPricingElementTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdPricingElementTP.PurchaseOrderItem = $projection.PurchaseOrderItem
-- :* association to the Delivery Address child node
association [1..1] to C_PurOrdDeliveryAddressTP as _PurOrdDeliveryAddressTP on _PurOrdDeliveryAddressTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdDeliveryAddressTP.PurchaseOrderItem = $projection.PurchaseOrderItem
-- :0..1 association to the TaxCode
association [0..1] to C_MM_TaxCodeValueHelp as _TaxCode on _TaxCode.TaxCode = $projection.TaxCode
and _TaxCode.TaxCalculationProcedure = $projection.TaxCalculationProcedure
-- :0..1 association to the TaxCode
association [0..1] to C_MM_TaxJurisdictionVH as _TaxJurisdiction on _TaxJurisdiction.TaxJurisdiction = $projection.TaxJurisdiction
//and _TaxJurisdiction.TaxJurisdictionCalcProcedure = ''
association [0..1] to I_TaxCalculationProcedure as _TaxCalculationProcedure on _TaxCalculationProcedure.TaxCalculationProcedure = $projection.TaxCalculationProcedure
association [0..1] to C_MM_ProductTypeValueHelp as _ProductTypeValueHelp on _ProductTypeValueHelp.ProductType = $projection.ProductType
association [0..1] to C_PurOrdActACatValHelp as _PurOrdActACatValHelp on _PurOrdActACatValHelp.AccountAssignmentCategory = $projection.AccountAssignmentCategory
association [0..1] to C_MM_MaterialGroupValueHelp as _MaterialGroupValueHelp on _MaterialGroupValueHelp.MaterialGroup = $projection.MaterialGroup
association [0..1] to C_MM_PlantValueHelp as _PlantValueHelp on _PlantValueHelp.Plant = $projection.Plant
and _PlantValueHelp.PurchasingOrganization = $projection.purchasingorganization
association [0..*] to C_PurOrdTaxJurisdictionValHelp as _PurOrdTaxJurisdictionValHelp on _PurOrdTaxJurisdictionValHelp.TaxJurisdiction = $projection.TaxJurisdiction
and _PurOrdTaxJurisdictionValHelp.CompanyCode = $projection.CompanyCode
association [1..1] to C_PurchaseContractValHelp as _PurContractValHelp on _PurContractValHelp.PurchaseContract = $projection.PurContractForOverallLimit
{
@UI.hidden: true
@ObjectModel.foreignKey.association: '_PurchaseOrderTP'
key PurchaseOrderItemTP.PurchaseOrder as PurchaseOrder,
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel: { readOnly: true }
@UI: {
lineItem: [ { position: 10, importance: #HIGH } ]
}
key cast (PurchaseOrderItemTP.PurchaseOrderItem as ebelp preserving type) as PurchaseOrderItem,
@ObjectModel: { readOnly: true }
@UI.hidden: true
// 'A' as PurchaseOrderItemCategory,
PurchaseOrderItemTP.PurchaseOrderItemCategory,
@UI.hidden: true
PurchaseOrderItemTP.PurOrdItemCategoryName,
@UI: {
identification: {position: 20},
lineItem: [ {position: 20, importance: #HIGH} ]
}
@Semantics: { text: true }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
PurchaseOrderItemTP.PurchaseOrderItemText,
@UI: {
identification: {position: 30},
lineItem: [ {position: 30, importance: #HIGH} ]
}
//@Semantics: { unitOfMeasure: true }
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
PurchaseOrderItemTP.ExpectedOverallLimitAmount,
@UI: {
identification: {position: 40},
lineItem: [ {position: 40, importance: #HIGH} ]
}
//@Semantics: { unitOfMeasure: true }
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
PurchaseOrderItemTP.OverallLimitAmount,
@UI.hidden: true
@UI.lineItem: [ { exclude: true } ]
PurchaseOrderItemTP.PurchasingDocumentDeletionCode,
@Consumption.hidden: true
@ObjectModel.readOnly: true
PurchaseOrderItemTP.PurchaseOrderItemStatus as PurchaseOrderItemStatus_H,
@UI: {
lineItem: [ {position: 900, importance: #HIGH} ],
textArrangement: #TEXT_ONLY
}
@ObjectModel: {
readOnly: true,
text.element: [ 'PurchaseOrderItemStatusName' ]
}
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_PurchaseOrderStatusValueHelp', element : 'PurchasingDocumentStatus' } }]
@EndUserText.label: 'Status'
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@ObjectModel.sort.transformedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
cast ( '' as abap.char(2)) as PurchaseOrderItemStatus,
@ObjectModel: {
readOnly: true
}
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@UI.hidden: true
cast ( '' as abap.sstring(260)) as PurchaseOrderItemStatusName,
@Semantics: { currencyCode: true }
// @ObjectModel: { foreignKey.association: '_DocumentCurrency', readOnly: true }
@ObjectModel: { readOnly: true }
PurchaseOrderItemTP.DocumentCurrency,
// PerformancePeriodStartDate and PerformancePeriodEndDate; see 'Delivery' FieldGroup
@UI: {
identification: {position: 80}
}
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption: { valueHelp: '_MaterialGroupValueHelp' }
@ObjectModel.foreignKey.association: '_MaterialGroupValueHelp'
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
PurchaseOrderItemTP.MaterialGroup,
@UI: {
identification: {position: 70},
lineItem: [ {position: 90, importance: #HIGH} ]
}
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption: { valueHelp: '_PlantValueHelp' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.foreignKey.association: '_PlantValueHelp'
PurchaseOrderItemTP.Plant,
@UI: {
identification: {position: 60},
lineItem: {position: 80, importance: #HIGH}
}
@Consumption: { valueHelp: '_ProductTypeValueHelp' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION',
text.element: 'ProductTypeName',
foreignKey.association: '_ProductTypeValueHelp' }
PurchaseOrderItemTP.ProductType,
PurchaseOrderItemTP.ProductTypeName,
----------------------------------------------------------------------------------------
-- FieldGroup: Delivery Address --
----------------------------------------------------------------------------------------
//PurchaseOrderItemTP.ManualDeliveryAddressID,
//@UI.fieldGroup: [ { groupLabel: 'DeliveryAddressGroup', position: 10, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressName,
//@UI.fieldGroup: [ { position: 20, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressStreetName,
//@UI.fieldGroup: [ { position: 30, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressHouseNumber,
//@UI.fieldGroup: [ { position: 40, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressPostalCode,
//@UI.fieldGroup: [ { position: 50, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressCityName,
//@UI.fieldGroup: [ { position: 60, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressRegion,
//@UI.fieldGroup: [ { position: 70, qualifier: 'DeliveryAddress' } ]
//PurchaseOrderItemTP.DeliveryAddressCountry,
----------------------------------------------------------------------------------------
-- FieldGroup: Process Flow --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Process Flow', position: 10, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.GoodsReceiptIsExpected,
@UI.fieldGroup: [ { position: 20, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.GoodsReceiptIsNonValuated,
@UI.fieldGroup: [ { position: 30, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.InvoiceIsExpected,
@UI.fieldGroup: [ { position: 40, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.InvoiceIsGoodsReceiptBased,
@UI.fieldGroup: [ { position: 50, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.IsCompletelyDelivered,
@UI.fieldGroup: [ { position: 60, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
PurchaseOrderItemTP.IsFinallyInvoiced,
----------------------------------------------------------------------------------------
-- FieldGroup: Delivery --
----------------------------------------------------------------------------------------
////Lars: Fields had to be deleted because of changes to ScheduleLines (Single Schedule Lines -> Multi Schedule Lines)
// @UI: {
// identification: {position: 40},
// lineItem: [ {position: 40, importance: #HIGH} ]
// }
// @UI.fieldGroup: [ { groupLabel: 'Delivery', position: 10, qualifier: 'DeliveryGroup' } ]
// @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
// PurchaseOrderItemTP.PerformancePeriodStartDate,
//
// @UI: {
// identification: {position: 50},
// lineItem: [ {position: 50, importance: #HIGH} ]
// }
//
// @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
// PurchaseOrderItemTP.PerformancePeriodEndDate,
// @UI: {
// identification: {position: 60},
// lineItem: [ {position: 60, importance: #HIGH} ]
// }
// @ObjectModel: { readOnly: 'true', foreignKey.association: '_FirstPurOrdScheduleLineTP' }
// _FirstPurOrdScheduleLineTP.PerformancePeriodStartDate,
//
// @UI: {
// identification: {position: 70},
// lineItem: [ {position: 70, importance: #HIGH} ]
// }
// @ObjectModel: { readOnly: 'true', foreignKey.association: '_FirstPurOrdScheduleLineTP'}
// _FirstPurOrdScheduleLineTP.PerformancePeriodEndDate,
----------------------------------------------------------------------------------------
-- FieldGroup: Accounting (will be part of reuse) --
----------------------------------------------------------------------------------------
@UI: {
identification: {position: 50},
lineItem: [ {position: 70, importance: #HIGH} ],
textArrangement: #TEXT_FIRST
}
@Consumption: { valueHelp: '_PurOrdActACatValHelp' }
@ObjectModel: { readOnly:'EXTERNAL_CALCULATION', text.association: '_PurOrdActACatValHelp' }
PurchaseOrderItemTP.AccountAssignmentCategory,
----------------------------------------------------------------------------------------
-- Transient fields --
----------------------------------------------------------------------------------------
@ObjectModel: {
readOnly: true,
virtualElement,
virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
}
@UI.hidden: true
cast ('' as boolean) as AccountAssignmentIsAddableLmt,
@ObjectModel: {
readOnly: true,
virtualElement,
virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
}
@UI.hidden: true
cast ('' as boolean) as PurgSchdLnIsAddableInLimitItem,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
PurchaseOrderItemTP.HighestMessageSeverityLevel,
----------------------------------------------------------------------------------------
-- FieldGroup: Tax --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Tax', position: 10, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxCode', readOnly: 'EXTERNAL_CALCULATION' }
TaxCode,
@UI.fieldGroup: [ { position: 20, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxJurisdiction', readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelp: '_PurOrdTaxJurisdictionValHelp'
TaxJurisdiction,
----------------------------------------------------------------------------------------
-- Source Of Supply --
----------------------------------------------------------------------------------------
@UI: {
fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 10, qualifier: 'SourceOfSupplyGroup' }],
lineItem: [ {position: 50, importance: #HIGH} ]
}
@ObjectModel: { foreignKey.association: '_PurContractValHelp', readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelp: '_PurContractValHelp'
PurchaseOrderItemTP.PurContractForOverallLimit,
----------------------------------------------------------------------------------------
-- Header-Fields needed for Associations --
----------------------------------------------------------------------------------------
@ObjectModel: { readOnly: true }
@UI.lineItem: [ { exclude: true } ]
@UI.hidden: true
_PurchaseOrderTP.PurchasingOrganization,
@ObjectModel: { readOnly: true }
@UI.lineItem: [ { exclude: true } ]
@UI.hidden: true
_PurchaseOrderTP.Supplier,
@ObjectModel: { readOnly: true, foreignKey.association: '_TaxCalculationProcedure' }
@UI.hidden: true
_Plant._OrganizationAddress._Country.TaxCalculationProcedure as TaxCalculationProcedure,
----------------------------------------------------------------------------------------
-- Unused fields --
----------------------------------------------------------------------------------------
@Consumption.hidden: true
PurchaseOrderItemTP.SupplierMaterialNumber,
@Consumption.hidden: true
PurchaseOrderItemTP.ManufacturerPartNmbr,
@Consumption.hidden: true
PurchaseOrderItemTP.ManufacturerMaterial,
@UI.hidden: true
PurchaseOrderItemTP.CompanyCode,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderItemQtyToBaseQtyNmrtr,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderItemQtyToBaseQtyDnmntr,
@Consumption.hidden: true
PurchaseOrderItemTP.EvaldRcptSettlmtIsAllowed,
@Consumption.hidden: true
PurchaseOrderItemTP.ItemVolumeUnit,
@Consumption.hidden: true
PurchaseOrderItemTP.ItemWeightUnit,
@Consumption.hidden: true
PurchaseOrderItemTP.MultipleAcctAssgmtDistribution,
@Consumption.hidden: true
PurchaseOrderItemTP.PartialInvoiceDistribution,
@Consumption.hidden: true
PurchaseOrderItemTP.PricingDateControl,
@Consumption.hidden: true
PurchaseOrderItemTP.IsStatisticalItem,
@Consumption.hidden: true
PurchaseOrderItemTP.IsReturnsItem,
@Consumption.hidden: true
PurchaseOrderItemTP.InternationalArticleNumber,
@Consumption.hidden: true
PurchaseOrderItemTP.SupplierConfirmationControlKey,
@Consumption.hidden: true
PurchaseOrderItemTP.PriceIsToBePrinted,
@Consumption.hidden: true
PurchaseOrderItemTP.EffectiveAmount,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderPriceUnitToOrderUnitNmrtr,
@Consumption.hidden: true
PurchaseOrderItemTP.OrdPriceUnitToOrderUnitDnmntr,
@Consumption.hidden: true
PurchaseOrderItemTP.BaseUnit,
@Consumption.hidden: true
PurchaseOrderItemTP.RequisitionerName,
----------------------------------------------------------------------------------------
-- Associations --
----------------------------------------------------------------------------------------
//@ObjectModel.association.type: [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
_PurchaseOrderTP,
//@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_PurOrdScheduleLineTP,
//@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_PurOrdAcctAssignmentTP,
//@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_PurOrdPricingElementTP,
//@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_PurOrdDeliveryAddressTP,
_ProductTypeValueHelp,
_MaterialGroupValueHelp,
_PurOrdActACatValHelp,
_PlantValueHelp,
_PurOrdTaxJurisdictionValHelp,
_TaxCode,
_TaxJurisdiction,
_TaxCalculationProcedure,
_PurContractValHelp
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_PURCHASEORDERTP",
"I_COUNTRY",
"I_ORGANIZATIONADDRESS",
"I_PLANT",
"I_PURCHASEORDERITEMTP"
],
"ASSOCIATED":
[
"C_MM_MATERIALGROUPVALUEHELP",
"C_MM_PLANTVALUEHELP",
"C_MM_PRODUCTTYPEVALUEHELP",
"C_MM_TAXCODEVALUEHELP",
"C_MM_TAXJURISDICTIONVH",
"C_PURCHASECONTRACTVALHELP",
"C_PURCHASEORDERTP",
"C_PURORDACCTASSIGNMENTTP",
"C_PURORDACTACATVALHELP",
"C_PURORDDELIVERYADDRESSTP",
"C_PURORDPRICINGELEMENTTP",
"C_PURORDSCHEDULELINETP",
"C_PURORDTAXJURISDICTIONVALHELP",
"I_TAXCALCULATIONPROCEDURE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/