CallMethodXML — различия между версиями
Строка 15: | Строка 15: | ||
query_id = str(uuid.uuid4()) | query_id = str(uuid.uuid4()) | ||
− | module_method = "ExtSdk2. | + | module_method = "ExtSdk2.WriteDocument" |
− | parameters_module_method = | + | parameters_module_method = "<object><object name="Document"></object></object>" |
− | |||
CallMethodXML( query_id, guid_module, module_method, parameters_module_method, session_id ) | CallMethodXML( query_id, guid_module, module_method, parameters_module_method, session_id ) |
Версия 17:07, 1 июня 2021
Описание
Вызов методов модуля плагина c авторизацией( с имеющимся идентификатором сессии - session_id ). Предназначен для вызовов из интегрируемых систем, работающих с xml, таких как 1C или SAP.
Параметры
- query_id ! (строка) - uuid для идентификации вызова метода
- guid_module ! (строка) - uuid модуля полученный через GetModule()
- parameters_module_method ! (строка) - json с параметрами, сериализованный в строку
- account_id ! (строка) - идентификатором сессии, полученный при регистрации
Результат
Результат следует ожидать через вызов функции ReadAllXml2() В результате должно прийти событие Message, у которого в Result лежит 'результат работы вызываемого метода
Пример успешного вызова
query_id = str(uuid.uuid4())
module_method = "ExtSdk2.WriteDocument"
parameters_module_method = "<object><object name="Document"></object></object>"
CallMethodXML( query_id, guid_module, module_method, parameters_module_method, session_id )
Пример ответа
answer = read_all_xml( query_id )
result = answer[ 'Result' ]
def read_all_xml( query_id ):
# Словарь с функциями обработки событий по типу
supported_events = {
'Message': parse_Message,
'Error': parse_Error,
'Event': parse_Event
}
xml_string = ole.ReadAllXml2()
events = parse_xml_to_json(xml_string)
for event in events:
event_type = event.get('type')
supported_events[event_type](event)
if( event[ 'queryID' ] == query_id )
return event[ 'data' ]