【发布时间】:2019-06-24 14:16:30
【问题描述】:
我的任务是查看一个数据库 (SAP iDoc),其中包含由段派生的特定值。我必须在映射的末尾导出一个 xml,该映射的子组件可以包含多行。我的问题是我们有一个组件有两个由限定符分隔的值。
每笔交易都是这样的:
+----------+-----------+--------+
| QUALF_1 | BETRG_dc | DOCNUM |
+----------+-----------+--------+
| 001 | 20 | xxxxxx |
| 001 | 22 | xxxxxx |
+----------+-----------+--------+
+---------+-----------+-----------+
| QUALF_2 | BETRG_pr | DOCNUM |
+---------+-----------+-----------+
| 013 | 30 | xxxxxx |
| 013 | 40 | xxxxxx |
+---------+-----------+-----------+
我的问题是,当与内置变换相结合时,我们会有这样的几何级数
+---------+-----------+-----------+
| DOCNUM | BETRG_dc | BETRG_pr |
+---------+-----------+-----------+
| xxxxxx | 20 | 30 |
| xxxxxx | 20 | 40 |
| xxxxxx | 22 | 30 |
| xxxxxx | 22 | 40 |
+---------+-----------+-----------+
如您所见,只有第一行和最后一行是正确的。
问题在于,如果 BETRG_dc 为 0,则未发送整个段,因此过滤器转换失败。
我发现 QUALF_1 和 QUALF_2 的段号是连续的。所以 QUALF_1 是例如 48,QUALF_2 是 49。
你能帮我创建一个为缺少的 QUALF_1 添加一行的 JAVA 转换吗?
这里是要求表:
+-------+-------+---------------+
| QUALF | BETRG | SegmentNumber |
+-------+-------+---------------+
| 013 | 20 | 48 |
| 001 | 150 | 49 |
| 013 | 15 | 57 |
| 001 | 600 | 58 |
+-------+-------+---------------+
我想让转换看看,如果我们有这样的来源:
+-------+-------+---------------+
| QUALF | BETRG | SegmentNumber |
+-------+-------+---------------+
| 001 | 150 | 49 |
| 013 | 15 | 57 |
| 001 | 600 | 58 |
+-------+-------+---------------+
继续插入一个段 id 为 48 且 BETRG 值为“0”的行。
我已经尝试了所有我能做的转变。
预期的输出应该是这样的:
+-------+-------+---------------+
| QUALF | BETRG | SegmentNumber |
+-------+-------+---------------+
| 013 | 0 | 48 |
| 001 | 150 | 49 |
| 013 | 15 | 57 |
| 001 | 600 | 58 |
+-------+-------+---------------+
【问题讨论】:
-
嗨,亚历山大,欢迎来到 StackOverflow!只是一个提示,你应该使用三个反引号 ``` 来包装你的表/代码,它将代码格式化为一个易于阅读的代码块。我还建议您正确对齐和缩进任何表格/代码,这样更容易阅读并增加您获得帮助的可能性并减少您被否决的机会。糟糕的格式可能是您收到一票或多票反对票的原因。
-
现在已修复。
-
很好,好多了:) 谢谢!
标签: java informatica informatica-powercenter