|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Опыты с 2.0RC через SOAPGUI - успехи и проблемы.  XML
Индекс форума » Автоматизированная система МЕРКУРИЙ
Автор Сообщение
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

Всем добрый день.
Пока ждем рабочие wsdl на 2.0 поделюсь нашими изысканиями по 2.0RC.
Все через SOAPGUI.
Сразу - я не программист. Моя цель понять логику для стыковки процессов.
Так как ссылки я не получал напрямую, и это даже не конечные wsdl для тест (31.08 - хммм), то претензий к разработчикам тут не ждем. Скорее может быть недоумение. Качество описания документации в wiki комментировать не буду ((
Почему 2.0 - потому что требования сетей (клиентов) по формированию транспортных ВСД включают уровень маркировки и упаковки, которого нет в 1.4. Чтобы передать упаковку на паллетах, партии, SSCC и т.д.
WSDL:
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/mercury-g2b.service_v2.0.wsdl - используем только для валидации запросов.
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ApplicationManagementService_v1.1.wsdl - сами запросы
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ProductService_v2.0.wsdl - сдох, и запросы по этой схеме так и не получалось выполнять, пример - зарегистрировать SKU (productitem level)

Сначала работаем со стоком:
1. регистрацию номенклатуры сделали через 1.4. - там всем просто.
2. что на стоке площадки

2. детали GUID


3. теперь скачаем список вет. сертификатов, у меня так и не получилось поставить условие фильтра по vetDocumentType

4. Теперь попробуем просто добавить сток на площадке. тут начинается прыгание с фасовкой и упаковкой.
Зачем упаковка на стоке? - она может измениться на отгрузке.
кто сделал GUID/UUID справочник к типам упаковки и потребовал его в схеме. как его скачать?
в примере на логику в packaging - не смотрим, это просто тесты.
в примере блок - packageList - вообще по логике лишний, но может быть. я думаю, он не нужен для стока.

хотим сразу две записи создать? stockEntry блок - повторяем его несколько раз.
сделать несколько результатов тоже вроде можно resultingList count="1" total="1" offset="0" hasMore="0"..
если укажем нужный <base:uuid>6c38f20c-66b6-46e1-ad97-069aec1ae1c7</base:uuid> сразу за stockEntry получим модификацию стока.
интересно, что можно изменить атрибутику партии (к примеру сроки годности) для GUID запаса.

Теперь вет. сертификат
сразу скажу, создать его просто. Но тут начинается упаковка.
Если ее указывать, начинает ругаться
В заявке может быть указана только упаковка содержащаяся в записи складского журнала продукции

упаковка запаса должна совпадать, почему?????? (тут много эмоций).

но пример ниже с <packageList>, чтобы было веселее.
(если не указать, то package как я понимаю наследуется из запаса, это весело, но не более, и не будет ошибки)



На этом пока все.
Вопрос, по упаковке в транспортном ВСД - пока самый не понятный.
любые комменты в помощь к логике - welcome.
[WWW]
Павел Большаков

[Avatar]

Зарегистрирован: 25/05/2017 10:01:41
Сообщений: 334
От: СКБ Контур
Оффлайн

О, спасибо за темку.

Изменить маркировки партии на этапе формирования транзакции перемещения не пробовали?
Например есть партия 200 тонн без маркировок на стоке, а приклеить маркировки мы хотим в момент её отгрузки частями.
Можно проще: http://kontur.ru/mercury
[WWW]
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

выше, перед последним куском кода, как раз об этой проблеме.
нам тоже не нужна маркировка в хранении, да и не реально это в процессе.
Мы хотим лепить маркировку и упаковку к отгрузке по информации от складов, какие коробки с какой маркировкой (партии) подобрали на какие SSCC сложили и т.д.
если я верно понял вопрос ))
[WWW]
Павел Большаков

[Avatar]

Зарегистрирован: 25/05/2017 10:01:41
Сообщений: 334
От: СКБ Контур
Оффлайн

Да, вы верно поняли.

Действительно пропустил, вот жеж Вы писали:

<v22:productMarks class="BN">VAL423456789</v22:productMarks>
<v22:productMarks class="SSCC">12345678912345</v22:productMarks>

Ага, то есть он их умеет маркировать при отгрузке, я правильно понял?
Можно проще: http://kontur.ru/mercury
[WWW]
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

Он, по схеме умеет, по логике должен, но почему-то требует совпадения упаковки запаса и упаковки в тр.всд. Что убивает логику и использование. Не реально же представить себе, что перед тр.всд мы у запаса будем через инвентаризацию менять упаковку, тем более что только часть GUID запаса идет в ВСД.
Надо, наверное, написать в поддержку вопрос про это.
Или это может уйти в релизе 2.0 или ...
[WWW]
Павел Большаков

[Avatar]

Зарегистрирован: 25/05/2017 10:01:41
Сообщений: 334
От: СКБ Контур
Оффлайн

Да, да, я понял что с упаковками беда, и это косяк.
Но например, если эту проблему разрабы нам починят, то не столкнемся ли мы с очередной проблемой что он начнет и с маркировками брыкаться.
Можно проще: http://kontur.ru/mercury
[WWW]
Алексей Тимофеев

