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 に答える