MergeOperation v2: различия между версиями

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску
Строка 1128: Строка 1128:
|  
|  
|}
|}
==Пример запроса==
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
<div id="scenario1">Объединение записей складского журнала</div>
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
</syntaxhighlight>
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
<div id="scenario2">Присоединение записей складского журнала</div>
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
</syntaxhighlight>
</div>
</div>


==Коды ошибок==
==Коды ошибок==

Версия 16:15, 18 июля 2017

Общие сведения

Операция MergeOperation предназначена для объединения в системе Меркурий нескольких записей складского журнала продукции в одну, для согласования особенностей партионного учёта, принятого в системе Меркурий и в учётной системе предприятия.

В рамках операции MergeOperation доступны следующие действия:

  • объединение двух и более записей журнала в одну складскую запись журнала. При этом версии присоединяемых записей журнала становятся неактивными, а результирующей записи присваивается новый глобальный идентификатор;
  • присоединение записей журнала. В случае присоединения записей главной записью журнала (к которой осуществляется присоединение), будет считать первая запись из списка. Результирующая запись журнала будет иметь тот же глобальный идентификатор и наименование продукции, что и главная.

На вход системы передаются следующие сведения:

  • информация о пользователе - инициаторе запроса;
  • данные о хозяйствующем субъекте и предприятии, где будет производиться объединение или присоединение записей;
  • позиции в складском журнале системы Меркурий, которые необходимо объединить или присоединить;
  • наименование продукции для объединенной записи журнала и другая дополнительная информация.

Результатом выполнения данной операции является:

  • запись складского журнала продукции, сформированная в результате объединения или присоединения двух или более записей журнала, содержащая общий объем, даты выработки и срок годности.

Возможные сценарии

При обработке запроса возможны следующие сценарии:

1.1. Запрос успешно обработан. Пользователю вернулась объединенная запись, а так же записи измененные в результате операции.
1.2. Произошла ошибка при обработке запроса.
• Некорректный запрос.
• Внутренняя ошибка системы.
2.1. Запрос успешно обработан. Пользователю вернулась запись, к которой осуществлялось присоединение, а так же записи измененные в результате операции.
2.2. Произошла ошибка при обработке запроса.
• Некорректный запрос.
• Внутренняя ошибка системы.

Используемые пространства имён и типы


Данные запроса

# Название XML-элемента Тип Кардинальность Описание Пример
1 <merc:mergeStockEntriesRequest>
2 ···<merc:localTransactionId> xs:NCName [1..1] Идентификатор заявки в клиентской системе. <bs:guid>A00001</bs:guid>
3 ···<merc:initiator> dt:User [1..1] Пользователь, зарегистрированный в системе Меркурий и инициирующий запрос к шлюзу. Является ответственным за выполнение бизнес-операции. Здесь потребуется логин ветврача или пользователя ХС. Логин для базовой аутентификации не подойдёт.
4 ······<dt:login> xs:NCName [1..1] Логин пользователя, зарегистрированного в системе Меркурий. <dt:login>user_ab_150101</dt:login>
5 ···</merc:initiator>
6 ···<dt:enterprise> dt:Enterprise [1..1] Предприятие, на котором выполняется операция объединения записей.Обязательно должно быть заполнено хотя бы одно из полей, либо UUID, либо GUID. При указании обоих полей, приоритет у UUID.
7 ······<bs:uuid> bs:UUID [0..1] Идентификатор версии предприятия. <bs:uuid>9c706614-b995-4bdd-bda3-8fa9de70803a</bs:uuid>
8 ······<bs:guid> bs:UUID [0..1] Глобальный идентификатор предприятия. <bs:guid>12f04ea3-e236-4b71-b427-e04d41b26de4</bs:guid>
9 ···</dt:enterprise>
10 ···<vd:mergeOperation> vd:MergeStockEntriesOperation [1..1] Сведения, необходимые для объединения нескольких записей журнала.
11 ······<vd:type> bs:RegisterModificationType [0..1] Тип операции. Поддерживается два типа: MERGE и ATTACH.
  • Если элемент не указан, по умолчанию значение принимается равным MERGE.
  • В случае присоединения записей (ATTACH) главной записью журнала (к которой осуществляется присоединение), будет считаться первая запись sourceStockEntry из списка.
  • В случае присоединения элемент batch не указывается, результирующая запись журнала будет иметь то же наименование продукции, что и главная. Объём и количество упаковок будет просуммировано, вид упаковки, номера партий логически объединены в список.
<vd:type>ATTACH</vd:type>
12 ······<vd:sourceStockEntry> vd:StockEntry [2..*] Позиции в складском журнале системы Меркурий, не менее двух. Указанные позиции будут объединены в одну. Представляют собой идентификатор версии записи (uuid) в ИС Меркурий.
13 ·········<bs:uuid> bs:UUID [0..1] Идентификатор версии записи журнала. <bs:uuid>9c706614-b995-4bdd-bda3-8fa9de70803a</bs:uuid>
14 ······</vd:sourceStockEntry>
15 ······<vd:batch> vd:Batch [1..1] Сведения, которые будут содержаться в объединенной записи журнала.
16 ·········<vd:subProduct> dt:SubProduct [1..1] Вид продукции. Третий уровень иерархического справочника продукции ИС Меркурий.
17 ············<bs:uuid> bs:UUID [0..1] Идентификатор версии вида продукции. <bs:uuid>d9d008eb-057a-4cd4-8cb2-d69364318bbe</bs:uuid>
18 ············<bs:guid> bs:UUID [0..1] Глобальный идентификатор вида продукции. <bs:guid>6f5feda1-a3d4-4dfd-8625-de62777a205e</bs:guid>
19 ············<dt:name> bs:String255 [0..1] Наименование вида продукции. <dt:name>говядина на кости охлажденная</dt:name>
20 ·········</vd:subProduct>
21 ·········<vd:origin> vd:BatchOrigin [0..1] Сведения о происхождении продукции.
22 ············<vd:productItem> dt:ProductItem [0..1] Наименование продукции в номенклатуре производителя.
23 ···············<bs:uuid> bs:UUID [0..1] Идентификатор версии номенклатуры продукции. <bs:uuid>53557240-35e7-48c8-81ce-8b9948cfef90</bs:uuid>
24 ···············<bs:guid> bs:UUID [0..1] Глобальный идентификатор номенклатуры продукции. <bs:guid>2c779c29-1fc2-44a6-8add-92752657f089</bs:guid>
25 ···············<dt:globalID> dt:GTINType [0..1] Trade Identification Number (GTIN) - уникальный идентификационный номер продукции производителя. В отличие от поля code GTIN уникален для продукции всех производителей. Уникальность обеспечивается использованием префикса компании-производителя в составе GTIN. <dt:globalID>85672854</dt:globalID>
26 ···············<dt:name> bs:String255 [0..1] Наименование продукции. <dt:name>Наименование</dt:name>
27 ···············<dt:code> bs:String255 [0..1] Артикул (код) продукции в соответствии с внутренним кодификатором производителя. Артикул продукции должен быть уникальным в пределах одного производителя. <dt:code>12</dt:code>
28 ············</vd:productItem>
29 ·········</vd:origin>
30 ······</vd:batch>
31 ···</vd:mergeOperation>
32 </merc:mergeStockEntriesRequest>

Данные ответа

# Название XML-элемента Тип Кардинальность Описание Пример
1 <merc:mergeStockEntriesResponse>
2 ···<merc:stockEntryList> vd:StockEntryList [1..1] Список измененных записей журнала.
3 ······<merc:stockEntry> vd:StockEntry [3..*] Сведения о записи журнала.
4 ·········<bs:uuid> bs:UUID [1..1] Идентификатор версии записи журнала. <bs:uuid>c9781d68-8f7d-4fb6-a007-d7a14f0815f6</bs:uuid>
5 ·········<bs:guid> bs:UUID [1..1] Глобальный идентификатор записи журнала. <bs:guid>8aaaac24-8e10-499e-b1a2-cda0bf3f5855</bs:guid>
6 ·········<bs:active> xs:boolean [1..1] Является ли запись журнала активной:
  • true - запись активна;
  • false - запись не активна.
<bs:active>true</bs:active>
7 ·········<bs:last> xs:boolean [1..1] Последняя версия записи журнала:
  • true - да;
  • false - нет.
