Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
yureshino
Product and Topic Expert
Product and Topic Expert
In this blog, we will use the ABAP RFC Streaming Read function to guide you on how to link ABAP tables such as S/4HANA, ECC, and BW to SAP Data Warehouse Cloud (Datasphere) in Japanese. Please translate into your language.


こちらのブログではABAP RFC Streaming Read 機能を利用し、SAP Data Warehouse CloudにS/4HANA、ECC、BWなどのABAPテーブルを連携する方法についてご案内します。


設定の流れ


1. ABAPシステム側での設定
  1-a RFC宛先の作成
  1-b SAP Gatewayのセキュリティ設定

2. DWC側での設定

概要



  • SAP ABAPシステムのABAPテーブルから大量データをSAP Data Warehouse Cloudにロードする際、メモリ課題を回避するための設定

  • 接続タイプ:ABAP、SAP ECC、SAP S/4HANA、SAP BWで利用可能

  • 多くのシナリオで利用可能(少量データの取得、大量データの取得、長時間実行クエリの実行、複数同時実行、など)


注意点



  • 小さなクエリではパフォーマンスが劣化する可能性あり

  • ABAPシステム側での設定が必要


参考情報



事前準備


各SAPシステムのユーザーには、権限が必要です。権限オブジェクトをトランザクションコード "PFCG"で設定する必要があります。管理しやすいように新規にロールを作成するのをお勧めします。

権限オブジェクトの一覧が、ヘルプに記載されてます。各権限オブジェクトのリンクに飛ぶと、どのように設定するかが記載されているので、それに沿って記載します。できあがったロールをデータ連携で使うユーザーに割り当てます。



それでは始めましょう!

1. ABAPシステム側での設定


1-a. RFC宛先の作成


下記の手順でABAPソースシステム側でRFC宛先を作成します。このRFC宛先で、DP Agentをソースシステムのサーバープログラムとして登録します。

①トランザクションコード "SM59"でTCP/IP接続を作成

②”RFC Destination”で任意の名前、Descriptionで説明を記入

③“Activation Type”で”Registered Server Program”を選択

④“Program ID”に”IM_HANA_ABAPADAPTER_*”を入力

⑤保存



1-b. SAP Gateway のセキュリティ設定 ~SAP_BASIS=Release:740、SPレベル:0016以上の場合~


SAP Gatewayにセキュリティ設定を行います。

設定例

  • Gatewayにアクセスするためのネットワーク設定をする(名前解決、ポート開放、など)

  • Gatewayにアクセス可能なホストをAccess Control List(ACL)に登録する

  • reginfoファイルで外部プログラムを登録するための権限を管理する


※「Maintain ACL Files」を使えるバージョンは、SAP_BASIS=Release:740、SPレベル:0016以上になります。こちらに該当しない場合、後述の ”1-b. SAP Gateway のセキュリティ設定 ~SAP_BASIS=Release:740、SPレベル:0016未満の場合~“を参照ください。

手順(Gatewayにアクセス可能なホストをACLに登録する場合)

参考ノート:SAP Note 18066941850230

①トランザクションコード "SMGW"より、Goto→Expert Functions→External Security→Maintain ACL Filesを選択


