Текущее время: Вс, июл 20 2025, 23:24

Часовой пояс: 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 часа


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

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


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

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