@AbapCatalog.sqlViewName: 'CDEFECTMNGSBST'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.usageType: {
dataClass: #MIXED,
sizeCategory: #XL, //expected number of rows < 10.000.000
serviceQuality: #D
}
@EndUserText.label: 'Defect: Characteristics with Insp. Point'
define view C_DefectMngCharacteristicsSbst as select from I_InspSubsetCharacteristic as _InspSubsetChar
inner join I_InspectionSubset as _InspSubset
on _InspSubset.InspectionLot = _InspSubsetChar.InspectionLot
and _InspSubset.InspPlanOperationInternalID = _InspSubsetChar.InspPlanOperationInternalID
and _InspSubset.InspectionSubsetInternalID = _InspSubsetChar.InspectionSubsetInternalID
{
@Consumption.semanticObject: 'InspectionLot'
@UI:{
fieldGroup: [{ position: 10, qualifier: 'CharGroup1' }]
}
key _InspSubset.InspectionLot,
key _InspSubset.InspPlanOperationInternalID,
@Consumption.semanticObject: 'InspectionSubset'
key _InspSubset.InspectionSubsetInternalID,
key _InspSubset.MaterialSample,
@UI:{
fieldGroup: [{ position: 30, qualifier: 'CharGroup1' }],
textArrangement: #TEXT_FIRST
}
@ObjectModel.text.element: [ 'InspectionSpecificationText' ]
key _InspSubsetChar.InspectionCharacteristic,
@ObjectModel: {
readOnly: true,
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_QM_DEFECT_MANAGE_EXIT'
}
@UI:{
fieldGroup: [{position: 20, qualifier: 'CharGroup1'}]
}
@Consumption.semanticObject: 'InspectionSubset'
cast('' as qpruefpkt) as InspectionSubset,
@Consumption.semanticObject: 'InspectionOperation'
@UI:{
fieldGroup: [{ position: 40, qualifier: 'CharGroup1' }],
textArrangement: #TEXT_FIRST
}
@ObjectModel.text.element: [ 'OperationText' ]
cast( _InspSubset._InspectionOperation.InspectionOperation as vdm_vornr preserving type ) as InspectionOperation,
@UI.hidden: true
_InspSubset._InspectionOperation.OperationText,
/* field for calculation of inspection point */
@UI.hidden: true
_InspSubsetChar._InspectionLot.InspSubsetFieldCombination,
@UI.hidden: true
_InspectionSubset.InspectionSubsetDate,
@UI.hidden: true
case _InspectionSubset.InspectionSubsetTime
when '' then '000000'
else _InspectionSubset.InspectionSubsetTime
end as InspectionSubsetTime,
@UI.hidden: true
_InspectionSubset.InspectionSubsetLongCharKey,
@UI.hidden: true
_InspectionSubset.InspectionSubsetShortCharKey,
@UI.hidden: true
_InspectionSubset.InspSubsetLongNumericKey,
@UI.hidden: true
_InspectionSubset.InspSubsetShortNumericKey,
@UI.hidden: true
_InspectionSubset.Equipment,
@UI.hidden: true
_InspectionSubset.FunctionalLocation,
_InspSubsetChar._InspectionCharacteristic.InspectionSpecificationText,
_InspSubsetChar._InspectionCharacteristic.InspSpecIsQuantitative,
_InspSubsetChar._InspectionCharacteristic.InspectionSpecificationUnit,
_InspSubsetChar._InspectionCharacteristic.InspSpecRecordingType,
_InspSubsetChar._InspectionCharacteristic.InspSpecUpperLimit,
_InspSubsetChar._InspectionCharacteristic.InspSpecHasUpperLimit,
_InspSubsetChar._InspectionCharacteristic.InspSpecLowerLimit,
_InspSubsetChar._InspectionCharacteristic.InspSpecHasLowerLimit,
_InspSubsetChar._InspectionCharacteristic.InspSpecDecimalPlaces,
_InspSubsetChar._InspectionCharacteristic.InspCharacteristicSampleSize, //Inspect value
_InspSubsetChar._InspectionCharacteristic.InspCharacteristicSampleUnit,
_InspSubsetChar._InspectionCharacteristic.InspSpecSampleQuantityFactor, //Sample Quantity Factor
_InspSubsetChar._InspectionCharacteristic._CharcAttribSelectedCodeSet.SelectedCodeSetText,
@UI:{
fieldGroup: [ { position: 10, qualifier: 'CharGroup3', criticality: 'InspValnResultCriticality' , criticalityRepresentation: #WITHOUT_ICON}
]
}
_InspSubsetChar._InspSubsetResult.InspectionValuationResult,
@UI.hidden: true
case _InspSubsetChar._InspSubsetResult.InspectionValuationResult
when 'A' then 3
when 'R' then 1
else 0
end as InspValnResultCriticality,
@UI.hidden: true
_InspSubsetChar._InspSubsetResult.InspectionResultMeanValue,
@UI:{
fieldGroup: [{ position: 10, qualifier: 'CharGroup2' }]
}
@ObjectModel: {
readOnly: true,
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_QM_DEFECT_MANAGE_EXIT'
}
cast( '' as vdm_qinspsummerizedresults ) as InspectionResultMeanValueText,
@UI:{
fieldGroup: [{ position: 20, qualifier: 'CharGroup2' }]
}
@ObjectModel: {
readOnly: true,
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_QM_DEFECT_MANAGE_EXIT'
}
cast( '' as vdm_qinspspecification ) as InspSpecToleranceLimitsText,
@UI.hidden: true
_InspSubsetChar._InspSubsetResult.InspectionResultHasMeanValue,
@ObjectModel.text.element: ['CharacteristicAttributeCodeTxt']
@UI:{
fieldGroup: [{ position: 11, qualifier: 'CharGroup2' }],
textArrangement: #TEXT_LAST
}
cast(_InspSubsetChar._InspSubsetResult.CharacteristicAttributeCode as vdm_qinspsummerizedresults ) as CharacteristicAttributeCode,
_InspSubsetChar._InspSubsetResult.CharacteristicAttributeCodeGrp,
_InspSubsetChar._InspSubsetResult._CharcAttributeCode.CharacteristicAttributeCodeTxt,
@UI:{
fieldGroup: [{ position: 50, qualifier: 'CharGroup1' }]
}
cast(
case
when _InspSubsetChar._InspSubsetResult.InspectionResultStatus is null
then _InspSubsetChar._InspCharacteristicStatus.InspectionResultStatusText
else _InspSubsetChar._InspSubsetResult._InspectionResultStatus.InspectionResultStatusText
end as vdm_qbeastatus_text ) as InspectionResultStatusText,
@UI:{
fieldGroup: [{ position: 60, qualifier: 'CharGroup1' }]
}
_InspSubsetChar._InspSubsetResult.InspResultValidValuesNumber,
@UI:{
fieldGroup: [{ position: 65, qualifier: 'CharGroup1' }]
}
_InspSubsetChar._InspSubsetResult.InspRsltNonconformingValsNmbr,
@Consumption.hidden: true
_InspSubset._InspectionLot,
@Consumption.hidden: true
_InspSubset._InspectionOperation
}