簡単に WebAPI を作成する!【前編】

データウィンドウコンバーター

このところ、SnapDevelop IDE 関係のネタが多くなっている明石です。

これまでのブログでは、SnapDevelop というと「ちょっとよくわかんないけど PowerBuilder 2019 にくっついてきた C# 開発ができるやつ?」ってな感じで、PowerBuilder ユーザーのハートを掴むには少し物足りない紹介だったかもしれません。逆に「SnapDevelop 使わなくったって、他の開発ツールがあるもんねー」と軽くディスられていた可能性もありえますね。

しかし・・・この IDE、やはり PowerBuilder にくっついてきた理由があるんです。

そこで今回は、SnapDevelop を使用した PowerBuilder の資産運用について、少しご紹介をさせていただきます。


PowerBuilder アプリの作成

「PowerBuilder と言えばデータウィンドウ!」といった話を、これまで当サイト内でも幅広く紹介してきました。

このデータウィンドウ。すでに PowerBuilder を利用されているユーザーには浸透している機能かと思いますが、今「WebAPI 作り方」といった検索ワードで当ブログへ迷い込んでしまったそこのあなた!ぜひ開発生産性をアップさせる PowerBuilder 最大の特長であるデータウィンドウについて、ちょっとだけでも覗いていってやってください。


「データウィンドウではこんなことができるんですよ」といった内容が紹介されています。

一度使うとやめられない、高生産性の要であるDataWindowの持ち味


PowerBuilder マスターの「ねこぴ」が PowerBuilder 学習中の「ちまき」にデータウィンドウの使用方法をレクチャーしています。 https://japan.appeon.com/technical/techblog/lesson-what-datawindow/


そして SnapDevelop には、そんな PowerBuilder 最大の特長であるデータウィンドウから C# のモデルを作成できる PowerBuilder 向け専用機能、「DataWindow Converter」が搭載されています。PowerBuilder 最大の特長であるデータウィンドウから C# モデルを簡単に作成する。そして、作成された C# モデルから簡単に WebAPI 化してデータの取得や更新ができたら・・・ワクワクしてきますね。

今回のブログでは、この「DataWindow Converter」を紹介したいと思います。が、その前に少し PowerBuilder 側の準備をしましょう。

※「DataWindow Converter」の利用には、Professional Edition 以上が必要です。Standard Edition をご利用中の場合は、Trial ライセンスを申請してご確認ください。

検証して SnapDevelop、とくに「DataWindow Converter」を利用したいとご判断いただけた場合は Appeon PowerBuilder 価格をご確認の上、ぜひお問合せください!

 

脱線しました・・・はじめに PowerBuilder IDE で噂のデータウィンドウを作成します。なお今回、データベースは PostgreSQL に接続しています。対象テーブルを二つ選択し、結合したデータウィンドウを作成しました。

データソース

データソース

データウィンドウのイメージ

データウィンドウのイメージ

ペインタ内には、以下の SQL 構文が作成されています。

SELECT public.sd_product.entry_id,   
       public.sd_product.entry_name,   
       public.sd_product.entry_company,   
       public.sd_product.entry_no,   
       public.sd_product.entry_date,   
       public.sd_product.update_date,   
       public.sd_entry.entry_name  
  FROM public.sd_entry,   
       public.sd_product  
 WHERE ( public.sd_entry.entry_no = public.sd_product.entry_no )

データウィンドウの更新特性の指定も設定しておきましょう。

次に確認用のシンプルなウィンドウを作成します。ウィンドウイメージは以下の通り。

ウィンドウイメージ

ウィンドウイメージはこんな感じ

記述するスクリプトも単純に。ウィンドウの Open イベントと各ボタンの Clicked イベントにのみスクリプトを記述しています。

ウィンドウの Open イベント

// データベース接続
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=sample_db;UID=postgres;PWD=administrator'"
Connect ;

【表示】ボタンの Clicked イベント

// トランザクション オブジェクトの設定
dw_1.SetTransObject(sqlca)

// データ取得
dw_1.Retrieve()

【更新】ボタンの Clicked イベント

// 更新
dw_1.Update()
COMMIT ;

// データ再取得
dw_1.Retrieve()

アプリケーションの Open イベントに作成したウィンドウを Open するスクリプトを記述し実行すると、画面が表示されアプリの起動が確認できるかと思います。

アプリイメージ

【表示】ボタンクリック後のイメージ

