I_BOOCharacteristicVersion

DDL: I_BOOCHARACTERISTICVERSION SQL: IPPBOOCHARCVERS Type: view BASIC Package: VDM_QM_PLANNING

Bill Of Operations Characteristic Vers.

I_BOOCharacteristicVersion is a Basic CDS View that provides data about "Bill Of Operations Characteristic Vers." in SAP S/4HANA. It reads from 1 data source (plmk) and exposes 151 fields with key fields BillOfOperationsType, BillOfOperationsGroup, BOOOperationInternalID, BOOCharacteristic, BOOCharacteristicVersion. It has 34 associations to related views. Part of development package VDM_QM_PLANNING.

Data Sources (1)

SourceAliasJoin Type
plmk plmk from

Associations (34)

CardinalityTargetAliasCondition
[1..1] I_BillOfOperationsType _BillOfOperationsType $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType
[1..1] I_BillOfOperationsGroup _BillOfOperationsGroup $projection.BillOfOperationsType = _BillOfOperationsGroup.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup
[1..1] I_BOOOperationInternalID _BOOOperationInternalID $projection.BillOfOperationsType = _BOOOperationInternalID.BillOfOperationsType and $projection.BillOfOperationsGroup = _BOOOperationInternalID.BillOfOperationsGroup and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID
[1..1] I_BOOCharacteristic _BOOCharacteristic $projection.BillOfOperationsType = _BOOCharacteristic.BillOfOperationsType and $projection.BillOfOperationsGroup = _BOOCharacteristic.BillOfOperationsGroup and $projection.BOOOperationInternalID = _BOOCharacteristic.BOOOperationInternalID and $projection.BOOCharacteristic = _BOOCharacteristic.BOOCharacteristic
[1..1] I_InspectionMethod _InspectionMethod $projection.InspectionMethodPlant = _InspectionMethod.InspectionMethodPlant and $projection.InspectionMethod = _InspectionMethod.InspectionMethod
[1..1] I_InspectionMethodVersion _InspectionMethodVersion $projection.InspectionMethodPlant = _InspectionMethodVersion.InspectionMethodPlant and $projection.InspectionMethod = _InspectionMethodVersion.InspectionMethod and $projection.InspectionMethodVersion = _InspectionMethodVersion.InspectionMethodVersion
[1..1] I_InspectionSpecification _InspectionSpecification $projection.InspectionSpecificationPlant = _InspectionSpecification.InspectionSpecificationPlant and $projection.InspectionSpecification = _InspectionSpecification.InspectionSpecification
[1..1] I_InspSpecificationVersion _InspSpecificationVersion $projection.InspectionSpecificationPlant = _InspSpecificationVersion.InspectionSpecificationPlant and $projection.InspectionSpecification = _InspSpecificationVersion.InspectionSpecification and $projection.InspectionSpecificationVersion = _InspSpecificationVersion.InspectionSpecificationVersion
[0..1] I_InspSpecImportanceCode _InspSpecImportanceCode $projection.InspSpecImportanceCode = _InspSpecImportanceCode.InspSpecImportanceCode
[0..1] I_InspectorQualification _InspectorQualification $projection.InspectorQualification = _InspectorQualification.InspectorQualification
[0..1] I_SamplingProcedure _SamplingProcedure $projection.SamplingProcedure = _SamplingProcedure.SamplingProcedure
[0..1] I_InspToleranceSpecification _InspToleranceSpecification $projection.InspToleranceSpecification = _InspToleranceSpecification.InspToleranceSpecification
[0..1] I_DefectCodeGroup _InspDefectCodeGrpRejection _InspDefectCodeGrpRejection.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRejection
[0..1] I_DefectCode _InspDefectCodeRejection _InspDefectCodeRejection.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRejection and _InspDefectCodeRejection.DefectCode = $projection.InspSpecDefectCodeRejection
[0..1] I_DefectCodeGroup _InspDefectCodeGrpRjcnUpper _InspDefectCodeGrpRjcnUpper.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnUpper
[0..1] I_DefectCode _InspDefectCodeRjcnUpper _InspDefectCodeRjcnUpper.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnUpper and _InspDefectCodeRjcnUpper.DefectCode = $projection.InspSpecDefectCodeRjcnUpper
[0..1] I_DefectCodeGroup _InspDefectCodeGrpRjcnLower _InspDefectCodeGrpRjcnLower.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnLower
[0..1] I_DefectCode _InspDefectCodeRjcnLower _InspDefectCodeRjcnLower.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnLower and _InspDefectCodeRjcnLower.DefectCode = $projection.InspSpecDefectCodeRjcnLower
[0..1] I_CharcAttribSelectedCodeSet _CharcAttribSelectedCodeSet $projection.SelectedCodeSetPlant = _CharcAttribSelectedCodeSet.SelectedCodeSetPlant and $projection.SelectedCodeSet = _CharcAttribSelectedCodeSet.SelectedCodeSet
[0..1] I_Plant _InspectionMethodPlant $projection.InspectionMethodPlant = _InspectionMethodPlant.Plant
[0..1] I_Plant _InspectionSpecificationPlant $projection.InspectionSpecificationPlant = _InspectionSpecificationPlant.Plant
[0..1] I_Plant _SelectedCodeSetPlant $projection.SelectedCodeSetPlant = _SelectedCodeSetPlant.Plant
[0..1] I_UnitOfMeasure _InspSpecUnitOfMeasure $projection.InspectionSpecificationUnit = _InspSpecUnitOfMeasure.UnitOfMeasure
[0..1] I_UnitOfMeasure _SampleUnitOfMeasure $projection.InspCharacteristicSampleUnit = _SampleUnitOfMeasure.UnitOfMeasure
[1..1] I_InspSpecCharcType _InspSpecCharcType $projection.InspSpecCharacteristicType = _InspSpecCharcType.InspSpecCharacteristicType
[0..1] I_InspectionScope _InspectionScope $projection.InspectionScope = _InspectionScope.InspectionScope
[0..1] I_InspSpecRecordingType _InspSpecRecordingType $projection.InspSpecRecordingType = _InspSpecRecordingType.InspSpecRecordingType
[0..1] I_InspResultDocuRequired _InspResultDocuRequired $projection.InspResultIsDocumentationRqd = _InspResultDocuRequired.InspResultIsDocumentationRqd
[0..1] I_Inspspeccharccategory _InspSpecCharcCategory $projection.InspSpecCharcCategory = _InspSpecCharcCategory.InspSpecCharcCategory
[0..1] I_InspSpecRsltCalculation _InspSpecRsltCalculation $projection.InspSpecResultCalculation = _InspSpecRsltCalculation.InspSpecResultCalculation
[0..1] I_InspSpecPrintControl _InspSpecPrintControl $projection.InspSpecPrintControl = _InspSpecPrintControl.InspSpecPrintControl
[0..1] I_BOOCharcInspRelevance _BOOCharcInspRelevance $projection.BOOCharacteristicInspRelevance = _BOOCharcInspRelevance.BOOCharacteristicInspRelevance
[1..1] E_BOOCharacteristic _Extension $projection.BillOfOperationsType = _Extension.BillOfOperationsType and $projection.BillOfOperationsGroup = _Extension.BillOfOperationsGroup and $projection.BOOOperationInternalID = _Extension.BOOOperationInternalID and $projection.BOOCharacteristic = _Extension.BOOCharacteristic and $projection.BOOCharacteristicVersion = _Extension.BOOCharacteristicVersion
[0..1] I_InspSpecificationVersionText _InspSpecificationVersionText $projection.InspectionSpecificationPlant = _InspSpecificationVersionText.InspectionSpecificationPlant and $projection.InspectionSpecification = _InspSpecificationVersionText.InspectionSpecification and $projection.InspectionSpecificationVersion = _InspSpecificationVersionText.InspectionSpecificationVersion and _InspSpecificationVersionText.Language = $session.system_language

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IPPBOOCHARCVERS view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Bill Of Operations Characteristic Vers. view
ObjectModel.representativeKey BOOCharacteristicVersion view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MASTER view
Metadata.ignorePropagatedAnnotations true view

