welcome

ようこそ

先頭 次へ

RM Converter

Magic uniPaaSの［RM互換］ロジックユニットをイベントロジックに変換します。


introduction

概要

先頭 戻る 次へ

RM Converter

RM Converterは、Magic uniPaaSの［RM互換］ロジックユニットをイベントドリブンのロジックに変換する作業を支援するユーティリティです。

簡単です

インターフェースは使い勝手がいいように設計されており、使いやすいくなっています。3つの簡単なステップで、変換処理を案内するようになっています。複数の設定内容によって、変換結果をカスタマイズすることができます。


How it works

動作内容

先頭 前へ 次へ

変換処理は、［RM互換］ロジックユニットを分析して、処理コマンドやロジックセグメントをどのように変更するかを決めます。

変換規則

変換の基本原則です。このセクションでは、ロジック・セグメントがどのように定義されるかや、フロー方向によって処理コマンドの変換にどのように影響するかを説明します。

ズーム処理

このセクションでは、［フローモード］特性が「前置」または「後置」に設定された場合にどのような［イベント］ロジックユニットに変換されるかについて説明します。

［ブロック］処理コマンド

データ項目の定義に設定された［フローモード］特性が「前置」または「後置」に設定され、フォーム上のコントロールに関連付けられている場合、どのように処理されるかを説明しています。

［エラー］処理コマンド

［エラー］モードの［エラー］処理コマンドが、［復帰］モードに変換される条件について説明します。

最初のコントロールの前に定義される処理コマンド

最初のコントロールが処理される前に実行される処理コマンドをどのように扱うかを説明しています。

動作しない処理コマンド

エンジン・フローによって処理されない処理コマンドのリストについて説明します。

動作の変更

変換されたことによってエンジンフローの動作内容が変わる場合について説明します。


Conversion rules

変換規則

1. 基本的な規則

2. ロジック・セグメント

3. フォーム上のコントロールに関連付けられていないデータの定義

4. フロー方向によって、変換処理がどのように決まるのか

1. 基本的な規則

データ定義コマンドのの間に設定され、フォーム上のコントロールに関連付けられている全ての処理コマンドは、最初のコントロールの［コントロール検証］ロジックユニットに変換されます。

［RM互換］ロジックユニットが、イベントドリブンのロジックに変換された例を以下に示します。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

［エラー］モードの各［エラー］処理コマンドは、適切な［コントロール検証］ロジックユニット内に同じ特性値で定義されます。

2. ロジック・セグメント

変換処理では、最初にロジック・セグメントを決定します。ロジック・セグメントとは、フォーム上のコントロールに関連付けられている2つの連続的なデータ定義コマンド間のすべての処理コマンドです。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

3. フォーム上のコントロールに関連付けられていないデータの定義

フォーム上のコントロールに関連付けられていないデータ項目が、2つのコントロールの間に定義されている場合、スキップされます。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

変数項目のv.一時項目Aとv.一時項目Bは、コントロールとしてフォーム上には存在しないため、［コールプログラム#14］処理コマンドは、「顧客名」(A)と「顧客状況」(D)間のロジック・セグメントの一部となります。

この場合、変換処理によって「顧客名」(A)と「顧客状況」(D)の間のロジック・セグメントの一部としての処理コマンドとして扱われ、それに応じて変換されます。

4. フロー方向によって、変換処理がどのように決まるのか

処理コマンドは規則に基づいて変換されます。そして、［フロー方向］はこの規則に応じて新しいイベントドリブンのロジックユニットに変換されます。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

現在の［RM互換］の動作：

カーソルが「顧客名」(A)から「顧客状況」(B)に移動すると、［フロー方向］の「前方」と「両方向」がチェックされ、実行されます。カーソルを「顧客状況」(B)から「顧客名」(A)まで戻すと、［方向］の「後方」と「両方向」がチェックされ、実行されます。

