3.3.4.2. Метод GetDocflowsList
|
|
Этот метод позволяет получать с сервера системы Такском-Доклайнз и обновлять список входящих и исходящих документов (документооборотов), к которым имеет доступ данный сотрудник, с учётом изменения статусов документооборотов (атрибуты Status и InternalStatus), отражающих выполнение транзакций, предусмотренных Регламентами ЭДО, а также передачу документа внутри организации для подписания или согласования.
Если метод вызывается с указанным параметром date, то результат будет содержать список документооборотов, статус которых изменялся после указанного момента времени. Рекомендуется указывать в качестве параметра date момент предыдущего вызова этого метода в соответствии со следующим алгоритмом:
1.
|
Вызов метода GetDocflowsList с указанием даты и времени предыдущего вызова этого метода для получения списка изменений статусов документооборотов.
|
Если в составе хотя бы одной транзакции присутствует параметр AdditionalParameter с Name="GroupID, то вызвать метод GetGroupList (см. п. 3.3.4.17) с той же меткой времени, что и вGetMessageList для получения полного состава групп (пакетов документов).
Если Ваша система предусматривает для ЭДО статусы CompletedWithDivergences и NotAccepted, то параметр includeExtendedDocflowStatuses = true.
2.
|
Сохранение атрибута LastRecordDateTime для использования при следующем вызове метода.
|
3.
|
Проверка значения атрибута IsLast.
|
4.
|
Если IsLast=true, - переход к шагу 8.
|
5.
|
Если IsLast=false, - вызов метода GetDocflowsList с использованием сохранённого значения атрибута LastRecordDateTime в качестве значения параметра Date.
|
6.
|
Добавление полученного результата вызова метода к списку изменений статусов документооборотов.
|
7.
|
Переход к шагу 2.
|
8.
|
Обработка обновлённого списка изменений статусов документооборотов.
|

