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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ИЗ VBA В SAP
СообщениеДобавлено: Пт, июл 11 2014, 16:18 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 11 2014, 15:50
Сообщения: 8
Доброго дня.
Не пинайте если не сюда написал - впервые тут.


Есть транзакция в SAP, заходим, далее множество полей для ввода.
Есть файл в EXCEL, заполняя там данные (согласно полей SAP) и при запуске макроса эти данные заполняются в транзакции SAP, сначала зайдя в нее. Пробывал сделать сам. Дошел только до того как с кнопки отркрыть транзакцию через создание ярлыка в SAP и открытия его через диалог в VBA.
С чего начать, как открыв транзакцию записать строки согласно кода VBA?

Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Сб, июл 12 2014, 11:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
FARAon написал(а):
Доброго дня.
Есть транзакция в SAP, заходим, далее множество полей для ввода.
Есть файл в EXCEL, заполняя там данные (согласно полей SAP) и при запуске макроса эти данные заполняются в транзакции SAP, сначала зайдя в нее. Пробывал сделать сам. Дошел только до того как с кнопки отркрыть транзакцию через создание ярлыка в SAP и открытия его через диалог в VBA.
С чего начать, как открыв транзакцию записать строки согласно кода VBA?


Хммм... Обычно в рамках SAP R/3 пишут программу, входным параметром которой является имя EXCEL-файла, в котором содержаться нужные данные. Эта программа считывает по имени содержимое EXCEL-файла, забирает нужные данные, вызывает транзакцию и записывает в соответствующие поля. Если же вопрос состоит в том, чтобы из EXCEL передать какие то данные в SAP R/3, запустив макрос в рамках EXCEL, то тогда смотрите в сторону механизма RFC на VBA, в SAP Help думаю вся необходимая информация имеется. Только все равно придется писать какой RFC-модуль в рамках SAP R/3, который будет вызывать транзакцию и выполнять раскладку по полям.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Сб, июл 12 2014, 17:09 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Если пакетный ввод для транзакции возможен, можно попробовать вызвать RFC FM например:
RFC_CALL_TRANSACTION
RFC_CALL_TRANSACTION2
CALL_TRANSACTION_FROM_TABLE

соответственно смотреть: пакетный ввод, вызов RFC FM из VBA и то и другое можно без проблем нагуглить

можно ещё попробовать sap gui scripting, тоже без проблем гуглится

_________________
Изображение Попытка не пытка


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Пн, июл 14 2014, 12:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
Обменяюсь опытом, может, кому пригодится или натолкнет на мысль. Я веду в Excel некий реестр своих транспортных запросов и у меня настроен дабл-клик ячеек с номером ТЗ. По нему открывается новый режим в SAP и в нем запускается транзакция SE01, которой передается номер запроса из ячейки. Очень удобно!

