@VDM.viewType: #CONSUMPTION
@AbapCatalog: { sqlViewName: 'CPURORDLIMITM' }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Purchase Order Limit Item'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel: {
semanticKey: ['PurchaseOrder', 'PurchaseOrderItem'],
representativeKey: 'PurchaseOrderItem'
}
@UI.headerInfo:{
typeName: 'Purchase Order Limit Item',
typeNamePlural: 'Purchase Order Limit Items',
title.value: 'PurchaseOrderItem'
//description.value: 'PurchaseOrderItemCategory'
}
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@Search.searchable: true
@AccessControl.personalData.blocking : #BLOCKED_DATA_EXCLUDED
define view C_PurchaseOrderLimitItem
as select from I_PurchaseorderItemEnhanced as PurchaseOrderItemTP
-------------------------------------------------------------------------------------------
-- COMPOSITION NODE: Purchase Order Item --
-------------------------------------------------------------------------------------------
-- :0..1 association to the TaxCode
association [0..1] to I_TaxCode as _TaxCode on _TaxCode.TaxCode = $projection.TaxCode
and _TaxCode.TaxCalculationProcedure = $projection.TaxCalculationProcedure
-- :0..1 association to the TaxCode
association [0..1] to I_TaxJurisdiction as _TaxJurisdiction on _TaxJurisdiction.TaxJurisdiction = $projection.TaxJurisdiction
and _TaxJurisdiction.TaxJurisdictionCalcProcedure = ''
association [0..1] to I_TaxCalculationProcedure as _TaxCalculationProcedure on _TaxCalculationProcedure.TaxCalculationProcedure = $projection.TaxCalculationProcedure
association [1..1] to I_PurgDocumentItemCategoryText as _PurchaseOrderItemCategoryText on _PurchaseOrderItemCategoryText.Language = $session.system_language
and _PurchaseOrderItemCategoryText.PurchasingDocumentItemCategory = $projection.PurchaseOrderItemCategory
association [0..1] to C_PurOrdActACatValHelp as _PurOrdActACatValHelp on _PurOrdActACatValHelp.AccountAssignmentCategory = $projection.AccountAssignmentCategory
association [0..*] to C_MM_PlantValueHelp as _PlantValHelp on _PlantValHelp.Plant = $projection.Plant
association [1..1] to I_PurchaseOrderItemStatus as _PurchaseOrderItemStatus on _PurchaseOrderItemStatus.PurchaseOrder = $projection.PurchaseOrder
and _PurchaseOrderItemStatus.PurchaseOrderItem = $projection.PurchaseOrderItem
association [1..*] to C_POAccountAssignmentFactSheet as _POAccountAssignmentFactSheet on _POAccountAssignmentFactSheet.PurchaseOrder = $projection.PurchaseOrder
and _POAccountAssignmentFactSheet.PurchaseOrderItem = $projection.PurchaseOrderItem
association [1..1] to C_PODeliveryAddressFactSheet as _PODeliveryAddressFactSheet on $projection.PurchaseOrder = _PODeliveryAddressFactSheet.PurchaseOrder
and $projection.PurchaseOrderItem = _PODeliveryAddressFactSheet.PurchaseOrderItem
association [1..*] to C_POScheduleLineFactSheet as _POScheduleLineFactSheet on _POScheduleLineFactSheet.PurchaseOrder = $projection.PurchaseOrder
and _POScheduleLineFactSheet.PurchaseOrderItem = $projection.PurchaseOrderItem
{
@UI.facet: [
{ label:'General Information',
id:'GeneralInformation',
isSummary: true,
type: #COLLECTION,
position: 10
},
{
label: 'Basic Data',
id: 'BasicData',
parentId: 'GeneralInformation',
type: #IDENTIFICATION_REFERENCE,
position: 10
},{
label: 'Item Details',
id: 'ItemDetailsID',
parentId: 'GeneralInformation',
type: #FIELDGROUP_REFERENCE,
position: 20,
targetQualifier: 'ItemDetails'
},
{
label: 'Account Assignment',
id: 'AccountAssignmentID',
type: #LINEITEM_REFERENCE,
position: 20,
targetElement: '_POAccountAssignmentFactSheet'
}
]
@UI.hidden: true
@ObjectModel.foreignKey.association: '_PurchaseOrderEnhanced'
@Consumption.semanticObject: 'PurchaseOrder'
key PurchaseOrderItemTP.PurchaseOrder,
@Consumption.semanticObject: 'PurchaseOrderItem'
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 10,
importance: #HIGH},{
position:10,
importance: #HIGH
}]
key cast (PurchaseOrderItemTP.PurchaseOrderItem as ebelp preserving type) as PurchaseOrderItem,
@UI.hidden: true
PurchaseOrderItemTP.PurchaseOrderItemCategory,
@UI.hidden: true
_PurchaseOrderItemCategoryText.PurgDocItemCategoryName as PurOrdItemCategoryName,
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 20,
importance: #HIGH }, {
position: 20,
importance: #HIGH
}]
@Semantics: { text: true }
@UI.identification: [{
position: 20,
importance: #HIGH }]
PurchaseOrderItemTP.PurchaseOrderItemText,
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 30,
importance: #HIGH }, {
position: 30,
importance: #HIGH
}]
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@UI.identification: [{
position: 30,
importance: #HIGH }]
PurchaseOrderItemTP.ExpectedOverallLimitAmount,
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 40,
importance: #HIGH }, {
position: 40,
importance: #HIGH
}]
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@UI.identification: [{
position: 40,
importance: #HIGH }]
PurchaseOrderItemTP.OverallLimitAmount,
// @UI: { lineItem: [ {position: 900, importance: #HIGH} ] }
PurchaseOrderItemTP.PurchasingDocumentDeletionCode,
@Semantics: { currencyCode: true }
PurchaseOrderItemTP.DocumentCurrency,
//--[ GENERATED:012:GFBfhyK17kY4ofIXD8GUQG
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_MM_MaterialGroupValueHelp',
element: 'MaterialGroup' }
}]
// ]--GENERATED
@ObjectModel: { foreignKey.association: '_MaterialGroup' }
PurchaseOrderItemTP.MaterialGroup,
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 80,
importance: #HIGH }, {
position: 80,
importance: #HIGH
}]
@ObjectModel.foreignKey.association: '_Plant'
@UI.fieldGroup:[{qualifier: 'ItemDetails', position: 30}]
// @ObjectModel.text.association: '_PlantValHelp'
// @ObjectModel.text.element: ['PlantName']
PurchaseOrderItemTP.Plant,
@UI.lineItem: [{
qualifier: 'PurchLimItem',
position: 70,
importance: #HIGH }, {
position: 70,
importance: #HIGH
}]
@ObjectModel.text.association: '_PurOrdActACatValHelp'
@UI.fieldGroup:[{qualifier: 'ItemDetails', position: 40}]
PurchaseOrderItemTP.AccountAssignmentCategory,
@EndUserText.label: 'Status'
@EndUserText.quickInfo: 'Purchase Order Item Status'
@UI: { lineItem: [{
qualifier: 'PurchItem',
position: 900,
importance: #HIGH} , {
position: 900,
importance: #HIGH
}]
}
@UI.identification: [{
position: 10,
importance: #HIGH }]
_PurchaseOrderItemStatus._PurchasingDocumentStatus._Text[1: Language = $session.system_language].PurchasingDocumentStatusName as PurchaseOrderItemStatus,
@UI.fieldGroup: [ { groupLabel: 'Process Flow', position: 10, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.GoodsReceiptIsExpected,
@UI.fieldGroup: [ { position: 20, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.GoodsReceiptIsNonValuated,
@UI.fieldGroup: [ { position: 30, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.InvoiceIsExpected,
@UI.fieldGroup: [ { position: 40, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.InvoiceIsGoodsReceiptBased,
@UI.fieldGroup: [ { position: 50, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.IsCompletelyDelivered,
@UI.fieldGroup: [ { position: 60, qualifier: 'ProcessFlowGroup' } ]
PurchaseOrderItemTP.IsFinallyInvoiced,
@UI.fieldGroup: [ { groupLabel: 'Tax', position: 10, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxCode' }
TaxCode,
@UI.fieldGroup: [ { position: 20, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxJurisdiction' }
TaxJurisdiction,
@ObjectModel: { foreignKey.association: '_TaxCalculationProcedure' }
@UI.hidden: true
_Plant._OrganizationAddress._Country.TaxCalculationProcedure as TaxCalculationProcedure,
----------------------------------------------------------------------------------------
-- FieldGroup: Delivery --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { position: 30, qualifier: 'DeliveryGroup' } ]
cast (PurchaseOrderItemTP.OverdelivTolrtdLmtRatioInPct as uebto_ll preserving type) as OverdelivTolrtdLmtRatioInPct,
@UI.fieldGroup: [ { position: 40, qualifier: 'DeliveryGroup' } ]
cast (PurchaseOrderItemTP.UnderdelivTolrtdLmtRatioInPct as untto_ll preserving type) as UnderdelivTolrtdLmtRatioInPct,
@UI.fieldGroup: [ { position: 50, qualifier: 'DeliveryGroup' } ]
@EndUserText.label: 'Unlimited Overdelivery Allowed'
cast (PurchaseOrderItemTP.UnlimitedOverdeliveryIsAllowed as uebtk preserving type) as UnlimitedOverdeliveryIsAllowed,
@UI.fieldGroup: [ { position: 60, qualifier: 'DeliveryGroup' } ]
@EndUserText.label: 'Acceptance at Origin'
PurchaseOrderItemTP.IsToBeAcceptedAtOrigin,
@UI.fieldGroup: [ { position: 70, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_StorLocValueHelp', element : 'StorageLocation' }, additionalBinding: [{ element: 'Plant', localElement: 'Plant' }] }]
PurchaseOrderItemTP.StorageLocation,
@UI.fieldGroup: [ { position: 80, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdIntrastatSrvcCodeVH', element : 'IntrastatServiceCode' }, additionalBinding: [{ element: 'Country', localElement: 'Country' }] }]
cast (PurchaseOrderItemTP.IntrastatServiceCode as mm_isvco_ll preserving type) as IntrastatServiceCode,
@UI.fieldGroup: [ { position: 90, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdIntrastatCmmdtyCodeVH', element : 'CommodityCode' } }]
PurchaseOrderItemTP.CommodityCode,
@UI.fieldGroup: [ { position: 90, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_ShippingInstructionText', element : 'ShippingInstruction' } }]
ShippingInstruction,
----------------------------------------------------------------------------------------
-- FieldGroup: Incoterms --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Incoterms', position: 10, qualifier: 'Incoterms1' } ]
PurchaseOrderItemTP._PurchaseOrderEnhanced.IncotermsVersion,
@UI.fieldGroup: [ { position: 20, qualifier: 'Incoterms1' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_IncotermValueHelp', element : 'IncotermsClassification' }}]
PurchaseOrderItemTP.IncotermsClassification,
@UI.fieldGroup: [ { position: 30, qualifier: 'Incoterms2'} ]
PurchaseOrderItemTP.IncotermsLocation1,
@UI.fieldGroup: [ { position: 40, qualifier: 'Incoterms2'} ]
PurchaseOrderItemTP.IncotermsLocation2,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_PurchasingInfoRecordStdVH',
element: 'PurchasingInfoRecord' }
}]
@UI.fieldGroup: [ { groupLabel: 'Source of Supply', position: 10, qualifier: 'SourceOfSupplyGroup' } ]
cast (PurchaseOrderItemTP.PurchasingInfoRecord as infnr_ll preserving type) as PurchasingInfoRecord,
@UI.fieldGroup: [ { position: 20, qualifier: 'SourceOfSupplyGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseContractValHelp', element : 'PurchaseContract' } }]
cast (PurchaseOrderItemTP._PurchaseContract.PurchaseContract as konnr_ll preserving type) as PurchaseContract,
@UI: {
fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 10, qualifier: 'SourceOfSupplyGroup' }],
lineItem: [ {position: 50, importance: #HIGH, qualifier: 'LimitItem'} ]
}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseContractValHelp', element : 'PurchaseContract' } }]
PurchaseOrderItemTP.PurContractForOverallLimit,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_PurchaseContractItemStdVH',
element: 'PurchaseContractItem' },
additionalBinding: [{ localElement: 'PurchaseContract',
element: 'PurchaseContract' }]
}]
@UI.fieldGroup: [ { position: 30, qualifier: 'SourceOfSupplyGroup' } ]
cast (PurchaseOrderItemTP._PurchaseContractItem.PurchaseContractItem as ktpnr_ll preserving type) as PurchaseContractItem,
@UI.fieldGroup: [ { position: 40, qualifier: 'SourceOfSupplyGroup' } ]
@EndUserText.label: ' '
PurchaseOrderItemTP.InfoRecordIsToBeUpdated,
----------------------------------------------------------------------------------------
-- Associations --
----------------------------------------------------------------------------------------
_PurchaseOrderEnhanced,
_PurchaseOrderItemCategoryText,
_MaterialGroup,
_Plant,
_PlantValHelp,
_PurOrdActACatValHelp,
_TaxCode,
_TaxJurisdiction,
_TaxCalculationProcedure,
_POAccountAssignmentFactSheet,
_PODeliveryAddressFactSheet,
_POScheduleLineFactSheet
}
where
PurchaseOrderItemTP.PurchaseOrderItemCategory = 'A'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COUNTRY",
"I_ORGANIZATIONADDRESS",
"I_PLANT",
"I_PURCHASECONTRACT",
"I_PURCHASECONTRACTITEM",
"I_PURCHASEORDERENHANCED",
"I_PURCHASEORDERITEMENHANCED",
"I_PURCHASEORDERITEMSTATUS",
"I_PURCHASINGDOCUMENTSTATUS",
"I_PURCHASINGDOCUMENTSTATUSTEXT",
"I_PURGDOCUMENTITEMCATEGORYTEXT"
],
"ASSOCIATED":
[
"C_MM_PLANTVALUEHELP",
"C_POACCOUNTASSIGNMENTFACTSHEET",
"C_PODELIVERYADDRESSFACTSHEET",
"C_POSCHEDULELINEFACTSHEET",
"C_PURORDACTACATVALHELP",
"I_MATERIALGROUP",
"I_PLANT",
"I_PURCHASEORDERENHANCED",
"I_PURCHASEORDERITEMSTATUS",
"I_PURGDOCUMENTITEMCATEGORYTEXT",
"I_TAXCALCULATIONPROCEDURE",
"I_TAXCODE",
"I_TAXJURISDICTION"
],
"BASE":
[
"I_PURCHASEORDERITEMENHANCED"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/