@AbapCatalog.sqlViewName: 'IMFGBOOOPERCHST'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@Analytics.dataCategory: #DIMENSION
@Analytics.dataExtraction.enabled: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #ANALYTICAL_DIMENSION
@ObjectModel.supportedCapabilities: [#ANALYTICAL_DIMENSION, #CDS_MODELING_ASSOCIATION_TARGET, #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #EXTRACTION_DATA_SOURCE]
@ObjectModel.representativeKey: 'BOOOpInternalVersionCounter'
@ObjectModel.usageType: { serviceQuality: #C, sizeCategory: #L, dataClass: #MIXED }
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Manufacturing Bill of Operations Operation Change State'
define view I_MfgBOOOperationChangeState
as select from I_BOOOperationChangeState
-- to root
association [1..1] to I_MfgBillOfOperations as _BillOfOperations on $projection.BillOfOperationsType = _BillOfOperations.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperations.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperations.BillOfOperationsVariant
-- to parent sequence
association [1..1] to I_MfgBillOfOperationsSequence as _BillOfOperationsSequence on $projection.BillOfOperationsType = _BillOfOperationsSequence.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsSequence.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperationsSequence.BillOfOperationsVariant
and $projection.BillOfOperationsSequence = _BillOfOperationsSequence.BillOfOperationsSequence
-- to parent operation
association [1..1] to I_MfgBillOfOperationsOperation as _BillOfOperationsOperation on $projection.BillOfOperationsType = _BillOfOperationsOperation.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsOperation.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperationsOperation.BillOfOperationsVariant
and $projection.BillOfOperationsSequence = _BillOfOperationsOperation.BillOfOperationsSequence
and $projection.BOOOperationInternalID = _BillOfOperationsOperation.BOOOperationInternalID
association [1..1] to I_MfgBOOSequenceOpAssgmtChgSt as _BOOSqncOperationAssgmtChgSt on $projection.BillOfOperationsType = _BOOSqncOperationAssgmtChgSt.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BOOSqncOperationAssgmtChgSt.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BOOSqncOperationAssgmtChgSt.BillOfOperationsVariant
and $projection.BillOfOperationsSequence = _BOOSqncOperationAssgmtChgSt.BillOfOperationsSequence
and $projection.BOOOperationInternalID = _BOOSqncOperationAssgmtChgSt.BOOOperationInternalID
and $projection.BOOSqncOpAssgmtIntVersionCntr = _BOOSqncOperationAssgmtChgSt.BOOSqncOpAssgmtIntVersionCntr
association [0..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
-- for DPP part of DCLS
association [0..1] to I_SupplierCompany as _SupplierCompany on $projection.Supplier = _SupplierCompany.Supplier
and $projection.CompanyCode = _SupplierCompany.CompanyCode
association [0..1] to I_SupplierCompanyByPlant as _SupplierCompanyByPlant on $projection.Plant = _SupplierCompanyByPlant.Plant
and $projection.Supplier = _SupplierCompanyByPlant.Supplier
{
// Key
@ObjectModel.foreignKey.association: '_BillOfOperationsType'
key BillOfOperationsType,
@ObjectModel.foreignKey.association: '_BillOfOperationsGroup'
key BillOfOperationsGroup,
@ObjectModel.foreignKey.association: '_BillOfOperations'
key BillOfOperationsVariant,
@ObjectModel.foreignKey.association: '_BillOfOperationsSequence'
key BillOfOperationsSequence,
@ObjectModel.foreignKey.association: '_BOOOperationInternalID'
key BOOOperationInternalID,
@ObjectModel.foreignKey.association: '_BOOSqncOperationAssgmtChgSt'
key BOOSqncOpAssgmtIntVersionCntr,
@ObjectModel.text.element: ['OperationText']
key BOOOpInternalVersionCounter,
// **** Operation Semantic Header ****
OperationExternalID,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'Operation_2'
@ObjectModel.text.element: ['OperationText']
Operation,
@ObjectModel.text.element: ['OperationText']
Operation_2,
// **** Administration ****
-- Administrative Data
@Semantics.systemDate.createdAt: true
CreationDate,
@Semantics.user.createdBy: true
CreatedByUser,
@Semantics.systemDate.lastChangedAt: true
LastChangeDate,
@Semantics.user.lastChangedBy: true
LastChangedByUser,
-- Validity
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
@ObjectModel.foreignKey.association: '_ChangeMaster'
ChangeNumber,
@Semantics.businessDate.from: true
ValidityStartDate,
@Semantics.businessDate.to: true
ValidityEndDate,
// **** Attributes ****
IsDeleted,
IsImplicitlyDeleted,
// **** Text ****
@Semantics.text: true
OperationText,
@ObjectModel.foreignKey.association: '_LongTextLanguage'
LongTextLanguageCode,
// **** Assignments ****
-- General
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_Plant'
Plant,
@ObjectModel.foreignKey.association: '_OperationControlProfile'
OperationControlProfile,
@ObjectModel.foreignKey.association: '_OperationStandardText'
OperationStandardTextCode,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
@ObjectModel.foreignKey.association: '_WorkCenter'
WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
WorkCenterTypeCode,
@ObjectModel.foreignKey.association: '_FactoryCalendar'
FactoryCalendar,
@ObjectModel.foreignKey.association: '_CapacityCategory'
CapacityCategoryCode,
-- @ObjectModel.foreignKey.association: '_CostElement' --> too much DB accesses to derive controlling area for CoEl
CostElement,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } } ]
@ObjectModel.foreignKey.association: '_CompanyCode'
CompanyCode,
OperationCostingRelevancyType,
-- Employment
NumberOfTimeTickets,
NumberOfConfirmationSlips,
@ObjectModel.foreignKey.association: '_EmployeeWageGroup'
EmployeeWageGroup,
EmployeeWageType,
@ObjectModel.foreignKey.association: '_EmployeeSuitability'
EmployeeSuitability,
NumberOfEmployees,
-- Origin
BillOfOperationsRefType,
BillOfOperationsRefGroup,
BillOfOperationsRefVariant,
-- Production Line
LineSegmentTakt,
-- Transfer to Orders (-> Suboperations)
OperationStdWorkQtyGrpgCat,
OrderHasNoSubOperations,
-- Setup
@ObjectModel.foreignKey.association: '_OperationSetupType'
OperationSetupType,
@ObjectModel.foreignKey.association: '_OperationSetupGroupCategory'
OperationSetupGroupCategory,
@ObjectModel.foreignKey.association: '_OperationSetupGroup'
OperationSetupGroup,
// **** Process Control Data ****
BOOOperationIsPhase,
BOOPhaseSuperiorOpInternalID,
@ObjectModel.foreignKey.association: '_ControlRecipeDestination'
ControlRecipeDestination,
// **** External Processing ****
OpIsExtlyProcdWithSubcontrg,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PurchasingInfoRecordStdVH', element: 'PurchasingInfoRecord' } } ]
-- @ObjectModel.foreignKey.association: '_PurchasingInfoRecord'
PurchasingInfoRecord,
@ObjectModel.foreignKey.association: '_PurchasingOrganization'
PurchasingOrganization,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PurchaseContractStdVH', element: 'PurchaseContract' } } ]
-- @ObjectModel.foreignKey.association: '_PurchaseContract'
PurchaseContract,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PurchaseContractItemStdVH', element: 'PurchaseContractItem' } } ]
-- @ObjectModel.foreignKey.association: '_PurchaseContractItem'
PurchaseContractItem,
@Semantics.text: true
PurchasingInfoRecdAddlGrpgName,
@ObjectModel.foreignKey.association: '_MaterialGroup'
MaterialGroup,
@ObjectModel.foreignKey.association: '_PurchasingGroup'
PurchasingGroup,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_Supplier_VH', element: 'Supplier' } } ]
@ObjectModel.foreignKey.association: '_Supplier'
Supplier,
PlannedDeliveryDuration,
NumberOfOperationPriceUnits,
@Semantics.currencyCode: true
OpExternalProcessingCurrency,
@Aggregation.default: #SUM
@Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
OpExternalProcessingPrice,
// **** Quality Management ****
-- Quality management: general
@ObjectModel.foreignKey.association: '_InspectionLotType'
InspectionLotType,
@ObjectModel.foreignKey.association: '_InspResultRecordingView'
InspResultRecordingView,
-- Quality management: inspection points
InspSbstCompletionConfirmation,
InspSbstHasNoTimeOrQuantity,
// **** Quantities / Work Quantities ****
-- Quantity
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
@Aggregation.default: #SUM
OperationReferenceQuantity,
@Semantics.unitOfMeasure: true
OperationUnit,
OperationScrapPercent,
OpQtyToBaseQtyNmrtr,
OpQtyToBaseQtyDnmntr,
-- Standard Values
cast(StandardWorkFormulaParam1 as pph_par01 preserving type) as StandardWorkFormulaParam1,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit1'
@Aggregation.default: #SUM
cast(StandardWorkQuantity1 as vdm_vgw01 preserving type) as StandardWorkQuantity1,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit1 as pph_vge01 preserving type) as StandardWorkQuantityUnit1,
cast(CostCtrActivityType1 as vdm_lar01 preserving type) as CostCtrActivityType1,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio1'
PerfEfficiencyRatioCode1,
cast(StandardWorkFormulaParam2 as pph_par02 preserving type) as StandardWorkFormulaParam2,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit2'
@Aggregation.default: #SUM
cast(StandardWorkQuantity2 as vdm_vgw02 preserving type) as StandardWorkQuantity2,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit2 as pph_vge02 preserving type) as StandardWorkQuantityUnit2,
cast(CostCtrActivityType2 as vdm_lar02 preserving type) as CostCtrActivityType2,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio2'
PerfEfficiencyRatioCode2,
cast(StandardWorkFormulaParam3 as pph_par03 preserving type) as StandardWorkFormulaParam3,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit3'
@Aggregation.default: #SUM
cast(StandardWorkQuantity3 as vdm_vgw03 preserving type) as StandardWorkQuantity3,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit3 as pph_vge03 preserving type) as StandardWorkQuantityUnit3,
cast(CostCtrActivityType3 as vdm_lar03 preserving type) as CostCtrActivityType3,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio3'
PerfEfficiencyRatioCode3,
cast(StandardWorkFormulaParam4 as pph_par04 preserving type) as StandardWorkFormulaParam4,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit4'
@Aggregation.default: #SUM
cast(StandardWorkQuantity4 as vdm_vgw04 preserving type) as StandardWorkQuantity4,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit4 as pph_vge04 preserving type) as StandardWorkQuantityUnit4,
cast(CostCtrActivityType4 as vdm_lar04 preserving type) as CostCtrActivityType4,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio4'
PerfEfficiencyRatioCode4,
cast(StandardWorkFormulaParam5 as pph_par05 preserving type) as StandardWorkFormulaParam5,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit5'
@Aggregation.default: #SUM
cast(StandardWorkQuantity5 as vdm_vgw05 preserving type) as StandardWorkQuantity5,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit5 as pph_vge05 preserving type) as StandardWorkQuantityUnit5,
cast(CostCtrActivityType5 as vdm_lar05 preserving type) as CostCtrActivityType5,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio5'
PerfEfficiencyRatioCode5,
cast(StandardWorkFormulaParam6 as pph_par06 preserving type) as StandardWorkFormulaParam6,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit6'
@Aggregation.default: #SUM
cast(StandardWorkQuantity6 as vdm_vgw06 preserving type) as StandardWorkQuantity6,
@Semantics.unitOfMeasure: true
cast(StandardWorkQuantityUnit6 as pph_vge06 preserving type) as StandardWorkQuantityUnit6,
cast(CostCtrActivityType6 as vdm_lar06 preserving type) as CostCtrActivityType6,
@ObjectModel.foreignKey.association: '_PerformanceEfficiencyRatio6'
PerfEfficiencyRatioCode6,
-- Business Process
-- @ObjectModel.foreignKey.association: '_BusinessProcess' --> too much DB accesses to derive controlling area for BusPr
BusinessProcess,
// **** Interoperation Times ****
@ObjectModel.foreignKey.association: '_LeadTimeReductionStrategy'
LeadTimeReductionStrategy,
TeardownAndWaitIsParallel,
BillOfOperationsBreakDuration,
@Semantics.unitOfMeasure: true
BillOfOperationsBreakDurnUnit as BreakDurationUnit,
MaximumWaitDuration,
@Semantics.unitOfMeasure: true
MaximumWaitDurationUnit,
MinimumWaitDuration,
@Semantics.unitOfMeasure: true
MinimumWaitDurationUnit,
StandardQueueDuration,
@Semantics.unitOfMeasure: true
StandardQueueDurationUnit,
MinimumQueueDuration,
@Semantics.unitOfMeasure: true
MinimumQueueDurationUnit,
StandardMoveDuration,
@Semantics.unitOfMeasure: true
StandardMoveDurationUnit,
MinimumMoveDuration,
@Semantics.unitOfMeasure: true
MinimumMoveDurationUnit,
// **** Control Data ****
--- Splitting
OperationSplitIsRequired,
MaximumNumberOfSplits,
MinProcessingDurationPerSplit,
@Semantics.unitOfMeasure: true
MinProcessingDurnPerSplitUnit,
--- Overlapping
OperationOverlappingIsRequired,
OperationOverlappingIsPossible,
OperationsIsAlwaysOverlapping,
OverlapMinimumDuration,
@Semantics.unitOfMeasure: true
OverlapMinimumDurationUnit,
@Semantics.quantity.unitOfMeasure: 'OverlapMinimumTransferQtyUnit'
@Aggregation.default: #SUM
OverlapMinimumTransferQty,
@Semantics.unitOfMeasure: true
OverlapMinimumTransferQtyUnit,
// **** Associations ****
@Consumption.hidden: true
_BOOOperationInternalID,
_BOOSqncOperationAssgmtChgSt,
_BillOfOperations,
_BillOfOperationsBreakDurnUnit,
_BillOfOperationsGroup,
_BillOfOperationsOperation,
_BillOfOperationsSequence,
_BillOfOperationsType,
_CapacityCategory,
_ChangeMaster,
_ControlRecipeDestination,
_EmployeeSuitability,
_EmployeeWageGroup,
_FactoryCalendar,
_InspResultRecordingView,
_InspectionLotType,
_LeadTimeReductionStrategy,
_LongTextLanguage,
_MaterialGroup,
_MaximumWaitDurationUnit,
_MinProcessingDurnPerSplitUnit,
_MinimumMoveDurationUnit,
_MinimumQueueDurationUnit,
_MinimumWaitDurationUnit,
_OpExternalProcessingCurrency,
_OperationControlProfile,
_OperationSetupGroup,
_OperationSetupGroupCategory,
_OperationSetupType,
_OperationStandardText,
_OperationStdWorkQtyGrpgCat,
_OperationUnit,
_OverlapMinimumDurationUnit,
_OverlapMinimumTransferQtyUnit,
_PerformanceEfficiencyRatio1,
_PerformanceEfficiencyRatio2,
_PerformanceEfficiencyRatio3,
_PerformanceEfficiencyRatio4,
_PerformanceEfficiencyRatio5,
_PerformanceEfficiencyRatio6,
_Plant,
_CompanyCode,
_PurchaseContract,
_PurchaseContractItem,
_PurchasingGroup,
_PurchasingInfoRecord,
_PurchasingOrganization,
_StandardMoveDurationUnit,
_StandardQueueDurationUnit,
_StandardWorkFormulaParameter1,
_StandardWorkFormulaParameter2,
_StandardWorkFormulaParameter3,
_StandardWorkFormulaParameter4,
_StandardWorkFormulaParameter5,
_StandardWorkFormulaParameter6,
_StandardWorkQuantityUnit1,
_StandardWorkQuantityUnit2,
_StandardWorkQuantityUnit3,
_StandardWorkQuantityUnit4,
_StandardWorkQuantityUnit5,
_StandardWorkQuantityUnit6,
_Supplier,
@Consumption.hidden: true
_SupplierCompany,
@Consumption.hidden: true
_SupplierCompanyByPlant,
_WorkCenter,
@Consumption.hidden: true
_WorkCenterType
}
where BillOfOperationsType = '2' // Recipe
or BillOfOperationsType = 'N' // Standard routing
or BillOfOperationsType = 'S'; // Reference operation set
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BOOOPERATIONCHANGESTATE"
],
"ASSOCIATED":
[
"I_BILLOFOPERATIONSGROUP",
"I_BILLOFOPERATIONSTYPE",
"I_BOOOPERATIONINTERNALID",
"I_CAPACITYCATEGORY",
"I_CHANGEMASTER",
"I_COMPANYCODE",
"I_CONTROLRECIPEDESTINATION",
"I_CURRENCY",
"I_EMPLOYEESUITABILITY",
"I_EMPLOYEEWAGEGROUP",
"I_FACTORYCALENDAR",
"I_INSPECTIONLOTTYPE",
"I_INSPRESULTRECORDINGVIEW",
"I_LANGUAGE",
"I_LEADTIMEREDUCTIONSTRATEGY",
"I_MATERIALGROUP",
"I_MFGBILLOFOPERATIONS",
"I_MFGBILLOFOPERATIONSOPERATION",
"I_MFGBILLOFOPERATIONSSEQUENCE",
"I_MFGBOOSEQUENCEOPASSGMTCHGST",
"I_OPERATIONCONTROLPROFILE",
"I_OPERATIONSETUPGROUP",
"I_OPERATIONSETUPGROUPCATEGORY",
"I_OPERATIONSETUPTYPE",
"I_OPERATIONSTANDARDTEXT",
"I_OPERATIONSTDWORKQTYGRPGCAT",
"I_PERFORMANCEEFFICIENCYRATIO",
"I_PLANT",
"I_PURCHASECONTRACT",
"I_PURCHASECONTRACTITEM",
"I_PURCHASINGGROUP",
"I_PURCHASINGINFORECORDAPI01",
"I_PURCHASINGORGANIZATION",
"I_STANDARDWORKFORMULAPARAMETER",
"I_SUPPLIER",
"I_SUPPLIERCOMPANY",
"I_SUPPLIERCOMPANYBYPLANT",
"I_UNITOFMEASURE",
"I_WORKCENTER",
"I_WORKCENTERTYPE"
],
"BASE":
[
"I_BOOOPERATIONCHANGESTATE"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/