I_DefectAffectedObjectTP

DDL: I_DEFECTAFFECTEDOBJECTTP SQL: IDEFAFFCDOBJTP Type: view TRANSACTIONAL

Object Affected by Defect

I_DefectAffectedObjectTP is a Transactional CDS View that provides data about "Object Affected by Defect" in SAP S/4HANA. It reads from 1 data source (I_DefectAffectedObject) and exposes 20 fields with key fields DefectInternalID, DefectAffectedObject. It has 4 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_DefectAffectedObject _DefectAffectedObject from

Associations (4)

CardinalityTargetAliasCondition
[1..1] I_Defect_TP _Defect $projection.DefectInternalID = _Defect.DefectInternalID
[0..1] I_DefectAffectedObjLastTask _DefectAffectedObjLastTask $projection.DefectInternalID = _DefectAffectedObjLastTask.DefectInternalID and $projection.DefectAffectedObject = _DefectAffectedObjLastTask.DefectAffectedObject
[0..1] I_QltyTskFllwUpActnSimlnRslt _QltyTskFllwUpActnSimlnRslt $projection.QltyTskFllwUpActnSimlnRslt = _QltyTskFllwUpActnSimlnRslt.QltyTskFllwUpActnSimlnRslt
[1..1] E_DefectAffectedObject _Extension $projection.DefectInternalID = _Extension.Notification and _Extension.NotificationItem = '0000' and $projection.DefectAffectedObject = _Extension.DefectAffectedObject

Annotations (17)

NameValueLevelField
AbapCatalog.sqlViewName IDEFAFFCDOBJTP view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Object Affected by Defect view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
AccessControl.authorizationCheck #MANDATORY view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.representativeKey DefectAffectedObject view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.writeDraftPersistence QMFE_AFFCDOBJ_D view
ObjectModel.writeActivePersistence V_QMFEACDOBJ_B2A view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY DefectInternalID I_DefectAffectedObject DefectInternalID
KEY DefectAffectedObject I_DefectAffectedObject DefectAffectedObject
Defect Defect
DefectAffectedObjectType I_DefectAffectedObject DefectAffectedObjectType
Material I_DefectAffectedObject Material
DefectAffectedObjectQuantity I_DefectAffectedObject DefectAffectedObjectQuantity
DefectAffcdObjQuantityUnit I_DefectAffectedObject DefectAffcdObjQuantityUnit
Batch I_DefectAffectedObject Batch
QltyTaskFollowUpAction _DefectAffectedObjLastTask QltyTaskFollowUpAction
QltyTaskFllwUpActionSts _DefectAffectedObjLastTask QltyTaskFllwUpActionSts
QualityTaskInternalId _DefectAffectedObjLastTask QualityTaskInternalId
QualityTask _DefectAffectedObjLastTask QualityTask
QltyTskFllwUpActnSimlnRslt
_Defect _Defect
_DefectAffectedObjLastTask _DefectAffectedObjLastTask
_QltyTskFllwUpActnSimlnRslt _QltyTskFllwUpActnSimlnRslt
_DefectAffcdObjQuantityUnit I_DefectAffectedObject _DefectAffcdObjQuantityUnit
_Product I_DefectAffectedObject _Product
_QltyTaskFllwUpActionSts _DefectAffectedObjLastTask _QltyTaskFllwUpActionSts
_QltyTaskFollowUpAction _DefectAffectedObjLastTask _QltyTaskFollowUpAction
@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
      
}