Datastage Basic - 如何在转换函数中抑制“先前未定义”警告消息

问题描述 投票:0回答:2

我有一个数据阶段例程转换函数,它执行的操作比以下更复杂一些(接受可以为空的 Arg1):

Ans = Len(Arg1)

在某些情况下,我会在转换阶段调用此转换函数,并且对于某些行,我会传入可为空的时间戳列,并且我相信当我运行作业时,有几个空值会传递到我的函数datastage 主管,我看到我的转换阶段“已完成(参见日志)”,并显示了许多警告消息,他们基本上是这样说的(重复了很多次):

程序“ABC”:第 2 行,变量“Arg1”先前未定义。使用空字符串。

我试图通过使用“ISNULL”函数来检测它来捕获这种情况,但不幸的是我的努力没有成功,我尝试了以下方法:

If ISNULL(Arg1) THEN
   Ans = 0
END
ELSE IF Arg1 = $Null THEN
   Ans = 0
END
ELSE
   Ans = Len(Arg1)
END

同样的问题,只是警告消息上的行号不同。

我不明白为什么会发生这种情况,“ISNULL”函数似乎很简单,我相信错误消息指的是 Arg1 为空的事实。我发现了一些与此相关的帖子,但我没有直接链接,是否准确,数据阶段基本中的 undefined = null 是否正确,或者我可以通过其他方式捕获此条件吗?

我进行了广泛的搜索,此应用程序中的所写的内容是过时且古老的,并且并未真正提供有关警告消息本身的任何相关信息。是否有更好的资源来查找有关数据阶段警告消息的相关信息,我觉得我好像不了解数据阶段的核心租户。如何在函数内部捕获此条件并仅使用数据阶段基本代码(不更改我的输入或列类型)抑制警告消息?

function undefined basic datastage ibm-infosphere
2个回答
0
投票


0
投票
Assigned

”函数完成了这一点,所以我的最终解决方案如下: If NOT(ASSIGNED(Arg1)) THEN Ans = 0 END ELSE Ans = Len(Arg1) END

© www.soinside.com 2019 - 2024. All rights reserved.