@AbapCatalog.sqlViewName: 'CMPEEXECHIST'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.privilegedAssociations: ['_MRPController', '_CreatedByUserContactCard', '_ProductionSupervisor', '_CreatedByUser', '_ExecutionUser', '_SASSchema' ]
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {serviceQuality: #D, sizeCategory: #XL, dataClass: #MIXED}
@VDM.viewType: #CONSUMPTION
@VDM.private: false
@UI: {
headerInfo:{
typeName: 'Action',
typeNamePlural: 'Actions',
title: { type: #STANDARD, value: 'SystemMessageDescription' }
},
textArrangement: #TEXT_LAST,
presentationVariant: {
requestAtLeast: ['MfgExecDocNoteIsExisting'],
sortOrder: [ {by: 'ManufacturingOrder', direction: #ASC }, {by: 'EventDateTime', direction: #ASC }, {by: 'SortField', direction: #ASC } ]
}
}
@EndUserText.label: 'Manufacturing Execution Event History'
define view C_MfgExecEventHistory
as select from P_MfgExecEventHistoryCnsmpn as h
association [0..1] to I_Plant as _WorkCenterPlant on $projection.WorkCenterPlant = _WorkCenterPlant.Plant
association [0..1] to I_WorkCenterBySemanticKey as _WorkCenterBySemanticKey on $projection.WorkCenterPlant = _WorkCenterBySemanticKey.Plant
and $projection.WorkCenter = _WorkCenterBySemanticKey.WorkCenter
association [0..*] to I_MfgProcgExecActionText as _MfgProcgExecActionText on $projection.MfgExecDocumentCategory <> 9
and $projection.MfgExecDocumentCategory <> 4
and $projection.MfgExecDocumentCategory <> 255
and $projection.MfgExecDocumentCategory <> 250
and $projection.MfgProcgExecAction = _MfgProcgExecActionText.MfgProcgExecAction
association [0..*] to I_MfgObjectLogEventTypeText as _MfgObjectLogEventTypeText on $projection.MfgExecDocumentCategory = 9
and $projection.MfgObjectLogEventType = _MfgObjectLogEventTypeText.MfgObjectLogEventType
association [0..*] to I_MfgObjectLogEventTypeText as _MfgObjectLogCreateText on _MfgObjectLogCreateText.MfgObjectLogEventType = 5
association [0..*] to I_MfgBuyOffActionText as _MfgBuyOffActionText on $projection.MfgExecDocumentCategory = 4
and $projection.MfgBuyOffAction = _MfgBuyOffActionText.MfgBuyOffAction
association [0..*] to I_MfgDefectActionText as _DefectActionText on (
$projection.MfgExecDocumentCategory = 255
or $projection.MfgExecDocumentCategory = 250
)
and $projection.MfgProcgExecAction = _DefectActionText.MfgDefectAction
association [0..1] to I_OpActyNtwkInternalID as _OpActyNtwkInternalId on $projection.OperationActivityNetwork = _OpActyNtwkInternalId.OperationActivityNetwork
association [0..1] to I_OperationActivityNetwork as _OperationActivityNetwork on $projection.OperationActivityNetwork = _OperationActivityNetwork.OperationActivityNetwork
and $projection.OpActyNtwkVersionCounter = _OperationActivityNetwork.OpActyNtwkVersionCounter
association [0..1] to I_OpActyNtwkSegmentTypeText as _OpActyNtwkSegmentTypeText on $projection.OpActyNtwkSegmentType = _OpActyNtwkSegmentTypeText.OpActyNtwkSegmentType
and _OpActyNtwkSegmentTypeText.Language = $session.system_language
association [0..*] to I_SASSchemaText as _SASSchemaText on $projection.StatusAndActionSchema = _SASSchemaText.StatusAndActionSchema
-- contact card
association [0..1] to I_UserContactCard as _CreatedByUserContactCard on $projection.ShopFloorExecutionUser = _CreatedByUserContactCard.ContactCardID
{
@UI.facet: [
{ label: 'Action Details',
id: 'ACTIONDETAILS',
type: #COLLECTION,
position: 10
},
{
label: 'Administrative Data',
id: 'ADMIN',
parentId: 'ACTIONDETAILS',
type: #IDENTIFICATION_REFERENCE,
position: 10
},
{
label: 'Action Info',
id: 'ACTIONINFO',
parentId: 'ACTIONDETAILS',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'ACTIONINFO',
position: 20
},
{
label: 'Assembly Info',
id: 'ASSEMBLYINFO',
parentId: 'ACTIONDETAILS',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'ASSEMBLYINFO',
position: 25
},
{
label: 'Organizational Data',
id: 'ORGANIZATION',
parentId: 'ACTIONDETAILS',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'ORGANIZATION',
position: 30
},
{
label: 'Order Reference',
id: 'ORDER',
parentId: 'ACTIONDETAILS',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'ORDER',
position: 40
}
]
@UI.hidden: true
@Consumption.filter.hidden: true
//@Consumption.hidden: true
key h.MfgExecDocumentCategory as MfgExecDocumentCategory,
@UI.hidden: true
@Consumption.filter.hidden: true
//@Consumption.hidden: true
key h.ManufacturingExecutionDocument as ManufacturingExecutionDocument,
@UI.hidden: true
@Consumption.filter.hidden: true
//@Consumption.hidden: true
key h.MfgExecutionDocumentItem as MfgExecutionDocumentItem,
@ObjectModel.foreignKey.association: '_MfgProcgExecAction'
@UI.hidden: true
key h.MfgProcgExecAction as MfgProcgExecAction,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
@UI.dataPoint: { title: 'Production Order' }
@UI.lineItem.position: 20
@UI.selectionField.position: 10
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.groupLabel: 'Order Reference'
@UI.fieldGroup.position: 10
@UI.fieldGroup.value: 'ManufacturingOrder'
key h.ManufacturingOrder as ManufacturingOrder,
@UI.hidden: true
key h.OrderOperationInternalID as OrderOperationInternalID,
@UI.hidden: true
key h.InspectionCharacteristic as InspectionCharacteristic,
@UI.hidden: true
key h.InspectionSubsetInternalID as InspectionSubsetInternalID,
@UI.hidden: true
key h.InspResultValueInternalID as InspResultValueInternalID,
@UI.hidden: true
key h.ChangeDocDatabaseTableField as ChangeDocDatabaseTableField,
@UI.hidden: true
key h.ChangeDocument as ChangeDocument,
-------------------------------------------------------------------------------------------------------
-- Administrative Data --------------------------------------------------------------------------------
@UI.hidden: true
@ObjectModel: {
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_MESSAGE'
}
h.MfgObjectLogEventType as MfgObjectLogEventType,
@UI.hidden: true
@Consumption.filter.hidden: true
h.SortField as SortField,
@Semantics.businessDate.at: true
@UI.identification.position: 10
@UI.lineItem: [
{position: 100},
{position: 40, qualifier: 'GENEALOGY'}]
h.EventDateTime as EventDateTime,
@ObjectModel.text.element: 'ShopFloorExecutionUserName'
@UI: {
hidden: true,
identification: {position: 20, label: 'Performed By', type: #AS_CONTACT, value: '_CreatedByUserContactCard'},
lineItem: [
{position: 110, label: 'Performed By', type: #AS_CONTACT, value: '_CreatedByUserContactCard'},
{position: 30, qualifier: 'GENEALOGY', label: 'Performed By', type: #AS_CONTACT, value: '_CreatedByUserContactCard'}]
}
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
h.ShopFloorExecutionUser as ShopFloorExecutionUser,
@Semantics.text: true
@UI.hidden: true
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
h.ShopFloorExecutionUserName as ShopFloorExecutionUserName,
@Semantics.systemDateTime.createdAt: true
@UI.identification.position: 30
@UI.hidden: true
h.CreationDateTime as CreationDateTime,
@Semantics.user.createdBy: true
@UI.hidden: true
h.CreatedByUser as CreatedByUser,
@UI.hidden: true
h.RespyMgmtTeamID as RespyMgmtTeamID,
@ObjectModel.text.element: 'RespyMgmtTeamDescription'
@UI.identification.position: 40
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as rsm_de_team_name) as RespyMgmtTeamName,
@Semantics.text: true
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as rsm_de_team_descr) as RespyMgmtTeamDescription,
@ObjectModel.text.element: 'RespyMgmtFunctionDescription'
@UI.identification.position: 50
h.RespyMgmtFunction as RespyMgmtFunction,
@Semantics.text: true
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as rsm_de_function_descr) as RespyMgmtFunctionDescription,
-------------------------------------------------------------------------------------------------------
-- Action Info ----------------------------------------------------------------------------------------
---- Message Data -------------------------------------------------------------------------------------
@UI.hidden: true
h.SystemMessageNumber as SystemMessageNumber,
@UI.hidden: true
h.SystemMessageIdentification as SystemMessageIdentification,
@UI.hidden: true
cast(h.MfgExecHistMsgVarblField1 as mpe_log_variable1 preserving type ) as MfgExecHistMsgVarblField1,
@UI.hidden: true
cast(h.MfgExecHistMsgVarblField2 as mpe_log_variable2 preserving type ) as MfgExecHistMsgVarblField2,
@UI.hidden: true
cast(h.MfgExecHistMsgVarblField3 as mpe_log_variable3 preserving type ) as MfgExecHistMsgVarblField3,
@UI.hidden: true
cast(h.MfgExecHistMsgVarblField4 as mpe_log_variable4 preserving type ) as MfgExecHistMsgVarblField4,
@UI.hidden: true
h.MfgProcgExecAttachmentName as MfgProcgExecAttachmentName,
@Semantics.text: true
@UI: {
lineItem: [
{position: 10},
{position: 10, qualifier: 'GENEALOGY'}], -- defines default columns of the table on ObjectList
multiLineText: true
}
@ObjectModel: {
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_MESSAGE'
}
cast( '' as mpe_action_message_description ) as SystemMessageDescription,
@UI.hidden: true
h.MfgBuyOffAction as MfgBuyOffAction,
---- Action Data --------------------------------------------------------------------------------------
@UI: {
lineItem: [
{position: 80},
{position: 20, qualifier: 'GENEALOGY'}],
selectionField.position: 80
}
@Semantics.text: true
cast(case h.MfgExecDocumentCategory
when 9 then _MfgObjectLogEventTypeText[1: Language=$session.system_language].MfgObjectLogEventTypeName
-- Workaround: For "Create SFI" reuse text of event "Create"
when 252 then _MfgObjectLogCreateText[1: Language=$session.system_language].MfgObjectLogEventTypeName
when 4 then _MfgBuyOffActionText[1: Language=$session.system_language].MfgBuyOffActionName
when 255 then _DefectActionText[1: Language=$session.system_language].MfgDefectActionDesc
when 250 then _DefectActionText[1: Language=$session.system_language].MfgDefectActionDesc
else _MfgProcgExecActionText[1: Language=$session.system_language].MfgProcgExecActionName
end as mpe_action_description_type ) as MfgProcgExecActionName,
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.groupLabel: 'Action Info'
@UI.fieldGroup.position: 30
@ObjectModel.foreignKey.association: '_SASSchema'
@Consumption.filter.hidden: true
h.StatusAndActionSchema as StatusAndActionSchema,
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 31
@UI.hidden: true
h.PostingIsRetroactive as PostingIsRetroactive,
---- Quantity Data ------------------------------------------------------------------------------------
@Semantics.quantity.unitOfMeasure: 'ProductionUnit'
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 40
h.BusinessProcessConfirmedQty as BusinessProcessConfirmedQty,
@Semantics.unitOfMeasure: true
-- @ObjectModel.text.element: 'UnitOfMeasureName'
h.ProductionUnit as ProductionUnit,
-- @Semantics.text: true
-- UI.hidden: true
-- h._ProductionUnit._Text[1: Language=$session.system_language].UnitOfMeasureName as UnitOfMeasureName,
---- Duration Data ------------------------------------------------------------------------------------
@UI.hidden: true
@Semantics.durationInSeconds: true
h.OpActyActualDurnInSeconds as OpActyActualDurnInSeconds,
@Semantics.quantity.unitOfMeasure: 'ActualDurationUnit'
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_MPE_OA_ACTL_EXEC_DURN' }
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 43
cast(0 as mpe_status_duration_quan) as ActualDuration,
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_MPE_OA_ACTL_EXEC_DURN' }
@Semantics.unitOfMeasure: true
cast('' as durationunit) as ActualDurationUnit,
---- Component Data -----------------------------------------------------------------------------------
--@ObjectModel.foreignKey.association: '_MaterialComponent'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MaterialStdVH', element: 'Material'} } ]
@ObjectModel.text.element: 'MaterialComponentName'
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 10
@UI.fieldGroup.semanticObjectAction: 'displayFactSheet'
@UI.fieldGroup.value: 'MaterialComponent'
--@Consumption.semanticObject: 'Material'
h.MaterialComponent as MaterialComponent,
@UI.hidden: true
@Semantics.text: true
h.MaterialComponentName as MaterialComponentName,
@ObjectModel.foreignKey.association: '_AssembledShopFloorItem'
@UI.hidden: true
h.AssembledShopFloorItem as AssembledShopFloorItem,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 20
h.AssembledSerialNumber as AssembledSerialNumber,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 21
h.AssembledMfrSerialNumber as AssembledMfrSerialNumber,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 30
h.AssembledBatch as AssembledBatch,
@UI.hidden: true
h.ReplacedShopFloorItem as ReplacedShopFloorItem,
@UI.hidden: true
h.ReplacedSerialNumber as ReplacedSerialNumber,
@UI.hidden: true
h.ReplacedBatch as ReplacedBatch,
@UI.hidden: true
h.MfgOrderSplitChildOrder as MfgOrderSplitChildOrder,
@UI.hidden: true
h.BOMExplosionDate as BOMExplosionDate,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 31
@ObjectModel: {
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_MPE_ASSLDBATCHBYSUPPLIER_VE'
}
cast(' ' as lichn preserving type ) as AssembledBatchBySupplier,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 40
h.ReferenceDesignatorValue as ReferenceDesignatorValue,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 50
@ObjectModel.text.element: 'StorageLocationName'
@ObjectModel.foreignKey.association: '_StorageLocation'
h.StorageLocation as StorageLocation,
@UI.hidden: true
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as lgort_name) as StorageLocationName,
--h._StorageLocation.StorageLocationName as StorageLocationName,
@UI.hidden: true
@ObjectModel.text.element: 'InventoryUsabilityCodeName'
h.InventoryUsabilityCode as InventoryUsabilityCode,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 60
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as mpe_insmk_name) as InventoryUsabilityCodeName,
--h._PlannedInvtryUsblyCodeText[1: Language=$session.system_language].PlannedInvtryUsabilityCodeName as InventoryUsabilityCodeName,
@UI.hidden: true
@ObjectModel.text.element: 'CompDisassemblyPermanenceName'
h.CompDisassemblyPermanence as CompDisassemblyPermanence,
@UI.fieldGroup.qualifier: 'ASSEMBLYINFO'
@UI.fieldGroup.position: 70
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as mpe_disassembly_permanence_nam) as CompDisassemblyPermanenceName,
@UI.hidden: true
h.MaterialComponentHasReltdComp as MaterialComponentHasReltdComp,
---- Equipment ----------------------------------------------------------------------------------------
@UI.hidden: true
h.Equipment as Equipment,
---- Reason Code Data ---------------------------------------------------------------------------------
@Consumption.valueHelpDefinition: [ { entity: { name: 'C_MfgActnRsnCodeGrpCtlgVH', element: 'MfgActionReasonCodeGroupCtlg'} } ]
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 60
h.MfgActionReasonCodeGroupCtlg as MfgActionReasonCodeGroupCtlg,
--@ObjectModel.foreignKey.association: '_MfgActionReasonCodeGroup'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgActnRsnCodeGrpStdVH', element: 'MfgActionReasonCodeGroup'} } ]
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 63
--@Consumption.semanticObject: 'ManufacturingActionReasonGroup'
h.MfgActionReasonCodeGroup as MfgActionReasonCodeGroup,
--@ObjectModel.foreignKey.association: '_MfgActionReasonCode'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgActionReasonCodeStdVH', element: 'ManufacturingActionReasonCode' } } ]
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 66
@ObjectModel.text.element: 'MfgActionReasonCodeName'
--@Consumption.semanticObject: 'ManufacturingActionReason'
h.ManufacturingActionReasonCode as ManufacturingActionReasonCode,
@UI.hidden: true
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as qtxt_code) as MfgActionReasonCodeName,
--h._MfgActionReasonCode._Text[1: Language=$session.system_language].MfgActionReasonCodeName as MfgActionReasonCodeName,
@UI.hidden: true
cast(h.MfgExecDocReasonCodeIsExisting as boolean preserving type ) as MfgExecDocReasonCodeIsExisting,
---- Note Data ----------------------------------------------------------------------------------------
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_MESSAGE'
cast('' as mpe_note_exists preserving type) as MfgExecDocNoteIsExisting,
@Semantics.text: true
@UI.multiLineText: true
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 70
h.MfgExecutionDocumentNote as MfgExecutionDocumentNote,
---- SFI@OA-Group Data --------------------------------------------------------------------------------
@Consumption.valueHelpDefinition: [ { entity: { name: 'C_OpActivitySFIGroupStdVH', element: 'OperationActivitySFIGroup' } } ]
@UI.fieldGroup.qualifier: 'ACTIONINFO'
@UI.fieldGroup.position: 80
@ObjectModel.text.element: 'OpActySFIGroupName'
h.OperationActivitySFIGroup as OperationActivitySFIGroup,
@UI.hidden: true
@Semantics.text: true
h._OperationActivitySFIGroup.OpActySFIGroupName as OpActySFIGroupName,
-------------------------------------------------------------------------------------------------------
-- Organizational Data --------------------------------------------------------------------------------
---- Production Plant ---------------------------------------------------------------------------------
--@ObjectModel.foreignKey.association: '_ProductionPlant'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant'} } ]
@ObjectModel.text.element: 'ProductionPlantName'
@UI.selectionField.position: 50
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 1}
//@UI.dataPoint:{ title: 'Plant'}
@UI.fieldGroup.qualifier: 'ORGANIZATION'
@UI.fieldGroup.groupLabel: 'Organizational Data'
@UI.fieldGroup.position: 10
h.ProductionPlant as ProductionPlant,
@UI.hidden: true
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as werks_name) as ProductionPlantName,
--h._ProductionPlant.PlantName as ProductionPlantName,
---- Production Supervisor-----------------------------------------------------------------------------
@UI.fieldGroup.qualifier: 'ORGANIZATION'
@UI.fieldGroup.position: 20
@ObjectModel.foreignKey.association: '_ProductionSupervisor'
cast(h.ProductionSupervisor as mpe_fevor preserving type) as ProductionSupervisor,
---- MRP Plant ----------------------------------------------------------------------------------------
@ObjectModel.foreignKey.association: '_MRPPlant'
-- @UI.fieldGroup.qualifier: 'ORGANIZATION'
-- @UI.fieldGroup.position: 30
@UI.hidden: true
h.MRPPlant as MRPPlant,
---- MRP Controller -----------------------------------------------------------------------------------
@ObjectModel.foreignKey.association: '_MRPController'
-- @UI.fieldGroup.qualifier: 'ORGANIZATION'
-- @UI.fieldGroup.position: 40
@UI.hidden: true
h.MRPController as MRPController,
---- Work Center Data ---------------------------------------------------------------------------------
@UI.hidden: true
h.WorkCenterInternalID as WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
@UI.hidden: true
h.WorkCenterTypeCode as WorkCenterTypeCode,
--@ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WrkCtrBySemanticKeyStdVH', element: 'WorkCenter'} } ]
@UI.selectionField.position: 70
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
@UI.fieldGroup.qualifier: 'ORGANIZATION'
@UI.fieldGroup.position: 50
@UI.fieldGroup.semanticObjectAction: 'displayFactSheet'
@UI.fieldGroup.value: 'WorkCenter'
--@Consumption.semanticObject: 'WorkCenter'
_WorkCenter.WorkCenter as WorkCenter,
--@ObjectModel.foreignKey.association: '_WorkCenterPlant'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant'} } ]
@ObjectModel.text.element: 'WorkCenterPlantName'
@UI.fieldGroup.qualifier: 'ORGANIZATION'
@UI.fieldGroup.position: 60
h.WorkCenterPlant as WorkCenterPlant,
@UI.hidden: true
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as werks_name) as WorkCenterPlantName,
--_WorkCenterPlant.PlantName as WorkCenterPlantName,
@UI.hidden: true
h.DefectInternalID as DefectInternalID,
@UI.hidden: true
h.Notification