繁体   English   中英

如何在Clover ETL中使用重新格式化组件更改参数的值

[英]How to change value for parameters using reformat component in Clover ETL

我试图找出一种方法,该方法如何更改已定义的参数的值,以及如何使用Clover ETL中的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;
        }

从三叶草设计师那里,我试图检查可用的方法,但是我没有找到任何相关的方法来帮助我提供所需的功能。

我是Clover ETL的新手,所以我在实现此目标方面遇到困难,如果我们可以使用REFORMAT组件实现此目标,或者需要使用其他组件,请帮助我。

您无法更改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

但是您需要考虑的是,字典并不能完全替代参数。 参数的静态用法具有某些要点和用法,您无法用字典代替。

顺便说一句,为什么在图表运行期间需要更改参数值? 请解释用例,也许我可以给你一些指导...

您无法更改图形参数的值,因为它们是在图形的初始化阶段设置的。 但是,有两种方法可以实现您可能想要的:

  • 选项1:按计划运行图形,然后从计划程序传递参数值。

  • 选项2:无论哪个组件需要将参数的修改后的值放在子图中,然后创建一个具有相同名称的子图参数,并将修改后的值作为输入映射的一部分从主图传递到子图,图形。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM