SAP Fiori for SAP S/4HANAにおけるトランザクションアプリケーション


SAPジャパン 山澤です。

SAP S/4HANAにおいての大きな変更点の一つに UXの変更があります。 SAPが提供する新しいインターフェースであるSAP Fioriを標準のインターフェースとしていることはすでにご存じのことと思います。

SAP Fiori アーキテクチャ

SAP S/4HANAにおけるこのユーザインターフェースのアーキテクチャは以下のように図示できますが, こちらについて簡単に復習したいと思います。

fiori_architecuture

SAP S/4HANA は3層構造のクライアント・サーバアーキテクチャで構築されており、全てのデータはインメモリデータベースであるSAP HANA (Database Server)に保存されます。

データ処理レイヤ(Backend Server)は SAP NetWeaver Application Server ABAPにより構成されます。 その中にはいくつかのフレームワークや分析やトランザクション処理のためのエンジン、たとえば Buseiness Object Processing Framework(BOPF)や分析エンジンを含んでいます。

SAP Fioriのフロントエンドサーバ(Client)はユーザインターフェースとバックエンド間のステートレスなコミュニケーションを管理します。 SAP Gatewayコンポーネントは OData要求のためのプロトコルレイヤとして構成されます。ユーザインターフェースはSAP UI5の上で実行されるSAP Fioriアプリケーションを含みます。

従来のユーザインターフェースである(Web Dynpro ABAPやSAP GUI for HTML)もサポートされますが、ユーザアクセスの基本はブラウザ経由となります。

 

 

  従来のアプリケーションとの違い―セッションステート

ここで ODataについて詳細を説明はいたしませんが、このODataは RESTと呼ばれる方法でバックエンドとのやり取りを行うステートレスのセッションとなります。

従来のSAPのトランザクション処理アプリケーションは WebDynpro ABAPやDynproのようなステートフルな技術で開発されてきました。

これらのステートフル・アプリケーションでは、アプリケーションサーバにおいてトランザクション処理の進捗状態を維持しており、ユーザーが処理終了や保存を行うまで、サーバー・セッションとアプリケーション・バッファを使用してクライアント要求に対応をしてきました。

標準のSAPロックメカニズムでは エンキューサーバが使用され、ロックの持続性はABAPユーザのセッションに依存することになります。 言い方を変えれば ABAPのセッションがロックのオーナになるわけです。 ABAPのセッションが終了した際にはロックは解除されます。

それに対して SAP FioriアプリケーションはバックエンドとのコミュニケーションにODataを使用しています。 各々のOData HTTPのリクエストは新しいABAPセッションを生成しますが、レスポンスが返されるとともに終了します。 これは、各々のレスポンスごとにロックは解除されることを意味します。

データを変更するODataサービスが呼ばれた後には、その場でコミットがされなければなりません。

restful他ユーザと同じデータへの更新処理などはおこなわない、更新を一度の呼び出し処理で終了するようなトランザクションでは問題は少ないですが、以下のようなケースでの対応は難しくなってしまいます。

  • データ修正中の割り込みなどにおける未保存の変更データの維持
  • 予想外のアプリケーションの終了におけるデータ消失を防ぐ
  • 複数ユーザによる同一オブジェクトに対する編集を防ぐためのロックメカニズムや他ユーザによる未保存データの認識

そのため、SAP FioriとODataのような新技術を用いたアプリケーションでは、従来と異なる新しい仕掛けが必要となってきます。 

ドラフトドキュメント

SAPは新しいABAP基盤をベースに、SAP Fioriのようなステートレス・アプリケーションによる、従来のステートフル・アプリケーションのリファクタリング(書き換え)を可能にする方法をS/4プログラミング・モデルに導入しました。

いわゆるSoftstateと呼ばれる方法で 業務の中間の状態をドラフトとして保存する方法です。

この新しい基盤はBOPF、Core Data Services(CDS)、SADL、SAP Gatewayのようなテクノロジーをベースに、SAP NetWeaver 7.5に実装されています

これを可能にするために、既存のデータ領域を使用したアプリケーションはドラフトサポートと呼ばれる方法で拡張されます。 このシナリオは既存のアプリケーションロジック、アクティブなドキュメントと独立した領域に保存されるドラフトと呼ばれるドキュメントの連携を含んだ既存標準領域を利用します。

ap_logic

アクティブなドキュメントは既存の(もしくは元の)領域に保存されるビジネスエンティティの状態を示します。

ドラフトドキュメント(もしくは非アクティブドキュメント)はアクティブドキュメントとして元の領域に恒久的に保存されるまでのビジネスエンティティの一時的な状態を示します。

ドラフトドキュメントは アクティブドキュメントへ置き換わるまでドラフト領域に保存されます。

まとめ

今回はSAP S/4HANAにおけるトランザクションアプリケーションのための仕組みである“ドラフト”に関して簡単に紹介をさせて頂きました。 まだ資料や情報も少ない状態ですが、今後機会があればより詳細についてご紹介したいと思います。

ご質問はチャットWebからも受け付けております。お気軽にお問い合わせください。

●お問い合わせ先
チャットで質問する
Web問い合わせフォーム
電話: 0120-554-881(受付時間:平日 9:00~18:00)