エンジン・フローの動作を同じようにするため、以下の規則で変換されます。

a) ［フロー方向］が「前方」または「両方向」に設定されている全ての処理コマンドは、コントロールA（フォーム上のコントロールに関連付けられた最初のデータ定義コマンド)に対する、［コントロール検証］ロジックユニットに変換されます。

b) 逆方向の動作に対して、［方向］が「前方」または「両方向」に設定されている全ての処理コマンドは、コントロールB（フォーム上のコントロールに関連付けられた2番目のデータ定義コマンド)に対する、［コントロール検証］ロジックユニットに変換されます。

注意: [フロー方向]が「両方向」に設定されている処理コマンド：の設定によって、［フロー方向］の設定内容に応じて、「前方」、「後方」、「両方向」のどちらに変換されるかが決まります。


Zoom operations

ズーム処理

［フローモード］が「後置」または「前置」に設定された処理コマンドは、［ズーム］イベントのロジックユニットに変換されます。

この変換によって、グローバルなイベントがメインプログラムに新規作成されます。

...、そして、各［ズーム］イベントのロジックユニットは、このグローバルなイベントが割り当てられます。

例：

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

［コールプログラム#13］の［フローモード］には、「後置」が設定されており、「顧客名」(A)に対する［イベント］ロジックユニットとして変換されます。

Aに対する［項目更新］処理コマンドの［フローモード］には、「前置」が設定されており、「顧客状況」(B)に対する［イベント］ロジックユニットとして変換されます。

［RM互換］のロジックと同じように動作させるため、［次項目］イベントが、ロジックユニットの最後に追加されます。これによって、ズーム処理の実行後に次の項目にカーソルがパークするようになり、変換前のズーム処理と同じように動作になります。

注意：[次項目]イベントを後置ズームに追加と[次項目]イベントを前置ズームに追加の設定は、［次項目］イベントがズームハンドラ内に作成される時の動作をカスタマイズします。


Block operations

［ブロック］処理コマンド

フォーム上のコントロールに関連付けられているデータ定義コマンドが設定された［ブロック］処理コマンド

このトピックは、フォーム上のコントロールに関連付けられているデータ定義コマンドを含む［ブロック］処理コマンドの変換がどのように変換されるかを説明しています

この場合、ブロックの条件は、ブロック内のコントロールをパーク可能にするかどうかを決定します。

変換処理では、ブロックの条件を取得し、コントロール特性の［パーク可］特性に反映します。また必要に応じて［コントロール検証］の条件として設定されます。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

動作の変更：

［RM互換］ロジックユニットでは、［ブロック］処理コマンドの条件が、ブロック内の最初のコントロールにパークできるようになっている場合、条件が変更されない限り、ブロック内の全てのコントロールにパークすることができます。

変換の後は、ブロックの条件は、コントロール上の［パーク可］特性に変換されます。そして、条件が変更された場合、コントロール上でのパーキングの動作に影響します。


Verify Error operation

［エラー］処理コマンド

［エラー］処理コマンドが実行された場合、エラーメッセージが（ボックスまたはステータスラインで)表示されます。ハンドラ内の最初の処理コマンドまで逆順に移動することで、カーソルは、［エラー］処理コマンドの前に定義された処理コマンドが実行されるた時のコントロールに戻ります。

同じロジックをイベントロジックで実現するには、［復帰］モードの［エラー］処理コマンドに変換する必要があります。

［RM互換］ロジックユニット：

イベントドリブンのロジックに変換された結果：

注意： ［エラー］モードの［エラー］処理コマンドは、データ定義コマンドと現在の［エラー］処理コマンドの間にある他の処理コマンドの場合のみ［復帰］モードに変換されます。単一の［エラー］モードの［エラー］処理コマンドは、［エラー］モードのままになります。


Operations preceding first control

最初のコントロールの前に定義される処理コマンド

