@AbapCatalog.sqlViewName: 'IQLTYTSK'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Quality Task'
@ClientHandling.algorithm: #SESSION_VARIABLE
@Analytics.dataCategory: #DIMENSION
@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
define view 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,
case qmsm.changeddatetime
when 0 then cast( '19000101010101' as tzntstmps )
else qmsm.changeddatetime end 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'
@Semantics.unitOfMeasure: true
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'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"QMSM"
],
"ASSOCIATED":
[
"E_NOTIFICATIONTASK",
"I_DEFECT",
"I_INSPECTIONCATALOG",
"I_PROBSOLVINGPROC",
"I_PROBSOLVINGPROCCAUSE",
"I_PROBSOLVINGPROCSTP",
"I_QLTYBPWITHUSER",
"I_QLTYTASKARCHIVINGSTATUS",
"I_QLTYTASKFLLWUPACTIONPARAM",
"I_QLTYTASKFLLWUPACTIONSTS",
"I_QLTYTASKFOLLOWUPACTION",
"I_QLTYTASKORIGIN",
"I_QLTYTSKCODE",
"I_QLTYTSKCODEGROUP",
"I_QUALITYTASKSTATUS",
"I_QUALITYTASKTYPE",
"I_UNITOFMEASURE",
"I_USERCONTACTCARD"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/