CallMethodXML — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 5: Строка 5:
 
* {{Шаблон:ApiParam|query_id|1|строка|uuid для идентификации вызова метода}}
 
* {{Шаблон:ApiParam|query_id|1|строка|uuid для идентификации вызова метода}}
 
* {{Шаблон:ApiParam|guid_module|1|строка|uuid модуля полученный через GetModule()}}
 
* {{Шаблон:ApiParam|guid_module|1|строка|uuid модуля полученный через GetModule()}}
 +
* {{Шаблон:ApiParam|module_method |1|строка|Имя вызываемого метода модуля}}
 
* {{Шаблон:ApiParam|parameters_module_method|1|строка|json с параметрами, сериализованный в строку}}
 
* {{Шаблон:ApiParam|parameters_module_method|1|строка|json с параметрами, сериализованный в строку}}
 
* {{Шаблон:ApiParam|account_id|1|строка| идентификатором сессии, полученный при регистрации}}
 
* {{Шаблон:ApiParam|account_id|1|строка| идентификатором сессии, полученный при регистрации}}

Версия 11:16, 21 июля 2021

Описание

Вызов методов модуля плагина c авторизацией( с имеющимся идентификатором сессии - session_id ). Предназначен для вызовов из интегрируемых систем, работающих с xml, таких как 1C или SAP.

Параметры

  • query_id ! (строка) - uuid для идентификации вызова метода
  • guid_module ! (строка) - uuid модуля полученный через GetModule()
  • module_method ! (строка) - Имя вызываемого метода модуля
  • 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' ]