Текущее время: Ср, июл 30 2025, 21:43

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Программный ввод значения в поле на экране (полная эмуляция)
СообщениеДобавлено: Пт, мар 28 2008, 12:30 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Собственно речь идет о том чтобы программно эмулировать ввод значения в стандартное поле (как делается в batch input)

1) В программе (расширении) присваиваю экранному полю новое значение
2) Далее выполняю CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
чтобы пройти через PAI и PBO

Но в этих процессах стандартная обработка экрана включает модули on request на это поле, которые к сожалению не срабатывают на программное изменение значения поля

Как сделать чтобы эти модули срабатывали , т е полностью эмулировать ввод значения в поле и нажатие <Enter>
В batch-input это ведь как-то работает...

Заранее спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный ввод значения в поле на экране (полная эмуляция)
СообщениеДобавлено: Пт, мар 28 2008, 13:35 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
organmusic написал(а):
Собственно речь идет о том чтобы программно эмулировать ввод значения в стандартное поле (как делается в batch input)

1) В программе (расширении) присваиваю экранному полю новое значение


Экранному полю вы не можите присвоить никакого значения. Присвоение выполняется переменным ABAP-а. Из которых/в которые в процессе работы экранной логики будут перенесены значения.
Цитата:
2) Далее выполняю CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
чтобы пройти через PAI и PBO

А зачем такие извращения?
Цитата:
Но в этих процессах стандартная обработка экрана включает модули on request на это поле, которые к сожалению не срабатывают на программное изменение значения поля

Как сделать чтобы эти модули срабатывали , т е полностью эмулировать ввод значения в поле и нажатие <Enter>
В batch-input это ведь как-то работает...
Выполнять транзакцию через Batch Input Session.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 13:48 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 21 2006, 17:16
Сообщения: 134
Откуда: Донецк
Пол: Женский
Можно в PAI-логике пройтись по экрану и для этого поля написать screen-request = '1'.

_________________
Если хочешь иметь то, чего никогда не имел - то должен делать то, чего никогда не делал.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 16:01 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Подробнее это из PM (ТОРО)
Хотим всего лишь сделать надстройку над стандартной транзакицей IW22 для ввода документа измерений (ДИ), чтобы на лету переводить из мили в км
При создании ДИ стандартно надо заводить километраж (разницу), а у нас показания счетчиков машин в милях.
Вот хотим чтобы над списком ДИ по стандартной кнопке 'Счетчик' всплывало окно где можно ввести разницу пробега в милях - далее по OK в стандартный экран впечатываются разница пробега в км - рассчитывается новый пробег и др производные значения (как по Enter) и дальше все обычным порядком

Всплывающее окошко я в общем сделал, но как вставить вычисленное значение в поле экрана ДИ (то что предназначено для ручного ввода)

Как это можно сделать без извращений? - подскажите пожалуйста
К сожалению screen-request = 1 попробовать тоже не получается, я не могу вставить реализацию расширения в PAI и PBO, так же как и в их модулях


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 16:38 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Может SAP GUI Scripting пользовать?

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 17:26 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Bully написал(а):
Может SAP GUI Scripting пользовать?

А как его использовать?
Можно поподробней пожалуйста


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 18:14 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
organmusic написал(а):
Подробнее это из PM (ТОРО)
Хотим всего лишь сделать надстройку над стандартной транзакицей IW22 для ввода документа измерений (ДИ), чтобы на лету переводить из мили в км
При создании ДИ стандартно надо заводить километраж (разницу), а у нас показания счетчиков машин в милях.
...
Речь идёт про ввод документ измерений через IK1x?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 18:38 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
sy-uname написал(а):
organmusic написал(а):
Подробнее это из PM (ТОРО)
Хотим всего лишь сделать надстройку над стандартной транзакицей IW22 для ввода документа измерений (ДИ), чтобы на лету переводить из мили в км
При создании ДИ стандартно надо заводить километраж (разницу), а у нас показания счетчиков машин в милях.
...
Речь идёт про ввод документ измерений через IK1x?

Да именно это,
Мы хотим в системе (в стандарте) все ДИ для этой точки измерения вести в км, чтобы не создалось проблем с разными ед измерений
Хотим мили со счетчиков (спидометров) сразу переводить в км - с пом своего Z-функционала - в систему все должно попадать только в км

Можно наверное и эту транзакцию IK01 в пакетнике запускать, если она будет работать из IW22. Я попробовал запускать в разных сеансах - если IW22 запущен, то IK01 для ее ед. оборудования блокируется.
Конечно хотелось бы найти какое-то простое решение, без этих трудоемких извратов


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 18:53 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Bully написал(а):
Может SAP GUI Scripting пользовать?

Насколько я прочитал по GUI Scripting, не вполне подходит, не хотелось бы еще VBasic и OLE сюда привлекать

Наилучший вариант было бы просто эмулировать изменение значения в каком то поле (или неск полях) экрана с последующей отработкой PAI и PBO
В общем некий аналог пакетного ввода. Но пакетник нельзя запустить где то в середине транзакции. В лучшем случае пакетником можно стартовать транзакцию и остановиться где-то посередине

А вообще такая эмуляция экранного ввода была бы очень полезна - в стандартных экранах часто присутствует очень сложная логика обработки, которую извлечь и воспроизводить в отдельной своей процедуре очень трудоемко и чревато ошибками. Лучше было бы просто выполнить уже готовый экранный PAI/PBO


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 28 2008, 21:26 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
organmusic написал(а):
А вообще такая эмуляция экранного ввода была бы очень полезна - в стандартных экранах часто присутствует очень сложная логика обработки, которую извлечь и воспроизводить в отдельной своей процедуре очень трудоемко и чревато ошибками. Лучше было бы просто выполнить уже готовый экранный PAI/PBO


