Текущее время: Вт, июл 29 2025, 04:57

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Вт, янв 24 2012, 16:21 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Привет, коллеги!

Думаю Вы сможете быстро подсказать. Итак: Есть маркрос написанный на VBA, он готовит предварительные данные, и затем используя SAP GUI вносит их в транзакцию MIR7. Проблема в том, что во время работы в транзакции макрос данные еще и считывает из разных окон САП. В общем телодвижений в самом САП довольно много. Работает макрос используя объекты Children, но если в системе что-то меняется или просто меняются пользовательские настройки возникает ошибка. Я где-то читала, что можно обращаться к объектам определенной транзакции без использования Children, а с помощью "постоянных указателей на объект" - это моя интерпритация названия, могу ошибаться. Наш технолог по САП, не программист, подсказала, что скорее всего речь идет о технической информации, доступная после нажатия F1 в определенном поле. Например для транзакции MIR7, поля Дата счета на вкладке Основные данные это:
Screen Data: Program Name - SAPLFDCB, Screen Number - 0010
GUI Data: Program Name - SAPLMR1M, Status - 6000P
Field Data: Table Name - INVFO, Table category - Struct., Field Name - BLDAT, Data Element - INVDT
Field Description for Batch Input: Screen Field - INVFO-BLDAT, Program Name - SAPLMR1M, Screen Number - 6000.

Изображение

Если так, то подскажите пожалуйста как заменить данный код:

Code:
Dim GuiAuto
Set GuiAuto = GetObject("SAPGUI")
Set oApp = GuiAuto.GetScriptingEngine
Set Connection = oApp.Children(0)
Set Session = Connection.Children(0) 'Session is window launched
Session.sendcommand ("/nmir7") ' mir7 launch
Set comp = Session.Children(0)
comp.Children(4).Children(7).Children(0).Children(0).Children(0).Children(1).Text = Какая-то дата


На код с использованием постоянного имени объекта.
Или это вообще не те имена? Если так, то где можно посмотреть те?

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Вт, янв 24 2012, 19:22 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Пакетный ввод через экраны неизбежно будет валится с ошибкой при каких-либо изменениях, и дело тут не только в "постоянных указателях" или "относительных". Лучше сделать через BAPI. По MIR7 тема уже всплывала bapi для mir7


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Ср, янв 25 2012, 10:28 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
zsap написал:
Пакетный ввод через экраны неизбежно будет валится с ошибкой при каких-либо изменениях, и дело тут не только в "постоянных указателях" или "относительных". Лучше сделать через BAPI. По MIR7 тема уже всплывала bapi для mir7


