I_QualityTask

DDL: I_QUALITYTASK Type: view_entity BASIC Package: VDM_QM_NOTIFICATION

Quality Task

I_QualityTask is a Basic CDS View (Dimension) that provides data about "Quality Task" in SAP S/4HANA. It reads from 1 data source (qmsm) and exposes 58 fields with key field QualityTaskInternalId. It has 21 associations to related views. Part of development package VDM_QM_NOTIFICATION.

Data Sources (1)

SourceAliasJoin Type
qmsm qmsm from

Associations (21)

CardinalityTargetAliasCondition
[0..*] I_QltyTaskFllwUpActionParam _QltyTaskFllwUpActionParam $projection.QualityTaskInternalId = _QltyTaskFllwUpActionParam.QualityTaskInternalId
[0..1] I_Defect _Defect $projection.DefectInternalID = _Defect.DefectInternalID
[1..1] I_QltyTaskOrigin _QualityTaskOrigin $projection.QualityTaskOrigin = _QualityTaskOrigin.QualityTaskOrigin
[0..1] I_QltyBPWithUser _QualityTaskProcessor $projection.QualityTaskProcessor = _QualityTaskProcessor.BusinessPartner
[0..1] I_Inspectioncatalog _QualityTaskCodeCatalog $projection.QualityTaskCodeCatalog = _QualityTaskCodeCatalog.InspectionCatalog
[0..1] I_QltyTskCodeGroup _QltyTskCodeGroup $projection.QualityTaskCodeGroup = _QltyTskCodeGroup.QualityTaskCodeGroup
[0..1] I_QltyTskCode _QltyTskCode $projection.QualityTaskCodeGroup = _QltyTskCode.QualityTaskCodeGroup and $projection.QualityTaskCode = _QltyTskCode.QualityTaskCode
[0..1] I_QltyTaskFollowUpAction _QltyTaskFollowUpAction $projection.QltyTaskFollowUpAction = _QltyTaskFollowUpAction.QltyTaskFollowUpAction
[1..1] I_QualityTaskType _QualityTaskType $projection.QualityTaskType = _QualityTaskType.QualityTaskType
[1..1] I_QualityTask _PredecessorQualityTask $projection.PredecessorQltyTaskIntNumber = _PredecessorQualityTask.QualityTaskInternalId
[0..1] I_ProbSolvingProc _ProbSolvingProc $projection.ProbSolvingProc = _ProbSolvingProc.ProbSolvingProc
[0..1] I_ProbSolvingProcStp _ProbSolvingProcStp $projection.ProbSolvingProc = _ProbSolvingProcStp.ProbSolvingProc and $projection.ProbSolvingProcStp = _ProbSolvingProcStp.ProbSolvingProcStp
[0..1] I_ProbSolvingProcCause _ProbSolvingProcCause $projection.ProbSolvingProc = _ProbSolvingProcCause.ProbSolvingProc and $projection.ProbSolvingProcCause = _ProbSolvingProcCause.ProbSolvingProcCause
[0..1] I_UserContactCard _CreatedByUserContactCard $projection.CreatedByUser = _CreatedByUserContactCard.ContactCardID
[0..1] I_UserContactCard _CompletedByUserContactCard $projection.NotifTaskCompletedByUser = _CompletedByUserContactCard.ContactCardID
[0..1] I_UserContactCard _LastChangedByUserContactCard $projection.LastChangedByUser = _LastChangedByUserContactCard.ContactCardID
[1..1] I_QualityTaskStatus _QualityTaskStatus $projection.QualityTaskLifecycleStatus = _QualityTaskStatus.QualityTaskLifecycleStatus
[1..1] I_QltyTaskArchivingStatus _QltyTaskArchivingStatus $projection.QualityTaskArchivingStatus = _QltyTaskArchivingStatus.QualityTaskArchivingStatus
[0..1] I_QltyTaskFllwUpActionSts _QltyTaskFllwUpActionSts $projection.QltyTaskFllwUpActionSts = _QltyTaskFllwUpActionSts.QltyTaskFllwUpActionSts
[0..1] I_UnitOfMeasure _QltyTskProcTimeUnit $projection.QltyTaskTimeBasedEffortUoM = _QltyTskProcTimeUnit.UnitOfMeasure and _QltyTskProcTimeUnit.UnitOfMeasureDimension = 'TIME'
[1..1] E_NotificationTask _Extension $projection.QualityTaskInternalId = _Extension.Notification and _Extension.NotificationTask = '0000'

