-2

我正在尝试通过 snaplogic 中的脚本快照运行 python 脚本。我面临一些问题,它要求我声明一个脚本挂钩变量。你能帮我解决这个问题吗?

4

2 回答 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 回答