S4HANACloudでの拡張開発

この記事を書いたメンバー:

旭 直也

S4HANACloudでの拡張開発

目次

はじめに

本ブログでは、SAP S/4HANA Public Cloud Edition(以下、S/4 HANA PCE)での拡張開発で利用した機能について記載します。

「S/4AHANA PCEはできるだけ標準のまま利用するのは理解しているが、そうは言ってもどのような拡張(変更)ができるの?」という不安を持つ方に向けて、概要をざっと把握する手助けとなればと思います。

拡張方式の概要

S/4HANA PCEでの拡張は大きく分類して「In-App拡張」と「Side-by-Side拡張」があります。
拡張が必要な場合は、In-App(キーユーザ拡張)→In-App(開発者拡張)→Side by Side拡張の優先順で検討するのがよいでしょう。

In-App拡張

名称の通り、SAP内の何らかのオブジェクトに対して拡張および変更を行います。
下記の2つに分類されます。

【キーユーザ拡張】
S/4HANA PCE内で提供されるFioriアプリケーションを利用して拡張します。
一部を除き、ノーコードで拡張できるため対応が容易で、開発知識のないコアユーザでも対応可能な印象です。
対応可能な内容は後述します。

【開発者拡張】
EclipseとそのプラグインであるABAP Development Tools (通称:ADT)を利用して拡張します。
ABAPなどの知識が必要になるため、その名の通り開発者向けの拡張方式となるでしょう。
例えば、キーユーザ拡張機能でのCDSビュー作成では集計関数(SUM,MIN,MAX,GROUPBYなど)が使用できないため利用しました。
ADTで開発したCDSビューもキーユーザ拡張のカスタムCDSビューやカスタム分析クエリで利用可能です。

【Side-by-Side拡張】

S/4HANA PCEで公開されているWebサービス(OData形式、SOAP形式)を利用してSAP外でシステム開発します。

例えば以下のようなものがあります。
・SAP Business Technology Platform(通称:BTP)を用いてアプリケーションを作成する
 →弊社の事例では、見積~請求書発行までの処理フローを開発しました。
・ExcelからWebサービスを呼び出し、データの登録・照会するものを作成する
 →弊社の事例では、会計伝票を一括アップロードする機能を開発しました。

拡張おける制約事項

【拡張範囲の制約】
モディフィケーションや暗黙拡張による拡張は対応できません。

【テーブルおよび汎用モジュールの制約】
SAP ECCではテーブルに直接アクセスでき、推奨されていないものの「未リリース」の汎用モジュールを利用できていました。
S/4HANA PCEではテーブルや汎用モジュールは使用できずCDSビューおよびWebサービス(OData形式、SOAP形式)のみが利用できます。
また、それぞれは「リリース済」のもののみ利用できるという制限があります。

【拡張ポイントの制約】
BADIに相当するものは「カスタムロジック」に置き換えられていますが、SAPECCよりも対応範囲は若干狭まっている印象です。
例えば会計領域におけるOPEN-FIに該当するものは見つけられませんでした。

【開発言語の制約】
開発言語の面では、利用できるABAPは従来のABAPとは異なります。
キーユーザ拡張では「ABAP for Key Users」、開発者拡張では「ABAP for Cloud Development」を使用します。
使用できるABAP命令が制限されているため注意が必要です。
例えばINSERT命令でも内部テーブルに対する命令のみという制限があります。

拡張機能一覧

利用した拡張方式の一覧とその概要は以下です。
※一部の紹介となりますので、詳細は参考資料「Key User Extensibility」をご参照ください。
キーユーザ拡張

