@AbapCatalog.sqlViewName: 'CMFGOPTRDETS'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Production Operator details'
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@VDM.viewType: #CONSUMPTION
@Search.searchable: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking: #REQUIRED
@UI.headerInfo.typeNamePlural: 'All Production Operators'
@UI.presentationVariant.requestAtLeast: ['AssgdLaborDurationInSecs',
'OpActyNtwkInstance',
'OpActyNtwkElement',
'ShopFloorItem',
'OpActyIsSeldForRtactvPostg',
'ManufacturingLaborStatus',
'UserID']
@ObjectModel.semanticKey: ['BusinessPartnerName']
@ObjectModel.compositionRoot: true
@UI.headerInfo : {
title : {
value: 'BusinessPartnerName'
},
description : {
value: 'MfgBusinessPartner'
}
}
@Metadata.ignorePropagatedAnnotations: true
define view C_MfgOperatorDetail
with parameters
@Environment.systemField: #SYSTEM_DATE
@EndUserText.label: 'Execution Start Date'
P_OpLtstSchedldExecFromDte :pph_fsavd,
@Environment.systemField: #SYSTEM_DATE
@EndUserText.label: 'Execution End Date'
P_OpLtstSchedldExecToDte :pph_fsavd
as select from I_MfgBusinessPartner as Partner
inner join I_User as BPUser on BPUser.BusinessPartnerUUID = Partner.BusinessPartnerUUID
left outer to one join P_SumOfNrOfUsrOpActyAssgmt (P_OpLtstSchedldExecFromDte : :P_OpLtstSchedldExecFromDte,
P_OpLtstSchedldExecToDte : :P_OpLtstSchedldExecToDte) as nr on nr.UserID = BPUser.UserID
left outer to one join P_OpActyUsrLaborOnAggrg as OpActyUsrLaborOnAggrg on OpActyUsrLaborOnAggrg.ShopFloorExecutionUser = BPUser.UserID
left outer to one join I_OpActyLaborAction as LabAct on LabAct.OperationActivityLaborAction = OpActyUsrLaborOnAggrg.OperationActivityLaborAction
left outer to one join I_WorkplaceAddress as workplaceaddress on workplaceaddress.BusinessPartnerUUID = Partner.BusinessPartnerUUID
left outer to one join I_OpActyInstanceStatusBasic as OpActyInstanceStatusBasic on OpActyInstanceStatusBasic.OpActyNtwkInstance = LabAct.OpActyNtwkInstance
and OpActyInstanceStatusBasic.OpActyNtwkElement = LabAct.OpActyNtwkElement
association [0..*] to C_MfgBPResponsibility as _Func on _Func.RespyMgmtBusinessPartner = Partner.MfgBusinessPartner
association [0..*] to C_MfgHumRsceQualifnBP as _Qualification on Partner.MfgBusinessPartner = _Qualification.MfgBusinessPartner
association [0..*] to C_MfgOpActyAssgdToOptr as _AssignedOperationActivityList on _AssignedOperationActivityList.UserID = $projection.UserID
and _AssignedOperationActivityList.OpLtstSchedldExecStrtDte >= $projection.OpLtstSchedldExecFromDte
and _AssignedOperationActivityList.OpLtstSchedldExecStrtDte <= $projection.OpLtstSchedldExecToDte
association [0..1] to I_WorkCenterBySemanticKey as _WorkCenter on Partner.Plant = _WorkCenter.Plant
and Partner.WorkCenter = _WorkCenter.WorkCenter
association [0..*] to C_MfgBPWorkCenterAssgmt as _WorkCenterAssignment on $projection.MfgBusinessPartner = _WorkCenterAssignment.MfgBusinessPartner
association [0..1] to I_MfgLaborStatusText as _LaborStatus on $projection.ManufacturingLaborStatus = _LaborStatus.ManufacturingLaborStatus
and _LaborStatus.Language = $session.system_language
association [1..*] to I_MfgWorkCenterRespVH as _MfgWrkCtrRespVH on $projection.WorkCenterResponsible = _MfgWrkCtrRespVH.WorkCenterResponsible
{
@UI.facet: [
{
purpose: #HEADER,
id: 'ORDER',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'Location',
label: 'Location',
position: 2
},
{
purpose: #HEADER,
id: 'BASIC',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'Basic Data',
label:'Basic Data',
position: 3
},
{
purpose: #STANDARD,
label: 'Assigned Operation Activities',
id: 'ASSIGNEDACT',
type: #LINEITEM_REFERENCE,
targetElement: '_AssignedOperationActivityList',
position: 10
},
{
purpose: #STANDARD,
label: 'Assigned Work Centers',
id: 'ASSIGNEDWC',
type: #LINEITEM_REFERENCE,
targetElement: '_WorkCenterAssignment',
position: 20
},
{
purpose: #STANDARD,
label: 'Qualifications',
id: 'ASSIGNEDQUALIFNS',
type: #LINEITEM_REFERENCE,
targetElement: '_Qualification',
position: 30
},
{
purpose: #STANDARD,
label: 'Team Information',
id: 'ASSIGNEDTEAMS',
type: #LINEITEM_REFERENCE,
targetElement: '_Func',
position: 40
}
]
@UI.lineItem: [{position: 10 , importance: #HIGH}]
@Search:{defaultSearchElement: true,
fuzzinessThreshold: 0.7}
@UI.fieldGroup: [{qualifier: 'BusinessPartnerName', position: 10}]
@UI.textArrangement: #TEXT_FIRST
@ObjectModel.text.element: ['BusinessPartnerName']
@EndUserText.label: 'Production Operator'
key Partner.MfgBusinessPartner,
$parameters.P_OpLtstSchedldExecFromDte as OpLtstSchedldExecFromDte,
$parameters.P_OpLtstSchedldExecToDte as OpLtstSchedldExecToDte,
@UI.hidden: true
BPUser.UserID as UserID,
@UI.hidden: true
cast(Partner.BusinessPartnerName as mpe_user_name preserving type) as BusinessPartnerName,
@Search:{defaultSearchElement: true, fuzzinessThreshold: 0.7}
@UI.hidden: true
Partner.FirstName,
@Search:{defaultSearchElement: true, fuzzinessThreshold: 0.7}
@UI.hidden: true
Partner.LastName,
@UI: { hidden: true,
fieldGroup: [{qualifier: 'Basic Data', position:10}]
}
@EndUserText.label: 'Mobile'
@Semantics.telephone.type: [#WORK]
workplaceaddress.PhoneNumber,
@UI.fieldGroup: [{qualifier: 'Basic Data',position:20}]
@EndUserText.label: 'Email'
@Semantics.eMail.address: true
@UI.hidden: true
lower(workplaceaddress.DefaultEmailAddress) as DefaultEmailAddress,
@UI.hidden: true
@ObjectModel.foreignKey.association: '_Plant'
@UI.fieldGroup: [{ qualifier: 'Location',
position: 10,
label: 'Default Plant'}]
@Search.defaultSearchElement: true
@UI.textArrangement: #TEXT_FIRST
_WorkCenter.Plant as DefaultPlant,
@EndUserText.label: 'Plant'
@UI: {
selectionField: [{position: 10}],
fieldGroup: [{label:'Plant'}]
}
@Search: {defaultSearchElement: true, fuzzinessThreshold: 0.8}
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_PlantStdVH' , element: 'Plant' } }]
_WorkCenter.Plant as Plant,
@EndUserText.label: 'Default Work Center'
@UI: {
lineItem: [{position:20, importance: #MEDIUM}],
fieldGroup: [{qualifier: 'Location', position: 20, label: 'Default Work Center'}]
}
@UI.textArrangement: #TEXT_FIRST
_WorkCenter.WorkCenter as DefaultWorkCenter,
@EndUserText.label: 'Work Center'
@UI: {
selectionField: [{position: 20}],
fieldGroup: [{label: 'Work Center'}]
}
@Consumption.valueHelpDefinition: [{ entity:
{name: 'C_MfgWorkCenterVH' , element: 'WorkCenter' },
additionalBinding: [{ localElement: 'Plant', element: 'Plant' }]
}]
_WorkCenter.WorkCenter as WorkCenter,
_WorkCenter._WorkCenterTextBySemanticKey as _WorkCenterTextBySemanticKey,
@ObjectModel.foreignKey.association: '_WorkCenterResponsible'
@UI.selectionField: [{position: 40 }]
@Consumption.valueHelp: '_MfgWrkCtrRespVH'
_WorkCenter.WorkCenterResponsible as WorkCenterResponsible,
@UI.hidden: true
_WorkCenter._WorkCenterResponsible,
@UI.hidden: true
Partner.IsBusinessPurposeCompleted,
@UI.hidden: true
Partner.AuthorizationGroup,
@ObjectModel.readOnly: true
@ObjectModel.text.association: '_LaborStatus'
cast( case LabAct.PostingIsRetroactive
when 'X'
then 3
else(
case LabAct.OpActyLaborActionType
when '1'
then 1
else 2
end )
end as mpe_labor_status ) as ManufacturingLaborStatus,
@UI.hidden: true
LabAct.OpActyNtwkInstance,
@UI.hidden: true
LabAct.OpActyNtwkElement,
@UI.hidden: true
LabAct.ShopFloorItem,
@UI.hidden: true
LabAct.OperationActivitySFIGroup,
@UI.hidden: true
OpActyInstanceStatusBasic.OpActyIsSeldForRtactvPostg,
@UI.lineItem: [{position: 60}]
@EndUserText.quickInfo: 'Number of Operation Activities'
@EndUserText.label: 'Number of Operation Activities'
cast(nr.NrOfUsrOpnOpActyAssignments as int4 preserving type ) as NmbrOfOpActiesAssgdToOptr,
@UI.hidden: true
cast(nr.OpActyExpdExecDurnInSeconds as mpe_expd_exec_duration preserving type ) as AssgdLaborDurationInSecs,
@UI.lineItem: [{position: 50}]
@EndUserText.label: 'Assigned Labor Time'
@ObjectModel.virtualElement: true
@EndUserText.quickInfo: 'Assigned Labor Time'
@ObjectModel.virtualElementCalculatedBy: 'CL_MPE_PRODNOPTRACTY_EXIT'
cast(' ' as char30 preserving type) as AssignedLaborDuration,
@UI.hidden: true
cast('00000000' as pph_fsavd) as SelectedOpActyStartDate,
// Field for BP Data controller
@Consumption.hidden:true
@UI.hidden:true
Partner.BusinessPartner,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_Func,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_Qualification,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_AssignedOperationActivityList,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_WorkCenterAssignment,
_LaborStatus,
_WorkCenter._Plant as _Plant,
_MfgWrkCtrRespVH,
Partner._BusinessPartner
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MFGBUSINESSPARTNER",
"I_OPACTYINSTANCESTATUSBASIC",
"I_OPACTYLABORACTION",
"I_USER",
"I_WORKCENTERBYSEMANTICKEY",
"I_WORKPLACEADDRESS",
"P_OPACTYUSRLABORONAGGRG",
"P_SUMOFNROFUSROPACTYASSGMT"
],
"ASSOCIATED":
[
"C_MFGBPRESPONSIBILITY",
"C_MFGBPWORKCENTERASSGMT",
"C_MFGHUMRSCEQUALIFNBP",
"C_MFGOPACTYASSGDTOOPTR",
"I_BUSINESSPARTNER",
"I_MFGLABORSTATUSTEXT",
"I_MFGWORKCENTERRESPVH",
"I_PLANT",
"I_WORKCENTERBYSEMANTICKEY",
"I_WORKCENTERRESPONSIBLE",
"I_WORKCENTERTEXTBYSEMANTICKEY"
],
"BASE":
[
"I_MFGBUSINESSPARTNER",
"I_WORKCENTERBYSEMANTICKEY"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/