Эффективная работа с API СБИС — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Новая страница: «==Обработка служебных этапов== Смысл операции это выполнение обязательных действий над э…»)
 
 
Строка 2: Строка 2:
 
Смысл операции это выполнение обязательных действий над электронными документами, в основном это отправка извещений о получении. Данная операция облегчает данную процедуру тем,  
 
Смысл операции это выполнение обязательных действий над электронными документами, в основном это отправка извещений о получении. Данная операция облегчает данную процедуру тем,  
 
что генерирует для пользователя необходимые файлы. Пользователю как правило остается только их подписать.
 
что генерирует для пользователя необходимые файлы. Пользователю как правило остается только их подписать.
 +
  
 
Максимальная эффективность операции достигается за счет правильного параллельного / многопоточного выполнения операции.
 
Максимальная эффективность операции достигается за счет правильного параллельного / многопоточного выполнения операции.
1. Получить список организаций для которых есть служебные этапы (СБИС.ИнформацияОСлужебныхЭтапах)
+
# Получить список организаций для которых есть служебные этапы (СБИС.ИнформацияОСлужебныхЭтапах)
2. Параллельно для каждой организации получить список служебных этапов - СБИС.СписокСлужебныхЭтапов, возвращается список этапов которые необходимо выполнить для продолжения документооборота по данному документу. Выданные этой функцией этапы (документы) блокируются на 1 минуту от аналогичных вызовов. Поэтому для максимальной производительности необходимо ограничиваться список этапов, таким количеством - которые вы способны обработать в течении 1 минуты, при не выполнении данного требование эффективность работы методов API существенно снижается. Оптимально запрашивать 25-50 этапов. Так же для достижения максимальной производительности необходимо организовать работу таким образом, чтобы СписокСлужебныхЭтапов по одной организации в один момент времени вызывался кем то одним - это существенно убыстряет работу API, т.к. не требуется добирать записи из-за наличия заблокированных.   
+
# Параллельно для каждой организации получить список служебных этапов - СБИС.СписокСлужебныхЭтапов, возвращается список этапов которые необходимо выполнить для продолжения документооборота по данному документу. Выданные этой функцией этапы (документы) блокируются на 1 минуту от аналогичных вызовов. Поэтому для максимальной производительности необходимо ограничиваться список этапов, таким количеством - которые вы способны обработать в течении 1 минуты, при не выполнении данного требование эффективность работы методов API существенно снижается. Оптимально запрашивать 25-50 этапов. Так же для достижения максимальной производительности необходимо организовать работу таким образом, чтобы СписокСлужебныхЭтапов по одной организации в один момент времени вызывался кем то одним - это существенно убыстряет работу API, т.к. не требуется добирать записи из-за наличия заблокированных.   
3. Параллельное закрытие полученного списка служебных этапов. Для каждого служебного этапа в отдельном потоке последовательно вызываются СБИС.ПодготовитьДействие - происходит генерация необходимых файлов, и СБИС.ВыполнитьДействие закрытия этапа.
+
# Параллельное закрытие полученного списка служебных этапов. Для каждого служебного этапа в отдельном потоке последовательно вызываются СБИС.ПодготовитьДействие - происходит генерация необходимых файлов, и СБИС.ВыполнитьДействие закрытия этапа.
4. Повторять п.2-3 пока не вернется пустой список служебных этапов.
+
# Повторять п.2-3 пока не вернется пустой список служебных этапов.
  
 
Нет необходимости обрабатывать служебные двумя разными приложениями, проверьте что они получает то что им нужно. СБИС Коннект, другие средства интеграции имеют настройки ограничивающие работу в разрезе Организации. Либо это можно сделать путем ограничения прав доступа пользователя под которым производится данная операция.
 
Нет необходимости обрабатывать служебные двумя разными приложениями, проверьте что они получает то что им нужно. СБИС Коннект, другие средства интеграции имеют настройки ограничивающие работу в разрезе Организации. Либо это можно сделать путем ограничения прав доступа пользователя под которым производится данная операция.
Строка 14: Строка 15:
 
Максимальная эффективность достигается аналогичным способом.
 
Максимальная эффективность достигается аналогичным способом.
  
1. Параллельная обработка списка по разным организациям.
+
# Параллельная обработка списка по разным организациям.
2. Обработка списка только одним пользователем, блокировка данной функции всем остальным пользователям - так как это пустая трата ресурсов.
+
# Обработка списка только одним пользователем, блокировка данной функции всем остальным пользователям - так как это пустая трата ресурсов.
3. Параллельная обработка событий может быть затруднена наличием событий по одному и тому же документу, поэтому имеет смысл полученный список сгруппировать по документам, а затем если процедура обработки продолжительная по времени параллельно обработать.
+
# Параллельная обработка событий может быть затруднена наличием событий по одному и тому же документу, поэтому имеет смысл полученный список сгруппировать по документам, а затем если процедура обработки продолжительная по времени параллельно обработать.
 
   
 
   
 
 
  
 
С технической точки зрения операция состоит из следующих действий:
 
С технической точки зрения операция состоит из следующих действий:
Строка 27: Строка 26:
  
  
 +
Выданные этой функцией документы блокируются на 1 минуту от аналогичных вызовов.
  
Выданные этой функцией документы блокируются на 1 минуту от аналогичных вызовов.
 
  
 
Для достижения максимальной эффективность данной операции её следует выполнять многопоточно.
 
Для достижения максимальной эффективность данной операции её следует выполнять многопоточно.

Текущая версия на 11:01, 8 октября 2019

Обработка служебных этапов

Смысл операции это выполнение обязательных действий над электронными документами, в основном это отправка извещений о получении. Данная операция облегчает данную процедуру тем, что генерирует для пользователя необходимые файлы. Пользователю как правило остается только их подписать.


Максимальная эффективность операции достигается за счет правильного параллельного / многопоточного выполнения операции.

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

Нет необходимости обрабатывать служебные двумя разными приложениями, проверьте что они получает то что им нужно. СБИС Коннект, другие средства интеграции имеют настройки ограничивающие работу в разрезе Организации. Либо это можно сделать путем ограничения прав доступа пользователя под которым производится данная операция.

Получение списка изменений

Максимальная эффективность достигается аналогичным способом.

  1. Параллельная обработка списка по разным организациям.
  2. Обработка списка только одним пользователем, блокировка данной функции всем остальным пользователям - так как это пустая трата ресурсов.
  3. Параллельная обработка событий может быть затруднена наличием событий по одному и тому же документу, поэтому имеет смысл полученный список сгруппировать по документам, а затем если процедура обработки продолжительная по времени параллельно обработать.


С технической точки зрения операция состоит из следующих действий: 1. Получение списка служебных этапов - СБИС.СписокСлужебныхЭтапов, возвращается список этапов которые необходимо выполнить для продолжения документооборота по данному документу. 2. Закрытие служебных этапов. Для каждого служебного этапа вызывается СБИС.ПодготовитьДействие - происходит генерация необходимых файлов, и выполнения действия СБИС.ВыполнитьДействие 3. Операция повторяется до тех пор пока СБИС.СписокСлужебныхЭтапов не вернет пустой список.


Выданные этой функцией документы блокируются на 1 минуту от аналогичных вызовов.


Для достижения максимальной эффективность данной операции её следует выполнять многопоточно.