@AbapCatalog: {
sqlViewName: 'IQLTYTSKTP',
compiler.compareFilter: true,
preserveKey: true
}
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM: {
viewType: #TRANSACTIONAL,
lifecycle.contract.type: #SAP_INTERNAL_API
}
@EndUserText.label: 'Quality Task'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: [ 'QualityTask' ],
representativeKey: 'QualityTaskInternalId',
usageType: {
dataClass: #TRANSACTIONAL,
sizeCategory: #L,
serviceQuality: #A },
sapObjectNodeType.name: 'QualityTask',
// Begin Draft 2.0
compositionRoot: true,
createEnabled: true,
updateEnabled: 'EXTERNAL_CALCULATION',
deleteEnabled: true,
transactionalProcessingEnabled: true,
draftEnabled: true,
writeDraftPersistence: 'QTASK_D',
writeActivePersistence: 'V_QTSK_DR2ACT',
entityChangeStateId: 'ChangedDateTime',
lifecycle.enqueue: {
expiryBehavior: #RELATIVE_TO_LAST_CHANGE, // Default #RELATIVE_TO_LAST_CHANGE
expiryInterval: 'PT15M' // Default 'PT15M'
},
lifecycle.processing: {
expiryBehavior: #RELATIVE_TO_LAST_CHANGE, // Default #RELATIVE_TO_LAST_CHANGE
expiryInterval: 'PT30M' // Default 'PT30M'
}
}
define view I_QualityTaskTP as select from I_QualityTask
left outer to one join I_NotifTskTmeStampsInLoclTmeZn
on I_NotifTskTmeStampsInLoclTmeZn.Notification = I_QualityTask.QualityTaskInternalId
and I_NotifTskTmeStampsInLoclTmeZn.NotificationTask = '0000'
//=== Child Nodes
association[1..*] to I_QualityTaskLongTextTP as _QualityTaskLongTextTP on $projection.QualityTaskInternalId = _QualityTaskLongTextTP.QualityTaskInternalId
association[0..*] to I_QltyTaskFllwUpActionParamTP as _QltyTaskFllwUpActionParamTP on $projection.QualityTaskInternalId = _QltyTaskFllwUpActionParamTP.QualityTaskInternalId
//=== Specialized BO Associations
association[0..*] to I_QltyTaskFllwUpActionParamTP as _QltyTskProcFllwActnTblParam on $projection.QualityTaskInternalId = _QltyTskProcFllwActnTblParam.QualityTaskInternalId
and _QltyTskProcFllwActnTblParam.ItemCounter >=2
association[0..*] to I_QualityTaskLongTextTP as _QltyTaskDetailedDesc on $projection.QualityTaskInternalId = _QltyTaskDetailedDesc.QualityTaskInternalId
and _QltyTaskDetailedDesc.LongTextID = 'LTXT' // IF_I_TASK_DRAFT_UTIL=>CC_LT_DETAILED_DESC
association[0..*] to I_QualityTaskLongTextTP as _QltyTaskProcessorNote on $projection.QualityTaskInternalId = _QltyTaskProcessorNote.QualityTaskInternalId
and _QltyTaskProcessorNote.LongTextID = 'LTPN' // IF_I_TASK_DRAFT_UTIL=>CC_LT_PROCESSOR_NOTE
//=== Assocation to QM specific views
association [0..1] to I_Defect_TP as _Defect_TP on $projection.DefectInternalID = _Defect_TP.DefectInternalID
association [0..1] to I_ProbSolvingProcTP as _ProbSolvingProcTP on $projection.ProbSolvingProc = _ProbSolvingProcTP.ProbSolvingProc
association [0..1] to I_ProbSolvingProcStpTP as _ProbSolvingProcStpTP on $projection.ProbSolvingProc = _ProbSolvingProcStpTP.ProbSolvingProc and
$projection.ProbSolvingProcStp = _ProbSolvingProcStpTP.ProbSolvingProcStp
association [0..1] to I_ProbSolvingProcCauseTP as _ProbSolvingProcCauseTP on $projection.ProbSolvingProc = _ProbSolvingProcCauseTP.ProbSolvingProc and
$projection.ProbSolvingProcCause = _ProbSolvingProcCauseTP.ProbSolvingProcCause
////=== Unit
// association [0..1] to I_UnitOfMeasure as _QltyTskProcTimeUnit on $projection.QltyTaskTimeBasedEffortUoM = _QltyTskProcTimeUnit.UnitOfMeasure and
// _QltyTskProcTimeUnit.UnitOfMeasureDimension = 'TIME'
//=== Extension
association [1..1] to E_NotificationTask as _Extension on $projection.QualityTaskInternalId = _Extension.Notification
and _Extension.NotificationTask = '0000'
{
//=== Key Fields
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
key I_QualityTask.QualityTaskInternalId,
//=== Common Fields
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTask,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskOrigin,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskText,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.IsDeleted,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskProcessor,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.MasterLanguage,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.NotifTaskCompletedByUser,
//@ObjectModel.readOnly: true
I_QualityTask.QualityTaskType as QualityTaskType,
//=== Code
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskCodeCatalog,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskCodeGroup,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskCode,
//=== Time Zone dependend fields
@ObjectModel.readOnly: true
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskTimeZone,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskPlannedEndDate,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskPlannedEndTime,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskCompletionDate,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskCompletionTime,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskResubmissionDate,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_NotifTskTmeStampsInLoclTmeZn.NotifTaskResubmissionTime,
//=== Reference Object Fields
@ObjectModel.foreignKey.association: '_Defect_TP'
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.DefectInternalID,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.PredecessorQltyTaskIntNumber,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@ObjectModel.foreignKey.association: '_ProbSolvingProcTP'
I_QualityTask.ProbSolvingProc,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@ObjectModel.foreignKey.association: '_ProbSolvingProcStpTP'
I_QualityTask.ProbSolvingProcStp,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@ObjectModel.foreignKey.association: '_ProbSolvingProcCauseTP'
I_QualityTask.ProbSolvingProcCause,
//=== Follow-Up Action
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QltyTaskFollowUpAction,
@ObjectModel.readOnly: true
-- 'transient' field
cast( '' as qtskfollowupactionconfig) as QltyTskFllwUpActnConfignVal,
//=== Status
@ObjectModel.readOnly: true
I_QualityTask.QualityTaskLifecycleStatus,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QualityTaskArchivingStatus,
@ObjectModel.readOnly: true
I_QualityTask.QltyTaskFllwUpActionSts,
//=== Administrative Data
@ObjectModel.readOnly: true
I_QualityTask.CreatedByUser,
@ObjectModel.readOnly: true
I_NotifTskTmeStampsInLoclTmeZn.CreationDate,
@ObjectModel.readOnly: true
I_NotifTskTmeStampsInLoclTmeZn.CreationTime,
@ObjectModel.readOnly: true
I_QualityTask.ChangedDateTime,
@ObjectModel.readOnly: true
I_NotifTskTmeStampsInLoclTmeZn.LastChangeDate,
@ObjectModel.readOnly: true
I_NotifTskTmeStampsInLoclTmeZn.LastChangeTime,
@ObjectModel.readOnly: true
I_QualityTask.LastChangedByUser,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QltyTskProcgIsCtrldByTskOrigin,
//====Time Recording for Task
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QltyTaskTimeBasedEffort, // as QltyTaskTimeBasedEffort,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
I_QualityTask.QltyTaskTimeBasedEffortUoM, // as QltyTaskTimeBasedEffortUoM,
//=== Expose Associations
I_QualityTask._QualityTaskType,
_Defect_TP,
I_QualityTask._QualityTaskOrigin,
I_QualityTask._CreatedByUserContactCard,
I_QualityTask._CompletedByUserContactCard,
I_QualityTask._LastChangedByUserContactCard,
I_QualityTask._QualityTaskProcessor,
I_QualityTask._QualityTaskStatus,
I_QualityTask._QltyTaskArchivingStatus,
I_NotifTskTmeStampsInLoclTmeZn._QaulityTaskTimeZone,
I_QualityTask._QltyTaskFollowUpAction,
I_QualityTask._QltyTaskFllwUpActionSts,
I_QualityTask._QltyTskCodeGroup,
I_QualityTask._QltyTskCode,
I_QualityTask._PredecessorQualityTask,
I_QualityTask._QltyTskProcTimeUnit,
_ProbSolvingProcTP,
_ProbSolvingProcStpTP,
_ProbSolvingProcCauseTP,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_QualityTaskLongTextTP,
// Specialization for different types of long text
_QltyTaskDetailedDesc,
_QltyTaskProcessorNote,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_QltyTaskFllwUpActionParamTP,
// Specialized BO Associations
_QltyTskProcFllwActnTblParam
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_NOTIFTSKTMESTAMPSINLOCLTMEZN",
"I_QUALITYTASK"
],
"ASSOCIATED":
[
"E_NOTIFICATIONTASK",
"I_DEFECT_TP",
"I_PROBSOLVINGPROCCAUSETP",
"I_PROBSOLVINGPROCSTPTP",
"I_PROBSOLVINGPROCTP",
"I_QLTYBPWITHUSER",
"I_QLTYTASKARCHIVINGSTATUS",
"I_QLTYTASKFLLWUPACTIONPARAMTP",
"I_QLTYTASKFLLWUPACTIONSTS",
"I_QLTYTASKFOLLOWUPACTION",
"I_QLTYTASKORIGIN",
"I_QLTYTSKCODE",
"I_QLTYTSKCODEGROUP",
"I_QUALITYTASK",
"I_QUALITYTASKLONGTEXTTP",
"I_QUALITYTASKSTATUS",
"I_QUALITYTASKTYPE",
"I_TIMEZONE",
"I_UNITOFMEASURE",
"I_USERCONTACTCARD"
],
"BASE":
[
"I_NOTIFTSKTMESTAMPSINLOCLTMEZN",
"I_QUALITYTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/