@AbapCatalog.sqlViewName: 'CMPEEXECHIST'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: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,
@UI.hidden: true
@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 as Notification,
@UI.hidden: true
h.NotificationItem as NotificationItem,
-------------------------------------------------------------------------------------------------------
-- Order Reference Data -------------------------------------------------------------------------------
---- Order Header Data --------------------------------------------------------------------------------
@UI.hidden: true
h.ManufacturingOrderText as ManufacturingOrderText,
@UI.hidden: true
h.ManufacturingOrderType as ManufacturingOrderType,
@UI.hidden: true
h.ManufacturingOrderCategory as ManufacturingOrderCategory,
@UI.hidden: true
h.OrderInternalID as OrderInternalID,
@Semantics.text: true
//@UI.dataPoint:{ title: 'Order Status' }
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 20
-- For performance reading when accessing JEST, this is done as virtual element
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_MPE_MAIN_STATUS_NAME' }
cast( '' as mpe_order_main_status_text ) as OrderMainStatusName,
--@ObjectModel.foreignKey.association: '_Material'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MaterialStdVH', element: 'Material'} } ]
@ObjectModel.text.element: 'MaterialName'
//@UI.dataPoint:{ title: 'Material'}
// @UI.lineItem.position: 50 -- No display in list to prevent line break
@UI.selectionField.position: 40
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 30
@UI.fieldGroup.semanticObjectAction: 'displayFactSheet'
@UI.fieldGroup.value: 'Material'
--@Consumption.semanticObject: 'Material'
h.Material as Material,
@UI.hidden: true
@Semantics.text: true
h.MaterialName as MaterialName,
---- Order Operation Data -----------------------------------------------------------------------------
--@ObjectModel.foreignKey.association: '_MfgOrderSequence'
--@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderSequenceStdVH', element: 'ManufacturingOrderSequence' } } ]
--@UI.fieldGroup.qualifier: 'ORDER'
--@UI.fieldGroup.position: 40
--@UI.hidden: true -- Since at least for the time being MPE Orders just have the standard sequence
--h.ManufacturingOrderSequence as ManufacturingOrderSequence,
@ObjectModel.text.element: 'MfgOrderOperationText'
@UI.dataPoint:{ title: 'Operation'}
@UI.lineItem.position: 30
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.95}
@UI.selectionField.position: 20
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 50
h.ManufacturingOrderOperation as ManufacturingOrderOperation,
@Semantics.text: true
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
@UI.hidden: true
h.MfgOrderOperationText as MfgOrderOperationText,
@Semantics.text: true
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 60
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_MPE_MAIN_STATUS_NAME' }
-- For performance reading when accessing JEST, this is done as virtual element
cast( '' as mpe_oper_main_status_text ) as OrderOperationMainStatusName,
---- Operation Activity Data --------------------------------------------------------------------------
@UI.dataPoint:{ title: 'Operation Segment'}
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 70
@ObjectModel.text.element: 'OpActyNtwkSegmentTypeText'
@ObjectModel.foreignKey.association: '_OpActyNtwkSegmentType'
h.OpActyNtwkSegmentType as OpActyNtwkSegmentType,
@UI.hidden: true
@Semantics.text: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_ACTION_LOG_BUFD_TBL_ACC'
cast('' as mpe_oan_segment_type_name) as OpActyNtwkSegmentTypeText,
--cast(h._OpActyNtwkSegmentType._Text[1: Language=$session.system_language].OpActyNtwkSegmentTypeText
-- as mpe_oan_segment_type_name preserving type ) as OpActyNtwkSegmentTypeText,
@ObjectModel.foreignKey.association: '_OpActyNtwkInstance'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_OpActyNtwkInstanceStdVH', element: 'OpActyNtwkInstance'} } ]
@UI.hidden: true
h.OpActyNtwkInstance as OpActyNtwkInstance,
@ObjectModel.foreignKey.association: '_OperationActivityInstance'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_OpActyInstceStdVH', element: 'OpActyNtwkElement'} } ]
@UI.hidden: true
h.OpActyNtwkElement as OpActyNtwkElement,
@ObjectModel.foreignKey.association: '_OpActyNtwkInternalId'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_OpActyNtwkInternalIDStdVH', element: 'OperationActivityNetwork'} } ]
@UI.hidden: true
h.OperationActivityNetwork as OperationActivityNetwork,
@ObjectModel.foreignKey.association: '_OperationActivityNetwork'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_OANStdVH', element: 'OpActyNtwkVersionCounter'} } ]
@UI.hidden: true
h.OpActyNtwkVersionCounter as OpActyNtwkVersionCounter,
@Semantics.text: true
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
@UI.hidden: true
h.OperationActivityName as OperationActivityName,
@UI.dataPoint:{ title: 'Operation Activity'}
@UI.lineItem.position: 40
@UI.selectionField.position: 30
--@Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.95}
@ObjectModel.text.element: 'OperationActivityName'
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 80
cast(h.OpActyNtwkElementExternalID as mpe_oa_number_ext preserving type) as OpActyNtwkElementExternalID,
---- SFI Data -----------------------------------------------------------------------------------------
@ObjectModel.foreignKey.association: '_ShopFloorItem'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ShopFloorItemStdVH', element: 'ShopFloorItem'} } ]
@UI.hidden: true
h.ShopFloorItem as ShopFloorItem,
@UI.dataPoint:{ title: 'Serial Number'}
@UI.lineItem.position: 70
@UI.selectionField.position: 60
--@Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.95}
@UI.fieldGroup.qualifier: 'ORDER'
@UI.fieldGroup.position: 90
h._ShopFloorItem.SerialNumber as SerialNumber,
---- Buyoff & Defect Data---------------------------------------------------------------------------------------
@UI.hidden: true
h.Defect as Defect,
@UI.hidden: true
h.DefectText as DefectText,
@UI.hidden: true
h.QltyTaskFollowUpAction as QltyTaskFollowUpAction,
@UI.hidden: true
cast(case
when h.MfgExecDocumentCategory = 4 then case
when h.MfgBuyOffReferencedStep = 0 then h.MfgBuyOffDescription
else h.MfgBuyOffAdhocStepDescription
end
else ''
end as mpe_buyoffsqnc_desc preserving type) as MfgBuyOffDescription,
@UI.hidden: true
h.MfgBuyOffCycle as MfgBuyOffCycle,
---- Inspection Characteristics Data-----------------------------------------------------------------------------------------
@UI.hidden: true
h.InspectionSpecificationText as InspectionSpecificationText,
@UI.hidden: true
h.ChangeDocPreviousFieldValue as ChangeDocPreviousFieldValue,
@UI.hidden: true
h.ChangeDocNewFieldValue as ChangeDocNewFieldValue,
@UI.hidden: true
h.InspectionResultMeanValue as InspectionResultMeanValue,
@UI.hidden: true
h.InspectionResultMeasuredValue as InspectionResultMeasuredValue,
@UI.hidden: true
h.CharacteristicAttributeCode as CharacteristicAttributeCode,
@UI.hidden: true
h.InspectionValuationResult as InspectionValuationResult,
@UI.hidden: true
@Semantics.unitOfMeasure: true
h.InspectionSpecificationUnit as InspectionSpecificationUnit,
@UI.hidden: true
h.InspSpecDecimalPlaces as InspSpecDecimalPlaces,
-------------------------------------------------------------------------------------------------------
-- Associations ---------------------------------------------------------------------------------------
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_CreatedByUser,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ExecutionUser,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgOrder,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgOrderType,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgOrderCategory,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgOrderOperation,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyNtwkInstance,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OperationActivityInstance,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ShopFloorItem,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_AssembledShopFloorItem,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgProcgExecAction,
// _MfgObjectLogEventType,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ProductionUnit,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgActionReasonCodeGroupCtlg,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgActionReasonCodeGroup,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgActionReasonCode,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ManufacturingObjectLog,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyConfirmationAction,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyNtwkSegmentType,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ShopFloorItemConfirmation,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgOrderComponentAssembly,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyNtwkElement,
--@UI.fieldGroup.exclude: true
--@Consumption.filter.hidden: true
--_MfgOrderSequence,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ProductionPlant,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MRPPlant,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_StorageLocation,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_Material,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MaterialComponent,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_WorkCenter,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_WorkCenterType,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MRPController,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_ProductionSupervisor,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_WorkCenterBySemanticKey,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_WorkCenterPlant,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgProcgExecActionText,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_MfgObjectLogEventTypeText,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyNtwkInternalId,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OperationActivityNetwork,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_OpActyNtwkSegmentTypeText,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_SASSchema,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_SASSchemaText,
@Consumption.filter.hidden: true
_CreatedByUserContactCard,
@UI.fieldGroup.exclude: true
@Consumption.filter.hidden: true
_PlannedInvtryUsblyCodeText
}