09.04.2003, 18:39 | #1 |
Участник
|
Запуск dataport
Можно ли запустить определенный датапорт вне программы, например из bat файла?
Спасибо за ответ. |
|
09.04.2003, 20:22 | #2 |
Участник
|
нет нельзя. датапорт - это внутренний объект navision, интерпретируется внутренними средствами клиента. если тебе нужен доступ к данным navsion то юзай c\front либо c\odbc
|
|
10.04.2003, 12:23 | #3 |
Участник
|
Но если очень хочется, то можно :)
Если речь идет просто о том, чтобы выполнить некоторый объект из командной строки, то это возможно. Правда не стандартными средствами Attain (я их по крайней мере не знаю), а средствами WSH (Windows Script Host), который является альтернавтивой bat-файлам для windows. С его помощью можно, в том числе, и управлять windows-приложениями путем посылки им сообщений.
В прикрепленном файле содержится такой пример. Аналогичным образом можно выполнять и другие действия, в том числе и запускать датапорты. |
|
10.04.2003, 12:33 | #4 |
Участник
|
Сохранить в файле с расширением js.
PHP код:
|
|
25.06.2003, 03:33 | #5 |
Участник
|
Grizzly - Вы не подскажите, где можно взять документацию по X++ ?
|
|
25.06.2003, 09:08 | #6 |
Участник
|
Думаю, там же где и Axapta, в MBS
|
|
25.06.2003, 12:31 | #7 |
Участник
|
Еси вы владеете средой Delphi.
и в лицензии есть доступ к C\FRONT, и вам такие функции необходимо делать переодически, то лучше написать на делфи вызов необходимого вам хозяйства. |
|
25.06.2003, 13:01 | #8 |
Участник
|
Цитата:
Изначально опубликовано Lexi
лучше написать на делфи вызов необходимого вам хозяйства. |
|
25.06.2003, 14:16 | #9 |
Участник
|
Этим хитрым словом я постарался прекрыть следующее:
1. На данный момент я активно юзал работу C/FRONT с данными Navision и точно не знал (только слышал) что можно юзать и остальное. 2. На самом деле проблему нужно решать в комплексе с поставленной задачей, и если что требуется делать снаружи, то лучше это делать через C/FRONT. |
|
25.06.2003, 14:37 | #10 |
Участник
|
Цитата:
Изначально опубликовано Lexi
1. На данный момент я активно юзал работу C/FRONT с данными Navision и точно не знал (только слышал) что можно юзать и остальное. |
|
25.06.2003, 14:53 | #11 |
Участник
|
Да, к сожалению C/FRONT не позволяет запускать ДатаПорты.
Ну тогда выход следующий: написать OCX вызывающий требуемый датапорт. P.S. И это будет правильней, эмуляции нажатий на клавиатуру. |
|
25.06.2003, 15:18 | #12 |
Участник
|
Цитата:
Изначально опубликовано Lexi
Ну тогда выход следующий: написать OCX вызывающий требуемый датапорт. |
|
25.06.2003, 15:23 | #13 |
Участник
|
Элементарно:
В OCX вставляется Socket Server с вызовом необходимой функции. Пишется отдельно Socket Client из которого вызывается требуемая функция. |
|
25.06.2003, 15:31 | #14 |
Участник
|
Цитата:
Изначально опубликовано Lexi
Элементарно: В OCX вставляется Socket Server с вызовом необходимой функции. Пишется отдельно Socket Client из которого вызывается требуемая функция. |
|
25.06.2003, 15:37 | #15 |
Участник
|
А Вы не "ведите", вы говорите как есть.
Клиент NA (с интегрированным Socket Server-ом) в данном случае является сервером по отношению к программе (Socket client) запускающий требуемый датапорт. |
|
25.06.2003, 15:54 | #16 |
Участник
|
У данного варианта есть ряд преимуществ перед эмуляцией кнопок:
Возможность проконтролировать результат обработки; Возможность установок дополнительных параметров обработки; Возможность установок дополнительных проверок результата обработки; Возможность получения на Socket cliente ответных результатов......... А ваша эмуляция...... ну запустил и что ....... сработало или нет .....????? |
|
26.06.2003, 11:40 | #17 |
Участник
|
Цитата:
Изначально опубликовано Lexi
А Вы не "ведите", вы говорите как есть. Напомню задачу. Из внешнего приложения (из командной строки) нужно запустить NA, залогиниться в БД, открыть фирму, выполнить некоторый объект и по возможности закрыть NA. Когда вы заявили, что можете сделать это, использовав COM-технологию, меня это заинтересовало. Это противоречит моим представлениям о системе. Однако я допускаю, что могу многого не знать, т.к. активно программированием уже давно не занимаюсь. А знаю я следующее: 1. Клиент NA не может выступать в качестве COM-сервера, а только так вы можете инициализировать его из внешнего приложения. Если это не так, то укажите, пожалуйста, через какой COM-интерфейс вы это собираетесь делать. 2. В поставке с NA действительно идут несколько COM-объектов. Однако, назначение их не в том, чтобы дать возможность доступа к функциям NA из других приложений, а в том, чтобы дать возможность самому клиенту NA получить доступ к внешним функциям (winsocket, tapi и т.д.), потому что, например, нет иного способа в NA вызвать функцию из динамически связываемой библиотеки. И по отношению к этим COM-объектам клиент NA выступает COM-клиентом. Цитата:
Клиент NA (с интегрированным Socket Server-ом) в данном случае является сервером по отношению к программе (Socket client) запускающий требуемый датапорт.
-запустить NA; -залогиниться в БД; -запустить на выполнение объект, который создает набор Automation-переменных, через которые реализуется доступ к winsocket, открывает нужный порт и «слушает» его. Т.е. вы опять вернулись к исходной задаче. Цитата:
У данного варианта есть ряд преимуществ перед эмуляцией кнопок:
P.S. Я буду рад если вы аргументировано опровергнете мое представление о NA, потому что считаю, что если бы ситуация была такой, какой описали ее вы, то всем от этого стало бы только лучше. |
|
26.06.2003, 13:45 | #18 |
Участник
|
1. В первоисточнике написано так:
Можно ли запустить определенный датапорт вне программы, например из bat файла? а не так: Напомню задачу. Из внешнего приложения (из командной строки) нужно запустить NA, залогиниться в БД, открыть фирму, выполнить некоторый объект и по возможности закрыть NA. Не вижу фразы (из командной строки) может вы ее видите? Если выделить фразу "вне программы", то под данную фразу не подходит вообще ни какое решение. 2. Если вы внимательно почитаете переписку, то увидите: В OCX вставляется Socket Server с вызовом необходимой функции. Это к Цитата: -------------------------------------------------------------------------------- Клиент NA (с интегрированным Socket Server-ом) в данном случае является сервером по отношению к программе (Socket client) запускающий требуемый датапорт. -------------------------------------------------------------------------------- 3. Никакого интегрированного в клиент NA Socket Server не существует. Клиент NA может выступать в качестве Socket Server-а (см. п. 2), однако, для этого сначала нужно: Рашифровываю: 1. Пишется OCX модуль со встроенным Socket Server; 2. Данный модуль интегрируется в клиентскую часть navision; 3. Пишется клиентская часть; 4. Запускается Navision Client и наш OCX; 5. Запускается в пределах видимости сети Наш клиент. 6. И вперед. 3. Очень странно, что вы вдруг вспомнили, что это не та сказка. Зачем тогда обсуждался вариант с C/FRONT и OCX? Цитата: --------------------------------------------- Я не юзал C/FRONT, но знаю, что датапорт через него вы не запустите (если, конечно, дополнительно не напишете интерпретатор объектов NA). ОСХ - это не решение, а способ взаимодействия компонент. Не сочтите за труд опишите в двух словах ваше решение, которое позволяет из вне Attain выполнить его объект. --------------------------------------------- Кстати та или не та сказка еще вопрос? см п1. 4. Если нужно удаленно запустить Attain и его модули, то пишется отдельная программа (напр. тот же Socket Server но с другим портом) которая удаленно сделает необходимые действия, да и проверит правомерность запуска. На самом деле если заняться темой, то можно накопать еще решений, все зависит от уровня квалификации копальщика. P.S. |
|
26.06.2003, 14:02 | #19 |
Участник
|
По ходу обсуждения, у меня возник вопрос: а что делать с паролем пользователя? Хранить его в открытом виде в js файле? Вводить нового пользователя с правами на запуск конкретного датапорта? Кстати, как поведет себя OCX при запросе пароля?
Прошу прощения, если мои вопросы покажутся наивными. |
|
26.06.2003, 14:17 | #20 |
Участник
|
Цитата:
Изначально опубликовано Lexi
Не вижу фразы (из командной строки) может вы ее видите? Цитата:
Расшифровываю ... 4. Запускается Navision Client и наш OCX; ... Вот как эту задачу понимаю я. Например, у меня есть сервер с БД Navision. Я хочу, чтобы обмен данными с другой системой происходил ночью (чтобы не мешать другим пользователям). Для этого я хотел бы по расписанию запускать NA и выполнять нужные операции (выгрузка данных, бэкап и т.д.). Если же предположить что NA у меня постоянно запущен, то, естественно, и вопросов бы не было. [QUOTE][B] 4. Если нужно удаленно запустить Attain и его модули, то пишется отдельная программа (напр. тот же Socket Server но с другим портом) которая удаленно сделает необходимые действия, да и проверит правомерность запуска. [QUOTE][B] Lexi, откуда вы взяли, что интересует УДАЛЕННЫЙ запуск? P.S. Уважаемая Marina, усли вы до сих пор читаете эту чушь, не сочтите за труд внести ясность относительно вашей задачи. |
|