<bs:last>true</bs:last>
8 ·········<bs:status> bs:VersionStatus [1..1] Статус версии записи журнала. <bs:status>100</bs:status>
9 ·········<bs:createDate> xs:DateTime [1..1] Дата создания записи журнала. <bs:createDate>2017-07-07T12:00:00</bs:createDate>
10 ·········<bs:updateDate> xs:DateTime [1..1] Дата изменения записи журнала. <bs:updateDate>2017-07-07T12:00:00</bs:updateDate>
11 ·········<bs:previous> bs:UUID [0..1] Идентификатор предыдущей версии записи журнала. <bs:previous>7c78bf3f-c1e8-496b-a5c1-173af60e95e4</bs:previous>
12 ·········<bs:next> bs:UUID [0..1] Идентификатор следующей версии записи журнала. <bs:next>82c7af0d-7067-4a67-8a53-39f4a5bcd700</bs:next>
13 ·········<vd:entryNumber> xs:string [0..1] Номер записи журнала, доступный через веб-интерфейс. <vd:entryNumber>85628322</vd:entryNumber>
14 ·········<vd:batch> vd:Batch [1..1] Сведения о партии продукции.
15 ············<vd:productType> dt:ProductType [1..1] Тип продукции. Первый уровень иерархического справочника продукции ИС Меркурий. <vd:productType>1</vd:productType>
16 ············<vd:product> dt:Product [1..1] Продукция. Второй уровень иерархического справочника продукции ИС Меркурий.
17 ···············<bs:uuid> bs:UUID [1..1] Идентификатор версии продукции. <bs:uuid>53557240-35e7-48c8-81ce-8b9948cfef90</bs:uuid>
18 ···············<bs:guid> bs:UUID [1..1] Глобальный идентификатор продукции. <bs:guid>2c779c29-1fc2-44a6-8add-92752657f089</bs:guid>
19 ···············<dt:name> bs:String255 [0..1] Наименование продукции. <dt:name>говядина</dt:name>
20 ············</vd:product>
21 ············<vd:subProduct> dt:SubProduct [1..1] Вид продукции. Третий уровень иерархического справочника продукции ИС Меркурий.
22 ···············<bs:uuid> bs:UUID [1..1] Идентификатор версии вида продукции. <bs:uuid>d9d008eb-057a-4cd4-8cb2-d69364318bbe</bs:uuid>
23 ···············<bs:guid> bs:UUID [1..1] Глобальный идентификатор вида продукции. <bs:guid>6f5feda1-a3d4-4dfd-8625-de62777a205e</bs:guid>
24 ···············<dt:name> bs:String255 [0..1] Наименование вида продукции. <dt:name>говядина на кости охлажденная</dt:name>
25 ············</vd:subProduct>
26 ············<vd:volume> bs:Decimal [1..1] Объем продукции. <dt:volume>50</dt:volume>
27 ············<vd:unit> dt:Unit [1..1] Единица измерения объема партии продукции.
28 ···············<bs:uuid> bs:UUID [0..1] Идентификатор версии еиницы измерения. <bs:uuid>c9781d68-8f7d-4fb6-a007-d7a14f0815f6</bs:uuid>
29 ···············<bs:guid> bs:UUID [0..1] Глобальный идентификатор еиницы измерения. <bs:guid>8aaaac24-8e10-499e-b1a2-cda0bf3f5855</bs:guid>
30 ···············<dt:name> bs:String255 [0..1] Наименование единицы измерения. <dt:name>кг.</dt:name>
31 ············</vd:unit>
32 ············<vd:dateOfProduction> vd:GoodsDate [1..1] Дата выработки продукции. Может быть указана датой или диапазоном дат. В случае точной даты выработки указывается только первая компонента - firstDate.
33 ···············<vd:firstDate> dt:ComplexDate [1..1] Начальная дата в интервале, либо единичная дата.
34 ··················<dt:year> dt:Year [0..1] Год. <dt:year>2017</dt:year>
35 ··················<dt:month> dt:Month [0..1] Месяц. <dt:month>07</dt:month>
36 ··················<dt:day> dt:Day [0..1] День. <dt:day>07</dt:day>
37 ··················<dt:hour> dt:Hour [0..1] Час. <dt:hour>12</dt:hour>
38 ··················<dt:minute> dt:Minute [0..1] Минута. <dt:minute>41</dt:minute>
39 ···············</vd:firstDate>
40 ···············<vd:secondDate> dt:ComplexDate [1..1] Конечная дата в интервале.
41 ··················<dt:year> dt:Year [0..1] Год. <dt:year>2017</dt:year>
42 ··················<dt:month> dt:Month [0..1] Месяц. <dt:month>07</dt:month>
43 ··················<dt:day> dt:Day [0..1] День. <dt:day>08</dt:day>
44 ··················<dt:hour> dt:Hour [0..1] Час. <dt:hour>12</dt:hour>
45 ··················<dt:minute> dt:Minute [0..1] Минута. <dt:minute>41</dt:minute>
46 ···············</vd:secondDate>
47 ············</vd:dateOfProduction>
48 ············<vd:expiryDate> vd:GoodsDate [1..1] Дата окончания срока годности продукции. Может быть указана датой или диапазоном дат. В случае точной даты выработки указывается только первая компонента - firstDate.
49 ···············<vd:firstDate> dt:ComplexDate [1..1] Начальная дата в интервале, либо единичная дата.
50 ··················<dt:year> dt:Year [0..1] Год. <dt:year>2018</dt:year>
51 ··················<dt:month> dt:Month [0..1] Месяц. <dt:month>07</dt:month>
52 ··················<dt:day> dt:Day [0..1] День. <dt:day>08</dt:day>
53 ··················<dt:hour> dt:Hour [0..1] Час. <dt:hour>12</dt:hour>
54 ··················<dt:minute> dt:Minute [0..1] Минута. <dt:minute>41</dt:minute>
55 ···············</vd:firstDate>
56 ···············<vd:secondDate> dt:ComplexDate [1..1] Конечная дата в интервале.
57 ··················<dt:year> dt:Year [0..1] Год. <dt:year>2018</dt:year>
58 ··················<dt:month> dt:Month [0..1] Месяц. <dt:month>09</dt:month>
59 ··················<dt:day> dt:Day [0..1] День. <dt:day>08</dt:day>
60 ··················<dt:hour> dt:Hour [0..1] Час. <dt:hour>12</dt:hour>
61 ··················<dt:minute> dt:Minute [0..1] Минута. <dt:minute>41</dt:minute>
62 ···············</vd:secondDate>
63 ············</vd:expiryDate>
64 ············<vd:productionBatchID> bs:String255 [0..*] Уникальный идентификатор производственной партии продукции. <vd:productionBatchID>ПП64219</vd:productionBatchID>
65 ············<vd:perishable> xs:boolean [1..1] Описывает, является ли продукция скоропортящейся:
  • true – скоропортящаяся;
  • false – не скоропортящаяся.
