@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Maintenance Order Operation TP'
@VDM.viewType: #COMPOSITE
@VDM.usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE]
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@ObjectModel.representativeKey: 'MaintenanceOrder'
define view entity R_MaintenanceJobWorkItemTP
as select from P_ObjPgMaintOrderAndOperation as _MaintOrderOpSubOp
inner join I_MaintOrderTechObj on I_MaintOrderTechObj.MaintenanceOrder = _MaintOrderOpSubOp.MaintenanceOrder
and I_MaintOrderTechObj.MaintenanceProcessingPhase = '2'
association [0..1] to I_MaintOrdOpNotification as _OrdOpNotification on _OrdOpNotification.MaintenanceOrder = _MaintOrderOpSubOp.MaintenanceOrder
and _OrdOpNotification.MaintenanceOrderOperation = _MaintOrderOpSubOp.MaintenanceOrderOperation
and _OrdOpNotification.MaintenanceOrderSubOperation = _MaintOrderOpSubOp.MaintenanceOrderSubOperation
// association [0..1] to I_MaintNotificationTechObj as _MaintNotifTechObj on I_MaintOrderTechObj.MaintenanceNotification = _MaintNotifTechObj.MaintenanceNotification
association [1..1] to I_MaintenanceOrderOperation as _MaintenanceOrderOp on _MaintenanceOrderOp.MaintenanceOrder = $projection.MaintenanceOrder
and _MaintenanceOrderOp.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation
association to parent R_MaintenanceJobTP as _MaintenanceJob on $projection.MaintenanceOrder = _MaintenanceJob.MaintenanceOrder
composition [0..*] of R_MaintJobWorkItemComponentTP as _MaintJobWorkItemComponent
association [0..*] to C_MaintJobWorkItemService as _MaintJobWorkItemService on $projection.MaintenanceOrder = _MaintJobWorkItemService.MaintenanceOrder
and $projection.MaintenanceOrderOperation = _MaintJobWorkItemService.MaintenanceOrderOperation
and $projection.MaintenanceOrderSubOperation = _MaintJobWorkItemService.MaintenanceOrderSubOperation
//Unplanned section does not show up as a tab if R_MaintJobWorkItemUnplndCompTP is linked instead to C View,
//in future use case, 2 layers of CDS Views not needed for a association linkage
association [0..*] to C_MaintJobWorkItemUnplndCompTP as _MaintJobWorkItemUnplndComp on $projection.MaintenanceOrder = _MaintJobWorkItemUnplndComp.MaintenanceOrder
association [0..1] to C_MaintOrderTypeVH as _MaintOrderTypeVH on $projection.MaintenanceOrderType = _MaintOrderTypeVH.MaintenanceOrderType
// association [0..1] to I_PersonWorkAgreement_1 as _PersonWorkAgreement on $projection.OperationPersonResponsible = _PersonWorkAgreement.PersonWorkAgreement
association [0..1] to I_PMNotificationPriority as _MaintenancePriority on $projection.MaintPriority = _MaintenancePriority.MaintPriority
and $projection.MaintPriorityType = _MaintenancePriority.MaintPriorityType
association [0..1] to I_MaintenanceJobSelection as _MaintenanceJobSelection on _MaintenanceJobSelection.MaintenanceJobSelection = $projection.MaintenanceJobSelection
association [0..*] to I_WorkCenterText as _WorkCenterText on _WorkCenterText.WorkCenterInternalID = $projection.OperationWorkCenterInternalID
and _WorkCenterText.WorkCenterTypeCode = 'A'
association [1..*] to C_MaintNotificationItemTP_3 as _MaintNotificationItemTP on $projection.MaintenanceNotification = _MaintNotificationItemTP.MaintenanceNotification
association [0..1] to I_Indicator as _IsFinallyConfirmed on $projection.IsFinallyConfirmed = _IsFinallyConfirmed.IndicatorValue
association [0..1] to C_MaintNotifLongTextTP as _MaintNotifLongTextTP on _MaintNotifLongTextTP.MaintenanceNotification = $projection.MaintenanceNotification
association [0..1] to C_MaintOrderQuickVw as _MaintOrderQuickView on $projection.MaintenanceOrder = _MaintOrderQuickView.MaintenanceOrder
association [0..1] to C_MaintNotificationQuickVw as _MaintNotificationQuickView on $projection.MaintenanceNotification = _MaintNotificationQuickView.MaintenanceNotification
association [0..*] to I_MaintNotifDetectionCodeText as _MaintNotifDetectCodeTxt on $projection.MaintNotifDetectionCode = _MaintNotifDetectCodeTxt.MaintNotifDetectionCode
association [0..1] to I_PMTimeUnitVH as _PlannedWorkUnitOfMeasure on $projection.OperationPlannedWorkUnit = _PlannedWorkUnitOfMeasure.UnitOfMeasure
association [0..1] to I_MaintenanceOrderSubOperation as _MaintOrderSubOperationTP_2 on $projection.MaintenanceOrder = _MaintOrderSubOperationTP_2.MaintenanceOrder
and $projection.MaintenanceOrderOperation = _MaintOrderSubOperationTP_2.MaintenanceOrderOperation
and $projection.MaintenanceOrderSubOperation = _MaintOrderSubOperationTP_2.MaintenanceOrderSubOperation
association [0..1] to I_EAMProcessPhase as _EAMProcessPhase on $projection.MaintOrdOpProcessPhaseCode = _EAMProcessPhase.EAMProcessPhaseCode
association [0..1] to I_EAMProcessSubPhase as _EAMProcessSubPhase on $projection.MaintOrdOpProcessSubPhaseCode = _EAMProcessSubPhase.EAMProcessSubPhaseCode
association [0..1] to I_StatusObjectStatusBasic as _DispatchedStatus on _DispatchedStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _DispatchedStatus.StatusCode = 'I0117'
association [0..1] to I_StatusObjectStatusBasic as _PartiallyConfirmedStatus on _PartiallyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _PartiallyConfirmedStatus.StatusCode = 'I0010'
association [0..1] to I_StatusObjectStatusBasic as _FullyConfirmedStatus on _FullyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _FullyConfirmedStatus.StatusCode = 'I0009'
association [0..1] to I_StatusObjectStatusBasic as _JobInProcessStatus on _JobInProcessStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _JobInProcessStatus.StatusCode = 'I0809'
association [0..1] to I_StatusObjectStatusBasic as _JobFinishedStatus on _JobFinishedStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _JobFinishedStatus.StatusCode = 'I0820'
association [0..1] to I_StatusObjectStatusBasic as _ServicePartiallyConfdStatus on _ServicePartiallyConfdStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _ServicePartiallyConfdStatus.StatusCode = 'IEAME'
association [0..1] to I_StatusObjectStatusBasic as _MainWorkCompletedStatus on _MainWorkCompletedStatus.StatusObject = $projection.MaintOrderOperationInternalID
and _MainWorkCompletedStatus.StatusCode = 'IEAM6'
// association [0..1] to I_StatusObjectStatusBasic as _JobReleasedStatus on _JobReleasedStatus.StatusCode = 'I0002'
// and _JobReleasedStatus.StatusObject = $projection.MaintOrderOperationInternalID
// and _JobReleasedStatus.StatusIsInactive = ''
association [0..1] to I_Indicator as _IsActivePhaseModel on $projection.maintordtypehasactvphasemodel = _IsActivePhaseModel.IndicatorValue
association [0..1] to I_Equipment as _OperationEquipment on $projection.OperationEquipment = _OperationEquipment.Equipment
association [0..1] to I_FunctionalLocation as _OpFunctionalLocation on $projection.OperationFunctionalLocation = _OpFunctionalLocation.FunctionalLocation
association [0..1] to I_OrderTypeConfirmationParam as _ConfirmationParam on $projection.MaintenanceOrderType = _ConfirmationParam.OrderType
and $projection.Plant = _ConfirmationParam.Plant
association [1..1] to I_MaintenanceOrder as _MaintenanceOrder on $projection.MaintenanceOrder = _MaintenanceOrder.MaintenanceOrder
association [0..1] to I_TechnicalObject as _OperationTechnicalObject on _OperationTechnicalObject.TechnicalObject = $projection.MaintOperationTechnicalObject
and _OperationTechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
association [0..1] to tz1appl as _TimeZoneConfig on _TimeZoneConfig.appl = 'PM_WOC'
-- Extensions, do not expose as association:
association [0..1] to E_PMNotifMaintenanceData as _NotifMaintenanceDataExtension on I_MaintOrderTechObj.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification
// association [0..1] to E_PMNotifMaintenanceData as _NotifMaintenanceDataExtension on $projection.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification
association [0..1] to E_MaintenanceOrder as _MaintenanceOrderExtension on $projection.MaintenanceOrder = _MaintenanceOrderExtension.MaintenanceOrder
association [0..1] to E_MaintenanceOrderOperation as _MaintOrderOperExtension on _MaintOrderOpSubOp.MaintOrderRoutingNumber = _MaintOrderOperExtension.MaintOrderRoutingNumber
and _MaintOrderOpSubOp.MaintOrderOperationCounter = _MaintOrderOperExtension.MaintOrderOperationCounter
//association [0..*] to E_MaintenanceOrderConfirmation as _MaintOrdConfExtension on $projection.MaintOrderConfirmation = _MaintOrdConfExtension.MaintOrderConf
//and $projection.MaintOrderConfCntrValue = _MaintOrdConfExtension.MaintOrderConfCntrValue
association [0..1] to I_MaintOrderTypeControlParam as _MaintOrderTypeControlParam on $projection.MaintenanceOrderType = _MaintOrderTypeControlParam.OrderType
//PMJ Checklist enablement
association [0..1] to P_MaintOrdOpNoOfCheckList as _MaintOrdOpNoOfCheckList on $projection.MaintenanceOrder = _MaintOrdOpNoOfCheckList.MaintenanceOrder
and $projection.MaintenanceOrderOperation = _MaintOrdOpNoOfCheckList.MaintenanceOrderOperation
association [0..*] to C_MaintJobWorkItemChecklist as _MaintJobWorkItemChecklist on $projection.MaintenanceOrder = _MaintJobWorkItemChecklist.MaintenanceOrder
and $projection.MaintenanceOrderOperation = _MaintJobWorkItemChecklist.MaintenanceOrderOperation
association [0..1] to I_MaintenanceChecklistType as _ChecklistType on $projection.maintoperationalchecklisttype = _ChecklistType.MaintOperationalChecklistType
association [0..1] to R_MaintChklstCharcAggregate as _MaintChecklistCharAggregate on $projection.MaintenanceOrder = _MaintChecklistCharAggregate.MaintenanceOrder
and $projection.MaintenanceOrderOperation = _MaintChecklistCharAggregate.MaintenanceOrderOperation
association [0..1] to P_MaintOrdOpNoOfProdnRsceTool as _MaintOrdOpNoOfProdnRsceTool on _MaintOrderOpSubOp.MaintOrderRoutingNumber = _MaintOrdOpNoOfProdnRsceTool.OrderInternalBillOfOperations
and _MaintOrderOpSubOp.MaintOrderOperationCounter = _MaintOrdOpNoOfProdnRsceTool.OrderIntBillOfOperationsItem
// association [0..1] to I_MaintNotifEffectCode as _MaintNotifEffectCode on I_MaintOrderTechObj.MaintenanceNotification = _MaintNotifEffectCode.MaintenanceNotification
association [0..1] to I_MaintJobControlParameter as _MaintJobControlParameter on _MaintJobControlParameter.MaintenanceOrderType = $projection.MaintenanceOrderType
and _MaintJobControlParameter.Plant = $projection.Plant
and _MaintJobControlParameter.MaintJobWrkItmCtrlParameter = 'B'
association [0..1] to I_MaintJobCtrlParamAggregator as _MaintJobControlParamAgg on _MaintJobControlParamAgg.MaintenanceOrderType = $projection.MaintenanceOrderType
and _MaintJobControlParamAgg.Plant = $projection.Plant
association [0..1] to I_ServiceDocumentItemEnhcd as _ServiceDocument on _ServiceDocument.ServiceObjectType = 'BUS2000116'
and _ServiceDocument.ServiceDocument = $projection.servicedocument
and _ServiceDocument.ServiceDocumentItem = $projection.servicedocumentitem
{
@ObjectModel: { foreignKey.association: '_MaintOrderQuickView'}
key _MaintOrderOpSubOp.MaintenanceOrder,
key cast(_MaintOrderOpSubOp.MaintenanceOrderOperation as maintenanceorderoperation preserving type) as MaintenanceOrderOperation,
key cast(_MaintOrderOpSubOp.MaintenanceOrderSubOperation as maintenanceordersuboperation preserving type ) as MaintenanceOrderSubOperation,
I_MaintOrderTechObj.MaintenanceOrderDesc,
I_MaintOrderTechObj.MaintOrderProcessingContext,
_MaintOrderOpSubOp.MaintOrderOperationInternalID,
@ObjectModel.foreignKey.association: '_IsFinallyConfirmed'
cast(
// case when _OpStatusObjectStatus[1: StatusCode = 'I0009'].StatusCode is not null
// and _OpStatusObjectStatus[1: StatusCode = 'I0009'].StatusIsInactive <> 'X'
case when _FullyConfirmedStatus.StatusIsInactive <> 'X'
then 'X'
else ''
end
as eams_finally_confirmed preserving type ) as IsFinallyConfirmed,
cast ( case when ( _DispatchedStatus.StatusIsInactive = '' )
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrdOpIsDispatched,
cast ( case when ( _MainWorkCompletedStatus.StatusIsInactive = '' )
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrdHasOpenMainWork,
cast ( case when ( _ServicePartiallyConfdStatus.StatusIsInactive = '' )
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrdOpIsSrvcPrtlyConfd,
//I0010 - PCNF (Partially confirmed)
//I0117 - DSPT (Scheduled)
//I0809 - JIPR (Job In Process)
// cast( case when (_StatusObjectActiveStatus[1: StatusCode = 'I0010' ].StatusCode != '' and _StatusObjectActiveStatus[1: StatusCode = 'I0010' ].StatusIsActive = 'X')
cast( case when ( _PartiallyConfirmedStatus.StatusIsInactive = '')
// or _StatusObjectActiveStatus[1: StatusCode = 'I0117' ].StatusCode != ''
// or (_StatusObjectActiveStatus[1: StatusCode = 'I0809' ].StatusCode != '' and _StatusObjectActiveStatus[1: StatusCode = 'I0809' ].StatusIsActive = 'X')
or ( _JobInProcessStatus.StatusIsInactive = '')
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrderOperationIsInProcess,
// cast ( case when (_OpStatusObjectStatus[1: StatusCode = 'I0809' ].StatusCode != '' and _OpStatusObjectStatus[1: StatusCode = 'I0809' ].StatusIsActive = '' )
cast ( case when ( _JobInProcessStatus.StatusIsInactive = 'X' )
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrderOperationIsPaused,
// cast ( case when (_OpStatusObjectStatus[1: StatusCode = 'I0820' ].StatusCode != '' and _OpStatusObjectStatus[1: StatusCode = 'I0820' ].StatusIsActive = 'X' )
cast ( case when ( _JobFinishedStatus.StatusIsInactive = '' )
then 'X'
// else ''
end as xfeld preserving type ) as MaintOrderOperationIsFinished,
@ObjectModel.foreignKey.association: '_IsActivePhaseModel'
// I_MaintOrderTechObj._MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel,
_MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel,
I_MaintOrderTechObj.MaintPriority,
I_MaintOrderTechObj.MaintPriorityType,
// @ObjectModel.foreignKey.association: '_WorkCenter'
_MaintOrderOpSubOp.OperationWorkCenter as WorkCenter,
// _MaintOrderOpSubOp.MaintOrderRoutingNumber,
_MaintenanceOrderOp.MaintOrderRoutingNumber,
_MaintenanceOrderOp.MaintOrderOperationCounter as MaintenanceOrderRoutingNode,
// _MaintOrderOpSubOp.MaintOrderOperationCounter as MaintenanceOrderRoutingNode,
@Semantics.text: true
cast ('' as vdm_j_system_status_concat_t) as ConcatenatedActiveSystStsName,
@Semantics.text: true
cast (' ' as abap.sstring( 1333 )) as MaintOrderOperationLongText,
@Semantics.text: true
cast (' ' as abap.sstring( 1333 )) as MaintOrderSubOperationLongText,
_MaintOrderOpSubOp.OperationHasLongText as OperationHasLongText,
@Semantics.text: true
cast (' ' as abap.sstring( 1333 )) as MaintenanceOrderLongText,
I_MaintOrderTechObj.OrderHasLongText as OrderHasLongText,
I_MaintOrderTechObj.MaintenanceOrderObjectList,
@ObjectModel.text.element: [ 'NotificationText' ]
@ObjectModel: { foreignKey.association: '_MaintNotificationQuickView'}
_OrdOpNotification.MaintenanceNotification as MaintenanceNotification,
@Semantics.text: true
_OrdOpNotification._MaintenanceNotification.NotificationText,
//I_MaintOrderTechObj.MaintenanceOrderObjectList,
@Semantics.text: true
cast('' as eams_ltext ) as MaintNotificationLongText,
I_MaintOrderTechObj.TechnicalObject,
//TechnicalObjectForEdit- This is added for Measurement section, which is used seperately due to binding issues.
@ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_TECHOBJLABEL_EXIT'
cast(I_MaintOrderTechObj._TechnicalObject.TechnicalObjectLabel as eams_tech_obj_alpha_conv preserving type) as TechnicalObjectForEdit,
I_MaintOrderTechObj.TechObjIsEquipOrFuncnlLoc,
// @ObjectModel: { foreignKey.association: '_OpTechnicalObjQuickVw'}
_MaintOrderOpSubOp.TechnicalObject as MaintOperationTechnicalObject,
// _MaintOrderOpSubOp._TechnicalObject.TechnicalObjectLabel as OperationTechnicalObjectLabel,
_MaintOrderOpSubOp.TechObjIsEquipOrFuncnlLoc as OperationTechObjIsEquip,
_MaintOrderOpSubOp.OperationControlKey as OperationControlKey,
_MaintenanceOrderOp.OperationDescription,
case
when _MaintOrderOpSubOp.MaintenanceOrderSubOperation = ' '
then ' '
else _MaintOrderOpSubOp.OperationDescription
end as SubOperationText,
_MaintOrderOpSubOp.OperationDescription as OperationText,
_MaintOrderOpSubOp.OperationWorkCenterInternalID,
@ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_MTJOBWKITEM_FILTER_EXIT'
@ObjectModel.foreignKey.association: '_MaintenanceJobSelection'
cast( '' as eams_ui_myself_myteam preserving type ) as MaintenanceJobSelection,
cast ( abap.dats'00000000' as budat preserving type ) as PostingDate,
@Semantics.dateTime: true
cast( '000000000000' as timestamp ) as MaintOrdOpWrkExecStartDateTime,
@Semantics.dateTime: true
cast( '000000000000' as timestamp ) as MaintOrdOpWrkExecEndDateTime,
_MaintOrderOpSubOp.Plant,
// _MaintenanceOrderOp.OperationStandardTextCode,
// _MaintenanceOrderOp.Language,
// _MaintenanceOrderOp.NumberOfTimeTickets,
// _MaintOrderOpSubOp.OperationPurgInfoRecdSearchTxt,
_MaintOrderOpSubOp.OperationSupplier,
// _MaintOrderOpSubOp.OpExternalProcessingPrice,
// _MaintOrderOpSubOp.OpExternalProcessingPriceUnit,
// _MaintOrderOpSubOp.CostElement,
_MaintOrderOpSubOp.OpExternalProcessingCurrency,
// _MaintOrderOpSubOp.OperationPurchasingInfoRecord,
// _MaintOrderOpSubOp.PurchasingOrganization,
// _MaintOrderOpSubOp.PurchasingGroup,
// _MaintOrderOpSubOp.MaterialGroup,
_MaintOrderOpSubOp.OpPurchaseOutlineAgreement,
// _MaintOrderOpSubOp.OpPurchaseOutlineAgreementItem,
// _MaintOrderOpSubOp.OperationRequisitionerName,
// _MaintOrderOpSubOp.OperationTrackingNumber,
// _MaintOrderOpSubOp.NumberOfCapacities,
// _MaintOrderOpSubOp.OperationWorkPercent,
// _MaintOrderOpSubOp.OperationCalculationControl,
_MaintOrderOpSubOp.CostCtrActivityType as ActivityType,
_MaintOrderOpSubOp.OperationSystemCondition,
// _MaintOrderOpSubOp.OperationGoodsRecipientName,
// _MaintOrderOpSubOp.OperationUnloadingPointName,
_MaintOrderOpSubOp.OperationPersonResponsible,
//_MaintOrderOpSubOp._PersonResponsible.PersonFullName as OperationPersonRespName,
cast('' as eams_person_responsible_name) as OperationPersonRespName,
_MaintOrderOpSubOp.Equipment as OperationEquipment,
I_MaintOrderTechObj.Equipment as Equipment,
_MaintOrderOpSubOp.FunctionalLocationLabelName as OperationFunctionalLocation,
I_MaintOrderTechObj.FunctionalLocation,
I_MaintOrderTechObj._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName as FunctionalLocationName,
// _MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty as ForecastedWorkQty,
_MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity as ConfirmationTotalQuantity,
_MaintOrderOpSubOp.OperationPlannedWork as OperationPlannedWork,
_MaintOrderOpSubOp._OperationPlanningValues.OperationQuantityUnit as OperationQuantityUnit,
cast(0 as abap.int4 ) as MaintOrdOpProgressionInPercent,
_MaintOrderOpSubOp.OperationPlannedWorkUnit,
@Semantics.quantity.unitOfMeasure: 'OperationPlannedWorkUnit'
case when
_MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty = 0
then
_MaintOrderOpSubOp.OperationPlannedWork - _MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity
else
_MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty - _MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity end as RemainingWorkQuantity,
// _MaintenanceOrderOp.BusinessArea,
// _MaintenanceOrderOp.ProfitCenter,
// _MaintenanceOrderOp.CostingSheet,
// _MaintenanceOrderOp.TaxJurisdiction,
// _MaintenanceOrderOp.FunctionalArea as FunctionalArea,
_MaintOrderOpSubOp.Assembly,
//Do not remove, AssemblyOrderLevelValue is needed for BOMVH.
I_MaintOrderTechObj.Assembly as AssemblyOrderLevelValue,
_MaintOrderOpSubOp.MaintOperationExecStageCode,
case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != ''
then _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode
else _MaintenanceOrderOp.MaintOrdOpProcessPhaseCode end as MaintOrdOpProcessPhaseCode,
case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != ''
then _MaintOrderOpSubOp.MaintOrdOpProcessSubPhaseCode
else _MaintenanceOrderOp.MaintOrdOpProcessSubPhaseCode end as MaintOrdOpProcessSubPhaseCode,
@ObjectModel.foreignKey.association: '_MaintOrderTypeVH'
I_MaintOrderTechObj.MaintenanceOrderType as MaintenanceOrderType,
_MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtDte,
_MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtTme,
@Semantics.dateTime: true
dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtDte,
_MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtTme,
abap_system_timezone( $session.client,'NULL' ),//abap_user_timezone( $session.user,$session.client,'NULL' ),
$session.client,
'NULL' ) as OpErlstSchedldExecStrtDteTme,
// _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndDte,
// _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndTme,
@Semantics.dateTime: true
dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndDte,
_MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndTme,
abap_system_timezone( $session.client,'NULL' ),
$session.client,
'NULL' ) as OpErlstSchedldExecEndDteTme,
// _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtDte,
// _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtTme,
@Semantics.dateTime: true
dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtDte,
_MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtTme,
abap_system_timezone( $session.client,'NULL' ),
$session.client,
'NULL' ) as OpLtstSchedldExecStrtDteTme,
@Semantics.businessDate.at: true
_MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndDte,
// _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndTme,
@Semantics.dateTime: true
dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndDte,
_MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndTme,
abap_system_timezone( $session.client,'NULL' ),
$session.client,
'NULL' ) as OpLtstSchedldExecEndDteTme,
@ObjectModel.foreignKey.association: '_MalfunctionEffect'
_OrdOpNotification._MaintNotifTechObj.MalfunctionEffect as MalfunctionEffect,
_OrdOpNotification._MaintNotifTechObj.MalfunctionStartDate as MalfunctionStartDate,
_OrdOpNotification._MaintNotifTechObj.MalfunctionStartTime as MalfunctionStartTime,
@Semantics.dateTime: true
dats_tims_to_tstmp( _OrdOpNotification._MaintNotifTechObj.MalfunctionStartDate,
_OrdOpNotification._MaintNotifTechObj.MalfunctionStartTime,
_OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
$session.client,
'NULL' ) as MalfunctionStartDateTime,
_OrdOpNotification._MaintNotifTechObj.MalfunctionEndDate as MalfunctionEndDate,
_OrdOpNotification._MaintNotifTechObj.MalfunctionEndTime as MalfunctionEndTime,
@Semantics.dateTime: true
dats_tims_to_tstmp( _OrdOpNotification._MaintNotifTechObj.MalfunctionEndDate,
_OrdOpNotification._MaintNotifTechObj.MalfunctionEndTime,
_OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
$session.client,
'NULL' ) as MalfunctionEndDateTime,
@Semantics.timeZone: true
_OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
@Semantics.timeZone: true
_MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone,
// @Semantics.timeZone: true
// cast( abap_user_timezone( $session.user,$session.client,'NULL' ) as tzonso preserving type ) as UserEnteredTimeZone,
// @Semantics.timeZone: true
// cast( abap_system_timezone( $session.client,'NULL' ) as tzonso preserving type ) as DisplayTimeZone,
_TimeZoneConfig.active as TimeZoneIsActive,
@Semantics.timeZone: true
case when ( _TimeZoneConfig.active = 'X' or _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone is null or _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone = '' )
then cast( abap_system_timezone( $session.client,'NULL' ) as tzonso preserving type )
else cast( _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone as tzonso preserving type ) end as PlantTimeZone,
_OrdOpNotification._MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCodeGroup,
_OrdOpNotification._MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCode,
// _MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCatalog,
_OrdOpNotification._MaintNotifTechObj.MaintNotificationCode as MaintNotificationCode, //Notification Code
_OrdOpNotification._MaintNotifTechObj.MaintNotificationCatalog,
_OrdOpNotification._MaintNotifTechObj.MaintNotificationCodeGroup,
// _OrdOpNotification._MaintNotifTechObj.CatalogProfile,
cast( '' as rbnr ) as CatalogProfile,
_OrdOpNotification._MaintenanceNotification.NotificationType,
cast ('' as sakat ) as MaintNotifCodgCatalogTypeCode,
// _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifCodgCatalogTypeCode,
_OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifActivityCodeCatalog,
_OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifCauseCodeCatalog,
_OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifDamageCodeCatalog,
_OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifObjPrtCodeCatalog,
_OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifEffectCatalog,
// _MaintNotifTechObj._MaintNotifLongText.TextObjectCategory as TextObjectCategory,
// _MaintNotifTechObj._MaintNotifLongText.TextObjectType as TextObjectType,
_OrdOpNotification._MaintNotifTechObj._MaintNotifLongText.MaintNotifLongTextForEdit as MaintNotifLongTextForEdit,
cast(unit_conversion(
quantity => _OrdOpNotification._MaintNotifTechObj.MaintObjectDowntimeDuration,
source_unit => cast('S' as maueh),
target_unit => _OrdOpNotification._MaintNotifTechObj.MaintObjDowntimeDurationUnit,
error_handling=> 'SET_TO_NULL'
) as auszt ) as MaintObjectDowntimeDuration,
_OrdOpNotification._MaintNotifTechObj.MaintObjDowntimeDurationUnit as MaintObjDowntimeDurationUnit,
_OrdOpNotification._MaintNotifTechObj.MaintenanceObjectIsDown as MaintenanceObjectIsDown, //Breakdown
_OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCatalog as MaintNotifDetectionCatalog,
_OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCodeGroup as MaintNotifDetectionCodeGroup,
_OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCode as MaintNotifDetectionCode,
_OrdOpNotification.MaintenanceOrderObjectListItem,
@Semantics.booleanIndicator: true
_OrdOpNotification.MaintOrdOpHasNotifAssigned,
case when $projection.MaintenanceOrderSubOperation != ''
then _MaintOrderSubOperationTP_2.MaintOrderConfirmation
else _MaintenanceOrderOp.MaintOrderConfirmation end as MaintOrderConfirmation,
case when $projection.MaintenanceOrderSubOperation != ''
then _MaintOrderSubOperationTP_2.MaintOrderConfCntrValue
else _MaintenanceOrderOp.MaintOrderConfCntrValue end as MaintOrderConfCntrValue,
// case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != '' then 'X'
// else ''
// end as OperationIsSubOperation,
// _MaintNotifTechObj.NotificationHasLongText,
// Reading Completion Confirmation
_ConfirmationParam.FinalConfirmationType,
_ConfirmationParam.OpenReservationIsFinallyIssued,
// _StatusObjectActiveStatus,
_MaintenanceOrder,
_MaintJobWorkItemComponent,
_MaintJobWorkItemService,
_MaintJobWorkItemUnplndComp,
_MaintenanceJob,
_MaintOrderOpSubOp._OpExternalProcessingCurrency,
_MaintenanceOrderOp._OperationPlanningValues,
_MaintOrderOpSubOp._OperationControlKey,
_MaintOrderOpSubOp._OperationSystemCondition,
_MaintOrderOpSubOp._Plant,
// _MaintOrderOpSubOp._OperationCalculationControl,
_MaintOrderOpSubOp._Assembly,
// _MaintenanceOrderOp._Language,
_MaintOrderOpSubOp._Supplier,
_MaintOrderOpSubOp._PersonResponsible,
_MaintenanceOrderOp._MaintOrderProdnRsceTool,
_MaintOrderOpSubOp._OperationControlKey.OperationExternalProcessing,
_MaintOrderOpSubOp._OperationControlKey._OperationExternalProcessing,
_MaintOrderOpSubOp._OperationControlKey.ConfirmationIsNotPossible,
_MaintOrderTypeVH,
_EAMProcessPhase,
_EAMProcessSubPhase,
// _PersonWorkAgreement,
_MaintenancePriority,
_MaintenanceJobSelection,
_WorkCenterText,
// _OpStatusObjectStatus,
_IsFinallyConfirmed,
_MaintNotificationItemTP,
_MaintNotifLongTextTP,
_MaintNotifDetectCodeTxt,
_OrdOpNotification._MaintNotifTechObj._MaintNotificationCode,
_OrdOpNotification._MaintNotifTechObj,
_OrdOpNotification._MaintNotifTechObj._MalfunctionEffect,
I_MaintOrderTechObj._FunctionalLocation,
I_MaintOrderTechObj._TechObjIsEquipOrFuncnlLoc,
// I_MaintOrderTechObj._MaintenanceNotification,
_OrdOpNotification.MaintenanceNotification as MaintenanceNotificationForEdit,
_OrdOpNotification._MaintenanceNotification,
_MaintOrderQuickView,
_MaintNotificationQuickView,
_PlannedWorkUnitOfMeasure,
_MaintOrderSubOperationTP_2,
// _MaintOrderOpSubOp.OperationWorkCenterTypeCode,
// _MaintOrderOpSubOp._WorkCenter as _WorkCenter,
_IsActivePhaseModel,
I_MaintOrderTechObj._MaintOrderProcessingContext,
_MaintOrderOpSubOp._MaintOperationExecStageCode,
_OperationTechnicalObject,
_MaintOrderOpSubOp._TechObjIsEquipOrFuncnlLoc as _OpTechObjIsEquipOrFuncnlLoc,
_OperationEquipment,
_OpFunctionalLocation,
_ConfirmationParam,
I_MaintOrderTechObj._Equipment as _OrderEquipment,
I_MaintOrderTechObj._TechnicalObject,
_MaintOrdOpNoOfCheckList.NumberOfMaintenanceChecklists,
_MaintJobWorkItemChecklist,
_MaintenanceOrderOp.MaintOperationalChecklistType,
_ChecklistType,
_MaintChecklistCharAggregate,
cast( ' ' as abap.numc( 12 ) ) as InspectionLot,
cast( ' ' as abap.char( 40 ) ) as MaintChecklistTechnicalObject,
cast( ' ' as boole_d ) as MaintChecklistIsNotRelevant,
_MaintOrdOpNoOfProdnRsceTool.NumberOfAssignedProdnRsceTools,
_OrdOpNotification._MaintenanceNotification._PMNotificationType,
// _MaintNotifEffectCode
cast ( case when ( _MaintJobControlParameter.MaintJobWrkItmCtrlParameter is null)
then 'X'
else ' '
end as xfeld preserving type ) as MaintJobIsPersnRespMandatory,
_MaintJobControlParamAgg.MaintNotifCrtnIsAllowed as MaintNotifCrtnIsAllowed,
_MaintenanceOrder.ServiceDocument,
_MaintenanceOrder.ServiceDocumentItem,
_ServiceDocument
}
where
( // New logic S4HCRQMAAM-8449
_MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode = '07' //Execution
or _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode = '08' //Post Execution
or _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode = ''
)