PowerBuilderのマイグレーションをトータルサポート

パワーフューチャー株式会社

PowerBuilder 2022 R3 新機能

最新のシステム要件

Windows 11 (IDE および実⾏環境)

Windows Server 2022 (実⾏環境のみ)

SQL Server 2022 (MSOLEDBSQL 19.3、TLS 1.3 をサポート)
Oracle 21c、Oracle 23c (TLS 1.3 をサポート)
PostgreSQL 15、PostgreSQL 16
Informix 14.x

データベース

Oracle の『IDENTITY (ID) 列』をサポート
SQL Server の『Strict 暗号化』をサポート
ADO.NET ドライバーのアップグレード

IDE / 開発

IDEの機能強化

64-bit アプリの実⾏とデバッグ (IDE)

コマンドラインツールによる配布の強化 (PBAutoBuild)

・PowerServer プロジェクトのビルド
・Git ブランチからソースコードをダウンロードしてビルド
・Git/SVN の設定をエクスポート

ソース管理の強化

・『ライブラリ ペインタ』からソース管理関連の操作をサポート
・リポジトリへの PBL アップロードが不要
・環境 (Windows 資格情報または GitHub サインインページ) から Git へのサインインが可能

・ブランチからのソース取得が容易に

インストーラーの機能強化

・インストール時に Web サーバー (IIS) の設定が可能
・デモアプリの DB に SQL Server の選択が可能
・インストール権限として管理者権限が不要

マイグレーションアシスタントの更新と最適化

テクノロジー

.NET 8 にアップグレード

次の機能は、.NET 8.0 で動作するようにアップグレードされました :

  • コンピューター上で .NET SDK 8.0 が検出されない場合は、PowerBuilder インストーラー
    によってインストールされます。
  • ADO.NET データベース接続には、SQL Server、Oracle、および ODBC 接続用
    の .NET 8 データ プロバイダーが必要になりました。
  • .NET DLL インポーターは、.NET 8.0 DLL をインポートできます。

新規 OpenURL 機能

新しい OpenURL システム関数は、Inet オブジェクトの HyperLinkToURL 関数と同じ機能を持ちます。

  • OpenURL 関数は、Inet.HyperLinkToURL 関数を置き換えて、デフォルトの Web ブラウザー (アプリケーションの外部) を開き、指定された URL に移動できます。
  • HTTPClient.SendRequest (“GET”, …) は Inet.GetURL 関数を置き換えることができます。

JSONParser の機能強化

JSONParser は、新しい関数 GetItemDecimal を使用して小数値の取得をサポートしているため、JSON 文字列を介して値を転送するときに 28 桁の精度をサポートできます。

HTTPClient / RestClient / TokenRequest
/ OAuthRequest オブジェクトの強化

・TLS 1.3 セキュリティ プロトコルの使用をサポートしています

・HTTP/2 を使用した接続をサポートします

・TLS 1.3 セキュリティ プロトコルの使用をサポートしています

・相互 TLS 認証をサポート

⇒ 双方の認証が行われ、セキュリティが強化

ユーザー向け

■ネイティブな電⼦メールのサポート
(SMTP クライアント)
■ PDF ファイルの編集 PDF Builder
■ 最新のグラフ
■ DDDW および DDLB の機能強化

・オートコンプリート
・プロパティの追加

MDI ウィンドウの TabbedView サポート

リッチテキストエディット コントロール機能強化

・PDF の保存をサポート
・Excel 形式 (.xlsx) ファイルの挿入をサポート
・リッチテキストで入⼒フォーム、テーブル、テキストフレームが利用可能
・リッチテキストコントロールを操作する各種関数の追加

UI テーマの機能強化

・より細かいカスタマイズが可能
・継承したオブジェクトにもカスタマイズを適用可能
・テーマの追加

 

そして・・・

Web化が簡単になった  新 PowerServer!

 

PowerBuilderをWeb化をご検討している皆様へ!

PowerServerとは・・・

Point 01

PowerBuilderをWeb化!

クライアント/サーバーシステムとして作成・運用していたPowerBuilderアプリをWeb化したい!

そのようなユーザー様のためPowerBuilderを他の言語に置き換えることなく、PowerBuilder アプリを 3 層アーキテクチャに!

①プレゼンテーション層 (クライアント)
②アプリケーション層 (データアクセス処理)
③データ層 (データベース) に分離

Point 02

簡単なインストール

クライアント/サーバーシステムの場合、修正したプログラムを各クライアントへの配布はとても大変です。
Web化することにより・・・
⇒ 各端末への配布は Web サーバー経由
⇒ ブラウザから URL にアクセスするだけ


Point 03

データアクセスは HTTP 経由

各層を分離することで、それぞれのコンポーネントを異なるハードウェア、あるいは異なる物理的な場所に配置することができるようになります。
クライアント PC から直接 DB にアクセスできないため安全

進化したPowerServer!

As-Is

今までのPowerServerは・・・

