Обработка служебных событий - Сценарии ExtSdk2 — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 17: Строка 17:
  
 
     ole.CallMethod( query_id, guid_module, module_method, parameters_module_method, account_id )
 
     ole.CallMethod( query_id, guid_module, module_method, parameters_module_method, account_id )
 
    json_string = ole.ReadAllObject()
 
 
        
 
        
 
</syntaxhighlight>
 
</syntaxhighlight>

Версия 11:00, 12 мая 2021

Обработка служебных событий

Обработка служебных событий необходима для документов, которые требуют обязательной обработки. Например, подпись извещений о получении документа. Это трудоемкий процесс через методы API в электронном документообороте, требующий большого внимания. Необходимо получать списки этапов( СБИС.СписокСлужебныхЭтапов ), подготавливать необходимые действия( СБИС.ПодготовитьДействие ) и выполнять их( СБИС.ВыполнитьДействие ), что может занять значительное количество времени и ресурсов.

Для решения данной проблемы в ExtSdk2 реализован метод ProcessServiceStagesEx , который по переданному фильтру получает список служебных этапов и выполняет интеллектуальную асинхронную обработку над ними. Такой подход позволяет избежать ошибок при обработке служебных этапов и увеличить производительность работы. Объект фильтра совпадает с фильтром метода ( СБИС.СписокСлужебныхЭтапов ). Размер списка этапов по умолчанию 10шт и может быть увеличен до 20, как указано в объекте фильтра.

Пример работы с методом ProcessServiceStagesEx

    query_id = str(uuid.uuid4())
    module_method = "ExtSdk2.ProcessServiceStagesEx "
    filter{}
    parameters_module_method = json.dumps({"Filter": filter}, ensure_ascii=True)
    account_id = ********@plugin.sbis.ru

    ole.CallMethod( query_id, guid_module, module_method, parameters_module_method, account_id )

Пример получения ответов см. Подключение к ExtSdk2 через OLE

Если метод вернул в ответе ЕстьНеобработанныеЭтапы - "Да" по переданному фильтру, то это означает что запрашиваемое количество этапов обработано( указано в ответе ОбработаноЭтапов - 10 ). Следует вызывать метод ProcessServiceStagesEx необходимое количество раз пока в ответе не придет ЕстьНеобработанныеЭтапы - "Нет"