kettle问题

源数据.zip

image.png15228faa60f2afbe50bc177d9af2783c.png这是为啥?

order_date就可以直接用

image.png

显式声明后

image.png

第二次更新后

image.png

第三次更新

image.png

FineReport Yours飞飞 发布于 3 小时前 (编辑于 2 小时前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于3 小时前(编辑于 2 小时前

要这样

var order_id; // 声明输入字段(必须!)

var test = order_id.slice(-3);

其实在kettle中使用,最标准的写法是要生声明的,这个是真正好用的时候,不会发生版本不同造成报错的情况!!

// 所有输入字段都要声明!
var order_id;      // String
var create_date;   // Date
var amount;        // Number

// 然后再安全使用
var suffix = order_id ? order_id.slice(-3) : "";
var year = create_date ? create_date.getFullYear() : null;

image.png

image.png

  • Yours飞飞 Yours飞飞(提问者) 不是吧老师,order_date就可以直接用
    2025-11-16 09:20 
  • CD20160914 CD20160914 回复 Yours飞飞(提问者) 标准都是要声明,不声明只是某一些版本正好不报错,但是不会保证每次日期格式不声明都不会报错的。相信我。它的标准是要声明的。有一些版本有宽容度隐式声明了。
    2025-11-16 09:22 
  • Yours飞飞 Yours飞飞(提问者) 回复 CD20160914 老师,我这个是什么问题?
    2025-11-16 09:26 
  • CD20160914 CD20160914 回复 Yours飞飞(提问者) 是数字不能直接截取的呀,要转换成文本格式才行的呀,这个是js中的基础的呀,不要把它理解成像excel或者帆软那样。它是要按标准来的!!!上面最后一张图的转换你自己看吧。
    2025-11-16 09:27 
  • CD20160914 CD20160914 回复 Yours飞飞(提问者) var order_id;
    var test = "";
    test = order_id.toString().slice(-3);
    2025-11-16 09:29 
最佳回答
0
Z4u3z1Lv6专家互助
发布于3 小时前

没有定义order_id变量

  • Yours飞飞 Yours飞飞(提问者) 从表里获取的字段啊,还用定义嘛?
    2025-11-16 09:16 
  • Z4u3z1 Z4u3z1 回复 Yours飞飞(提问者) 你是表的字段,又不是这段js的。js里面要用都得先声明(定义)这是标准
    2025-11-16 09:45 
  • 2关注人数
  • 91浏览人数
  • 最后回答于:2 小时前
    请选择关闭问题的原因
    确定 取消
    返回顶部