R_DefectAffectedObjectTP

DDL: R_DEFECTAFFECTEDOBJECTTP Type: view_entity TRANSACTIONAL Package: VDM_QM_NOTIFICATION

Object Affected by Defect

R_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 16 fields with key fields DefectInternalID, DefectAffectedObject. It has 3 associations to related views. Part of development package VDM_QM_NOTIFICATION.

Data Sources (1)

SourceAliasJoin Type
I_DefectAffectedObject _DefectAffectedObject from

Associations (3)

CardinalityTargetAliasCondition
[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 (9)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Object Affected by Defect view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.representativeKey DefectAffectedObject view
Metadata.ignorePropagatedAnnotations true view

Fields (16)

KeyFieldSource TableSource FieldDescription
KEY DefectInternalID I_DefectAffectedObject DefectInternalID
KEY DefectAffectedObject I_DefectAffectedObject DefectAffectedObject
Defect I_DefectAffectedObject 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
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.privilegedAssociations:  [ '_DefectAffectedObjLastTask' ]
@EndUserText.label: 'Object Affected by Defect'
@VDM: {
    viewType: #TRANSACTIONAL,
    lifecycle.contract.type: #SAP_INTERNAL_API
}

@ObjectModel: {
    usageType: {
        dataClass: #TRANSACTIONAL,
        sizeCategory: #M,
        serviceQuality: #C },
    representativeKey: 'DefectAffectedObject',
    semanticKey:  [ 'Defect', 'DefectAffectedObject' ]
}
@Metadata.ignorePropagatedAnnotations: true // Block inheritance of annotation which are not allowed here; add required from underlying views explicitly


define view entity R_DefectAffectedObjectTP as select from I_DefectAffectedObject as _DefectAffectedObject

  association to parent R_DefectTP  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'
  key _DefectAffectedObject.DefectInternalID,
  key _DefectAffectedObject.DefectAffectedObject,
  
      // Use external Defect Id as part of the semantic key

      _DefectAffectedObject.Defect,
  
      _DefectAffectedObject.DefectAffectedObjectType,
      
      _DefectAffectedObject.Material,
      @Semantics.quantity.unitOfMeasure: 'DefectAffcdObjQuantityUnit'
      _DefectAffectedObject.DefectAffectedObjectQuantity,
      _DefectAffectedObject.DefectAffcdObjQuantityUnit,
      _DefectAffectedObject.Batch,

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

      // Associations

      // Compositions

      _Defect,
      
      _DefectAffectedObjLastTask,
      _QltyTskFllwUpActnSimlnRslt
      
}