最初のコントロールの前に処理コマンドが定義されている場合、レコードメインと同じ順序で実行するように、3つの変換規則を適用します。

1. 処理コマンドは、［レコード前］にコピーされます。これによって、処理コマンドはレコード毎に実行されます。

2. 処理コマンドは、最初のコントロールの［コントロール前］にコピーされます。これによって、タスクの起動時とカーソルが最後のコントロールから先頭のコントロールに移動した時点で処理コマンドが実行されます。

3. 処理コマンドは、最初のコントロールの［コントロール後］にコピーされます。これによって、最初のコントロールからカーソルが後ろに戻るとき、処理コマンドが実行されます。

注意： 変換処理にによって変わる動作については、動作の変更で説明しています。


Unreachable operations

動作しない処理コマンド

未解決のズーム処理

ズーム処理は他のいかなる処理コマンドもズーム処理と（フォーム上のコントロールに割り当てられた）データ定義コマンドの間に設定することができないという規則に従う必要があります。この規則に違反した場合、ズーム処理は、実行されません。

［RM互換］ロジックユニット：

この例では、［コールプログラム］処理コマンドに以下の［フローモード］が「後置」に定義された場合を示しています。［項目更新］処理コマンドが処理コマンドとデータ定義コマンドの間に定義されているため、ズームは実行されません。このため、処理コマンドは実行されません。

［フローモード］が「前置」に定義された場合も同じようになります。前置のズーム定義とデータ定義の間に別の処理コマンドが定義されている場合、ズームは実行されません。

反対の［方向］特性が設定されている［ブロック］処理コマンド

［方向］特性が「前方」に設定されている［ブロック］処理コマンドがあり、その中の処理コマンドの［方向］特性が「後方」に設定されている場合、この処理コマンドは実行されません。 そして、逆（「後方」に設定されたブロック内の「前方」に設定された処理コマンド）もまた同じです。

この例では、ブロック内のすべての処理コマンドが実行されません。このため削除されます。そして、この場合、中に処理コマンドが存在しないため、［ブロック］処理コマンド自体も削除されます。

注意： 変換処理によって、実行されないすべての処理コマンドは削除されます。


Change of behavior

動作の変更

動作の変更

変換処理によって、どのように動作が変わるかを以下に示します。

1. 高速モードの処理コマンド

［コントロール検証］ロジックユニットの動作は、［RM互換］ロジックとは若干異なります。

マウスクリックで、別のレコードに高速モードで移動した場合、［コントロール検証］が実行されます。データが修正されている場合、のみ、レコードメインと同じように高速モードで実行されます。

2. ステータス行のズーム表示

［RM互換］ロジックでは、ズーム処理の条件が「False」のなっている場合、ステータス行にズームが表示されません。変換後は、ズームハンドラの条件が「False」であってもズームが表示されます。

3. ［ブロック］処理コマンドに条件が設定され、データ定義コマンドが中に定義されている

［RM互換］ロジックでは、条件が設定された［ブロック］処理コマンド内にデータ定義コマンドが定義されている場合、条件はコントロールがパーク可能かどうか決定します。ブロック内での条件が変わった場合、コントロールのパーク条件が同じであれば、パーク可能になります。

変換後は、［ブロック］処理コマンドの条件は、コントロールの[パーク可]特性に設定されます。［ブロック］処理コマンドの条件が変わった場合、パーク可能なコントロールは条件の変更内容によって決まります。

4. MainLevel関数

［RM互換］ロジックでは、タスクが現在レコードメインの処理中かどうかを判断するには、Level()='RM'を使用します。Level()関数は、コントロールから実行したり、イベントハンドラによって実行された場合、異なる結果を返します。このためRM(レコードメイン)をチェックする場合、Level()関数はMainLevel()関数に置き換わります。MainLevel()関数は、実際のロジックユニットの代わりに「RM」を返します。

例：

返還前： Level(1)='RM'

変換後： MainLevel(1)='RM'

変換処理では､「RM」の代わりとなる簡単な文字列を使用して状況を確認することができません。

例：

返還前： Level(1)=vStatus

変換後： Level(1)=vStatus

関数が実行された場合にvStatusの値「RM」になる場合があったとしても、上記の場合は式は変更されません。

5. 重複したり、存在しないコントロール名

変換処理によって、各コントロールに対応する［コントロール］ロジックユニットに変換します。このため、コントロール名を設定しておく必要があります。コントロールをロジックユニットに割り当てた場合、コントロール名のないコントロールに自動的にコントロール名を割り当てます。

重複したコントロール名がある場合は、「Item_001」というように、変換処理によって採番することで名前を変更します。

これは、以下のようなコントロールの属性としてコントロール名を使用する次のような関数に影響します。LastClicked（)、LastPark（)、CtrlGoto（)...

6. 最初のコントロールの前の処理コマンド

変換処理によって、最初のコントロールの前の処理コマンドも最初のコントロールの［コントロール前］に変換します。これによって、タスクが最初に実行したり、カーソルをフォーム上の最後のコントロールから先頭のコントロールに移動した時点で処理コマンドが起動されます。

カーソルをレコードから別のレコードに移動したり、最初のコントロールをパークしたりすると、違いが分かります。［レコード前］が最初に実行されたが、［コントロール前］も実行されます。このように、同じ処理コマンドが二回実行されます。


How to use

使い方

RM Converterは、3つの単純なステップで変換処理の案内を行います。

ステップ 1：変換規則の設定

変換処理をカスタマイズし、必要な要求を満たし、アプリケーション・ロジックの内容に従って、全てのパラメータを設定します。

設定の詳細については、設定のトピックを参照してください。

ステップ 2: 変換処理の実行

ソース・プロジェクトを選択します。そして、変換処理によってプロジェクトを上書きするかどうか、あるいは、新規プロジェクトとして作成するかどうかを選択します。変換するプログラムの範囲を指定することもできます。

ステップ 3: 変換ログの表示

一旦変換が行われると、変換ログを参照するためにフィルタやプログラムの範囲を使用することができます。

表示ボタン上で右クリックを行うことで、変換ログをエクスポートすることもできます。


settings

設定

設定 - 変換規則

1. メインプログラムのグローバルなズームイベントの名前

F変換処理によって作成された、コントロール上のすべての［ズーム］イベントに対して、１つのグローバルなズームイベントを使用します。この設定は、このイベントの名前を指定することができます。デフォルト値は、「gZoom」です。

2. [次項目]イベントを後置ズームに追加

［RM互換］ロジックユニットで、「後置」に設定されたズーム処理を［ズーム］イベントのロジックユニットに変換する場合に、適切な処理コマンドを追加します。この設定は、コントロール上で［ズーム］イベントを発行後にカーソルを次項目に移動するように設定します。

3. [次項目]イベントを前置ズームに追加

［RM互換］ロジックユニットで、「前置」に設定されたズーム処理を［ズーム］イベントのロジックユニットに変換する場合に、適切な処理コマンドを追加します。この設定は、コントロール上で［ズーム］イベントを発行前にカーソルを次項目に移動するように設定します。

4. [ズーム]ロジックを伝播に設定

変換処理によって［ズーム］イベントのロジックユニットに［伝播］特性を設定するかどうかを、Yes／Noで設定します。

5. [フロー方向]が「両方向」に設定されている処理コマンド: 前方 / 後方 / 両方向

処理コマンドの［フロー方向］が「両方」に設定されている場合、どのように変換するかを指定します。

6. エラーモードの[エラー]処理コマンド : 復帰 / エラー

Magic uniPaaSでは、［エラー］モードの［エラー］処理コマンドの動作が、旧バージョンのMagicエンジンと異なります。Magic uniPaaSでは、［エラー］モードの［エラー］処理コマンドはエンジンのフローを停止させ､データ定義に向かって後方に続く処理は実行されません。