Построено всё на использовании командной строки для sapshcut.exe. В Excel код VBA процедуры запуска транзакции выглядит примерно так:
Code:
Sub openOneTR(TRKORR As String)

    Dim strSapshcut     As String
    Dim strSystemUser   As String
    Dim strCommand      As String
    Dim strShell        As String
   
    strSapshcut = "C:\Program Files\SAP\FrontEnd\SAPgui\sapshcut.exe"
    strSystemUser = "-system=DDD -client=200 -user=YOURUSER -language=RU -pw=YourPassword -reuse=1 -maxgui"
    strCommand = "-command=""*SE01 TRDYSE01SN-TR_TRKORR="
   
    strShell = strSapshcut & " " & strSystemUser & " " & strCommand & TRKORR & """" '
   
    Shell strShell, vbMaximizedFocus

End Sub

Подробные коды командной строки для sapshcut.exe можно посмотреть, например, здесь: http://www.stechno.net/sap-notes.html?v ... &id=103019


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Пн, июл 14 2014, 14:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
Gustav написал:
Обменяюсь опытом, может, кому пригодится или натолкнет на мысль. Я веду в Excel некий реестр своих транспортных запросов и у меня настроен дабл-клик ячеек с номером ТЗ. По нему открывается новый режим в SAP и в нем запускается транзакция SE01, которой передается номер запроса из ячейки. Очень удобно!

Может, реестр запросов сразу в SAP вести или использовать Solution Manager для таких задач?
Хранение пароля SAP в открытом виде не есть хорошая практика.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Ср, июл 16 2014, 10:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
Удав написал(а):
Хранение пароля SAP в открытом виде не есть хорошая практика.
C этим согласен, конечно, но...
Удав написал(а):
Может, реестр запросов сразу в SAP вести
Можно, но в моем реестре в одном флаконе запросы из двух систем разработки (два разных продуктива) и дабл-клик в Excel'е на ходу соображает, в какую из них нырять. Завести реестр внутри SAP, например, в одной из двух и ходить в другую по RFC - пока не готов.
Удав написал(а):
или использовать Solution Manager для таких задач?
В одной из двух уже пытаемся использовать, но остается другая, Солмэном пока не охваченная. И, чисто субъективно, Солмэн пока не очень нравится, и особенно его web-интерфейс.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Ср, июл 16 2014, 17:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
Gustav написал:
в моем реестре в одном флаконе запросы из двух систем разработки (два разных продуктива) и дабл-клик в Excel'е на ходу соображает, в какую из них нырять. Завести реестр внутри SAP, например, в одной из двух и ходить в другую по RFC - пока не готов.

У нас 6 систем разработки и такое же количество продуктивов.
Никаких проблем, оборачиваете в RFC-функцию ФМ TR_DISPLAY_REQUESTS ;)

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP  Тема решена
СообщениеДобавлено: Чт, июл 17 2014, 18:03 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 11 2014, 15:50
Сообщения: 8
Решил проблему написанием скрипта в VBS и дальнейшей заливкой.
Все бы ничего, но к примеру, код дошел до момента сохранения репорта и дальше не идет.
Как программно "нажать SAVE" в активном окне? И сохранить этот файл в папке? (формат excel)
Желательно бы обозвать файл константой прописанной в коде.
И кстати можно ли выключить ScreenUpdating?

Спасибо за помощь!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Ср, июл 25 2018, 10:15 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 20 2018, 15:16
Сообщения: 1
при запуске предыдущего кода
Code:
Sub openOneTR(TRKORR As String)

    Dim strSapshcut     As String
    Dim strSystemUser   As String
    Dim strCommand      As String
    Dim strShell        As String
   
    strSapshcut = "C:\Program Files\SAP\FrontEnd\SAPgui\sapshcut.exe"
    strSystemUser = "-system=DDD -client=200 -user=YOURUSER -language=RU -pw=YourPassword -reuse=1 -maxgui"
    strCommand = "-command=""*SE01 TRDYSE01SN-TR_TRKORR="
   
    strShell = strSapshcut & " " & strSystemUser & " " & strCommand & TRKORR & """" '
   
    Shell strShell, vbMaximizedFocus

End Sub
просит добавить параметры - описание системы типа ECP-P1...
Как в код добавить параметр описания системы? Где найти описания комманд?
Спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ИЗ VBA В SAP
СообщениеДобавлено: Ср, июл 25 2018, 15:40 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
> Как программно "нажать SAVE" в активном окне?
если мы говорим о vbs-скриптах SAP GUIScrpting, то обычно если окно не модальное, то в командную строку программно запихивается код команды нажатия на кнопку "Сохранить" - он разный для разных транзакций (например =SAVE , =BU и т.п.). Сделайте скрипт-рекордером запись действий с нажатием кнопки, увидите её код.

osession.SendCommand "=SAVE"
или както так, через ввод кода в консоль
osession.findById("wnd[0]/tbar[0]/okcd").Text = "=SAVE"
osession.findById("wnd[0]").sendVKey 0

>И сохранить этот файл в папке? (формат excel)
тут зависит от того, какой диалог сохранения всплывает (топорный саповский, как по кнопке Экспорт списка - он без проблем управляется точно так же средствами скриптинга... делаете рекордером запись сохранения одного файла и всё увидите).
а если там стандартный Win-диалог вылазиет, то скриптинг системные окна не видит вообще (они ведь вне саплогона всплывают) - там нужно огород городить с api-вызовами эмуляции нажатия на клавишу Enter (поиск hwnd всплывшего окна диалога, и отправка ему через API PostMessage). Задача решаемая, но с бубном.

>И кстати можно ли выключить ScreenUpdating?
нет конечно - а то как у вас тогда PAI-логика экранов саповских отрабатывать будет? Зачем её отключать, в скорости вы не выиграете. Скриптинг очень медленный движок.


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

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


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

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


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

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