Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Загрузка УПД, XSD-схема, функция Определения Артикула : Супермаг Плюс (Супермаг 2000)

22.11.2024 17:45


30.03.2022 15:38
Работаем с УПД через Тензор(СБИС).
Некоторые поставщики шлют файлы без Указания Штрих-Кода товара
или Штрих-Код указан, но у нас в Супермаг он ещё не внесён (то ли не успели, то ли ЗабЫли/ ЗабИли)..

Но, допустим, поставщик выгружает дополнительно наш Артикул ..

Код:
  <SPECITEM>1</SPECITEM> 
  <DISPLAYITEM>1</DISPLAYITEM> 
  <ARTICLE>90027</ARTICLE> 
  <BARCODE>4650001970251</BARCODE> 
  <SUPPLIERARTICLE />
в схеме у меня сейчас так ...

Код:
              <xs:element smimport:Function="ArticleByBarcode(BARCODE)" name="ARTICLE" type="xs:string" />
соответственно, если ШК не находится, то загрузка валится с ошибкой, что Не определён артикул ...

Может есть какая-нибудь функция, которая при определении артикула смотрела бы на ШК?
А если ШК нет или не найден в базе, то брала бы артикул из <ARTICLE>90027</ARTICLE>
?

Почитал по ArticleByBarcodeUI, но это не то ..там про Марку

Может можно свою функцию написать?
(только не знаю, можно ли свои функции пользовать в схемах)

в Данный момент пользую СМ 1.045 SP3
(обновиться да - в планах).
31.03.2022 14:53
Добрый день.
Такого функции нет.
Пока вижу два варианта.

1. Правильный - заказать функцию. Сделаем быстро, но не бесплатно. Но по разумной цене.
2. Раз артикул известен, его можно перенести в ШК товара. Немного возрастет нагрузка на кассу. Т.к. объем данных о товарах увеличится, но если подойти с умом. И присвоить штрихкоду значение артикула, не для всех абсолютно товаров, а именно для карточек находящихся в зоне риска (созданные недавно) - вариант вполне себе рабочий.
Пример скрипта для всех товаров, без исключения (деланный давно, нужна проверка, и копия БД перед запуском):

insert into SMStoreUnits
(
BarCode,BarCodeType,UnitName,Article,SubArticle,Quantity,FaceQuantity,Flags
)
select Article,5,'ARTICLE',Article,SubArticle,1,1,17
from SMCard crd
where not exists (select 1 from SVStoreUnits u where u.BarCode=crd.Article)
and length(crd.Article)<=6
;
commit;
31.03.2022 16:50
Цитата:
Владимир 1. Правильный - заказать функцию. Сделаем быстро, но не бесплатно. Но по разумной цене.
)) ожидаемо ...

2 вариант - костыль...

Ясно, спасибо
31.03.2022 17:56
Ты же можешь сам написать...
Допустим файлики попадают от транспорта в C:\DIR и там у тебя по схеме все, что хочешь, включая артикул.
Перенастрой, пусть падают от транспорта в C:\DIR2, куда будет смотреть твоя софтинка (ReadDirectoryChangesW и все такое), которая при обнаружении файлика будет заполнять <BARCODE>, если он пустой и есть <ARTICLE>. А результат класть в C:\DIR.
Такое шлюзование может значительно увеличить функционал обмена.
31.03.2022 19:55
Цитата:
OlegON Ты же можешь сам написать... .
да ..
Это ещё бОльший костыль ..
+ ещё одна точка отказа ...

Цитата:
Владимир Сделаем быстро, но не бесплатно. Но по разумной цене.
Просто на этапе внедрения мне СБиСовцы говорили, что, т.к. всё в разработке (про обмен УПД), то ТП С+ готова выслушивать пожелания и реализовывать их
даже давали Ваши контакты для прямой связи, Владимир.
(Но я не обращался...)

Это так ... мысли вслух )

(наверное придётся за доработкой обратиться всё же 'по разумной цене') ..
31.03.2022 20:05
Цитата:
Stels Это ещё бОльший костыль ..
нет, это как раз нормальный по логике алгоритм, позволяющий не соединять разные сущности, что может привести к неоднозначным условиям
рано или поздно у тебя может, например, появиться в штрихкодах запись, совпадающая с артикулом или наоборот...
Цитата:
Stels + ещё одна точка отказа ...
ну, это как написать и настроить... :)
01.04.2022 10:06
Цитата:
Владимир .
Послал запрос на вашу почту )
Часовой пояс GMT +3, время: 17:45.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.