演習の目的
SAP導入企業はカスタム項目を追加するなど、バックエンドERPを拡張して使っています。SAP Fiori においても、それらの追加項目を表示したいという要件が当然でてきます。
そんな時に、アプリのソースコードを丸ごとコピーして変更したら、後のメンテナンスが大変です。標準コードのバク修正があったり、新しいバージョンで新機能が追加されたりします。バックエンド側にEXITやBADIの拡張機能がありますが、同じような概念をフロントエンド側の SAPUI5に持ってきたのが、SAPUI5 拡張ポイント です。
拡張は差分だけの開発で、実行時に標準コードとマージされて実行されます。利用パターンとしては以下が考えられます。
この演習3では以下を学びます。
この拡張ではComponent.js が重要な役割を担います。各章でComponent.js のコードを参照してみてください。
SAP Fiori リファレンスアプリを元にサンプルプロジェクトを作成します。SAP Web IDEで提供されているサンプルの中からPurchase Order Approval app を選択します。
Note: 過去のバージョンでサンプルプロジェクトを作成した事がある場合は、古いプロジェクトを削除して、新規にプロジェクトを作り直してください。
1.4. ライセンス文面に同意して Finish.
1.5. サンプルプロジェクトnw.epm.refapps.ext.po.apv が作成されました。
Note: SAP Fiori リファレンスアプリはモックデータで動くようになっています。バックエンドサービスとのデータバインディングはされていません。
これがSAP Fiori の標準アプリと思ってください。これから、お客さんの要件に応じて標準アプリを拡張していきます。実プロジェクトでは、標準アプリはバックエンドのGateway サーバーに格納されているのでインポートしてから拡張します。
Note: 拡張では標準のコードを変更することはありません。モディファイではなく、差分のみの拡張開発です。この拡張は、パッケージビジネスや、クラウドで企業ごとに別画面を提供する時に重要な仕組みになります。
標準アプリを拡張する場合は、差分開発の拡張プロジェクトを作成します。
2.3. 他のフィールドはデフォルトのままで Next 、 Finish でウィザードを終了します。
2.4.作成された拡張プロジェクトnw.epm.refapps.ext.po.apvExtension を展開して親プロジェクトのnw.epm.refapps.ext.po.apv と比べてください。拡張プロジェクトは差分開発のため親プロジェクトよりも少ないファイルで構成されています。
2.5. nw.epm.refapps.ext.po.apvExtension プロジェクトからlocalindex.html を選択
2.6. メニューからRun à Run with Mock Dataでアプリプリビューでテストします。今は拡張アプリを起動しましたが、まだ何も拡張していないので親アプリがそのままロードされます。
最初の拡張演習は、以下のように発注伝票承認依頼のコメントを表示させます。
ウィザードが終了すると、view フォルダに新規のfragment.xml が作成されます。このファイルに拡張コードを追加します。
<form:SimpleForm xmlns:form="sap.ui.layout.form" title="Note" layout="ResponsiveGridLayout" minWidth="1024" maxContainerCols="2" class="nwEpmRefappsExtPoApvControlLayout" labelSpanL="3" labelSpanM="3" emptySpanL="5" emptySpanM="5" columnsL="1" columnsM="1">
<Label xmlns="sap.m" text="Please approve purchase order"/>
<Text xmlns="sap.m" text="{POId}"/>
</form:SimpleForm>
注意:Component.js はマニュアルで変更しないでください。SAPUI5で拡張の仕組みがどのように管理されているか理解するためにこのファイルを開きました。
アプリプリビュー画面からRefresh で再読み込みもできます。
標準アプリのフル機能は必要ないので非表示にして画面をシンプルにしたいという要件はよくあるケースです。上の画面の右下のボタンを隠します。
注意:Component.js はマニュアルで変更しないでください。SAPUI5で拡張の仕組みがどのように管理されているか理解するためにこのファイルを開きました。
最後の拡張演習は通貨コードを画面に追加します。今度はウィザードを使わずに拡張画面から行います。以下のようにビューを拡張します。
<IconTabBar>
<items>
<IconTabFilter
id="ZiconTabFilter"
icon="sap-icon://hint">
<form:SimpleForm xmlns:form="sap.ui.layout.form" title="" layout="ResponsiveGridLayout" minWidth="1024" maxContainerCols="2" class="nwEpmRefappsExtPoApvControlLayout" labelSpanL="3" labelSpanM="3" emptySpanL="5" emptySpanM="5" columnsL="1" columnsM="1">
<Label xmlns="sap.m" text="Currency Code"/>
<Text xmlns="sap.m" text="{CurrencyCode}"/>
</form:SimpleForm>
</IconTabFilter>
</items>
</IconTabBar>
5.9. Save
注意:Component.js はマニュアルで変更しないでください。SAPUI5で拡張の仕組みがどのように管理されているか理解するためにこのファイルを開きました。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
26 | |
24 | |
21 | |
13 | |
9 | |
9 | |
9 | |
9 | |
8 | |
8 |