Текущее время: Чт, мар 28 2024, 19:22

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вс, окт 14 2018, 14:36 
Ассистент
Ассистент

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

Несколько вопросов по отчетам сапа и sap gui scripting:

1) Как определить позицию элемента заголовка отчета на странице отчета (выделено жетлым).
Например как узнать что DocumentNo на втором месте в получившемся отчете?
Получить описание заголовков можно вот так:
Code:
session.findById("wnd[0]/usr/lbl[3,8]").Text   'Type
session.findById("wnd[0]/usr/lbl[66,8]").Text  'DocumentNo
session.findById("wnd[0]/usr/lbl[81,8]").Text  'Doc. Date
session.findById("wnd[0]/usr/lbl[6,8]").Text   'Itm

2) Можно ли как-то выбрать элементы из списка (выделено красным) не используя скрол (verticalScrollbar.Position).
Вроде нельзя обратиться к элементу пока он не отрисован на форме, но может есть варианты:
Code:
'Legal person 10
session.findById("wnd[1]/usr/ssubRAHMEN:SAPLCNFA:0111/subALLE_FELDER:SAPLCNFA:0130/tblSAPLCNFATC_ALLE_FELDER").verticalScrollbar.Position = 20
session.findById("wnd[1]/usr/ssubRAHMEN:SAPLCNFA:0111/subALLE_FELDER:SAPLCNFA:0130/tblSAPLCNFATC_ALLE_FELDER").getAbsoluteRow(25).Selected = True
session.findById("wnd[1]/usr/ssubRAHMEN:SAPLCNFA:0111/subAUSWAHL:SAPLCNFA:0140/btnAUSWAEHLEN").press

Изображение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 08:05 
Ассистент
Ассистент

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 10:06 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
использовать ALV-grid отчёты, не ? :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 10:36 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
К сожалению нет возможности модифицировать транзакции, и по дефолу отчет транзакции выглядит как на скрине (кстати как называется такой вид?)
Собственно удача, что gui scripting не отключен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 11:01 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
На мой взгляд это не удача, а проблема. Вероятно, что в компании используется дополнительная система учета в виде Excel, и, скорее всего, это не официальный подход. А из-за этого, в свою очередь, возникает желание не делать "двойную" работу в SAP, ведь в Excel то мы уже сделали...

Сам по себе скрипт штука не опасная, но может приводить к большому количеству ошибок при создании данных, в случае если сам скрипт содержит ошибку. Вроде того, как положить значение не в то поле, с такими же свойствами - перепутать дату счета с датой проводки/платежа при вводе входящего счета, например. Если при ручном вводе в транзакции оператор может заметить эту ошибку достаточно быстро (а скорее всего просто не ошибется), то скрипт такого не прощает. Потом замучаетесь корректировать введенные данные.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 11:13 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
John Doe, + 1.

Надеюсь тот кто запускает скрипт, осознает, что это под его логином и под его ответственностью, и расценивается это как - "сам зашел в систему и сам ввел данные вручную".

В чем заключается суть задачи? Можете быть что то смогу предложить не через скрипт, если это конечно интересует.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 12:46 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 01 2017, 12:58
Сообщения: 31
John Doe,
Цитата:
Вероятно, что в компании используется дополнительная система учета в виде Excel..
Вот, сразу видно человека видевшего некоторое.. :D

Спасибо за предостережение, согласен с вами по многим пунктам и тому что на рабочих системах лучше отключать скриптинг, ибо можно запороть очень многое в неумелых руках.
Цитата:
Если при ручном вводе в транзакции оператор может заметить эту ошибку достаточно быстро (а скорее всего просто не ошибется), то скрипт такого не прощает. Потом замучаетесь корректировать введенные данные.
Не совсем верный подход, всегда необходимо проверять данные вводимые пользователем, каждое поле.
Собственно эта же проверка не даст ввести неверные данные через скрипт. Но тут крайне желательно также иметь дублирующие проверки еще на этапе excel/access.
Хотя конкретно вопрос этого поста про получение данных из сапа, не про ввод.

