我正在尝试找出一种方法,如何更改我定义的参数值,以及如何使用Clover ETL中的REFORMAT component动态创建一个新参数。
我已经在我的transform方法中编写了一些小逻辑,reformat组件提供了:
function integer transform() {
string myparam1 = getParamValue("MY_PARAM1");
string changeParam = getParamValue("CHANGE_PARAM_VALUE");
if(changeParam =="true"){
myparam1 = myparam1 +"_changed";
}
// update the value of parameter MY_PARAM1
// updateParameter("MY_PARAM1", myparam1 );
// create a new parameter
// createNewParameter("MY_NEW_PARAM", "some_sample_data");
return OK;
}从三叶草设计器,我试图检查可用的方法,但我没有找到任何相关的方法,帮助我提供我正在寻找的功能。
我是三叶草ETL的新手,所以我在如何实现这一点上遇到了困难,请帮助我,如果我们可以使用重新格式化组件实现这一点,或者我们需要使用不同的组件?
发布于 2013-12-28 01:42:42
你不能改变CloveETL中参数的值(在简单的方法中,可能有一种方法可以通过java和图形模型直接访问,但这可能不是你需要的),因为它们是以静态方式使用的,所有参数的出现都会在图形编译期间被解析并替换为结果值。
如果您需要动态变量,请查看字典http://doc.cloveretl.com/documentation/UserGuide/topic/com.cloveretl.gui.docs/docs/using-dictionary.html?resultof=%22%64%69%63%74%69%6f%6e%61%72%79%22%20
但您需要考虑,字典并不是参数的绝对替代品。参数的静态用法有一些您不能用字典替换的要点和用法。
顺便说一下,为什么在图形运行过程中需要更改参数值?请解释一下用例,也许我可以给你一些建议……
发布于 2019-10-16 20:33:30
不能更改图形参数的值,因为它们是在图形的初始化阶段设置的。但是,有几种方法可以实现您可能想要的结果:
https://stackoverflow.com/questions/20784364
复制相似问题