@EndUserText.label: 'Product Allocation Characteristic Catalog Path' //same as DDL description
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@AccessControl.authorizationCheck: #NOT_REQUIRED //or #NOT_REQUIRED #CHECK
@AbapCatalog.sqlViewName: 'IPACTLG_PATH'
@ObjectModel.representativeKey: 'ProdAllocCharcCtlgPathUUID'
@ObjectModel.semanticKey: [ 'ProdAllocCharcCatalogType',
'ProdAllocCharcCatalogUseType',
'ProdAllocCharcCtlgPathSelName',
'ProdAllocCharcCtlgPathSel',
'ProdAllocCharcCatalogPath' ]
@ObjectModel.usageType.sizeCategory: #S
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.dataClass:#MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Search.searchable: true
define view I_ProdAllocCharcCatalogPath
as select from pactlg_path
association [1..1] to I_ProdAllocCharcCatalog as _ProdAllocCharcCatalog on $projection.ProdAllocCharcCatalogUUID = _ProdAllocCharcCatalog.ProdAllocCharcCatalogUUID
association [0..*] to I_ProdAllocCharcCtlgPathText as _Text on $projection.ProdAllocCharcCtlgPathUUID = _Text.ProdAllocCharcCtlgPathUUID
association [0..*] to I_ProdAllocCharcCtlgPathRef as _ProdAllocCharcCtlgPathRef on $projection.ProdAllocCharcCtlgPathUUID = _ProdAllocCharcCtlgPathRef.ProdAllocCharcCtlgPathUUID
association [0..*] to I_AllocCharcCtlgValGrpVal as _AllocCharcCtlgValGrpVal on $projection.ProdAllocCharcCtlgPathUUID = _AllocCharcCtlgValGrpVal.ProdAllocCharcCtlgPathUUID
association [0..1] to I_ProdAllocCharcCatalogType as _ProdAllocCharcCatalogType on $projection.ProdAllocCharcCatalogType = _ProdAllocCharcCatalogType.ProdAllocCharcCatalogType
association [0..1] to I_ProdAllocCharcCtlgUseType as _ProdAllocCharcCtlgUseType on $projection.ProdAllocCharcCatalogUseType = _ProdAllocCharcCtlgUseType.ProdAllocCharcCatalogUseType
association [0..1] to I_ProdAllocCharcCtlgCharcType as _ProdAllocCharcCtlgCharcType on $projection.ProdAllocCharcCatalogCharcType = _ProdAllocCharcCtlgCharcType.ProdAllocCharcCatalogCharcType
association [0..1] to I_ProdAllocCharcCtlgPathType as _ProdAllocCharcCtlgPathType on $projection.ProdAllocCharcCatalogPathType = _ProdAllocCharcCtlgPathType.ProdAllocCharcCatalogPathType
association [0..*] to I_ProdAllocCharcCatalogPath as _NextLvlProdAllocCharcCtlgPath on $projection.ProdAllocCharcCtlgPathIntID = _NextLvlProdAllocCharcCtlgPath.ProdAllocCharcCtlgParPathIntID
association [0..1] to I_ProdAllocCharcCatalogPath as _ParentProdAllocCharcCtlgPath on $projection.ProdAllocCharcCtlgParPathIntID = _ParentProdAllocCharcCtlgPath.ProdAllocCharcCtlgPathIntID
association [0..*] to I_DataElementLabelText as _DataElementLabelText on $projection.ABAPDataElement = _DataElementLabelText.ABAPDataElement
association [0..*] to I_PartnerFunctionText as _PartnerFunctionText on $projection.ProdAllocCharcCtlgPathSel = _PartnerFunctionText.PartnerFunction
association [0..1] to I_CharcValExistenceCheckType as _CharcValExistenceCheckType on $projection.CharcValExistenceCheckType = _CharcValExistenceCheckType.CharcValExistenceCheckType
association [0..1] to I_ProdAllocCharcCtlgPathRef as _MainCharcCtlgPathRef on _MainCharcCtlgPathRef.ProdAllocCharcCtlgPathUUID = $projection.ProdAllocCharcCtlgPathUUID
and _MainCharcCtlgPathRef.ProdAllocCharcCatalogIsMain = 'X'
association [0..1] to I_UnitOfMeasure as _CharacteristicUnitOfMeasure on $projection.CharacteristicUnit = _CharacteristicUnitOfMeasure.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _ValueGroupUnitOfMeasure on $projection.CharacteristicValueGroupUnit = _ValueGroupUnitOfMeasure.UnitOfMeasure
{
// Key fields
@ObjectModel.text.association: '_Text'
@ObjectModel.readOnly: true
@UI.hidden
key prodalloccharcctlgpathuuid as ProdAllocCharcCtlgPathUUID,
// Fields
@ObjectModel.readOnly: true
//@ObjectModel.foreignKey.association: '_NextLvlProdAllocCharcCtlgPath'
@UI.hidden
prodalloccharcctlgpathintid as ProdAllocCharcCtlgPathIntID,
@ObjectModel.foreignKey.association: '_ProdAllocCharcCatalogType'
@ObjectModel.mandatory: true
@Search.defaultSearchElement: true
prodalloccharccatalogtype as ProdAllocCharcCatalogType,
@ObjectModel.foreignKey.association: '_ProdAllocCharcCtlgUseType'
//@ObjectModel.mandatory: true
@Search.defaultSearchElement: true
prodalloccharccatalogusetype as ProdAllocCharcCatalogUseType,
@ObjectModel.foreignKey.association: '_ProdAllocCharcCatalog'
prodalloccharccataloguuid as ProdAllocCharcCatalogUUID,
//@ObjectModel.readOnly: true
@UI.hidden
prodalloccharcctlgparpathintid as ProdAllocCharcCtlgParPathIntID,
@UI.hidden
characteristicunitpathintid as CharacteristicUnitPathIntID,
@ObjectModel.foreignKey.association: '_ProdAllocCharcCtlgCharcType'
@ObjectModel.mandatory: true
prodalloccharccatalogcharctype as ProdAllocCharcCatalogCharcType,
@ObjectModel.foreignKey.association: '_ProdAllocCharcCtlgPathType'
@ObjectModel.mandatory: true
prodalloccharccatalogpathtype as ProdAllocCharcCatalogPathType,
clfncharacteristicusetype as ClfnCharacteristicUseType,
charccatalogpathhierarchytype as CharcCatalogPathHierarchyType,
@ObjectModel.text.association: '_DataElementLabelText'
@UI.hidden
// Is @UI.hidden because in the composite/union view either this description or
// the description of the data element or the description of the partner
// function shall be available (depending on which
// one is filled), for this we will provide a new description field in the
// consumption view which will be calculated by CASE-statement. This is also
// the reason why it is a text-association, namely in order to be able to
// retrieve the text of the data element.
abapdataelement as ABAPDataElement,
prodalloccharcctlgpathselname as ProdAllocCharcCtlgPathSelName,
@ObjectModel.text.association: '_PartnerFunctionText'
// In case of partner functions for business partners, we want to be able
// to determine the partner function text. So either the text for the
// current path is determined by data element, our own text table or
// from the partner function text table.
prodalloccharcctlgpathsel as ProdAllocCharcCtlgPathSel,
@ObjectModel.mandatory: true
prodalloccharccatalogpath as ProdAllocCharcCatalogPath,
prodalloccharcctlgaltvpath as ProdAllocCharcCtlgAltvPath,
prodalloccharcctlglegacytable as ProdAllocCharcCtlgLegacyTable,
prodalloccharcctlglegacypath as ProdAllocCharcCtlgLegacyPath,
prodalloccharcvaluehelp as ProdAllocCharcValueHelp,
prodalloccharcvalhelptblfield as ProdAllocCharcValHelpTblField,
prodalloccharcvalhelptextlink as ProdAllocCharcValHelpTextLink,
prodalloccharcvalhelptxttblfld as ProdAllocCharcValHelpTxtTblFld,
prodalloccharcctlgcharc as ProdAllocCharcCtlgCharc,
prodalloccharcctlgpathishidden as ProdAllocCharcCtlgPathIsHidden,
prodalloccharcctlgpathisroot as ProdAllocCharcCtlgPathIsRoot,
@ObjectModel.foreignKey.association: '_CharcValExistenceCheckType'
charcvalexistencechecktype as CharcValExistenceCheckType,
abapdictionarydatatype as ABAPDictionaryDataType,
abapdictionarydatatypelength as ABAPDictionaryDataTypeLength,
abapdictionarydatatypedecimals as ABAPDictionaryDataTypeDecimals,
abapoutputlengthvalue as ABAPOutputLengthValue,
charcvalueiscasesensitive as CharcValueIsCaseSensitive,
charcvalueconversionroutine as CharcValueConversionRoutine,
charcinternalid as CharcInternalID,
@ObjectModel.foreignKey.association: '_CharacteristicUnitOfMeasure'
@Semantics.unitOfMeasure: true
characteristicunit as CharacteristicUnit,
@ObjectModel.foreignKey.association: '_ValueGroupUnitOfMeasure'
@Semantics.unitOfMeasure: true
characteristicvaluegroupunit as CharacteristicValueGroupUnit,
characteristicvaluegrouptype as CharacteristicValueGroupType,
charcisonlyusableinvaluegroups as CharcIsOnlyUsableInValueGroups,
@ObjectModel.readOnly: true
charccatalogcharacteristicname as CharcCatalogCharacteristicName,
// Associations
@ObjectModel.association.type: [#TO_COMPOSITION_PARENT,
#TO_COMPOSITION_ROOT]
_ProdAllocCharcCatalog,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_Text,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_ProdAllocCharcCtlgPathRef,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_AllocCharcCtlgValGrpVal,
_ProdAllocCharcCatalogType,
_MainCharcCtlgPathRef,
_ProdAllocCharcCtlgUseType,
_ProdAllocCharcCtlgCharcType,
_ProdAllocCharcCtlgPathType,
_NextLvlProdAllocCharcCtlgPath,
_ParentProdAllocCharcCtlgPath,
_CharcValExistenceCheckType,
_DataElementLabelText,
_PartnerFunctionText,
_CharacteristicUnitOfMeasure,
_ValueGroupUnitOfMeasure
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"PACTLG_PATH"
],
"ASSOCIATED":
[
"I_ALLOCCHARCCTLGVALGRPVAL",
"I_CHARCVALEXISTENCECHECKTYPE",
"I_DATAELEMENTLABELTEXT",
"I_PARTNERFUNCTIONTEXT",
"I_PRODALLOCCHARCCATALOG",
"I_PRODALLOCCHARCCATALOGTYPE",
"I_PRODALLOCCHARCCTLGCHARCTYPE",
"I_PRODALLOCCHARCCTLGPATHREF",
"I_PRODALLOCCHARCCTLGPATHTEXT",
"I_PRODALLOCCHARCCTLGPATHTYPE",
"I_PRODALLOCCHARCCTLGUSETYPE",
"I_UNITOFMEASURE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/