Skip to Content

2018年5月24日に行われたSAP Tech JAMの会場案内用アプリ開発に使用した

プロダクトに関して記載しています。

 

会場案内アプリではSAP Cloud PlatformのHANA DBに作成したテーブルから

ODataサービスを利用したCRUD操作を行いました。

 

本記事ではアプリケーションで用いるHANA DBの初期設定〜ODataサービスの作成までの

手順について説明します。

  1. mdcの作成
  2. テーブル作成
  3. ODataサービス作成

 

1.mdcの作成

SAP Cloud Platformのデータベースを利用するために、mdc DBを作成します。

mdc作成手順に関しては、以下の記事を参考にしています。

https://blogs.sap.com/2017/01/07/exposing-consuming-the-sap-hana-mdc-data-using-xsodata/

 

まずはSAP Cloud Platformにログインし、Neo環境にアクセスしてください。

 

 

メニュー:Databases & Schemasを開き、Newボタンを押下します。

以下のパラメータを設定します。

 

設定値

Database ID demomdc
SYSTEM User Password  **********

※ID・Passwordは任意です。

 

上記を設定のうえ、Createを押下するとmdcの作成が開始されます。

数分後、DB作成処理が完了するとmdcのOverviewページにSTERTEDが表示されます。

※下記画像①

 

HANA MDCの開発にはSAP HANA Web-Based Development Workbench(※下記画像③)

を利用しますが、作成後すぐにアクセスしても403エラーが返却されます。

 

そのため、先にSAP HANA Cockpit(※下記画像②)にアクセスし、

SYSTEMユーザーに権限を付与する必要があります。

 

SAP HANA Cockpitを押下するとUsernameとPasswordが求められるため、

SYSTEMでログインします。

※Passwordはmdcの作成時に設定したPasswordです。

 

にアクセスすると、以下のモーダルが表示されるためOKを押下します。

 

You’ve been assigned the roles ‘sap.hana.admin.roles::Administrator’, ‘sap.hana.ide.roles::TraceViewer’, ‘sap.hana.ide.roles::SecurityAdmin’.

上記文言が表示され、SYSTEMユーザーにsap.hana.ide.roles::SecurityAdminロールが付与されます。

 

2.テーブル作成

mdcのOverviewページに戻り、

SAP HANA Web-Based Development Workbenchへアクセスします。

SYSTEMユーザーでログインします。

 

Development Workbenchでは、Editer・Catalog機能を利用しますが、

初期段階ではSYSTEMユーザーにそれらの権限が不足しています。

 

そのため、Security画面を開いて必要な権限を追加します。

 

Development WorkbenchのSecurityを押下します。

 

User→SYSTEMを選択し、Granted Rolesタブの「+」を押下します。

SYSTEMユーザーに以下の権限を追加します。

  • sap.hana.xs.ide.roles::EditorDeveloper
  • sap.hana.ide.roles::EditorDeveloper
  • sap.hana.xs.ide.roles::CatalogDeveloper
  • sap.hana.ide.roles::CatalogDeveloper

 

上記権限を追加後、変更を保存します。

※※注意点※※

MDC DBのユーザー認証で一定以上失敗した場合、

アカウントをロックされます。

アカウントロックされた場合に備えて、

SYSTEMを右クリック→Copy UserからSYSTEMと同様の権限を持つユーザーの作成を

おすすめします。

※※※※※※※※※

 

開発用のユーザーを新規作成します。

左側メニューのUsersを右クリック→New Userから新規ユーザーを作成します。

その後、適切な権限を付与してください。

もしくはSYSTEMユーザーを右クリック→Copy UserでSYSTEMと同様の権限を持つ

ユーザーを作成します。

User Name DEMO_USER
Password **********

 

※パスワードは初回のログイン時に変更を求められます

 

作成したユーザーに、ユーザー名と同名のスキーマの権限を付与します。

Object Privilegesタブからスキーマ:DEMO_USERのCREATE ANYにチェックを入れます。

Grantable to OthersはYesを選択してください。

 

 

新規作成した開発用ユーザーでDevelopment Workbenchにログインし、

Catalogを押下します。

 

SQLを押下し、SQLコンソールを表示します。

SQLを実行し、テーブルを作成します。

作成するテーブルは以下の通りです。

  • PRODUCTMASTER
  • MAKERMASTER

PRODUCTMASTER

CREATE COLUMN TABLE "DEMO_USER"."PRODUCTMASTER"(
	"ID" BIGINT CS_FIXED NOT NULL,
	"NAME" NVARCHAR(50),
	"MAKER_ID" BIGINT CS_FIXED,
	"PRICE" INTEGER CS_INT,
	PRIMARY KEY (
		"ID"
	)
) UNLOAD PRIORITY 5 AUTO MERGE;

MAKERMASTER

CREATE COLUMN TABLE "DEMO_USER"."MAKERMASTER"(
	"ID" BIGINT CS_FIXED NOT NULL,
	"NAME" NVARCHAR(50),
	PRIMARY KEY (
		"ID"
	)
) UNLOAD PRIORITY 5 AUTO MERGE;

 

上記で作成したテーブルにデータをインサートします。

--PRODUCTMASTER DATA
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(1,'PRODUCT_A',1,1000);
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(2,'PRODUCT_B',2,2000);
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(3,'PRODUCT_C',3,3000);
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(4,'PRODUCT_D',1,4000);
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(5,'PRODUCT_E',2,5000);
INSERT INTO "DEMO_USER"."PRODUCTMASTER" VALUES(6,'PRODUCT_F',3,6000);
--MAKERMASTER DATA
INSERT INTO "DEMO_USER"."MAKERMASTER" VALUES(1,'MAKER_A');
INSERT INTO "DEMO_USER"."MAKERMASTER" VALUES(2,'MAKER_B');
INSERT INTO "DEMO_USER"."MAKERMASTER" VALUES(3,'MAKER_C');

 

3.ODataサービス作成

 

Editerを押下します。

 

 

右クリックNew→PackageからContent配下に新規パッケージを作成します。

パッケージ名:demo

 

 

作成したdemoを右クリック→Create Applicationを選択します。

 

表示されるモーダルのコンボボックスで

Empty application (with XSAccess and XSApp)

が選択された状態でCreateを押下します。

 

demoパッケージの配下に以下のファイルが作成されます。

  • ,xsaccess
  • .xsapp
  • index.html

 

.xsaccessのファイルを選択し、以下の内容を変更し保存します。

//変更前 
   "authentication": [{
        "method": "Form"
    }],
//変更後 
   "authentication": [{
        "method": "Basic"
    }],

※XSアプリケーションの認証方法をフォーム入力からBasic認証に変更しています。

 

ODataファイルを作成するため、

demoを右クリック→New→Fileを押下します。

ファイル名 demo.xsodata

 

作成したdemo.xsodataを編集します。

以下の内容に変更し、保存します。

service { 
    "DEMO_USER"."MAKERMASTER" as "makerdata";
    "DEMO_USER"."PRODUCTMASTER" as "productdata";
}

 

上記の内容で、下記テーブルのデータのODataサービスを設定しています。

  • DEMO_USERスキーマのMAKERMASTER
  • DEMO_USERスキーマのMAKERMASTER

 

 

実行ボタンを押下します。

 

上記のようなXMLがブラウザに表示されていれば成功です。

ODataサービスが正常に動作しています。

 

 

以上の手順でHANA DBの初期設定〜ODataサービスの作成までを説明させていただきました。

投稿内容に関する質問・ご指摘等いただければ幸いです。

 

 

次の記事ではHANA DB上のCalculationViewの作成方法について

記載します。

 

 

 

 

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply