SAPシステムと連携する
OutSystemsでは、SAPシステム内のデータを取得または更新し、アプリケーションで使用することができます。
アプリケーションでSAPシステムへの接続を作成する
- [Logic]タブで、Integrationsフォルダを開きます。
- [SAP]を右クリックし、[Consume SAP Remote Functions....]を選択します。SAP接続を構成するためのウィンドウが開きます。
- SAPシステムの接続パラメータとログインパラメータに関するフィールドに入力します。これらがSAP接続のデフォルトの資格情報となります。後で再定義することも可能です。
- [Test Connection]ボタンをクリックして接続をテストします。接続に失敗した場合は、エラー詳細の[Show]をクリックしてエラーメッセージを表示できます。
SAPリモート関数をインポートする
SAPへの接続を設定し、アプリケーションで使用するSAP関数をインポートできるようになりました。
- [Choose Functions]ボタンをクリックします。リモート関数をビジネスユースケースとSAP機能別にグループ化したフォルダツリービューが表示されます。
- 使用するSAP関数を選択します。関数名をクリックすると、右側のパネルに、説明、入力パラメータ、出力パラメータなどの詳細が表示されます。
- [Finish]をクリックします。
アプリケーションでSAPリモート関数を使用する
[Logic]タブで、IntegrationsフォルダとSAP要素を開きます。OutSystemsが以下の手順を実行します。
- 設定したSAP接続の作成
- 選択したリモート関数のアクションの作成
- パラメータを保持するストラクチャの作成
これで、新しく作成されたアクションを、他のサーバーアクションと同様にアプリケーションで使用できるようになりました。
SAPリモート関数フロー
OutSystemsアプリケーションからSAPリモート関数を呼び出すと、以下のフローが実行されます。
- OnBeforeConnection(): このコールバックを使用すると、ログオンチケットや証明書などのSAP Extensibility APIを使用する様々なSAP認証メソッドを実装できます。
- SAPへの接続とコンテキストの開始: 他の認証が定義されていない場合は、デフォルトの資格情報を使用してSAPへの接続が確立され、SAPリモート関数を呼び出すためにSAPのコンテキストが開始されます。
- OnBeforeCall(): このコールバックを使用すると、SAPに送信する値をカスタマイズできます。
- SAPリモート関数の呼び出し: SAPシステムでリモート関数を実行します。
- OnAfterCall(): このコールバックを使用すると、SAPから返された値をカスタマイズできます。
- コミット/ロールバックおよびコンテキストの終了: SAPシステムで実行された変更をコミットし、SAPのコンテキストを終了します。エラーが発生すると、変更がロールバックされます。
複数のSAPリモート関数を呼び出し、すべての変更のコミットを終了時にまとめて行うには、SAPステートフルコールを使用します。
認証
SAPと連携する場合、OutSystemsはデフォルトで、SAPシステムへの接続作成時に開発者が提供した資格情報を使用します。これらの資格情報は、そのSAP接続で定義されているすべてのSAPリモート関数で使用されます。特定のSAPリモート関数に別の資格情報を使用する場合は、それらの関数を利用するための新しい接続を作成することができます。
また、以下のいずれかの認証メソッドを使用して、異なる資格情報を使用することもできます。
-
環境ごとに異なる接続を設??定する: モジュール内の各SAP接続について、実行時に異なる接続を設定することができます。この場合、デフォルトの接続は上書きされます。これにより、モジュールの変更または再パブリッシュをせずに、アプリケーションが特定の環境において個別のSAPシステムを使用できるようになります。
-
動的ログイン: アプリケーションロジックを利用して、実行時に認証資格情報を指定します。接続下にあるすべてのSAPリモート関数には、ユーザーの資格情報が必要です。ユースケースとしては、SAPシステムでデータを変更する場合などが挙げられます。動的ログインを実装するには、SAP接続のコンテキストメニューから[Add Dynamic Login]を選択します。
-
カスタム: SAPのログオンチケットや証明書など、他の認証方法を実装するには、SAP Extensibility APIを使用します。このメソッドでは、OnBeforeConnection()コールバックを使用して接続をカスタマイズします。