【问题标题】:how to set current month as default value on simple parameter on pentaho cde?如何将当前月份设置为 pentaho cde 中简单参数的默认值?
【发布时间】:2019-12-24 16:32:13
【问题描述】:

我有一个简单的参数,我应该传递当月的第一天。 我应该在财产价值上写什么?

【问题讨论】:

    标签: pentaho pentaho-cde pentaho-ctools


    【解决方案1】:

    您可以创建一个自定义参数,它允许您将其设置为 Javascript 函数的返回值:

    function(){
      var now = new Date();
      return now.getMonth() + 1;
    }
    

    当您加载仪表板时,将计算参数并将具有介于 1 和 12 之间的整数值。

    如果您希望参数将本月第 1 天的日期字符串作为值,您可以改为使用

    function(){
      var now = new Date();
      var y = now.getFullYear();
      var m = now.getMonth()+1;
      m = (m<10 ? '0' : '') + m;
      var d = '01';
      return y + '-' + m + '-' + d;
    }
    

    这将以yyyy-MM-dd 格式的字符串形式返回当月第一天的日期。

    【讨论】:

    • 您好,感谢您的回复!我尝试了您的第二个功能,首先,当我使用 getFullyear 时,它根本不起作用(错误处理等)。所以我把它改成了getYear(),然后至少我没有任何错误,但是当我的仪表板一开始加载时,它不起作用(我的图表取决于所选月份没有显示)但是当我选择其他月份时, 有用。我完全不明白。
    • 对不起,有一个错字。它是 getFullYear() (注意大写的 Y)。我会编辑答案。
    【解决方案2】:

    据我所知,属性文件不能有一个公式可以在您使用该值时在运行时进行计算。

    你可以做的是,在你的工作开始时有一个 KTR 会为你设置这个变量。

    你的 KTR 应该是这样的:

    在您的 Root Job 中设置参数 date_mois(完全相同的名称),该变量将被传递给后续的 KTR / JOB 调用(这是默认值,除非取消选中)。

    【讨论】:

    • 感谢您的快速回答。但是我在 Ctools 上。我设法在 PDI 上获得了当前月份(就像你一样),但在 Ctools 上却没有......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多