V9Plus 開発者のための

uniPaaS V1Plus
移行ガイド

Enabling Business with Superior Technology

本書に記載の内容は、将来予告なしに変更することがあります。これらの情報についてMSE (Magic
Software Enterprises Ltd.)および MSJ (Magic Software Japan K.K.) は、いかなる責任も負いません。
本書の内容につきましては、万全を期して作成していますが、万一誤りや不正確な記述があったとしても、MSE およびMSJ はいかなる責任、債務も負いません。
MSE およびMSJ は、この製品の商業価値や特定の用途に対する適合性の保証を含め、この製品に関する明示
的、あるいは黙示的な保証は一切していません。
本書に記載のソフトウェアは、製品の使用許諾契約書に記載の条件に同意をされたライセンス所有者に対してのみ供給されるものです。同ライセンスの許可する条件のもとでのみ、使用または複製することが許されます。当該ライセンスが特に許可している場合を除いては、いかなる媒体へも複製することはできません。
ライセンス所有者自身の個人使用目的で行う場合を除き、MSE またはMSJ の書面による事前の許可なしでは、
いかなる条件下でも、本書のいかなる部分も、電子的、機械的、撮影、録音、その他のいかなる手段によっても、コピー、検索システムへの記憶、電送を行うことはできません。
サードパーティ各社商標の引用は、MSE およびMSJ の製品に対する互換性に関しての情報提供のみを目的としてなされるものです。
本書において、説明のためにサンプルとして引用されている会社名、製品名、住所、人物は、特に断り書きのないかぎり、すべて架空のものであり、実在のものについて言及するものではありません。
一般に、会社名、製品名は各社の商標または登録商標です。
MSE およびMSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。
この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害 ( 営利損失、業務中断、業務情報の損失などの損害も含む ) に関し、事前に損害の可能性が勧告されていた場合であっても、MSE および MSJ 、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。

平成 21 年 10 月 6 日
マジックソフトウェア・ジャパン株式会社

目次
目次 ......................................................................................

3

1.

5

2.

3.

はじめに................................................................................
1.1.

本書の目的..........................................................................

5

1.2.

前提条件............................................................................

6

1.3.

本書で使う表記......................................................................

7

移行パス................................................................................

8

2.1.

V10 およびuniPaaS V1からの移行....................................................

8

2.2.

V10 以前のバージョンからの移行......................................................

8

2.3.

移行のための旧バージョン............................................................

9

V9Plusから移行時の留意事項..............................................................

11

3.1.

V9よりの関数の変更..................................................................

11

3.2.

サポートされなくなった機能..........................................................

11

3.2.1.

Web Online......................................................................

11

3.2.2.

HTMLフォーム....................................................................

12

3.2.3.

エディット コマンド ............................................................

12

3.2.4.

動作環境........................................................................

12

作業ディレクトリ....................................................................

12

3.3.

3.3.1.

作業ディレクトリの変更..........................................................

12

3.3.2.

既定義の論理名..................................................................

13

3.3.3.

コンポーネントの場合............................................................

13

RM互換ロジックユニット..............................................................

13

3.4.

3.4.1.

RM互換ハンドラの作成............................................................

13

3.4.2.

参照 コマンド ..................................................................

14

3.4.3.

データビューとの同期............................................................

14

3.4.4.

TAB 順序........................................................................

14

3.4.5.

行間の移動......................................................................

14

3.4.6.

コマンドの定義..................................................................

15

3.4.7.

RM互換ロジックユニットの実行時動作..............................................

16

3.5.

コマンドの種類......................................................................

16

3.6.

ファントムタスク....................................................................

19

3.6.1.

Ver 9.40J SP3 での機能拡張とは？................................................

19

3.6.2.

機能拡張の波及と対応方法........................................................

19

TAB 順序............................................................................

20

3.7.

3.7.1.

自動／手動 TAB 順序の設定........................................................

20

3.7.2.

手動 TAB 順序....................................................................

20

3.7.3.

自動 TAB 順序....................................................................

21

3.7.4.

TAB 順序の表示..................................................................

21

3.8.
4.

GUI 特性の パーク カテゴリ..........................................................

22

V9Plusでのリポジトリ出力................................................................

23

4.1.

リポジトリ出力時の注意事項..........................................................

23

4.2.

リポジトリ出力ファイルの確認........................................................

23

移行ユーティリティの処理プロセス........................................................

25

5.

5.1.

移行処理の内容......................................................................

25

5.2.

ユーザ定義イベントの強制終了パラメータ..............................................

26

5.3.

パーキング関係の設定................................................................

27

5.4.

照会リンクの移行....................................................................

28

5.5.

V9Plusコンバータのパラメータ........................................................

30

5.6.

ログファイル........................................................................

30

GUI エンハンサ..........................................................................

33

6.

6.1.

GUI エンハンサとは？................................................................

33

6.2.

GUI エンハンサの利用方法............................................................

34

INI 変換ユーティリティ..................................................................

36

7.

7.1.

INI 変換ユーティリティとは？........................................................

36

7.2.

INI 変換ユーティリティの使い方......................................................

37

権利設定とセキュリティファイル..........................................................

38

8.

8.1.

権利設定の変更......................................................................

38

8.2.

セキュリティファイル................................................................

38

ビルダデータコンバータ..................................................................

40

10. dbMAGIC V8.2 からの移行................................................................

41

10.1. V9Plus での色 / フォントテーブル変換は不要..........................................

41

10.2.

テーブルのタイトルが消える........................................................

42

トラブルシューティング................................................................

44

9.

11.