<vd:perishable>false</vd:perishable>
66 ············<vd:origin> vd:BatchOrigin [0..1] Сведения о происхождении продукции.
67 ···············<vd:productItem> dt:ProductItem [0..1] Наименование продукции в номенклатуре производителя.
68 ··················<bs:uuid> bs:UUID [1..1] Идентификатор версии номенклатуры продукции. <bs:uuid>53557240-35e7-48c8-81ce-8b9948cfef90</bs:uuid>
69 ··················<bs:guid> bs:UUID [1..1] Глобальный идентификатор номенклатуры продукции. <bs:guid>2c779c29-1fc2-44a6-8add-92752657f089</bs:guid>
70 ··················<dt:globalID> dt:GTINType [0..1] Trade Identification Number (GTIN) - уникальный идентификационный номер продукции производителя. В отличие от поля code GTIN уникален для продукции всех производителей. Уникальность обеспечивается использованием префикса компании-производителя в составе GTIN. <dt:globalID>85672854</dt:globalID>
71 ··················<dt:name> bs:String255 [0..1] Наименование продукции. <dt:name>Наименование</dt:name>
72 ··················<dt:code> bs:String255 [0..1] Артикул (код) продукции в соответствии с внутренним кодификатором производителя. Артикул продукции должен быть уникальным в пределах одного производителя. <dt:code>12</dt:code>
73 ···············</vd:productItem>
74 ···············<vd:country> dt:Country [0..1] Страна происхождения партии продукции.
75 ··················<bs:uuid> bs:UUID [0..1] Идентификатор версии страны. <bs:uuid>cbd91ac0-bec2-4308-a395-33b68871d76b</bs:uuid>
76 ··················<bs:guid> bs:UUID [0..1] Глобальный идентификатор страны. <bs:guid>3aa0c3ce-8d01-4779-bfb7-df7f234cf86f</bs:guid>
77 ··················<dt:name> bs:String255 [0..1] Наименование страны происхождения партии продукции. <dt:name>Российская федерация</dt:name>
78 ···············</vd:country>
79 ···············<dt:producer> dt:Producer [0..*] Производитель продукции.
80 ··················<dt:enterprise> dt:Enterprise [1..1] Информация о предприятие-производителе продукции. Обязательно должно быть заполнено хотя бы одно из полей, либо UUID, либо GUID. При указании обоих полей, приоритет у UUID.
81 ·····················<bs:uuid> bs:UUID [0..1] Идентификатор версии предприятия. <bs:uuid>9c706614-b995-4bdd-bda3-8fa9de70803a</bs:uuid>
82 ·····················<bs:guid> bs:UUID [0..1] Глобальный идентификатор предприятия. <bs:guid>12f04ea3-e236-4b71-b427-e04d41b26de4</bs:guid>
83 ·····················<dt:name> bs:String255 [0..1] Наименование производителя. <dt:name>Мясной цех №36</dt:name>
84 ··················</dt:enterprise>
85 ··················<dt:role> dt:EnterpriseRole [1..1] Роль предприятия-производителя продукции. <dt:role>PRODUCER</dt:role>
86 ···············</dt:producer>
87 ············<vd:origin>
88 ············<vd:lowGradeCargo> xs:boolean [1..1] Является ли груз некачественным.
  • true – груз некачественный;
  • false – груз качественный.
<vd:lowGradeCargo>false</vd:lowGradeCargo>
89 ············<vd:packageList> dt:PackageList [0..1] Список физической упаковки.
90 ···············<dt:package> dt:Package [0..*] Описание упаковки. Поддерживается указание многоуровневой упаковки и маркировки партии продукции. Всего предусмотрено шесть уровней упаковки (см. тип dt:PackageLevelType). Количество единиц упаковки и маркировка партии указывается для каждой упаковки конкретного уровня отдельно. На каждом уровне может быть произвольное количество типов упаковки, в том числе и ни одного, т.е. какого-то уровня упаковки в описании партии продукции может не быть.
91 ··················<dt:level> dt:PackageLevelType [1..1] Уровень упаковки. <vd:level>4</vd:level>
92 ··················<dt:packingType> dt:PackingType [1..1] Тип упаковки. <vd:packingType>1</vd:packingType>
93 ·····················<bs:uuid> bs:UUID [0..1] Идентификатор версии упаковки. <bs:uuid>9c706614-b995-4bdd-bda3-8fa9de70803a</bs:uuid>
94 ·····················<dt:globalID> dt:PackingCodeType [1..1] Уникальный идентификатор упаковки. <dt:globalID>7B</dt:globalID>
95 ·····················<dt:name> bs:String255 [0..1] Наименование упаковки. <dt:name>Деревянный ящик</dt:name>
96 ··················</dt:packingType>
97 ··················<dt:quantity> xs:int [0..1] Количество единиц упаковки. <vd:quantity>1</vd:quantity>
98 ··················<dt:productMarks class="UNDEFINED"> dt:ProductMarks [0..*] Маркировка партии продукции. <vd:productMarks class="BN">ПАРТИЯ1251</vd:productMarks>
99 ···············</dt:package>
100 ············</vd:packageList>
101 ············<vd:owner> dt:BusinessEntity [0..1] Фирма-владелец продукции.
102 ···············<bs:uuid> bs:UUID [0..1] Идентификатор версии хозяйствующего субъекта-владельца. <bs:uuid>dc400640-0496-4f06-b83c-d00107edc744</bs:uuid>
103 ···············<bs:guid> bs:UUID [0..1] Глобальный идентификатор хозяйствующего субъекта-владельца. <bs:guid>879b525c-248d-46a5-bbde-2ee02d4d0bf9</bs:guid>
104 ···············<dt:fullName> bs:String255 [0..1] Полное наименование хозяйствующего субъекта. <dt:fullName>Общество с ограниченной ответственностью "Первая торговая компания"</dt:fullName>
105 ···············<dt:fio> bs:String255 [0..1] ФИО хозяйствующего субъекта. <dt:fio>Иванов Сергей Петрович</dt:fio>
106 ···············<dt:juridicalAddress> dt:Address [0..1] Адрес фирмы.
107 ··················<dt:addressView> bs:String255 [0..1] Представление адреса. <dt:addressView>Российская Федерация, Владимирская обл., г. Владимир, ул. Ленина ул., д. 44</dt:addressView>
108 ···············</dt:juridicalAddress>
109 ············</vd:owner>
110 ·········</vd:batch>
111 ······</merc:stockEntry>
112 ···<merc:stockEntryList>
113 </merc:mergeStockEntriesResponse>

Коды ошибок

Вернуться к началу ↑