Откройте экран толстого клиента SAP из программы Java - PullRequest
0 голосов
/ 19 ноября 2009

При наличии любого толстого клиента, такого как SAP Logon, пользователи могут подключаться к необходимому серверу SAP и получать доступ к данным посредством транзакций.

Что я пытаюсь сделать? - Для вызова толстого клиента SAP, установленного на компьютере пользователя, и перенаправления пользователя непосредственно на требуемую транзакцию из службы (в свою очередь, код Java)

Что есть в наличии? - Можно сделать то же самое из SAP, основываясь на сгенерированных идентификаторах. Следующая ссылка поможет -

http://wiki.sdn.sap.com/wiki/display/Snippets/Creating+a+SAP+shortcut+for+any+transaction+and+sending+it+by+mail

Можно ли сделать то же самое с помощью кода Java?

Ответы [ 3 ]

3 голосов
/ 20 ноября 2012

На рабочем столе можно создать файл .SAP со следующим содержимым:

пример:

conn=/H/192.168.90.5/S/3210&clnt=300&lang=RO&tran=*ZME29N SO_EBELN-LOW=4500028729;
where 192.168.90.5 is the local sap server ip
3210 is the server port
300 is the client
RO - language
*ZME29N is the transaction followed by the select options.
  • (звездочка) означает, что система выполнит транзакцию с соответствующими параметрами выбора.
1 голос
/ 19 ноября 2009

Если вы можете подключить свою программу к SAP, вы всегда можете установить функцию из вики как RFC и получить ссылку из SAP. В противном случае вы всегда можете проверить функцию, чтобы проверить возвращаемую строку.

эту строку можно использовать для создания ярлыка SAP GUI. эти ярлыки имеют расширение .sap и содержат предыдущую строку. Например, это содержимое тестового ярлыка SAP GUI:

[System]  
Name=IFR  
Description=IFR ECC 6.0  
Client=300  
[User]  
Name=gpatry  
Language=FR  
[Function]  
Title=Connexion SAP IFR  
Command=PA20  
[Configuration]  
WorkDir=D:\Documents and Settings\gpatry\SapWorkDir  
[Options]  
Reuse=0  

В приведенном вами примере такая строка использовалась для создания вложения с именем «DisplayAddress.SAP». Клик по вложению запускает графический интерфейс.

Если создание ярлыка не достаточно, вы можете попытаться выполнить открытие файла ярлыка точно так же, как открыть слово запуска .doc. Я должен признать свое невежество по этому особому вопросу.

надеюсь, это поможет,
С уважением,
Гийом

0 голосов
/ 14 декабря 2009

Гийом (PATRY) является правильным в общем подходе к генерации содержимого ярлыка .SAP. Альтернативный подход, если вы всегда запускаете определенную транзакцию, - это использовать жестко закодированный (или извлеченный из ресурса) шаблон.

Затем вам нужно сохранить его как файл и запустить файл. Это можно сделать следующим образом:

// Generate your .SAP shortcut content by calling an RFC, or manually filling a template.
String shortcutContent = ...;

File file = new File(...some path, probably inside temp dir...);

OutputStream os = new FileOutputStream(file);
os.write(shortcutContent.getBytes());
os.close();

String url = "file://" + file.getAbsolutePath();

// Ask OS to launch the file
Runtime runtime = Runtime.getRuntime();
String cmd = "rundll32 url.dll,FileProtocolHandler " + url;
runtime.exec(cmd);

// Remove file
file.deleteOnExit();

Вам, конечно, потребуется добавить обработку исключений вокруг этого кода, соответствующую окружающей архитектуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...