Я вчера первый раз услышала про BAPI. Где про это лучше почитать, желательно на русском?
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Ср, янв 25 2012, 10:35 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Курс о BAPI
Ну и курсы BC4XX также нужно будет прочитать. А лучше найти абапера который все вам сделает )


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Ср, янв 25 2012, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Да... Похоже это штука для на закрыта. Как впрочем и все остальное полезное в САП. Мы даже отчеты сами конструировать не можем. Такая глобальная политика компании(( У нас и скриптинг-то официально запрещен, а открыт по недосмотру. Пока решение такое: Максимально перенести все проверки на этап подготовки входящих данных. Чтобы минимизировать количество обращений к объектам в САП. И все таки уйти от children к абсолютным указателям. Приведите плз пример обращения к ним. Что еще можете посоветовать для увеличения стабильности? А абапера никто нанимать не будет. У нас есть глобальная команда поддержки и они уже что-то разрабатывают для MIR7, подозреваю, что как раз с использованием BAPI. Но они такие глобальные, что разработают только через год(( А про скриптинг им вообще лучше не говорить, сразу отключат.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 14:37 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Up


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 14:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Так вам же написали - найдите абапера.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 14:59 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Удав написал(а):
Так вам же написали - найдите абапера.


Я же ответила, у нас закрыто все кроме скриптинга, да и он открыт нелегально. Нанятый абапер засветит включенный скриптинг. А нужно переписать всего несколько строк кода, заменить children на постоянный указатель. Я всего лишь прошу одну строчку примера...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 15:06 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Просто сама постановка задачи - через GUI-скрипт вводить данные не подразумевает надежного способа избежания ошибок при изменении настроек.
Надежный способ - это создание программного интерфейса с SAP, который не будет зависеть от особенностей пользовательских настроек и в котором можно будет организовать своевременную диагностику ошибок.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 16:03 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Удав написал(а):
Просто сама постановка задачи - через GUI-скрипт вводить данные не подразумевает надежного способа избежания ошибок при изменении настроек.
Надежный способ - это создание программного интерфейса с SAP, который не будет зависеть от особенностей пользовательских настроек и в котором можно будет организовать своевременную диагностику ошибок.


Нет никакой возможности создать программный интерфейс. Мы глобальная компания, и разработка на глобальном уровне стоит огромных денег. Никто нам их не выделит для локальных задач. Пользовательские настройки в конце концов можно описать в процедуре. Макрос запускается всего-то несколькими людьми. А от обращения к объектам через children хочется уйти еще и для упрощения чтения кода макроса. Мне самой не нравится решение этой задачи с использованием скриптинга, но другого способа в нашем случае, к сожалению, нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пт, янв 27 2012, 17:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Nika1979 написал(а):
Нет никакой возможности создать программный интерфейс. Мы глобальная компания, и разработка на глобальном уровне стоит огромных денег. Никто нам их не выделит для локальных задач.

Странно, зачем делать разработку на глобальном уровне а не на локальном, если она нужна для локальной задачи? :?

ЗЫ: сорри за оффтоп. Я тоже работаю в крупной компании, но у нас таких проблем нет. Наверное потому, что есть внутренняя проектная команда.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Пн, янв 30 2012, 18:11 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
Nika1979 написал(а):
Привет, коллеги!

Думаю Вы сможете быстро подсказать. Итак: Есть маркрос написанный на VBA, он готовит предварительные данные, и затем используя SAP GUI вносит их в транзакцию MIR7. Проблема в том, что во время работы в транзакции макрос данные еще и считывает из разных окон САП. В общем телодвижений в самом САП довольно много. Работает макрос используя объекты Children, но если в системе что-то меняется или просто меняются пользовательские настройки возникает ошибка. Я где-то читала, что можно обращаться к объектам определенной транзакции без использования Children, а с помощью "постоянных указателей на объект" - это моя интерпритация названия, могу ошибаться. Наш технолог по САП, не программист, подсказала, что скорее всего речь идет о технической информации, доступная после нажатия F1 в определенном поле. Например для транзакции MIR7, поля Дата счета на вкладке Основные данные это:
Screen Data: Program Name - SAPLFDCB, Screen Number - 0010
GUI Data: Program Name - SAPLMR1M, Status - 6000P
Field Data: Table Name - INVFO, Table category - Struct., Field Name - BLDAT, Data Element - INVDT
Field Description for Batch Input: Screen Field - INVFO-BLDAT, Program Name - SAPLMR1M, Screen Number - 6000.

Изображение

Если так, то подскажите пожалуйста как заменить данный код:

Code:
Dim GuiAuto
Set GuiAuto = GetObject("SAPGUI")
Set oApp = GuiAuto.GetScriptingEngine
Set Connection = oApp.Children(0)
Set Session = Connection.Children(0) 'Session is window launched
Session.sendcommand ("/nmir7") ' mir7 launch
Set comp = Session.Children(0)
comp.Children(4).Children(7).Children(0).Children(0).Children(0).Children(1).Text = Какая-то дата


На код с использованием постоянного имени объекта.
Или это вообще не те имена? Если так, то где можно посмотреть те?

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


Session.findById("wnd[0]/usr/ctxtRS38M-PROGRAMM").Text = Какой то текст

почитать что нибудь из The SAP GUI Scripting API%3a Workshop %26 Exercises


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP GUI script - Помогите не САПеру
СообщениеДобавлено: Вт, янв 31 2012, 16:48 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 10 2010, 13:30
Сообщения: 11
Спасибо))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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