Создание транслятора

Автор rain, 19.06.12, 15:20:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

rain

Здравствуйте!
у нас на предприятии возникла небольшая проблема с Лоцманом. у определеного изделия можно поменять раздел спецификации на "Прочие". в его карточке также поменять этот раздел. после этого значок контейнера превращается в этакий пропеллер (т.е. прочее изделие).
но потом, если заимствовать это прочее изделие в другой проект, то при получении информации и построении дерева проекта это самое прочее изделие снова отображается типом "Деталь". обращался в техподдержку, в нижегородской ТП сказали, что такая проблема у них повторилась, думали че делать, в итоге передали это дело нашей - пензенской - ТП. оттуда позвонили и сказали, что у нас два пути - либо обновлять комплекс до 11 (у нас 9), либо заказывать у них транслятор, который будет превращать некоторые Детали в Прочие изделия. Т.е. в любом случае хотят денег))
так вот и возникла идея написать транслятор самому.
благо, в делфи есть (был) небольшой опыт работы. но смущает меня тот факт, что я не знаю с чего начать. каким образом его создавать, как подключать. и самое главное: понять принцип его действия. т.е. как этот транслятор определит что именно ЭТУ, а не иную деталь нужно сделать прочим изделием? откуда он будет брать информацию? спецификация у нас в ручном режиме.
если у кого-то есть опыт или хотя бы понимание принципа действия такого транслятора, поделитесь пожалуйста!

Slaviation

Обменом информацией между ЛОЦМАН и инструментами (Компас и др.) занимается Интегратор.
Он запускает так называемый прокси - специальный модуль, собирающий информацию из инструмента  ( при получении информации из инструмента в Лоцман) или отдающий информацию в инструмент ( при открытии документа в Лоцмане)
Рассмотрим  первый сценарий. Используя API инструмента прокси собирает информацию из документа, открытого в инструменте, преобразует ее в вид специальной объектной модели  и передает ее интегратор у, который в свою очередь отдает ее серверу приложений Лоцман. Так вот, по дороге из прокси в интегратор можно организовать попадание этой объектной модели в так называемый Транслятор, в котором модель можно "допилить напильником" до требуемого вида.
Организуется это  в Конфигураторе Лоцман, в разделе Интеграции.
Транслятор пишется на вижуал бейсике.

rain

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

и опять же вопрос, как лоцман должен понять, что именно эта деталь является прочим изделием, если в компасе нигде вроде бы это не указывается?

Slaviation

Входной транслятор  стоит на пути передачи данных  из Лоцман в Инструмент.
Выходной - на пути из Инструмента в Лоцман.
Если в обеих случаях используется один и тот же транслятор, он универсальный.
Шаблон интегратора - не знаю что такое, может шаблон транслятора?
Если так, то в конфигураторе Лоцман можно просмотреть любой транслятор и использовать его как шаблон.
На последний вопрос, не отвечу, маловато вводной.

rain

с последним вопросом я вроде как разобрался, но пока что чисто теоретически.

да, конечно, я имел ввиду шаблон транслятора, описочка вышла)
то есть нужно всегда использовать два шаблона (либо один универсальный два раза)? или может быть такое, что используется, например, только выходной транслятор?
конкретно, чтобы изменить тип Деталь на Прочее, пока что в моем представлении так: пишется входной транслятор, где в лоцмане в карточке объекта указано, что он является прочим изделием. далее пишется выходной транслятор, где при получении информации из объекта, его тип меняется на Прочее.
или все это организуется в каком-то одном трансляторе? я просто пока что не догоняю всей логики..

большое спасибо за содействие!

rain

Вы не поверите, я написал нужный мне транслятор))
там делов-то на пол дня для меня, видящего VBScript первый раз в жизни. естесственно, написал на основе уже имеющегося транслятора, но результатом остался доволен)
Slaviation, большое спасибо за объяснение принципа работы!

Slaviation

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

rain

простите, а что такое кейс?) рабочее место?