@AbapCatalog.sqlViewName: 'CCHGRCDOBJPGSNP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking:#NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
semanticKey: ['EngSnapshotID','EngSnpshtRevisionNumber'],
createEnabled: true,
deleteEnabled,
updateEnabled:'EXTERNAL_CALCULATION' ,
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'Engineering Snapshot',
typeNamePlural: 'Engineering Snapshots',
imageUrl: 'ChangeRecordRefObjIcon',
title:{value:'MaterialName'}
}
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L}
@ClientHandling.algorithm: #SESSION_VARIABLE
@UI.presentationVariant.requestAtLeast: ['EngSnapshotUUID','EngSnapshotType','ChangeRecordType', 'ChangeRecordReferenceType','MaterialName','MaterialBaseUnit','BillOfOpsBusinessProcess']
@EndUserText.label: 'Change Record Ref Object Eng Snapshot'
define view C_ChangeRecordObjPgEngSnpsht
as select from I_ChgRecdRefEngSnpshtTP as ChangeRecordRefEngSnpshtTP
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
association [0..1] to I_MaterialText as _MaterialText on $projection.Material = _MaterialText.Material
and _MaterialText.Language = $session.system_language
association [0..1] to I_Material as _Material on $projection.Material = _Material.Material
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [0..*] to I_BillOfMaterialUsageText as _BOMUsageText on $projection.BillOfMaterialVariantUsage = _BOMUsageText.BillOfMaterialVariantUsage
association [1..1] to C_ChangeRecordItemRelSnpshtVH as _ChangeRecordItemRelSnpshtVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelSnpshtVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelSnpshtVH.ChangeRecordType
// and (
// $projection.ChangeRecordReferenceType = _ChangeRecordItemRelSnpshtVH.ChangeRecordReferenceType
// or _ChangeRecordItemRelSnpshtVH.ChangeRecordReferenceType = ' '
// )
association [0..*] to I_ChangeRecordRefObjIcons as _ChangeRecordRefObjIcons on $projection.ChangeRecordUUID = _ChangeRecordRefObjIcons.ChangeRecordUUID
and $projection.ChangeRecordReferenceType = _ChangeRecordRefObjIcons.ChangeRecordReferenceType
association [0..1] to I_EngSnpshtHdr as _EngSnpshtHeader on $projection.EngSnapshotID = _EngSnpshtHeader.EngSnapshotID
and $projection.EngSnpshtRevisionNumber = _EngSnpshtHeader.EngSnpshtRevisionNumber
association [0..*] to I_EngSnpshtObjRef as _EngSnpshtObjRef on $projection.EngSnapshotUUID = _EngSnpshtObjRef.EngSnapshotUUID
and $projection.Material = _EngSnpshtObjRef.EngSnpshtRefKey1
and $projection.Plant = _EngSnpshtObjRef.EngSnpshtRefKey2
and $projection.BillOfMaterialVariant = _EngSnpshtObjRef.EngSnpshtRefKey3
and $projection.BillOfMaterialVariantUsage = _EngSnpshtObjRef.EngSnpshtRefKey4
and (
_EngSnpshtObjRef.EngSnpshtRefType = 'EBOM'
or _EngSnpshtObjRef.EngSnpshtRefType = 'MBOM'
)
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 [0..*] to C_ChangeRecdDigSignStatusVH as _DigSignStatusText on $projection.ChgRecdItmDSgntr = _DigSignStatusText.ChgRecdDigitalSignatureStatus
association [0..*] to I_EngSnpshtTypeText as _EngSnpshtTypeText on $projection.EngSnapshotType = _EngSnpshtTypeText.EngSnapshotType
{
@UI.hidden: 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:40,importance:#HIGH }],
identification:[{position: 10, importance: #HIGH }]
}
@ObjectModel.text.element: ['MaterialName']
Material,
@UI.hidden: true
@ObjectModel.readOnly: true
_MaterialText.MaterialName as MaterialName,
@UI: {
lineItem:[{position:50,importance:#HIGH }],
identification:[{position: 20, importance: #HIGH}]
}
@ObjectModel.text.element: [ 'PlantName' ]
Plant,
@UI.hidden: true
@ObjectModel.readOnly: true
_Plant.PlantName,
@UI: {
lineItem:[{position:70,importance:#MEDIUM }],
identification:[{position:30, importance: #MEDIUM}]
}
@ObjectModel.text.association: '_BOMUsageText'
@ObjectModel.text.control: #ASSOCIATED_TEXT_UI_HIDDEN
BillOfMaterialVariantUsage,
@UI: {
lineItem:[{position:60,importance:#MEDIUM }],
identification:[{position:40, importance: #MEDIUM}]
}
BillOfMaterialVariant,
@ObjectModel.readOnly: true
@UI.identification: {position:45, importance: #MEDIUM}
cast(_EngSnpshtObjRef.EngSnpshtRefKey5 as cs_versn) as BillOfMaterialVersion,
@UI: {
lineItem:[{position:10,importance:#MEDIUM }]
}
@UI.identification: [{position: 105, importance: #MEDIUM}]
EngSnapshotID,
@UI.hidden:true
EngSnapshotUUID,
@UI: {
lineItem: [{position:30,importance:#MEDIUM}],
identification:[{position:50, importance: #MEDIUM}]
}
EngSnpshtRevisionNumber,
@UI.hidden:true
@ObjectModel.readOnly: true
EngSnapshotType,
@UI: {
lineItem:[{position:20,importance:#MEDIUM }]
}
@ObjectModel.readOnly: true
@UI.identification: [{position: 110, importance: #MEDIUM}]
_EngSnpshtTypeText.EngSnapshotTypeText,
@ObjectModel.readOnly: true
@UI.identification: [{position: 115, importance: #MEDIUM}]
_EngSnpshtHeader.EngSnpshtProposedEffectiveDate,
@UI.hidden: true
ChangeRecordUUID,
@UI.hidden: true
ChangeRecordReferenceType,
@UI.hidden: true
ChangeRecordReferenceSubtype,
@UI.hidden: true
ChangeRecordRefObjectUUID,
@UI.hidden: true
ChangeRecordReference,
@UI.hidden: true
ParentChangeRecordRefUUID,
@UI.hidden: true
IsMainReference,
@Semantics.user.createdBy: true
@ObjectModel.readOnly: true
@UI.identification: [{position: 120, importance: #MEDIUM}]
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{position: 125, importance: #MEDIUM}]
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@ObjectModel.readOnly: true
@UI.identification: [{position: 130, importance: #MEDIUM}]
LastChangedByUser,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{position: 135, importance: #MEDIUM}]
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@UI.lineItem:[{position:80,importance:#MEDIUM } ]
@UI.identification: {position:60, importance: #MEDIUM}
@Consumption: { valueHelp: '_ChangeRecordItemRelSnpshtVH' }
@ObjectModel: {foreignKey.association: '_ChangeRecordItemRelSnpshtVH' }
@ObjectModel.mandatory: true
@UI.textArrangement: #TEXT_ONLY
ChangeRecordItemRelevance,
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.foreignKey.association: '_ChangeRecordItemRelSnpshtVH'
_ChangeRecordObjPg.ChangeRecordType as ChangeRecordType,
@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.ChangeRecordStatus,
@UI.lineItem:[ {position: 85, importance:#MEDIUM } ]
@UI.identification: [{position: 85, 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.ChangeRecordItemIsNotEditable,
// @UI.hidden: true
// @ObjectModel.readOnly: true
// _ChangeRecordObjPg.ChangeRecordItmIsAddDelEnabled,
@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.identification: [{position: 140, importance: #MEDIUM}]
ChgRecdReasonForChange,
@UI.identification: [{position: 145, importance: #MEDIUM}]
ExpdCompltnDte,
@UI.identification: [{position: 150, importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
ChgRecdAuthznGrpText,
@UI.identification: [{position: 155, importance: #MEDIUM}]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChgRecdChgNmbrStatusVH' , element: 'ChgRecdNmbrChgSts'}}]
ChgRecdNmbrChgSts,
@UI.lineItem:[{position:100,importance:#MEDIUM }]
@UI.identification: {position: 100, importance: #MEDIUM}
@ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
ChangeNumber,
@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,
--Fields for Create Routing Action
@UI.hidden: true
@ObjectModel.readOnly: true
_Material.MaterialBaseUnit,
@UI.hidden:true
@ObjectModel:{ readOnly:true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_CR_RETRIEVE_BP_FROM_MBOM'}
cast (' ' as mpe_business_process preserving type) as BillOfOpsBusinessProcess,
_MaterialText,
_Plant,
_BOMUsageText,
_ChangeRecordItemRelSnpshtVH,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ProcessingStatusVH,
_ProcessingStatusTxt,
_DigSignStatusText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDOBJPG",
"I_CHANGERECORDREFOBJICONS",
"I_CHGRECDREFENGSNPSHTTP",
"I_ENGSNPSHTHDR",
"I_ENGSNPSHTOBJREF",
"I_ENGSNPSHTTYPETEXT",
"I_MATERIAL",
"I_MATERIALTEXT",
"I_PLANT"
],
"ASSOCIATED":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDITEMRELSNPSHTVH",
"C_CHANGERECORDOBJPG",
"C_CHGRECORDITEMPROCGSTATUSVH",
"I_BILLOFMATERIALUSAGETEXT",
"I_CHANGERECORDREFOBJICONS",
"I_CHGRECDITEMPROCGSTATUSTEXT",
"I_ENGSNPSHTHDR",
"I_ENGSNPSHTOBJREF",
"I_ENGSNPSHTTYPETEXT",
"I_MATERIAL",
"I_MATERIALTEXT",
"I_PLANT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/