このページでは、次のトピックについて説明します。
-
定義/詳細
-
Direct を使用する場合
-
Direct では利用できない機能 (開発者によって特別に組み込まれていない限り)
-
トランザクションとの違い
-
Direct を使用する前の準備
-
Direct のヒント
-
Direct スクリプトの作成
-
Direct ベスト プラクティス
定義
-
RFC (リモート関数呼び出し)
-
サード パーティ アプリケーションが SAP と通信するために使用する標準の SAP インターフェイス
-
SAP で機能を実行するために使用されます
-
RFM (リモート対応汎用モジュール) – RFMは Remote-Enabled Function Module の略です
-
事前定義された関数を呼び出して実行する
-
-
BAPI (ビジネス アプリケーション プログラミング インターフェイス) - リモート対応である必要があります
-
BAPI は、標準の SAP BAPI、または内部使用のために SAP BASIS プログラミング チームによって作成されたカスタム BAPI の場合があります
-
BAPI は、SAP 内部コードを呼び出すために使用される RFC 対応の汎用モジュールです
-
SAP トランザクション コード ユーザー インターフェイスを使用しない、SAP のビジネス オブジェクト モデルへの標準インターフェイス
-
個々のエラーではなく、エラーのコレクションを返します
-
各 BAPI は、特定のビジネス オブジェクトに対応します
-
形式、構造、および動作を説明するために利用可能な関連ドキュメントがある場合があります
南
-
ドキュメントには、[Workspace Ribbon] 上の [Direct Workspace]、[View]、および [Map] のタブ内にある [Documentation] タブ、または SAP の SE37 トランザクションを介してアクセスできます。
-
BAPI が正常に対話するには、BAPI がどのように機能するかを理解することが非常に重要です。
-
-
Direct を使用する場合
-
SAP トランザクションを記録する唯一のオプションには GUI スクリプトが必要であり、GUI スクリプトがサポートされていない場合は、スケジューリングまたは Web フォームを介して Winshuttle サーバーからスクリプトを実行する必要があります
-
要件を処理するために利用できる SAP トランザクションはありません
-
パフォーマンスが主要な要件です (大量アップロードなど)
-
グリッド上に配置する方法がない、および/または自動化の複雑性が高すぎる場合
-
SAP 画面には、さまざまな数のポップアップ ウィンドウが表示されます
-
BAPI/RFM の使用が個人的な好みである場合
Direct では利用できない機能 (開発者によって特別に組み込まれていない限り)
-
検証およびシミュレーション
-
回避策 – データを確認するか、 検証/テスト実行スクリプトを作成する
-
高度な機能: 長いテキスト、ドキュメントの添付ファイル - (回避策: Winshuttle RFM を活用する)
-
バックアップ データ - (回避策: BAPI で更新する前に SAP からデータを読み取る)
-
デバッグおよび実行 (エラー時に停止)
-
トランザクションとの違い
-
SAP メッセージは異なる場合があり、複数のメッセージが返される場合があります
-
ループは自動的に含まれる – ループ ID 列の編集と再利用が可能
-
ケースは重要な場合があります
-
一部の BAPI/RFM にはドイツ語の入力が必要な場合があります。例:
-
販売先 - 英語: 「SP」 ドイツ語: 「AG」
-
発送先 - 英語: 「SH」ドイツ語: 「WE」
-
BAPI はドイツ語版を想定しています
-
Direct を使用するための準備
-
使用したい BAPI/RFM を見つける – オプション
-
SAP コミュニティ
-
インターネット検索
-
Query - SWOLTV SAP テーブルに Query スクリプトを作成する 同様の条件を ABAPNAME フィールドに追加する
キー フィールド:
-
ABAPNAME (ABAP 関数の名前)
-
DESCRIPT (名前)
-
SHORTTEXT (説明)
-
COUNTPARAM (メソッド内のパラメーターの数)
-
LOBJTYPE (オブジェクト タイプ)
-
VERB (オブジェクト タイプ コンポーネント)
-
-
-
BAPI/RFM がリモート対応であることを確認する
-
ユーザーは、BAPI/RFM を実行するためのアクセス権を持っている必要があります – 権限が重要です
-
SE37でのテスト (任意)
-
SAP 内から BAPI/RFM を選択してテストするには、ユーザーは SE37 にアクセスできる必要があります
-
SE37を使用して BAPI/RFM でのデータをテストする
-
注: SE37 には、参照として使用できる以前のテスト データがすでに存在する場合があります
-
-
必要なフィールドを特定する
-
使用するフィールドを特定します
Direct のヒント
-
標準の SAP BAPI/RFM を Direct で開くことができない場合は、次を確認します
-
権限
-
リモート対応になっているかどうか
-
-
入力構造 - SAP に転送されるデータ
-
出力構造 - SAP から返されたデータ
-
表 - 入力と出力の両方に使用
-
ImportOthers テーブル - パラメーター テーブルをインポート
-
いくつかが必要な場合があります
-
SE37 の [Import] タブと一致します
-
-
ExportOthers テーブル - パラメーター テーブルをエクスポート
-
SE37 の [Export] タブと一致します
-
-
BAPI/RFM は、対応するトランザクション コードに存在するユーザー出口やその他のカスタマイズは含みません。 カスタム BAPI または Studio スクリプトおよび/または Web フォームに追加する必要があります。
-
ワークスペースでフィールドを選択すると、「Expert」 ビューでは、各構造の周囲に個別にループが自動的に作成されます。多くの場合、複数の構造体は、複数のループではなく、単一のループの下で呼び出す必要があります。構造の周りの個々のループを削除し、代わりに単一のループを拡張して、繰り返す必要のあるすべての構造をカバーすることができます。
-
たとえば、Material Create BAPI では、各ビューは自動的に独自のループで始まります。すべてのビューを 1 回の呼び出しで作成する必要がある可能性が高いため、1 つを除くすべてのループを削除してから、残りのループを拡張してすべてのビューをカバーします。
-
-
バージョン 11 以降では、すべてのループを削除することで BAPI の構造をフラット化でき、エキスパート ビューで構造全体をコピーして貼り付け、ループのない構造を複数回呼び出すことができます。コピーまたは貼り付けするには、青/緑「画面」の行をクリックして、構造全体を選択する必要があります。
-
「X」テーブルを探す – SAP に書き込む BAPI を使用している場合は、1 つの名前が「X」で終わることを除いて同じ名前のテーブルが 2 つあるテーブルを探します。 すべての BAPI にこれらのタイプのテーブルがあるわけではありませんが、存在する場合は、それらの使用方法を理解してください。
例 – BAPI_CONDITION_CONTRACT_CREATE BAPI 内の CONDITIONITEMDATAIN と CONDITIONITEMDATAINX テーブル
識別/個別フィールドをマップする - フィールドを更新するレコードを BAPI に知らせるには、識別/個別フィールドを探します。
-
例: ORDER_KEY、COND_COUNT および UPDATE_FLAG は CONDITIONITEMDATAIN テーブルと CONDITIONITEMDATAINX テーブルのキー フィールドです。
-
これらのフィールドには、各レコードの両方のテーブルに同じデータが含まれている必要があり、データ テンプレートの同じ列にマップできます。
-
「X」テーブルのフィールド
-
CONDITIONITEMDATAIN テーブルにマップされたすべての一致するフィールドに「X」の固定値をマップします。 探す:
-
説明 = 「関連ユーザー データ フィールドの更新情報」
-
タイプ = CHAR
-
長さ = 2
X 値は、対応するテーブルで使用するフィールドを示します。 多くの BAPI には多数のテーブルとフィールドがあるため、これにより BAPI の実行がより効率的になります。
-
-