@AbapCatalog.sqlViewName: 'IPPMFGORDOPER'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor', '_LongText']
@Analytics.dataCategory: #DIMENSION
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@ObjectModel.representativeKey: 'OrderIntBillOfOperationsItem'
@ObjectModel.semanticKey: ['ManufacturingOrder', 'ManufacturingOrderSequence', 'ManufacturingOrderOperation']
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_ManufacturingOrderOperation'
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Manufacturing Order Operation'
define view I_MfgOrderOperation
as select from I_OrderOperation as afvg
inner join I_MfgOrderBasic as aufv on aufv.OrderInternalID = afvg.OrderInternalID
left outer to one join I_OrderOperationBasic as afvc on afvc.OrderInternalID = afvg.OrderInternalID //sub-operation handling
and afvc.OrderOperationInternalID = afvg.SuperiorOperationInternalID
left outer to one join I_OrderOperationBasic as afvp on afvp.OrderInternalID = afvg.OrderInternalID //phase handling
and afvp.OrderOperationInternalID = afvg.OrderIntBillOfOpItemOfPhase
association [1..1] to I_OrdInternalBillOfOperations as _OrdInternalBillOfOperations on $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalBillOfOperations
association [1..1] to I_MfgOrder as _MfgOrder on $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
association [1..1] to I_MfgOrderSequence as _MfgOrderSequence on $projection.ManufacturingOrder = _MfgOrderSequence.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
association [1..1] to I_MfgOrderCategory as _MfgOrderCategory on $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory
association [1..1] to I_MfgOrderType as _MfgOrderType on $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType
association [0..1] to I_OrderOperationBasic as _SuperiorOperation on $projection.OrderInternalBillOfOperations = _SuperiorOperation.OrderInternalID
and $projection.SuperiorOperationInternalID = _SuperiorOperation.OrderOperationInternalID
association [0..1] to I_OperationStandardText as _OperationStandardTextCode on $projection.OperationStandardTextCode = _OperationStandardTextCode.OperationStandardTextCode
association [1..1] to I_Plant as _ProductionPlant on $projection.ProductionPlant = _ProductionPlant.Plant
association [1..1] to I_UnitOfMeasure as _ProductionUnit on $projection.ProductionUnit = _ProductionUnit.UnitOfMeasure
association [1..1] to I_UnitOfMeasure as _OperationUnit on $projection.OperationUnit = _OperationUnit.UnitOfMeasure
association [0..1] to I_MRPController as _MRPController on $projection.ProductionPlant = _MRPController.Plant
and $projection.MRPController = _MRPController.MRPController
association [0..1] to I_ProductionSupervisor as _ProductionSupervisor on $projection.ProductionPlant = _ProductionSupervisor.Plant
and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
association [0..1] to I_ResponsiblePlannerGroup as _ResponsiblePlannerGroup on $projection.ProductionPlant = _ResponsiblePlannerGroup.Plant
and $projection.ResponsiblePlannerGroup = _ResponsiblePlannerGroup.ResponsiblePlannerGroup
association [0..1] to I_WorkCenterType as _WorkCenterType on $projection.WorkCenterTypeCode = _WorkCenterType.WorkCenterTypeCode
association [0..1] to I_WorkCenter as _WorkCenter on $projection.WorkCenterTypeCode = _WorkCenter.WorkCenterTypeCode
and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
association [0..1] to I_WorkCenterType as _WorkCenterType_2 on $projection.WorkCenterTypeCode_2 = _WorkCenterType_2.WorkCenterTypeCode
association [0..1] to I_WorkCenter as _WorkCenter_2 on $projection.WorkCenterTypeCode_2 = _WorkCenter_2.WorkCenterTypeCode
and $projection.WorkCenterInternalID = _WorkCenter_2.WorkCenterInternalID
association [1..1] to I_OperationControlProfile as _OperationControlProfile on $projection.OperationControlProfile = _OperationControlProfile.OperationControlProfile
association [0..1] to I_BillOfOperationsType as _BillOfOperationsType on $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType
association [0..1] to I_BillOfOperationsGroup as _BillOfOperationsGroup on $projection.BillOfOperationsType = _BillOfOperationsGroup.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup
association [0..1] to I_BillOfOperations as _BillOfOperationsVariant on $projection.BillOfOperationsType = _BillOfOperationsVariant.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsVariant.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperationsVariant.BillOfOperationsVariant
association [0..1] to I_BillOfOperationsSequence as _BillOfOperationsSequence on $projection.BillOfOperationsType = _BillOfOperationsSequence.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsSequence.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperationsSequence.BillOfOperationsVariant
and $projection.BillOfOperationsSequence = _BillOfOperationsSequence.BillOfOperationsSequence
association [0..1] to I_BOOOperationInternalID as _BOOOperationInternalID on $projection.BillOfOperationsType = _BOOOperationInternalID.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BOOOperationInternalID.BillOfOperationsGroup
and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID
association [0..1] to I_FactoryCalendar as _FactoryCalendar on $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar
association [0..1] to I_CapacityRequirement as _CapacityRequirement on $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement
association [0..1] to I_CapacityRequirementItem as _CapacityRequirementItem on $projection.CapacityRequirement = _CapacityRequirementItem.CapacityRequirement
and $projection.CapacityRequirementItem = _CapacityRequirementItem.CapacityRequirementItem
association [0..1] to I_ControlRecipeDestination as _ControlRecipeDestination on $projection.ProductionPlant = _ControlRecipeDestination.Plant
and $projection.ControlRecipeDestination = _ControlRecipeDestination.ControlRecipeDestination
association [0..1] to I_ConfirmationGroup as _OperationConfirmation on $projection.OperationConfirmation = _OperationConfirmation.ConfirmationGroup
association [0..1] to I_ChangeMaster as _ChangeNumber on $projection.ChangeNumber = _ChangeNumber.ChangeNumber
association [0..1] to I_PurchaseOrderAPI01 as _PurchaseOrder on $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
association [0..1] to I_PurchaseOrderItemAPI01 as _PurchaseOrderItem on $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder
and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem
association [0..1] to I_Purchaserequisition as _PurchaseRequisition on $projection.PurchaseRequisition = _PurchaseRequisition.PurchaseRequisition
association [0..1] to I_PurchaseRequisitionItemAPI01 as _PurchaseRequisitionItem on $projection.PurchaseRequisition = _PurchaseRequisitionItem.PurchaseRequisition
and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem
association [0..1] to I_PurchasingOrganization as _PurchasingOrganization on $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
association [0..1] to I_PurchasingGroup as _PurchasingGroup on $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
association [0..1] to I_PurchasingInfoRecordApi01 as _PurchasingInfoRecord on $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord
association [0..1] to I_Supplier as _Supplier on $projection.Supplier = _Supplier.Supplier
association [0..1] to I_SupplierCompanyByPlant as _SupplierCompanyByPlant on $projection.ProductionPlant = _SupplierCompanyByPlant.Plant
and $projection.Supplier = _SupplierCompanyByPlant.Supplier
association [0..1] to I_EmployeeWageGroup as _EmployeeWageGroup on $projection.ProductionPlant = _EmployeeWageGroup.Plant
and $projection.EmployeeWageGroup = _EmployeeWageGroup.EmployeeWageGroup
association [0..1] to I_EmployeeSuitability as _EmployeeSuitability on $projection.ProductionPlant = _EmployeeSuitability.Plant
and $projection.EmployeeSuitability = _EmployeeSuitability.EmployeeSuitability
--association [0..1] to I_Employment as _Employee on $projection.Personnel = _Employee.EmploymentInternalID
association [0..1] to I_PersonWorkAgreement_1 as _Employee on $projection.Personnel = _Employee.PersonWorkAgreement
association [0..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
association [0..*] to I_ProfitCenter as _ProfitCenter on $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
association [0..*] to I_CostCenter as _RequestingCostCenter on $projection.ControllingArea = _RequestingCostCenter.ControllingArea
and $projection.RequestingCostCenter = _RequestingCostCenter.CostCenter
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [0..1] to I_ControllingObjectClass as _ControllingObjectClass on $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass
association [0..1] to I_FunctionalArea as _FunctionalArea on $projection.FunctionalArea = _FunctionalArea.FunctionalArea
association [0..1] to I_BusinessArea as _BusinessArea on $projection.BusinessArea = _BusinessArea.BusinessArea
association [0..1] to I_BusinessProcess as _BusinessProcess on $projection.ControllingArea = _BusinessProcess.ControllingArea
and $projection.BusinessProcess = _BusinessProcess.BusinessProcess
association [0..1] to I_UnitOfMeasure as _BusinessProcessEntryUnit on $projection.BusinessProcessEntryUnit = _BusinessProcessEntryUnit.UnitOfMeasure
association [0..1] to I_OperationSetupGroupCategory as _OperationSetupGroupCategory on $projection.ProductionPlant = _OperationSetupGroupCategory.Plant
and $projection.OperationSetupGroupCategory = _OperationSetupGroupCategory.OperationSetupGroupCategory
association [0..1] to I_OperationSetupGroup as _OperationSetupGroup on $projection.OperationSetupGroup = _OperationSetupGroup.OperationSetupGroup
and $projection.OperationSetupGroupCategory = _OperationSetupGroup.OperationSetupGroupCategory
and $projection.ProductionPlant = _OperationSetupGroup.Plant
association [0..1] to I_OperationSetupType as _OperationSetupType on $projection.OperationSetupType = _OperationSetupType.OperationSetupType
and $projection.ProductionPlant = _OperationSetupType.Plant
association [0..1] to I_LeadTimeReductionStrategy as _LeadTimeReductionStrategy on $projection.LeadTimeReductionStrategy = _LeadTimeReductionStrategy.LeadTimeReductionStrategy
and $projection.ProductionPlant = _LeadTimeReductionStrategy.Plant
association [0..1] to I_OperationDateOffsetRefCode as _StartDateOffsetReferenceCode on $projection.StartDateOffsetReferenceCode = _StartDateOffsetReferenceCode.OperationDateOffsetRefCode
association [0..1] to I_OperationDateOffsetRefCode as _EndDateOffsetReferenceCode on $projection.EndDateOffsetReferenceCode = _EndDateOffsetReferenceCode.OperationDateOffsetRefCode
association [0..1] to I_Language as _Language on $projection.Language = _Language.Language
association [0..1] to I_Currency as _OpExternalProcessingCurrency on $projection.OpExternalProcessingCurrency = _OpExternalProcessingCurrency.Currency
association [0..1] to I_OpActyNtwkInstance as _SetupOpActyNtwkInstance on $projection.SetupOpActyNtwkInstance = _SetupOpActyNtwkInstance.OpActyNtwkInstance
association [0..1] to I_OpActyNtwkInstance as _ProduceOpActyNtwkInstance on $projection.ProduceOpActyNtwkInstance = _ProduceOpActyNtwkInstance.OpActyNtwkInstance
association [0..1] to I_OpActyNtwkInstance as _TeardownOpActyNtwkInstance on $projection.TeardownOpActyNtwkInstance = _TeardownOpActyNtwkInstance.OpActyNtwkInstance
{
// Technical Key
@ObjectModel.foreignKey.association: '_OrdInternalBillOfOperations'
key cast(afvg.OrderInternalID as pph_aufpl preserving type) as OrderInternalBillOfOperations,
key cast(afvg.OrderOperationInternalID as operationinternalid preserving type) as OrderIntBillOfOperationsItem,
// Semantical key
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
@ObjectModel.foreignKey.association: '_MfgOrder'
cast(aufv.ManufacturingOrder as manufacturingorder preserving type) as ManufacturingOrder,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderSequenceStdVH', element: 'ManufacturingOrderSequence' } } ]
@ObjectModel.foreignKey.association: '_MfgOrderSequence'
cast(afvg.Sequence as manufacturingordersequence preserving type) as ManufacturingOrderSequence,
@ObjectModel.text.element: ['MfgOrderOperationText']
case
when afvg.SuperiorOperationInternalID > '00000000' then
cast(afvc.Operation as manufacturingorderoperation preserving type) //superior operation ID
else
cast(afvg.Operation as manufacturingorderoperation preserving type)
end as ManufacturingOrderOperation,
@ObjectModel.text.element: ['MfgOrderOperationText']
case
when afvg.SuperiorOperationInternalID > '00000000' then
cast(afvg.Operation as manufacturingordersuboperation preserving type)
else ''
end as ManufacturingOrderSubOperation,
afvc.Operation as MfgOrderOperationOrSubOp,
// Order header data
@ObjectModel.foreignKey.association: '_MfgOrderCategory'
cast(aufv.ManufacturingOrderCategory as manufacturingordercategory preserving type) as ManufacturingOrderCategory,
@ObjectModel.foreignKey.association: '_MfgOrderType'
cast(aufv.ManufacturingOrderType as manufacturingordertype preserving type) as ManufacturingOrderType,
@ObjectModel.foreignKey.association: '_ProductionSupervisor'
cast(aufv.ProductionSupervisor as pph_fevor preserving type) as ProductionSupervisor,
@ObjectModel.foreignKey.association: '_MRPController'
cast(aufv.MRPController as pph_dispo preserving type) as MRPController,
@ObjectModel.foreignKey.association: '_ResponsiblePlannerGroup'
cast(aufv.ResponsiblePlannerGroup as vagrp preserving type) as ResponsiblePlannerGroup,
cast(aufv.ProductConfiguration as product_configuration preserving type) as ProductConfiguration,
aufv.InspectionLot,
aufv.ManufacturingOrderImportance,
// Text
@Semantics.text: true
cast(afvg.OperationText as mfgorderoperationtext preserving type) as MfgOrderOperationText,
@ObjectModel.foreignKey.association: '_Language'
afvg.Language as Language,
@ObjectModel.foreignKey.association: '_OperationStandardTextCode'
cast(afvg.StandardTextInternalID as pph_ktsch preserving type) as OperationStandardTextCode,
// Long text logic
cast(case afvg.Language
when '' then ''
else 'X'
end as aufltext preserving type) as OperationHasLongText,
// Attributes
afvg.OperationIsToBeDeleted,
afvg.MfgOrderOperationIsPhase,
afvp.Operation as MfgOrderPhaseSuperiorOperation,
cast(afvg.NumberOfCapacities as pph_anzkap preserving type) as NumberOfCapacities,
afvg.NumberOfConfirmationSlips,
afvg.OperationImportance,
// Assignments
-- @ObjectModel.foreignKey.association: '_SuperiorOperation'
afvg.SuperiorOperationInternalID,
@ObjectModel.foreignKey.association: '_ProductionPlant'
cast(afvg.Plant as pwwrk preserving type) as ProductionPlant,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
@ObjectModel.foreignKey.association: '_WorkCenter_2'
cast(afvg.WorkCenterInternalID as pph_arbid preserving type) as WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'WorkCenterTypeCode_2'
afvg.WorkCenterTypeCode as WorkCenterTypeCode, // CHAR1
@ObjectModel.foreignKey.association: '_WorkCenterType_2'
cast(afvg.WorkCenterTypeCode_2 as vdm_arbty preserving type) as WorkCenterTypeCode_2, // CHAR2
@ObjectModel.foreignKey.association: '_OperationControlProfile'
cast(afvg.OperationControlProfile as pph_steus preserving type) as OperationControlProfile,
@ObjectModel.foreignKey.association: '_ControlRecipeDestination'
afvg.ControlRecipeDestination,
@ObjectModel.foreignKey.association: '_OperationConfirmation'
afvg.OperationConfirmation,
cast(afvg.NumberOfOperationConfirmations as pph_noofconf preserving type) as NumberOfOperationConfirmations,
@ObjectModel.foreignKey.association: '_FactoryCalendar'
cast(afvg.FactoryCalendar as cr_wfcid preserving type) as FactoryCalendar,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityRequirementStdVH', element: 'CapacityRequirement' } } ]
@ObjectModel.foreignKey.association: '_CapacityRequirement'
afvg.CapacityRequirement,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapRqmtItmStdVH', element: 'CapacityRequirementItem' } } ]
@ObjectModel.foreignKey.association: '_CapacityRequirementItem'
cast(afvg.CapacityRequirementItem as pph_bedzl preserving type) as CapacityRequirementItem,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
@ObjectModel.foreignKey.association: '_ChangeNumber'
afvg.ChangeNumber,
cast(afvg.ObjectInternalID as pph_objnr preserving type) as ManufacturingObject,
afvg.OperationTrackingNumber,
// Assignments BOO and BOM
@ObjectModel.foreignKey.association: '_BillOfOperationsType'
cast(afvg.BillOfOperationsType as billofoperationstype preserving type) as BillOfOperationsType,
@ObjectModel.foreignKey.association: '_BillOfOperationsGroup'
afvg.BillOfOperationsGroup,
@ObjectModel.foreignKey.association: '_BillOfOperationsVariant'
afvg.BillOfOperationsVariant,
@ObjectModel.foreignKey.association: '_BillOfOperationsSequence'
afvg.BillOfOperationsSequence,
@ObjectModel.foreignKey.association: '_BOOOperationInternalID'
afvg.BOOOperationInternalID,
afvg.BillOfOperationsVersion,
cast(afvg.BillOfMaterialCategory as pph_stlty preserving type) as BillOfMaterialCategory,
afvg.BillOfMaterialInternalID,
cast(afvg.BillOfMaterialItemNodeNumber as pph_stlkn preserving type) as BillOfMaterialItemNodeNumber,
afvg.BOMItemNodeCount,
// Assignments Purchasing
afvg.ExtProcgOperationHasSubcontrg,
@ObjectModel.foreignKey.association: '_PurchasingOrganization'
cast(afvg.PurchasingOrganization as pph_ekorg preserving type) as PurchasingOrganization,
@ObjectModel.foreignKey.association: '_PurchasingGroup'
afvg.PurchasingGroup,
-- @ObjectModel.foreignKey.association: '_PurchaseRequisition'
afvg.PurchaseRequisition,
-- @ObjectModel.foreignKey.association: '_PurchaseRequisitionItem'
cast(afvg.PurchaseRequisitionItem as pph_bnfpo preserving type) as PurchaseRequisitionItem,
-- @ObjectModel.foreignKey.association: '_PurchaseOrder'
cast(afvg.PurchasingDocument as vdm_purchaseorder preserving type) as PurchaseOrder,
-- @ObjectModel.foreignKey.association: '_PurchaseOrderItem'
cast(afvg.PurchasingDocumentItem as vdm_purchaseorderitem preserving type) as PurchaseOrderItem,
-- @ObjectModel.foreignKey.association: '_PurchasingInfoRecord'
cast(afvg.PurchasingInfoRecord as pph_infnr preserving type) as PurchasingInfoRecord,
afvg.PurgInfoRecdDataIsFixed,
cast(afvg.PurchasingInfoRecordCategory as pph_esokz preserving type) as PurchasingInfoRecordCategory,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
afvg.OpExternalProcessingPriceUnit,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_Supplier_VH', element: 'Supplier' } } ]
@ObjectModel.foreignKey.association: '_Supplier'
afvg.Supplier,
@Semantics.text: true
cast(afvg.GoodsRecipientName as pph_wempf preserving type) as GoodsRecipientName,
@Semantics.text: true
afvg.UnloadingPointName,
// Amount and Currency
@Semantics.currencyCode: true
afvg.Currency as OpExternalProcessingCurrency,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
afvg.OpExternalProcessingPrice,
afvg.NumberOfOperationPriceUnits,
// Assignments FI/CO
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } } ]
@ObjectModel.foreignKey.association: '_CompanyCode'
afvg.CompanyCode,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessAreaStdVH', element: 'BusinessArea' } } ]
@ObjectModel.foreignKey.association: '_BusinessArea'
afvg.BusinessArea,
@ObjectModel.foreignKey.association: '_ControllingArea'
aufv.ControllingArea,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProfitCenterStdVH', element: 'ProfitCenter' } } ]
afvg.ProfitCenter,
afvg.RequestingCostCenter,
afvg.CostElement,
afvg.CostingVariant,
afvg.CostingSheet,
afvg.CostEstimate,
afvg.ControllingObjectCurrency,
@ObjectModel.foreignKey.association: '_ControllingObjectClass'
afvg.ControllingObjectClass,
@ObjectModel.foreignKey.association: '_FunctionalArea'
afvg.FunctionalArea,
afvg.TaxJurisdiction,
// Assignments HR
cast(afvg.EmployeeWageType as pph_loart preserving type) as EmployeeWageType,
@ObjectModel.foreignKey.association: '_EmployeeWageGroup'
cast(afvg.EmployeeWageGroup as pph_logrp preserving type) as EmployeeWageGroup,
@ObjectModel.foreignKey.association: '_EmployeeSuitability'
cast(afvg.EmployeeSuitability as pph_qualf preserving type) as EmployeeSuitability,
afvg.NumberOfTimeTickets,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PersWrkAgrmtSrchHelp', element: 'PersonWorkAgreement' } } ]
@ObjectModel.foreignKey.association: '_Employee'
cast(afvg.Personnel as pph_pernr preserving type) as Personnel,
cast(afvg.NumberOfEmployees as pph_anzms preserving type) as NumberOfEmployees,
// Setup and Overlapping
@ObjectModel.foreignKey.association: '_OperationSetupGroupCategory'
cast(afvg.OperationSetupGroupCategory as pph_rfgrp preserving type) as OperationSetupGroupCategory,
@ObjectModel.foreignKey.association: '_OperationSetupGroup'
cast(afvg.OperationSetupGroup as pph_rfsch preserving type) as OperationSetupGroup,
@ObjectModel.foreignKey.association: '_OperationSetupType'
cast(afvg.OperationSetupType as pph_rasch preserving type) as OperationSetupType,
afvg.OperationOverlappingIsRequired,
afvg.OperationOverlappingIsPossible,
afvg.OperationsIsAlwaysOverlapping,
afvg.OperationSplitIsRequired,
afvg.MaximumNumberOfSplits,
@ObjectModel.foreignKey.association: '_LeadTimeReductionStrategy'
cast(afvg.LeadTimeReductionStrategy as pph_rstra preserving type) as LeadTimeReductionStrategy,
afvg.OpSchedldReductionLevel,
// Dates and Times
@Semantics.calendarItem.dtStart: true
cast(afvg.OpErlstSchedldExecStrtDte as pph_fsavd preserving type) as OpErlstSchedldExecStrtDte,
cast(afvg.OpErlstSchedldExecStrtTme as pph_fsavz preserving type) as OpErlstSchedldExecStrtTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpErlstSchedldProcgStrtDte as pph_fssbd preserving type) as OpErlstSchedldProcgStrtDte,
cast(afvg.OpErlstSchedldProcgStrtTme as pph_fssbz preserving type) as OpErlstSchedldProcgStrtTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpErlstSchedldTrdwnStrtDte as pph_fssad preserving type) as OpErlstSchedldTrdwnStrtDte,
cast(afvg.OpErlstSchedldTrdwnStrtTme as pph_fssaz preserving type) as OpErlstSchedldTrdwnStrtTme,
@Semantics.calendarItem.dtEnd: true
cast(afvg.OpErlstSchedldExecEndDte as pph_fsedd preserving type) as OpErlstSchedldExecEndDte,
cast(afvg.OpErlstSchedldExecEndTme as pph_fsedz preserving type) as OpErlstSchedldExecEndTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpLtstSchedldExecStrtDte as pph_ssavd preserving type) as OpLtstSchedldExecStrtDte,
cast(afvg.OpLtstSchedldExecStrtTme as pph_ssavz preserving type) as OpLtstSchedldExecStrtTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpLtstSchedldProcgStrtDte as pph_sssbd preserving type) as OpLtstSchedldProcgStrtDte,
cast(afvg.OpLtstSchedldProcgStrtTme as pph_sssbz preserving type) as OpLtstSchedldProcgStrtTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpLtstSchedldTrdwnStrtDte as pph_sssad preserving type) as OpLtstSchedldTrdwnStrtDte,
cast(afvg.OpLtstSchedldTrdwnStrtTme as pph_sssaz preserving type) as OpLtstSchedldTrdwnStrtTme,
@Semantics.calendarItem.dtEnd: true
cast(afvg.OpLtstSchedldExecEndDte as pph_ssedd preserving type) as OpLtstSchedldExecEndDte,
cast(afvg.OpLtstSchedldExecEndTme as pph_ssedz preserving type) as OpLtstSchedldExecEndTme,
@Semantics.calendarItem.dtStart: true
cast(afvg.OperationConfirmedStartDate as pph_isavd preserving type) as OperationConfirmedStartDate,
cast(afvg.OperationConfirmedEndDate as pph_ieavd preserving type) as OperationConfirmedEndDate,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpActualExecutionStartDate as vdm_isdd preserving type) as OpActualExecutionStartDate,
cast(afvg.OpActualExecutionStartTime as vdm_isdz preserving type) as OpActualExecutionStartTime,
@Semantics.calendarItem.dtEnd: true
cast(afvg.OpActualSetupEndDate as vdm_ierd preserving type) as OpActualSetupEndDate,
cast(afvg.OpActualSetupEndTime as vdm_ierz preserving type) as OpActualSetupEndTime,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpActualProcessingStartDate as vdm_isbd preserving type) as OpActualProcessingStartDate,
cast(afvg.OpActualProcessingStartTime as vdm_isbz preserving type) as OpActualProcessingStartTime,
@Semantics.calendarItem.dtEnd: true
cast(afvg.OpActualProcessingEndDate as vdm_iebd preserving type) as OpActualProcessingEndDate,
cast(afvg.OpActualProcessingEndTime as vdm_iebz preserving type) as OpActualProcessingEndTime,
@Semantics.calendarItem.dtStart: true
cast(afvg.OpActualTeardownStartDate as vdm_isad preserving type) as OpActualTeardownStartDate,
cast(afvg.OpActualTeardownStartTme as vdm_isaz preserving type) as OpActualTeardownStartTme,
@Semantics.calendarItem.dtEnd: true
cast(afvg.OpActualExecutionEndDate as vdm_iedd preserving type) as OpActualExecutionEndDate,
cast(afvg.OpActualExecutionEndTime as vdm_iedz preserving type) as OpActualExecutionEndTime,
// Forecast Dates and Times
@Semantics.calendarItem.dtEnd: true
cast(afvg.ActualForecastEndDate as pph_pedd preserving type) as ActualForecastEndDate,
cast(afvg.ActualForecastEndTime as pph_pedz preserving type) as ActualForecastEndTime,
@Semantics.calendarItem.dtStart: true
cast(afvg.SchedldFcstdEarliestStartDate as pph_fpavd preserving type) as SchedldFcstdEarliestStartDate,
cast(afvg.SchedldFcstdEarliestStartTime as pph_fpavz preserving type) as SchedldFcstdEarliestStartTime,
@Semantics.calendarItem.dtEnd: true
cast(afvg.SchedldFcstdEarliestEndDate as pph_fpedd preserving type) as SchedldFcstdEarliestEndDate,
cast(afvg.SchedldFcstdEarliestEndTime as pph_fpedz preserving type) as SchedldFcstdEarliestEndTime,
@Semantics.calendarItem.dtStart: true
cast(afvg.LatestSchedldFcstdStartDate as pph_spavd preserving type) as LatestSchedldFcstdStartDate,
cast(afvg.SchedldFcstdLatestStartTime as pph_spavz preserving type) as SchedldFcstdLatestStartTime,
@Semantics.calendarItem.dtEnd: true
cast(afvg.LatestSchedldFcstdEndDate as pph_spedd preserving type) as LatestSchedldFcstdEndDate,
cast(afvg.SchedldFcstdLatestEndTime as pph_spedz preserving type) as SchedldFcstdLatestEndTime,
// Wait Date and Times
@Semantics.calendarItem.dtStart: true
afvg.EarliestScheduledWaitStartDate,
afvg.EarliestScheduledWaitStartTime,
@Semantics.calendarItem.dtEnd: true
afvg.EarliestScheduledWaitEndDate,
afvg.EarliestScheduledWaitEndTime,
@Semantics.calendarItem.dtStart: true
afvg.LatestScheduledWaitStartDate,
afvg.LatestScheduledWaitStartTime,
@Semantics.calendarItem.dtEnd: true
afvg.LatestScheduledWaitEndDate,
afvg.LatestScheduledWaitEndTime,
// Durations
afvg.BreakDurationUnit,
afvg.PlannedBreakDuration,
afvg.ConfirmedBreakDuration,
cast(afvg.OverlapMinimumDurationUnit as pph_dzeimu preserving type) as OverlapMinimumDurationUnit,
afvg.OverlapMinimumDuration,
afvg.MaximumWaitDurationUnit,
afvg.MaximumWaitDuration,
afvg.MinimumWaitDurationUnit,
afvg.MinimumWaitDuration,
afvg.StandardMoveDurationUnit,
afvg.StandardMoveDuration,
afvg.StandardQueueDurationUnit,
afvg.StandardQueueDuration,
afvg.MinimumQueueDurationUnit,
afvg.MinimumQueueDuration,
afvg.MinimumMoveDurationUnit,
afvg.MinimumMoveDuration,
afvg.OperationStandardDuration,
afvg.OperationStandardDurationUnit,
afvg.MinimumDuration,
afvg.MinimumDurationUnit,
afvg.MinimumProcessingDuration,
afvg.MinimumProcessingDurationUnit,
afvg.ScheduledMoveDuration,
afvg.ScheduledMoveDurationUnit,
afvg.ScheduledQueueDuration,
afvg.ScheduledQueueDurationUnit,
afvg.ScheduledWaitDuration,
afvg.ScheduledWaitDurationUnit,
cast(afvg.PlannedDeliveryDuration as pph_plifz preserving type) as PlannedDeliveryDuration,
afvg.OpPlannedSetupDurn,
afvg.OpPlannedSetupDurnUnit,
afvg.OpPlannedProcessingDurn,
cast(afvg.OpPlannedProcessingDurnUnit as pph_beaze preserving type) as OpPlannedProcessingDurnUnit,
afvg.OpPlannedTeardownDurn,
afvg.OpPlannedTeardownDurnUnit,
afvg.ActualForecastDuration,
afvg.ActualForecastDurationUnit,
afvg.ForecastProcessingDuration,
afvg.ForecastProcessingDurationUnit,
afvg.ForecastedStandardDuration,
afvg.FcstdStandardDurationUnit,
afvg.ForecastedMinimumDuration,
afvg.ForecastedMinimumDurationUnit,
// Offset
@ObjectModel.foreignKey.association: '_StartDateOffsetReferenceCode'
afvg.StartDateOffsetReferenceCode,
@Semantics.unitOfMeasure: true
afvg.StartDateOffsetDurationUnit,
@Semantics.calendarItem.duration: true
afvg.StartDateOffsetDuration,
@ObjectModel.foreignKey.association: '_EndDateOffsetReferenceCode'
afvg.EndDateOffsetReferenceCode,
@Semantics.unitOfMeasure: true
afvg.EndDateOffsetDurationUnit,
@Semantics.calendarItem.duration: true
afvg.EndDateOffsetDuration,
// Quantities and UoM
@Semantics.unitOfMeasure: true
cast(afvg.OperationUnit as operationunit preserving type) as OperationUnit,
afvg.OpQtyToBaseQtyDnmntr,
afvg.OpQtyToBaseQtyNmrtr,
afvg.OperationScrapPercent,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #MAX
afvg.OperationReferenceQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
afvg.OpPlannedTotalQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
afvg.OpPlannedScrapQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
(afvg.OpPlannedTotalQuantity - afvg.OpPlannedScrapQuantity) as OpPlannedYieldQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
afvg.OpTotalConfirmedYieldQty,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
afvg.OpTotalConfirmedScrapQty,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@DefaultAggregation: #SUM
afvg.OperationConfirmedReworkQty,
@Semantics.unitOfMeasure: true
cast(aufv.ProductionUnit as productionunit preserving type) as ProductionUnit,
@Semantics.quantity.unitOfMeasure: 'ProductionUnit'
@DefaultAggregation: #SUM
afvg.OpTotConfdYieldQtyInOrdQtyUnit,
// Confirmed Work Quantities and UoM
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit1,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity1,
afvg.NoFurtherOpWorkQuantity1IsExpd,
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit2,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity2,
afvg.NoFurtherOpWorkQuantity2IsExpd,
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit3,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity3,
afvg.NoFurtherOpWorkQuantity3IsExpd,
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit4,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity4,
afvg.NoFurtherOpWorkQuantity4IsExpd,
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit5,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity5,
afvg.NoFurtherOpWorkQuantity5IsExpd,
@Semantics.unitOfMeasure: true
afvg.OpWorkQuantityUnit6,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
@DefaultAggregation: #SUM
afvg.OpConfirmedWorkQuantity6,
afvg.NoFurtherOpWorkQuantity6IsExpd,
// Work Quantities and UoM
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit1 as pph_vge01 preserving type) as WorkCenterStandardWorkQtyUnit1,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty1,
afvg.CostCtrActivityType1,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit2 as pph_vge02 preserving type) as WorkCenterStandardWorkQtyUnit2,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty2,
afvg.CostCtrActivityType2,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit3 as pph_vge03 preserving type) as WorkCenterStandardWorkQtyUnit3,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty3,
afvg.CostCtrActivityType3,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit4 as pph_vge04 preserving type) as WorkCenterStandardWorkQtyUnit4,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty4,
afvg.CostCtrActivityType4,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit5 as pph_vge05 preserving type) as WorkCenterStandardWorkQtyUnit5,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty5,
afvg.CostCtrActivityType5,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit6 as pph_vge06 preserving type) as WorkCenterStandardWorkQtyUnit6,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
@DefaultAggregation: #SUM
afvg.WorkCenterStandardWorkQty6,
afvg.CostCtrActivityType6,
// Forecast Work Quantities
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity1,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity2,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity3,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity4,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity5,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
@DefaultAggregation: #SUM
afvg.ForecastWorkQuantity6,
// Business Process
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessProcessStdVH', element: 'BusinessProcess' } } ]
@ObjectModel.foreignKey.association: '_BusinessProcess'
afvg.BusinessProcess,
@Semantics.unitOfMeasure: true
afvg.BusinessProcessEntryUnit,
@Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
@DefaultAggregation: #SUM
afvg.BusinessProcessConfirmedQty,
afvg.NoFurtherBusinessProcQtyIsExpd,
@Semantics.unitOfMeasure: true
afvg.BusinessProcRemainingQtyUnit,
@Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
@DefaultAggregation: #SUM
cast(afvg.BusinessProcessRemainingQty as pph_oprz1 preserving type) as BusinessProcessRemainingQty,
// OAN data
-- @ObjectModel.foreignKey.association: '_SetupOpActyNtwkInstance'
afvg.SetupOpActyNtwkInstance,
-- @ObjectModel.foreignKey.association: '_ProduceOpActyNtwkInstance'
afvg.ProduceOpActyNtwkInstance,
-- @ObjectModel.foreignKey.association: '_TeardownOpActyNtwkInstance'
afvg.TeardownOpActyNtwkInstance,
// Free-defined fields
afvg.FreeDefinedTableFieldSemantic,
afvg.FreeDefinedAttribute01,
afvg.FreeDefinedAttribute02,
afvg.FreeDefinedAttribute03,
afvg.FreeDefinedAttribute04,
@Semantics.unitOfMeasure: true
afvg.FreeDefinedQuantity1Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity1Unit'
@DefaultAggregation: #SUM
afvg.FreeDefinedQuantity1,
@Semantics.unitOfMeasure: true
afvg.FreeDefinedQuantity2Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity2Unit'
@DefaultAggregation: #SUM
afvg.FreeDefinedQuantity2,
@Semantics.currencyCode: true
afvg.FreeDefinedAmount1Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
@DefaultAggregation: #SUM
afvg.FreeDefinedAmount1,
afvg.FreeDefinedAmount2Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
@DefaultAggregation: #SUM
afvg.FreeDefinedAmount2,
afvg.FreeDefinedDate1,
afvg.FreeDefinedDate2,
afvg.FreeDefinedIndicator1,
afvg.FreeDefinedIndicator2,
// Associations
_OrdInternalBillOfOperations,
_MfgOrder,
_MfgOrderSequence,
_MfgOrderCategory,
_MfgOrderType,
_SuperiorOperation,
_OperationStandardTextCode,
_ProductionPlant,
_ProductionSupervisor,
_ProductionUnit,
_OperationUnit,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_WorkCenter_2'
_WorkCenter,
_WorkCenter_2,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_WorkCenterType_2'
_WorkCenterType,
_WorkCenterType_2,
_OperationControlProfile,
_BillOfOperationsType,
_BillOfOperationsGroup,
_BillOfOperationsVariant,
_BillOfOperationsSequence,
@Consumption.hidden: true
_BOOOperationInternalID,
_MRPController,
_ResponsiblePlannerGroup,
_ControlRecipeDestination,
_OperationConfirmation,
_FactoryCalendar,
_CapacityRequirement,
_CapacityRequirementItem,
_ChangeNumber,
_PurchasingOrganization,
_PurchasingGroup,
_PurchaseOrder,
_PurchaseOrderItem,
_PurchaseRequisition,
_PurchaseRequisitionItem,
_PurchasingInfoRecord,
_Supplier,
@Consumption.hidden: true
_SupplierCompanyByPlant,
_OpExternalProcessingCurrency,
_EmployeeWageGroup,
_EmployeeSuitability,
_Employee,
_CompanyCode,
_ProfitCenter,
_RequestingCostCenter,
_ControllingArea,
_ControllingObjectClass,
_FunctionalArea,
_BusinessArea,
_BusinessProcess,
_BusinessProcessEntryUnit,
_OperationSetupGroupCategory,
_OperationSetupGroup,
_OperationSetupType,
_LeadTimeReductionStrategy,
_StartDateOffsetReferenceCode,
_EndDateOffsetReferenceCode,
_Language,
_SetupOpActyNtwkInstance,
_ProduceOpActyNtwkInstance,
_TeardownOpActyNtwkInstance,
afvg._LongText
}
where
aufv.ManufacturingOrderCategory = '10'
or aufv.ManufacturingOrderCategory = '40'; //Manufacturing orders only