■ Web ブラウザーに依存
・ブラウザー毎に動作差異があった
・ショートカットキーがブラウザーと競合
■ PowerBuilder との非互換が多い
・PowerBuilder と挙動が違った
・利用できない関数やイベントがあった
■デバッグのハードルが高い
・サポートが終了しているデバッグツールを導入する必要があった

To-Be

これからのPowerServer!

■インストール可能なクラウドアプリ
・PowerBuilder と同じように Windows アプリとして動作
・統一された挙動
■PowerBuilder との互換性が向上
・PowerBuilder との非互換はほとんどなし
・移行作業の工数を大きく削減
■IDE に統合されたデバッガー
・PowerBuilder IDE 上でデバッグ可能


今までのPowerServerは、Web化するにあたって、動きがことなってたり手間がかかっていましたが、

新しくなったPowerServerは、”ほぼPowerBuilder” なのです!

新しくなったPowerServerは、
このようなユーザー様におすすめです!

  • アプリの配布やバージョンアップが大変
    ・クライアントへのインストールは URL にアクセスするだけ
    ・DBドライバーのインストールも不要
    ・アプリ起動時にバージョンチェックし、自動で更新
  • セキュリティをより高めたい
    ・HTTPS 経由でデータアクセス (TLS 1.3 で暗号化が可能)
    ・SQL の実行はサーバー上で
    ・最新のセキュリティ (OAuth、JWT、AWS Cognito、Microsoft Entra ID (旧 Azure AD)
    等による認証の組み込みが可能)

PowerBuilder マイグレーションの流れ

1. オブジェクトの棚卸

物理構成の棚卸

PowerBuilderのマイグレーション実施前に、物理構成の棚卸を行います。
・未使用のPBLを削除
・重複オブジェクト(未使用)を削除


2 . PowerBuilder新バージョンへの移行

ソースコードの移行

PowerBuilder IDEにて、ソースコードの移行を行います。
(警告およびエラーが発生した場合、その対応を行います)
最新バージョンで非サポートになった関数、仕様変更となった関数の修正を行います。
※仕様変更となった関数で代替関数の用意が必要なとき、弊社にて関数提供をいたします。
※PowerBuilderの不具合による問題が生じた場合、別途ご相談させていただきます。


3 . Unicode対応

Ver9以前からマイグレーションする際の必須作業となります。

(1) 文字列操作関数の置換

DBなどの環境(文字コード)に合わせた関数の置換を行います。

(2) バイナリーデータのエンコード

バイナリーデータを扱う際、DBなどの環境(文字コード)に合わせたエンコーディングを行います。
(Blob型←→String型)

(3) 環境依存文字の入力抑止

Ver10からUnicode版となり、環境依存文字の入力が可能になりました。
DBなどの環境(文字コード)でUnicodeを扱わないアプリでは、DB登録など文字化けが生じるなど、正しい結果が得られません。
この問題を解消するために、環境依存文字の入力を抑止する仕組みを組込みます。

(4) カラムなどの入力フィールドの桁数制限

Ver10から入力フィールドの桁数が、バイト数から文字数に変更なりました。
この文字数の桁単位に起因する、DB登録時のオーバーフロー(DBエラー)を抑止する仕組みを組み入れます。
※(3)(4)については、ウインドウコントロールの先祖クラスを用意し、継承元の置換を行います。

4 . 基本動作試験(現新比較)

基本動作の確認

(1)基本動作の確認

画面遷移、データ入力と登録、表示、印刷等の操作を行い、新バージョンの動作に支障がないことを確認します。

(2) Unicode対応の確認

・環境依存文字の入力抑止が有効になっていることを確認します。
・カラムなどの入力フィールドの桁数制限が正しく動作していることを確認します。
※PowerBuilderの不具合による差異については別途ご相談させていただきます。
※動作に支障がある差異の報告、及び修正を行います。
※動作で気がついた箇所がある場合、特記事項として報告します。
※DBデータのエビデンスを残さない前提ですが、ご要望に応じて別途対応させていただきます。

5 . 改修、問題解決、提案事項

基本動作試験後の対応

(1) 差異の対応

差異があり、PowerBuilder不具合のために修正ができない課題の対応を行います。
(調査、代替手法の検討、実施確認、実施、評価)

(2) 特記事項

特記事項として残した課題について、調査検討を行い、実施可能の判断で対応を行います。

(3) 提案事項(機能追加)

・データウインドウ一覧の直感的なソート(タイトルをボタンに変換し、ボタン押下でそのカラムデータをソート、複数カラムの指定が可能)
・データウインドウ一覧の数値カラム下に、データバーを表示
・OLE Excelを用いた一覧出力機能(カラムのデータ型に合わせたセル書式の設定、フィルター機能付き)

※(3)の機能追加は、ウインドウコントロールの先祖クラスを用意し、継承元の置換を行います。
 Unicode対応がなされている場合には、そのクラスに機能を組込みます。

PowerBuilder マイグレーションに関する

お問い合わせはこちら