29.09.2011 17:51
mat skywalker
 
В документированных возможностях SET-Retail указан способ обмена COM-объекты. Если руководствоваться стандартной инструкцией, что-либо сделать невозможно. Данных из инструкции менее чем достаточно. В "техподдержке" Кристалла ответили "ничо не знаем" и "никто не знает". Поражает этот непрофессионализм. Я знаю, по крайней мере, одно ПО обменивающееся с SET-Retail через СОМ объекты (S-market). Вот КАК им удалось сделать обмен если "никто не знает"?

Напомню, что обмен через COM объекты присутствует в SET-Retail, начиная с самых старых версий и по сей день.
Если кто нибудь хоть что то знает о этой загадочной теме, отпишитесь. Буду благодарен.
29.09.2011 19:00
grannie
 
Цитата:
mat skywalker Если руководствоваться стандартной инструкцией
про какую инструкцию речь? в infosys'е целый раздел по этому есть, с кучей примеров и описаний.
(Ежели чего - лично я в этом не копенгаген)
30.09.2011 03:47
gorbach
 
В общем виде это выглядит так.
Импорт
  • Поднимаем COM-объект "KassServer.LoadData" (для Центрум "CentrumExchange.LoadData").
  • Заполняем свойства объекта DeviceType, DeviceList, DataDelimiter, DataFormat, Data (свойство Data, как я понимаю, уже не используется).
  • Вызываем метод Transfer(DataToImport, Operation)
Подробно свойства и методы описаны в документации

Экспорт
Там несколько объектов/интерфейсов все описано в документации с примерами.
Смысл тот же. Поднимаем нужный COM-объект. Заполняем свойства. Вызываем нужный метод.

Пока все работает. Но у меня сложилось впечатление, что Кристаллу COM не нужен и поддерживать они его не хотят. Основным способом обмена между SET:Retail и внешней системой является XML. Поэтому я бы с COM не заморачивался, а разбирался бы с XML-обменом.
02.10.2011 23:50
mat skywalker
 
Любой файловый обмен хуже чем COM обмен, хотябы из за низкой скорости работы. Вы замеряли сколько времени прогружаются 76 тыс. карточек товаров в кристале версии 5.1.39 и в Кристале версии 5.2.80.009 ? Это просто небо и земля.
Старый Кристал на порядок (!) быстрее.

Те сведения, которые есть в документациях описывают только ЭКСПОРТ. Все что касается ИМПОРТА - тайна. Нет ни примеров ни внятного описания. То, что имеется в инструкции, повторюсь, не применимо потому что недостаточно.
03.10.2011 03:38
gorbach
 
Описания импорта через COM в инструкции нормальное. Там все очень просто. Описание свойств и метода Transfer есть в документации. Что не понятно?
Что касается файлового обмена. Соглашусь, что он медленнее. Но в последних версиях SET:Retail импорт через COM практически равноценен файловому обмену (стал медленным, фактически вызов метода Transfer происходит мгновенно, сразу отдает управление, но пока это все дойдет до оборудования...). Находятся, даже, те кто утверждает будто XML обмен в SET:Retail быстрее (не знаю, не пробовал).
Если Вас интересует именно COM обмен, то напишите, что у Вас не получается. Я попробую помочь.
03.10.2011 20:45
mat skywalker
 
А можно писать данные пряв базу? В виде Джобов? Так та точно быстрее будет, в обход служб транспорта.
04.10.2011 05:20
gorbach
 
Можно и прямо в базу писать. Но тут я помочь не могу - никогда такой потребности не возникало, опыта нет.
04.10.2011 10:21
mat skywalker
 
А по СОМ объектам опыт есть?)
Такой вот код на VBS выдает ошибку "Несоответствие типа":

SQLstr="99991|Test1|99992|Test2"
Set objSES = CreateObject("KassServer.LoadData")
objSES.DeviceList="*"
objSES.DataDelimiter = "|"
objSES.device = 1
objSES.DataFormat = "GoodsItem; GoodsName"
objSES.data=SQLstr
04.10.2011 10:42
Shift
 
Data - это тип (цифровое значение, в твоём случае наверно 1 - товары)
а дальше
Код:
transfer(sqlStr,"true",)
04.10.2011 10:49
Shift
 
Да ещё в
Цитата:
mat skywalker objSES.DataFormat = "GoodsItem; GoodsName"
пробел убери на всякий случай
Часовой пояс GMT +3, время: 15:32.

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