我正在尝试通过 snaplogic 中的脚本快照运行 python 脚本。我面临一些问题,它要求我声明一个脚本挂钩变量。你能帮我解决这个问题吗?
问问题
395 次
2 回答
2
使用脚本快照,您应该使用快照本身的“编辑脚本”按钮。这将打开一个脚本编辑器并以您选择的语言(在本例中为 Py)生成一个框架脚本。
在骨架中,您可以看到我们定义的基线方法和函数。在那里你可以看到 scripthook var 的用法和注释。如果您有一个现有的脚本,我建议您尝试将其写入此骨架的执行方法,而不是尝试在现有代码中实现 scripthook。您还可以在骨架类的范围内定义自己的方法和函数,并用“this”引用它们。符号。
要获得有关 SnapLogic 相关问题的更快答案,我建议您访问 SnapLogic 社区站点。
于 2020-02-27T15:31:57.327 回答
2
正如@dwhite0101 所解释的,在 Script Snap 中,当您单击 Edit Script 时,您会获得一个生成代码模板的选项。
ScriptHook 是一个接口,它被实现为 Script Snap 调用脚本的回调机制。它可以帮助您处理输入和输出行。下面的构造函数初始化输入、输出、错误和日志变量。 self对象与保存当前行值的 c++ 中的this类似。
class TransformScript(ScriptHook):
def __init__(self, input, output, error, log):
self.input = input
self.output = output
self.error = error
self.log = log
您可以在执行方法中执行转换:
def execute(self):
self.log.info("Executing Transform script")
while self.input.hasNext():
in_doc = self.input.next()
wrapper = java.util.HashMap()
for field in in_doc:
#your code
下一步是将结果存储在一个对象中并输出:
wrapper['original'] = result
self.output.write(result, wrapper)
确保正确缩进你的代码。
于 2020-03-15T18:31:31.697 回答