@AbapCatalog.sqlViewName: 'IPPMFGORDDOCOBJL'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.privilegedAssociations: ['_CreatedUser', '_ChangedUser']
@Analytics.dataCategory: #DIMENSION
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE]
@ObjectModel.representativeKey:'LinkedSAPObjectKey'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #L, dataClass: #MIXED}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Mfg Order Document Info Record Object Link'
define view I_MfgOrderDocInfoRecdObjLink
as select from P_MfgOrderDocInfoRecdObjLink as doc
association [1..1] to I_ManufacturingOrder as _MfgOrder on $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
association [0..1] to I_ManufacturingOrderItem as _MfgOrderItem on $projection.ManufacturingOrder = _MfgOrderItem.ManufacturingOrder
and $projection.ManufacturingOrderItem = _MfgOrderItem.ManufacturingOrderItem
association [0..1] to I_ChangeMaster as _ChangeNumber on $projection.ChangeNumber = _ChangeNumber.ChangeNumber
association [0..1] to I_User as _CreatedUser on $projection.CreatedByUser = _CreatedUser.UserID
association [0..1] to I_User as _ChangedUser on $projection.ChangedBy = _ChangedUser.UserID
{
-- @ObjectModel.text.association: '_Text'
key doc.LinkedSAPObjectKey,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_DocInfoRecdDocTypeStdVH', element: 'DocumentInfoRecordDocType' } } ]
@ObjectModel.foreignKey.association: '_DocumentType'
key doc.DocumentType,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_DocInfoRecdDocNmbrStdVH', element: 'DocumentInfoRecordDocNumber' } } ]
@ObjectModel.foreignKey.association: '_DocumentNumber'
key doc.DocumentInfoRecord,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_DocInfoRecdDocPrtStdVH', element: 'DocumentInfoRecordDocPart' } } ]
@ObjectModel.foreignKey.association: '_DocumentPart'
key cast(doc.DocumentPart as pph_doktl preserving type) as DocumentPart,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_DocInfoRecdDocVersStdVH', element: 'DocumentInfoRecordDocVersion' } } ]
@ObjectModel.foreignKey.association: '_DocumentVersion'
key cast(doc.DocumentVersion as pph_dokvr preserving type) as DocumentVersion,
// Administrative Data
@Semantics.systemDateTime.createdAt: true
cast(doc.CreationDateTime as hp_created_at preserving type) as CreationDateTime,
@Semantics.user.createdBy: true
cast(doc.CreatedByUser as ernam preserving type) as CreatedByUser,
@Semantics.systemDateTime.lastChangedAt: true
cast(doc.ChangedDateTime as hp_changed_at preserving type) as ChangedDateTime,
@Semantics.user.lastChangedBy: true
cast(doc.LastChangedByUser as aenam preserving type) as ChangedBy,
// Document Data
doc.InternalDocumentStatus,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
@ObjectModel.foreignKey.association: '_ChangeNumber'
doc.ChangeNumber,
doc.AuthorizationGroup,
@Semantics.user.responsible: true
cast(doc.ResponsiblePersonName as pph_dwnam preserving type) as ResponsiblePersonName,
// Miscellaneous Data
doc.DocInfoRecdLinkStatus,
doc.DocInfoRecdObjectLinkStatus,
doc.ObjectTypeDatabaseTable,
@Semantics.booleanIndicator
doc.DocLinkDirectionIsActive,
doc.IsDefaultDocument,
@Semantics.booleanIndicator
doc.DocInfoRecdIsMarkedForDeletion,
// Mfg Order Data
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
@ObjectModel.foreignKey.association: '_MfgOrder'
cast(doc.ManufacturingOrder as co_aufnr preserving type) as ManufacturingOrder,
@ObjectModel.foreignKey.association: '_MfgOrderItem' //cast to NUMC so that FK association ti Item view is correct
cast(doc.ManufacturingOrderItem as pph_posnr) as ManufacturingOrderItem,
@ObjectModel.foreignKey.association: '_MfgOrderCategory'
doc.ManufacturingOrderCategory,
@ObjectModel.foreignKey.association: '_MfgOrderType'
doc.ManufacturingOrderType,
// Associations
_CreatedUser,
_ChangedUser,
doc._DocumentNumber,
doc._DocumentType,
doc._DocumentVersion,
doc._DocumentPart,
_ChangeNumber,
_MfgOrder,
_MfgOrderItem,
doc._MfgOrderCategory,
doc._MfgOrderType,
doc._Text
} where doc.MfgOrderLinkedObjType = 'H'; // doc links on header level only
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"P_MFGORDERDOCINFORECDOBJLINK"
],
"ASSOCIATED":
[
"I_CHANGEMASTER",
"I_DOCUMENTINFORECORDDESC",
"I_DOCUMENTINFORECORDDOCNUMBER",
"I_DOCUMENTINFORECORDDOCPRT",
"I_DOCUMENTINFORECORDDOCTYPE",
"I_DOCUMENTINFORECORDDOCVERSION",
"I_MANUFACTURINGORDER",
"I_MANUFACTURINGORDERITEM",
"I_MFGORDERCATEGORY",
"I_MFGORDERTYPE",
"I_USER"
],
"BASE":
[
"P_MFGORDERDOCINFORECDOBJLINK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/