@AbapCatalog.sqlViewName: 'CDEFREC'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl: {
authorizationCheck: #MANDATORY,
personalData.blocking: #BLOCKED_DATA_EXCLUDED,
privilegedAssociations: [ '_CreatedByUserContactCard', '_LastChangedByUserContactCard' ]
}
@EndUserText.label: 'Record Defect'
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
usageType: {
dataClass: #TRANSACTIONAL,
sizeCategory: #XL,
serviceQuality: #C },
representativeKey: 'DefectInternalID',
semanticKey: [ 'Defect' ],
// Begin Draft 2.0
compositionRoot: true,
transactionalProcessingDelegated:true,
draftEnabled: true,
createEnabled: true,
updateEnabled: 'EXTERNAL_CALCULATION',
deleteEnabled: true
}
@Metadata.allowExtensions: true
@UI.headerInfo: {
typeName: 'Defect',
typeNamePlural: 'Defects',
title: {value: 'Defect', label: 'Defect'},
description: {value: 'DefectText'}
}
@Consumption.semanticObject: 'Defect'
@UI.presentationVariant.requestAtLeast: ['InspectionSubsetInternalID', '_DefectLongTextTP.DefectLongText']
define view C_DefectRecord as select from I_Defect_TP as _Defect
//Association to child nodes
association [0..1] to C_DefectLongText as _DefectLongTextTP on $projection.DefectInternalID = _DefectLongTextTP.DefectInternalID
with default filter _DefectLongTextTP.Language = _DefectLongTextTP.MasterLanguage
and _DefectLongTextTP.ItemCounter = 1
association [0..*] to C_DefectRecordAffectedObject as _DefectAffectedObjectTP
on $projection.DefectInternalID = _DefectAffectedObjectTP.DefectInternalID
association [0..*] to C_DefectTaskRecord as _DefectTaskRecord on $projection.DefectInternalID = _DefectTaskRecord.DefectInternalID
association [0..1] to C_DefectProbSolvingProcInfo as _DefectProbSolvingProcInfo on $projection.DefectInternalID = _DefectProbSolvingProcInfo.DefectInternalID
//Work-around for issue with update of DefectLifecycleStatusText
association [0..*] to I_DefectStatusText as _DefectStatusText on $projection.DefectLifecycleStatus = _DefectStatusText.DefectLifecycleStatus
//Assiciation to MPE view
association [1..1] to C_MfgExecDefectRecord as _MfgExecDefectRecord on $projection.DefectInternalID = _MfgExecDefectRecord.DefectInternalID
//Association to views specific to defects from automatic defects recording (reuse of views originally built for 'Manage Defects' app
association [0..1] to C_DefectMngCharcs as _DefectInspCharacteristic on $projection.InspectionLot = _DefectInspCharacteristic.InspectionLot and
$projection.InspPlanOperationInternalID = _DefectInspCharacteristic.InspPlanOperationInternalID and
$projection.InspectionCharacteristic = _DefectInspCharacteristic.InspectionCharacteristic
association [0..1] to C_DefectMngCharacteristicsSbst as _DefectInspSubsCharacteristic on $projection.InspectionLot = _DefectInspSubsCharacteristic.InspectionLot and
$projection.InspPlanOperationInternalID = _DefectInspSubsCharacteristic.InspPlanOperationInternalID and
$projection.InspectionSubsetInternalID = _DefectInspSubsCharacteristic.InspectionSubsetInternalID and
$projection.MaterialSample = _DefectInspSubsCharacteristic.MaterialSample and
$projection.InspectionCharacteristic = _DefectInspSubsCharacteristic.InspectionCharacteristic
association [0..1] to I_InspectionOperation as _InspectionOperation on $projection.InspectionLot = _InspectionOperation.InspectionLot and
$projection.InspPlanOperationInternalID = _InspectionOperation.InspPlanOperationInternalID
// association [0..1] to C_DefectMngInspectionSubset as _DefectInspectionSubset on $projection.InspectionLot = _DefectInspectionSubset.InspectionLot and
// $projection.InspectionSubsetInternalID = _DefectInspectionSubset.InspectionSubsetInternalID and
// $projection.InspPlanOperationInternalID = _DefectInspectionSubset.InspPlanOperationInternalID
//Value Help and Text Provider for Production Order Data related fields
association [0..1] to I_ProductionOrderStdVH as _ProductionOrderStdVH on $projection.ProductionOrder = _ProductionOrderStdVH.ProductionOrder
association [0..1] to I_MfgOrderVH as _MfgOrderVH on $projection.ProductionOrder = _MfgOrderVH.ManufacturingOrder
// association [0..1] to I_MfgOrderSequenceBasic as _ProductionOrderSequence on $projection.ProductionOrder = _ProductionOrderSequence.ManufacturingOrder
// and $projection.ProductionOrderSequence = _ProductionOrderSequence.ManufacturingOrderSequence
association [0..1] to I_ProdnOrdOpBySemKeyStdVH as _ProdnOrdOpBySemKeyStdVH on $projection.ProductionOrder = _ProdnOrdOpBySemKeyStdVH.ProductionOrder
and $projection.ProductionOrderSequence = _ProdnOrdOpBySemKeyStdVH.ProductionOrderSequence
and $projection.ProductionOrderOperation = _ProdnOrdOpBySemKeyStdVH.ProductionOrderOperation
association [0..1] to I_MfgOrdOpBySemanticKeyStdVH as _MfgOrdOpBySemanticKeyStdVH on $projection.ProductionOrder = _MfgOrdOpBySemanticKeyStdVH.ManufacturingOrder
and $projection.ProductionOrderSequence = _MfgOrdOpBySemanticKeyStdVH.ManufacturingOrderSequence
and $projection.ProductionOrderOperation = _MfgOrdOpBySemanticKeyStdVH.ManufacturingOrderOperation
association [0..1] to I_WrkCtrBySemanticKeyStdVH as _MainWorkCenterStdVH on $projection.MainWorkCenter = _MainWorkCenterStdVH.WorkCenter
and $projection.MainWorkCenterPlant = _MainWorkCenterStdVH.Plant
association [0..1] to I_PlantStdVH as _MainWorkCenterPlantStdVH on $projection.MainWorkCenterPlant = _MainWorkCenterPlantStdVH.Plant
association [0..1] to I_DefectLocationCatalog as _DefectLocationCatalog on $projection.DefectLocationCatalog = _DefectLocationCatalog.DefectLocationCatalog
association [0..1] to I_DefectLocationCodeGroup as _DefectLocationCodeGroup on $projection.DefectLocationCatalog = _DefectLocationCodeGroup.DefectLocationCatalog
and $projection.DefectLocationCodeGroup = _DefectLocationCodeGroup.DefectLocationCodeGroup
association [0..1] to I_DefectLocationCode as _DefectLocationCode on $projection.DefectLocationCatalog = _DefectLocationCode.DefectLocationCatalog
and $projection.DefectLocationCodeGroup = _DefectLocationCode.DefectLocationCodeGroup
and $projection.DefectLocationCode = _DefectLocationCode.DefectLocationCode
//=== Association to related Notification Item
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
association [0..1] to I_QualityNotificationItem as _RelatedNotificationItem on $projection.DefectInternalID = _RelatedNotificationItem.ReferencedDefect
and _RelatedNotificationItem.IsDeleted = ''
{
key _Defect.DefectInternalID,
@ObjectModel:{ readOnly,
text.element: [ 'DefectText' ]
}
_Defect.Defect,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@ObjectModel.text.element: ['DefectCategoryText']
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_DefectCatVH',
element: 'DefectCategory' }
}]
_Defect.DefectCategory,
@ObjectModel.readOnly: true
_Defect._DefectCategory._Text[1: Language = $session.system_language ].DefectCategoryText,
@ObjectModel.readOnly
@ObjectModel.foreignKey.association: [ { exclude } ]
@Consumption.filter.hidden: true
_Defect.DefectCodeCatalog,
@ObjectModel.text.element: ['DefectCodeGroupText']
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_DefectRuleBasedCodeGroupVH',
element: 'DefectCodeGroup' },
additionalBinding: [ { localElement: 'InspectionLot', element: 'InspectionLot', usage: #FILTER },
{ localElement: 'InspPlanOperationInternalID', element: 'InspPlanOperationInternalID', usage: #FILTER },
{ localElement: 'InspectionCharacteristic', element: 'InspectionCharacteristic', usage: #FILTER },
{ localElement: 'Material', element: 'Material', usage: #FILTER },
{ localElement: 'Plant', element: 'Plant', usage: #FILTER },
{ localElement: 'MainWorkCenter', element: 'WorkCenter', usage: #FILTER },
{ localElement: 'DefectCategory', element: 'DefectCategory', usage: #FILTER },
{ localElement: 'DefectInternalID', element: 'DefectInternalID', usage: #FILTER }
]
}]
_Defect.DefectCodeGroup,
@ObjectModel.readOnly: true
_Defect._DefectCodeGroup._Text[1: Language = $session.system_language ].DefectCodeGroupText,
@ObjectModel.text.element: ['DefectCodeText']
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_DefectRuleBasedCodeVH',
element: 'DefectCode' },
additionalBinding: [ { localElement: 'DefectCodeGroup', element: 'DefectCodeGroup' },
{ localElement: 'InspectionLot', element: 'InspectionLot', usage: #FILTER },
{ localElement: 'InspPlanOperationInternalID', element: 'InspPlanOperationInternalID', usage: #FILTER },
{ localElement: 'InspectionCharacteristic', element: 'InspectionCharacteristic', usage: #FILTER },
{ localElement: 'Material', element: 'Material', usage: #FILTER },
{ localElement: 'Plant', element: 'Plant', usage: #FILTER },
{ localElement: 'MainWorkCenter', element: 'WorkCenter', usage: #FILTER },
{ localElement: 'DefectCategory', element: 'DefectCategory', usage: #FILTER },
{ localElement: 'DefectInternalID', element: 'DefectInternalID', usage: #FILTER }
]
}]
_Defect.DefectCode,
@ObjectModel.readOnly: true
_Defect._DefectCode._Text[1: Language = $session.system_language ].DefectCodeText,
_Defect.QualityIssueReference,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@Semantics.text: true
_Defect.DefectText,
@ObjectModel: { readOnly: true,
text.element: ['DefectLifecycleStatusText']
}
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_DefectStatus',
element: 'DefectLifecycleStatus' },
additionalBinding: [{ localElement: 'DefectLifecycleStatus',
element: 'DefectLifecycleStatus' }]
}]
_Defect.DefectLifecycleStatus,
@ObjectModel.readOnly: true
_Defect._DefectStatus._DefectStatusText[1: Language = $session.system_language ].DefectLifecycleStatusText,
@Semantics.booleanIndicator: true
@Consumption.filter.hidden: true
_Defect.IsDeleted,
@ObjectModel.readOnly: true
@ObjectModel.foreignKey.association: [ { exclude } ]
@Consumption.filter.hidden: true
@Consumption.semanticObject: 'QualityNotification'
_RelatedNotificationItem.QualityNotification,
@ObjectModel.readOnly: true
@Consumption.filter.hidden: true
_RelatedNotificationItem.NotificationItemExternalID,
@ObjectModel.readOnly: true
_Defect.ProblemAnalysisStatus,
@ObjectModel.readOnly: true
_Defect.MasterLanguage,
@Consumption.filter.hidden: true
_Defect.DefectiveQuantity,
@ObjectModel.foreignKey.association: '_DefectiveQtyUnitOfMeasure' // Keep deprecated association, as soon as the odata/sadl/fiori consumers can handle the successor
@Consumption: {
filter.hidden: true,
valueHelpDefinition: [
{ entity: { name: 'I_ProductUnitsOfMeasureVH', element: 'AlternativeUnit' },
additionalBinding: [{ localElement: 'Material', element: 'Product' }]
},
{ entity: { name: 'I_UnitOfMeasureStdVH', element: 'UnitOfMeasure' },
qualifier: 'vh_uom_stdvh'
}
]
}
_Defect.DefectiveQuantityUnit,
@ObjectModel.text.element: ['PlantName']
@Consumption: {
valueHelpDefinition: [
{ entity: { name: 'I_PlantStdVH',
element: 'Plant' }
}
],
semanticObject: 'Plant'
}
_Defect.Plant,
@ObjectModel.readOnly: true
_Defect._Plant.PlantName,
@ObjectModel.text.element: ['ProductName']
@Consumption: {
valueHelpDefinition: [
{ entity: { name: 'I_ProductVH',
element: 'Product' }
},
{ entity: { name: 'I_ProductPlantVH',
element: 'Product' },
qualifier: 'vh_productplant_vh',
additionalBinding: [{ localElement: 'Plant', element: 'Plant', usage: #FILTER }]
}
],
semanticObject: 'Material'
}
_Defect.Material,
@ObjectModel.readOnly: true
_Defect._Product._Text[1: Language = $session.system_language ].ProductName,
@Consumption: {
semanticObject: 'Batch',
valueHelpDefinition: [
{ entity: { name: 'I_BatchVH', element: 'Batch' },
additionalBinding: [{ element: 'Plant', localElement: 'Plant', usage: #FILTER }, { element: 'Material', localElement: 'Material' }]
}]
}
_Defect.Batch,
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
@ObjectModel.text.element: [ 'StorageLocationName' ]
@Consumption: {
semanticObject: 'StorageLocation',
valueHelpDefinition: [
{ entity: { name: 'I_StorageLocationStdVH', element: 'StorageLocation' },
additionalBinding: [{ element: 'Plant', localElement: 'Plant' }]
}]
}
_Defect.StorageLocation,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_StorageLocation.StorageLocationName,
@Consumption.filter.hidden: true
_Defect.NumberOfDefects,
@Consumption.hidden: true
_Defect.CreationDate,
@Consumption.hidden: true
_Defect.CreationTime,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT'
@ObjectModel.filter: { enabled: true, transformedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT' }
@ObjectModel.sort: { enabled: true, transformedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT' }
@EndUserText: { label: 'Created On', quickInfo: 'Record Created On' }
cast( 0 as timestamp ) as CreationDateTime,
@ObjectModel.foreignKey.association: [ { exclude } ]
_Defect.CreatedByUser,
@Consumption.hidden: true
_Defect.LastChangeDate,
@Consumption.hidden: true
_Defect.LastChangeTime,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT'
@ObjectModel.filter: { enabled: true, transformedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT' }
@ObjectModel.sort: { enabled: true, transformedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT' }
@EndUserText: { label: 'Changed On', quickInfo: 'Record Last Changed On' }
cast( 0 as timestamp ) as LastChangeDateTime,
@ObjectModel.foreignKey.association: [ { exclude } ]
_Defect.LastChangedByUser,
// UX FIX
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_InspectionLotStd1VH',
element: 'InspectionLot' }
}]
@Consumption.semanticObject: 'InspectionLot'
//@ObjectModel.readOnly: true
_Defect.InspectionLot,
@Consumption.filter.hidden: true
//@ObjectModel.readOnly: true
_Defect.InspPlanOperationInternalID,
@Consumption.filter.hidden: true
//@ObjectModel.readOnly: true
_Defect.InspectionCharacteristic,
@Consumption.filter.hidden: true
_Defect.InspectionSubsetInternalID,
@Consumption.filter.hidden: true
_Defect.MaterialSample,
@Consumption.valueHelpDefinition: [{ association: '_DefectClass' }]
_Defect.DefectClass,
// Production Order and Operation (use VH data source as foreign key association; with this users need only 'F4' authorization instead of '03' for getting the texts)
@ObjectModel.foreignKey.association: '_MfgOrderVH'
@Consumption: {
valueHelpDefinition: [
{association: '_ProductionOrderStdVH'}
]//,
// semanticObject: 'ProductionOrder' // Definition needs to done in DEFINE of MPX_EXT class (refer the logic there)
}
_Defect.ProductionOrder,
@ObjectModel.readOnly: true
_MfgOrderVH.ManufacturingOrderCategory,
@ObjectModel.text.element: ['MfgOrderSequenceText']
_Defect.ProductionOrderSequence,
@ObjectModel.readOnly: true
// Integrating this field via path notation causes performance issues for non-production defects
// _ProductionOrderSequence.MfgOrderSequenceText, // No exposure of association, as target view is not an optimal choice!
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT'
cast(' ' as mfgordersequencetext preserving type) as MfgOrderSequenceText,
// Production Order and Operation (use VH data source as foreign key association; with this users need only 'F4' authorization instead of '03' for getting the texts)
@ObjectModel.foreignKey.association: '_MfgOrdOpBySemanticKeyStdVH'
@Consumption: {
valueHelpDefinition: [
{ association: '_ProdnOrdOpBySemKeyStdVH' }
]
}
_Defect.ProductionOrderOperation,
// Work center fields
@ObjectModel.foreignKey.association: '_MainWorkCenterStdVH'
@Consumption.valueHelpDefinition: [{association: '_MainWorkCenterStdVH'}]
//UX Inc
@Consumption.semanticObject: 'WorkCenter'
_Defect.MainWorkCenter,
@ObjectModel.foreignKey.association: '_MainWorkCenterPlantStdVH'
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_PlantStdVH', element: 'Plant' } }]
_Defect.MainWorkCenterPlant,
@Consumption.hidden: true
_Defect.WorkCenterTypeCode,
@Consumption.hidden: true
_Defect.MainWorkCenterInternalID,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_D_DEF_DET_DEFECT_CONFIG'
_Defect.DefectConfigurationValue,
@ObjectModel.text.element: [ 'ProductionSupplyAreaName' ]
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ProductionSupplyAreaStdVH',
element: 'ProductionSupplyArea' },
additionalBinding: [{ element: 'Plant', localElement: 'Plant', usage: #FILTER }]
}
]
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.ProductionSupplyArea,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_ProductionSupplyArea._Text[1: Language = $session.system_language].ProductionSupplyAreaName,
@ObjectModel.text.element: [ 'EWMWarehouseDescription' ]
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_EWM_WarehouseNumberVH',
element: 'EWMWarehouse' }
}
]
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.Warehouse,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
// Because of decentral EWM process, we need to fetch the description text via SADL exit
//_EWM_WarehouseNumber_2._Text[1: Language = $session.system_language].EWMWarehouseDescription,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT'
cast( ' ' as /scwm/de_desc40 preserving type ) as EWMWarehouseDescription,
@ObjectModel.text.element: [ 'EWMStorageTypeName' ]
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_EWM_StorageTypeVH',
element: 'EWMStorageType' },
additionalBinding: [{ element: 'EWMWarehouse', localElement: 'Warehouse', usage: #FILTER }]
}
]
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.StorageType,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
// Because of decentral EWM process, we need to fetch the description text via SADL exit
//_EWM_SourceStorageType._Text[1: Language = $session.system_language].EWMStorageTypeName,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_QM_C_DEFECTRECORD_EXIT'
cast( ' ' as /scwm/de_desc40 preserving type ) as EWMStorageTypeName,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_EWM_StorageBinVH',
element: 'EWMStorageBin' },
additionalBinding: [{ element: 'EWMWarehouse', localElement: 'Warehouse', usage: #FILTER },
{ element: 'EWMStorageType', localElement: 'StorageType', usage: #FILTER }]
}
]
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.SourceStorageBin,
@Consumption.hidden: true
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.WarehouseLogicalSystem,
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.DefectCausedBy,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_QltyMgmtPlantCostCenterVH',
element: 'CostCenter' },
additionalBinding: [{ element: 'Plant', localElement: 'Plant', usage: #FILTER_AND_RESULT }]
}
]
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_Defect.CostCenter,
@ObjectModel.readOnly: true
@ObjectModel.text.element: ['DefectLocationCatalogText']
@Feature: 'QM_CE_DEF_LCTN_CODE'
_Defect.DefectObjectCodeCatalog as DefectLocationCatalog,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEF_LCTN_CODE'
_DefectLocationCatalog._Text[1: Language = $session.system_language ].DefectLocationCatalogText,
@ObjectModel.text.element: ['DefectLocationCodeGroupText']
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_DefectLocationCodeGroupStdVH', element: 'DefectLocationCodeGroup' },
additionalBinding: [{ element: 'DefectLocationCatalog', localElement: 'DefectLocationCatalog', usage: #RESULT }]
}
]
@Feature: 'QM_CE_DEF_LCTN_CODE'
_Defect.DefectObjectCodeGroup as DefectLocationCodeGroup,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEF_LCTN_CODE'
_DefectLocationCodeGroup._Text[1: Language = $session.system_language ].DefectLocationCodeGroupText,
@ObjectModel.text.element: ['DefectLocationCodeText']
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_DefectLocationCodeStdVH', element: 'DefectLocationCode' },
additionalBinding: [{ element: 'DefectLocationCatalog', localElement: 'DefectLocationCatalog', usage: #RESULT },
{ element: 'DefectLocationCodeGroup', localElement: 'DefectLocationCodeGroup' }
]
}
]
@Feature: 'QM_CE_DEF_LCTN_CODE'
_Defect.DefectObjectCode as DefectLocationCode,
@ObjectModel.readOnly: true
@Feature: 'QM_CE_DEF_LCTN_CODE'
_DefectLocationCode._DefectLocationCodeText[1: Language = $session.system_language ].DefectLocationCodeText,
/* Associations */
@Consumption.hidden: true
@ObjectModel.readOnly: true
_DefectCodeGroup,
@Consumption.hidden: true
@ObjectModel.readOnly: true
_DefectCode,
@Consumption.hidden: true
_DefectCategory,
@Consumption.hidden: true
_DefectStatus,
@Consumption.hidden: true
_DefectStatusText,
@Consumption.filter.hidden: true
@VDM.lifecycle: { status: #DEPRECATED, successor: '_DefectiveQuantityUnit' }
_DefectiveQtyUnitOfMeasure,
@Consumption.filter.hidden: true
_DefectiveQuantityUnit,
@Consumption.filter.hidden: true
_ProblemAnalysisStatus,
@Consumption.hidden: true
_Product,
@Consumption.hidden: true
_Plant,
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_StorageLocation,
@Consumption.filter.hidden: true
_DefectClass,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_DefectLongTextTP,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_DefectAffectedObjectTP,
@Consumption.filter.hidden: true
_DefectTaskRecord,
@Consumption.filter.hidden: true
_MfgExecDefectRecord,
@Consumption.filter.hidden: true
_DefectInspCharacteristic,
@Consumption.filter.hidden: true
_DefectInspSubsCharacteristic,
@Consumption.filter.hidden: true
_InspectionOperation,
@Consumption.filter.hidden: true
_CreatedByUserContactCard,
@Consumption.filter.hidden: true
_LastChangedByUserContactCard,
@Consumption.filter.hidden: true
_ProductionOrderStdVH,
@Consumption.filter.hidden: true
_MfgOrderVH,
@Consumption.filter.hidden: true
_ProdnOrdOpBySemKeyStdVH,
@Consumption.filter.hidden: true
_MfgOrdOpBySemanticKeyStdVH,
@Consumption.filter.hidden: true
_MainWorkCenterStdVH,
@Consumption.filter.hidden: true
_MainWorkCenterPlantStdVH,
@Consumption.filter.hidden: true
@Consumption.hidden: true
_InspectionLot,
_DefectProbSolvingProcInfo, // do not set to @Consumption.filter.hidden; filtering is wanted here.
@ObjectModel.readOnly: true
@Consumption.filter.hidden: true
@UI.hidden: true
_DefectProbSolvingProcInfo.ProbSolvingProc, // the value of ProbSolvingProc is not passed to the navigation if it is not part of the defect context, because this context is passed into the smart link
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_ProductionSupplyArea,
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_EWM_WarehouseNumber_2,
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_EWM_SourceStorageType,
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_EWM_SourceStorageBin,
@Consumption.filter.hidden: true
@Feature: 'QM_CE_DEFECT_WAREHOUSE_DEF'
_DefectCausedBy
} where IsDeleted = '' or _RelatedNotificationItem.ReferencedDefect is not null