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

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 13: Строка 13:
 
== Пример успешного вызова ==
 
== Пример успешного вызова ==
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
CallMethod( query_id, guid_module, module_method, parameters_module_method, account_id )
+
 
 +
query_id = str(uuid.uuid4())
 +
module_method = "ExtSdk2.AuthByPassword"
 +
parameters_module_method = json.dumps({"Login": "login", "Password": "password"}, ensure_ascii=True)
 +
 
 +
CallMethod( query_id, guid_module, module_method, parameters_module_method, session_id )
 +
 
 +
</syntaxhighlight>
 +
 
 +
== Пример ответа ==
 +
<syntaxhighlight lang="python" line='line'>
 +
 
 +
    def read_all_object( [ query_id ] ):
 +
       
 +
        # Словарь с функциями обработки событий по типу
 +
        supported_events = {
 +
            'Message': parse_Message,
 +
            'Error': parse_Error,
 +
            'Event': parse_Event
 +
        }
 +
 
 +
        json_string = ole.ReadAllObject()
 +
        events = json.loads(json_string)
 +
 
 +
        for event in events:
 +
            event_type = event.get('type')
 +
            supported_events[event_type](event)
 +
         
 +
            if( event[ 'queryID' ] == query_id )
 +
              return event[ 'data' ]
 +
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
[[Категория:OLE ExtSdk2]]
 
[[Категория:OLE ExtSdk2]]

Версия 15:00, 1 июня 2021

Описание

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

Параметры

  • query_id ! (строка) - uuid для идентификации вызова метода
  • guid_module ! (строка) - uuid модуля полученный через GetModule()
  • parameters_module_method ! (строка) - json с параметрами, сериализованный в строку
  • account_id ! (строка) - идентификатором сессии, полученный при регистрации

Результат

Результат следует ожидать через вызов функции ReadAllObject() В результате должно прийти событие Message, у которого в Result лежит 'результат работы вызываемого метода

Пример успешного вызова

query_id = str(uuid.uuid4())
module_method = "ExtSdk2.AuthByPassword"
parameters_module_method = json.dumps({"Login": "login", "Password": "password"}, ensure_ascii=True)

CallMethod( query_id, guid_module, module_method, parameters_module_method, session_id )

Пример ответа

    def read_all_object( [ query_id ] ):
        
        # Словарь с функциями обработки событий по типу
        supported_events = {
            'Message': parse_Message,
            'Error': parse_Error,
            'Event': parse_Event
        }

        json_string = ole.ReadAllObject()
        events = json.loads(json_string)

        for event in events:
            event_type = event.get('type')
            supported_events[event_type](event)
           
            if( event[ 'queryID' ] == query_id )
               return event[ 'data' ]