Fields (151)

KeyFieldSource TableSource FieldDescription
KEY BillOfOperationsType plmk plnty
KEY BillOfOperationsGroup plmk plnnr
KEY BOOOperationInternalID plmk plnkn
KEY BOOCharacteristic plmk merknr
KEY BOOCharacteristicVersion plmk zaehl
ValidityStartDate plmk gueltigab
ValidityEndDate plmk valid_to_on_db
ChangeNumber plmk aendergnr
IsDeleted plmk loekz
InspectionMethodPlant plmk qmtb_werks
InspectionMethod plmk pmethode
InspectionMethodVersion plmk pmtversion
InspSpecImportanceCode plmk merkgew
InspectorQualification plmk pruefquali
BOOOperationPRTInternalID plmk pzlfh
InspectionSpecificationPlant plmk qpmk_zaehl
InspectionSpecification plmk verwmerkm
InspectionSpecificationVersion plmk mkversion
BOOCharcHasInspSpecReference plmk qpmk_ref
InspSpecControlIndicators plmk steuerkz
InspSpecIsQuantitative
InspSpecIsMeasuredValueRqd Measured Value Must Be Recorded
InspSpecIsSelectedSetRequired Characteristic Attribute
InspSpecIsUpperLimitRequired Upper Specification Limit
InspSpecIsLowerLimitRequired Lower Specification Limit
InspSpecIsTargetValueInLimit
InspectionScope
InspSpecIsLongTermInspection Long-Term Inspection
InspSpecRecordingType
InspResultIsDocumentationRqd
InspSpecCharcCategory
InspSpecIsSampleQtyAdditive
InspSpecIsDestructive Destructive Inspection
InspSpecResultCalculation
InspSpecIsSamplingProcedRqd
InspSpecIsScrapRelevant Characteristic Is Scrap Relevant
InspSpecHasFixedCtrlIndicators
InspSpecIsDefectRecordingRqd
InspSpecIsTestEquipmentRqd Assignment of Test Equipment Required
InspSpecIsDefectsRecgAutomatic Automatic Defects Recording
InspSpecIsChgDocRequired Change Documents at Results Recording
InspSpecIsControlChartUsed SPC Characteristic
InspSpecPrintControl
InspToleranceSpecification plmk toleranzsl
InspSpecDecimalPlaces plmk stellen
InspectionSpecificationUnit plmk masseinhsw
InspSpecTargetValue plmk sollwert
InspSpecHasTargetValue plmk sollwni
InspSpecUpperLimit plmk toleranzob
InspSpecLowerLimit plmk toleranzun
InspSpecHasUpperLimit plmk tolobni
InspSpecHasLowerLimit plmk tolunni
InspSpecUpperPlausibilityLimit plmk plausioben
InspSpecHasUprPlausibilityLmt plmk plausiobni
InspSpecLowerPlausibilityLimit plmk plausiunte
InspSpecHasLowrPlausibilityLmt plmk plausiunni
InspSpecFirstUpperSpecLimit plmk grenzeob1
InspSpecHasFirstUpperSpecLimit plmk grenzob1ni
InspSpecFirstLowerSpecLimit plmk grenzeun1
InspSpecHasFirstLowerSpecLimit plmk grenzun1ni
InspSpecSecondUpperSpecLimit plmk grenzeob2
InspSpecHasSecondUprSpecLimit plmk grenzob2ni
InspSpecSecondLowerSpecLimit plmk grenzeun2
InspSpecHasSecondLowrSpecLimit plmk grenzun2ni
InspSpecToleranceChgValidFrom
InspSpecToleranceChgValidTo
InspSpecUpperSpecLimitChange
InspSpecHasUprSpecLimitChange plmk tolwobni
InspSpecLowerSpecLimitChange
InspSpecHasLowrSpecLimitChange plmk tolwunni
InspSpecNumberOfClasses plmk klasanzahl
InspSpecClassWidthQty plmk klasbreite
InspSpecHasClassWidth plmk klasbrni
InspSpecClassMidpointQty plmk klasmitte
InspSpecHasClassMidpoint plmk klasmini
InspSpecHasFormula plmk formelsl
InspSpecFormula1 plmk formel1
InspSpecFormula2 plmk formel2
InspSpecDefectCodeGrpRejection plmk codegrqual
InspSpecDefectCodeRejection plmk codequal
InspSpecDefectCodeGrpRjcnUpper plmk codegr9o
InspSpecDefectCodeRjcnUpper plmk code9o
InspSpecDefectCodeGrpRjcnLower plmk codegr9u
InspSpecDefectCodeRjcnLower plmk code9u
SelectedCodeSet plmk auswmenge1
SelectedCodeSetPlant plmk auswmgwrk1
InspSpecAdditionalCatalog2 plmk katalgart2
InspSpecAddlSeldCodeSetPlant2 plmk auswmgwrk2
InspSpecAdditionalCatalog3 plmk katalgart3
InspSpecAddlSeldCodeSetPlant3 plmk auswmgwrk3
InspSpecAdditionalCatalog4 plmk katalgart4
InspSpecAddlSeldCodeSetPlant4 plmk auswmgwrk4
InspSpecAdditionalCatalog5 plmk katalgart5
InspSpecAddlSeldCodeSetPlant5 plmk auswmgwrk5
SamplingProcedure plmk stichprver
InspCharacteristicSampleUnit plmk probemgeh
BOOCharcSampleQuantity plmk pruefeinh
InspSpecInformationField1 plmk dummy10
InspSpecInformationField2 plmk dummy20
InspSpecInformationField3 plmk dummy40
kurztextendasInspectionSpecificationText
CreatedByUser plmk ersteller
CreationDate plmk erstelldat
LastChangedByUser plmk aenderer
LastChangeDate plmk aenderdat
MatlIsConsideredForDynModif
SuplrIsConsideredForDynModif
MfrIsConsideredForDynModif
CustIsConsideredForDynModif
InspLotDynamicRule plmk qdynregel
InspCharcDynModifRef plmk dynmerkref
QltyCtrlChartAggrgnCriterion plmk spckrit
InspSpecInputProcedure plmk inpproc
BOOCharacteristicInspRelevance plmk char_relevance
BOOCharcGroup plmk chargroup
BOOCharcSourceCharc plmk chargroup_cref
BOOCharcGroupDivision plmk divisionint
BillOfOperationsVersion plmk versn
_BillOfOperationsType _BillOfOperationsType
_BillOfOperationsGroup _BillOfOperationsGroup
_BOOOperationInternalID _BOOOperationInternalID
_BOOCharacteristic _BOOCharacteristic
_InspSpecCharcType _InspSpecCharcType
_InspectionScope _InspectionScope
_InspSpecRecordingType _InspSpecRecordingType
_InspResultDocuRequired _InspResultDocuRequired
_InspSpecCharcCategory _InspSpecCharcCategory
_InspSpecRsltCalculation _InspSpecRsltCalculation
_InspSpecPrintControl _InspSpecPrintControl
_BOOCharcInspRelevance _BOOCharcInspRelevance
_InspectorQualification _InspectorQualification
_InspectionMethodPlant _InspectionMethodPlant
_InspectionMethod _InspectionMethod
_InspectionMethodVersion _InspectionMethodVersion
_InspSpecImportanceCode _InspSpecImportanceCode
_InspectionSpecificationPlant _InspectionSpecificationPlant
_InspectionSpecification _InspectionSpecification
_InspSpecificationVersion _InspSpecificationVersion
_SelectedCodeSetPlant _SelectedCodeSetPlant
_SamplingProcedure _SamplingProcedure
_SampleUnitOfMeasure _SampleUnitOfMeasure
_InspToleranceSpecification _InspToleranceSpecification
_InspSpecUnitOfMeasure _InspSpecUnitOfMeasure
_InspDefectCodeGrpRejection _InspDefectCodeGrpRejection
_InspDefectCodeRejection _InspDefectCodeRejection
_InspDefectCodeGrpRjcnUpper _InspDefectCodeGrpRjcnUpper
_InspDefectCodeRjcnUpper _InspDefectCodeRjcnUpper
_InspDefectCodeGrpRjcnLower _InspDefectCodeGrpRjcnLower
_InspDefectCodeRjcnLower _InspDefectCodeRjcnLower
_CharcAttribSelectedCodeSet _CharcAttribSelectedCodeSet
_InspSpecificationVersionText _InspSpecificationVersionText
@AbapCatalog.sqlViewName: 'IPPBOOCHARCVERS'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
    viewType: #BASIC,
    lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Bill Of Operations Characteristic Vers.'
