首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Clover ETL中的reformat组件更改参数值

如何使用Clover ETL中的reformat组件更改参数值
EN

Stack Overflow用户
提问于 2013-12-26 19:52:56
回答 2查看 979关注 0票数 2

我正在尝试找出一种方法,如何更改我定义的参数值,以及如何使用Clover ETL中的REFORMAT component动态创建一个新参数。

我已经在我的transform方法中编写了一些小逻辑,reformat组件提供了:

代码语言:javascript
复制
        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的新手,所以我在如何实现这一点上遇到了困难,请帮助我,如果我们可以使用重新格式化组件实现这一点,或者我们需要使用不同的组件?

EN

回答 2

Stack Overflow用户

发布于 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

但您需要考虑,字典并不是参数的绝对替代品。参数的静态用法有一些您不能用字典替换的要点和用法。

顺便说一下,为什么在图形运行过程中需要更改参数值?请解释一下用例,也许我可以给你一些建议……

票数 2
EN

Stack Overflow用户

发布于 2019-10-16 20:33:30

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

  • 选项1:按计划运行图表,然后从计划程序传递参数值。
  • 选项2:任何需要修改参数值的组件都将它们放在子图中,并创建同名的子图参数,然后将修改后的值作为输入映射的一部分从主图传递到子图。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20784364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档