この場合、［復帰］モードの［エラー］処理コマンドに変換されます。

7. フォーム上の空白のコントロール名にユニークな名前を設定.

イベントドリブン機能では、コントロールに割り当てられた［イベント］ロジックユニットを実行するために、ここにコントロール名を設定する必要があります。変換処理によって、イベントが割り当てられたすべてのコントロールに、コントロール名が設定されます。

この設定は、イベントが割り当てられていない他の全てのコントロールに対してもがコントロール名を設定するかどうかを指定します。このコントロールに対し、今後イベントを割り当てることを想定して、あらかじめ設定しておくことができます。

8. 条件= No(または'FALSE'LOG)の処理コマンドを削除

変換処理によって、実行されない理コマンドを自動的に削除するかどうかを指定します。

9. 変更プログラムの最終更新日付を変更

変換処理によって、が変換の日付と時間を各プログラムの最終更新日として保存するかどうかを指定します。

10. ロジックユニットのソート:

コントロール名でグループ化

各コントロールをコントロール名でソートします。

ロジックのタイプでグループ化

［イベント］ロジックユニットをグループ化するように、ロジックユニットをソートします。

11. 空のロジックユニットを削除

空のハンドラーを全て削除します。Magic eDeveloper v9 から Magic uniPaaSへの変換によって、空のハンドラー（例えばタスク前/後やレコード前/後）が作成される場合があります。RM Converterでの変換によって、空のハンドラーを全て削除するかどうかを指定できます。

12. フォームが空の場合、すべての処理の変換先: タスク前 / 新規のロジックユニット / 無視

変数項目がフォーム上にない場合や、フォームにコントロールが全く配置されていない場合、全ての処理コマンドは1つのフローで実行されます。このような場合、タスク前や新しいロジックユニットに変更することもできますが、無視することもできます。

新しいロジックユニットが全ての処理コマンドを持った状態で作成されても、ロジックユニットはコントロールに対して何もリンクされていません。このような状態をどのように処理するかは、開発者によって決めてください。

注意： 設定内容は、すべて保存されます。このため、RM Converterが起動されると、前回保存された設定内容が有効になっています。


Conversion Log

変換ログ

変換ログには、変換処理のの詳細情報が含まれています。各変更結果は記録され、複数のフィルタ・オプションを使用して表示することができます。

フィルタ

表示 - すべて表示 / 変換されたプログラムを表示 / 変換されなかったプログラムを表示

変換結果を（すべてプログラム/変換されたプログラム/変換されなかったプログラム）のリストで表示します。

分類 - 一覧表示 / タスク毎に表示 / 変換内容毎に表示

変更したリストを（すべて表示/タスク毎にグループ化して全部のリストとして/変更内容に基づいてタスクを）表示します。

変換結果の範囲

指定した変更内容による表示内容の範囲指定を行います。

プログラムの範囲

プログラム指定による表示内容の範囲指定を行います。

エクスポート

変換ログ上で右クリックを行い、出力と全てを出力を選択し、出力するファイル名とパス名を指定します。Excel形式で出力されます。


exceptions

例外

先頭 前へ

「前置」または「後置」が設定された［ブロック］処理コマンド内のロジックで、フォーム上のコントロールに関連付けられたデータ定義コマンドが設定されている場合

この場合、［ブロック］処理コマンド内で定義されたデータ項目は、ズーム処理を行った場合のみパーク可能です。この種のロジックは、簡潔な開発手法に従っていません。イベントドリブンへの変換を行うには複雑過ぎるため、変換されず、「複雑過ぎて変換不可変」というメッセージが変換ログに記録されます。

変換処理を行う前に、ロジックを修正する必要があります。「前置」や「後置」が設定された［ブロック］処理コマンド内のコントロールにパークするロジックは、コントロールの［パーク可］特性を適切に設定しておいてください。