Сначала опишу ситуацию. Я пишу скрипты в web приложении на Jython. Эти скрипты как бы дополнение функционала самого приложения. В приложении есть глобальный объект fdmAPI, где он создается, я не знаю, но в своих скриптах я могу им пользоваться, например,
fdmAPI.logInfo("Begin") #вывод сообщения в лог fdmAPI.executeQuery('select * from aif_procecces where process_id = ?', [fdmContext['LOADID']]) #запрос информации из таблицы с передачей параметра
Вопрос:
Я описала функцию, в которой использую объект fdmAPI, но при выполнении выдает ошибку
NameError: global name ‘fdmAPI’ is not defined. Как исправить? Если код не выносить в функцию, то все работает.
from datetime import datetime fdmAPI.logInfo('Begin custom script') proc_id = fdmContext['LOADID'] def updateStatus(entity_type, state, process_id): global fdmAPI #убирала строку, та же ошибка querySt = "UPDATE AIF_PROCESS_DETAILS SET STATUS = ? ,EXECUTION_END_TIME = ? WHERE PROCESS_ID = ? AND ENTITY_TYPE = ?" cnt = fdmAPI.executeDML(querySt, [state,datetime.now() , process_id, entity_type], True) return cnt updateStatus('PROCESS_CUSTOM_SCRIPT', 'SUCCESS', proc_id)