@AbapCatalog.sqlViewName: 'CCHGRECREFEBOM'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L}
@EndUserText.label: 'Change Record Reference Object Page EBOM'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: ['Material','Plant','BillOfMaterialVariantUsage','BillOfMaterialVariant','BillOfMaterialVersion'],
createEnabled: true,
deleteEnabled,
updateEnabled:'EXTERNAL_CALCULATION' ,
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'Engineering BOM',
typeNamePlural: 'Engineering BOMs',
imageUrl: 'ProductImageURL',
title:{value:'MaterialName'}
}
@UI.presentationVariant.requestAtLeast: ['Material','Plant','BillOfMaterialVariantUsage','BillOfMaterialVariant','BillOfMaterialVersion','BillOfMaterialHeaderUUID','BillOfMaterial','BillOfMaterialCategory','ChangeRecordReferenceType','ProductionPlant','ChangeNumber','ChangeRecordType']
define view C_ChangeRecordObjPgEngBOM
as select from I_ChgRecdRefEngBOMTP as ChangeRecordReferenceEBOMTP
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
association [0..*] to C_ChangeRecordEngBOMVH as _ChangeRecordEngBOMVH on $projection.Material = _ChangeRecordEngBOMVH.Material
and $projection.Plant = _ChangeRecordEngBOMVH.Plant
and $projection.BillOfMaterialVariantUsage = _ChangeRecordEngBOMVH.BillOfMaterialVariantUsage
and $projection.BillOfMaterialVariant = _ChangeRecordEngBOMVH.BillOfMaterialVariant
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..1] to C_ChangeRecordEngBOMUsageVH as _ChangeRecordEngBOMUsageVH on $projection.BillOfMaterialVariantUsage = _ChangeRecordEngBOMUsageVH.BillOfMaterialVariantUsage
association [1..1] to C_ChangeRecordItemRelEbmVH as _ChangeRecordItemRelEngBOMVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelEngBOMVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelEngBOMVH.ChangeRecordType
// and ( $projection.ChangeRecordReferenceType = _ChangeRecordItemRelEngBOMVH.ChangeRecordReferenceType
// or _ChangeRecordItemRelEngBOMVH.ChangeRecordReferenceType = ' '
// )
//association [0..1] to C_ChangeRecordObjPgPlngScp as _PlngScpAssgd on $projection.ChangeRecordUUID = _PlngScpAssgd.ChangeRecordUUID
association [0..*] to I_ChgRecdProductionPlant as _ChangeRecordProductionPlant on $projection.ChangeRecordUUID = _ChangeRecordProductionPlant.ChangeRecordUUID
association [0..1] to I_EngBOMIncStatus as _EngBOMIncStatus on $projection.ChangeRecord = _EngBOMIncStatus.ChangeRecord
and $projection.BillOfMaterial = _EngBOMIncStatus.EngBillOfMaterial
and $projection.BillOfMaterialVariant = _EngBOMIncStatus.EngBillOfMaterialVariant
and $projection.BillOfMaterialVersion = _EngBOMIncStatus.EngBillOfMaterialVersion
and _EngBOMIncStatus.EngBillOfMaterialCategory = 'M'
association [0..*] to I_EngBOMIncStatusText as _EngBOMIncStsTxt on $projection.engbomincstatus = _EngBOMIncStsTxt.EngBOMIncStatus
association [0..1] to I_VersionStatus as _BOMVersionStsTxt on $projection.BOMVersionStatus = _BOMVersionStsTxt.BOMVersionStatus
and _BOMVersionStsTxt.Language = $session.system_language
association [0..1] to I_ChangeRecordEngBOM as _ChangeRecordEngBOM on $projection.Material = _ChangeRecordEngBOM.Material
and $projection.Plant = _ChangeRecordEngBOM.Plant
and $projection.BillOfMaterialVariantUsage = _ChangeRecordEngBOM.BillOfMaterialVariantUsage
and $projection.BillOfMaterialVariant = _ChangeRecordEngBOM.BillOfMaterialVariant
and $projection.BillOfMaterialVersion = _ChangeRecordEngBOM.BillOfMaterialVersion
association [0..*] to I_BillOfMaterialStatusText as _BOMStatusTxt on $projection.BillOfMaterialStatus = _BOMStatusTxt.BillOfMaterialStatus
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 C_ChgRecdObjPgBOMComponent as _BillOfMaterialItem on $projection.BillOfMaterial = _BillOfMaterialItem.BillOfMaterial
and $projection.BillOfMaterialCategory = _BillOfMaterialItem.BillOfMaterialCategory
and $projection.BillOfMaterialVariant = _BillOfMaterialItem.BillOfMaterialVariant
and $projection.Material = _BillOfMaterialItem.Material
and $projection.Plant = _BillOfMaterialItem.Plant
and _BillOfMaterialItem.ValidityStartDate <= $projection.ChangeNumberValidFromDate
and _BillOfMaterialItem.ValidityEndDate > $projection.ChangeNumberValidFromDate
{
@UI.facet: [{ id: 'Charc',
purpose: #STANDARD,
type: #IDENTIFICATION_REFERENCE,
label: 'Engineering BOM',
position: 10 },
{ id: 'CompValue',
purpose: #STANDARD,
type: #LINEITEM_REFERENCE,
label: 'Components',
targetElement: '_BillOfMaterialItem',
position: 20 }]
@UI.hidden: true
@ObjectModel.readOnly: true
//@Consumption.semanticObject: 'ChangeImpact'
// @UI.lineItem:[
//{type: #FOR_INTENT_BASED_NAVIGATION,
// semanticObjectAction: 'display',
// label: 'Change Impact',
// importance:#HIGH} ]
key ChangeRecordReferenceUUID,
@UI.hidden: true
@UI.lineItem:[
{ position:5,
importance:#HIGH }
]
@UI.identification: {position: 5, importance: #HIGH}
@Semantics.imageUrl: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_OBJECT_THUMBNAIL_VE'
cast( '' as productimageurl ) as ProductImageURL,
@UI.lineItem:[{
position:10,
importance:#HIGH }
]
@UI.identification: {position: 10, importance: #HIGH}
// @Consumption.valueHelp: '_ChangeRecordEngBOMVH'
@ObjectModel.text.element: [ 'MaterialName' ]
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_ChangeRecordEngBOMVH',
element: 'Material' },
additionalBinding:[{ localElement: 'Plant',
element: 'Plant' },
{ localElement: 'BillOfMaterialVariantUsage',
element: 'BillOfMaterialVariantUsage' },
{ localElement: 'BillOfMaterialVariant',
element: 'BillOfMaterialVariant' },
{ localElement: 'BillOfMaterialVersion',
element: 'BillOfMaterialVersion' }]
}]
Material,
@UI.lineItem:[{
position:20,
importance:#HIGH }
]
@UI.identification: {position: 20, importance: #HIGH}
// @ObjectModel.foreignKey.association: '_Plant'
// @Consumption.semanticObject: 'ChangeImpact'
Plant,
@UI.lineItem:[{
position:30,
importance:#HIGH }
// {
// type: #FOR_INTENT_BASED_NAVIGATION,
// semanticObjectAction: 'display',
// position:20,
// label: 'Change Impact',
// importance:#HIGH }
]
@UI.identification: {position:30}
//@ObjectModel.foreignKey.association: '_ChangeRecordEngBOMUsageVH'
@ObjectModel.text.element: 'BillOfMaterialVariantUsageDesc'
BillOfMaterialVariantUsage,
@UI.hidden:true
@ObjectModel.readOnly:true
_ChangeRecordEngBOMUsageVH._BillOfMaterialUsageText[1:Language = $session.system_language].BillOfMaterialVariantUsageDesc,
@UI.lineItem:[{
position:40 }
]
@UI.identification: {position:40}
BillOfMaterialVariant,
@UI.lineItem:[{
position:50 }
]
@UI.identification: {position:50}
BillOfMaterialVersion,
@UI.hidden: true
ChangeRecordUUID,
// @UI.hidden: true
@UI.identification: {position:90}
ChangeRecordReferenceType,
@UI.hidden: true
ChangeRecordReferenceSubtype,
@UI.hidden: true
ChangeRecordRefObjectUUID,
@UI.hidden: true
ParentChangeRecordRefUUID,
@UI.lineItem:[{
position:60 }
]
@Consumption: { valueHelp: '_ChangeRecordItemRelEngBOMVH' }
@ObjectModel: {foreignKey.association: '_ChangeRecordItemRelEngBOMVH' }
@UI.identification: {position:60}
@ObjectModel.mandatory: true
@UI.textArrangement: #TEXT_ONLY
ChangeRecordItemRelevance,
@ObjectModel.readOnly: true
@UI.lineItem.position: 70
@UI.identification: {position:70}
@ObjectModel.text.association: '_EngBOMIncStsTxt'
@ObjectModel.text.control: #ASSOCIATED_TEXT_UI_HIDDEN
_EngBOMIncStatus.EngBOMIncStatus,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_BOM_DETAIL_FIELD'
@UI.hidden: true
cast('' as val_text) as BOMVersionStatusDescription,
@ObjectModel.readOnly: true
@UI.lineItem.position: 80
@UI.identification: {position:80}
@ObjectModel.text.element: 'BOMVersionStatusDescription'
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_BOM_DETAIL_FIELD'
ChangeRecordReferenceEBOMTP.BOMVersionStatus,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_BOM_DETAIL_FIELD'
@UI.hidden: true
cast('' as ssttx) as BillOfMaterialStatusText,
@ObjectModel.readOnly:true
@ObjectModel.text.element: 'BillOfMaterialStatusText'
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_BOM_DETAIL_FIELD'
@UI.identification: {position:100, importance: #MEDIUM}
BillOfMaterialStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordProductionPlant.ProductionPlant,
@UI.hidden: true
@ObjectModel.readOnly: true
_Material._Text[1:Language = $session.system_language].MaterialName as MaterialName,
@UI.hidden: true
ChangeRecordReference,
@ObjectModel.readOnly: true
@UI.hidden: true
BillOfMaterialUUID,
@UI.hidden: true
BillOfMaterial,
@UI.hidden:true
BillOfMaterialCategory,
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_BOM_DETAIL_FIELD'
BillOfMaterialHeaderUUID,
//@UI.hidden: true
@ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
@UI.identification: {position:110}
ChangeNumber,
@Semantics.user.createdBy: true
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: {position:120}
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@UI.identification: {position:130}
LastChangedByUser,
@UI.hidden: true
ChangeRecordReferenceEBOMTP.ChangeRecord,
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.foreignKey.association: '_ChangeRecordItemRelEngBOMVH'
_ChangeRecordObjPg.ChangeRecordType as ChangeRecordType,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: {position:140}
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@UI.identification: {position:150 }
ChgRecdReasonForChange,
@UI.identification: {position:160}
ExpdCompltnDte,
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
@UI.identification: {position:170}
ChgRecdAuthznGrpText,
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChgRecdChgNmbrStatusVH' , element: 'ChgRecdNmbrChgSts'}}]
@UI.identification: {position:180}
ChgRecdNmbrChgSts,
@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: 90} ]
@UI.identification: [{position: 90}]
@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: [{ position: 105}]
@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,
ChangeNumberValidFromDate,
_Material,
_Plant,
_ChangeRecordEngBOMUsageVH,
_ChangeRecordItemRelEngBOMVH,
_EngBOMIncStsTxt,
_BOMVersionStsTxt,
_ChangeRecordEngBOMVH,
_ChangeRecordProductionPlant,
_BOMStatusTxt,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ProcessingStatusVH,
_ProcessingStatusTxt,
_DigSignStatusText,
_BillOfMaterialItem
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDENGBOMUSAGEVH",
"C_CHANGERECORDOBJPG",
"I_BILLOFMATERIALUSAGETEXT",
"I_CHGRECDPRODUCTIONPLANT",
"I_CHGRECDREFENGBOMTP",
"I_ENGBOMINCSTATUS",
"I_MATERIAL",
"I_MATERIALTEXT"
],
"ASSOCIATED":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDENGBOMUSAGEVH",
"C_CHANGERECORDENGBOMVH",
"C_CHANGERECORDITEMRELEBMVH",
"C_CHANGERECORDOBJPG",
"C_CHGRECDOBJPGBOMCOMPONENT",
"C_CHGRECORDITEMPROCGSTATUSVH",
"I_BILLOFMATERIALSTATUSTEXT",
"I_CHANGERECORDENGBOM",
"I_CHGRECDITEMPROCGSTATUSTEXT",
"I_CHGRECDPRODUCTIONPLANT",
"I_ENGBOMINCSTATUS",
"I_ENGBOMINCSTATUSTEXT",
"I_MATERIAL",
"I_PLANT",
"I_VERSIONSTATUS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/