目次
はじめに
S/4HANA Cloud Public Editionを使用するとオンプレ版(S/4HANA Cloud Private Edition、S/4HANA On-premise、ECC6.0などGUIベースで動作するERP製品)との違いに戸惑うことがよくあります。オンプレ版を使用していた自分のような方は技術的な制約が多いと感じると思いましたのでその視点で書かせていただきます。
特に以下のようなトランザクションを使用できなくなったことによって、データの動きが把握しづらくなった印象です。
・SE16、SE11(テーブルデータへの直接アクセスができない)
・SE38(ABAPプログラムの確認、デバッグをすることができない)
・SQ01、SQ02(SAPクエリを作れない)
また、近年のSAPの方針としては『Fit to Standard』『Clean Core』という考え方が主流となってきています。拡張(アドオン)を少なくすることでシステム管理コストを抑えるというのは理にかなっていますが、固有のビジネス要件を満たすためには必要な拡張もあるでしょう。
そんな中、拡張という観点で何ができるのかを正しく把握することが重要となります。
拡張については別ブログ「S4HANACloudでの拡張開発」も参考にしてください。
本ブログではS/4HANA Cloud Public Editionでアドオンテーブルは使えるのかという点で紹介させていただきます。
アドオンテーブルは作れるのか
S/4HANA Cloud Public Editionではオンプレ版で使用していたSE11といったテーブルなどのディクショナリを作成するトランザクションはありません。その代わり、カスタムビジネスオブジェクトというオブジェクトを使用することでアドオンテーブルのようなオブジェクトを作成することができます。
カスタムビジネスオブジェクトとは
カスタムビジネスオブジェクトはカスタムビジネスオブジェクトアプリを使用して作成するオブジェクトで、テーブル、更新ビュー、拡張ポイントが合わさったようなオブジェクトです。
使い方によっては単純なテーブル構造の作成だけではなく、下表のような機能を持たせることができます。
アプリの一般情報タブで機能のオン・オフができます。
決定とチェック | データ保存時にチェックなどのロジックを追加できるようになります。 |
ユーザインタフェース | データ登録や編集ができる更新ビューのようなアプリが作成されます。 |
バックエンドサービス | ODataが作成されます。ODataを使用して外部からデータの取得や更新ができます。 |
関連付け可能 | 別のカスタムビジネスオブジェクトで入力ヘルプのような項目として使用することができます。 |
システム管理データ | 登録者、登録日時、更新者、更新日時の項目が自動的に登録されます。 |
変更文書 | カスタムビジネスオブジェクトのデータ変更ログが登録され、閲覧できるようになります。 |
カスタムビジネスオブジェクトの作成手順
単純なテーブルであれば以下の2ステップで作成することができます。
- カスタムビジネスオブジェクトアプリで新規ボタンを押下し、オブジェクトの名称をIDを指定して登録します。
- 項目タブでテーブルの項目を定義して公開ボタンを押下します。
公開が完了するとビューブラウザでカスタムCDSビューが登録されていることを確認できます。
また、ADT(ABAP Development Tool)で作成されたカスタムCDSビューのソースコードを確認すると内部でランダムなIDのテーブルが作成され、それをソースとしたカスタムCDSビューが作成されていることがわかります。
カスタムビジネスオブジェクト作成のポイント
テーブル項目の設定
カスタムビジネスオブジェクトでは任意の項目を持ったテーブルを作成できます。項目のタイプはテキスト、数値、日付など様々なデータ形式から選択することができます。入力データの制限や入力補助に役立ちます。
テーブル構造の設定
カスタムビジネスオブジェクトは階層構造で作成することができます。単純なテーブルとしてデータを保持するだけではなく、階層を持たせることができます。下図のようにヘッダ情報に対して複数の明細情報や複数の担当者を登録したいといった複数行が発生するようなケースも一つのカスタムビジネスオブジェクトで作成することができます。
ロジックの設定
カスタムビジネスオブジェクトのデータ登録時やアクションボタンを押した時に動作するロジックを追加することができます。
データ保存をトリガーとして別のカスタムビジネスオブジェクトを更新したり、標準のCDSビューからデータを取得して項目にセットしたり、様々な利用方法が考えられます。
使用例
いくつかの使用パターンの例をご紹介します。
マスタテーブル・トランザクションテーブルとして使用
SAP標準機能に存在しないようなデータを保持したい場合に使用する。例えばSAPには標準では存在しないと思うのですが、日付ごとの天気をトランザクションデータとして保持し、天気の種類をマスタデータをして保持するようなカスタムビジネスオブジェクトを作成することができます。
標準のCDSビューを組み合わせてカスタムCDSビューを作成
標準のCDSビューやカスタムビジネスオブジェクト同士を組み合わせることで独自のカスタムCDSビューを作成できます。
受注伝票登録時にカスタムビジネスオブジェクトを更新する。
カスタムロジックを使用して標準アプリの動作中にカスタムビジネスオブジェクトを更新するロジックを追加することもできます。例えば受注伝票登録時に追加の受注情報を保持しておくカスタムビジネスオブジェクトを更新するといったことが可能です。
OData APIで外部から更新
BTPで作成したアプリや外部ツールでOData APIを呼び出し、データの取得や更新を行います。
さいごに
カスタムビジネスオブジェクトを使うことでオンプレ版で実装していたアドオンテーブルに近いものは作成することができます。また、カスタムビジネスオブジェクトは単にテーブルを作成するだけではなく、ロジックを組み込めたり、階層構造で作成することができる、OData APIで連携が可能といったプラスの機能があることがわかりました。
BeeXではSAP S/4HANA Public Cloud Editionの拡張開発の取り組みを実施しています。
こんなことはできるの?といった疑問やご要望がございましたらお気軽にご相談ください。
- カテゴリー