I_DEFECTAFFECTEDOBJECTTP

CDS View

Object Affected by Defect

I_DEFECTAFFECTEDOBJECTTP is a CDS View in S/4HANA. Object Affected by Defect. It contains 17 fields. 2 CDS views read from this table.

CDS Views using this table (2)

ViewTypeJoinVDMDescription
C_DefectAffectedObjectFDP view from CONSUMPTION FDP view for QM Defect Affected Object
C_DefectRecordAffectedObject view from CONSUMPTION Object Affected by Defect

Fields (17)

KeyField CDS FieldsUsed in Views
KEY DefectAffectedObject DefectAffectedObject 2
KEY DefectInternalID DefectInternalID 2
_DefectAffcdObjQuantityUnit _DefectAffcdObjQuantityUnit 1
_QltyTaskFllwUpActionSts _QltyTaskFllwUpActionSts 1
_QltyTaskFollowUpAction _QltyTaskFollowUpAction 1
Batch Batch 2
Defect Defect 1
DefectAffcdObjIsDefective DefectAffcdObjIsDefective 2
DefectAffcdObjQuantityUnit DefectAffcdObjQuantityUnit 2
DefectAffectedObjectQuantity DefectAffectedObjectQuantity 2
DefectAffectedObjectType DefectAffectedObjectType 2
Material Material 2
QltyTaskFllwUpActionSts QltyTaskFllwUpActionSts 2
QltyTaskFollowUpAction QltyTaskFollowUpAction 2
QltyTskFllwUpActnSimlnRslt QltyTskFllwUpActnSimlnRslt 1
QualityTask QualityTask 2
QualityTaskInternalId QualityTaskInternalId 1
@AbapCatalog.sqlViewName: 'IDEFAFFCDOBJTP'
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter:true

@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Object Affected by Defect'

@VDM: {
    viewType: #TRANSACTIONAL,
    lifecycle.contract.type: #SAP_INTERNAL_API
}

@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.privilegedAssociations:  [ '_DefectAffectedObjLastTask' ]

@ObjectModel: {
    usageType: {
        dataClass: #TRANSACTIONAL,
        sizeCategory: #M,
        serviceQuality: #C },
    representativeKey: 'DefectAffectedObject',
    semanticKey:  [ 'Defect', 'DefectAffectedObject' ],

// Begin Draft

    createEnabled: true,
    updateEnabled: true,
    deleteEnabled: true,

    writeDraftPersistence: 'QMFE_AFFCDOBJ_D',
    writeActivePersistence: 'V_QMFEACDOBJ_B2A'
// End Draft

}

define view I_DefectAffectedObjectTP as select from I_DefectAffectedObject as _DefectAffectedObject

  association [1..1] to I_Defect_TP      as _Defect                    on $projection.DefectInternalID = _Defect.DefectInternalID
  association [0..1] to I_DefectAffectedObjLastTask as _DefectAffectedObjLastTask 
                                                    on  $projection.DefectInternalID     = _DefectAffectedObjLastTask.DefectInternalID
                                                    and $projection.DefectAffectedObject = _DefectAffectedObjLastTask.DefectAffectedObject
  
  association [0..1] to I_QltyTskFllwUpActnSimlnRslt as _QltyTskFllwUpActnSimlnRslt on $projection.QltyTskFllwUpActnSimlnRslt = _QltyTskFllwUpActnSimlnRslt.QltyTskFllwUpActnSimlnRslt                                               
                                                    
  // Extension

  association [1..1] to E_DefectAffectedObject as _Extension           on $projection.DefectInternalID = _Extension.Notification
                                                                      and _Extension.NotificationItem = '0000'
                                                                      and $projection.DefectAffectedObject = _Extension.DefectAffectedObject

{
      @ObjectModel.foreignKey.association: '_Defect'
      @ObjectModel.readOnly: true
  key _DefectAffectedObject.DefectInternalID,
      @ObjectModel.readOnly: true
  key _DefectAffectedObject.DefectAffectedObject,
  
      // Use external Defect Id as part of the semantic key

      @ObjectModel.readOnly: true
      Defect,
  
      @ObjectModel.readOnly: true  
      _DefectAffectedObject.DefectAffectedObjectType,
      
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      _DefectAffectedObject.Material,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      _DefectAffectedObject.DefectAffectedObjectQuantity,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      _DefectAffectedObject.DefectAffcdObjQuantityUnit,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      _DefectAffectedObject.Batch,

      @ObjectModel.readOnly: true
      _DefectAffectedObjLastTask.QltyTaskFollowUpAction,
      @ObjectModel.readOnly: true
      _DefectAffectedObjLastTask.QltyTaskFllwUpActionSts,
      @ObjectModel.readOnly: true
      _DefectAffectedObjLastTask.QualityTaskInternalId,
      @ObjectModel.readOnly: true
      _DefectAffectedObjLastTask.QualityTask,
      @ObjectModel.readOnly: true
      @ObjectModel.foreignKey.association: '_QltyTskFllwUpActnSimlnRslt'
      cast( '   ' as qtskfoasimres preserving type ) as QltyTskFllwUpActnSimlnRslt,
      
      @Semantics.booleanIndicator: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      case DefectAffectedObjectType
        when '01' 
          then
            case when Material is not initial and Material = _Defect.Material and Batch = _Defect.Batch
              then cast( 'X' as qfaffcdobjisdefective preserving type )
              else cast( ' ' as qfaffcdobjisdefective preserving type )
            end
          else cast( ' ' as qfaffcdobjisdefective preserving type )
      end                                                                    as DefectAffcdObjIsDefective,

      // Associations

      // Compositions

      @ObjectModel.association.type:  [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
      _Defect,

      _DefectAffectedObjLastTask,
      _QltyTskFllwUpActnSimlnRslt,

      _DefectAffectedObject._DefectAffcdObjQuantityUnit,
      _DefectAffectedObject._Product,
      
      _DefectAffectedObjLastTask._QltyTaskFllwUpActionSts,
      _DefectAffectedObjLastTask._QltyTaskFollowUpAction
      
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_DEFECTAFFECTEDOBJECT",
"I_DEFECTAFFECTEDOBJLASTTASK",
"I_DEFECT_TP"
],
"ASSOCIATED":
[
"E_DEFECTAFFECTEDOBJECT",
"I_DEFECTAFFECTEDOBJLASTTASK",
"I_DEFECT_TP",
"I_PRODUCT",
"I_QLTYTASKFLLWUPACTIONSTS",
"I_QLTYTASKFOLLOWUPACTION",
"I_QLTYTSKFLLWUPACTNSIMLNRSLT",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_DEFECTAFFECTEDOBJECT",
"I_DEFECTAFFECTEDOBJLASTTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/