SAP GUI Scripting - "эмулирует" действия пользоателя. Тут вам и PAI отработает и PBO.
Согласен, что не для всех задач будет удобно его использовать.
В отличие от пакетника он умеет работать с Enjoy компонентами, "запускаться с середины транзакции" и т.д. и т.п.

Попробуйте - не так уж и сложно.

Макросы в Word'е писали? Примерно тоже самое.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, мар 29 2008, 10:08 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
organmusic написал(а):
...
Да именно это,
Мы хотим в системе (в стандарте) все ДИ для этой точки измерения вести в км, чтобы не создалось проблем с разными ед измерений
Хотим мили со счетчиков (спидометров) сразу переводить в км - с пом своего Z-функционала - в систему все должно попадать только в км

Можно наверное и эту транзакцию IK01 в пакетнике запускать, если она будет работать из IW22. Я попробовал запускать в разных сеансах - если IW22 запущен, то IK01 для ее ед. оборудования блокируется.
Конечно хотелось бы найти какое-то простое решение, без этих трудоемких извратов


Я вот только непойму зачем что-то делать эмуляцию нажатий, запуск пакетников, ...? Почему нельзя обойтись простым call function ... для создания ДИ?

Bully написал(а):

А что, Scripting уже ведётся как объект словаря?
Потому как, на мой взгляд, это был его один из главных недостатков - необходимы дополнительные ухищерения чтобы закинуть скрипт на машину пользователя.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, мар 30 2008, 02:45 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
sy-uname написал(а):
organmusic написал(а):
...
Да именно это,
Мы хотим в системе (в стандарте) все ДИ для этой точки измерения вести в км, чтобы не создалось проблем с разными ед измерений
Хотим мили со счетчиков (спидометров) сразу переводить в км - с пом своего Z-функционала - в систему все должно попадать только в км

Можно наверное и эту транзакцию IK01 в пакетнике запускать, если она будет работать из IW22. Я попробовал запускать в разных сеансах - если IW22 запущен, то IK01 для ее ед. оборудования блокируется.
Конечно хотелось бы найти какое-то простое решение, без этих трудоемких извратов


Я вот только непойму зачем что-то делать эмуляцию нажатий, запуск пакетников, ...? Почему нельзя обойтись простым call function ... для создания ДИ?

Bully написал(а):

А что, Scripting уже ведётся как объект словаря?
Потому как, на мой взгляд, это был его один из главных недостатков - необходимы дополнительные ухищерения чтобы закинуть скрипт на машину пользователя.

Если есть возможность сделать ДИ одним вызовом функции, конечно так надо и сделать - чем проще тем лучше

Я смотрел эту группу функций (IMR0 кажется), надо кончено еще разобраться какой ФМ использовать. У меня здесь лишь одно сомнение:
В момент вызова ФМ создания документа измерения (ДИ) я буду находиться в сообщении ТОРО в режиме изменения. А там, как известно, в пункте меню Доп.информация есть своя система создания и редактирования ДИ. Я видел в коде что там вызывается один ФМ из этой группы, точно сейчас не скажу, что то вроде ...DIALOG_LIST

Так вот не будет ли создание моего ДИ заблокированно этой системой?

Если заблокированно не будет, тогда неясны некоторые принципы работы с ДИ.
Если мой вызов ФМ создает ДИ, он видимо будет сразу записан во внешнюю таблицу IMRG?.
В Доп информации новые созданные ДИ хранятся только во внутренней таблице, а реальная запись в IMRG происходит лишь в момент сохранения сообщения ТОРО.
Я тогда не понимаю как в этом случае не имея связи друг с другом они не будут друг с другом конфликтовать (например по назначению нового номера ДИ)
Пожалуйста проясните данные моменты

Что касается scripting, посоветуйте где можно получить информацию и толковую документацию (с примерами) по нему.
C VBA я работал очень много (Word, Excel, Access, MSProject), но там великолепная help и hint системы - где все расписано с примерами, многочисленные свойства и методы объектов с их параметрами не надо заучивать наизусть или искать в документации (как например приходилось в Turbo Vision в C++) - вообще забывашь что работаешь в ООП.
И конечно если для выполнения такой простой операции (занесения значения в поле экрана) придется еще загружать какой то файл видимо скрипт) на компьютер пользователя, то это не слишком удобно и надежно. Я надеялся все же что существует более простое решение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, мар 30 2008, 22:06 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
sy-uname написал(а):
А что, Scripting уже ведётся как объект словаря?
Потому как, на мой взгляд, это был его один из главных недостатков - необходимы дополнительные ухищерения чтобы закинуть скрипт на машину пользователя.

Да, наверное это его минус.

organmusic написал(а):
Что касается scripting, посоветуйте где можно получить информацию и толковую документацию (с примерами) по нему.

У меня документация лежит тут C:\Program Files\SAP\FrontEnd\SAPgui\SAPguihelp\SAPGUIScripting.chm

А вообще много примеров тут.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 09:57 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Посоветуйте какую функцию использовать для создания нового документа измерений?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 11:01 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Bully написал(а):
sy-uname написал(а):
А что, Scripting уже ведётся как объект словаря?
Потому как, на мой взгляд, это был его один из главных недостатков - необходимы дополнительные ухищерения чтобы закинуть скрипт на машину пользователя.
Да, наверное это его минус.
Второй минус, что он может быть и закрыт настройками системы...........

Я даже маленький "хук" делал с PlatinGUI, в обход этого запрета..... :D

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB