跳转到内容
产品信息
作者的个人资料照片万博新体育手机客户端马克西姆西蒙

HANA云で作成した计算视图をODataサービスとして外部に公開する

SAP Analytics CloudおよびOdata経由でアクセスできるhana計算ビュやテブルなどを作成する方法をご紹介します。

SAPシステムに格納されているデタを公開する際はでODataサビスという手法を推奨しています。「CAPでSAP HANA Cloudのテ,ブルをODataサ,ビスとして公開する“ではSAP云应用程序编程模型(CAP)を活用してODataサービスの作成方法をご紹介しています。
xsodataを使用してHANAテーブルをODataサービスとして公開することもできますが,この方法は推奨されなくなりました。

しかし,上記のブログではcapで作成したテ,ブル公開しかご紹介していません。
计算视图,データベースプロシージャやシーケンスなどのデータベースオブジェクトの公開方法については述べていません。本ブログではHANA计算视图,およびデ,タベ,スプロシ,ジャの公開方法にいてご紹介します。①ODataサ,ビス経由,そして②SAP分析云経由でデ,タにアクセスしていきます。

開発者は,业务应用程序Studioを使用してフルスタックアプリケーションを作成し,Cloud Foundryにデプロイします。その後,HDIコンテナをSAP Analytics Cloudに公開できます。業務担当ユザはアプリルタを介してアプリケションにアクセスできます。アプリルーターは最初にユーザーを認証し,次にアプリの正しいルートにリダイレクトして,ODataを介して要求されたデータをフェッチします。ユーザーは,SAP HANA云からのライブデータを表示するSAP分析云のストーリーにアクセスすることもできます。

  1. 実装手順
  2. 业务应用程序工作室を使用したマルチターゲットアプリケーションの開発
  3. hdiコンテナ
  4. デタベスアティファクトの作成(cds /ネティブアティファクト)
  5. SAP云应用程序编程模型でODataサビスの定義
  6. デ,タアクセス(①SAC②OData)
  7. トラブルシュ,ティング

実装手順

本ブログでは,上記のア,キテクチャの詳細な実装手順に,いては述べません。
人类发展指数コンテナ,HANAテーブル,プロシージャ,計算ビュー,およびODataサービスを作成する方法を学ぶために,次の2つのソースをお勧めします。

1.このア,キテクチャを実装するために必要な手順は,Thomas Jungの公式チュ,トリアル:结合CAP与SAP HANA云创建全栈应用程序で説明されています。CAPをHANA云と組み合わせて,フルスタックアプリケ,ションを作成します。

Githubで托马斯のチュトリアルに従って使用したコドを公開しています。

托马斯のチュ,トリアルに沿ってご自身で開発を進めることをお勧めします。テクノロジ,を実際に学ぶ唯一の方法は,使ってみることです。
本ブログでは,ご自身のサービスを作成する前に,SAP HANA云がどのように機能するかを理解するために必要な情報をご紹介します。

2.SAP HANA学院はBTP扩展生成器:CAP -本地HANAを提供します。
帽サンプルデータを含むHDIコンテナー,ODataサービス,およびフロントエンドを自動的に作ってくれるとても便利な開発ツールです。

业务应用程序工作室を使用したマルチターゲットアプリケーションの開発

SAP HANA Cloudを開発/管理するときは,次のルを使用します。

  • SAP BTP座舱ではsap btpのアカウントおよびサ,ビスを管理します。
  • SAP HANA Cloud Centralでは@ @ンスタンスレベルの管理および監視をします。
  • SAP HANA座舱ではデ,タベ,スレベルで管理および監視タスクを実行します。
  • SAP HANA数据库浏览器デタベス内のデタおよびデタベスオブジェクトを参照して変更を加えることができます。
  • SAP业务应用工作室ではデ,タベ,スア,ティファクト,そしてアプリケ,ションを開発します。

