0

安装任何像 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 代码做同样的事情?

4

3 回答 3

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.
  • (星号)表示系统将使用相应的选择选项执行事务。
于 2012-11-20T10:05:01.880 回答
1

如果您可以将您的程序连接到 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 启动词一样。我必须承认我对这一点的无知。

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

于 2009-11-19T09:22:32.943 回答
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();

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

于 2009-12-14T07:42:27.007 回答