@AbapCatalog.sqlViewName: 'CHUMO'
@AbapCatalog.compiler.compareFilter: true
@Search.searchable: true
@OData.publish: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED,
privilegedAssociations: ['_I_User']
}
@ObjectModel.compositionRoot: true
@ObjectModel: {
semanticKey: [ 'HandlingUnitExternalId' ],
usageType: {
dataClass: #MIXED,
serviceQuality: #D,
sizeCategory: #XL
}
}
@ObjectModel.supportedCapabilities:
[ #SITUATION_ANCHOR ]
@VDM: {
viewType: #CONSUMPTION,
lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]
@OData.entitySet.name : 'HandlingUnit'
@AbapCatalog.preserveKey: true
@UI.headerInfo: {
typeName: 'Handling Unit',
typeNamePlural: 'Handling Units',
title: {
type: #STANDARD,
value: 'HandlingUnitExternalID',
label: 'Handling Unit'
},
description: {
value: 'PackagingMaterial',
type: #STANDARD
}
}
@UI.presentationVariant:{
sortOrder: [
{ by: 'HandlingUnitExternalID' , direction: #DESC }],
requestAtLeast: ['PackagingMaterial','HandlingUnitInternalOrig', 'HandlingUnitExternalIDWareHs',
'HandlingUnitPackingObjectType', 'HandlingUnitReferenceDocName',
'HandlingUnitIDChar32','HandlingUnitOrigin','HandlingUnitInternalOrig']
}
@EndUserText.label: 'Monitor Handling Units'
define view C_HandlingUnitMonitor
as select from I_HandlingUnitHeaderCombined as _I_HandlingUnitHeader
association [0..*] to I_HandlingUnitItemCombined as _HandlingUnitItem on $projection.HandlingUnitInternalID = _HandlingUnitItem.HandlingUnitInternalID
association [0..1] to I_PackingInstructionStdVH as _I_PackingInstructionStdVH on $projection.PackingInstruction = _I_PackingInstructionStdVH.PackingInstructionSystemUUID
association [0..1] to I_HandlingUnitProcessStatus as _I_HandlingUnitProcessStatus on $projection.HandlingUnitProcessStatus = _I_HandlingUnitProcessStatus.HandlingUnitProcessStatus
association [0..1] to I_DeliveryDocument as _I_DeliveryDocument on $projection.HandlingUnitReferenceDocument = _I_DeliveryDocument.DeliveryDocument
association [0..*] to I_HandlingUnitRefDocTypeText as _I_HandlingUnitRefDocTypeText on $projection.HandlingUnitPackingObjectType = _I_HandlingUnitRefDocTypeText.HandlingUnitRefDocType
association [1..*] to C_HandlingUnitJITCall as _HandlingUnitJITCall on $projection.HandlingUnitReferenceDocument = _HandlingUnitJITCall.BusinessTransactionDocument
association [0..1] to C_ShippingPointVH as _ShippingPointVH on $projection.ShippingPoint = _ShippingPointVH.ShippingPoint
association [0..1] to I_StorageLocation as _StorageLocation on $projection.Plant = _StorageLocation.Plant
and $projection.StorageLocation = _StorageLocation.StorageLocation
association [0..*] to I_StorageLocationStdVH as _StorageLocationVH on $projection.StorageLocation = _StorageLocationVH.StorageLocation
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [0..1] to C_PlantVH as _PlantVH on $projection.Plant = _PlantVH.Plant
association [0..*] to I_MaterialText as _PackagingMaterialText on $projection.PackagingMaterial = _PackagingMaterialText.Material
association [0..1] to I_PackagingMaterialType as _I_PackagingMaterialType on $projection.PackagingMaterialType = _I_PackagingMaterialType.PackagingMaterialType
association [0..1] to I_EWM_WarehouseNumber as _WarehouseVH on $projection.Warehouse = _WarehouseVH.Warehouse
association [0..1] to I_User as _I_User on $projection.CreatedByUser = _I_User.UserID
association [1..1] to I_User as _I_UserCreatedBy on $projection.CreatedByUser = _I_UserCreatedBy.UserID
association [1..1] to I_User as _I_UserChangedBy on $projection.LastChangedByUser = _I_UserChangedBy.UserID
//Extensibility
association [0..1] to E_HandlingUnitHeader as _Extension on $projection.HandlingUnitExternalID = _Extension.HandlingUnitExternalID
and _I_HandlingUnitHeader.HandlingUnitInternalID = _Extension.HandlingUnitInternalID
{
// ********** BEGIN FACET DEFINITION **********
@UI.facet:[
{
id:'QuickView',
purpose: #QUICK_VIEW,
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'QuickView'
},
{
id:'SmartFilter',
purpose: #FILTER,
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'SmartFilter'
}
]
//********** END OF FACETS **********
@UI.selectionField.position: 10
@UI.lineItem: [{ position: 10, importance: #HIGH }]
@UI.identification.position: 10
@Consumption.valueHelpDefinition: [ { entity: { name: 'C_HandlingUnitVH', element: 'HandlingUnitExternalID' } } ]
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@EndUserText.label: 'Handling Unit'
key HandlingUnitExternalID,
@UI.selectionField.position: 70
@UI.lineItem: [{ position: 30, importance: #HIGH }]
@UI.identification.position: 70
@UI.fieldGroup: [ {qualifier: 'Warehouse' },
{qualifier: 'HeaderColumn2', position: 30, importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_EWM_WarehouseNumber', element: 'Warehouse' } } ]
@ObjectModel.text.element: [ 'WarehouseName' ]
key Warehouse,
@UI.hidden: true
@Semantics.text: true
cast(HandlingUnitInternalCharUUID as lo_hu_hu_uuid_char32) as HandlingUnitIDChar32,
@UI.hidden: true
@Semantics.text: true
_WarehouseVH._Text[1: Language=$session.system_language].WarehouseName as WarehouseName,
@UI.hidden: false
@UI.lineItem: [{ position: 40, importance: #HIGH, label: 'Load Carrier'}]
@UI.fieldGroup: [ {qualifier: 'PackagingMaterial' }]
@Consumption.valueHelpDefinition: [{entity: {name: 'C_PackagingMaterialVH', element: 'PackagingMaterial'},
additionalBinding: [{ element: 'PackagingMaterialCategory', localConstant: 'C', usage: #FILTER}] }]
@ObjectModel.text.element: [ 'PackagingMaterialName' ]
@EndUserText.label: 'Load Carriers'
PackagingMaterial,
@UI.hidden: true
@Semantics.text: true
_PackagingMaterialText[1: Language=$session.system_language].MaterialName as PackagingMaterialName,
@UI.selectionField.position: 30
@UI.lineItem: [{ position: 20, importance: #HIGH }]
@UI.identification.position: 20
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'CL_HUM_PRODUCTS_SADL_EXIT'
@ObjectModel.filter.transformedBy: 'CL_HUM_PRODUCTS_SADL_EXIT'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductVH', element: 'Product' } } ]
@EndUserText.label: 'Products'
cast('' as abap.char(100)) as HandlingUnitProductName,
@EndUserText.label: 'Packaging Mat. Type'
@ObjectModel.text.element: [ 'PackagingMaterialTypeName' ]
PackagingMaterialType,
@UI.hidden: true
@Semantics.text: true
_I_PackagingMaterialType._Text[1: Language=$session.system_language].PackagingMaterialTypeName as PackagingMaterialTypeName,
//@UI.selectionField.position: 50
//@UI.lineItem.position: 50
@UI.identification.position: 50
@UI.fieldGroup: [ {qualifier: 'Plant' }, {qualifier: 'QuickView', position: 10, groupLabel: 'Quick View' }]
//{ qualifier: 'HeaderColumn2', position: 10, importance: #HIGH }]
@Consumption.valueHelpDefinition: [{entity: {name: 'C_PlantVH',element: 'Plant'} }]
@ObjectModel.text.element: [ 'PlantName' ]
@EndUserText.label: 'Plant'
Plant,
@UI.hidden: true
@Semantics.text: true
_Plant.PlantName,
//@UI.selectionField.position: 60
//@UI.lineItem.position: 60
@UI.identification.position: 60
@UI.fieldGroup: [ {qualifier: 'StorageLocation' }]
//{ qualifier: 'HeaderColumn2', position: 20, importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [{entity: {name: 'I_StorageLocationStdVH',element: 'StorageLocation'} }]
@ObjectModel.text.element: [ 'StorageLocationName' ]
@EndUserText.label: 'Storage Location'
StorageLocation,
@UI.hidden: true
@Semantics.text: true
_StorageLocation.StorageLocationName,
@Consumption.valueHelpDefinition: [{entity: {name: 'C_ShippingPointVH',element: 'ShippingPoint'} }]
ShippingPoint,
@UI.hidden: true
ParentHandlingUnitNumber,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'WeightUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock1', position: 40, importance: #HIGH}
GrossWeight,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'WeightUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock1', position: 30, importance: #HIGH}
NetWeight,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'WeightUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock1', position: 20, importance: #HIGH}
HandlingUnitMaxWeight,
@Semantics.unitOfMeasure:true
@Consumption.filter.hidden: true
WeightUnit,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'HandlingUnitTareWeightUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock1', position: 10, importance: #HIGH}
HandlingUnitTareWeight,
@Consumption.filter.hidden: true
@Semantics.unitOfMeasure:true
HandlingUnitTareWeightUnit,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'VolumeUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock2', position: 40, importance: #HIGH}
GrossVolume,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'VolumeUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock2', position: 30, importance: #HIGH}
HandlingUnitNetVolume,
@Semantics.unitOfMeasure:true
@Consumption.filter.hidden: true
VolumeUnit,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'VolumeUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock2', position: 20, importance: #HIGH}
HandlingUnitMaxVolume,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'HandlingUnitTareVolumeUnit'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock2', position: 10, importance: #HIGH}
HandlingUnitTareVolume,
// HandlingUnitVolumeTolerance,
@Consumption.filter.hidden: true
@Semantics.unitOfMeasure:true
HandlingUnitTareVolumeUnit,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasureDimension'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock3', position: 10, importance: #HIGH}
HandlingUnitLength,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasureDimension'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock3', position: 20, importance: #HIGH}
HandlingUnitWidth,
@Consumption.filter.hidden: true
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasureDimension'
@UI.fieldGroup: {qualifier: 'MeasurementsBlock3', position: 30, importance: #HIGH}
HandlingUnitHeight,
@Consumption.filter.hidden: true
@Semantics.unitOfMeasure:true
UnitOfMeasureDimension,
@ObjectModel.foreignKey.association: '_HandlingUnitJITCall'
//dummy annotation 'semantiObject' to generate smart link in the UI - do not delete
@Consumption.semanticObject: 'undefined'
@UI.lineItem: [{ position: 50, importance: #HIGH }]
@UI.fieldGroup: [ {qualifier: 'HandlingUnitReferenceDocument' }, {qualifier: 'QuickView', position: 30, groupLabel: 'Quick View' },
{ qualifier: 'HeaderColumn1', position: 10, label: 'Reference Document', importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [{entity: {name: 'C_HandlingUnitReferenceDocVH',element: 'HandlingUnitReferenceDocument'} }]
@Consumption.filter.hidden: true
@Search.defaultSearchElement: true
@Search.ranking: #MEDIUM
@Search.fuzzinessThreshold: 0.9
@ObjectModel.text.element: ['HandlingUnitReferenceDocName']
@UI.textArrangement: #TEXT_LAST
@EndUserText.label: 'Reference Document'
HandlingUnitReferenceDocument,
@UI.selectionField: [ { position: 40 } ]
@Consumption.valueHelpDefinition: [{entity: {name: 'C_HandlingUnitReferenceDocVH',element: 'HndlgUnitRefDocWthoutLdngZeros'} }]
@ObjectModel.virtualElement: true
@ObjectModel.filter.transformedBy: 'CL_LOHUM_REFDOC_SADL_EXIT'
@EndUserText.label: 'Reference Document'
cast('' as hndlguntrefdocwthoutldngzeros ) as HndlgUnitRefDocWthoutLdngZeros,
@UI.hidden: true
HandlingUnitPackingObjectType,
@UI.hidden: true
@Semantics.text: true
_I_HandlingUnitRefDocTypeText[1: Language=$session.system_language].HandlingUnitRefDocTypeName as HandlingUnitReferenceDocName,
@UI.hidden: true
@Semantics.text: true
_I_UserCreatedBy.UserDescription as CreatedByUserFullName,
@UI.fieldGroup: [ {qualifier: 'CreatedByUser' }, {qualifier: 'QuickView', position: 50, groupLabel: 'Quick View' },
{qualifier: 'GeneralInfoBlock1', position: 10, importance: #HIGH}]
@ObjectModel.text.element: [ 'CreatedByUserFullName' ]
CreatedByUser,
@UI.hidden: true
@Semantics.text: true
_I_UserChangedBy.UserDescription as LastChangedByUserFullName,
@UI.fieldGroup: [ {qualifier: 'LastChangedByUser' }, {qualifier: 'QuickView', position: 70, groupLabel: 'Quick View' },
{qualifier: 'GeneralInfoBlock2', position: 10, importance: #HIGH}]
@ObjectModel.text.element: [ 'LastChangedByUserFullName' ]
LastChangedByUser,
@UI.fieldGroup: [ {qualifier: 'CreationDateTime' }, {qualifier: 'QuickView', position: 40, groupLabel: 'Quick View' },
{qualifier: 'GeneralInfoBlock1', position: 20, importance: #HIGH}]
@EndUserText.label: 'Creation Date/Time'
@Semantics.dateTime: true
CreationDateTime,
// @ObjectModel.text.element: [ 'CreationDateTime' ]
// abap_system_timezone( $session.client, 'NULL') as DisplayTimezone,
@UI.fieldGroup: [ {qualifier: 'LastChangeDateTime' }, {qualifier: 'QuickView', position: 60, groupLabel: 'Quick View' },
{qualifier: 'GeneralInfoBlock2', position: 20, importance: #HIGH}]
@EndUserText.label: 'Change Date/Time'
@Semantics.dateTime: true
LastChangeDateTime,
@UI.fieldGroup: [ {qualifier: 'HeaderColumn2', label: 'Status', position: 10, importance: #HIGH }, {qualifier: 'QuickView', position: 10, groupLabel: 'Quick View' }]
@ObjectModel.text.element: 'HandlingUnitProcessStatusText'
@Consumption.valueHelpDefinition: [{entity: {name: 'C_HandlingUnitStatusVH',element: 'HandlingUnitStat'} }]
@EndUserText.label: 'Status'
@UI.selectionField.position: 80
HandlingUnitProcessStatus,
@UI.hidden: true
@Semantics.text: true
cast( _I_HandlingUnitProcessStatus._Text[1: Language=$session.system_language].HandlingUnitProcessStatusText as val_text) as HandlingUnitProcessStatusText,
@Semantics.text: true
@UI.hidden: true
//with leading zeros
cast(HandlingUnitInternalID as abap.char(10)) as HandlingUnitInternalOrig,
@UI.hidden: true
//without leading zeros
HandlingUnitInternalID,
@UI.hidden: true
concat(_I_HandlingUnitHeader.HandlingUnitExternalID, _I_HandlingUnitHeader.Warehouse) as HandlingUnitExternalIDWareHs,
@UI.hidden: true
_I_HandlingUnitHeader.SourceHandlingUnitUUID,
// @Consumption.semanticObject: 'PackingInstruction'
// @UI.lineItem.semanticObjectAction: 'manage'
// @UI.lineItem.type: #FOR_INTENT_BASED_NAVIGATION
@UI.hidden: true
PackingInstruction,
@UI.selectionField.position: 100
@EndUserText.label: 'Packing Instruction'
@UI.fieldGroup:[{ qualifier: 'HeaderColumn1', position: 30, label: 'Packing Instruction', importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [{entity: {name: 'I_PackingInstructionStdVH',element: 'PackingInstructionNumber'} }]
_I_PackingInstructionStdVH.PackingInstructionNumber,
// Delivery Header
@UI.hidden: true
_I_DeliveryDocument.DeliveryDocument,
@Consumption.semanticObject: 'Customer'
@UI.lineItem: [{ qualifier: 'ShipToParty', position: 60, importance: #MEDIUM, type: #WITH_INTENT_BASED_NAVIGATION, semanticObjectAction: 'displayFactSheet' }]
@UI.fieldGroup: [ {qualifier: 'Ship-To Party' }, {qualifier: 'QuickView', position: 100, groupLabel: 'Quick View' },
{ qualifier: 'HeaderColumn1', position: 20, label: 'Ship-To Party', importance: #MEDIUM }]
@Search.defaultSearchElement: true
@Search.ranking: #MEDIUM
@Search.fuzzinessThreshold: 0.9
@ObjectModel.text.element: ['CustomerName']
@EndUserText.label: 'Ship-To Party'
_I_DeliveryDocument.ShipToParty,
@Consumption.semanticObject: 'Customer'
@Search.defaultSearchElement: true
@Search.ranking: #MEDIUM
@Search.fuzzinessThreshold: 0.9
@UI.lineItem: [{ qualifier: 'SoldToParty', position: 70, importance: #MEDIUM, type: #WITH_INTENT_BASED_NAVIGATION, semanticObjectAction: 'displayFactSheet' }]
@EndUserText.label: 'Sold-To Party'
_I_DeliveryDocument.SoldToParty,
// _I_DeliveryDocument.ActualGoodsMovementDate as GoodsIssueDate,
// _I_DeliveryDocument.DeliveryDate,
@UI.hidden: true
@Semantics.text: true
_I_DeliveryDocument._ShipToParty.CustomerName as CustomerName,
// EWM specific fields
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'CL_P_EWM_HANDLINGUNITHEADER02'
StorageType,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'CL_P_EWM_HANDLINGUNITHEADER02'
StorageSection,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'CL_P_EWM_HANDLINGUNITHEADER02'
StorageBin,
@UI.hidden: true
@Semantics.text: true
HandlingUnitOrigin,
/* Associations */
@Consumption.filter.hidden: true
_HandlingUnitItem,
@Consumption.filter.hidden: true
_I_DeliveryDocument,
@Consumption.filter.hidden: true
_I_User,
@Consumption.filter.hidden: true
_ShippingPointVH,
@Consumption.filter.hidden: true
_StorageLocationVH,
@Consumption.filter.hidden: true
_StorageLocation,
@Consumption.filter.hidden: true
_WarehouseVH,
@Consumption.filter.hidden: true
_PlantVH,
@Consumption.filter.hidden: true
_Plant,
@Consumption.filter.hidden: true
_PackagingMaterialText,
@Consumption.filter.hidden: true
_I_PackagingMaterialType,
@Consumption.filter.hidden: true
@ObjectModel.association.type: #TO_COMPOSITION_CHILD
_HandlingUnitJITCall
}