I_SUBSTANCETP
Substance
I_SUBSTANCETP is a CDS View in S/4HANA. Substance. It contains 13 fields. 8 CDS views read from this table.
CDS Views using this table (8)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_ChmlCmpstnSubstanceVH | view | from | CONSUMPTION | Value Help for Substance in Composition |
| C_MatlBasedProducedSubstanceVH | view | from | CONSUMPTION | Value Help for Produced Substances for Matl Bsd Composition |
| C_MatlBasedReplacedSubstanceVH | view | from | CONSUMPTION | Value Help for Replaced Substances for Matl Bsd Composition |
| C_PCSftyDcmpstnProdSubstanceVH | view | from | CONSUMPTION | Decomposition Product Substance ValueHelp |
| C_ProdCmplncServiceReqSubst | view | from | CONSUMPTION | PC Service Requests Private Substance |
| C_SubstanceCmplRqRslt | view | from | CONSUMPTION | Compliance Assessments Overview for Substance |
| C_SubstanceQryTP | view | from | CONSUMPTION | Manage Substances Compliance |
| C_SubstanceVH | view | from | CONSUMPTION | Substance Value Help |
Fields (13)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | SubstanceUUID | SubstanceUUID | 7 |
| ActiveSubstanceUUID | ActiveSubstanceUUID | 1 | |
| CompanySubstanceName | CompanySubstanceName | 6 | |
| CreatedByUser | CreatedByUser | 1 | |
| CreationUTCDateTime | CreationUTCDateTime | 1 | |
| LastChangedByUser | LastChangedByUser | 1 | |
| LastChangeUTCDateTime | LastChangeUTCDateTime | 1 | |
| ListedSubstanceUUID | ListedSubstanceUUID | 6 | |
| PolymerIsBsdOnOECDDef | PolymerIsBsdOnOECDDef | 1 | |
| ResponsibleUnit | ResponsibleUnit | 6 | |
| Specification | Specification | 2 | |
| SubstanceInternalName | SubstanceInternalName | 7 | |
| SubstanceName | SubstanceName | 7 |
@EndUserText.label: 'Substance'
@VDM.viewType: #TRANSACTIONAL
@AbapCatalog: {
sqlViewName: 'ISUBTP',
compiler.compareFilter: true
}
@AccessControl:
{
authorizationCheck: #CHECK,
privilegedAssociations: [ '_CreatedByUser', '_LastChangedByUser' ]
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
modelCategory: #BUSINESS_OBJECT,
transactionalProcessingEnabled: true,
compositionRoot: true,
draftEnabled: true,
createEnabled: true,
updateEnabled: 'EXTERNAL_CALCULATION',
deleteEnabled: 'EXTERNAL_CALCULATION',
writeDraftPersistence: 'ehfndw_sub',
writeActivePersistence: 'ehfndv_sub',
representativeKey: 'SubstanceUUID',
semanticKey: ['SubstanceUUID'],
usageType: {
serviceQuality: #C,
dataClass: #MASTER,
sizeCategory: #L
},
entityChangeStateId: 'LastChangeUTCDateTime'
}
define view I_SubstanceTP
as select from I_Substance as Substance
association [0..*] to I_SubstanceVarAssgmtTP as _SubstanceVarAssgmt on $projection.SubstanceUUID = _SubstanceVarAssgmt.SubstanceUUID
association [0..*] to I_SubstanceGrpAssgmtTP as _SubstanceGrpAssgmtTP on $projection.SubstanceUUID = _SubstanceGrpAssgmtTP.SubstanceUUID
// Note: this will move to the CI team as entity of the Listed Substance
// association [0..*] to I_SubstanceGrpAssgmtTP as _SubstanceGrpAsgmt on $projection.SubstanceUUID = _SubstanceGrpAsgmt.SubstanceUUID
association [0..*] to I_SubstanceTextTP as _SubstanceText on $projection.SubstanceUUID = _SubstanceText.SubstanceUUID
association [0..*] to I_SubstanceTradeSecretTextTP as _SubstanceTradeSecretText on $projection.SubstanceUUID = _SubstanceTradeSecretText.SubstanceUUID
association [0..*] to I_SubstanceAdditionalIdfrTP as _SubstanceAdditionalIdfrTP on $projection.SubstanceUUID = _SubstanceAdditionalIdfrTP.SubstanceUUID
{
key Substance.SubstanceUUID,
@ObjectModel.readOnly: true
Substance.SubstanceUUID as ActiveSubstanceUUID, --Active UUID of Substance
@ObjectModel.readOnly: true
Substance.CreationUTCDateTime,
@ObjectModel.readOnly: true
Substance.CreatedByUser,
@ObjectModel.readOnly: true
Substance.LastChangeUTCDateTime,
@ObjectModel.readOnly: true
Substance.LastChangedByUser,
@ObjectModel.mandatory: true
Substance.ListedSubstanceUUID,
Substance.SubstanceInternalName,
//Substance name cases see REQ-41-0032:
//1. own substance name
//2. listed substance name
//3. internal name
@ObjectModel.readOnly: true
cast (
case
when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is not null
then _SubstanceText[1:Language = $session.system_language].SubstanceName
when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is null and _ListedSubstance.ListedSubstanceDefaultName is not null
then _ListedSubstance.ListedSubstanceDefaultName
when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is null and _ListedSubstance.ListedSubstanceDefaultName is null
then Substance.SubstanceInternalName
end as ehfnd_sub_substance_name_ltd ) as SubstanceName,
@ObjectModel.readOnly: true
// set company substance name to not mandatory for displaying although it is mandatory if used in the substance text node
@ObjectModel.mandatory: false
_SubstanceText[1:Language = $session.system_language].SubstanceName as CompanySubstanceName,
@ObjectModel.mandatory: true
Substance.ResponsibleUnit,
Substance.Specification,
Substance.SpecificationInternalID,
Substance.PolymerIsBsdOnOECDDef,
/* Exposed Associations */
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubstanceText,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubstanceTradeSecretText,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubstanceVarAssgmt,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubstanceGrpAssgmtTP,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubstanceAdditionalIdfrTP,
_CreatedByUser,
_LastChangedByUser,
Substance._ListedSubstance
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SUBSTACTIVEDRAFTLSTDSUBST",
"I_SUBSTANCE",
"I_SUBSTANCETEXTTP"
],
"ASSOCIATED":
[
"I_SUBSTACTIVEDRAFTLSTDSUBST",
"I_SUBSTANCEADDITIONALIDFRTP",
"I_SUBSTANCEGRPASSGMTTP",
"I_SUBSTANCETEXTTP",
"I_SUBSTANCETRADESECRETTEXTTP",
"I_SUBSTANCEVARASSGMTTP",
"I_USER"
],
"BASE":
[
"I_SUBSTANCE"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/