本ブログでは,SAP商业应用程序工作室を使用してカスタムビジネスアプリケ,ションを開発することに焦点を当てています。カスタムビジネスアプリケ,ションは他の標準SAPアプリケーションと組み合わせて使用され、機能を拡張してユーザーの生産性を向上させます。
さまざまなランタイム環境向けにさまざまなテクノロジーで構築されたいくつかのパーツで構成されています。たとえば,アプリケーションには,ブラウザで実行される静的Webコンテンツ,Java企业サーバーで実行されるサーバー側Javaコード,ODataプロビジョニングランタイムのODataサービス定義,およびテーブル,ビューなどの構成要素があります。
これらのパーツはすべて同じビジネスアプリケーションに属しているため,一緒に開発,配信,構成,および展開されます。多くの場合,さまざまなパーツに依存関係があり,その結果,指定されたターゲットに指定された順序でデプロイする必要があります。

したがって,云应用程序编程模型(CAP)ではマルチタ、ゲットアプリケ、ション(mta)ア,キテクチャに従ってカスタムアプリケ,ションを構築することをお勧めします。mtaは,論理的には,同じラモジュ,ルで構成される単一のアプリケ,ションです。

開発者はアプリケ,ションに必要なモジュ,ル,リソ,ス,およびそれらの間の相互依存性を多目标应用程序描述符(mta.yamlで記述します。その後,SAP云部署サービスは,MTAのデプロイメントを検証,調整,および自動化します。
この手順に沿って,Cloud Foundryアプリケーション,サービス,およびSAP固有のコンテンツが作成されます。mtaモデルにおける从开发到部署の流れ

ウィザードを使用してSAP业务应用程序内工作室でアプリケーションを作成すると,mta.yamlファイルがルートプロジェクトフォルダーに自動的に生成されます。
プロジェクトのプロパティが変更されたとき,またはモジュールが追加/削除されたときに更新されます。
ただし,すべての情報を自動的に生成できるわけではありません。リソース,プロパティ,依存関係を定義し,不足している情報を入力するには,mta.yamlを手動で維持する必要があります。

Thomas Jungのチュトリアルアプリケションは4のモジュルで構成されています。Githubでmta.yamlの例をあげています。

modules:—name: Interactions-srv type: nodejs path: srv—name: Interactions-db-deployer type: hdb path: db—name: app type: apprououter。nodejs路径:app - name: Interactions_ui_deployer类型:com.sap.application.content路径:。

各モジュ,ルには的名字类型,路径があります。
各モジュルは依存関係を持ことも可能です。
->依存するサビスを要求で定義します。->提供するサビスを提供で定義します。

モジュ,ルが依存するリソ,スは,新万博苹果版セクションで明示的に詳述する必要があります。托马斯·荣格のチュートリアルでは,下記のようにアプリケーションに4つのリソースが含まれています。

新万博苹果版资源:—名称:interactive -db类型:com.sap.xs。hdi-container - name: Interactions_html_repo_runtime type: org.cloudfoundry。managed-service - name: uaa_Interactions类型:org.cloudfoundry。managed-service - name: Interactions_html_repo_host type: org.cloudfoundry.managed-service

Hdiコンテナ

上記の新万博苹果版资源セクションにはcom.sap.xs.hdi-containerというリソ,スも含まれています。
これは,SAP HANA云データベースと通信するためにアプリケーションによって使用されるサービスです。
Interactions-srvと呼ばれるnode . jsアプリケーションがデータベースに対して読み取り/書き込みを行う必要があるたびに,Interactions-dbと呼ばれるHDIコンテナサービスが呼び出されます。Interactions-dbには,SAP HANA云にアクセスするために必要な情報(ホスト,ポート,スキーマ,ユーザー,パスワード)が保存されているCloud FoundryスペースのInteractions-hdiというサービスにバインドされています。

交互-dbは交互-hdiにどのようにバ@ @ンドされていますか?
バ▪▪ンドされたサ▪▪ビスの情報はdbフォルダの.envファルにあります。Witalij Rudnickiのブログで,dbフォルダと.envファルの構造にいて詳しく学んでください。

SAP BTPコックピットで交互-hdiを確認できます。

サ,ビスキ,内には,SAP HANA Cloudに接続するために必要なすべての情報があります。

ブログの最初にあるア,キテクチャに戻り,確認してみてください。
应用程序モジュ,ルとSrvモジュ,ル,およびDBリソ,スと安全(xsuaa)リソ,スがあります。

人类发展指数的容器とは?
SAP HANAデプロイメントインフラストラクチャ(HDI)を使用すると,データベース開発アーティファクト(テーブル,ビュー,プロシージャなど)をSAP HANAのコンテナにデプロイできます。
上記のInteractions-dbで見たように,アプリケーションはデータベーススキーマを直接参照せず,人类发展指数コンテナのみを認識すれば良いです。これをスキ,マレス開発と呼びます。これにより,アプリケーションの横展開,サンドボックス化,および強化されたセキュリティオプションが可能になります。
hdiコンテナは,設計時と実行時のア,ティファクトを明確に分離します。
バジョン管理とラフサクル管理はGitを介して管理されます。

人类发展指数参考ではセットアップ,維持,アクセス許可,およびhdiの使用するために必要なタスクにいて説明します。
テ,ブル単位,スキ,マ単位などでhdiへのアクセスを付与するために必要な権限をどのように組み合わせるかにいて説明します。

计算视图を開発する際は,hdiコンテナ内のロ,カルオブジェクトへのアクセスのみが許可されていることを覚えておくことが重要です。
アクセスをローカルオブジェクトに制限すると,異なるコンテナバージョンを展開するときに,依存関係がとてもわかりやすくなります。コ,ドは,開発から本番まで簡単に移植できるようになります。
计算视图がHDIコンテナの外部のテーブルやビューにアクセスするようにする場合は,シノニムを介して依存関係を明確に宣言する必要があります。
hdiコンテナのリモ,トクラシックスキ,マ内のオブジェクトへのアクセスを有効にする方法に関する公式ドキュメントを参照してください。

他のスキーマのオブジェクトにアクセスするためのセキュリティの概念と手順は,SAP HANA学院のHANA云访问模式从HDI容器で説明されています。

デタベスアティファクトの作成(cds /ネティブアティファクト)

托马斯のチュートリアルでは,SAP HANA云でアーティファクトを作成する2つの方法を説明しています。

①核心数据服务でア,ティファクトを作成

核心数据服务(CDS)は,SAP云应用程序编程模型のコアです。
サ,ビス定義とデ,タモデル,クエリ,および式をjson表記で表現する手段を提供します。
cds機能は,さまざまなソス言語から解析し,それらをさまざまなタゲット言語にコンパルします。

この方法では,

  1. dbフォルダ内の.cdsファルにすべてのオブジェクトを定義します。
  2. 次のステップは,cd构建でcdファイルをビルドすることにより,データベースネイティブのアーティファクト(HANAで読み取ることができる.hdbtableおよび.hdbviewファイル)を生成することです。
  3. 最後に,すべてのアーティファクト(.hdbtableファイルと.hdbviewファイル)をHANAにデプロイして,データベースにテーブルとビューを作成します。

チュ,トリアルの例です:interactions.cds

context app.interactions{实体Interactions_Header {key ID: Integer;ITEMS:许多Interactions_Items在ITEMS上的组合。INTHeader = $self;PARTNER: String(10);LOG_DATE:日期时间;};实体Interactions_Items {key INTHeader:关联到Interactions_Header;关键TEXT_ID:字符串(10);LANGU:字符串(2);LOGTEXT:字符串(1024);}; }

2つのエンティティ(テーブル)を定義します:Interactions_HeaderとInteractions_Items。
両テ,ブルは1:nの関係にあります。ヘッダでは”ITEMS:许多Interactions_Items在ITEMS上的组合。INTHeader =美元自我;と表しています。
アテムテブルでは”INTHeader:关联到Interactions_Header;と表しています。

準備ができたらcd构建を実行するだけで,定義したすべてのオブジェクトが创フォルダ内のHANAネイティブアーティファクトに変換されます。
ネ▪▪ティブア▪ティファクトはhanaにデプロ▪▪できます。帽を最大限に活用して最も単純な開発手法ですが,HANA计算视图や过程を構築することはできません。

②SAP HANA原生构件を直接作成する

Capでsap hanaネescティブ機能を使用するには,デザイン時アーティファクト(.hdbtable、.hdbsynonym .hdbcalculationview, .hdbprocedure,…)をdb / srcフォルダーに直接作成します。

SAP业务应用工作室はHANAネイティブアーティファクトを生成するためのUIを提供します。

ネイティブアーティファクトを作成した後,それらを帽アプリケーションで使用し,ODataを介して公開する場合は,オブジェクトをcdに認識させる必要があります。

  • 的cdファイルで新しく設計されたデータベースオブジェクトまたは既存のデータベースオブジェクトの签名と一致するエンティティを定義します。
  • アノテ,ション@cds.persistence.existsを追加して,このオブジェクトがデータベースにすでに存在し,生成しなくて良いことをcdに知らせます。

このエンティティは,データベースオブジェクトのファサードとして機能し,通常のエンティティのようにモデルで使用できます。下記が例です。

@cds.persistence.exists@cds.persistence。calcview实体![V_INTERACTION]{钥匙![ID]: Integer @title: 'ID: ID';钥匙![PARTNER]: String(10) @title: 'PARTNER: PARTNER';钥匙![LOG_DATE]:字符串@标题:'LOG_DATE: LOG_DATE';钥匙![BPCOUNTRY_CODE]: String(3) @title: 'BPCOUNTRY_CODE: BPCOUNTRY_CODE'; key![TEXT_ID] : String(10) @title : 'TEXT_ID: TEXT_ID'; key![LANGU] : String(2) @title : 'LANGU: LANGU'; key![LOGTEXT] : String(1024)@title : 'LOGTEXT: LOGTEXT'; key![INTHEADER_ID] : Integer @title : 'INTHEADER_ID: INTHEADER_ID'; }

上記のコドを.cdsファルに追加し,cd构建コマンドを使用すると,オブジェクトは既存のものとして認識され,帽アプリケーションで使用できるようになります。

SAP云应用程序编程模型でODataサビスの定義

深水救生艇フォルダーでも,cdファイル(dbフォルダーと同じ拡張子)でサービスインターフェイスを定義できます。

このファルは,デタを公開するサビスを定義します。デタベスにはデプロされません。

钟彬娴のチュ,トリアルで作成するinteractions-srv.cdsファルは次のとおりです。

使用app.interactions from '../db/interactions';使用V_INTERACTION from '../db/interactions';@require: 'authenticated-user' service CatalogService{实体Interactions_Header作为interaction .Interactions_Header的投影;实体Interactions_Items作为interaction .Interactions_Items上的投影;函数sleep()返回布尔值;@只读实体V_Interaction作为V_Interaction上的投影;}

使用キ、ワ、ドは,dbフォルダ.cdsファetc .ルに対する依存関係表しています。
@requiresキ,ワ,ドは,ユ,ザ,がリソ,スにアクセスするために必要なロ,ルを制御します。
上記の場合,認証されたユ,ザ,が必要です。
服务キ、ワ、ドはODataサ、ビスとして公開されるエンティティを定義します。
@ readonlyキーワードは,読み取り専用エンティティ(この場合はHANA计算视图)を定義します。

的cdファイルの準備ができたら,cd构建を使用してビルドするだけで,ODataサービスとして公開する準備が整います。これがcapの利点であり,開発者は時間を大幅に節約できます。npm开始を実行すると,工作室业务应用程序内からODataサービスをテストできます。

開発が終わるとSAP业务TechnologyPlatformにデプロイして本番環境に移行できます。プロジェクトをデプロイするには,mta.yamlファイルを右クリックして,[BuildMTAプロジェクト]を選択します。

MTA存档(Interactions_1.0.0.mtar)が作成されたら,それを右クリックして(MTAアーカイブの展開]を選択します。

/home/user/projects/Interactions/mta_archives/Interactions_1.0.0. cf deploy " /home/user/projects/InteractionsMtar”コマンドが実行されます。

マルチターゲットアプリケーションはすべての依存関係を考慮した上でSAP业务技术平台にデプロイされます。

結果はsap btpコックピットで確認できます。ここでは,スペ,ス内のさまざまなサ,ビスとアプリケ,ションを確認できます。

アプリケションを開くと,外部アクセスに使用できるデプロ済みのurlが見かります。

デ,タアクセス

计算视图とODataサービスがSAP业务技术平台にデプロイされます(この画像の緑色の線)。
外部アプリケ、ションはデ、タを消費できます(この画像のオレンジ色の線)。

デ:タアクセス方法が二:

  1. 分析クライアント(SAP分析云,BusinessObjects BI,…)から计算视图にアクセスできます
  2. ODataクラアント(Webアプリケション)からOData serviceにアクセスできます

1.SAP Analytics Cloudを介したデ,タアクセス

HANA计算视图を作成したら,SAP Analytics CloudやBusinessObjects BI平台などの分析クラ@ @アントに公開できます。

このブログでは,SAP分析云からデータにアクセスするための簡単な方法のみ説明します。デタアクセス制御に関してssoなどの要件がある場合はSAP分析云中SAP HANA云的实时数据连接を確認してください。

sacからのデタへのアクセスに使用されるhanaデタベスユザを定義します。
今回の例ではHANAデータベースエクスプローラーでSQLコンソールを開き,下記のSQL文を使用して新しいユーザー分析师を作成します。

创建分析员密码为Password1的用户

SAP Analytics Cloudへの接続に使用されるデ,タベ,スユ,ザ,に分析対象デ,タの选择権限を付与します。詳細に関してはこらのブログでご確認ください。

SAP HANA Database ExplorerでHDI管理者用のSQLコンソ,ルを開きます。

下記のsqlを使用して,hdiコンテナのスキ,マを確認します。

SELECT 'Current user' as "Property", Current_User as "Value" FROM DUMMY UNION ALL SELECT 'Current schema', Current_Schema FROM DUMMY;

管理者コンソ,ルを使うと,_DTユ,ザ,でデ,タベ,スにアクセスしていることを確認できました。

下記のSQLステートメントを使用して,人类发展指数コンテナのスキーマに対する选择権限を分析师ユーザーに付与します。
スキーマを選択した“Current_Schema”+ # DIに設定した後,#特权一時テーブルを作成し,付与したい権限とユーザーを入力し,付与プロシージャーを実行します。

Set schema " 95e67e24e3c74783817520ca6d9ec26b# di ";创建本地临时列表"# privileges ",例如" _sys_di "." tt_schema_privileges ";插入“# privileges”(“privilege_name”,“principal_schema_name”,“principal_name”)值(' select ', ", ' analyst ');调用" grant_container_schema_privileges " ("# privileges ", " _sys_di ")。" t_no_parameters ", ?, ?, ?);删除表“# privileges”;

SAP Analytics CloudをHANA Cloudに接続します。任意で,シングルサ@ @ンオンを設定することも可能です。

HANAライブ接続を選択し,接続名を挿入して,接続タイプとして“云”SAP HANAを選択します。
443ポ,トは入力せず,ユ,ザ,とHANA Cloudホストを入力します。

モデルに移動します。新しいモデルを作成し,システムタaapl .プをsap hanaに設定して,作成したラaapl .ブ接続を選択します。
次に,アクセスする计算视图を選択できるようになります。
囊からアクセスできるのは,计算立方体视图类型のみであることに注意してください。

デ,タを視覚化するために必要なモデルを使用してスト,リ,を作成します。

2.ODataを介したデ,タアクセス

ODataクライアント(Webアプリなど)は,SAP业务技术平台にデプロイされたODataサービスにアクセスできます。
ODataサ,ビスを試す最も簡単な方法は,ブラウザを使用することです。BTPでアプリに表示されているURLにアクセスし,サービスにアクセスするための正しいパスを入力するだけです。

ODataサ,ビスのユ,ザやロ,ルによるアクセスコントロ,ルはxsuaa認証で行います。

トラブルシュ,ティング

capアプリケ,ションの構築中で困っていますか?
私は,トラブっているときはsapコミュニティに質問をよく投げています
コミュニティはいでも誰かが助けてくれます!

ブログを投稿し,オンラ。それがご自身の成長にも必ず結びきます。
capにいてさらに学ぶためのいくかのリソスをどうぞ:

最後まで読んでいただきありがとうございます。

马克西姆西蒙

指定的标签

      第一个留下评论
      你一定是登录评论:评论或回复一篇文章