ГИИС ДМДК

 Все, кто вляпался в эту систему, поймут что это просто крик души. Когда реализация хорошей идеи заставила встать на уши всех, кого она коснулась. Эта заметка может оказаться полезной для тех, кто не смог написать программу с использованием библиотеки, выложенной на сайте (https://dmdk.ru/connect/). Здесь, а потом в комментариях, по мере прояснения ситуации, я буду делиться своими выводами и решениями практических задач поставленных передо мной моими клиентами. А также ставить вопросы, которые возникают в процессе работы. Тем, кто ответит на них, буду очень благодарен.

 Предупреждаю, что наша организация занимается оптовой продажей драгоценных камней (ДК), поэтому все мои «охи» будут вокруг именно наших проблем.

 Сразу что не понравилось:

 1. Нет четких определений, используемых в системе. Как выяснилось понятие «партия» в ГИИС ДМДК это тоже самое, что «пакет» в понимании моих клиентов. До сих пор не понятны назначения и суть «Бокс», «Опись», которые также используют мои пользователи. Попытки работать в личном кабинете с этими понятиями не дали ясного понимания.

 2. Конечно ограничение в 65К на размер загружаемого пакета – это мало. Особенно, когда грузятся большие партии.

 3. Программа SoapUI, которой пользуемся для загрузки данных имеет только терминальный интерфейс (буду рад, если я ошибаюсь). Все приходится грузить через буфер обмена. А хотелось бы иметь возможность запускать его из командной строки и получать результат обработки в файл или, на худой конец, в буфер обмена. Поправьте меня если это не так.

 4. Служба поддержки работает. Иногда ответ приходит практически сразу, а порой ждать приходится неделями в полном смысле этого слова. И очень неприятно, что не знаешь рассматривается твоя заявка или нет. Обычно формируется заявка, ей присваивается номер и задавшему вопрос приходит уведомление с указанием номера заявки.

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

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

 Думаю, что я не изобрел велосипед, когда придумал схему передачи данных из существующей в нашей организации:

 из данных, имеющихся в нашей базе, формируется xml-файл (Test_Deal.xml) с запросом на необходимое действие (например, SentBatch на загрузку остатков), затем он шифруется с помощью программы (TestDeal.exe) на базе библиотеки формирования подписи (https://dmdk.ru/upload/iblock/2fa/51ljlohqwjki5muszwfnzzpbhd9ekdeb/Biblioteka-dlya-formirovaniya-podpisi.zip), формируется файл Rezult.xml, содержимое которого отправляется в буфер обмена, а дальше в открытое окно запроса программы SoapUI. Потом сохраняется результат запроса (если проходит контроль этого уровня), содержимое которого грузится в буфер и передается программе, которая формирует хml-файл, она вытаскивает номер запроса и формирует файл Test_Deal.xml с запросом на проверку (например, CheckBatch). Далее опять повторяется запуск SoapGost.exe, которая формирует Result.xml, содержимое которого через буфер обмена передается программе SoapUI. Если результат обработки положительный, в нашем случае это список УИНов, результат запроса через буфер обмена возвращается в программу, которая работает с нашей базой, она связывает УИНы с нашими внутренними документами.

 Теперь о программе SoapGost.exe. Скачать ее можно по этой ссылке SoapGost.7z . Для ее работы нужен обезличенный сертификат clicker.cer, который вы получили. И, естественно, программа работает под Windows. В файле n_ser.txt (пример в архиве) серийный номер сертификата clicker.cer.

 Зарегистрировать библиотеку

  GostCryptography.dll , как сказано в описании:

 

  C:WindowsMicrosoft.NETFrameworkv4.0.30319regasm /codebase GostCryptography.dll

 

 

 Работа программы простая: Запускаете ее, если она находит сформированный Test_Deal.xml в папке, где находится сама программа, то она формирует файл Result.xml с нужным вам содержимым.

 Сертификат clicer.cer у вас должен быть свой.

 Спасибо огромное тем, кто проделал эту огромную работу по созданию этой библиотеки и «Описание использования исходных кодов библиотеки.pdf ».

Михаил (2022-04-16):
В очередной раз столкнувшись с проблемами, я понял одну простую вещь: разработчики очень здорово вляпались.
Сначала, наверное, был конкурс, на котором была поставлена задача мало соответствующая действительности. Исходя из этого разработчиками была названа сумма.
В рамках поставленной задачи работа была выполнена, деньги распилены, продукт принят.
А что теперь остается - переделывать все заново. Практически все области, которые попали под "крыло" ГИИС ДМДК , столкнулись с непониманием программистов особенностей каждого "асученного" сектора.
Не удивлюсь, если окажется, что ребята-разработчики сидят на голодном пайке.
Юлия (2022-02-24):
Абсолютно идиотский справочник организаций: нет проверки на дублирование наименований фирм. Нет единого стандарта, который требует госконтроль.
Столкнулись тем, что при формировании контракта оказалось 4! фирмы с одинаковым названием но разным написанием.
Михаил (2022-02-17):
Служба поддержки на письма не отвечает. Вот пример: 12.02.2022 я получил письмо следующего содержания:
"Добрый день. Если Ваша заявка еще актуальна, Вы можете обращаться по телефону 8 800 707 57 15 с ПН-ПТ с 00:00 по 18:00 МСК или продублировать её на почту info@dmdk.ru. "


10.01.2022 11:58, mk :

Здравствуйте!
В силу особенностей нашего учета мы не можем вводить остатки
только по укрупненным позициям (элемент position ), который разрешен при вводе партий.
Основанием для учета по укрупненным позициям является ведомость от
поставщика (см. прилагаемый файл).
Вопрос был задан перед новым годом , но ответа нет. Поэтому повторяем
свои вопросы:

Обратите внимание на дату отправки вопроса (10.01.2022)


Работа службы поддержки ДМДК


Михаил (2022-02-12):
Умные люди подсказали как правильно формировать боксы:
1. Формируем бокс (SendBatchRequest) ;
2.Формируем партии (SendBatchRequest) ;
3. Привязываем партии к боксу (SendUnPackingBoxRequest) ;
И имейте в виду, что SendBatchUnion, которую предлагают использовать, если верить инструкции по состоянию на сегодня, НЕ РАБОТАЕТ.
Примеры см. Пример формирования бокса


Дмитрий Андреевич (2022-02-11):
Наступают моменты, когда система перестает отвечать часами. И, что удивительно, это не зависит от времени суток.
Система не в состоянии обрабатывать большое количество запросов.
Инструкции меняются чуть ли не каждый день. Это, как я понимаю, является отмазкой при выяснении косяков с техподдержкой. С техподержкой можно общаться по телефону, ни одно мое письменное обращение не было зарегистрировано. И ни на один ответ по почте я не получил НИ ОДНОГО ответа.
Деньги распилили, а дальше выплывайте как хотите.
Марина (2022-02-05):
Класс! В выходные телефон техподдержки недоступен. Грузите как хотите.
Михаил (2022-02-02):
Как работать со службой поддержки.
1. Вопросы, связанные с системой интеграции ТОЛЬКО по почте, указанной на сайте.
Зарегистрировать вопрос - потеря времени. Отправив письмо ждите подтверждения.
Если не пришло - звоните на горячую линию, указывайте свой email и время отправки письма.
Если не нашли ваше письмо - просите подождать и отправляйте повторно, пока оператор на линии.
Если вы не зарегистрируете свой вопрос/запрос - ответ вряд ли получите.
Информация к размышлению: на 03.02.2022 количество зарегистрированных запросов меньше 20000. Сужу по своему номеру. Похоже, что много запросов "падает в пропасть".
2. Вопросы, связанные с работой личного кабинета и сайта, можно решить по телефону.
Михаил (2022-02-01):
01.02.2022 - столкнулся с проблемой. Не получалось загрузить бокс. Долго бился, писал в техподдержку - тишина.
Дозвонился, оказалось, что разработчики отключили работу с боксами.
Неужели нельзя было написать на сайте, что работы с боксами отключена. Чтобы все заинтересованные посетители видели это и не осаждали службу поддержку и не забивали сеть повторными попытками отправить данные.
Евгений (2022-01-27):
Хочется отметить недоделанный интерфейс личного кабинета:
- нет возможности отсортировать позиции по выбранной колонке;
- нет возможности выбрать все позиции одним кликом, чтобы привязать партии;
- отклик системы гораздо больше, чем рассчитывали разработчики. Нажимая привязать выбранные партии или подписать страница становится статичной.
- возвращение назад всегда приводит переходу на первую страницу. После этого опять вынуждены листать страницы, чтобы вернуться на нужную.
Это основные недостатки, которые просто "бесят".
Согласен с автором - нет четких определение в инструкции. То, что вкладывалось разработчиками в понятия, имеют совершенно другой смысл у реальных участником процесса.
Михаил (2022-01-26):
Я немного повторюсь.
Для себя я сформировал две главные проблемы ГИИС:
1. Ответ системы может составлять от нескольких секунд до нескольких часов. Это приводит к тому, что пользователи, если работают из личного кабинета, не понимают что происходит. Обновление страницы приводит к повторной отпрвки запросы.
Чтобы адекватно понивать ситуацию, надо держать 2 открытых окна со страницей, откуда отправляется запрос и со страницей, где отражается результат выполнения этого запроса. Например, надо прикревить 100 партий из 10000:
- открывает страницу с запросом;
- открывает страницу с запросом, нажимаем кнопку прикрепить партии, выбираем критерии для поиска, выделяем нужные партии(если надо выбрать 100 партий - кликаем 100 раз напротив каждой нужной, проверяем правильность выбора, нажимаем привязать выбранные партии.
- ждем, когда закончится работа скрипта (бегающая строка замирает), на экране ничего не происходит.
- возвращаемся на экран со стравницей запроса и нажимаем обновить страницу. Если количество привязанных партий изменилось (строчка внизу) - партии загрузились, если нет, то повторяем процедуру с обновлением.
А теперь посчитайте сколько времени надо потратить на привязку 10000 позиций. се это относится и к пакетному режиму, т.к. смотрите следующий пункт.
2. Ограничение на размер передаваемого запроса в 65К. Вот официальный ответ поддеожки:

Размер передаваемого сообщения (XML-пакета) не должен превышать 65536 символов. Количество партий в пакете определяете исходя из этого.
С уважением,
Гакашев Арсен,
заместитель начальника управления,
УРИС ДИТ АО .

А это значит, что контракт, к примеру состоящий из 10000 партий ( а такое возможно), надо "распилить" на 200 !!! пакетов и отправить их.
Для того чтобы дождаться ответа на запрос посланного пакета может пройти от нескольких секунд до нескольких часов (21.01.22 я ждал ответ в течении 5 часов)
Конечно, можно "запулить" все эти 200 порций(SendBatch) не дожидаясь ответа, но потом, если что-то не загрузилось, а такое тоже возможно из-за ошибок и сбоев системы, то поиск ошибок оборачивается еще в очередные часы поиска через отправку запросов (CheckBatch)


Ваше имя :


Ваш комментарий:

Изображение

обновить

Текст на картинке:

(к сожалению, это вынужденная мера - защита от спама)