ACLファイルにエントリを追加して保存
<permit> <ip-address[/mask]> [tracelevel] [# comment]



1-b. SAP Gateway のセキュリティ設定 ~SAP_BASISRelease740SPレベル:0016未満の場合


SAP_BASISRelease740SPレベル:0016未満の場合、Maintain ACL Filesの機能をサポートしておりません。そのため、直接secinfoファイルを編集する必要があります。 (詳細)

表記内容: P TP=*, USER=*, HOST=<DPAgent hostname>

ファイル名は、以下になります。(詳細)

■Linuxの場合

gw/sec_info = $(DIR_DATA)/secinfo

■Windowsの場合

gw/sec_info = $(DIR_DATA)/secinfo.DAT

*DIR_DATAは、インストールされたディレクトリです。

編集後、SAP GUIから以下のオペレーションを実行します。

ジャンプ > エキスパート機能 > 外部セキュリティ > 再読込



2. DWC側での設定


DWCへログインして以下のように設定を行います。

①DWCの左のナビゲーションから接続を選択します。

②対象スペースを選択し、DPAgentで作成したABAPシステムとの接続をチェックし、編集ボタンを押します。


③機能で”ストリーミング読み込み”を”オン”にし、以下の情報を登録します

  • Gateway Host:通常はABAPサーバーと同じ

  • Gateway Port:デフォルトは33<SID>

  • RFC Destination:1-aで作成したRFC宛先の名前



以上で手順は終了です。

確認方法&調査方法


・トランザクションコード "SM37"で、ジョブ「IM_HANA_ABAPADAPTER_*」の実行履歴を確認します。

  • プログラム「/SAPDS/RPT_STREAM_READ_TABLE」が実行されていればStreaming Readが実行されていると判断できます


・スナップショット作成などの連携中にT-CD:SMGWでGatewayの確認を行うと、DP AgentからABAPシステムにアクセスがあることが確認できます

  • プロトコル:登録済通信

  • リモートTP名:IM_HANA_ABAPADAPTER_*


・想定通り動作しない場合、下記手順でDP Agentでトレースを取得し、トレースファイルのメッセージより調査を行います。

①DP Agentの「dpagentconfig.ini」に「framework.log.level=ALL」をセットする(フレームワークとレースレベルをALLとする)
②リモートソースにて、RFCトレースをONとする(ABAPアダプターのみ)
③DP Agentを再起動する
④DWCで処理を実行する
⑤数分間処理を実行後、DP Agentのrootディレクトリにあるdpagent framework traceと
dev_jco.rfcファイルを確認する
⑥上記#1,2の設定を元に戻し、DP Agentを再起動する


・トランザクションコード "SMGW"での確認例

スナップショット作成などの連携中にSMGWでGatewayの確認を行うとDP AgentからABAPシステムにアクセスがあることが確認できます。


・トランザクションコード "SM37"での確認例

SM37で、ジョブ「IM_HANA_ABAPADAPTER_*」の実行履歴を見て、ここでプログラムが実行されていることを確認できます。




補足: CDCバッチサイズの調整


スペースからの接続の設定情報により、CDCバッチサイズはデフォルトの1MBになってます。値を変更することで時間短縮になりますが、ECCやネットワークの負荷によるため、バランスを取る必要があります。
パラメータの意味は、こちらのページに記載があります。DWCの場合、パラメータが制限されているので必要な箇所だけご参照ください。



設定エラー時のトレース取得方法


トレースの取得は下記手順で行います。

①DP Agentのiniファイルでトレースパラメータのレベルを変更
より詳細に取得するために、DP Agentをインストールしたサーバにdpagentconfig.iniがあります。この中で設定されているパラメータでframework.log.level=ALLを設定します。デフォルトはINFOです。

②DWC 側でRFCトレースをOn
”DWC 側の設定定義作成“のところで一番下にいくと”拡張プロパティを表示“があります。これをクリックすると以下の画面が表示されます。ここでRFCトレースをOnにします。


③処理実行後の情報
処理実行後DP Agentのサーバで以下のファイルにトレース情報が書き込まれます。

  • dataprovagent/log/framwork.trc

  • dataprovagent/dev_jco_rfc.trc


エラー時のTips

①RfcException: Connect to SAP gateway failed のエラー


RFCトレースをONにして、dev_jco_rfc.trcを確認時に以下メッセージがあった場合の対処方法



SAP Gatewayサーバでないホストにログインしようとして失敗しています。XXXXXXXを確認してDWC側設定のGateway Hostで正しいホスト名に修正してください。通常、アプリケーションサーバと同一です。他に間違ったケースとしては、SAP routerのサーバにしている可能性があります。

②RfcIoException: CPIC-CALL: SAP_CMACCPTP3 on convId のエラー

・RFCトレースをONにして、dev_jco_rfc.trcを確認し、以下メッセージがあった場合の対処方法




DPAgentのサーバとGatewayのサーバでホスト名前解決(/etc/hostsにお互いのホスト名を追加)する必要があります。また、FWの設定がある場合は、ポートを開ける必要があります。また、/etc/servicesに以下が設定されているか確認ください。

  • sapgw00   3300/tcp


・RFCトレースをONにして、dev_jco_rfc.trcを確認し、以下メッセージがあった場合の対処方法


SAP Note #1806694, #1850230を参照してください。

構文

P TP=* HOST=<プログラム ID マッピングに基づくサーバ> CANCEL=* ACCESS=*

※<プログラム ID マッピングに基づくサーバ> は、DP Agentのサーバを指定します。

方法

  • SAP Gatewayがあるサーバ (AAAAAAA)のreginfoに、下記内容を追加します。
    『P TP=* HOST=BBBBBBB CANCEL=* ACCESS=*』なお、host:AAAAAAAに「reginfo」ファイルがなかった場合、新規で作成します。


③internal error: Cannot get remote source table definitions: Invalid session id, Code: 403, SQL State: HY000 のエラー

設定作業終了後、データビルダーでソースからダイアグラムにドラッグ&ドロップをした際に以下のメッセージが表示された場合の対処方法


ソースシステムのサービスを再起動することで解消されます。

参考情報

■SAP Note #1408081 - reg_info および sec_info の基本設定

■SAP Gateway Security Files secinfo and reginfo

https://help.sap.com/doc/saphelp_snc70/7.0/en-US/e2/16d0427a2440fc8bfc25e786b8e11c/content.htm?no_ca...

■Gateway Security Files secinfo and reginfo

https://help.sap.com/viewer/62b4de4187cb43668d15dac48fc00732/7.4.15/en-US/e216d0427a2440fc8bfc25e786...

■Configuring Connections between Gateway and External Programs Securely

https://help.sap.com/viewer/62b4de4187cb43668d15dac48fc00732/7.4.15/en-US/48b2096b7895307be10000000a...

 

以上です。最後までお読みいただきありがとうございました!
1 Comment