@AbapCatalog.sqlViewName: 'CCHGRECREFMRC'
@EndUserText.label: 'Change Record Object Page Master Recipe'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L}
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel: {
semanticKey: ['BillOfOperationsType','BillOfOperationsGroup','BillOfOperationsVariant', 'BillOfOperationsMaterial', 'BillOfOperationsPlant', 'BillOfOperationsVersion', 'BillOfOperationsProfile'],
createEnabled: true,
deleteEnabled: 'EXTERNAL_CALCULATION',
updateEnabled,
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'Master Recipe',
typeNamePlural: 'Master Recipes',
imageUrl: 'ChangeRecordRefObjIcon',
title:{value:'BillOfOperationsDesc'}
}
@UI.presentationVariant.requestAtLeast: ['ChangeRecordType', 'ChangeRecordLifecycleStatus' ] //, 'ChangeRecordReferenceType' ]
define view C_ChangeRecordObjPgMasterRcp
as select from I_ChgRecdRefMasterRecipeTP as ChangeRecordReferenceMRCTP
association [1..1] to C_ChangeRecordItemRelMstrRcpVH as _ChangeRecordItemRelVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelVH.ChangeRecordType
// and (
// C_CHANGERECORDOBJPGMASTERRCP_ChangeRecordItemRelVH.ChangeRecordReferenceType = ' '
// or $projection.ChangeRecordReferenceType = _ChangeRecordItemRelVH.ChangeRecordReferenceType
// )
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
association [1..1] to C_ChangeRecordMasterRcpVH as _MasterRcpVH on $projection.BillOfOperationsType = _MasterRcpVH.BillOfOperationsType
and $projection.BillOfOperationsGroup = _MasterRcpVH.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _MasterRcpVH.BillOfOperationsVariant
association [1..1] to C_ChgRecordItemProcgStatusVH as _ProcessingStatusVH on $projection.ChangeRecordItemProcgStatus = _ProcessingStatusVH.ChgRecdNextItemProcgStatus
and $projection.ChgRecdCurrentItemProcgStatus = _ProcessingStatusVH.ChgRecdCurrentItemProcgStatus
and $projection.ChangeRecordLifecycleStatus = _ProcessingStatusVH.ChangeRecordLifecycleStatus
association [0..*] to I_ChgRecdItemProcgStatusText as _ProcessingStatusTxt on $projection.ChangeRecordItemProcgStatus = _ProcessingStatusTxt.ChangeRecordItemProcgStatus
association [1..1] to I_BillOfOperations as _BillOfOperations on $projection.BillOfOperationsType = _BillOfOperations.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperations.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperations.BillOfOperationsVariant
association [1..*] to C_ChangeRecordMasterRcpMatVH as _MasterRcpMatVH on $projection.BillOfOperationsType = _MasterRcpMatVH.BillOfOperationsType
and $projection.BillOfOperationsGroup = _MasterRcpMatVH.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _MasterRcpMatVH.BillOfOperationsVariant
association [0..*] to I_ChangeRecordRefObjIcons as _ChangeRecordRefObjIcons on $projection.ChangeRecordUUID = _ChangeRecordRefObjIcons.ChangeRecordUUID
and $projection.ChangeRecordReferenceType = _ChangeRecordRefObjIcons.ChangeRecordReferenceType
association [0..*] to C_ChangeRecdDigSignStatusVH as _DigSignStatusText on $projection.ChgRecdItmDSgntr = _DigSignStatusText.ChgRecdDigitalSignatureStatus
//association [0..1] to I_ChangeRecdRefMasterRcpPrflVH as _MasterRcpPrflVH on $projection.BillOfOperationsProfile = _MasterRcpPrflVH.BillOfOperationsProfile
{
@UI.hidden: true
@ObjectModel.readOnly: true
key ChangeRecordReferenceUUID,
@UI.hidden: true
@UI.lineItem:[
{ position:5,
importance:#HIGH }
]
@UI.identification: {position: 5, importance: #HIGH}
@Semantics.imageUrl: true
@ObjectModel.readOnly: true
@EndUserText.label: 'Icon'
_ChangeRecordRefObjIcons[ChangeRecordType = ChangeRecordType].ChangeRecordRefObjIcon as ChangeRecordRefObjIcon,
@UI.lineItem:[{
position:10,
label: 'Recipe Group',
importance:#HIGH }
]
@UI.identification: {position: 10, importance: #HIGH}
@Consumption.valueHelpDefinition: [
{ entity: {name: 'C_ChangeRecordMasterRcpVH',
element: 'BillOfOperationsGroup'},
additionalBinding: [{ localElement: 'BillOfOperationsVariant', element: 'BillOfOperationsVariant' }],
label: 'Recipe Group'
},
{ entity: {name: 'C_ChangeRecordMasterRcpMatVH',
element: 'BillOfOperationsGroup'},
additionalBinding: [{ localElement: 'BillOfOperationsVariant', element: 'BillOfOperationsVariant' },
{ localElement: 'BillOfOperationsMaterial', element: 'Material' },
{ localElement: 'BillOfOperationsPlant', element: 'Plant'},
{ localElement: 'BillOfOperationsVersion', element: 'ProductionVersion'},
{ localElement: 'BillOfOperationsProfile', element: 'BillOfOperationsProfile'} ],
label: 'Recipe Group by Material',
qualifier: 'SecondaryValueHelp'
}
]
@ObjectModel.text.element: [ 'BillOfOperationsDesc' ]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
cast(ChangeRecordReferenceMRCTP.BillOfOperationsGroup as r_plnnr preserving type) as BillOfOperationsGroup,
@UI.hidden: true
@ObjectModel.readOnly: true
_BillOfOperations._BillOfOperationsChangeState[1: ValidityStartDate <= $session.system_date and ValidityEndDate >= $session.system_date].BillOfOperationsDesc,
@UI.hidden: true
ChangeRecordReferenceMRCTP.BillOfOperationsType as BillOfOperationsType,
@UI.lineItem:[{
position:25,
label: 'Recipe ',
importance:#HIGH }
]
@UI.identification: [{position: 30, importance: #HIGH }]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
cast(ChangeRecordReferenceMRCTP.BillOfOperationsVariant as r_plnal preserving type) as BillOfOperationsVariant,
@UI.lineItem:[{
position:35,
label: 'Material ',
importance:#HIGH }
]
@UI.identification: {position: 50, importance: #HIGH }
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_MaterialStdVH', element: 'Material' }}]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
ChangeRecordReferenceMRCTP.BillOfOperationsMaterial as BillOfOperationsMaterial,
@UI.lineItem:[{
position:45,
label: 'Plant ',
importance:#HIGH }
]
@UI.identification: [{position: 70, importance: #HIGH }]
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_PlantStdVH', element: 'Plant' }}]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
ChangeRecordReferenceMRCTP.BillOfOperationsPlant as BillOfOperationsPlant,
@UI.lineItem:[{
position:55,
label: 'Prod. Versions ',
importance:#HIGH }
]
@UI.identification: [{position: 90, importance: #HIGH }]
@Consumption.valueHelpDefinition: [{entity: {name: 'I_ProductionVersionStdVH',element: 'ProductionVersion'},
additionalBinding: [{ localElement: 'BillOfOperationsMaterial', element: 'Material' },
{ localElement: 'BillOfOperationsPlant', element: 'Plant'}] }]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
ChangeRecordReferenceMRCTP.BillOfOperationsVersion as BillOfOperationsVersion,
@UI.lineItem:[{
position:65,
label: 'Profile ',
importance:#HIGH }
]
@UI.identification: [{position: 110, importance: #HIGH }]
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_ChgRecdRefMstrRcpPrflVH', element: 'BillOfOperationsProfile' }}]
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
ChangeRecordReferenceMRCTP.BillOfOperationsProfile as BillOfOperationsProfile,
@UI.lineItem:[ {position: 85, importance:#MEDIUM } ]
@UI.identification: [{position: 140, importance: #MEDIUM }]
@EndUserText.label: 'Processing Status'
@Consumption.valueHelpDefinition: [{association: '_ProcessingStatusVH'}]
@ObjectModel.foreignKey.association: '_ProcessingStatusVH'
@UI.textArrangement: #TEXT_FIRST
ChangeRecordItemProcgStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
ChgRecdCurrentItemProcgStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordType as ChangeRecordType,
@UI.hidden: true
ChangeRecordUUID,
@UI.hidden: true
ChangeRecordReferenceType,
@UI.hidden: true
ParentChangeRecordRefUUID,
@UI.hidden: true
@ObjectModel.readOnly: true
ChangeRecordStatus,
@UI.lineItem:[{
position:75,
importance:#MEDIUM }
]
@UI.identification: {position:120, importance: #MEDIUM}
@ObjectModel.foreignKey.association: '_ChangeRecordItemRelVH'
@Consumption.valueHelp: '_ChangeRecordItemRelVH'
@ObjectModel.mandatory: true
@UI.textArrangement: #TEXT_ONLY
ChangeRecordItemRelevance,
@UI.lineItem:[{position:55,importance:#MEDIUM }]
@UI.identification: {position: 55, importance: #MEDIUM}
@ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
ChangeNumber,
@ObjectModel.readOnly:true
@UI.hidden: true
_ChangeRecordObjPg.ChgRecdItemProcgStatusIsEnbld,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordLifecycleStatus as ChangeRecordLifecycleStatus,
// @UI.hidden: true
// @ObjectModel.readOnly: true
// _ChangeRecordObjPg.ChangeRecordItemIsNotEditable,
// @UI.hidden: true
// @ObjectModel.readOnly: true
//
// _ChangeRecordObjPg.ChangeRecordItmIsAddDelEnabled,
@UI.hidden: true
ChangeRecordReference,
@UI.identification: [{importance: #MEDIUM, position: 95 }]
@Semantics.user.createdBy: true
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{importance: #MEDIUM, position: 100 }]
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@UI.identification: [{importance: #MEDIUM, position: 105 }]
LastChangedByUser,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{importance: #MEDIUM, position: 110 }]
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@UI.hidden: true
@UI.lineItem:[{importance:#MEDIUM, hidden: true } ]
@EndUserText.label: 'Digital Signature Status'
@ObjectModel.foreignKey.association: '_DigSignStatusText'
@Consumption: { valueHelp: '_DigSignStatusText' }
ChgRecdItmDSgntr,
@UI.lineItem:[{
hidden: true,
importance:#LOW }
]
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_I_DSGNTR_ENABLE'
cast( '' as boolean) as DigitalSignUserIsAuthorized,
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 90 }]
@EndUserText.label: 'Digital Signature Status'
_DigSignStatusText.ChgRecdDigSignStatusTxt as ChgRecdDigSignStatusTxt,
@UI.lineItem:[{
hidden: true,
importance:#LOW }
]
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_I_DSGNTR_ENABLE'
cast( '' as boolean) as ChgRecdObjDgtlSgntrEnable,
@UI.identification: [{importance: #MEDIUM, position:115 }]
ChgRecdReasonForChange,
@UI.identification: [{importance: #MEDIUM, position: 120 }]
ExpdCompltnDte,
@UI.identification: [{importance: #MEDIUM, position: 125 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
ChgRecdAuthznGrpText,
@UI.identification: [{importance: #MEDIUM, position: 130 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChgRecdChgNmbrStatusVH' , element: 'ChgRecdNmbrChgSts'}}]
ChgRecdNmbrChgSts,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ChangeRecordItemRelVH,
_ProcessingStatusVH,
_MasterRcpVH,
_MasterRcpMatVH,
_ProcessingStatusTxt,
_BillOfOperations,
_DigSignStatusText
// _MasterRcpPrflVH
}