Annotations (14)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Quality Task view
Analytics.dataCategory #DIMENSION view
Analytics.technicalName IQLTYTSK view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
ObjectModel.modelingPattern #NONE view
ObjectModel.representativeKey QualityTaskInternalId view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #A view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view

Fields (58)

KeyFieldSource TableSource FieldDescription
KEY QualityTaskInternalId
QualityTask
QualityTaskOrigin qmsm taskorigin
QualityTaskType qmsm tasktype
QualityTaskText
IsDeleted qmsm kzloesch
QualityTaskProcessor qmsm processor
MasterLanguage qmsm kzmla
QualityTaskCodeCatalog qmsm mnkat
QualityTaskCodeGroup
QualityTaskCode qmsm mncod
NotifTaskTimeZone qmsm tzonsm
NotifTaskPlannedEndDate
NotifTaskPlannedEndTime
NotifTaskCompletionDate
NotifTaskCompletionTime
NotifTaskResubmissionDate qmsm wdvdat
NotifTaskResubmissionTime qmsm wdvzeit
NotifTaskCompletedByUser
DefectInternalID qmsm defectinternalid
ProbSolvingProc qmsm probsolvingprocess
ProbSolvingProcStp qmsm probsolvingprocessstep
ProbSolvingProcCause qmsm prbobsolvproccause
PredecessorQltyTaskIntNumber qmsm prdcssrqtaskinternalid
QltyTaskFollowUpAction qmsm folgeact
QualityTaskLifecycleStatus qmsm statlcycle
QualityTaskArchivingStatus qmsm statacycle
QltyTaskFllwUpActionSts qmsm statfoa
CreatedByUser qmsm ernam
CreationDate qmsm erdat
CreationTime
ChangedDateTime qmsm changeddatetime
LastChangedByUser qmsm aenam
LastChangeDate qmsm aedat
LastChangeTime
QltyTskProcgIsCtrldByTskOrigin qmsm taskiscontrolledbyorigin
QltyTaskTimeBasedEffort qmsm timebasedeffort
QltyTaskTimeBasedEffortUoM qmsm timebasedeffortuom
_QltyTaskFllwUpActionParam _QltyTaskFllwUpActionParam
_QualityTaskType _QualityTaskType
_Defect _Defect
_QualityTaskOrigin _QualityTaskOrigin
_CreatedByUserContactCard _CreatedByUserContactCard
_CompletedByUserContactCard _CompletedByUserContactCard
_LastChangedByUserContactCard _LastChangedByUserContactCard
_QualityTaskProcessor _QualityTaskProcessor
_QualityTaskStatus _QualityTaskStatus
_QltyTaskArchivingStatus _QltyTaskArchivingStatus
_QltyTaskFollowUpAction _QltyTaskFollowUpAction
_QltyTaskFllwUpActionSts _QltyTaskFllwUpActionSts
_QualityTaskCodeCatalog _QualityTaskCodeCatalog
_QltyTskCodeGroup _QltyTskCodeGroup
_QltyTskCode _QltyTskCode
_ProbSolvingProc _ProbSolvingProc
_ProbSolvingProcStp _ProbSolvingProcStp
_ProbSolvingProcCause _ProbSolvingProcCause
_PredecessorQualityTask _PredecessorQualityTask
_QltyTskProcTimeUnit _QltyTskProcTimeUnit
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED

@EndUserText.label: 'Quality Task'
@Analytics.dataCategory: #DIMENSION
@Analytics.technicalName: 'IQLTYTSK'

@VDM: { 
  viewType: #BASIC,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@ObjectModel.supportedCapabilities: 
    [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION ]
@ObjectModel.modelingPattern: #NONE
@ObjectModel: {
    semanticKey:  [ 'QualityTask' ],
    representativeKey: 'QualityTaskInternalId',
    usageType: {
        dataClass: #TRANSACTIONAL,
        sizeCategory: #L,
        serviceQuality: #A }
} 
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true

/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ]  } */
define view entity I_QualityTask as select from qmsm
//=== BO Aggregations

    association [0..*] to I_QltyTaskFllwUpActionParam as _QltyTaskFllwUpActionParam on $projection.QualityTaskInternalId = _QltyTaskFllwUpActionParam.QualityTaskInternalId

//=== Assocation to QM specific views 

    association [0..1] to I_Defect            as _Defect                        on $projection.DefectInternalID = _Defect.DefectInternalID
    association [1..1] to I_QltyTaskOrigin    as _QualityTaskOrigin             on $projection.QualityTaskOrigin = _QualityTaskOrigin.QualityTaskOrigin     
    association [0..1] to I_QltyBPWithUser    as _QualityTaskProcessor          on $projection.QualityTaskProcessor = _QualityTaskProcessor.BusinessPartner
    association [0..1] to I_Inspectioncatalog as _QualityTaskCodeCatalog        on $projection.QualityTaskCodeCatalog = _QualityTaskCodeCatalog.InspectionCatalog
    association [0..1] to I_QltyTskCodeGroup  as _QltyTskCodeGroup              on $projection.QualityTaskCodeGroup = _QltyTskCodeGroup.QualityTaskCodeGroup
    association [0..1] to I_QltyTskCode       as _QltyTskCode                   on $projection.QualityTaskCodeGroup    = _QltyTskCode.QualityTaskCodeGroup and
                                                                                   $projection.QualityTaskCode         = _QltyTskCode.QualityTaskCode
    association [0..1] to I_QltyTaskFollowUpAction as _QltyTaskFollowUpAction   on $projection.QltyTaskFollowUpAction = _QltyTaskFollowUpAction.QltyTaskFollowUpAction
    association [1..1] to I_QualityTaskType   as _QualityTaskType               on $projection.QualityTaskType = _QualityTaskType.QualityTaskType

    association [1..1] to I_QualityTask       as _PredecessorQualityTask        on $projection.PredecessorQltyTaskIntNumber = _PredecessorQualityTask.QualityTaskInternalId

//=== Problem Solving Process

    association [0..1] to I_ProbSolvingProc      as _ProbSolvingProc            on $projection.ProbSolvingProc      = _ProbSolvingProc.ProbSolvingProc
    association [0..1] to I_ProbSolvingProcStp   as _ProbSolvingProcStp         on $projection.ProbSolvingProc      = _ProbSolvingProcStp.ProbSolvingProc and
                                                                                   $projection.ProbSolvingProcStp   = _ProbSolvingProcStp.ProbSolvingProcStp
    association [0..1] to I_ProbSolvingProcCause as _ProbSolvingProcCause       on $projection.ProbSolvingProc      = _ProbSolvingProcCause.ProbSolvingProc and
                                                                                   $projection.ProbSolvingProcCause = _ProbSolvingProcCause.ProbSolvingProcCause

//=== Contact Card   

    association [0..1] to I_UserContactCard   as _CreatedByUserContactCard      on $projection.CreatedByUser = _CreatedByUserContactCard.ContactCardID
    association [0..1] to I_UserContactCard   as _CompletedByUserContactCard    on $projection.NotifTaskCompletedByUser = _CompletedByUserContactCard.ContactCardID
    association [0..1] to I_UserContactCard   as _LastChangedByUserContactCard  on $projection.LastChangedByUser = _LastChangedByUserContactCard.ContactCardID

