Текущее время: Пт, апр 19 2024, 13:19

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Чт, июн 01 2017, 13:38 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
Доброго дня,

Подскажите, пожалуйста, почему на одних PC в компании GUI Script Recording (SAP7.40) записывает имена контролов (поля ввода, кнопки и тп) цифрами, а на других те же самые контролы уже записываются с "осмысленными" именами, и соответственно скрипт записанный на одних машинах не работает на других и наоборот.

На одной машине записывается такой скрипт:
Code:
.findById("wnd[0]/usr/btn[1]").press
.findById("wnd[0]/usr/ctxt[0]").Text = "xxx"
.findById("wnd[0]/usr/ctxt[1]").Text = "xxx"
.findById("wnd[0]/usr/ctxt[8]").Text = "xxx"

На другой машине теже действия, но записаный скрипт выглядит уже по другому:
Code:
.findById("wnd[0]/usr/btnMRP").press
.findById("wnd[0]/usr/ctxtS_MATNR-LOW").Text = "xxx"
.findById("wnd[0]/usr/ctxtS_MATNR-HIGH").Text = "xxx"
.findById("wnd[0]/usr/ctxtS_WERKS-LOW").Text = "xxx"

Можно конечно это обойти с помощью On Error Resume Next и записав два разных варианта один за другим, но может есть более вменяемые способы решить проблему работы одного скрипта на всех машинах? Из-за чего зависит такое ..кхм.. мягко говоря странное поведение САПа?

UPD
Run-time error 619:
The control could not be found by id.


Последний раз редактировалось user0 Пн, июн 05 2017, 05:54, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Сб, июн 03 2017, 03:07 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
Неужели ни у кого нет идеи?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Сб, июн 03 2017, 10:31 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Возможно поможет эта ссылка.
Что-то насчёт абсолютного и относительного имени.

https://webcache.googleusercontent.com/search?q=cache:KQ94suuafBQJ:https://support.winshuttle.com/s/article/GUI-Scripting-Control-ID-not-found-error-on-the-first-field%3Flanguage%3Den_US+&cd=16&hl=ru&ct=clnk&gl=ru


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Сб, июн 03 2017, 13:15 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
Спасибо большое за ссылку. Так и есть – ошибка GUI Scripting "Control ID not found".
Относительные/полные-тех имена полей оказвается зависят от настройки подключения Low/High Speed Connection соответсвенно.

И, как вишенка на торт, "изящное решение" (спойлер - его нет):
Code:
To ensure that you do not get this error, record the script in a system that has the same connection speed setting as the system where the script will be run. To view the connection speed settings, right-click the system name in the SAP Logon Pad, click Properties, and then click Network. The connection speeds are listed under Network Settings.
Руки бы вынуть разработчикам этого "подукта".

Еще немного текста из ссылки.
Code:
Depending on the SAP system connection speed, the field names are represented differently in the recorded GUI Scripting script. If Low Speed Connection is selected, the fields will be represented using relative naming. If High Speed Connection is selected, the fields will be represented with their full technical names.

A script that is recorded in a Low Speed Connection system will fail when it is executed in a High Speed Connection system. When the script reaches the screen that contains the first field, it will likely return  a "Control ID not found" error in the log for the first field.

In the example below, rows 6 and 7 (customer and company code) are represented differently in the recordings carried out in different SAP clients:
Relative field names (Low Speed Connection)
Full technical field names (High Speed Connection)

For more information, refer to the following SAP Notes:
- 587202 Restrictions when using SAP GUI scripting
- 161053 Using SAP GUI in WAN


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Сб, июн 03 2017, 17:34 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
На сайте synactive есть гайд, там, на девятой странице, говорится о разных режимах записи скрипта.
Правда, это для SAP GUI для Java, но, возможно есть такие же настройки для виндового GUI.
http://www.synactive.com/download/sap%20gui%20scripting/sap%20gui%20scripting%20userguide.pdf


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Пн, июн 05 2017, 06:06 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
Да, в том гайде есть про relative/absolute/common SAPGUI, но это про начало строки скрипта. Про имена контролов там к сожалению нет.

Сейчас посмотрел на свой САП на работе, и хоть бы где было сказано что включение High Speed Connection приведет к таким последствиям для скриптов.
Изображение

зы. кстати эта настройка подключения влияет еще и на возможность хранить историю введенных данных в полях транзакций. При Low Speed Connection история недоступна.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Пн, июн 05 2017, 09:36 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Презентация SAP GUI scripting API прямо говорит, что надо снимать
галку с Low speed connection, иначе имена объектов не передаются и
Id не работают.
https://archive.sap.com/documents/docs/DOC-8971#section12


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Пн, июн 05 2017, 11:28 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
Если бы скрипты просто не работали при Low speed еще можно было бы это как-то понять.

Тут дело в том что САП записывает скрипты в любом их этих двух режимов и скрипты воспроизводятся без проблем на клиентах с такими же настройками подключения.
Но стоит попытаться воспроизвести скрипт записаный в режиме отличном от выставленого сейчас на клиенте как САП прикидывается шлангом говорит не могу найти id.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Script Recording записывает имена контролов по разному на разных PC
СообщениеДобавлено: Пн, июн 05 2017, 11:51 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Возможно есть какой-то метод или свойство
у объекта в записанном скрипте, которым
можно принудительно перевести работу в low speed режим.


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

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


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

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


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

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