[Avatar]

Зарегистрирован: 04/07/2009 00:51:09
Сообщений: 49
От: Информационно-вычислительный центр Россельхознадзора
Оффлайн

Aiki wrote:
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ProductService_v2.0.wsdl - сдох, и запросы по этой схеме так и не получалось выполнять, пример - зарегистрировать SKU (productitem level)

Рабочая ссылка: http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ProductService_v2.0_pilot.wsdl
Аналогичным образом адреса всех остальных WSDL заканчиваются суффиксом _pilot, дабы было очевиднее, какой эндпоинт внутри.

Aiki wrote:
3. теперь скачаем список вет. сертификатов, у меня так и не получилось поставить условие фильтра по vetDocumentType


Не до конца понял, что именно не получилось. Если вопрос по пространству имён (префиксу) элемента, то корректно использовать префикс vd, который у вас объявлен для пространства имён http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2


Aiki wrote:
4. Теперь попробуем просто добавить сток на площадке. тут начинается прыгание с фасовкой и упаковкой.
Зачем упаковка на стоке? - она может измениться на отгрузке.

Партия приходуется на сток с той упаковкой, которая была во входящем сертификате. Упаковка по умолчанию "наследуется" из стока при формировании исходящего сертификата. Кроме того, упаковка содержит сведения о маркировке, по которой в том числе можно сопоставить физическую партию с записью в системе. При этом в момент отгрузки (оформления исходящего сертификата) сведения об упаковке можно изменить.

Aiki wrote:
кто сделал GUID/UUID справочник к типам упаковки и потребовал его в схеме. как его скачать?

Справочник упаковки размещен на странице в wiki: http://help.vetrf.ru/wiki/PackingForm. Идентификатор упаковки -- это GUID, который необходимо указать при обращении к 2.0.

Aiki wrote:
в примере блок - packageList - вообще по логике лишний, но может быть. я думаю, он не нужен для стока.

Не лишний, именно в packageList указываются сведения об упаковке для стока. С другой стороны, упаковка опциональна -- каждый решает сам, задавать её или нет.
К слову, элемент productItem/packaging -- это фасовка, которая также необязательна. И если вы ссылаетесь GUID'ом на зарегистрированный SKU, фасовка в запросе будет проигнорирована, а использоваться будет та, что указана при регистрации SKU.

Aiki wrote:
интересно, что можно изменить атрибутику партии (к примеру сроки годности) для GUID запаса.

Раз уж разрешено создавать сток с указанием срока годности, то запрещать изменение этих атрибутов нет никакого смысла. Хотя, конечно, подобное необоснованное изменение, равно как и злоупотребление созданием стока через инвентаризацию, будет расцениваться как нарушение.

Aiki wrote:
Теперь вет. сертификат
сразу скажу, создать его просто. Но тут начинается упаковка.
Если ее указывать, начинает ругаться
В заявке может быть указана только упаковка содержащаяся в записи складского журнала продукции

упаковка запаса должна совпадать, почему?????? (тут много эмоций).

Это рудимент, пришедший из 1.x -- там такой контроль упаковки был. Ошибка уже исправлена, обновление запланировано на 07.09.

Павел Большаков wrote:
Но например, если эту проблему разрабы нам починят, то не столкнемся ли мы с очередной проблемой что он начнет и с маркировками брыкаться.

С маркировкой проблем не будет. Вообще в 2.0 решено было отказаться от контроля упаковки и маркировки в том числе.
[Email]
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн

Рабочая ссылка: http://api.vetrf.ru/schema/platform/services/2.0-R...ProductService_v2.0_pilot.wsdl
Аналогичным образом адреса всех остальных WSDL заканчиваются суффиксом _pilot, дабы было очевиднее, какой эндпоинт внутри.

А wsdl к ApplicationService как выглядит теперь? И остальные?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 06/09/2017 09:56:36

mevgenym


Зарегистрирован: 19/05/2017 14:03:42
Сообщений: 311
Оффлайн

я предположил что ApplicationService не изменился, пространства имен остались прежними в 2.0
http://api.vetrf.ru/schema/cdm/base судя по http://api.vetrf.ru/schema/platform/services/2.0-RC-last/base_v1.1.xsd
http://api.vetrf.ru/schema/cdm/application по http://api.vetrf.ru/schema/platform/services/2.0-RC-last/application_v1.1.xsd

остальные нащупал
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/IkarService_v2.0_pilot.wsdl
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/EnterpriseService_v2.0_pilot.wsdl
http://api.vetrf.ru/schema/platform/services/2.0-RC-last/DictionaryService_v2.0_pilot.wsdl

https://github.com/mevgenym/1c_vetis.api_v1.1
https://github.com/mevgenym/1c_vetis.api
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн

mevgenym wrote:
остальные нащупал


Я тоже "нащупал". У меня вопрос к высокому собранию: это такой стиль подачи материала? Вот кусочек информации, остальное нащупайте сами? Где обещанные неделю назад доки на шлюз? Где хоть какие-то примеры использования? Или, быть может, все это есть, но по какой-то закрытой подписке, куда не все внесены?
Не поймите меня правильно, как говорит Жванецкий, но Новый Год все ближе...
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн

Знаете ли вы...

... что если изменить application_v1.1.xsd вот так:

а в начало вставить

под имеющийся там import
и еще в схему в самом верху, появится возможность заполнять объекты-запросы к ApplicationService и получать от него ответы прямо "на лету".
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

Пример: Создание (модификация) номенклатуры
указываем фасовку - не указываем упаковку.

*кто писал описание - в вики, зачем-то добавил enterprise - его нет в схеме и не сделал producer обязательным...*

И ура в ответе на getProductItemListRequest к productservice 2.0 - получили фасовку для номенклатуры.
почему то на web (тест), если руками решить добавить запаса эта номенклатура не находится в справочнике (может синхронизация будет - подождем)

Это сообщение было редактировано 3 раз. Последнее обновление произошло в 06/09/2017 21:25:03

[WWW]
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн


Алексей, спасибо за ответы.
немного вопросов ниже
Алексей Тимофеев wrote:
Рабочая ссылка: http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ProductService_v2.0_pilot.wsdl
Аналогичным образом адреса всех остальных WSDL заканчиваются суффиксом _pilot, дабы было очевиднее, какой эндпоинт внутри.

Все же не _все_ wsdl заканчиваются на _pilot? (ex: applicationmanagement & amsMercutyG2Bbinding)

Aiki wrote:
3. теперь скачаем список вет. сертификатов, у меня так и не получилось поставить условие фильтра по vetDocumentType


Алексей Тимофеев wrote:
Не до конца понял, что именно не получилось. Если вопрос по пространству имён (префиксу) элемента, то корректно использовать префикс vd, который у вас объявлен для пространства имён http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2


Да, теперь работает. До этого не выходило, сойдемся на моих руках.

Алексей Тимофеев wrote:
Партия приходуется на сток с той упаковкой, которая была во входящем сертификате. Упаковка по умолчанию "наследуется" из стока при формировании исходящего сертификата. Кроме того, упаковка содержит сведения о маркировке, по которой в том числе можно сопоставить физическую партию с записью в системе. При этом в момент отгрузки (оформления исходящего сертификата) сведения об упаковке можно изменить.

ОК, я думаю спорить почему упаковка и маркировка стока не совпадет при отгрузке смысла, нет. Вариантов много от ограничения складских систем до изменения упаковки при отгрузке.

Aiki wrote:
в примере блок - packageList - вообще по логике лишний, но может быть. я думаю, он не нужен для стока.

Алексей Тимофеев wrote:
Не лишний, именно в packageList указываются сведения об упаковке для стока. С другой стороны, упаковка опциональна -- каждый решает сам, задавать её или нет.
К слову, элемент productItem/packaging -- это фасовка, которая также необязательна. И если вы ссылаетесь GUID'ом на зарегистрированный SKU, фасовка в запросе будет проигнорирована, а использоваться будет та, что указана при регистрации SKU.

Понял.
Но возник вопрос, как связать уровни упаковки между собой (вложенность упаковки?)
Паллет1
на ней коробка1
паллет2
на ней коробка3

Я думал многоуровневая упаковка будет реализована через вложенность структуры или остаемся на идее использования маркировки для этого<dt:productMarks class="BUNDLE">222222222222222</dt:productMarks>
Будет ли доступно описание классов маркировки?

Aiki wrote:
Теперь вет. сертификат
сразу скажу, создать его просто. Но тут начинается упаковка.
Если ее указывать, начинает ругаться
В заявке может быть указана только упаковка содержащаяся в записи складского журнала продукции

упаковка запаса должна совпадать, почему?????? (тут много эмоций).


Алексей Тимофеев wrote:
Это рудимент, пришедший из 1.x -- там такой контроль упаковки был. Ошибка уже исправлена, обновление запланировано на 07.09.


ОК. попробуем после 07.09.
[WWW]
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

Владимир Игнатов wrote:Знаете ли вы...

... что если изменить application_v1.1.xsd вот так:
....... появится возможность заполнять объекты-запросы к ApplicationService и получать от него ответы прямо "на лету".


Интересно )), правда иногда получим PROCESSING тут был день, каждый второй запрос такое выдавал.
[WWW]
Aiki

[Avatar]

Зарегистрирован: 01/09/2017 22:13:04
Сообщений: 39
Оффлайн

update: 19.09 - исправлено.
Интересно, но грустно: если номенклатура прошла изменение через modify, при инвентризации (resolveDiscrepancyRequest) надо указать не только ее GUID, но и UUID.
Вопрос зачем? пред. же запись неактивна.

Это сообщение было редактировано 3 раз. Последнее обновление произошло в 19/09/2017 14:31:06

[WWW]
 
Индекс форума » Автоматизированная система МЕРКУРИЙ
Перейти:   

Powered by JForum 2.1.8 © JForum Team