最近我开始使用Odi12c程序,直到现在只有映射。现在,我有一个具有不同表和连接的映射,我需要按列进行计算。为此,我必须使用 java 方法,所以我有这样的东西:
public void static List<Map<String, String>> seg( List<Map<String, String>> comp) {
for (Map<String, String> map : comp) {
if (total > 0 && min1 != min1_fin) {
rest = total - min1;
total-=min1;
map.replace("min1_fin",rest);
map.replace("total",total);
} else {a= true}
if (a) { //(operation for next column)
if (total > 0 && min2 != min2_fin) {
rest = total - min2;
.
..
...
}
return comp;
}
我的清单:
KEY TOTAL MIN1 MIN2 MIN1_FIN MIN2_FIN
------ -------- -------- ------- --------- ----------
1 35,14 61,85 91,85 0 0
1 35,14 8,09 58,32 0 0
2 85,67 6 6 0 0
2 85,67 67,6 71,47 0 0
我考虑过将所有内容放在包中,将我的代码直接放在一个过程中或放在一个 jar 中并调用它(我仍然不知道如何(。
但是有可能做到这一点吗?如何以这种方式将数据发送到我的 java 方法并在返回时读取它?
如果需要将结果存储在数据库中,则使用 Java 进行转换不是最佳模式。在SQL中执行此操作将更加高效。
无论如何,如果你真的想使用 Java,你可以通过绑定数据将数据从 Source 命令传递到任何过程步骤或 KM 步骤的目标命令。这是关于它的文档:https://docs.oracle.com/cd/E15586_01/integrate.1111/e12643/procedures.htm#CHDGDJGB 确保在产品定义中选中"多连接"复选框。数据将通过执行代理传递。