fac_cds_uh_version
Universal Hierarchy Version
fac_cds_uh_version is a CDS View that provides data about "Universal Hierarchy Version" in SAP S/4HANA. It reads from 5 data sources (uhdt_job_log, uhdt_job_log, uhdt_hier, uhdt_hid, uhdt_vrsn) and exposes 39 fields with key field VersionId. It has 6 associations to related views. Part of development package UH_CORE.
Data Sources (5)
| Source | Alias | Join Type |
|---|---|---|
| uhdt_job_log | actjob | left_outer |
| uhdt_job_log | downloadjob | left_outer |
| uhdt_hier | h | left_outer |
| uhdt_hid | hid | left_outer |
| uhdt_vrsn | v | from |
Associations (6)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | fac_cds_uh_category | to_category | $projection.HierarchyCategory = to_category.CategoryKey |
| [1..*] | fac_cds_uh_node | to_node | $projection.calVersionId = to_node.VersionId |
| [1..*] | fac_cds_uh_clfd_value | to_clfd_value | $projection.VersionId = to_clfd_value.ObjectId |
| [1..1] | fac_cds_uh_futb_hd_multiattr | to_merged_attrvals | $projection.VersionId = to_merged_attrvals.Ver_Id |
| [0..*] | FAC_CDS_UH_CD | to_changelog | $projection.VersionId = to_changelog.VersionId |
| [1..1] | FAC_CDS_FUNCTBL_VRSN_MULTITAG | to_vrsntag | $projection.VersionId = to_vrsntag.ver_id |
Annotations (6)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | FACV_UH_VRSN | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Universal Hierarchy Version | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #S | view |
Fields (39)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | VersionId | uhdt_vrsn | ver_id | |
| VersionParentId | ver_pid | |||
| ValidityStartDate | ver_vldfm | |||
| ValidityEndDate | ver_vldto | |||
| VersionMessage | ver_msg | |||
| VersionNumber | ver_nbr | |||
| VersionIndex | ver_idx | |||
| HierarchyId | uhdt_vrsn | hier_hid | ||
| HierarchyCategory | uhdt_vrsn | hier_catg | ||
| UpdatedAt | uhdt_vrsn | updated_at | ||
| UpdatedBy | uhdt_vrsn | updated_by | ||
| CreatedAt | uhdt_vrsn | created_at | ||
| CreatedBy | uhdt_vrsn | created_by | ||
| HierarchyNodeIsTimeDependent | uhdt_vrsn | node_timedep | ||
| HierarchyText | uhdt_hier | hier_desc | ||
| clientNULLasCreatedOn | ||||
| LockedBy | locked_by | |||
| LockedAt | locked_at | |||
| AllowLegacyTCodeUsage | allow_legacy_tcode_usage | |||
| ver_idendascalVersionId | ||||
| CategoryText | to_category | CategoryText | ||
| AttributeValues | to_merged_attrvals | AttributeValues | ||
| MAINTENANCE_LANG | maintenance_lang | |||
| to_node | to_node | |||
| to_category | to_category | |||
| to_changelog | to_changelog | |||
| HierarchyTags | ||||
| HierarchyTagsText | to_vrsntag | hier_tagst | ||
| to_vrsntag | to_vrsntag | |||
| IsPrivate | uhdt_hid | isprivate | ||
| ViaJob | ||||
| ActJobName | uhdt_job_log | jobname | ||
| ActJobCount | uhdt_job_log | jobcount | ||
| ActJobStatus | uhdt_job_log | status | ||
| ActJobAction | uhdt_job_log | action | ||
| DownloadJobName | uhdt_job_log | jobname | ||
| DownloadJobCount | uhdt_job_log | jobcount | ||
| DownloadJobStatus | uhdt_job_log | status | ||
| DownloadJobAction | uhdt_job_log | action |
@AbapCatalog.sqlViewName: 'FACV_UH_VRSN'
//@ClientHandling.algorithm: #SESSION_VARIABLE
//@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ 'to_node' ]
@EndUserText.label: 'Universal Hierarchy Version'
@ObjectModel.usageType: {
dataClass: #MASTER,
serviceQuality: #C,
sizeCategory: #S
}
define view fac_cds_uh_version
as select from uhdt_vrsn as v
left outer join uhdt_hier as h on v.hier_hid = h.hier_hid
and v.hier_catg = h.hier_catg
and h.lang = $session.system_language
left outer join uhdt_hid as hid on v.hier_hid = hid.hier_hid
and v.hier_catg = hid.hier_catg
and hid.ver_id = ''
left outer join uhdt_job_log as actjob on v.ver_id = actjob.ver_id and actjob.action = '1' //for activate job
left outer join uhdt_job_log as downloadjob on v.ver_id = downloadjob.ver_id and downloadjob.action = '3' //for download job
association [1..1] to fac_cds_uh_category as to_category on $projection.HierarchyCategory = to_category.CategoryKey
association [1..*] to fac_cds_uh_node as to_node on $projection.calVersionId = to_node.VersionId
association [1..*] to fac_cds_uh_clfd_value as to_clfd_value on $projection.VersionId = to_clfd_value.ObjectId
association [1..1] to fac_cds_uh_futb_hd_multiattr as to_merged_attrvals on $projection.VersionId = to_merged_attrvals.Ver_Id
association [0..*] to FAC_CDS_UH_CD as to_changelog on $projection.VersionId = to_changelog.VersionId
association [1..1] to FAC_CDS_FUNCTBL_VRSN_MULTITAG as to_vrsntag on $projection.VersionId = to_vrsntag.ver_id
{
key v.ver_id as VersionId,
ver_pid as VersionParentId,
case when ver_status = 'A' and locked_by <> ''
then 'I'
else ver_status end as VersionStatus,
//ver_status as VersionStatus,
ver_vldfm as ValidityStartDate,
ver_vldto as ValidityEndDate,
ver_msg as VersionMessage,
ver_nbr as VersionNumber,
ver_idx as VersionIndex,
v.hier_hid as HierarchyId,
v.hier_catg as HierarchyCategory,
v.updated_at as UpdatedAt,
v.updated_by as UpdatedBy,
v.created_at as CreatedAt,
v.created_by as CreatedBy,
v.node_timedep as HierarchyNodeIsTimeDependent,
h.hier_desc as HierarchyText,
//cast( cast(substring( cast(created_at as abap.char(30)) , 1 , 8) as abap.dats(8)) as fis_cpdat ) as CreatedOn,
//tstmp_to_dats( v.created_at,
//abap_system_timezone( $session.client,'NULL' ),
//$session.client,
//'NULL' ) as CreatedOn,
tstmp_to_dats( v.created_at,
abap_user_timezone( $session.user,$session.client,'NULL' ),
$session.client,
'NULL' ) as CreatedOn,
locked_by as LockedBy,
locked_at as LockedAt,
allow_legacy_tcode_usage as AllowLegacyTCodeUsage,
case when locked_by <> '' and locked_by <> $session.user
then concat(v.ver_id, 'T')
else v.ver_id end as calVersionId,
to_category.CategoryText as CategoryText,
to_merged_attrvals.AttributeValues as AttributeValues,
maintenance_lang as MAINTENANCE_LANG,
to_node,
to_clfd_value,
to_category,
to_changelog,
concat(concat(',',to_vrsntag.hier_tags),',') as HierarchyTags,
to_vrsntag.hier_tagst as HierarchyTagsText,
to_vrsntag,
hid.isprivate as IsPrivate,
'' as ViaJob,
actjob.jobname as ActJobName,
actjob.jobcount as ActJobCount,
actjob.status as ActJobStatus,
actjob.action as ActJobAction,
downloadjob.jobname as DownloadJobName,
downloadjob.jobcount as DownloadJobCount,
downloadjob.status as DownloadJobStatus,
downloadjob.action as DownloadJobAction
}
where
ver_status <> 'T' //filter out Temporary status
and ver_status <> 'B' //filter out Temporary status
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA