上载层级出错:节点ID既不在兄弟节点中,也不在子节点中-加载层级问题

这个层级吧,我其实一直没搞懂的。
这次加载层级,好嘛,又出了个错:
在这里插入图片描述
这里涉及到父节点啊,子节点啊,啥啥啥的。

一共6340个节点,6339个不在层级中。。。
然后还有两个节点不在兄弟节点或子节点中。

问题是吧,这个层级不是从ECC抽取的,是个文本文件上载的。我也不能去从源系统层级和BW的层级做对比。

看来得理解层级的根本。理解里面的结构啊。

1.层级结构

首先我们来看看这个文本文档里面是个啥结构吧:
在这里插入图片描述
BW的层级吧,其实就是个树形结构,定义各级的信息。每个等级就代表不同的类型。实际上层级展示的是BW中的特性,是维度的一个参考对象。
一般我们的层级有公司,然后下面有子公司,再底层有其他的公司部门。
或者有地域层级,洲,国家,区域等等。
比较常见的也有时间层级,年月日啥的。
RSH1来看下层级:
在这里插入图片描述
层级是结构化的,并且根据特性的特定评估标准来分组的。层级在每一个等级上都叫做一个node.节点。

1.1 节点类型

层级会有以下几个类型的节点

1.1.1 根节点

最高的节点,其他所有节点的源。根节点也就是这个层级。

1.1.2 子节点

子节点就是从属于另外一个节点。(subordinate to another node)

1.1.3 叶子节点

是层级里面最底层的节点,没有其他的后继节点了。

1.2 结构类型

在这里插入图片描述

1.2.1 排序层级

一个排序层级定义了不同level的层级的节点序列。当你指定一个排序的层级,每个子节点都和他的兄弟节点是排序关系。

1.2.2 区间层级

一个区间层级确定的是一个特性的范围值。你可以用一个区间来表示好多叶子节点。你可以定义一个区间来设置一组值。

1.2.3 基于时间层级

这个就是用来确定日期范围的。你可以定义整个层级或者基于时间的层级结构。也就是说这个层级是基于时间的,那它只能在一个定义的时间范围内可用。你去改这个层级的节点,但是它的名称和版本是不会变的。

1.2.4 基于版本层级

也就是说有相同的名称,但是不同的版本。
我们来看看开发工具自动创建的层级字段定义。
在这里插入图片描述
在所有字段里,比较难理解的就是LINK。链接到另外的一个字段?
这个功能看起来还挺好的,但是我没有用过。

节点啊,时间啊都有体现了。
那版本呢?

如果我们要给这个信息对象导入不同版本的层级呢?
其实在层级名称里面就包括版本。
如果你导入的是时间相关的层级值,那层级名称里面会包括时间范围。

我们抽取层级时,Data Integration Service会加载层级到层级结构字段。

2. 错误解析

好了,到这就有结果了。
打开层级小扳手,技术ID信息,可以看到LINK是空的。后面的ID分别是父节点,子节点,兄弟节点。

01是父节点,它的子节点是02,02的父节点是01,02的兄弟节点是0528.
在这里插入图片描述
那我们的错是这个:
在这里插入图片描述
在这里插入图片描述
01作为一个最高节点没有父节点和兄弟节点。
但是下面的1384也没有父节点,那不就和01是兄弟节点了么。
这就冲突了。

在文本文件里看不清楚,实际上用excel打开会很清楚:
LINK的这个字段是空的。所以0表示的是父节点。
在这里插入图片描述

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页