データ変換の作成
ここでは、データ変換の一般的な作成方法と編集方法について説明します。
後半の章では、データ変換で使用される構文、assign アクションの詳細、およびその他の種類のアクションの詳細について説明します。
オンライン学習に移動して、ご自身でデータ変換を作成Opens in a new tabしてみることもできます。
非アクティブ状態が続くと、インターシステムズの管理ポータルによってログアウトされ、保存されていない変更が破棄される可能性があります。非アクティブ状態の時間は、InterSystems IRIS サーバの呼び出しから次の呼び出しまでです。すべてのアクションがサーバの呼び出しを引き起こすわけではありません。例えば、[保存] をクリックした場合はサーバが呼び出されますが、テキスト・フィールドに入力した場合はサーバの呼び出しは生じません。このため、データ変換を編集していて、[セッションタイムアウト] のしきい値より長い間 [保存] をクリックしないと、セッションは期限切れとなり、保存されていない変更は破棄されます。ログアウト後、ログイン・ページが表示されるか、現在のページが更新されます。詳細は、"管理ポータルの自動ログアウト動作" を参照してください。
変換の作成
変換を作成するには:
-
[次] をクリックします。
変換を表示して変更を加えたが、まだ保存していない場合は、InterSystems IRIS® から先に進む (変更を破棄する) かどうかの確認が求められます。
その後で、変換に関する基本情報を指定可能なダイアログ・ボックスが表示されます。
-
以下の情報の一部または全部を指定します。
-
[パッケージ] (必須) — パッケージ名を入力するか、矢印をクリックして現在のネームスペース内のパッケージを選択します。
予約パッケージ名は使用しないでください。"予約パッケージ名" を参照してください。
-
[名前] (必須) — データ変換クラスの名前を入力します。
-
[説明] — データ変換の説明を入力します。これがクラスの説明になります。
-
[ソースタイプ] と [ソースクラス] — この変換が入力として受け取るメッセージのタイプを指定します。
以下のいずれかを選択します。
-
[全メッセージ] — この変換を任意の入力メッセージ・タイプで使用できます。
-
[X12] — 入力メッセージは EnsLib.EDI.X12.DocumentOpens in a new tab のインスタンスです。
-
[EDIFACT] — 入力メッセージは EnsLib.EDI.EDIFACT.DocumentOpens in a new tab のインスタンスです。
-
[XML] — 入力メッセージは EnsLib.EDI.XML.DocumentOpens in a new tab のインスタンスです。
または、[ソースクラス] の検索アイコンをクリックしてから、クラスを選択します。
-
-
[ソースドキュメントタイプ] (メッセージが仮想ドキュメントの場合にのみ適用可能) — ソース・メッセージのドキュメント・タイプを入力または選択します。このネームスペースにロードされた該当するスキーマで定義された任意のタイプを選択できます。
-
[ターゲットタイプ] と [ターゲットクラス] — この変換が出力として生成するメッセージのタイプを指定します。[ソースタイプ] と [ソースクラス] の選択肢を参照してください。
-
[ターゲットドキュメントタイプ] (メッセージが仮想ドキュメントの場合にのみ適用可能) — ターゲット・メッセージのドキュメント・タイプを入力または選択します。このネームスペースにロードされた該当するスキーマで定義された任意のタイプを選択できます。
[パッケージ] と [名前] を除いて、後からこれらの詳細を編集できます。
-
-
[変換] タブで詳細を指定します。"変換詳細の指定" を参照してください。
既存の変換のオープン
変換を開くには:
-
[開く] をクリックします。
変換を表示して変更を加えたが、まだ保存していない場合は、InterSystems IRIS から先に進む (変更を破棄する) かどうかの確認が求められます。
-
変換を含むパッケージをクリックします。
次に、必要に応じて、サブパッケージをクリックします。
-
変換クラスをクリックします。
-
[OK] をクリックします。
変換詳細の指定
変換の場合は、[変換] タブに変換全体に適用される詳細が表示されます。詳細の一部が事前に指定されている場合とされていない場合があります。その他の詳細はここでしか編集できません。このような詳細を以下に示します。
-
[名前] (読み取り専用) — データ変換クラスの完全なパッケージ名とクラス名。
-
[作成] — 変換でターゲット・メッセージを作成する方法を指定します。以下のいずれかを選択します。
-
[新規] — データ変換内の要素を実行する前に、ターゲット・クラス (および該当する場合のタイプ) の新しいオブジェクトを作成します。これがデフォルトです。
-
[コピー] — 変換内の要素を実行する前に、ターゲット・オブジェクトとして使用するソース・オブジェクトのコピーを作成します。
-
[既存] — データ変換の呼び出し側から指定された既存のオブジェクトをターゲット・オブジェクトとして使用します。次の項を参照してください。
-
-
[ソースクラス] — この変換が入力として受け取るメッセージのタイプを指定します。詳細は、"変換の作成" を参照してください。
-
[ソースドキュメントタイプ] (メッセージが仮想ドキュメントの場合にのみ適用可能) — ソース・メッセージのドキュメント・タイプを指定します。
-
[ターゲットクラス] — この変換が出力として生成するメッセージのタイプを指定します。詳細は、"変換の作成" を参照してください。
-
[ターゲットドキュメントタイプ] (メッセージが仮想ドキュメントの場合にのみ適用可能) — ターゲット・メッセージのドキュメント・タイプを指定します。
-
[言語] — この DTL 内のすべての式で使用する言語を指定します。これは objectscript である必要があります。
-
[レポートエラー] — この変換の実行中に発生したエラーをログに記録するかどうかを指定します。このオプションを選択した場合は、エラーが警告としてイベント・ログに書き込まれます。また、すべてのエラーを戻り値として含めている複合ステータス・コードが返されます。このオプションはデフォルトで選択されています。
-
[存在しないソースセグメントとプロパティを無視する] — 仮想ドキュメントまたはオブジェクトのプロパティの存在しないソース・セグメントからフィールド値を取得しようとして発生したエラーを無視するかどうかを指定します。このオプションを選択した場合は、これらのエラーが抑制され、指定されたソースが存在しないサブ変換は呼び出されません。このオプションはデフォルトで選択されています。
テストと条件付きロジック分岐を含めて、必要な要素が存在することを確認することにより、この動作を正確に制御できます。
-
[空の繰り返しフィールドをヌルとして扱う] — InterSystems IRIS が空の繰り返しフィールドに対する以下のアクションをスキップするかどうかを指定します。
-
[foreach アクション] — このオプションを選択すると、InterSystems IRIS は、空の繰り返しフィールドに対して foreach アクションを実行しません。
-
[assign アクション] — このオプションを選択すると、source と target の両方のフィールドが繰り返しフィールドであることを示すショートカット表記を使用していて、source フィールドが空の場合、InterSystems IRIS はこれらの繰り返しフィールドに対して assign アクションを実行しません。例えば、source.{PV1:AdmittingDoctor()} フィールドが空の場合にこのオプションを選択すると、InterSystems IRIS は以下のアクションを実行しません。
<assign value='source.{PV1:AdmittingDoctor()}' property='target.{PV1:AdmittingDoctor()}' action='set'
ただし、target フィールドは繰り返しフィールドではないため、InterSystems IRIS は、以下のよく似たアクションは実行します。
<assign value='source.{PV1:AdmittingDoctor()}' property='target.{PV1:AdmittingDoctor(1)}' action='set' />
このオプションは既定では無効です。
-
-
[説明] — データ変換の説明。
[作成] の [既存] オプションの使用法
[作成] の [既存] オプションを使用すると、ターゲットを既存のオブジェクトとして指定できるため、パフォーマンスが向上します。このオプションは、一連の変換をプログラムから呼び出す (またはその他のシーケンシャル処理を実行する) 場合に適用されます。次のようなシナリオで使用されます。
-
順番に実行する 3 つの変換があります。
-
MyApp.ADTTransform — [作成] の [新規] オプションを使用します。
-
MyApp.MRNTransform — [作成] の [既存] オプションを使用します。
-
MyApp.LabXTransform — [作成] の [既存] オプションを使用します。
-
-
次のように変換を呼び出します。
do MyApp.ADTTransform.Transform(message,.target) do MyApp.MRNTransform(target,.newtarget) do MyApp.LabXTransform(newtarget,.outmessage)
変換アクションの編集
この節では、変換内のアクションの追加方法と編集方法について簡単に説明します。この節は以下の項で構成されています。
後半の章では、データ変換で使用される構文、assign アクションの詳細、およびその他の種類のアクションの詳細について説明します。
アクションの追加
アクションを追加するには、次の手順を実行します。
-
オプションで、追加するアクションの種類に応じて、ソースまたはターゲット・プロパティをクリックします。
-
リボン・バーの [アクション追加] ドロップダウン・リストからアクションを選択します。
-
[アクション] タブでこのアクションの詳細を編集します。
該当する場合は、選択したプロパティが [プロパティ] フィールドに表示され、基準として使用されます。必要に応じて、[無効] チェック・ボックスを使用してこのアクションを無効にできます。foreach アクションまたは if アクションを無効にした場合は、そのブロック内のすべてのアクションも無効になります。
後述するように、assign アクションに関するその他のテクニックを使用できます。
アクションの編集
アクションを編集するには、まず、それを選択します。そのためには、以下のように操作します。
-
ダイアグラムの下のテーブルで対応する行をクリックします。
-
ダイアグラムでアクションを表示する場合は、中央の仕切りにある該当するコネクタ線上のアイコンをクリックします。
この項目をクリックすると、その色が変化し、コネクタ線が太くなり、ソース・プロパティとターゲット・プロパティは色付きでハイライト表示されます。これは、下の図のように、コネクタが選択されていることを意味します。
ここで、[アクション] タブ上の値を編集します。必要に応じて、[無効] チェック・ボックスを使用してこのアクションを無効にできます。foreach アクションまたは if アクションを無効にした場合は、そのブロック内のすべてのアクションも無効になります。
ダイアグラム内のプロパティをダブルクリックすると、該当する場合に、現在選択されているアクションが更新されます。ソース内のフィールドをダブルクリックすると、エディタは選択されたアクションの値の設定が必要であると解釈します。同様に、ターゲット・フィールドをダブルクリックすると、エディタは選択したアクションのターゲットの設定が必要であると解釈します。
アクションの再配置
アクションは、ダイアグラムの下のテーブルに表示された順に実行されます。
アクションを並べ替えるには、次のように、DTL ダイアグラムの下のテーブルを使用する必要があります。
-
そのアクションに対応する行をクリックします。
-
必要に応じて、その行内の以下のアイコンのいずれかをクリックします。
ツール 説明 選択したアクションを 1 つ上の位置に移動します。そのアクションがグループ (for each ブロックや if ブロックなど) の最初のアクションである場合は、上に移動してグループの外に配置されます。 選択したアクションを 1 つ下の位置に移動します。そのアクションがグループの最後のアクションである場合は、グループの直後に移動します。例えば、そのアクションが if ブロックの最後のアクションである場合、ブロックの直後に移動します。そのアクションが else の直前の if ブロック内の最後のアクションの場合は、else ブロック内の最初の位置に移動します。 選択されたアクションを現在のグループ (for each ブロックや if ブロックなど) の外に移動します。これにより、アクションは現在のグループからそのグループの直前の位置に移動します。 選択されたアクションを次のアクションのグループ (for each ブロックや if ブロックなど) に移動します。 データ変換のすべてのアクションを削除します。 この行のアクションを削除します。
アクションのグループの操作
group アクションを使用して、複数のアクションを 1 つの表示グループにまとめることができます。アクションをグループ化すると、ダイアグラムの下のテーブルで簡単に編成できます。グループを識別できるように、[アクション] タブで定義した説明がリストに表示されます。
アクションをグループの中または外に移動するには、リスト内でアクションを選択し、 (グループに移動) または (グループから移動) をクリックします。リストをよりわかりやすくするために、リストを確認するときにグループを折りたたんだり、展開したりすることができます。グループを折りたたんで、含まれているアクションを非表示にするには、アクション名の横にある をクリックします。グループを展開するには、 をクリックします。テーブルの [アクション] バーにある ボタンと ボタンを使用して、すべてのグループを一度に折りたたんだり、展開したりすることもできます。
if、for each、switch、および case のアクションによって作成されたアクションのブロックを展開したり、折りたたんだりすることもできます。
変更の取り消し
過去の変更を取り消すには、[元に戻す] ボタン をクリックします。
変換の保存
変換を保存するには、以下のいずれかを実行します。
-
[保存] をクリックします。
-
[名前を付けて保存] をクリックします。次に、新しいパッケージ、クラス名、および説明を指定して、[OK] をクリックします。
-
[コンパイル] をクリックします。このオプションは、変換を保存してからコンパイルします。
変換のコンパイル
変換をコンパイルするには、[コンパイル] をクリックします。このオプションは、変換を保存してからコンパイルします。
変換の削除
変換を削除するには、[Interoperability]→[リスト]→[データ変換] ページという別のページを使用する必要があります。
変換を削除するには:
-
その名前が表示された行をクリックします。
-
[削除] ボタンをクリックします。
-
[OK] をクリックしてこのアクションを確定します。