Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: sergiucz от Октябрь 13, 2012, 11:57:44 am
-
Добрый день господа Гуру АБАПА!
У меня возникла проблема .
Программа отлично работает в нормальном режиме.
Интерфейс должен отправить во внешнюю БД новые контрагенты или измененные контрагенты .
я поставил интерфейс в фоновом режиме на отработку 1 раз в 5 мин.
Интерфейс работает на все 100 %, вне фоновом режиме как оказалось отрабатывает но не подключается к внешней БД.
Подключение делал через ADODB.Connection
Внешная БД
Внешняя БД Sybase .
Везде установлены драивера .
ПРосто в фоновом режиме не конектицо к БД.
Вложения и другие параметры
-
Интерфейс работает на все 100 %, вне фоновом режиме как оказалось отрабатывает но не подключается к внешней БД.
Ну правильно не подключается. Наверное сервер приложений про драйвера ничего не знает, DLL-ка клиента подключения у вас же наверное локально установлена на вашей рабочей станции, а вот для фона это будет проблемой. Это тоже самое почему в фоновом режиме часто нельзя загрузить файл Excel, хотя в диалоге все работает на ура, а потому что Excel-я нет на сервере приложений, нашел уже похожий кстати вопрос с расписанным ответом: http://sapforum.biz/index.php/topic,809.msg5078.html#msg5078
-
А если сделать Batch Input для своей программы и сделать его без показа экранов.
И вызвать этот Batch Input в фоновом режиме ? просто системы нету под рукой и не могу проверить.
Ша гляну на линк. Спасибо большое.
-
Наверное сервер приложений про драйвера ничего не знает, DLL-ка клиента подключения у вас же наверное локально установлена на вашей рабочей станции, а вот для фона это будет проблемой.
На сервер приложений установлены драйвера для ВНЕШНЕЙ БД. (Спросил у Базиса)
У нас терминальные клиенты. И на сервере установлен драйвер для подключения. Вот раньше было проблема когда я хотел подключится к внешней БД через DBCON . и ни как не хотел подключатся. Вот и сделал через ADODB.Connection.
-
А если сделать Batch Input для своей программы и сделать его без показа экранов.
Стоять - бояться. Как же это вы пакетник сделаете без показа экранов? Пакетный ввод это эмуляция работы программы в диалоге, поэтому экраны вызываются независимо от вас, ну или вы немного не понимаете что такое пакетный ввод.
У нас терминальные клиенты. И на сервере установлен драйвер для подключения. Вот раньше было проблема когда я хотел подключится к внешней БД через DBCON . и ни как не хотел подключатся. Вот и сделал через ADODB.Connection.
Ну т.е. проблема решена как я понимаю.
-
Стоять - бояться. Как же это вы пакетник сделаете без показа экранов?
CALL TRANSACTION 'FB02' USING bdcdata MODE [b]'N'[/b] UPDATE 'S' MESSAGES INTO messtab.
MODE 'N' - без показа экранов
MODE 'А' - С экранами
MODE 'Е' - Показать экран только если есть ошибка.
А почему стоит боятся?
-
Как же это вы пакетник сделаете без показа экранов? Пакетный ввод это эмуляция работы программы в диалоге, поэтому экраны вызываются независимо от вас, ну или вы немного не понимаете что такое пакетный ввод.
Вы наверное меня не поняли. Я вод создал z программу она в нормальном режиме работает как часы. Конектится к внешней БД, передает ,изменяет и удаляет данные из БД. Но когда именно эту z программку вставляю в фоновом режиме . Вот тогда конект не срабатывает.
Вот я подумал а если создать пакетник для моей z программы .Ну какбы симулировать запуск в не фоновом режиме. Может сработает.
А сам пакетник поставить в фоновом режиме. В Пятницу протестирую свою идею . Распишусь если получилась
Тока сейчас системы нету под рукой.
-
MODE 'N' - без показа экранов
MODE 'А' - С экранами
MODE 'Е' - Показать экран только если есть ошибка.
Стоять, потому что к экранам транзакции это отношения не имеет, имеет смысл то как работает пакетный ввод. В режиме N - при ошибке пакетный ввод не будет остановлен, ошибки получишь во внутренней таблице для анализа. При режиме E - в случае выполнения пакетного ввода, при ошибке транзакция будет остановлена и можно будет исправить ошибочную позицию пакетного ввода (конечно если работа программы идет в диалоге, в фоне просто во внутреннюю таблицу ошибок вернется результат), ну а при А - каждый экран будет просить подтверждения ввода. В общем экраны транзакции, они вызываются в любом случае.
-
Вы наверное меня не поняли.
Да вас то я понял, это вы просто не очень себе представляете как работает SAP при трех-уровневой архитектуре и как вообще выполняется ABAP-программа, поэтому и вопросы и проблемы такие возникают.
-
Да вас то я понял, это вы просто не очень себе представляете как работает SAP при трех-уровневой архитектуре и как вообще выполняется ABAP-программа, поэтому и вопросы и проблемы такие возникают.
Не пинайте меня сильно я тока начинающий абапер.
ТО есть программа когда выполняется в нормальном режиме отличается от выполнения программы в фоновом режиме ?
Я имел в виду не визуальные отличия.
-
ТО есть программа когда выполняется в нормальном режиме отличается от выполнения программы в фоновом режиме ?
Ну флаг в системной структуре будет поднят, что фоновый режим, и соответственно если в программе есть какие-то особенности для режимов фон/диалог, то будут различия. В общем случае для большинства стандартных транзакций различия в выполнении нет, т.е. при вызов по CALL TRANSACTION в фоне, будут происходить все те же процессы, что и в диалоге.