安装任何像 SAP Logon 这样的胖客户端后,用户可以连接到所需的 SAP 服务器并通过事务访问数据。
我想做什么?- 调用安装在用户机器中的 SAP 胖客户端,并将用户直接重定向到来自服务的所需事务(依次是 Java 代码)
什么是可能的?- 可以根据生成的 ID 从 SAP 执行相同的操作。以下链接将有所帮助 -
是否可以通过 Java 代码做同样的事情?
安装任何像 SAP Logon 这样的胖客户端后,用户可以连接到所需的 SAP 服务器并通过事务访问数据。
我想做什么?- 调用安装在用户机器中的 SAP 胖客户端,并将用户直接重定向到来自服务的所需事务(依次是 Java 代码)
什么是可能的?- 可以根据生成的 ID 从 SAP 执行相同的操作。以下链接将有所帮助 -
是否可以通过 Java 代码做同样的事情?
您可以在桌面上创建一个 .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.
如果您可以将您的程序连接到 SAP,您始终可以将 wiki 中的函数设置为 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" 的附件。单击附件启动 GUI。
如果创建快捷方式不够,您可以尝试执行打开快捷方式文件,就像打开 .doc 启动词一样。我必须承认我对这一点的无知。
希望这会有所帮助,
问候,
纪尧姆
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();
您当然需要围绕此代码添加适合周围架构的异常处理。