拡張機能概要
UI適用画面項目の表示・非表示や表示位置の調整などの画面レイアウトを変更します。
例えば、カスタマイジングで表示・非表示を制御できない場合や、カスタム項目で項目を追加した後に画面に表示させるために利用しました。
カスタムタイルURLを指定したFioriタイルを作成します。例えば、BTPで開発したアプリケーション、各種外部のWebサイトをSAPのLaunchPad上に配置することで各種リンクへ素早くアクセスでき業務効率を向上させます。
カスタム項目SAP標準テーブルに対して追加項目を定義します。
ビジネスコンテキストを指定して項目を追加するため、関連するテーブル・CDSビュー・Webサービスなどが一括で拡張されます。
例えば、会計伝票明細への管理項目の追加、プロジェクトマスタへの管理項目の追加で利用しました。
カスタム
ビジネスオブジェクト
SAP環境内に追加テーブルを作成します。
テーブル編集用の簡易アプリケーションおよびODataサービスを生成することができます。
例えば、見積~請求までのアプリ用で利用するテーブルなどを作成しました。
SAP環境内にテーブルを作成することにより、SAP標準テーブルの情報と結合したレポートが作成しやすくなります。
カスタムロジック従来のBADI(ビジネスアドイン)に相当する拡張ポイントを利用して変更します。
【拡張における制約事項】に記載した事項の注意が必要です。
例えば、カスタム項目へ相手仕訳明細から値を取得してセットするなど通常の代入処理では対応できないケースで利用しました。
カスタムCDSビューステータスが「リリース済」のCDSビューを利用して独自のCDSビューを作成します。
SAPECCのクエリにおけるインフォセットに相当し、外部API用に作成することでOdataサービスを生成することもできます。
一般的なSQLの結合の仕組みを理解していれば問題なく作成できると思います。
例えば、SAPでは一覧形式のレポートが不足していたり確認したい項目が含まれずに困ることがあり、そのような場合にCDSビュー作成を利用しました。
カスタム分析クエリCDSビューを利用して分析用のレポートを作成します。
SAPで提供されているCDSビューおよびカスタムCSDビューを利用できます。
作成されるレポートはExcelにおけるピボットテーブルのイメージでユーザが実行時に行・列を自由に変更できます。

Side by Side拡張の対象とした例には以下のようなものがあります。
いずれもSAP標準のOData、カスタムビジネスオブジェクトから生成されるOData、外部公開用のCDSビューから生成されるODataなど複数のWebサービスを利用して構築しました。

【Excelを利用した会計伝票一括登録機能】
複数の勘定種類(G/L勘定、得意先統制、仕入先統制)を使用する汎用的な会計伝票の一括登録機能

【Webアプリ(会計伝票承認機能)】
未承認伝票の一覧を表示し、承認者による多段階承認機能

【Webアプリ(見積~請求フロー)】
SAPのデータをベースとし、自社にあわせた各種帳票(見積書、納品書、検収書、請求書など)の発行機能

その他の拡張・調整機能の例

拡張とまでは言いにくいのですが、S/4HANA PCEでは以下のような調整や変更も可能です。

拡張機能概要
ラウンチパッドページの管理標準ではビジネスロールに紐づいて、使用するFioriをグループ化したページが提供されています。
導入においては、業務ロール毎に必要なFioriを集約したページを作成し、各ユーザに割当します。
Myホームユーザ個別に頻繁に利用するFiori指定することでMyホームから素早くアクセスすることが可能です。
Myホーム設定をしない場合でも、過去に利用したFiori、頻繁に利用するFioriへは簡単にアクセスが可能です。
代入/チェックSAP ECCと同様に代入/チェックの設定が可能です。
代入とは、ルールに基づいて特定の項目に値を自動でセットする機能です。
チェックとは、ルールにもとづいて入力データをチェックし警告やエラーメッセージを表示する機能です。
ただし内部プログラムを作成しての代入/チェックはできず、複雑なロジックを用いての代入/チェックは実装できないので注意が必要です。

さいごに

ここまでS/4HANA PCEでの拡張方式の概要について記載しました。
一部については、以下のような最低限の知識が必要と感じましたが、少し学べば問題なく活用できると思います。
 ・データベーステーブルと結合の知識  → カスタムCDSビュー、カスタム分析クエリ
 ・ABAPプログラミング         → カスタムロジック
また利用するCDSビューやカスタムロジックの実装ポイントを特定するのが難しいケースもあり、その部分はノウハウとして積み上げていかなければならないと思いました。
特にCDSビューについては、要件に該当しそうなものを見つけても「未リリース」となっていた経験が多く、これらがもっと公開されれば拡張の幅が広がるため今後に期待したいと思います。

本ブログ以降では、主に「In-app拡張」の1つである「キーユーザ拡張」についてもう少し具体的に紹介していこうと思います。

BeeXではSAP S/4HANA Public Cloud Editionの拡張開発の取り組みを実施していますので、ご検討中のお客様は是非、お気軽に相談ください。

参考資料

Key User Extensibility
https://assets.cdn.sap.com/sapcom/docs/2018/05/606d1ee8-037d-0010-87a3-c30de2ffd8ff.pdf

キーユーザ向け ABAP での命令 | SAP Help Portal

ABAP Keyword Documentation



カテゴリー
タグ

この記事を書いたメンバー

SAPシステムや基幹システムのクラウド移行・構築・保守、
DXに関して
お気軽にご相談ください

03-6260-6240 (受付時間 平日9:30〜18:00)