RFC (Remote Function Call)
GuiXTはあるファンクションを呼び出す際にSAPシステムへのRFC接続(Remote Function Call)を使用します。システムにログオンするためRFC接続ではユーザー名とパスワードが必要になります。GuiXTはGuiXTプロファイルの中に格納されたログオンの値を使用します。GuiXTプロファイルのユーザーの初期値として”SAPCPIC”が含まれていますが、このユーザーを本番システムで使用するとロックがかかることがあるため、適切な権限が付与されたGuiXT用のRFCユーザーを作成していただくことをお勧めしています。検証目的では独自のユーザー名とパスワードをGuiXTプロファイルに入力することが可能です。
以下の表には、RFC接続を使用するGuiXTのアクション、呼び出されたファンクション名、ログオンが行われるクライアント、必要なユーザー権限を含んでいます。
プロファイルオプションでGuiXTがクライアント000にログオンしているのではなく常にカレントクライアントを使用しているということが確認できます。これは、クライアント000でRFCユーザーが作成されることはない、というアドバンテージを持っています。その一方、多くのクライアントがある場合、それぞれのクライアントでRFCユーザーを作成しなければなりません。
RFCユーザーを作成するには、SAPシステムでトランザクション SU01, SU02, SU03を使用します。下記の例は、Web リポジトリへのアクセスに必要なユーザー権限の作成方法です。
アクション | Client ファンクション |
必要なRFC ユーザー権限 |
---|---|---|
トランザクションバリアントのスクリプトを読む | 000 RS_HDSYS_GET_GUIXT_SCRIPT |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SHD0, ACTVT=16 |
Webリポジトリオブジェクトを読む オブジェクト”SAPWR:…” |
000 WWW_DISPATCH_REQUEST |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SURL, ACTVT=16 |
mimeリポジトリオブジェクトを読む
オブジェクト”SAPMR:…” |
000 SKWF_NMSPC_IO_FIND_BY_ADDRESS SKWF_LOIO_ALL_PHIOS_GET SKWF_PHIO_LOAD_CONTENT |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SKWF_NAMESPACE, ACTVT=16 S_RFC: RFC_TYPE=FUGR, RFC_NAME=SKWF_IO, ACTVT=16 S_RFC: RFC_TYPE=FUGR, RFC_NAME=SKWF_CONTENT, ACTVT=16 |
データディクショナリを読む(変数のシンボリックオフセット、テキスト) | 000 RPY_TABLE_READ |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SIFD, ACTVT=16 S_DEVELOP: DEVCLASS=*,OBJTYPE=TABL,OBJNAME=*,ACTVT=03 |
GuiXT Scriptの “Call” ステートメント | current client (function is specified in script) |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=xxxx, ACTVT=16
here xxxx is the function group of the called function |
if Q[Role=…] and if Q[Profile=…] | current client BAPI_USER_GET_DETAIL |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SU_USER, ACTVT=16
S_USER_GRP: CLASS=*,ACTVT=03 |
“SAPDB:…” から画像を読み込む |
000 RS_HDSYS_GET_GUIXT_IMAGE |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=RSIMG, ACTVT=16 |
“SAPIM:…” (ビジネスドキュメントサーバー) から画像を読み込む |
000 RS_HDSYS_GET_BDS_IMAGE |
S_RFC: RFC_TYPE=FUGR, RFC_NAME=RSIMG, ACTVT=16 S_BDS_DS: CLASSNAME=cccc, CLASSTYP=OT, ACTVT=30here cccc is the class name of the BDS image file |
SAP Netweaver RFC |
000
RFC_GET_FUNCTION_INTERFACE DDIF_FIELDINFO_GET RFC_METADATA_GET |
S_RFC RFC_TYPE=FUGR, RFC_NAME=RFC1, ACTVT=16 RFC_TYPE=FUGR, RFC_NAME=SDIFRUNTIME, ACTVT=16 RFC_TYPE=FUGR,RFC_NAME=RFC_METADATA, ACTVT=16 |
UI Log | current client /GUIXT/ADD_LOG_ENTRIES |
S_RFC RFC_TYPE=FUGR, RFC_NAME=/GUIXT/LOGG ACTVT=16 |
SAPシステムでのトレースとテスト
- トランザクションST01:RFCの間、ユーザー権限をチェックする
- トランザクションST05:RFCs
- ディレクトリ sapgui/rfcsdk/bin のプログラムsapinfo: RFC接続パラメーターのテスト
適切な権限のあるユーザーを作成する
図1:トランザクションSU01からスタート
図2:別のプロファイルを作成する
図3:上記テーブルに従って、Webリポジトリアクセス用の権限を付与する
図4:ユーザーの権限を表示する