SAP - Call BAPIアクション

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

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

BAPIのリスト

OPAバージョン24.1以降では、ビジネスオブジェクト別に整理されたBAPIのカタログを提供しています。 これにより、関連するビジネスオブジェクトを参照して、適切なBAPIを簡単に移動および選択できます。 古いバージョンを使用している場合、Call BAPIアクションを使用してレシピを作成するときは、BAPI名を手動で入力する必要があります。

Call BAPIアクションCall BAPIアクション

ビジネスプロセスドロップダウンBusiness Objectsカタログ

BAPI名ドロップダウンBAPIカタログ

以前は、Call remote function moduleアクションを使用してBAPIを呼び出すことができました。 しかし、BAPIを呼び出す場合、このアプローチには制限があります。SAPシステム内のBAPI操作が失敗した場合でも、呼び出し自体が成功したため、Workatoはアクションが成功したと見なしていました。 つまり、SAPからの応答に基づいてエラーを特定するために、レシピに条件付きロジック("if"ステップ)を含める必要がありました。

これに対して、Call BAPIアクションは、BAPIに存在する標準化されたエラーメッセージ構造を活用して、BAPI実行で問題が発生したときに自動的にエラーを発生させます。 また、SAPシステムによって検出された検証エラーを強調表示し、それらをWorkatoに返します。 これにより、SAPシステムのエラーを確認するレシピステップを作成する必要がなくなり、レシピロジックが効率化されます。

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

このアクションを既存のBegin transactionおよびEnd transactionアクションとともに使用して、複数のRFMを単一の論理作業単位で実行します。 これにより、トランザクションの最後にシーケンス全体をコミット(またはロールバック)できます。

BAPIおよびRFMのリモート関数呼び出し

リモート関数呼び出しを使用すると、SAPシステム内でBAPIとRFM(Remote-Enabled Function Modules)の両方を実行できます。 BAPIは、次の点でRFMとは異なります。

  • BAPIはSAPビジネスオブジェクトへの標準化されたインターフェイスですが、RFMは標準化の度合いが低く、複数ステップのプロセスになる場合があります。

  • BAPIでは、RFMとは異なり、エラーメッセージまたは警告が応答内で構造化され、明確な形式で提示されます。

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

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

入力

  • BAPIの説明

  • このステップに、人が読める説明を指定します。この説明はレシピステップに表示されます。 この入力はBAPIの実行に影響しません。 例:Create sales order

  • BAPI名

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

  • トランザクションID

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

  • 自動コミットを強制

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

  • タイムアウト

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

検証エラー

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

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

エラー動作

Call BAPIアクションはBAPI固有の検証を適用し、特定の戻り値の型に対してエラーを自動的に発生させる場合があります。 その他の技術エラーやビジネスエラーは、実行時に異なる形で表面化する場合があります。 レシピ実行中に技術エラー、スキーマの不一致、ビジネスエラーがどのように表面化するかについて詳しくは、SAP RFCコネクターのエラー動作を参照してください。

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

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

1

BAPIのシーケンスを開始する位置にBegin transactionアクションを追加します。

2

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

3

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

4

Call BAPIアクションをMonitor for errorsブロックでラップします。 これにより、Roll back changesを選択したEnd transactionアクションを追加でき、レシピの実行時にいずれかのステップでエラーが発生した場合にトランザクションをロールバックできます。

Last updated: