tanya de la merced Ответов: 3

Как подключить C# к графическому интерфейсу SAP GUI?


Добрый День!

Один из проектов, которые мне нужно выполнить в моей стажировке, - это автоматизировать транзакцию в графическом интерфейсе SAP GUI(в частности, в модуле financials). Можно ли автоматизировать транзакцию с помощью c#, если да, то каковы будут шаги по подключению c# к графическому интерфейсу SAP GUI?

Спасибо!

3 Ответов

Рейтинг:
20

Maciej Los

Вы не можете подключиться к GUI. Вы можете подключиться к данным SAP.
Пожалуйста, посмотри на мое прошлое. ответ[^].


tanya de la merced

Спасибо, сэр!

Maciej Los

Всегда пожалуйста ;)

tanya de la merced

Сэр, если вы не возражаете, могу я получить вашу электронную почту? у меня есть много вопросов относительно sap и c#. Благодарю вас сэр:)

Maciej Los

Если у вас есть какие-либо вопросы, пожалуйста, используйте этот форум, чтобы задать их.
Это лучший способ получить ответ. Власть находится в сообществе КП, а не в одном человеке :)

tanya de la merced

Спасибо, сэр!:) Я попробовал выполнить программу, указанную в ссылке, но, к сожалению, не могу загрузить sap connector

tanya de la merced

Кроме того, я использую Visual Studio 2010:)

Рейтинг:
0

JSimp81719

Для тех, кто хочет автоматизировать графический интерфейс SAP и может сделать это только через VBA и VB.Net. Вот простое решение для автоматизации SAP с помощью C#:

Сначала добавьте две ссылки:
Сапфевселиб
SapROTWr <---- этот файл находится в папке, где был установлен SAP.

Затем добавьте операторы using:

using SAPFEWSELib;
using SapROTWr;


Как только они будут добавлены, добавьте к кнопке следующее:

//Get the Windows Running Object Table
SapROTWr.CSapROTWrapper sapROTWrapper = new SapROTWr.CSapROTWrapper();
//Get the ROT Entry for the SAP Gui to connect to the COM
object SapGuilRot = sapROTWrapper.GetROTEntry("SAPGUI");
//Get the reference to the Scripting Engine
object engine = SapGuilRot.GetType().InvokeMember("GetScriptingEngine", System.Reflection.BindingFlags.InvokeMethod, null, SapGuilRot, null);
//Get the reference to the running SAP Application Window
GuiApplication GuiApp = (GuiApplication)engine;
//Get the reference to the first open connection
GuiConnection connection = (GuiConnection)GuiApp.Connections.ElementAt(0);
//get the first available session
GuiSession session = (GuiSession)connection.Children.ElementAt(0);
//Get the reference to the main "Frame" in which to send virtual key commands
GuiFrameWindow frame = (GuiFrameWindow)session.FindById("wnd[0]");



Этот пример работает точно так же, как и версия Visual Basic.


Если вы хотите ввести текст в текстовое поле в SAP, вы должны явно привести объект к правильному типу переменной

примером ввода номера заказа в транзакцию CO02 может служить:

GuiTextField ordNum = (GuiTextField)session.FindById("wnd[0]/usr/ctxtCAUFVD-AUFNR");
ordNum.Text = textBox1.Text;
frame.SendVKey(0);


Dave Kreskowiak

Не бросайте новый ответ на старый вопрос (этому полтора года!). Если у вас есть что-то полезное, как это, напишите совет/трюк или даже статью, если вы можете достаточно подробно рассказать о том, как и почему.

JSimp81719

Дэйв, ты абсолютно прав, я должен. Проблема в том, что этот поиск появился как один из лучших поисков google, и поскольку я успешно нашел способ установить ссылку COM на SAP, я подумал, что поделюсь этим, поскольку там почти ничего нет, кроме людей, которые могут иметь доступ к нему .Сетевой разъем; которого у меня нет. Итак, я сожалею, что разместил это на таком старом посту, но подумал, что это может быть полезно для тех, кто сам наткнулся на него. Или, по крайней мере, твердый ответ для исторических целей. Однако Спасибо за ваши отзывы

Hari prakash R

я не могу использовать FindById. Когда я использую его, я получаю такую ошибку во время выполнения.
-> сервер выдал исключение. (Исключение из HRESULT: 0x80010105 (RPC_E_SERVERFAULT)). Пожалуйста, я решу эту ошибку

Рейтинг:
0

Member 13941836

может ли кто-нибудь поделиться нижеприведенным dll-файлом

Сапфевселиб
Сапротвр


Sergio Sabas

В Visual Studio откройте консоль диспетчера пакетов NuGet и введите следующее:

Установка-Пакет SAP.GUI.Scripting.net -Версия 1.0.0

Это позволит установить библиотеки DLL на ваше текущее решение. Надеюсь, это поможет.

Richard Deeming

Если вы хотите задать вопрос о решении, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением.

НЕ опубликуйте свой комментарий как новое "решение".