@ObjectModel.representativeKey: 'BOOCharacteristicVersion'
@ObjectModel.usageType: { serviceQuality: #C, sizeCategory: #M, dataClass: #MASTER } // as function substring is used but #A and #B must not contain functions

@Metadata.ignorePropagatedAnnotations: true

define view I_BOOCharacteristicVersion
  as select from plmk

  // --------------------------------------------------------------------------------------------------------

  // General Foreign Key Associations

  // --------------------------------------------------------------------------------------------------------

  association [1..1] to I_BillOfOperationsType       as _BillOfOperationsType         on  $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType

  association [1..1] to I_BillOfOperationsGroup      as _BillOfOperationsGroup        on  $projection.BillOfOperationsType  = _BillOfOperationsGroup.BillOfOperationsType
                                                                                      and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup

  association [1..1] to I_BOOOperationInternalID     as _BOOOperationInternalID       on  $projection.BillOfOperationsType   = _BOOOperationInternalID.BillOfOperationsType
                                                                                      and $projection.BillOfOperationsGroup  = _BOOOperationInternalID.BillOfOperationsGroup
                                                                                      and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID

  association [1..1] to I_BOOCharacteristic          as _BOOCharacteristic            on  $projection.BillOfOperationsType   = _BOOCharacteristic.BillOfOperationsType
                                                                                      and $projection.BillOfOperationsGroup  = _BOOCharacteristic.BillOfOperationsGroup
                                                                                      and $projection.BOOOperationInternalID = _BOOCharacteristic.BOOOperationInternalID
                                                                                      and $projection.BOOCharacteristic      = _BOOCharacteristic.BOOCharacteristic

  association [1..1] to I_InspectionMethod           as _InspectionMethod             on  $projection.InspectionMethodPlant = _InspectionMethod.InspectionMethodPlant
                                                                                      and $projection.InspectionMethod      = _InspectionMethod.InspectionMethod

  association [1..1] to I_InspectionMethodVersion    as _InspectionMethodVersion      on  $projection.InspectionMethodPlant   = _InspectionMethodVersion.InspectionMethodPlant
                                                                                      and $projection.InspectionMethod        = _InspectionMethodVersion.InspectionMethod
                                                                                      and $projection.InspectionMethodVersion = _InspectionMethodVersion.InspectionMethodVersion

  association [1..1] to I_InspectionSpecification    as _InspectionSpecification      on  $projection.InspectionSpecificationPlant = _InspectionSpecification.InspectionSpecificationPlant
                                                                                      and $projection.InspectionSpecification      = _InspectionSpecification.InspectionSpecification

  association [1..1] to I_InspSpecificationVersion   as _InspSpecificationVersion     on  $projection.InspectionSpecificationPlant   = _InspSpecificationVersion.InspectionSpecificationPlant
                                                                                      and $projection.InspectionSpecification        = _InspSpecificationVersion.InspectionSpecification
                                                                                      and $projection.InspectionSpecificationVersion = _InspSpecificationVersion.InspectionSpecificationVersion

  association [0..1] to I_InspSpecImportanceCode     as _InspSpecImportanceCode       on  $projection.InspSpecImportanceCode = _InspSpecImportanceCode.InspSpecImportanceCode

  association [0..1] to I_InspectorQualification     as _InspectorQualification       on  $projection.InspectorQualification = _InspectorQualification.InspectorQualification

  association [0..1] to I_SamplingProcedure          as _SamplingProcedure            on  $projection.SamplingProcedure = _SamplingProcedure.SamplingProcedure

  association [0..1] to I_InspToleranceSpecification as _InspToleranceSpecification   on  $projection.InspToleranceSpecification = _InspToleranceSpecification.InspToleranceSpecification
  //

  association [0..1] to I_DefectCodeGroup            as _InspDefectCodeGrpRejection   on  _InspDefectCodeGrpRejection.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRejection

  association [0..1] to I_DefectCode                 as _InspDefectCodeRejection      on  _InspDefectCodeRejection.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRejection
                                                                                      and _InspDefectCodeRejection.DefectCode      = $projection.InspSpecDefectCodeRejection

  association [0..1] to I_DefectCodeGroup            as _InspDefectCodeGrpRjcnUpper   on  _InspDefectCodeGrpRjcnUpper.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnUpper

  association [0..1] to I_DefectCode                 as _InspDefectCodeRjcnUpper      on  _InspDefectCodeRjcnUpper.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnUpper
                                                                                      and _InspDefectCodeRjcnUpper.DefectCode      = $projection.InspSpecDefectCodeRjcnUpper

  association [0..1] to I_DefectCodeGroup            as _InspDefectCodeGrpRjcnLower   on  _InspDefectCodeGrpRjcnLower.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnLower

  association [0..1] to I_DefectCode                 as _InspDefectCodeRjcnLower      on  _InspDefectCodeRjcnLower.DefectCodeGroup = $projection.InspSpecDefectCodeGrpRjcnLower
                                                                                      and _InspDefectCodeRjcnLower.DefectCode      = $projection.InspSpecDefectCodeRjcnLower

  association [0..1] to I_CharcAttribSelectedCodeSet as _CharcAttribSelectedCodeSet   on  $projection.SelectedCodeSetPlant = _CharcAttribSelectedCodeSet.SelectedCodeSetPlant
                                                                                      and $projection.SelectedCodeSet      = _CharcAttribSelectedCodeSet.SelectedCodeSet

  association [0..1] to I_Plant                      as _InspectionMethodPlant        on  $projection.InspectionMethodPlant = _InspectionMethodPlant.Plant

  association [0..1] to I_Plant                      as _InspectionSpecificationPlant on  $projection.InspectionSpecificationPlant = _InspectionSpecificationPlant.Plant
  
  association [0..1] to I_Plant                      as _SelectedCodeSetPlant         on  $projection.SelectedCodeSetPlant = _SelectedCodeSetPlant.Plant

  association [0..1] to I_UnitOfMeasure              as _InspSpecUnitOfMeasure        on  $projection.InspectionSpecificationUnit = _InspSpecUnitOfMeasure.UnitOfMeasure

  association [0..1] to I_UnitOfMeasure              as _SampleUnitOfMeasure          on  $projection.InspCharacteristicSampleUnit = _SampleUnitOfMeasure.UnitOfMeasure

  // --------------------------------------------------------------------------------------------------------

  // Text Associations for Fixed Domain Values

  // --------------------------------------------------------------------------------------------------------

  association [1..1] to I_InspSpecCharcType          as _InspSpecCharcType            on  $projection.InspSpecCharacteristicType = _InspSpecCharcType.InspSpecCharacteristicType

  association [0..1] to I_InspectionScope            as _InspectionScope              on  $projection.InspectionScope = _InspectionScope.InspectionScope

  association [0..1] to I_InspSpecRecordingType      as _InspSpecRecordingType        on  $projection.InspSpecRecordingType = _InspSpecRecordingType.InspSpecRecordingType

  association [0..1] to I_InspResultDocuRequired     as _InspResultDocuRequired       on  $projection.InspResultIsDocumentationRqd = _InspResultDocuRequired.InspResultIsDocumentationRqd

  association [0..1] to I_Inspspeccharccategory      as _InspSpecCharcCategory        on  $projection.InspSpecCharcCategory = _InspSpecCharcCategory.InspSpecCharcCategory

  association [0..1] to I_InspSpecRsltCalculation    as _InspSpecRsltCalculation      on  $projection.InspSpecResultCalculation = _InspSpecRsltCalculation.InspSpecResultCalculation

  association [0..1] to I_InspSpecPrintControl       as _InspSpecPrintControl         on  $projection.InspSpecPrintControl = _InspSpecPrintControl.InspSpecPrintControl

  association [0..1] to I_BOOCharcInspRelevance      as _BOOCharcInspRelevance        on  $projection.BOOCharacteristicInspRelevance = _BOOCharcInspRelevance.BOOCharacteristicInspRelevance

  // --------------------------------------------------------------------------------------------------------

  // Extension Association

  // --------------------------------------------------------------------------------------------------------

  association [1..1] to E_BOOCharacteristic          as _Extension                    on  $projection.BillOfOperationsType     = _Extension.BillOfOperationsType
                                                                                      and $projection.BillOfOperationsGroup    = _Extension.BillOfOperationsGroup
                                                                                      and $projection.BOOOperationInternalID   = _Extension.BOOOperationInternalID
                                                                                      and $projection.BOOCharacteristic        = _Extension.BOOCharacteristic
                                                                                      and $projection.BOOCharacteristicVersion = _Extension.BOOCharacteristicVersion
                                                                                      
  
  // Association to texts in user language

  association [0..1] to I_InspSpecificationVersionText as _InspSpecificationVersionText   on  $projection.InspectionSpecificationPlant     = _InspSpecificationVersionText.InspectionSpecificationPlant
                                                                                          and $projection.InspectionSpecification          = _InspSpecificationVersionText.InspectionSpecification
                                                                                          and $projection.InspectionSpecificationVersion   = _InspSpecificationVersionText.InspectionSpecificationVersion
                                                                                          and _InspSpecificationVersionText.Language       = $session.system_language
                                                                                      
{
      // --------------------------------------------------------------------------------------------------------

      // Key

      // --------------------------------------------------------------------------------------------------------

      @ObjectModel.foreignKey.association: '_BillOfOperationsType'
  key plmk.plnty                                                          as BillOfOperationsType,
      @ObjectModel.foreignKey.association: '_BillOfOperationsGroup'
  key plmk.plnnr                                                          as BillOfOperationsGroup,
      @ObjectModel.foreignKey.association: '_BOOOperationInternalID'
  key plmk.plnkn                                                          as BOOOperationInternalID,
      // Field plmk.kzeinstell is an obsolete key field and no longer in use but as a non-representative key field it would require a foreign

      // key association pointing to a separate but empty domain fix value view (there are no domain fix values at all for this domain)

      // Thus the field is removed from the key and a projection on the only possible value (WHERE ... = ' ') is added instead

      //  key plmk.kzeinstell                                       as BOOCharacteristicType, // Indicator for charc. type (setup, inspection)

      @ObjectModel.foreignKey.association: '_BOOCharacteristic'
  key plmk.merknr                                                         as BOOCharacteristic,
  key plmk.zaehl                                                          as BOOCharacteristicVersion,

      // --------------------------------------------------------------------------------------------------------

      // Validity

      // --------------------------------------------------------------------------------------------------------

      @Semantics.businessDate.from: true
      plmk.gueltigab                                                      as ValidityStartDate,
      @Semantics.businessDate.to: true
      plmk.valid_to_on_db                                                 as ValidityEndDate,

      // --------------------------------------------------------------------------------------------------------

      // General Data

      // --------------------------------------------------------------------------------------------------------

      plmk.aendergnr                                                      as ChangeNumber,
      plmk.loekz                                                          as IsDeleted,

      // Reference to inspection method (table QMTB)

      @ObjectModel.foreignKey.association: '_InspectionMethodPlant'
      plmk.qmtb_werks                                                     as InspectionMethodPlant,
      @ObjectModel.foreignKey.association: '_InspectionMethod'
      plmk.pmethode                                                       as InspectionMethod,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_InspMethVersStdVH',
                     element: 'InspectionMethodVersion' },
          additionalBinding: [{ localElement: 'InspectionMethodPlant',
                                element: 'InspectionMethodPlant' },
                              { localElement: 'InspectionMethod',
                                element: 'InspectionMethod' }]
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspectionMethodVersion'
      plmk.pmtversion                                                     as InspectionMethodVersion,

      @ObjectModel.foreignKey.association: '_InspSpecImportanceCode'
      plmk.merkgew                                                        as InspSpecImportanceCode,

      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_InspectorQualificationStdVH',
                     element: 'InspectorQualification' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspectorQualification'
      plmk.pruefquali                                                     as InspectorQualification,

      // Assigned Test Equipment (Item counter for production resources/tools)

      plmk.pzlfh                                                          as BOOOperationPRTInternalID,

      // --- Currently not in select list ---

      //      plmk.probenr,   // partial sample id

      //      plmk.eeantverf  as DefectFractionEstimationProced, // Code for fraction calc. procedure for share estimation

      //      plmk.qergdath,  // Planned Results Data Origin


      // --------------------------------------------------------------------------------------------------------

      //    Reference to Inspection Specification Version (Inspection Characteristic Master, table QPMK)

      // --------------------------------------------------------------------------------------------------------

      @ObjectModel.foreignKey.association: '_InspectionSpecificationPlant'
      plmk.qpmk_zaehl                                                     as InspectionSpecificationPlant,
      @ObjectModel.foreignKey.association: '_InspectionSpecification'
      plmk.verwmerkm                                                      as InspectionSpecification,
      @ObjectModel.foreignKey.association: '_InspSpecificationVersion'
      plmk.mkversion                                                      as InspectionSpecificationVersion,

      @Semantics.booleanIndicator: true
      plmk.qpmk_ref                                                       as BOOCharcHasInspSpecReference,

      // --------------------------------------------------------------------------------------------------------

      // Control indicators

      // --------------------------------------------------------------------------------------------------------

      // STEUERKZ is a string consisting of several flags (characters of length 1) each having an own

      // semantic (Control indicator, see DDIC structure QMKST) which have to are mapped to one single field each

      @ObjectModel.readOnly: true
      plmk.steuerkz                                                       as InspSpecControlIndicators, // Publish structure as a whole


      cast( substring(plmk.steuerkz,1,1) as vdm_qkzqunmk preserving type ) as InspSpecIsQuantitative, // Quantitative-Qualitative

      @ObjectModel.foreignKey.association: '_InspSpecCharcType'
      case substring(plmk.steuerkz,1,1)
        when 'X' then cast ( '1' as vdm_qchar_type_basic ) // = Quantitative

                 else cast ( '2' as vdm_qchar_type_basic ) // = Qualitative

      end                                                                 as InspSpecCharacteristicType,
      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Measured Value Must Be Recorded'
      cast( substring(plmk.steuerkz,2,1) as qkzqumk preserving type )     as InspSpecIsMeasuredValueRqd,    // Measured Value Must Be Recorded

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Characteristic Attribute'
      @EndUserText.quickInfo: 'Reference to Characteristic Attribute Required'
      cast( substring(plmk.steuerkz,3,1) as qkzpkat preserving type )     as InspSpecIsSelectedSetRequired, // Selected set is required

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Upper Specification Limit'
      cast( substring(plmk.steuerkz,4,1) as qkztolob preserving type )    as InspSpecIsUpperLimitRequired,  // Upper Specification Limit Required

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Lower Specification Limit'
      cast( substring(plmk.steuerkz,5,1) as qkztolun preserving type )    as InspSpecIsLowerLimitRequired,  // Lower Specification Limit Required

      @Semantics.booleanIndicator: true
      cast( substring(plmk.steuerkz,6,1) as qkzsollpr preserving type )   as InspSpecIsTargetValueInLimit,  // Check if target value is between lower and upper limit

      @ObjectModel.foreignKey.association: '_InspectionScope'
      cast( substring(plmk.steuerkz,7,1) as qpumfkz preserving type )     as InspectionScope,               // Inspection Scope

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Long-Term Inspection'
      cast( substring(plmk.steuerkz,8,1) as qlzeitkz preserving type )    as InspSpecIsLongTermInspection,  // Long-Term Inspection

      @ObjectModel.foreignKey.association: '_InspSpecRecordingType'
      cast( substring(plmk.steuerkz,9,1) as qestukz preserving type )     as InspSpecRecordingType,         // RecordingType: Values from domain QESTKUZ

      @ObjectModel.foreignKey.association: '_InspResultDocuRequired'
      cast( substring(plmk.steuerkz,10,1) as vdm_qdokukz preserving type ) as InspResultIsDocumentationRqd,  // Documentation Required for Inspection Result: Values from domain QDOKUKZ

      @ObjectModel.foreignKey.association: '_InspSpecCharcCategory'
      cast( substring(plmk.steuerkz,11,1) as vdm_qrzwang preserving type ) as InspSpecCharcCategory,         // Characteristic Category

      @Semantics.booleanIndicator: true
      cast( substring(plmk.steuerkz,13,1) as qaddpro preserving type )    as InspSpecIsSampleQtyAdditive,   // Sample Quantity Is Additive

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Destructive Inspection'
      cast( substring(plmk.steuerkz,14,1) as qkzdestroy preserving type ) as InspSpecIsDestructive,         // Destructive Inspection

      @ObjectModel.foreignKey.association: '_InspSpecRsltCalculation'
      cast( substring(plmk.steuerkz,15,1) as vdm_qkzformel preserving type ) as InspSpecResultCalculation,     // Result Calculation for Characteristics

      @Semantics.booleanIndicator: true
      cast( substring(plmk.steuerkz,16,1) as qstichpr preserving type )   as InspSpecIsSamplingProcedRqd,   // Sampling Procedure Is Required

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Characteristic Is Scrap Relevant'
      @EndUserText.quickInfo: 'Characteristic Is Relevant for Quality Score and Scrap Share'
      cast( substring(plmk.steuerkz,17,1) as qausslos preserving type )   as InspSpecIsScrapRelevant,       // Characteristic Relevant for Quality Score and Scrap Share

      @Semantics.booleanIndicator: true
      cast( substring(plmk.steuerkz,18,1) as qnaendkz preserving type )   as InspSpecHasFixedCtrlIndicators, // Control Indicator fixed

      @Semantics.booleanIndicator: true
      cast( substring(plmk.steuerkz,19,1) as qbfhlzhl preserving type )   as InspSpecIsDefectRecordingRqd, // Defects Recording required

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Assignment of Test Equipment Required'
      cast( substring(plmk.steuerkz,22,1) as qpmzwang preserving type )   as InspSpecIsTestEquipmentRqd, // Assignment of Test Equipment Required

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Automatic Defects Recording'
      cast( substring(plmk.steuerkz,23,1) as qfehlrec preserving type )   as InspSpecIsDefectsRecgAutomatic, // Defects Recording Automatically Called Up

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'Change Documents at Results Recording'
      @EndUserText.quickInfo: 'Create Change Documents During Results Recording'
      cast( substring(plmk.steuerkz,24,1) as qkzaenbel preserving type )  as InspSpecIsChgDocRequired,      // Create Change Documents During Results Recording

      @Semantics.booleanIndicator: true
      @EndUserText.label: 'SPC Characteristic'
      cast( substring(plmk.steuerkz,25,1) as qspcmk preserving type )     as InspSpecIsControlChartUsed,    // SPC Characteristic; Control Chart is Used

      @ObjectModel.foreignKey.association: '_InspSpecPrintControl'
      cast( substring(plmk.steuerkz,26,1) as vdm_qdruck1 preserving type ) as InspSpecPrintControl,          // Print Control


      // --------------------------------------------------------------------------------------------------------

      // Quantitative Data/ Tolerances

      // --------------------------------------------------------------------------------------------------------

      @ObjectModel.foreignKey.association: '_InspToleranceSpecification'
      plmk.toleranzsl                                                     as InspToleranceSpecification,
      plmk.stellen                                                        as InspSpecDecimalPlaces,

      @ObjectModel.foreignKey.association: '_InspSpecUnitOfMeasure'
      @Semantics.unitOfMeasure: true
      plmk.masseinhsw                                                     as InspectionSpecificationUnit,

      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      @DefaultAggregation:#NONE
      plmk.sollwert                                                       as InspSpecTargetValue,
      @Semantics.booleanIndicator: true
      plmk.sollwni                                                        as InspSpecHasTargetValue,

      // Tolerance

      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      @DefaultAggregation:#NONE
      plmk.toleranzob                                                     as InspSpecUpperLimit,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      @DefaultAggregation:#NONE
      plmk.toleranzun                                                     as InspSpecLowerLimit,
      @Semantics.booleanIndicator: true
      plmk.tolobni                                                        as InspSpecHasUpperLimit,
      @Semantics.booleanIndicator: true
      plmk.tolunni                                                        as InspSpecHasLowerLimit,

      // Plausibility

      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.plausioben                                                     as InspSpecUpperPlausibilityLimit,
      @Semantics.booleanIndicator: true
      plmk.plausiobni                                                     as InspSpecHasUprPlausibilityLmt,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.plausiunte                                                     as InspSpecLowerPlausibilityLimit,
      @Semantics.booleanIndicator: true
      plmk.plausiunni                                                     as InspSpecHasLowrPlausibilityLmt,

      // Additional Pairs of Limits

      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.grenzeob1                                                      as InspSpecFirstUpperSpecLimit,
      @Semantics.booleanIndicator: true
      plmk.grenzob1ni                                                     as InspSpecHasFirstUpperSpecLimit,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.grenzeun1                                                      as InspSpecFirstLowerSpecLimit,
      @Semantics.booleanIndicator: true
      plmk.grenzun1ni                                                     as InspSpecHasFirstLowerSpecLimit,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.grenzeob2                                                      as InspSpecSecondUpperSpecLimit,
      @Semantics.booleanIndicator: true
      plmk.grenzob2ni                                                     as InspSpecHasSecondUprSpecLimit,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.grenzeun2                                                      as InspSpecSecondLowerSpecLimit,
      @Semantics.booleanIndicator: true
      plmk.grenzun2ni                                                     as InspSpecHasSecondLowrSpecLimit,

      // Tolerance Change

      // Validity

      cast( plmk.tolerwab as vdm_qtolwab preserving type )                as InspSpecToleranceChgValidFrom,
      cast( plmk.tolerwbis as vdm_qtolwbis preserving type )              as InspSpecToleranceChgValidTo,
      // Spec. Limits

      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      cast( plmk.tolerweiob as vdm_qtolwob preserving type )              as InspSpecUpperSpecLimitChange,
      @Semantics.booleanIndicator: true
      plmk.tolwobni                                                       as InspSpecHasUprSpecLimitChange,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      cast( plmk.tolerweiun as vdm_qtolwun preserving type )              as InspSpecLowerSpecLimitChange,
      @Semantics.booleanIndicator: true
      plmk.tolwunni                                                       as InspSpecHasLowrSpecLimitChange,

      // Classed Recording

      plmk.klasanzahl                                                     as InspSpecNumberOfClasses,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.klasbreite                                                     as InspSpecClassWidthQty,
      @Semantics.booleanIndicator: true
      plmk.klasbrni                                                       as InspSpecHasClassWidth,
      @Semantics.quantity.unitOfMeasure: 'InspectionSpecificationUnit'
      plmk.klasmitte                                                      as InspSpecClassMidpointQty,
      @Semantics.booleanIndicator: true
      plmk.klasmini                                                       as InspSpecHasClassMidpoint,

      @Semantics.booleanIndicator: true
      plmk.formelsl                                                       as InspSpecHasFormula,
      plmk.formel1                                                        as InspSpecFormula1, // formula (if control indicator calculated characteristic is set)

      plmk.formel2                                                        as InspSpecFormula2, // formula (if control indicator calculated characteristic is set)


      // --------------------------------------------------------------------------------------------------------

      //  Cataloges

      // --------------------------------------------------------------------------------------------------------

      // Defect codes for rejection

      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeGroupStdVH',
                     element: 'DefectCodeGroup' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeGrpRejection'
      plmk.codegrqual                                                     as InspSpecDefectCodeGrpRejection,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeStdVH',
                     element: 'DefectCode' },
          additionalBinding: [{ localElement: 'InspSpecDefectCodeGrpRejection',
                                element: 'DefectCodeGroup' }]
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeRejection'
      plmk.codequal                                                       as InspSpecDefectCodeRejection,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeGroupStdVH',
                     element: 'DefectCodeGroup' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeGrpRjcnUpper'
      plmk.codegr9o                                                       as InspSpecDefectCodeGrpRjcnUpper,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeStdVH',
                     element: 'DefectCode' },
          additionalBinding: [{ localElement: 'InspSpecDefectCodeGrpRjcnUpper',
                                element: 'DefectCodeGroup' }]
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeRjcnUpper'
      plmk.code9o                                                         as InspSpecDefectCodeRjcnUpper,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeGroupStdVH',
                     element: 'DefectCodeGroup' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeGrpRjcnLower'
      plmk.codegr9u                                                       as InspSpecDefectCodeGrpRjcnLower,
      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_DefectCodeStdVH',
                     element: 'DefectCode' },
          additionalBinding: [{ localElement: 'InspSpecDefectCodeGrpRjcnLower',
                                element: 'DefectCodeGroup' }]
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_InspDefectCodeRjcnLower'
      plmk.code9u                                                         as InspSpecDefectCodeRjcnLower,

      // --- Currently not in select list ---

      //      plmk.codevr9o  //Code Version Number,

      //      plmk.codevr9u  //Code Version Number,


      // Cataloges

      // see also table QPMZ (Basic View I_AssgmtInspMethInspSpec)

      // For group 1 the following special conditions apply

      //    - katab1     = 'X' for each DB entry

      //    - katalgart1 = '1' for each DB entry

      //    - auswmenge1 is always a SelectedCodeSet

      //    - auswmgwrk1 is always filled

      //1                                                     as InspSpecAdditionalCatalog1,

      //--[ GENERATED:012:GlBfhyFV7kY4haHubE4LDG

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_CharcAttribSeldCodeSetStdVH',
                     element: 'SelectedCodeSet' },
          additionalBinding: [{ localElement: 'SelectedCodeSetPlant',
                                element: 'SelectedCodeSetPlant' }]
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_CharcAttribSelectedCodeSet'
      plmk.auswmenge1                                                     as SelectedCodeSet,
      @ObjectModel.foreignKey.association: '_SelectedCodeSetPlant'
      plmk.auswmgwrk1                                                     as SelectedCodeSetPlant,

      plmk.katalgart2                                                     as InspSpecAdditionalCatalog2,
      case plmk.katab2
        when 'X' then plmk.auswmenge2 else ' '
      end                                                                 as InspSpecAdditionalSelectedSet2,
      case plmk.katab2
        when ' ' then plmk.auswmenge2 else ' '
      end                                                                 as InspSpecAdditionalCodeGroup2,
      plmk.auswmgwrk2                                                     as InspSpecAddlSeldCodeSetPlant2,

      plmk.katalgart3                                                     as InspSpecAdditionalCatalog3,
      case plmk.katab3
        when 'X' then plmk.auswmenge3 else ' '
      end                                                                 as InspSpecAdditionalSelectedSet3,
      case plmk.katab3
        when ' ' then plmk.auswmenge3 else ' '
      end                                                                 as InspSpecAdditionalCodeGroup3,
      plmk.auswmgwrk3                                                     as InspSpecAddlSeldCodeSetPlant3,

      plmk.katalgart4                                                     as InspSpecAdditionalCatalog4,
      case plmk.katab4
        when 'X' then plmk.auswmenge4 else ' '
      end                                                                 as InspSpecAdditionalSelectedSet4,
      case plmk.katab4
        when ' ' then plmk.auswmenge4 else ' '
      end                                                                 as InspSpecAdditionalCodeGroup4,
      plmk.auswmgwrk4                                                     as InspSpecAddlSeldCodeSetPlant4,

      plmk.katalgart5                                                     as InspSpecAdditionalCatalog5,
      case plmk.katab5
        when 'X' then plmk.auswmenge5 else ' '
      end                                                                 as InspSpecAdditionalSelectedSet5,
      case plmk.katab5
        when ' ' then plmk.auswmenge5 else ' '
      end                                                                 as InspSpecAdditionalCodeGroup5,
      plmk.auswmgwrk5                                                     as InspSpecAddlSeldCodeSetPlant5,

      // --- Currently not in select list ---

      //      plmk.katab1,

      //      plmk.auswvers1,

      //      plmk.auswdat1,

      //      plmk.katab2,

      //      plmk.auswvers2,

      //      plmk.auswdat2,

      //      plmk.katab3,

      //      plmk.auswvers3,

      //      plmk.auswdat3,

      //      plmk.katab4,

      //      plmk.auswvers4,

      //      plmk.auswdat4,

      //      plmk.katab5,

      //      plmk.auswvers5,

      //      plmk.auswdat5,


      // --------------------------------------------------------------------------------------------------------

      // Sample Data

      // --------------------------------------------------------------------------------------------------------

      @ObjectModel.foreignKey.association: '_SamplingProcedure'
      plmk.stichprver                                                     as SamplingProcedure,
      @ObjectModel.foreignKey.association: '_SampleUnitOfMeasure'
      @Semantics.unitOfMeasure: true
      plmk.probemgeh                                                      as InspCharacteristicSampleUnit,

      @Semantics.quantity.unitOfMeasure: 'InspCharacteristicSampleUnit'
      @DefaultAggregation:#NONE
      plmk.pruefeinh                                                      as BOOCharcSampleQuantity,

      // --------------------------------------------------------------------------------------------------------

      // Additional Data

      // --------------------------------------------------------------------------------------------------------

      plmk.dummy10                                                        as InspSpecInformationField1,
      plmk.dummy20                                                        as InspSpecInformationField2,
      plmk.dummy40                                                        as InspSpecInformationField3,

      // --------------------------------------------------------------------------------------------------------

      // Texts

      // --------------------------------------------------------------------------------------------------------

      case plmk.qpmk_ref
        when 'X' then _InspSpecificationVersionText.InspectionSpecificationText else plmk.kurztext                                                       
      end                                                                 as InspectionSpecificationText,

      // --- Currently not in select list ---

      // Only 1 language for characteristics longtexts supported

      //      plmk.ltextkz,

      //      plmk.ltextspr,

      //      plmk.ltextekz,

      //      plmk.ltxtentspr,


      // --------------------------------------------------------------------------------------------------------

      // Administrative Data

      // --------------------------------------------------------------------------------------------------------

      @ObjectModel.readOnly: true
      @Semantics.user.createdBy: true
      plmk.ersteller                                                      as CreatedByUser,
      @ObjectModel.readOnly: true
      @Semantics.businessDate.createdAt: true
      plmk.erstelldat                                                     as CreationDate,
      @ObjectModel.readOnly: true
      @Semantics.user.lastChangedBy: true
      plmk.aenderer                                                       as LastChangedByUser,
      @ObjectModel.readOnly: true
      @Semantics.businessDate.lastChangedAt: true
      plmk.aenderdat                                                      as LastChangeDate,

      // --- Currently not in select list ---

      //      plmk.sernv,     // Technical status from, required?

      //      plmk.parkz,     // Indicator: inactive changes, required?


      //      plmk.mkversdat, // Key Date for Version Selection

      //      plmk.fakplanme, // Factor for Converting MatUnitOfMeasure to SampUnitOfMeasure

      //      plmk.fakprobme, // Factor for Converting SampUnitOfMeasure to  MatUnitOfMeasure


      @Semantics.booleanIndicator: true
      cast( substring(plmk.dynkrit,1,1) as qmatkz preserving type )       as MatlIsConsideredForDynModif,
      @Semantics.booleanIndicator: true
      cast( substring(plmk.dynkrit,2,1) as qlifkz preserving type )       as SuplrIsConsideredForDynModif,
      @Semantics.booleanIndicator: true
      cast( substring(plmk.dynkrit,3,1) as qherstkz preserving type )     as MfrIsConsideredForDynModif,
      @Semantics.booleanIndicator: true
      cast( substring(plmk.dynkrit,4,1) as qkundkz preserving type )      as CustIsConsideredForDynModif,
      //

      //      plmk.charact_id1,

      plmk.qdynregel                                                      as InspLotDynamicRule,
      plmk.dynmerkref                                                     as InspCharcDynModifRef,
      //

      plmk.spckrit                                                        as QltyCtrlChartAggrgnCriterion,
      plmk.inpproc                                                        as InspSpecInputProcedure,
      //      plmk.res_plan,

      //      plmk.ctrmeth,

      //      plmk.chaorig,

      //      plmk.chaorig_guid,

      //      plmk.no_inspection,

      plmk.char_relevance                                                 as BOOCharacteristicInspRelevance,
      //      plmk.qp_chaorig_id,

      plmk.chargroup                                                      as BOOCharcGroup,
      plmk.chargroup_cref                                                 as BOOCharcSourceCharc,
      plmk.divisionint                                                    as BOOCharcGroupDivision,
      plmk.versn                                                          as BillOfOperationsVersion,

      // --------------------------------------------------------------------------------------------------------

      // Associations

      // --------------------------------------------------------------------------------------------------------

      _BillOfOperationsType,
      _BillOfOperationsGroup,
      _BOOOperationInternalID,
      _BOOCharacteristic,

      _InspSpecCharcType,
      _InspectionScope,
      _InspSpecRecordingType,
      _InspResultDocuRequired,
      _InspSpecCharcCategory,
      _InspSpecRsltCalculation,
      _InspSpecPrintControl,
      _BOOCharcInspRelevance,
      _InspectorQualification,

      _InspectionMethodPlant,
      _InspectionMethod,
      _InspectionMethodVersion,
      _InspSpecImportanceCode,
      _InspectionSpecificationPlant,
      _InspectionSpecification,
      _InspSpecificationVersion,
      _SelectedCodeSetPlant,

      _SamplingProcedure,
      _SampleUnitOfMeasure,

      _InspToleranceSpecification,
      _InspSpecUnitOfMeasure,

      _InspDefectCodeGrpRejection,
      _InspDefectCodeRejection,
      _InspDefectCodeGrpRjcnUpper,
      _InspDefectCodeRjcnUpper,
      _InspDefectCodeGrpRjcnLower,
      _InspDefectCodeRjcnLower,
      _CharcAttribSelectedCodeSet,
      _InspSpecificationVersionText
}
where
  plmk.kzeinstell = ' '