FAC_CDS_UH_ATTR_VAL_JSON

DDL: FAC_CDS_UH_ATTR_VAL_JSON SQL: FACV_UH_ATTRVAL Type: view

Node Attribute Value

FAC_CDS_UH_ATTR_VAL_JSON is a CDS View that provides data about "Node Attribute Value" in SAP S/4HANA. It reads from 6 data sources and exposes 9 fields. It has 1 association to related views.

Data Sources (6)

SourceAliasJoin Type
uhdt_natr atrdef inner
uhdt_nattrvals atrval from
uhdt_navt ftxt left_outer
uhdt_node node inner
uhdt_nattrvalst text left_outer
uhdt_vrsn ver inner

Associations (1)

CardinalityTargetAliasCondition
[1..1] fac_cds_uh_category to_category $projection.node_catg = to_category.CategoryKey

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName FACV_UH_ATTRVAL view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Node Attribute Value view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view

Fields (9)

KeyFieldSource TableSource FieldDescription
client uhdt_nattrvals client
node_catg uhdt_natr node_catg
node_id uhdt_nattrvals node_id
attr_name uhdt_nattrvals attr_name
node_type uhdt_natr node_type
node_entity uhdt_natr node_entity
hval_txtATTR_UXFCendendasattr_val
ver_id uhdt_node ver_id
to_category to_category
@AbapCatalog.sqlViewName: 'FACV_UH_ATTRVAL'
//@AbapCatalog.compiler.compareFilter: true

@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Node Attribute Value'

@ObjectModel.usageType: {
  dataClass: #MASTER,
  serviceQuality: #C,
  sizeCategory: #M
}
define view FAC_CDS_UH_ATTR_VAL_JSON
  as select from uhdt_nattrvals as atrval 
  inner join uhdt_natr as atrdef on atrval.attr_name = atrdef.attr_name 
  inner join uhdt_node as node on atrval.node_id = node.node_id and node.node_entity = atrdef.node_entity and node.node_type = atrdef.node_type
  inner join uhdt_vrsn as ver on node.ver_id = ver.ver_id and ver.hier_catg = atrdef.node_catg
  left outer join uhdt_nattrvalst as text on atrval.attr_name = text.attr_name and atrval.attr_lval = text.attr_lval and
  atrval.attr_hval = text.attr_hval and atrval.node_id = text.node_id and text.lang = $session.system_language
  left outer join uhdt_navt as ftxt on atrval.attr_name = ftxt.attr_name and atrval.attr_lval = ftxt.attr_valu and
  ver.hier_catg = ftxt.node_catg and node.node_entity = ftxt.node_entity and node.node_type = ftxt.node_type and ftxt.valu_lang = $session.system_language
  association [1..1] to fac_cds_uh_category   as to_category   on $projection.node_catg = to_category.CategoryKey   
{
  atrval.client,
  atrdef.node_catg,
  atrval.node_id,
  atrval.attr_name,
  atrdef.node_type,
  atrdef.node_entity,
  case atrdef.attr_type
   when 'S'  then 
       case 
        when ftxt.valu_text is null
        then  concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat('', '","ATTR_UXFC":""}')))
        else  
         concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat(replace(ftxt.valu_text,'"','\"'), '","ATTR_UXFC":""}')))
        end
   when 'M' then
       case 
        when ftxt.valu_text is null
        then  concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat('', '","ATTR_UXFC":""}')))
        else  
         concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat(replace(ftxt.valu_text,'"','\"'), '","ATTR_UXFC":""}')))
        end
   else 
      case 
        when ( atrval.attr_hval is null or atrval.attr_hval = '' ) and text.lval_txt is null
        then  concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat('', '","ATTR_UXFC":""}')))
        when ( atrval.attr_hval is null or atrval.attr_hval = '' ) and text.lval_txt is not null    
        then  concat( concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), '",'))), concat('"LVAL_TXT":"', concat(replace(text.lval_txt,'"','\"'), '","ATTR_UXFC":""}')))
        when ( atrval.attr_hval is not null and atrval.attr_hval <> '') and ( text.lval_txt is null or text.hval_txt is null )
        then concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat(concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), concat( '","LVAL_TXT":"', concat('', '",')))),concat('"ATTR_HVAL":"', concat(replace(atrval.attr_hval,'"','\"'), concat( '","HVAL_TXT":"', concat('', '","ATTR_UXFC":""}'))))))
        else concat( concat(concat('{ "ATTR_NAME": "', atrval.attr_name), '",' ), concat(concat('"ATTR_LVAL":"', concat(replace(atrval.attr_lval,'"','\"'), concat( '","LVAL_TXT":"', concat(replace(text.lval_txt,'"','\"'), '",')))),concat('"ATTR_HVAL":"', concat(replace(atrval.attr_hval,'"','\"'), concat( '","HVAL_TXT":"', concat(replace(text.hval_txt,'"','\"'), '","ATTR_UXFC":""}')))))) 
      end
  end as attr_val,
  node.ver_id,
  to_category
} 
where atrdef.attr_technical <> 'X'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"UHDT_NATR",
"UHDT_NATTRVALS",
"UHDT_NATTRVALST",
"UHDT_NAVT",
"UHDT_NODE",
"UHDT_VRSN"
],
"ASSOCIATED":
[
"FAC_CDS_UH_CATEGORY"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/