Если, например, в результате вызова метода получен XML файл с атрибутами IsLast="false" LastRecordDateTime="2013-10-04 14:26:02.697", то при следующем вызове метода GetDocflowsList на шаге 5 параметру Date следует дать значение "2013-10-04 14:26:02.697".
Внимание!
Для поддержания стабильности обработки запросов на сервере Такском-Доклайнз метод GetDocflowsList следует вызывать не чаще, одного раза в минуту.
|
byte[] GetDocflowsList(DocFlowStatus? status, DateTime date, DocFlowDirection? direction, includeExtendedDocflowStatuses? bool, withGroupInfo? bool);
| |
status
|
Статус документооборота:
|
date
|
Этот параметр устанавливает момент времени, начиная с которого будут собраны данные об изменении статусов документооборотов участника ЭДО.
|
direction
|
Для отбора при фильтрации записей о документах только одного из направлений:
|
includeExtendedDocflowStatuses
|
Если этому параметру задано значение true, то результат вызова учитывает значения статусов CompletedWithDivergences и NotAccepted. Если false (значение по умолчанию), или параметр не задан, то вместо статуса CompletedWithDivergences или NotAccepted возвращается значение Succeed.
|
withGroupInfo
|
Необязательный параметр, принимающий значение "true" или "false".
При значении "true" в xml ответа в блок AdditionalData будет записан признак принадлежности к пакету в виде тега AdditionalParameter с Name="GroupID" Value "[GuidGroup]", где [GuidGroup]- GUID группы, в которую входит транзакция.
|
Метод возвращает список документооборотов в формате XML. XSD схема этого XML файла такая же, как для файла meta.xml контейнера Такском (см. п. 2.1.4. Транспортный контейнер Такском) с дополнительным атрибутом docflow InternalStatus, который предназначен для отражения состояния обработки полученного или готовящегося к отправке документа внутри организации и может принимать одно из следующих значений:
•
|
None - значение отсутствует.
|
•
|
OnNegotiation - документ направлен на согласование, ожидает согласования.
|
•
|
NegotiationOk - документ успешно согласован.
|
•
|
NegotiationRejected - согласование документа отклонено.
|
•
|
OnSign - документ направлен на подписание и ожидает подписания или отклонения.
|
•
|
SignOk - документ успешно подписан.
|
•
|
SignRejected - подписание документа отклонено.
|
Каждый документооборот имеет следующие атрибуты:
•
|
Status - см. табл. ниже.
|
•
|
DocflowID - ID документооборота, который используется при вызове других методов (3.3.4.4. Метод GetMainDocumentContainerFromDocflow, 3.3.4.5. Метод GetDocflowRawData и 3.3.4.7. Метод GetStatus). Например, если <DocFlow Id="903f269a-c5b2-4b04-b0a3-17ff1a8c0669" … >, то вызовом метода GetDocflowRawData ("903f269a-c5b2-4b04-b0a3-17ff1a8c0669") с этим параметром можно получить контейнер Такском этого документооборота с исходным документом и всеми служебными сообщениями.
|
•
|
ExternalIdentifier: ID электронного документа в ERP или учётной системе, интегрированной с Такском-Доклайнз.
|
•
|
InternalID: ID электронного документа в системе Такском-Доклайнз (используется при вызове метода PrintDocument).
|
Таблица зависимости значений статусов в ответе метода от значения статуса, указанного в качестве параметра метода GetDocflowsList:
Значение параметра Status, заданное при вызове метода GetDocflowsList
|
Значение параметра includeExtendedDocflowStatuses метода GetDocflowsList
|
Возможные значения параметра Status в XML файле списка документооборотов (в результате вызова метода)
|
Описание
|
Sending
|
false или true
|
NotStarted
|
Электронный документ загружен на сервер Такском-Доклайнз, но метод AutoSendReceive для реализации регламентных транзакций не запущен, или проверка соответствия XSD схеме выявила ошибки.
|
InProgress
|
Некоторые транзакции Регламента ЭДО для данного документа выполнены.
| ||
ResignWaiting
|
false или true
|
InProgress и атрибут ResignRequired в card.xml имеет значение true
|
Входящая накладная ТОРГ-12 или акт о выполнении работ (оказании услуг) ожидает действий Получателя.
|
Succeed
|
false или true
|
Succeed
|
Выполнение транзакций, предусмотренных Регламентом для данного документа, успешно завершено.
|
CompletedWithWarning
|
false или true
|
Warning
|
Документооборот завершен с получением уведомления об уточнении.
|
CompletedWithDivergences
|
true
|
CompletedWithDivergences
|
завершен с расхождениями
|
false
|
Succeed
|
Выполнение транзакций, предусмотренных Регламентом для данного документа, успешно завершено.
| |
NotAccepted
|
true
|
NotAccepted
|
Документ не принят
|
false
|
Succeed
|
Выполнение транзакций, предусмотренных Регламентом для данного документа, успешно завершено.
| |
Fail
|
false или true
|
Error
|
Документооборот не завершен из-за ошибки.
|
WaitingForCancellation
|
false или true
|
InProgress
|
В ожидании аннулирования.
|
Cancelled
|
false или true
|
Warning
|
Документооборот аннулирован.
|
Пример XML файла результата метода GetDocflowsList
<?xml version="1.0" encoding="utf-8" ?>
<ContainerDescription RequestDateTime="2013-10-04 14:51:55.784" IsLast="true" LastRecordDateTime="2013-10-04 14:26:02.697" xmlns="http://api-invoice.taxcom.ru/meta">
<DocFlow Id="903f269a-c5b2-4b04-b0a3-17ff1a8c0669" Status="Succeed" StatusChangeDateTime="2013-10-04 11:36:15.100">
<Documents>
<Document>
<Definition>
<Identifiers InternalId=
"f6008ec6-9a18-4547-999a-dbd33b5b0679" ExternalIdentifier="ON_SFAKT_2AL-93C4DFF6-FE2C-4075-B4FC-
5B4C5519D529-00000_2AL-072439A8-4900-436A-920A-0583E0803F20-00000_20130901_f9ccdae6-
1343-454f-
9fe5-a71edc5d4599.xml" />
</Definition>
</Document>
</Documents>
</DocFlow>
</ContainerDescription>
Существует еще один метод GetDocflowsListWithTransportInfo, который может быть использован для получения более подробной информации о документооборотах, например, получения полного списка выполненных транзакций документооборота, предусмотренных Регламентом . Этот метод принимает и использует те же параметры, что и метод GetDocflowsList.
Метод GetDocflowsListWithTransportInfo также возвращает атрибут ExternalIdentifier, который позволяет связать электронный документ, обработанный в системе Такском-Доклайнз с соответствующими записями в ERP или учётной системе, интегрированной с Такском-Доклайнз.
Например, в фрагменте XML файла ниже атрибут ExternalIdentifier имеет значение "ON_SFAKT_2AL-93C4DFF6-FE2C-4075-B4FC-5B4C5519D529-00000_2AL-072439A8-4900-436A-920A-0583E0803F20-00000_20130901
_f9ccdae6-1343-454f-9fe5-a71edc5d4599.xml", а атрибут docFlowID имеет значение "903f269a-c5b2-4b04-b0a3-17ff1a8c0669". Таким образом, атрибут docFlowID можно использовать, чтобы получить электронный документ и контейнер Такском по его ExternalIdentifier.
Пример XML файла результата метода GetDocflowsListWithTransportInfo
<?xml version="1.0" encoding="utf-8" ?>
<ContainerDescription RequestDateTime="2013-10-04 14:58:20.315" IsLast="true" LastRecordDateTime="2013-10-04 14:26:02.697" xmlns="http://api-invoice.taxcom.ru/meta">
<DocFlow Id="903f269a-c5b2-4b04-b0a3-17ff1a8c0669" Status="Succeed" StatusChangeDateTime="2013-10-04 11:36:15.100">
<Documents>
<Document ReglamentCode="Invoice" TransactionCode="Invoice" DateTime="2013-09-25T15:19:25.61">
<Definition>
<Identifiers InternalId="f6008ec6-9a18-4547-999a-dbd33b5b0679" ExternalIdentifier=
"ON_SFAKT_2AL-93C4DFF6-FE2C-4075-B4FC-5B4C5519D529-00000_2AL-072439A8-4900-436A-920A-0583E0803F20-00000_20130901_f9ccdae6-
1343-454f-9fe5-a71edc5d4599.xml" />
</Definition>
</Document>
<Document ReglamentCode="Invoice" TransactionCode="PostDateConfirmation" DateTime="2013-09-25T15:52:01.797" />
<Document ReglamentCode="Invoice" TransactionCode="PostDateConfirmationReceiveNotice" DateTime="2013-09-30T16:45:30.04" />
<Document ReglamentCode="Invoice" TransactionCode="ReceiveNotice" DateTime="2013-10-04T11:36:15.1" />
</Documents>
</DocFlow>
</ContainerDescription>