//=== Status

    association [1..1] to I_QualityTaskStatus       as _QualityTaskStatus       on $projection.QualityTaskLifecycleStatus = _QualityTaskStatus.QualityTaskLifecycleStatus 
    association [1..1] to I_QltyTaskArchivingStatus as _QltyTaskArchivingStatus on $projection.QualityTaskArchivingStatus = _QltyTaskArchivingStatus.QualityTaskArchivingStatus
    association [0..1] to I_QltyTaskFllwUpActionSts as _QltyTaskFllwUpActionSts on $projection.QltyTaskFllwUpActionSts = _QltyTaskFllwUpActionSts.QltyTaskFllwUpActionSts

////=== Unit

    association [0..1] to I_UnitOfMeasure           as _QltyTskProcTimeUnit     on $projection.QltyTaskTimeBasedEffortUoM      = _QltyTskProcTimeUnit.UnitOfMeasure and
                                                                                   _QltyTskProcTimeUnit.UnitOfMeasureDimension = 'TIME'

//=== Time Zone

    /*association [0..1] to I_TimeZone          as _QaulityTaskTimeZone              on $projection.NotifTaskTimeZone = _QaulityTaskTimeZone.TimeZoneID*/
    
//=== Extension

    association [1..1] to E_NotificationTask       as _Extension               on  $projection.QualityTaskInternalId = _Extension.Notification
                                                                               and _Extension.NotificationTask = '0000'
{
//=== Key Fields

    key cast( qmsm.qmnum as qtaskinternalid preserving type )            as QualityTaskInternalId,
        
        @ObjectModel:{ text.element:  [ 'QualityTaskText' ] }
        cast( substring(qmsm.qmnum,2,11) as qtaskid preserving type )    as QualityTask,
       
//=== Common Fields

        @ObjectModel.foreignKey.association: '_QualityTaskOrigin'
        qmsm.taskorigin             as QualityTaskOrigin,
        @ObjectModel.foreignKey.association: '_QualityTaskType'
        qmsm.tasktype               as QualityTaskType,
        @Semantics.text: true
        cast( qmsm.matxt as vdm_qtaskdesc preserving type )       as QualityTaskText,
        @Semantics.booleanIndicator: true
        qmsm.kzloesch               as IsDeleted,
        @ObjectModel.foreignKey.association: '_QualityTaskProcessor'
        qmsm.processor              as QualityTaskProcessor,
        qmsm.kzmla                  as MasterLanguage,
        
//=== Code

        @ObjectModel.foreignKey.association: '_QualityTaskCodeCatalog'
        qmsm.mnkat                  as QualityTaskCodeCatalog,
        @ObjectModel.foreignKey.association: '_QltyTskCodeGroup'
        cast( qmsm.mngrp as vdm_qtaskcodegrp preserving type )   as QualityTaskCodeGroup,
        @ObjectModel.foreignKey.association: '_QltyTskCode'
        qmsm.mncod                  as QualityTaskCode,       

//== Dates & Times

        //@ObjectModel.foreignKey.association: '_QaulityTaskTimeZone'

        qmsm.tzonsm                                                     as NotifTaskTimeZone,
        cast( qmsm.peter   as vdm_qtaskplannedenddate preserving type ) as NotifTaskPlannedEndDate,
        cast( qmsm.petur   as vdm_qtaskplannedendtime preserving type ) as NotifTaskPlannedEndTime,
        cast( qmsm.erldat  as vdm_qtaskcompletiondate preserving type ) as NotifTaskCompletionDate,
        cast( qmsm.erlzeit as vdm_qtaskcompletiontime preserving type ) as NotifTaskCompletionTime,
        qmsm.wdvdat                                                     as NotifTaskResubmissionDate,
        qmsm.wdvzeit                                                    as NotifTaskResubmissionTime,

        @ObjectModel.foreignKey.association: '_CompletedByUserContactCard'
        cast( qmsm.erlnam as vdm_qtaskcompletedby preserving type ) as NotifTaskCompletedByUser,


//=== Reference Object Fields

        @ObjectModel.foreignKey.association: '_Defect'
        qmsm.defectinternalid       as DefectInternalID,

        @ObjectModel.foreignKey.association: '_ProbSolvingProc'
        qmsm.probsolvingprocess     as ProbSolvingProc,
        @ObjectModel.foreignKey.association: '_ProbSolvingProcStp'
        qmsm.probsolvingprocessstep as ProbSolvingProcStp,
        @ObjectModel.foreignKey.association: '_ProbSolvingProcCause'        
        qmsm.prbobsolvproccause     as ProbSolvingProcCause,

        @ObjectModel.foreignKey.association: '_PredecessorQualityTask'
        qmsm.prdcssrqtaskinternalid as PredecessorQltyTaskIntNumber,
        
//=== Follow-Up Action

        @ObjectModel.foreignKey.association: '_QltyTaskFollowUpAction'
        qmsm.folgeact               as QltyTaskFollowUpAction,

//=== Status fields

        @ObjectModel.foreignKey.association: '_QualityTaskStatus'
        qmsm.statlcycle             as QualityTaskLifecycleStatus,
        @ObjectModel.foreignKey.association: '_QltyTaskArchivingStatus'
        qmsm.statacycle             as QualityTaskArchivingStatus,
        @ObjectModel.foreignKey.association: '_QltyTaskFllwUpActionSts'
        qmsm.statfoa                as QltyTaskFllwUpActionSts,

//=== Administrative Data

        @ObjectModel.foreignKey.association: '_CreatedByUserContactCard'
        qmsm.ernam                  as CreatedByUser,
        @Semantics.systemDate.createdAt: true
        qmsm.erdat                  as CreationDate,
        cast( qmsm.erzeit as vdm_qerstezeit preserving type ) as CreationTime,
        qmsm.changeddatetime        as ChangedDateTime,      
        @ObjectModel.foreignKey.association: '_LastChangedByUserContactCard'
        qmsm.aenam                  as LastChangedByUser,
        @Semantics.systemDate.lastChangedAt: true
        qmsm.aedat                  as LastChangeDate,
        cast( qmsm.aezeit as vdm_qaendezeit preserving type ) as LastChangeTime,
        qmsm.taskiscontrolledbyorigin as QltyTskProcgIsCtrldByTskOrigin,

//====Time Recording for Task

        @Semantics.quantity.unitOfMeasure: 'QltyTaskTimeBasedEffortUoM'
        qmsm.timebasedeffort as QltyTaskTimeBasedEffort,
        @ObjectModel.foreignKey.association: '_QltyTskProcTimeUnit'
        qmsm.timebasedeffortuom as QltyTaskTimeBasedEffortUoM,
 
//=== Expose Associations

        _QltyTaskFllwUpActionParam,
        _QualityTaskType,
        _Defect,
        _QualityTaskOrigin,
        _CreatedByUserContactCard,
        _CompletedByUserContactCard,
        _LastChangedByUserContactCard,
        _QualityTaskProcessor,
        _QualityTaskStatus,
        _QltyTaskArchivingStatus,
        /*_QaulityTaskTimeZone*/
        _QltyTaskFollowUpAction,
        _QltyTaskFllwUpActionSts,
        _QualityTaskCodeCatalog,
        _QltyTskCodeGroup,
        _QltyTskCode,
        
        _ProbSolvingProc,
        _ProbSolvingProcStp,
        _ProbSolvingProcCause,
        
        _PredecessorQualityTask,

        _QltyTskProcTimeUnit

} where qmsm.qmnum like '$%'  // ABAP syntax: CP "$*"

    and qmsm.manum = '0000'