从Java程序打开SAP胖客户端屏幕

时间:2009-11-19 07:30:28

标签: java sap

安装了任何像SAP Logon这样的胖客户端,用户可以连接到所需的SAP服务器并通过事务访问数据。

我想做什么? - 调用安装在用户计算机中的SAP胖客户端,并将用户直接从服务重定向到所需的事务(依次是Java代码)

什么是可能的? - 可以基于生成的ID从SAP执行相同的操作。以下链接将有所帮助 -

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

是否可以通过Java代码执行相同的操作?

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容在桌面上创建.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 :(得分:1)

如果您可以将程序连接到SAP,则可以始终将该功能从wiki设置为RFC,并从SAP获取链接。否则,您始终可以测试该函数以检查返回字符串。

此字符串可用于创建SAP GUI快捷方式。那些shortcups拥有.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”的附件。点击附件即可启动GUI。

如果创建快捷方式不足,您可以尝试执行打开快捷方式文件,方法与打开.doc启动字的方式相同。我必须承认我对这个特殊点的无知。

希望这会有所帮助,
问候,
纪尧姆

答案 2 :(得分:0)

Guillaume(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();

您当然需要围绕适合周围架构的代码添加异常处理。