1. はじめにMagic uniPaaS V1Plus をお使いいただきまして、ありがとうございます。Magic uniPaaS V1Plus は、高い生産性と保守性を誇る Magic パラダイムの歴史の上に、最新のテクノロジを融合して、マルチプ
ラットフォーム、マルチ DBMS、マルチパラダイムの高度な RADD (Rapid Application Development
and Deployment)/複合アプリケーション (Composite Application)開発ツールです。
Magic 製品により実現されるシステム形態は、スタンドアロンの小規模なものから大規模なクライアン
トサーバのオンラインシステム、およびサーバベースの Web アプリケーション、XML や Web サービス、
J2EE 対応アプリケーション(サーバ、クライアント共)、リッチクライアント (RIA、Rich Internet
Application)など、非常に広範囲にわたります。
本書では、すでに Magic eBusiness Platform V9Plus をご利用されている Magic 開発者を対象に、Magic uniPaaS V1Plus での新機能をフォーカスして解説するものです。
本書は、V9Plus から uniPaaS V1Plus へ移行しようとする読者を対象に書かれています。
V10 や uniPaaS V1 (Ver 1.5)から uniPaaS V1Plus への移行は、リポジトリ出力・入力により非常にスムースに行うことができますので、本書では必要最小限の事項のみに限って説明しています。
Magic uniPaaS V1Plus の新機能は多岐にわたるので、本書の限られた範囲では基本的な機能紹介だけを行っています。より詳細な機能については、リファレンスマニュアル、開発者ガイド、添付サンプ
ルアプリケーション、弊社ホームページ (http://www.magicsoftware.co.jp) の技術情報などを参照
されることをお勧めいたします。

1.1. 本書の目的
uniPaaS V1Plus では、多様な先進機能を実現すると同時に、過去のバージョンとの互換性維持にも努めた結果、V9 から uniPaaS V1Plus への移行はたいへん容易に行うことができるようになっています。
本書では、V10 以前の Magic バージョンから uniPaaS V1Plus へ移行する場合の移行パス、注意点、移行手順などについて説明します。
本章の内容の詳細については、リファレンスマニュアルの以下の箇所を参考にしてください
uniPaaS V1Plus へのマイグレーショ マイグレーション の章
ンの詳細
RM 互換レベルロジックエディタ → ロジックユニット → RM 互換

作業ディレクトリ

プロジェクトとアプリケーション → プロジェクト開発 → プ
ロジェクトディレクトリの取得
プロジェクトとアプリケーション → アプリケーション実行

権利設定

認証システム → 実行/APG 権利

内部イベント(アクション)

Magic エンジン → エンジン実行レベル → イベントレベル →イベント一覧

1章 はじめに5

1.2. 前提条件
本書の読者は、次のような前提条件を満たしていることが必要です。
PC に関する基礎知識 ●●●Magic 開発に関する
知識

1.
2.

3.

テキストファイル、HTML ファイルを参照・作成するためのエディタの使い方を知っている。
インストーラを使ってプログラムをインストール・アンインストールすることができる。
Windows XP の環境についての基本的な知識を持っている。
Magic V9Plus を使って 6 ヶ月以上の経験がある。
以下の話題について基本的な知識がある。
● データベース● Web サービス
● XML
次の言葉を良く理解している。
● DLL● Unicode● 関数● Windows コントロール● 並行実行● コンテキスト● イベント● デバッガ● ブレークポイント● バージョン管理● Java

データベースに関する知識

次のような、データベースに関する基本的な知識がある。
● データベース● テーブル● 行/レコード● フィールド/カラム● インデックス● Datetime● ストアド プロシージャ

Web サービスに関する知識

次のような Web サービスに関する言葉を理解している。
● UDDI● WSDL● RPC/ドキュメント形式

XML に関する知識

次のような XML に関する言葉を理解している。
● XSD (スキーマ)● 要素● 複合要素● 名前空間1章 はじめに6

1.3. 本書で使う表記
本書では、次のようなアイコンを使っています。

参考： 補足的な説明を簡単に記述します。

操作： Magic を実際に操作する手順を説明します。

TIPS: 知っておくと便利な豆知識を紹介します。

注意： おちいりやすい落とし穴、間違えやすい事柄などを示します。

V9Plus との比較： V9Plus との差異点を対照して説明します。

1章 はじめに7

2. 移行パス
移行の手順は、もとのアプリケーションのバージョンにより、以下のように異なります。
●●●

V10 あるいは uniPaaS V1 (Ver 1.5SP1x) のアプリケーション
V9Plus で、Ver 9.4SP6a あるいはそれ以降のバージョンのアプリケーション
V9Plus Ver 9.4SP6a より以前のバージョンのアプリケーション

以下に、それぞれについて説明いたします。

2.1. V10および uniPaaS V1からの移行
V10 および uniPaaS V1 から uniPaaS V1Plus への移行は、もとのバージョンの Studio でプロジェクト
をリポジトリ出力し、uniPaaS Studio V1Plus でリポジトリ入力することにより行います。

V10/uniPaaS V1からuniPaaS V1Plusへの移行
Magic Stud io V10/
uniPaaS Stud io V1
プロジェクトuniPaaS Studio V1P lus
リポジトリ入出力

uniPaaS V1P lus
プロジェクトMagic Studio V10 /uniPaaS Studio V1
リポジトリ入出力

V10/uniPaaS V1
リポジトリ出力形式

V10/uniPaaS V1 からの移行時、新機能の追加や、細かな動作変更などにより、完全に以前のバージョンと同じ動作でない場合があります。詳細については、README などにより確認
してください。
V10 および uniPaaS V1 からの移行は通常スムーズに行くので、本書ではこれ以上の詳細については省
略します。

2.2. V10以前のバージョンからの移行
uniPaaS V1Plus のプロジェクトは XML をベースとするソース形式ファイルなので、uniPaaS V1Plus への移行は、過去のバージョンのリポジトリ出力形式ファイルを、uniPaaS V1Plus 添付の V9Plus コン
2章 移行パス8

バータにより、uniPaaS V1Plus のプロジェクト形式に変換することにより行います。
ここで注意が必要なのは、V9Plus コンバータは、Ver 9.4SP6a およびそれ以降のリポジトリ出力形式
ファイルのみを入力とすることができることです。このため、次に示すように、移行前の MCF のバー
ジョンにより、移行手順が異なります。

Ver9.4SP6a以前のバージョンからuniPaaSへの移行

V9P lus
コンバータ（uniPaaS V1添付）① V9P lus
(V9.4SP6b)② V9 ～ V9P lus MCF(V9.01 ～ V9.4SP3c)③ V8.2MCF④ 旧バージョンMCF(V7.1以前）

V9P lus 開発版(V9.4SP6a)
リポジトリ入出力

各々のバージョンの開発版でリポジトリ入出力

V8.2 開発版でリポジトリ入出力

各々のバージョンの開発版でリポジトリ入出力

V9P lus(V9.4SP6a)
リポジトリ出力形式

各バージョン
リポジトリ出力形式

各バージョン
リポジトリ出力形式

uniPaaS V1
プロジェクトケース

移行前のバージョン

手順

上図 ①

V9.4SP6aおよびそれ以降

1.
2.

V9Plus Ver 9.40J SP6a 以降で、アプリケーション全体
をリポジトリ出力します。
その後、uniPaaS V1Plus 製品に添付の V9Plus コンバータ
プログラムを用いて、uniPaaS V1Plus 形式のプロジェク
トに変換します。

上図 ②
又は ③

V8.2 ～ V 9.40J SP3c

いったん V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。

上図 ④V4 ～ V7

まず V8.2 に移行し、更に V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。

2.3. 移行のための旧バージョン
上記のように、V9Plus Ver9.4SP6a より以前のバージョンから uniPaaS V1Plus にアプリケーションを移行するには、V9Plus Ver9.4SP6a、あるいは、V8.2 が必要となります。Magic uniPaaS V1Plus 製
品には、開発者の移行の便のために、V9Plus Ver9.4SP6a および V8.2K4SP2 の簡易版が同梱されています。

2章 移行パス9注意： これらのバージョンは、移行目的のためだけに提供されますので、次のような制限があります。


基本的に、リポジトリ入力と出力を行うためにだけ利用します。
開発・実行機能も利用できますが、移行の確認と最小限必要な修正のためにだけ利用してください。アプリケーション単純移行の目的を超える、新しいアプリケーション開発や新しい機能の追加のために利用することは認められていません。
Web 機能実行のためのモジュール類 (MRB、リクエスタ、ブラウザクライアントモジュール等)のインストール・設定は行われません。
実運用環境で利用することは認められません。
使用権は、ご購入になった uniPaaS Studio V1 製品に準ずるものとし、特定の PC1 台にのみインストール可能です。

2章 移行パス10

3. V9Plusから移行時の留意事項
uniPaaS V1Plus への移行を容易にするため、V9Plus の開発版で、アプリケーションを見直しておきましょう。本章では、V9Plus アプリケーションを uniPaaS V1Plus に移行する場合に考慮すべき事項について、主要なものを説明します。

3.1. V9よりの関数の変更サポートされなくなった関数： 以下の関数は、uniPaaS V1 ではサポートされなくなりました。V9Plus で予め削除しておくか、あるいは別の方法に変更してください。
DSTR3

ISTR

EVAL

TSTR3

EuroCnv

DVAL3

IVAL

RVAL

TVAL3

EuroDel

ESTR

LSTR

RSTR

VAL3

EuroGet

FLOW3

LVAL

STR3

Pref

EuroSetEuroUpd関数名の変更： 以下の関数は、uniPaaS V1 で名前が変わりました。

V9Plus での名前

uniPaaS V1 での名前

V9Plus での名前

uniPaaS V1 での名前

IOCopy

FileCopy

ASC

ASCIIVal

IODel

FileDelete

CHR

ASCIIChr

IOExistFileExist

MaxMagic

WinMaximize

IORen

FileRename

MinMagic

WinMinimize

IOSizeFileSize

ResMagic

WinRestore

CtrlName

LastClicked

MTblSet1

MTblSet

名前の変更された関数は、V9Plus コンバータ(V9Plus よりのマイグレーションユーティリ
ティ)が自動的に改名します。V9Plus コンバータについては、第 5 章「移行ユーティリ
ティの処理プロセス」で説明します。

3.2. サポートされなくなった機能
uniPaaS V1Plus でサポートされなくなった以下のような機能については、V9Plus で予め削除しておく
か、あるいは別の方法に変更しておくことをお勧めします。

3.2.1. Web Online
uniPaaS V1Plus では、Web Online の機能はサポートされなくなりました。V9Plus コンバータは、
WebOnline 関係のフォームはすべて削除します。従って、このフォームを参照している データ出力 コ
3章 V9Plusから移行時の留意事項

11

マンドはシンタックスエラー となります。

3.2.2. HTMLフォーム
uniPaaS V1Plus では、インターフェースタイプが HTML のフォームをサポートしなくなりました。
V9Plus コンバータは、HTML フォームを削除し、HTML フォームを参照しているデータ出力コマンドでは、
フォーム番号が 0 となります。
これに関連して、以下のような変更がなされています。
 項目やモデルで、スタイル セクション中の HTML 形式 特性が削除されています。
 モデルリポジトリでは、HTML 形式 のクラスが削除されています。
 アプリケーション特性では、インターネット開発ファイルルート 特性が削除されています。
 APG では、インターネット オプションが削除されています。
 HTML マージ形式 は、単に マージ形式 と改名しました。

3.2.3. エディット コマンド
エディット コマンドはサポートされなくなりました。V9Plus コンバータは、エディット コマンドをOS コマンド タイプの 外部コール コマンドに変更します。

3.2.4. 動作環境
動作環境テーブルに関しては、次のような変更があります。
 マルチユーザ アクセス (マルチユーザ(M) タブ) は削除されました。uniPaaS V1Plus では常にマルチユーザアクセス ＝ Yes の動作をします。
 Euro 関係の機能が削除されたことに伴い、通貨変換ファイル (外部参照(E) タブ) が削除されました。また、CTL 特性の 基準通貨 および 通貨変換ファイル 特性が削除されました。
 Java のブラウザクライアント アプレットはサポートされなくなったので、アプリケーション
サーバ (N) タブのブラウザクライアント方式 パラメータが削除されました。

3.3. 作業ディレクトリ
3.3.1. 作業ディレクトリの変更
uniPaaS V1Plus では、実行時の作業ディレクトリが V9Plus と異なりますので、注意が必要です。
V9Plus では、アプリケーション実行時の作業ディレクトリは、実行エンジン mgrntw.exe を起動した
ときの作業ディレクトリでした。起動時作業ディレクトリはショートカットのプロパティなどで設定することができます。
uniPaaS V1Plus では、プロジェクトファイル (.edp ファイル)、あるいはキャビネットファイル(.ecf
ファイル)のあるフォルダが作業フォルダとなります。(プロジェクト/キャビネットファイルオープン
時に変更されます)。
この変更のため、相対パスを指定して IO ファイルや Pervasive テーブルをオープンする場合には、異なる場所を参照するようになる可能性があるので注意が必要です。一般的に言って、ファイル名を指定する場合、プログラムの中では論理名を使い、論理名テーブル上では絶対パスで定義するのが一番トラブルが少ないといえます。
同様のことが、MAGIC.INI ファイル中の他の設定についても言えます。

3章 V9Plusから移行時の留意事項

12

3.3.2. 既定義の論理名
uniPaaS V1Plus では、Magic をインストールしたディレクトリと、現在の作業ディレクトリを示す論
理名がエンジンで定義されています。
論理名

対応する実行名

EngineDir

uniPaaS の実行エンジン uniRTE.exe が存在するディレクトリ名。

WorkingDir

作業ディレクトリ名。

これらの論理名は、Magic のエンジンで自動的に定義されるので、論理名テーブルで定義する必要はありません。論理名テーブルで定義したとしても無視されます。

3.3.3. コンポーネントの場合
複数のコンポーネントからなるアプリケーションの場合、作業ディレクトリは一番最初にオープンされたキャビネットファイルの存在するディレクトリとなります。これは、コンポーネント中のテーブ
ルやプログラムが呼び出され実行されている場合にも変わることはありません。
このため、コンポーネントとして使われている場合には、「キャビネットファイルの存在するディレクトリが、作業ディレクトリになる」という仮定は成り立たなくなります。キャビネットファイルを基準として相対パスでファイル名を指定している場合には、単体のテストでは正しく動くが、コン
ポーネントとした場合に間違った場所を参照する、ということになってしまいますので、注意してください。

3.4. RM互換ロジックユニット
V9Plus のレコードメインには、データビューの定義とともにロジックを設定することができましたが、uniPaaS V1Plus ではレコードメインがなくなり、データビューの定義はデータビュー エディタで、ロジックの記述はロジックエディタで行うようになりました。
V9Plus でレコードメインにロジックを記述していた場合には、V9Plus コンバータは、レコードメイン
互換 (RM 互換)という特殊なハンドラをロジックエディタに作成します。

3.4.1. RM互換ハンドラの作成
V9Plusよりの移行
V9Plus コンバータは、V9Plus のアプリケーションを変換中に、レコードメインにロジックの書かれたプログラムがあると、uniPaaS V1Plus で RM 互換ハンドラを生成します。レコードメインにロジックのないプログラムには、RM 互換ハンドラを作成しません。
バッチタスクやブラウザクライアントタスクには、もともとレコードメインにロジックを書くことができないので、uniPaaS V1Plus に変換する際にも RM 互換ハンドラが作成されることはありません。

セレクトコマンドの条件式
V9Plus で、セレクトコマンドに設定されている 条件 は、カーソルのパーキングを制御しますが、
uniPaaS V1Plus に変換されたプログラムでは、対応するコントロールの パーキング 関係の特性に反映されます。

3章 V9Plusから移行時の留意事項

13パーキングについての詳細は、5.3 パーキング関係の設定 を参照してください。

3.4.2. 参照 コマンド
V9Plus では、レコードメインでデータ項目の定義にセレクトコマンドを使い、ロジックをその間に記述することができました。
uniPaaS V1Plus での RM 互換ハンドラでは、セレクト コマンドの変わりに、データビュー エディタで定義された項目を参照する 参照 コマンドが使われます。
V9Plus でレコードメインに定義してあったロジック (コールコマンド、エラーコマンド、項目更新コ
マンドなど)は、uniPaaS V1Plus の RM 互換ハンドラでは、参照コマンドの間に挿入されます。

3.4.3. データビューとの同期
参照 コマンドは、データビューでの定義と自動的に同期し、開発者が 参照 コマンドを追加・削除・修正することはできません。
また、次のような性質があります。
 データビューでの項目定義に従って自動的に作成・削除されます。
 定義内容(データ型、書式、名前など)は、表示専用です。
 順序もデータビューでの順序に従ったものです。
 データビューでの項目定義が追加・削除・変更、あるいは順序の変更がされると、参照 もそれに従って自動的に追加・削除・変更されます。

3.4.4. TAB順序
RM 互換 ハンドラがあるタスクでは、V9Plus での TAB 順序と同じ動作をさせるため、TAB 順序について
は、次のようになります。
 自動 TAB 順序は無効化されます。
 コントロールの TAB 順序 特性は無効化されます。
 TAB 順序は、項目がデータビューで定義されている順序になります。

3.4.5. 行間の移動
データビュー エディタと、ロジック エディタの RM 互換レベルの相互参照関係は、マウスクリックで簡単に移動することができます。

3章 V9Plusから移行時の留意事項

14

RM 互換レベルの 参照 コマンドから、対応するデータビュー定義に移動するには・・・

1.
2.
3.

RM 互換レベルの 参照 コマンドにカーソルを起きます。
右クリックでコンテキストメニューを開き、定義に移動 を選択します。
データビュー エディタに移り、対応する項目定義の行にカーソルが移動します。

逆に、データビュー エディタ上での 項目定義の行から、対応する RM 互換 ハンドラの 参照 コマンドに移動するには ・・・
1. データビュー エディタで、項目を定義するコマンド (C=カラム、V=変数、P=パラメータ) にカーソルを置きます。
2. 右クリックでコンテキストメニューを開き、 参照に移動 を選択します。
3. ロジックエディタに移動し、対応する 参照 コマンドの行にカーソルが移動します。

定義に移動、参照に移動 は、メニュー 編集(E) → クイックアクセス(Q) のサブメニュー
からも選択することができます。

3.4.6. コマンドの定義
V9Plus のレコードメイン中のロジックは、uniPaaS V1Plusの RM 互換ハンドラに移行されます。

ただし、すべてのオペレーショ
ンが RM 互換 ハンドラ中で定義できるわけではありません。以下のような制限に留意してください。
 ブロック コマンドの While オプション (V9Plus の Loop オプション) は利用できません。
 変数 宣言 (V9Plus のセレクト 変数 コマンド) は利用できません。
 エラー コマンドの R=復帰 オプションは利用できません。
3章 V9Plusから移行時の留意事項

15

また、他のハンドラ中のコマンドと違い、RM 互換ハンドラのコマンドには次のようにフローモード とフロー方向 のパラメータがあります。 これらは、V9Plus でのフローの設定と同じ意味です。
フローモード：
●
S=通常
●
F=高速
●
C=両用
●
B=前置
●
A=後置

フロー方向：
●
F=前方
●
B=広報
●
C=両方向

3.4.7. RM互換ロジックユニットの実行時動作
RM 互換ハンドラは、V9Plus におけるレコードメインのように動作します。すなわち、カーソルがコン
トロールから別のコントロールに移動するときには、RM 互換ハンドラ中の対応する 参照 コマンドの間に定義されたロジックが、条件やフロー定義に従って実行されます。
参照 コマンドは ブロック コマンドで囲んで条件付けすることもできます。この場合には、カーソル
は、コントロール特性の パーキング 関係の設定と、ブロックコマンドの条件とをあわせた条件に従って、パーキングの可・不可が決定されます。

3.5. コマンドの種類
uniPaaS V1 のコマンドは、V9Plus と基本的に同じですが、概念的に整理されています。
V9Plus 以前のコマンド

uniPaaS V1 のコマンド

補足

コメント

コメント

変更なし

項目更新

項目更新

変更なし

コール (プログラム、サブタスク、
式、公開名、リモート)コール

uniPaaS V1 のコールコマンドは、
Magic プログラムを呼び出す場合に使う

コール (UDP, Web サービス、COM)、
OS コマンド

外部コール

Magic 以外のものを呼び出す場合に
使う。

アクション

アクション

変更なし

ブロック、
ブロック終了ブロック

V9Plus 以前の ブロック終了 は、ブロック の End タイプとなった。

エラー

エラー

変更なし

データ入力、データ出力

フォーム

フォーム コマンドのタイプとして、入力、出力 を指定するようになった

3章 V9Plusから移行時の留意事項

16

イベント実行イベント実行

変更なし

セレクト 変数項目

イベントハンドラ、項目変更ハンド
ラで、パラメータやローカル変数を定義する場合に用いる。

セレクト (カラム、変数、パラメー
タ)(データビュー)データビュー エディタで、カラム、
変数、パラメータとして定義する。

リンク(データビュー)データビュー エディタで、リンクコ
マンドとして定義する。

エディット(対応なし)

廃止

コール と 外部コール コマンド
uniPaaS V1 では、コール と 外部コール という 2 種類のコマンドがあります。
●

コール コマンドは、他の Magic プログラムを呼び出す場合に使います。コール コマンドのタイプとしては、以下のものがあります。

P=プログラム

同一プロジェクト、あるいはコンポーネント中の他のプログラムを呼び出します。

S=サブタスク

自分の下に定義されているサブタスクを呼び出
します。

E=式

プログラム番号を数値型で指定してプログラムを呼び出します。

N=公開名

コンポーネントリポジトリに定義されていない
コンポーネントを、プロジェクトファイル名とプログラムの公開名を直接指定することにより、呼び出します。

R=リモート

リモートマシン上で動作している、Magic アプリ
ケーションサーバ上のプログラムを、MRB のサー
ビス名とプログラムの公開名を指定することにより呼び出します。

3章 V9Plusから移行時の留意事項

17

外部コール コマンドは、Magic 以外のモジュールを呼び出す場
合に使います。これには、以下のものが該当します。

COM

COM モジュールを呼び出します。ActiveX 型の変数と、メソッド名を指定します。(リッチクライアントタスクでは利用できません)

OS コマンドOS レベルで実行する実行可能モジュール(EXE や BAT ファイル) を実行します。

UDP

DLL として定義された外部ユーザ定義関数を実行します。DLL のファイル名と、公開されている関数名を指定します。

Web サービス

Web サービスとして公開されているサービスを呼び出します。Web サービスのインフラとして、Systinet を使います。

Web サービスライト

Web サービスのインフラとして、Easycom を使
います。

.NET

.NET のスクリプトを実行します。(リッチクライアントタスクでだけ利用できます。)

ブロック コマンド
ブロックコマンドは基本的に V9Plus と同じですが、細かな変更があ
ります。
●
●

V9Plus の ブロック ループ は、ブロック While と名前が変わりました。
V9Plus の ブロック終了 コマンドは、ブロック End となりました。

フォーム コマンド
V9Plus の データ入力とデータ出力コマンドは、uniPaaS V1 では
フォーム という一つのコマンドになりました。フォーム コマンドのタイプとして、入力 か 出力 かを指定するようになっています。

V9Plus の セレクト コマンド
V9Plus の セレクト コマンドは、いくつかの機能を持っていましたが、uniPaaS V1 では次のように整理されています。

3章 V9Plusから移行時の留意事項

18

V9Plus のセレクトコマンドの機能

uniPaaS V1
利用場所

方法

レコードメインで、実項目、変数 データビュー 画面
項目、パラメータ項目を定義する

C=カラム、V=変数、P=パラメー
タ 行として定義する。

イベントハンドラ内で、イベント ロジック エディタの、イベンのパラメータ、あるいはハンドラ トハンドラ
内でのみ用いる変数項目を定義する。

項目 コマンドとして定義する。

(uniPaaS V1 新機能)

項目 コマンドとして、パラメー
タなどを定義する。

項目変更 ハンドラ

3.6. ファントムタスク
ファントムタスクとは、タスク特性の「ウィンドウのクローズ」を No に設定して、タスクが終了した後も画面が表示され続けるタスクです。オンラインの 1:N のタスクでよく使われる手法です。
Ver 9.40J SP3 において、Magic のイベントドリブンアーキテクチャとの親和性を向上させるため、マウスによるタスク間のフォーカスの移動方法が拡張されました。この機能拡張は uniPaaS V1Plus でも有効です。
その結果、Ver 9.40J SP3 よりも古いバージョンからアプリケーションを uniPaaS V1Plus に移行する
場合、この機能拡張の影響を検討し、必要ならばプログラムの修正が必要になります。

3.6.1. Ver 9.40J SP3での機能拡張とは？
Ver 9.40J SP3 より以前のバージョンでは、マウスクリックによりファントムタスクにフォーカスを移動するには、レコードメインにファントムタスクの呼び出しのためのコールコマンドが定義されている必要がありました。この場合、親タスクにカーソルがある状態でファントムタスク(子タスク)をクリックすると、現在止まっているカーソルに対応する項目のセレクトコマンドから、そのコールコマ
ンドまでの間のコマンドが高速モードで実行され、コールコマンドが実行されて子タスクに制御が移ります。
Ver 9.40J SP3 からは、レコードメインだけでなく、他のハンドラレベル(コントロール前処理/後処理、
イベントハンドラなど)にコールコマンドが定義されている場合でも、ファントムタスク呼び出しのために使われるようになりました。この場合、親タスクにカーソルがある状態でファントムタスク(子タスク)をマウスでクリックすると、親タスクの1. レコードメイン
2. 有効なイベントハンドラ(下から上に向けて)の順に、ファントムタスク呼び出しのコールコマンドがあるかを検索します。見つかったら、現在
フォーカスのある項目から、そのコールコマンドまでの間に定義されているコマンドは、当該イベン
トハンドラ中で定義されているものも含め、実行されるようになります。

3.6.2. 機能拡張の波及と対応方法
この機能拡張の波及効果として、Ver 9.40J SP1a およびそれ以前の旧バージョンから移行を行うと、プログラムの構造によっては、この機能拡張によって、ファントムタスクにカーソルが移動してほしくないときに移動してしまう、という現象が起こる可能性があります。
このような場合には、次のようにファントムタスクを呼び出すコールコマンドに条件付けを行い、不要なときにコールコマンドが実行されないように、プログラムを修正してください。
● コントロール後処理でファントムタスクを呼び出している場合、コールコマンドに Level(0) ='CS_コントロール名' というような条件を付けてください。
3章 V9Plusから移行時の留意事項

19●

プッシュボタンのイベントハンドラでファントムタスクを呼び出している場合には、
LastClicked ()='ボタンのコントロール名' という条件を付けてください。

3.7. TAB順序V9Plus までは、オンラインフォーム上のカーソルの TAB 順序(移動順序)は、レコードメインでのセレ
クトコマンドの順番に従っていました。
uniPaaS V1 では、データビューエディタでの項目の定義順序と、オンラインフォーム上での TAB 順序とは関係がなくなり、次のいずれかの方法により TAB 順序が決められます。
 手動 TAB 順序
 自動 TAB 順序

3.7.1. 自動／手動TAB順序の設定
自動タブ/手動タブは、フォームエディタを開いて、描画(R) → 表示順(O) → 自動 TAB 順序(B) メ
ニュー、あるいは コマンド パレットの 自動 TAB 順序 ボタンによりトグルさせることができます。

3.7.2. 手動TAB順序
手動タブ順序では、コントロール特性として TAB 順序 という数値型の特性があり、ここに設定されている値が小さいものから大きなものへ、カーソルが移動していきます。

手動タブ順序のモードでは、TAB 順序 特性を開発者が設定できます。TAB 順序の値を開発者が変更した場合には、Magic は他のコントロールの TAB 順序を自動的に裁番しなおします。
3章 V9Plusから移行時の留意事項

20

TAB 順序 特性の値は、式で設定することもできます。式で設定した場合には、すべてのコントロールの式が評価され、ソートされ、値の小さい順に TAB 順序が決まります。

3.7.3. 自動TAB順序
自動タブ順序では、フォーム上のコントロールを、次の順序で移動します。
1. 画面上で上にあるコントロールから、下にあるコントロールへ。
2. 水平位置が同じ複数のコントロールがある場合には、左から右へ。
これは通常の場合、画面操作上、もっとも自然なカーソルの動きとなります。

3.7.4. TAB順序の表示
TAB 順序は、 描画(R) → 表示順(O) → TAB 順序表示(S) メニュー、あるいは コマンド パレットのTAB 順序表示 ボタンで表示させることができます。

3章 V9Plusから移行時の留意事項

21

3.8. GUI特性の パーク カテゴリ
GUI コントロールには、パーク というカテゴリが新たに設定されました。

ここには、次のようなコントロール特性があります。
特性

説明

モデルリポジトリにあるか？

TAB 順序手動 TAB 順序の場合、カーソルの移動する順序を数値で設 なし定します。実行時には、値の小さい順にカーソルが移動します。
自動 TAB 順序の場合には、無効化され、開発者は設定できません。この場合には、値として、自動的に生成されたTAB 順序の値が設定されます。

パーキング可 カーソルがこのコントロールにパークすることができるか ありを設定します。
Yes の場合には、パーク可能です。No の場合には、TAB
キー、マウスクリックに関わらず、パークすることはできません。
TAB で移動

TAB キーによりカーソルを動かす場合に、カーソルがこの ありコントロールにパークするかを設定します。
Yes の場合には、パークします。No の場合にはパークしません。
いずれの場合にも、ユーザはマウスクリックによってカーソルをパークさせることは可能です。

TAB 移動方向

TAB キーによりカーソルを動かす場合、カーソルの動く方 あり
向によりパークの可否を設定した場合に設定します。
F=前方のみ の場合には、順方向で動くときのみパークします。
C=後方のみ の場合には、逆方向で動くときのみパークします。
B=両方向 の場合(デフォルト)には、いずれの場合もパークします。

3章 V9Plusから移行時の留意事項

22

4. V9Plusでのリポジトリ出力
準備作業が終わったら、V9Plus でアプリケーションをリポジトリ出力します。

4.1. リポジトリ出力時の注意事項
重要： リポジトリ出力に際しては、以下の項目が必須となりますので、必ず確認してください。
V9Plus のバージョンは、9.4S6a あ
るいはそれ以上であること。
 それより以前のバージョンでリ
ポジトリ出力をしたものは、
V9Plus コンバータで受け付けません。
 V9Plus のバージョンは、ヘルプ→ Magic 情報 メニューで確認することができます。



CONST ファイルとして、mgconstw.jp2を使っていること。
 使用している CONST ファイルは、設定 → 動作環境 メニューで 外部参
照 タブを開くと確認できます。
 CONST ファイルの設定を変更した後は、Magic をいったん終了して再起動してください。
 これ以外の CONST ファイルを利用している場合には、アプリケーションで使っているアクション名が正しく変換されない場合があります。

4.2. リポジトリ出力ファイルの確認
リポジトリ出力ファイルがすでにある場合、上の注意事項に従ってリポジトリ出力がなされたかどうか確認したい場合には、次の点をチェックしましょう。

Magicバージョンの確認
リポジトリ出力をした Magic のバージョンは、リポジトリ出力
ファイルの先頭に記録されます。右図にあるように、キーワード
VRSN= の値が 940.06 以上であれば OK です。それ以下の場合には、V9Plus Ver 9.4SP6a 以降のバージョンで、リポジトリ入力・出力が必要です。

4章 V9Plusでのリポジトリ出力

VRSN=940.06
APPLICATION=Y
MODEL=YTABLE=Y
PROGRAM=Y
MAIN_PROGRAM=Y

23

CONSTファイルの確認
リポジトリ出力時に使った CONST ファイルが何であったかは、アクション名を調べてチェックすることができます。リポジトリ出力ファイルをテキストエディタなどで開き、「’ACT」 をキーワードとして文字列検索してみてください。アクションを使っているアプリケーションならば、いくつかヒッ
トすると思います。例えば、以下のように使われているでしょう。
EXP="1",
EXP="KbGet (1)='終了'ACT OR KbGet (1)='ｷｬﾝｾﾙ(C)'ACT",
EXP="Flow ('C')",
ここで出力される ACT のリテラル名は、CONST により違っています。以下にいくつかの代表的なアクションを示します。
mgconstw.jp2 の場合(正しい)

mgconstw.jpn の場合(正しくない)mgconst.eng の場合(正しくない)'終了'ACT'E:終了'ACT'Exit'ACT'ｷｬﾝｾﾙ(C)'ACT'C:取消'ACT'Cancel'ACT'クローズ(C)'ACT'C:クローズ'ACT'Close'ACT'次項目'ACT'次項目'ACT'Next Field'ACT'ズーム(Z)'ACT'ズーム'ACT'Zoom'ACT

アクション名をチェックして、正しく mgconstw.jp2 で出力されているかを確認してください。

4章 V9Plusでのリポジトリ出力

24

5. 移行ユーティリティの処理プロセス
前節の内容に従って、V9Plus でアプリケーションの修正を行った後、リポジトリ出力を行います。その後、uniPaaS V1Plus が提供する V9Plus コンバータにより、uniPaaS V1Plus が読み込めるプロ
ジェクトファイルを作成します。

5.1. 移行処理の内容
ここでは、V9Plus コンバータが実行する処理を簡単に説明します。
項目

説明

タスクレイヤーDB テーブル

メインテーブルとデータリンクの定義などは、データビューエディタに移動します。
タスクのロジック部分は、ロジックエディタに移動します。
タスクのフォームは、フォームエディタにまとめます。

DB テーブルでの追加テーブルは、データビュー エディタの 宣言 コマンドに移動されます。

タスク/レコー V9Plus のレコード前処理、後処理、タスク前処理・後処理は、ロジック エディタ
ドレベルのハン の、それぞれ対応するハンドラに配置されます。
ドラ
レコードメイン V9Plus でレコードメインで定義されていたロジックは、ロジックエディタの RM 互
中のロジック換 レベルに移動させられます。
コマンド

V9Plus のコマンドは uniPaaS V1Plus のコマンドと 1 対 1 に対応していません。コ
マンド体系の違いについては、3.5「コマンドの種類」 を参照してください。

リンク照会 の確認 オプション

リンク照会 では、リンクが失敗した場合にエラーメッセージを出す 確認 オプ
ションがありましたが、uniPaaS V1Plus ではこの機能はサポートされていません。
V9Plus コンバータは、確認 が Yes のリンク照会 コマンドを、リンク照会 コマン
ドと エラー コマンドとに分けます。

コントロール変 V9Plus でのコントロール変更は、uniPaaS V1Plus では項目 変更 ハンドラに置き更ハンドラ
換えられます。
もし同一のコントロールに対してコントロール変更ハンドラが定義されており、異なる条件付けがされている場合には、同等の動作を行うように変換します。
もし同一の項目が異なるフォームに配置されており、それぞれのコントロールにそれぞれのコントロール変更ハンドラが定義されていた場合には、MainDisplay() 関
数(V10 からの新関数)により条件付けがされます。
コントロールでの変更以外の変更によるハンドラの実行を防止するため、ハンドラの内容はブロックコマンドを使い、「変更理由 パラメータ = 0」という条件付けがされます。
強制終了＝レ
コード のイベ
ント

ユーザ定義イベントで、強制終了 パラメータが レコード となっていたイベント
は、レコード更新前 に変更されます。強制終了 パラメータについては、5.2 ユー
ザ定義イベントの強制終了パラメータ を参照してください。

パーキング設定 オンラインプログラムで、あるコントロールのカーソルのパークについての設定は、V9Plus では セレクト コマンドの 条件 式やフロー設定により決定されていました。
5章 移行ユーティリティの処理プロセス

25

uniPaaS V1Plus では、セレクトコマンドの条件、というものがなくなったので、コントロールの特性としてパーキング関係の設定を行うようになりました。
パーキングについて詳しくは、5.3「パーキング関係の設定」 および 、3.7「TAB順序」を参照してください。
関数名の変更uniPaaS V1Plus ではいくつかの組み込み関数で名前の変更がありました。(3.1「V9よりの関数の変更」を参照。)
V9Plus コンバータでは、これらの関数が式中で使われている場合、自動的に名前を変更します。

リテラル

uniPaaS V1Plus では、以下のリテラルの記号が変更になりました。
ACT → EVENTKEY → INDEX
FILE → DSOURCE
V9Plus コンバータは、これらのリテラル記号を変更します。

特性の削除

uniPaaS V1Plus では EURO 関係の機能はサポートされないので、EURO 関係の特性はすべて削除されます。V9Plus コンバータは、EURO 関係のパラメータを削除した場
合、その旨エラーメッセージをログに記録します。

メモ型データ

メモ型データはサポートされなくなりました。メモ型は、文字型に変換され、データの互換性を維持するため、記憶形式は String Memo あるいは Magic Memo に設定されます。

コール Web サー Web サービスのフレームワークが uniPaaS V1Plus では完全に変わるため、プログラ
ビスコマンドム上は V9Plus と互換性がありません。V9Plus で コール Web サービス が使われている場合、V9Plus コンバータは、空の 外部コール Web サービス コマンドに変換します。開発者は、uniPaaS V1Plus に移行後、Web サービス呼び出しを再定義しな
くてはなりません。
UnicodeuniPaaS V1Plus は Unicode をサポートするようになりました。V9Plus の以下のオブジェクトは、自動的に Unicode に変換されます。
 Unicode 文字を格納するカラムのデータ型 (文字型から Unicode 型に変換)
 メニューのエントリ テキスト
 ヘルプ・ツールチップの文字列
 値として文字型の式が設定されているコントロールのデータ型(文字型からUnicode 型に変換) プロパティシートに設定される種々の文字列

5.2. ユーザ定義イベントの強制終了パラメータ
V9Plus では、ユーザ定義イベントの 強制終了 パラメータには、
 N=なし E=編集 C=コントロール
 R=レコードという 4 つの選択肢がありました。
uniPaaS V1Plus では、R=レコード の動作をより正確に表現するため、R=レコード更新前 と改名され、また、あらたなオプションとして、P=レコード更新後 が追加されました。

5章 移行ユーティリティの処理プロセス26次表は、強制終了パラメータ として R=レコード更新前 あるいは P=レコード更新後 となっている場
合に、実行エンジンの実行順序を示したものです。
#

R=レコード更新前 に設定されている場合

P=レコード更新後 の場合

1.

コントロール検証

コントロール検証

2.

コントロール後処理

コントロール後処理

3.

レコード後処理

レコード後処理4.

[ユーザイベントのハンドラの処理]

5.

レコード更新6.

レコード前処理 (次のレコードサイクルの開 レコード前処理 (次のレコードサイクルの開始)
始)

7.
8.

レコード更新[ユーザイベントのハンドラの処理]
コントロール前処理

コントロール前処理

これからわかるように、R=レコード更新前 (V9Plus でのレコード) の場合には、ユーザイベントのハンドラが実行されるタイミングでは、まだレコード更新処理が行われておらず、現在のレコードの変更内容はまだ DBMS に書き込まれていません。
一方、P=レコード更新後の場合には、ユーザイベントのハンドラはレコード更新の後で実行されるので、DBMS に現在のレコードの変更内容が書き出された後となります。

5.3. パーキング関係の設定
オンラインプログラムで、あるコントロールのカーソルのパークについての設定は、V9Plus では セレ
クト コマンドの 条件 式やフロー設定により決定されていました。下図は、V9Plus でのレコードメイ
ンの画面です。

uniPaaS V1Plus では、セレクトコマンドの条件、というものがなくなったので、コントロールの特性としてパーキング関係の設定を行うようになりました。
以下のパーキング関連のパラメータが、V9Plus コンバータにより、uniPaaS V1Plus の対応するコントロール特性に設定されます。これらの詳細については、3.7 TAB 順序 を参照してください。

5章 移行ユーティリティの処理プロセス

27

項目

V9PlusuniPaaS V1Plus

パークの可・不可セレクトコマンドの 条件 で制御

コントロール特性の パーキング可 により制御

TAB 移動方向によるパークの可・不可セレクト コマンドの フロー パラ
メータで設定コントロール特性の TAB 移動方向 パラ
メータにより設定

TAB 順序レコードメインでのセレクトコマン
ドの定義順

コントロール特性の TAB 順序 パラメー
タにより制御。
モードとして、自動 TAB 順序 と 手動
TAB 順序 とがあります。

5.4. 照会リンクの移行
V9Plus では、Q=照会 リンクコマン
ドで 確認 特性が Yes の場合、リンクが成功するかどうかがチェックされ、リンクに失敗した場合には、「レコードが見つかりません：
テーブル名」 というエラーメッ
セージが出て、フローはそこで中断されました。(右図)
これは簡便な機能ではありましたが、エラーメッセージが固定されて、結局はリンク結果を格納する論理型
変数とエラーコマンドとを使って、プログラムで対応する、ということが多くありました。

V9Plus での、照会リンク (確認 特性)

このようなことから、uniPaaS V1Plus では、リンクコマンドの 確認 特性を廃止しました。V9Plus からの移行時に同じ動作をさせるために、V9Plus コンバータでは、照会リンクコマンドを次のような形で変換します。
1. リンク結果を格納する論理型変数を追加します。 (以下の説明では、RC_LNK_1 という名前で呼びます)2. リンクコマンドでは、戻り値 特性で、変数 RC_LNK_1 を設定します。
3. ロジックエディタの RM 互換 レベルで、RC_LNK_1 の直後にエラーコマンドを追加します。条件として、NOT(RC_LNK_1) とします。

5章 移行ユーティリティの処理プロセス

28

データビューエディタ

ロジックエディタ

V9Plus コンバータでは、V9Plus での動きとなるべく同じにするために、RM 互換レベルにエ
ラーコマンドを入れていますが、新しくタスクを定義する場合には、RM 互換レベルではな
く、コントロールレベルのハンドラ (コントロール後処理、あるいはコントロール検証ハンドラ)にチェックロジックを入れるのが適当です。
このやりかたでは、データビューに論理型の変数が、リンクコマンドの個数分だけ新たに追加されます。このため、以下のような条件の場合、このプログラムにパラメータが正しく渡らなくなってしまうことがあります。
パラメータを、P=パラメータ ではなく、V=変数で渡している。(V8.2 およびそれ以前のプログラ
ムではこのようにしているので、V8.2 などから移行するアプリケーションでは要注意です) パラメータとして使っている V=変数 コマンドが、照会リンクコマンドよりも後ろに定義されている。
このふたつの条件がそろった場合には、パラメータとして使っている V=変数 コマンドよりも前に、
リンク結果を格納する論理型変数が定義されることになるので、パラメータの順序が変わってしまいます。その結果、パラメータが正しく渡らなくなることになります。
この問題の解決方法は、パラメータを P=パラメータ で定義しなおすことです。こうすれば、リンク結果を格納する論理型変数がどこに定義されていても、正しくパラメータと変数が区別されるので、順序が変わってしまうことはありません。

5章 移行ユーティリティの処理プロセス

29

5.5. V9Plusコンバータのパラメータ
V9Plus コンバータは、コマンドラインのプログラムで、v9converter.exe という名前で Magic をインストールしたディレクトリにあります。
V9Plus コンバータは、以下のようなパラメータを受け付けます。
パラメータ

必須？

意味

-Export必須

変換元である V9Plus のリポジトリ出力ファイル名を指定します。

-Project

必須

変換結果である uniPaaS V1Plus のプロジェクトファイルを格納するディレク
トリ名をフルパス名で指定します。もしこの位置にすでに uniPaaS V1Plus プ
ロジェクトファイルが存在していたら、変換処理は実行されず、警告メッセージが表示されます。

-LANG

必須

言語パラメータを設定します。日本語の場合には、-LANG=JPN と指定してください。

-LOCALS

必須

国・地域に固有な、パラメータを指定します。日本語の場合には、-LOCALS=J,./:と指定してください。
文字の意味は、左から、日付モード(J)、数値の 3 桁区切り文字(,)、小数点文字(.)、日付セパレータ(/)、時刻セパレータ(:) です。

-LOG

任意

変換プロセスのログファイル名を指定します。

-PREFIX任意

V9Plus のアプリケーションの識別子 (2 文字) を指定します。テーブルリポ
ジトリで、テーブル名が指定されていないテーブルのデフォルト名を決めるために使います。

下記は、V9Plus コンバータを利用する例です。(実際には行を分けず、1 行で記述します)”C:\Program Files\uniPaaS\Studio V1Plus\Projects\v9converter.exe”-LANG=JPN -LOCALS=J,./:-EXPORT=D:\Magic\Project\Petshop\PetShop.exp-PROJECT=D:\Magic\Project\Petshop -PREFIX=DM
注意： -LANG および –LOCALS パラメータは、日本語環境では必須です。
-LANG および –LOCALS パラメータをつけなくとも変換プロセスは一見正常終了するように見えます。
しかし、CONST 設定、日付形式の設定などが、日本語環境での設定と異なった状態で変換されるため、
日付定数やイベントなどが正しく変換されません。

5.6. ログファイル
V9Plus コンバータは、変換処理の過程での種々の報告・警告・エラーメッセージを出力します。これらはすべてコマンドライン画面上にも表示されますが、ログファイルにも記録されます。
ログファイルは、v9converter.exe へのコマンドラインパラメータ –LOG= で指定します。このパラメータを指定しない場合には、デフォルトとして、作業ディレクトリの下に、 (プロジェクト名)_cnv.log という名前で格納されます。

5章 移行ユーティリティの処理プロセス30以下は、V9Plus のペットショップデモを変換したときのログの例です。
-+> Migrating table ‘制御ファイル’.
Attribute of field ‘顧客へのメッセージ’ changed from ‘Memo’ to ‘Alpha’-+> Migrating table ‘顧客ファイル’.
Attribute of field ‘メモ’ changed from ‘Memo’ to ‘Alpha’-+> Migrating table ‘商品ファイル’.
-+> Migrating table ‘受注ファイル’.
-+> Migrating table ‘受注明細ファイル’.
Processing task ‘メインプログラム’.
Task ‘メインプログラム’ migrated successfully.
Processing task ‘‘.
Task ‘‘ migrated successfully.
-+> Migrating table ‘制御ファイル’.
Attribute of field ‘顧客へのメッセージ’ changed from ‘Memo’ to ‘Alpha’-+> Migrating table ‘顧客ファイル’.
Attribute of field ‘メモ’ changed from ‘Memo’ to ‘Alpha’-+> Migrating table ‘商品ファイル’.
-+> Migrating table ‘受注ファイル’.
-+> Migrating table ‘受注明細ファイル’.
Processing task ‘メインプログラム’.
Task ‘メインプログラム’ migrated successfully.
Processing task ‘‘.
Task ‘‘ migrated successfully.
Processing task ‘制御ファイル更新 ONL’.
Task ‘制御ファイル更新 ONL’ migrated successfully.
(途中省略)
Processing task ‘照会 - 受注明細ファイル’.
Task ‘照会 - 受注明細ファイル’ migrated successfully.
----> Internet development file root has been removed in this version.
----> Base Currency support has been removed in this version.
Saving application, please wait.
Application saved.
Conversion completed successfully.
Note:
1. Following functions have been renamed:
MINMagic() => WINMinimize()
MAXMagic() => WINMaximize()
ResMagic() => WinRestore()
Asc()=> ASCIIVal()
CHR()=> ASCIIChr()
CtrlName() => LastClicked()
Sys()=> AppName()
IOExist() => FileExist()
IOSize()=> FileSize()
IODel()=> FileDelete()
IORen()=> FileRename()
IOCopy()=> FileCopy()
2. The ‘Check object list’ACT & ‘Save As MFF’ACT actions are deprecated.
3. The ‘HTML’ interface type for forms is deprecated.
4. Inheritance of the following GUI display table control properties is broken:

5章 移行ユーティリティの処理プロセス

31

‘Style’, ‘Table in Window’, ‘Row Highlight style’, ‘Border Style’,‘Bottom Position Interval’, ‘Line Divider’ and ‘Column Divider’.
5. Inheritance of the all ‘Style’ properties of a blob field is broken.

5章 移行ユーティリティの処理プロセス

32

6. GUIエンハンサ
6.1. GUIエンハンサとは？
V9Plus コンバータを使って uniPaaS V1Plus のプロジェクトを作れば、uniPaaS V1Plus で動くアプリケーションとなります。ここで、XPテーマが有効になっていれば、V9Plus のアプ
リケーションが、自動的に XP テーマ対応のユーザインターフェースとなります。(右図)
このユーザインターフェースでは、確かに、エディットコントロールやボタンコントロールがXP テーマ対応になっているものの、テーブルコントロールなどは V9Plus のままです。
uniPaaS V1Plus の GUI 機能を生かしきっているとはいえません。

uniPaaS V1Plus に移行直後の画面

V9Plus から移行してきたアプリケーションが簡単に uniPaaS V1Plus の GUI の新機能を利用できるように、アプリケーション全体の GUI 設定を一括して uniPaaS V1Plus に最適なものに変更する GUI エンハンサ ウィザードが用意されています。
このユーティリティは、まず、オンライン
フォーム上のコントロールを、すべて Windows
スタイルにします。そして、ユーザの指定により、以下の設定をさせることができます。
●
テーブルの 交互表示色 特性●
テーブルの 区切り 特性●
テーブルの カラムの区切り線 特性●
平面コントロールを uniPaaS V1Plus のス
タイルに変更
右図は、上のプログラムに GUI エンハンサを適用後、一部手作業で手直しをした画面です。
テーブルが Windows スタイルになっているのがわかります。

GUI エンハンサ適用後、一部手作業で修正した画面

6章 GUIエンハンサ

33

6.2. GUIエンハンサの利用方法
GUI エンハンサを利用するには・・・

1.

スタートメニューから
uniPaaS Studio V1→ マイグレーション→ GUI エンハンサユーティリティを選びます。

2.

変換を行いたいプロジェクトのプロジェ
クトファイルを指定します。
このとき同時に、実行時の基本色定義
ファイルも指定します。
デフォルトでは、Magic uniPaaS V1Plusに添付されている、実行時基本色定義
ファイルとなります。
指定したら次へ(N) ボタンを押します。

3.

修正項目を選択することができます。選択肢としては、以下のような項目をオン/オフできます。
 すべての GUI 表示テーブルの[交互表示色]特性を設定
 すべての GUI 表示テーブルの[区切り]特性を設定
 すべての GUI 表示テーブルの[カラムの区切り線]特性を設定
 平面コントロールを uniPaaS V1Plus
用のスタイルに変更
指定したら次へ(N) ボタンを押します。

6章 GUIエンハンサ

34

4.

設定内容を確認するダイアログが表示されます。表示内容を確認し、正しければ次へ(N) ボタンを押します。処理が開始されます。
まちがっているものがあれば、戻る(B)
ボタンを押して、設定しなおします。

5.

処理が終了すれば、最終画面が表示されます。
 ここで、今変換したプロジェクトを
uniPaaS Studio で開きたい場合には、プロジェクトの実行ボタンを押します。
 別のプロジェクトを変換処理したい場合には、別のプロジェクトを修正 ボタンを押して、2 から続けます。
 何もせずに終了する場合には、終了ボタ
ン(F) を押します。

6章 GUIエンハンサ

35

7. INI変換ユーティリティ
7.1. INI変換ユーティリティとは？
MAGIC.INI ファイルには、論理名、データベース定義、プリンタ定義、その他のアプリケーションの実行環境が数多く定義されています。アプリケーションをマイグレーションする場合、アプリケー
ション自体だけでなく、MAGIC.INI に定義されている環境設定も正しく移行しなければなりません。
しかし、V9Plus と uniPaaS V1Plus とでは、MAGIC.INI の定義形式が異なっているため、V9Plus で使っていた MAGIC.INI をそのまま uniPaaS V1Plus で使うことはできません。
ひとつひとつを手作業で定義しなおす手間を省くために、uniPaaS Studio V1 では V9Plus 形式の INI
ファイルを uniPaaS V1Plus 形式に変換するユーティリティを提供しています。これが INI 変換ユー
ティリティです。
INI 変換ユーティリティは、V9Plus の INI ファイルを読み込み、uniPaaS V1Plus の標準 INI ファイルとマージするような形で処理を行います。このため、ユーティリティには次のようなパラメータを入
力します。
パラメータ

方向

例 (デフォルトで Magic をインストールした時の値)

V9Plus のインストール
ディレクトリ

入力

C:\Program Files\Magic\eDeveloperPlus

V9Plus 形式の MAGIC.INI
ファイル

入力

C:\Program Files\Magic\eDeveloperPlus\Magic.ini

uniPaaS V1Plus 形式の標準
MAGIC.INI ファイル

入力

C:\Program Files\Magic\eDeveloperPlus\Magic.ini

新規 Magic.INI ファイル

出力

C:\Program Files\Magic\eDeveloperPlus\MagicNew.ini

7章 INI変換ユーティリティ36

7.2. INI変換ユーティリティの使い方
1. INI 変換ユーティリティは、スタート メニュー→ uniPaaS Studio V1Plus→ マイグレーション→ INI 変換ユーティリティ
で起動します。

2. 最初の ようこそ 画面が出ます。
次へ(N) を押します。

3. パラメータを入力します。
 V9Plus のインストールディレクトリ
 V9Plus 形式の MAGIC.INI ファイル uniPaaS V1Plus 形式の標準 MAGIC.INI ファイル 新規 Magic.INI ファイル
入力し終わったら、実行(R) を押します。

4. 正常に終わったら、右のようなメッセージが出ます。

7章 INI変換ユーティリティ37

8. 権利設定とセキュリティファイル
8.1. 権利設定の変更
V9Plusでの権利設定
V9Plus までは、Magic のセキュリティ機能を使って、開発時あるいは実行時に有効な権利を、リポジトリ単位、プログラム単位で設定することができました。権利の設定は権利設
定ダイアログ(右図)で行い、ここでは次のよ
うな権利を設定することができました。
権利設定内容開発時/実行時？

照会権利

開発時権利

修正権利
削除権利
登録権利
実行/APG 権利

テーブルリポジトリでは開発時権利。
プログラムリポジトリでは実行時権利。

uniPaaS V1Plusでの権利設定
uniPaaS V1Plus では、実行時の権利設定は
V9Plus と同じですが、開発時にはセキュリ
ティをかけることができなくなりました。
uniPaaS V1Plus の開発はプロジェクトベー
スの XML ソースファイルを使って開発するのですが、XML ソースファイルは通常のテキストファイルであるため、特定の開発者には開示し、別の開発者には隠蔽する、ということができないからです。このため、V9Plus から移行する場合、次のようになります。
 権利設定ダイアログには、実行/APG 権利だけが残ります。その他の権利は削除されます。
 権利設定ダイアログは、プログラムリポジトリでだけ開くことができます。
実行／APG 権利では、プログラムの実行または実行不可という基本的な設定しかできません。これ以上の細かなセキュリティ制御を行いたい場合には、Rights 関数と User 関数を使ってプログラムで制御するようにします。

8.2. セキュリティファイル
uniPaaS V1Plus ではセキュリティファイル(SUPPORT\usr_std.jpn など)の内部構造が変わりましたので、V9Plus で使っていたセキュリティファイルの内容を継続して使用したい場合は、uniPaaS Studio
V1 で提供されているユーティリティ usrupd.exe を利用して、セキュリティファイルを変換する必要
8章 権利設定とセキュリティファイル

38

があります。
usrupd.exe は uniPaaS V1Plus のインストールディレクトリにあるコマンドラインツールです。使い方はコマンドプロンプトを開き、uniPaaS V1Plus のインストールディレクトリに移動してから、次の形式で実行します。
usrupd<V9Plus セキュリティファイル名><uniPaaS V1Plus セキュリティ出力ファイル名>

次は、実行例です。(usrupd コマンドのパラメータは、1 行で書きます)
C:\>cd "\Program Files\uniPaaS\Studio V1Plus"
C:\Program Files\uniPaaS\Studio V1Plus\usrupd "c:\Program Files\uniPaaS\Studio V1Plus\Support\usr_std.jpn" support\usr_v9plus.jpn

8章 権利設定とセキュリティファイル

39

9. ビルダデータコンバータ
V9Plus には、Magic, COM、Web サービス、EJB などのビルダ ユーティリティがありました。
uniPaaS V1Plus でもこれらのユーティリティは提供されていますが、設定データ (Magic コンポーネントの設定など)の形式が異なるため、そのままでは流用することができません。
uniPaaS V1Plus のビルダ ユーティリティを使う際に、設定を最初からやりなおす手間を避けるため、
V9Plus のビルダ ユーティリティの内容を uniPaaS V1Plus のユーティリティのフォーマットに変換する ビルダ データ コンバータ が提供されています。
ビルダ データ コンバータでデータコンバートするには・・・

1.

スタートメニューから起動します。

2.

ウィザードが起動されるので、ウィ
ザードの指示に従って処理してください。

9章 ビルダデータコンバータ

4010. dbMAGIC V8.2からの移行
dbMAGIC V8.2 およびそれ以前のバージョンから uniPaaS V1Plus に移行しようとしたとき、2.2V ですでに説明したように、直接移行することはできないので、V8.2 → V9.4SP6a → V9Plus コンバータというステップを踏んで移行することになります。
ここでは、V8.2 あるいはそれ以前のバージョンから移行する場合の若干のヒントを紹介します。

10.1. V9Plusでの色/フォントテーブル変換は不要
V8.2 と V9Plus を比較したとき、V9Plus では色テーブルやフォントテーブルに変更があり、1～100 番までがシステム予約の番号となったため、V8.2 での色/フォントテーブルをそのまま使うことができな
くなりました。そのため、V9Plus に移行する際には、V9Plus 開発版に添付されている色・フォントテー
ブル変換ユーティリティを使って変換しなければなりませんでした。
V8.2 のアプリケーションを uniPaaS
V1Plus に移行する際には、いったん
V9Plus を経由して移行するのですが、
V9Plus でアプリケーションを利用する予定がない場合には、色・フォントテーブ
ルの変換は不要になります。これは、uniPaaS V1Plus では色、フォント、キー
ボード割付テーブルが、開発用、実行用、
内部用と用途によって別々に定義できるようになったからです。このため、アプ
リケーション実行時用の色・フォントテー
ブルとして、V8.2 で使っていた色・フォ
ント定義ファイルをそのまま設定することができるようになります。このときでも、uniPaaS V1Plus での開発時の画面には全く影響を与えることがありません。
この場合、色・フォントテーブルは、アプリケーション特性 ダイアログの 外部参照ファイル(E) タ
ブにパラメータに設定しておくのがよいでしょう。

10章 dbMAGIC V8.2からの移行

41

10.2. テーブルのタイトルが消える
V8.2 のテーブルコントロールでは、タイトルはテキストコントロールで実現されていました。
右図は V8.2 で実行している画面ですが、明細の子タスクで表示しているテーブルコントロールのタイトル (明細番号、商品番号、商品タイ
プ・・・)は、すべて、それぞれ別々のテキスト
コントロールであり、テーブルコントロールとは親子関係を持って結合されています。

V8.2 での画面

このようにして作成されているプログラムを
V9Plus を経由して uniPaaS V1Plus に移行し、さらに GUI エンハンサを適用すると、テーブル
は Windows スタイルのものに変換されます。このときにプログラムを実行してみると、右図に見るように、明細テーブルのタイトルが消えてしまっています。

uniPaaS V1Plus での画面 (GUI エンハンサ実行後)

実際には、タイトルはテキストコントロールとして残っていますが、これらのテキストコント
ロールはテーブルコントロールの背面に隠れてしまっているために表示されない、というのが真相です。
試しに、uniPaaS V1Plus のフォームエディタを開いて、テーブルコントロールを選択してみると、右図に見るように、タイトルのところにテ
キストコントロールが存在するのが確認できます。ただし、背面にあるので見ることができません。

uniPaaS V1Plus フォームエディタ上でテーブルコ
ントロールを選択

10章 dbMAGIC V8.2からの移行

42この問題に対しては、自動的に解決する方法はありません。uniPaaS V1Plus のフォームエディ
タ上で、各カラムを選択してカラムの タイトル
特性にタイトルをひとつひとつ入力していってください。

10章 dbMAGIC V8.2からの移行

43

11. トラブルシューティング
v9Plus コンバータ実行中に発生するエラーの代表的なものは、以下のものがあります。
現象：

エラーメッセージ Missing Mandatory Parameters が出る。

原因：

-EXPORT と –PROJECT パラメータは必須です。V9Plus コンバータ実行時にこのパラメータを指定しなかった場合にこのエラーが出力されます。

対応：

これらのパラメータを指定します。

現象：

エラーメッセージ Invalid Export File が出る。

原因：

V9Plus のリポジトリ出力ファイルの形式が、V9Plus コンバータで処理できるものでなかった場合に出ます。V9Plus コンバータは、最初にリポジトリ出力ファイルのバージョンをチェックし、Ver 9.40J SP6 以降の開発版でリポジトリ出力したもののみ、処理します。

対応：

MCF を V9Plus Ver 9.40J SP6 以上の開発版でリポジトリ出力して再度実行してください。

現象：

エラーメッセージ Project Directory Already Exists が出る。

原因：

-PROJECT パラメータで指定したディレクトリに、プロジェクトファイルがすでに存在している場合に出ます。

対応：

別のディレクトリを指定するか、既存のプロジェクトが不要であれば削除してから再実行
してください。

現象：

内部イベントのリテラルが消えてしまう。(''EVENT という形になってしまう)。

原因：

V9 よりのマイグレーション時に ACT が消えてしまう問題は、ほとんどの場合、V9Plus でリ
ポジトリ出力時に mgconstw.jp2 を使っていない場合に起こります。4.1 リポジトリ出力時の注意事項 を参照してください。また、V9Converter 実行時のパラメータを正しく設定していない場合、同じ問題が起こります。

対応：





V9Plus でリポジトリ出力をするときには、mgconstw.jp2 を使ったかどうかを確認してください。不明の場合には、4.2 リポジトリ出力ファイルの確認 を参照してチェック
してください。もし mgconstw.jp2 を使っていない場合には、mgconstw.jp2 を使って再度リポジトリ出力してください。
v9converter.exe 実行時に、パラメータ「-LANG=JPN-LOCALS=J,./: 」が抜けていないことを確認して、再度実行してください。

現象：

実行時、プッシュボタンやキーなどが効かない。
カーソルの動きがおかしい。

原因：

内部イベント(アクション)が、移行時に消えてしまっていることが考えられます。

対応：

プログラムを開いて、内部イベントが ''EVENT などとなってしまっていないかを確認してください。もしそうなっていたら、上の「内部イベントのリテラルが消えてしまう。」の項に従って対応してください。

11章 トラブルシューティング

44

現象：

パラメータが正しく渡らないプログラムがある。

原因：

パラメータを受け取る場合に、P=パラメータでではなく、V=変数で受け取っていて、かつ
照会リンクを使っているプログラムで起こることがあります。詳細は、5.4 照会リンクの移行 を参照してください。

対応：

パラメータは P=パラメータ で受け取るようにしてください。

現象：

右図のように、チェックボックスの表示が乱れる (チェックボックスの上にテ
キストの一部が重複して表示されているように表示される)

原因：

チェックボックスにラベル(テキスト 特性)が設定されていて、このテキストが隠れるように幅を狭めている場合、V9Plus では表示されませんでしたが、uniPaaS V1Plus ではこれが前面に現れるようになり、このような表示になります。

対応：

ラベルを表示する必要がない場合には、テキスト 特性を削除してください。

現象：

GUI エンハンサ適用後、テーブルコントロールのタイトルが消えてしまう。

原因：

V8.2 あるいはそれ以前のバージョンから移行してきた場合、テーブルコントロールのタイ
トルはテキストコントロールとして定義されていますが、Windows スタイルのテーブルコン
トロールが前面に表示されるので、タイトルのテキストコントロールが隠れて見えなくなるのが原因です。10 dbMAGIC V8.2 からの移行 を参照してください。

対応：

タイトルは、カラム タイトル 特性で設定するように修正してください。

現象：

移行後、データソースリポジトリで定義されている SQL テーブル (Oracle、MS-SQL、DB2UDBなど)のカラムの格納形式特性が変わり、データを正しくアクセスできなくなる。(例：ZString が String に変わってしまうなど)

原因：

移行中にリポジトリ入力をする際に、必要なデータベース定義がされていないために、
Default Database をもとにした格納形式のデフォルトにリセットされてしまうためです。

対応：

移行中に利用する V9Plus や V8.2 開発版では、リポジトリ入力を行うに先立って、アプリ
ケーションが利用しているデータベースをデータベーステーブルに定義してください。これは、そのバージョンでは実行を行わない場合にも必要です。

11章 トラブルシューティング

45

V9Plus 開発者のための
Magic uniPaaS V1Plus 移行ガイド
Copyright © 2009, Magic Software Japan K.K.,
All rights reserved.

第1版

2009 年 10 月 6 日

発行〒151-0053 東京都渋谷区代々木三丁目二十五番地三号
あいおい損保新宿ビル 14 階マジック ソフトウェア・ジャパン (株)http://www.magicsoftware.co.jp/

11章 トラブルシューティング46