Besa,
Да, сотрудники понимают что все делается из под их учетки.

Не уверен что есть способы кроме скриптинга, да и больше доступа ни к чему нет.
Суть задачи в том, чтобы автоматизировать получение данных в необходимом виде:
1) заполнить опции транзакции и запустить ее
2) проверить все ли необходимые колонки присутствуют в отчете, если нет то сбросить и выбрать нужные
3) сохранить отчет, открыть его, обработать и добавить на лист в экселе.
n) повторить еще с несколькими транзакциями

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 13:31 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
ну а в vba-отладчике посмотреть проперти контрола-контейнера?
session.findById("wnd[1]/usr/ssubRAHMEN:SAPLCNFA:0111/subALLE_FELDER:SAPLCNFA:0130/tblSAPLCNFATC_ALLE_FELDER")


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 13:46 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
user0 написал(а):
Не уверен что есть способы кроме скриптинга, да и больше доступа ни к чему нет.
Суть задачи в том, чтобы автоматизировать получение данных в необходимом виде:
1) заполнить опции транзакции и запустить ее
2) проверить все ли необходимые колонки присутствуют в отчете, если нет то сбросить и выбрать нужные
3) сохранить отчет, открыть его, обработать и добавить на лист в экселе.
n) повторить еще с несколькими транзакциями

Способы то конечно же есть, другое дело что нет ни к чему доступа и необходимого опыта.
Какой(какие) отчет то? (имя транзакции)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 13:57 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
ну там же написано SAPLCNFA:0111
а дальше SE38 в помощь. Я так понимаю стандартный ФМ с экранами выбора проект-поля. :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 14:01 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
кстати, у автора в коде не наблюдается принципиально важной для гуискриптинга в продуктиве "супрессилки" неожиданно абы-где всплывающих окон SM02/SBWP. Пользователи замучаются запускать такой скрипт в конце месяца, когда в SM02 спамят чтото вроде "Бухгалтера филиалов, срочной выйдите из FB02!!!" :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 14:03 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
pberezin написал:
ну там же написано SAPLCNFA:0111
а дальше SE38 в помощь. Я так понимаю стандартный ФМ с экранами выбора проект-поля. :D

и что там же написано? :) Можно и по скриншоту погадать какой он отчет запускает)))
Предпочитаю получить ответ на вопрос, вместо того чтобы гадать.
А что касается SAPLCNFA:0111 - ну ок, это экранчик reusable ФМа который показывает поля и дает возможность выбрать одно из, какое это отношение имеет к конкретному отчету который запускается? Этом ФМ может быть вызван кучей разных отчетов.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 14:05 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
pberezin написал:
кстати, у автора в коде не наблюдается принципиально важной для гуискриптинга в продуктиве "супрессилки" неожиданно абы-где всплывающих окон SM02/SBWP. Пользователи замучаются запускать такой скрипт в конце месяца, когда в SM02 спамят чтото вроде "Бухгалтера филиалов, срочной выйдите из FB02!!!" :D

о, эксперт по гуискриптингу, сразу видно :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 14:07 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
так у автора затык я так понимаю в хаотично-меняющемся порядке колонок. А он хочет их программно строго зафиксировать в начале, и собрать из этого постраничного контрола все данные нужных колонок путём циклического пролистывания.

2) проверить все ли необходимые колонки присутствуют в отчете, если нет то сбросить и выбрать нужные
3) сохранить отчет, открыть его, обработать и добавить на лист в экселе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить позицию поля в отчете (gui scripting)
СообщениеДобавлено: Вт, окт 16 2018, 14:08 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
<em>Besa</em> написал(а):
о, эксперт по гуискриптингу, сразу видно

а кому щас легко :D
(чего не извернёшься, когда S_DEVELOP отобрали)


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

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


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

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


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

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