PowerBuilder 側の準備は以上です。


DataWindow Converter を使用する

続いて SnapDevelop IDE を起動します (SnapDevelop IDE は PowerBuilder 2019 以降でインストールできます)。

[ファイル] – [新規] – [プロジェクト] を選択すると「新しいプロジェクト」ダイアログが表示されるので、一覧から [ASP.NET Core Web API] を選択します。名前、場所、ソリューション名に任意の値を設定して、[OK] ボタンをクリックしてください。

新規作成

[ASP.NET Core Web API] を使用

なお「DataWindow Converter」利用時に、データベースへの接続が必要になるので事前にデータベース情報を設定しておきましょう。

[表示] – [DB サーバー エクスプローラー] を選択すると、SnapDevelop IDE 内に「DB サーバー エクスプローラー」が表示されます。「DB サーバー エクスプローラー」内の上部にある [データベースに接続] ボタンをクリックすると、「データベース接続」ダイアログが表示されますので [新規] ボタンをクリックして、データウィンドウを作成したデータベースの接続情報を入力します (接続情報入力後に [テスト接続] ボタンをクリックして、接続情報が正しいことのチェックもお忘れなく)。

データベース接続

「データベース接続」ダイアログ

接続情報入力後、[OK] ボタンをクリックし「データベース接続」ダイアログを閉じます (「DB サーバー エクスプローラー」も閉じます)。

次に「ソリューションエクスプローラー」内のソリューション部分を右クリックします。すると・・・ [PB Workspace を開く] という、PowerBuilder ユーザーにしか伝わらなそうなメニューが存在することが確認できると思います。[PB Workspace を開く] を選択すると「ファイルを開く」ダイアログが開くので、使用したいワークスペースを指定するとソリューションに PowerBuilder で作成した Workspace 配下の情報を紐づけることができます。

PB Workspace

PB Workspace を紐づけ

さて、いよいよ真打ち登場です。C# モデルを作成したいデータウィンドウが格納された「ターゲット」、「pbl」、もしくは対象のデータウィンドウを直接選択し右クリックすると、[データウィンドウを C# モデルに変換] メニューが表示されるので選択してみましょう!すると IDE 内に「DataWindow Converter」タブが開き、「ターゲット」を先頭に「pbl」、「データウィンドウ」、およびデータウィンドウのカラム構成へと展開することができます。今回は、対象となるデータウィンドウは一つのみですが、複数存在する場合は「ターゲット」や「pbl」単位などモデルを作成したいデータウィンドウのチェックボックスにチェックして指定することができます。

DataWindow Converter

これが DataWindow Converter だ!

C# モデルを作成したいデータウィンドウのチェックボックスをチェックした状態で、タブ内の上部にある [エクスポート] ボタンをクリックします。接続するデータベース設定がされていない場合はこのタイミングで、「データベース接続」ダイアログが表示されるので先ほど作成したデータベースの情報を選択して [OK] ボタンをクリックします。

続いて作成するモデルの格納場所を指定するダイアログが表示されるので各種設定をして・・・。と、はじめてデータウィンドウをエクスポートする場合は、[新規の DataContext] で新規に DataContext クラスを作成しておきましょう。DataContext は、検索やレコード作成、更新、削除といった CRUD 操作を行うターゲットデータベースに接続するための接続文字列が含まれています (WebAPI として利用する際に使用)。

DataContext

「モデルのエクスポート」ダイアログ

「新しい項目」ダイアログが表示されるため一覧から [DataContext] を選択し、名前を設定して [OK] ボタンをクリックすると、DataContext クラスが作成されます。

DataContext作成

DataContext 作成

気を取り直して。改めて「モデルのエクスポート」ダイアログの内容を確認した上で [エクスポート] ボタンををクリックしましょう。エクスポートが成功するとソリューションエクスプローラ内に「Models」フォルダーが作成されます。フォルダーを展開していくと C# モデルが作成されているのが確認できます。

Model

C# モデル


最後に

さて、大した内容は書いていないものの・・・若干尺が長くなってしまいましたので、今回はここまでとして次回後編で実際に WebAPI への接続についてご紹介したいと思います。

あ、そうそう。前回、「オブジェクトブラウザ推し」という癖が判明したエイタさんでしたが、私自身は SnapDevelop 癖があるわけでは決してありませんので、あしからず。

以上、明石でした。

テクニカルブログ 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?