SAPオブジェクト
SAPテーブル接続を使用して、SAPビュー、ABAP CDSビュー、透過テーブル、プールテーブル、クラスタテーブルに接続できます。
データ統合は、テーブルとビューを区別しません。テーブルからデータを抽出するのと同じ方法で、ビューからデータを抽出します。テーブルを選択すると、データ統合は、[オブジェクトの選択]ダイアログボックスに、テーブル名とそれに続くビジネス名を表示します。SAPシステムへの接続時に、テーブル名もしくはビジネス名でフィルタリングすることができます。
データ統合は、次のSAPテーブル情報をインポートします。
- •ソース名
- •カラム名
- •ビジネス記述
- •データ型、長さ、精度、スケール
ABAP CDSビュー
マッピングのソースまたはルックアップとしてABAP CDSビューを使用することができます。
注: ABAP CDSビューは、SAP NetWeaverシステムのバージョン7.50 SP4以降でサポートされています。
ABAP CDSビューをCloudデータ統合にインポートすると、エージェントによりパラメータ名にプレフィックスが追加されます。プレフィックスは、パラメータのタイプを示すために使用されます。
次のタイプのパラメータを使用できます。
- •必須のパラメータ。値を指定する必要があるパラメータ。例えば、paramM_P_FISCALYEARというフィールドにおいて、paramMは、エージェントによって追加される必須パラメータのプレフィックスです。P_FISCALYEARは、ABAP CDSビューの一部であるパラメータ名です。
- •オプションのパラメータ。SAPでパラメータを定義して注釈@Environment.systemFieldを使用する場合、パラメータはオプションのパラメータとしてフィールドのリストに表示されます。
値を指定しない場合、オプションのパラメータはABAPシステムフィールド値を使用します。
例えば、paramO_Pというフィールドにおいて、paramOは、エージェントによって追加されるオプションのパラメータのプレフィックスです。P_TOFISCALPERは、ABAP CDSビューの一部であるパラメータ名です。
次の画像は、CDSビューを選択する際の必須パラメータおよびオプションのパラメータを示しています。
この例では、paramOはオプションのパラメータを示し、paramMは必須のパラメータを示します。
SAPのソースとターゲットのルールおよびガイドライン
SAPのソースとターゲットを設定するときは、次のルールおよびガイドラインに従います。
- •SAPのソースを設定するときは、タスクウィザードのスケジュールページにある詳細ソースプロパティを使用して、行制限を設定します。タスクウィザードのデータフィルタページの行制限は、SAPのソースでは無効です。
- •ソースにプライマリキーと外部キーの循環関係がある場合は、テーブルをSAPテーブルソースとして使用できません。
- •複数のSAPテーブルを同期タスクで使用するときは、1つのクラスタ型テーブルまたは1つのプール型テーブルを使用できます。複数のクラスタ型テーブルまたはプール型テーブルを使用すると、ランタイムにエラーが発生します。テーブルがクラスタ型テーブルであるかプール型テーブルであるかは、[オブジェクト検索]ダイアログボックスを使用して確認できます。タスクでは複数のトランスペアレント型テーブルを使用できます。
- •クラスタ型テーブルまたはプール型テーブルをトランスペアレント型テーブルと結合するときは、トランスペアレント型テーブルのすべてのキーフィールドを結合条件に含めてください。SAPシステムに表示される順序でフィールドをリストします。
- •クラスタ型テーブルまたはプール型テーブルをトランスペアレント型テーブルと結合するときは、フィールドマッピングの結合とフィルタで使用する、トランスペアレント型テーブルのすべてのソースフィールドを使用してください。また、クラスタ型テーブルまたはプール型テーブルの少なくとも1つのフィールドをマッピングします。
- •データプレビューでデータが表示された後、複数のソースのリレーションを定義します。ウィザードを詳細モードで使用すると、データのプレビューの待ち時間を避けることができます。
- •データのソートは、クラスタ型テーブルまたはプール型テーブルのフィールドには適用されません。
- •SAPテーブルの簡単なデータフィルタではデータ統合の変数およびABAP変数を使用できます。SAPテーブルの簡単なデータフィルタではABAP構文を使用しないでください。
- •SAPテーブルの詳細データフィルタではABAP変数およびABAP構文を使用できます。SAPテーブルの詳細データフィルタではデータ統合の変数を使用しないでください。
- •データのフィルタリングは、前回のタスク(正常に実行された、またはSecure Agentの警告メッセージで終了した)のGMTタイムゾーンの開始日時に基づいて、$LastRunTime変数を使用して行います。
- •SAPの制限により、30分より長くかかる読み取りが必要なタスクは失敗することがあります。この問題が発生する場合は、次の提案を参考にしてください。
- - SAPの詳細ソースプロパティを使用して、読み取る行の数を制限します。
- - データフィルタを設定して、読み取る行の数を減らします。
- - タスクの出力フィールドの数を減らします。
- - SAPパラメータrdisp/max_wprun_timeを設定し、より長い読み取り時間を許可します。詳細については、SAPのマニュアルを参照してください。
- - Secure Agentが1回で取得できるレコードの数を増やすには、Secure AgentのJavaヒープメモリを増やします。これを行うには、Secure Agentを編集します。[システム構成の詳細]セクションでDTMを選択し、JVMOption1プロパティを「Xmx512m」という値に設定します。[OK]をクリックして変更を保存し、Secure Agentを再起動します。取得するレコードの量およびSecure Agentマシンで使用可能なメモリに基づいて、JVMOption1プロパティの値を調整してください。
- •SAPオブジェクトのルックアップでは、ルックアップで返される行数を20より小さく設定してください。ルックアップで返される行が20より多いと、タスクは失敗することがあります。
- •ルックアップで比較する値がNULLである場合、SAPオブジェクトのルックアップでは一致する行が返されません。
- •SAPターゲットの拒否ファイル名を定義するときは、デフォルト名を使用するか、変数$ErrorFileNameを使用してください。$ErrorFileName変数では、次の表記規則が拒否ファイル名に使用されます。
s_dss_<task name>_<run number>_error.csv.bad
- •拒否ディレクトリをSAPターゲット用に定義するときは、変数「$PMBadFileDir」を使用してください。$PMBadFileDir変数を使用すると、同期タスクでは、拒否ファイルが次のSecure Agentディレクトリに書き込まれます。
<SecureAgent_InstallDir>/main/rdtmDir/error
- •CDSビューから読み取るようにマッピングを設定する場合は、次のルールを考慮してください。
- - マッピングでSAPソースオブジェクトとしてCDSビューを選択した場合、データをプレビューすることはできません。
- - ルックアップトランスフォーメーションを使用してパラメータでCDSビューのレコードをルックアップするようにマッピングを設定した場合は、キャッシュされていないルックアップのみがサポートされます。
- - CDSビューをSAPソースオブジェクトとして選択した場合、差分抽出は適用されません。
- - CDSビューパラメータには、完全にパラメータ化されたフィルタまたは高度なフィルタを使用しないでください。
- - マッピングでは、CLNTフィールドのオプションのパラメータを使用しないでください。
- •NATゲートウェイのIPアドレスを使用してSAPシステムからSecure Agentとの通信を確立するには、Secure AgentにSapTableReaderNatIpAddressという名前のDTMプロパティを加えて、NAT IPアドレスを値として指定する必要があります。
- •SAP NetWeaverシステムバージョン7.40 SP04以前からのSAPテーブルオブジェクトに右外部結合を使用するカスタムリレーションを設定することはできません。
- •SAPテーブルリーダーマッピングを実行すると、マッピングが正常に実行されても、SAPシステムのシステムログにCPICエラーが表示されます。
SAPシステムでCPICエラーを回避するには、KB記事
000176711を参照してください。
- •パラメータ化されたマッピングタスク、または次のようなマッピングタスクテンプレートを使用するマッピングタスクでは、複数のソースオブジェクトを設定することはできません。
- - SAPテーブルを新しいターゲットに増分レプリケートする。
- - SAPテーブルを既存のターゲットに増分レプリケートする。