# SAPアクション: BAPIの呼び出し

このアクションを使用して、SAPシステムでBAPI(Business Application Programming Interfaces)を実行します。

リモート関数呼び出し:BAPIとRFM

リモート関数呼び出しを使用すると、SAPシステム内でBAPIとRFM(リモート有効関数モジュール)の両方を実行できます。BAPIとRFMの違いは次のとおりです。

  • BAPIはSAPビジネスオブジェクトへの標準化されたインターフェースであり、RFMは標準化されておらず、複数のステップからなるプロセスになることがあります。

  • BAPIでは、エラーメッセージや警告が応答内で構造化されて明確に表示されますが、RFMではそうではありません。

  • BAPIは一般的にSAPシステムへの即時コミットを実行しません。これにより、単一のトランザクション内で一連のアクションを実行できます。これらの変更をSAPシステムにまとめてコミットするか、エラーが発生した場合にはロールバックすることができます。

以前は、リモート関数モジュールの実行アクションを使用してBAPIを呼び出すことができました。ただし、この方法ではBAPIの操作がSAPシステムで失敗した場合でも、Workatoは呼び出し自体が成功したとみなしてアクションを成功とみなしていました。これにより、SAPからの応答に基づいてエラーを特定するために条件付きロジック(「if」ステップ)をレシピに含める必要がありました。

それに対して、Call BAPIアクションは、BAPI内に存在する標準化されたエラーメッセージ構造を活用して、BAPIの実行中に問題が発生した場合に自動的にエラーを発生させます。また、SAPシステムによって検出された検証エラーを強調表示し、Workatoに返します。これにより、SAPシステムのエラーをチェックするためのレシピステップを構築する必要がなくなり、レシピのロジックが簡素化されます。

Call BAPI/RFMアクションの比較Call BAPIアクション(右)はレシピステップを減らし、ロジックを簡素化します

このアクションを既存のトランザクションの開始アクションとトランザクションの終了アクションと組み合わせて使用し、複数のRFMを単一の論理的な作業単位で実行します。これにより、トランザクションの最後に全体のシーケンスをコミット(またはロールバック)することができます。

例のフローについては、トランザクション内でBAPIを実行する方法を参照してください。

# 入力フィールド

  • BAPIの説明

  • レシピステップに表示される人間が読める説明を入力します。この入力はBAPIの実行には影響しません。例:売上注文の作成

  • BAPIの名前

  • 使用するBAPIの正確な名前を入力します。この入力は大文字と小文字を区別します。

  • トランザクションID

  • トランザクションの開始アクションの出力からトランザクションIDを入力します。これがマッピングされている場合、Force auto commitは無効になります。

  • 強制的な自動コミット

  • 一部のBAPIはデフォルトでは変更をコミットしません。RFC BAPI_TRANSACTION_COMMITを使用してRFMを強制的にコミットする場合は、はいを選択します。RFMが失敗した場合、RFC BAPI_TRANSACTION_ROLLBACKが呼び出されます。RFM自体でコミットを実行する場合は、いいえを選択します。RFMコード内でBAPI_TRANSACTION_COMMITが呼び出されない場合、データはデータベースにコミットされません。

  • タイムアウト

  • この呼び出しのタイムアウトを最大30分まで設定します。30分を選択すると、このRFCをトランザクションで実行することはできません。

# 検証エラー

以下の戻り値タイプが応答に含まれている場合、Workatoはエラーを発生させます。

戻り値タイプ 説明
A 終了メッセージ(中止)
E エラーメッセージ

# トランザクション内でBAPIを実行する方法

一部のBAPIでは、作業をSAPアプリケーションにコミットするためにBAPI_TRANSACTION_COMMITを実行する必要がある場合があります。これは、Force auto commit入力を使用するか、トランザクション内でBAPIを実行することで行うことができます。

1

BAPIのシーケンスを開始する場所にトランザクションの開始アクションを追加します。

2

Call BAPIアクションを使用して1つ以上のBAPIを追加します。トランザクションの開始アクションからの出力データピルトランザクションIDトランザクションIDフィールドにマッピングします。必要に応じて他のフィールドを設定します。

3

望むBAPI呼び出しのシーケンスの最後にトランザクションの終了アクションを追加します。トランザクションの開始アクションからの出力データピルトランザクションIDトランザクションID入力フィールドにマッピングし、このステップに到達したときにこの全体のシーケンスをSAPアプリケーションに保存するために作業をコミットを選択します。

4

Call BAPIアクションをエラーの監視ブロックで囲みます。これにより、レシピを実行する際にステップのいずれかがエラーに直面した場合にトランザクションをロールバックできるトランザクションの終了アクションを追加できます。


Last updated: 2024/2/13 16:59:53