Выполнение скрипта python в snaplogic
Я пытаюсь запустить сценарий python через привязку сценария в snaplogic. Я столкнулся с некоторыми проблемами, когда меня просят объявить переменную привязки сценария. Не могли бы вы помочь мне в этом.
2 ответа
При использовании привязки сценария вы должны использовать кнопку "Редактировать сценарий" на самой привязке. Это откроет редактор сценариев и сгенерирует скелетный сценарий на выбранном вами языке (в данном случае Py).
В скелете вы можете увидеть базовые методы и функции, которые мы определяем. Там вы можете увидеть использование скриптхука var и комментарии к нему. Если у вас есть существующий сценарий, я бы рекомендовал попытаться записать его в метод execute этого скелета, чем пытаться реализовать scripthook в существующем коде. Вы также можете определить свои собственные методы и функции в пределах каркасного класса и ссылаться на них с помощью "this". обозначение.
Чтобы получить более быстрые ответы на вопросы, связанные со SnapLogic, я бы рекомендовал посетить сайт сообщества SnapLogic.
Как объяснил @dwhite0101, в Script Snap, когда вы нажимаете Edit Script, вы получаете возможность сгенерировать шаблон кода.
ScriptHook - это интерфейс, который реализован как механизм обратного вызова для Script Snap для вызова сценария. Это помогает вам работать со строками ввода и вывода. Конструктор ниже инициализирует переменные ввода, вывода, ошибки и журнала.самостоятельный объект похож на это в C++, который содержит текущие значения строк.
class TransformScript(ScriptHook):
def __init__(self, input, output, error, log):
self.input = input
self.output = output
self.error = error
self.log = log
Вы можете выполнять преобразования в методе execute:
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)
Убедитесь, что в вашем коде правильный отступ.