Magic xpi 逆引き辞典

このセクションの中のトピックは、Magic xpiを使用して異なる統合シナリオを統合する方法についての一般的な概要について提供します。

ここでは各トピックのそれぞれ適切な箇所で､以下の情報を提供を提供しています。

  • 入門と概要

  • ソリューションを実装するために必要な異なるステージ

  • 追加／補足情報

関連トピック：

概要

インストール

コンポーネント

データマッパー

データベース

日付と時刻

配備

開発時の検討事項

Dynamics CRMコネクタ

エンコード

エラー処理

式

JD Edwards Enterprise Oneコネクタ

ライセンス

ナビゲーションとワークスペース

プロジェクトのデバッグ

プロジェクト

Salesforceコネクタ

SAPB1 コネクタ

SAP ERPコネクタ

サーバ

ソース管理

Space

Webサービス


概要

以下のトピックは、Magic xpiでの一般的なシナリオについて説明しています。

保証された配達通知をセットアップするには

長いトランザクションで動作するには

ポーリング・メカニズムをセットアップするには

印刷のためにMagic xpiプロジェクトからファイルを送信するには

データをコンテキスト間で共有するには

値の順序/配列を格納するには

一連の値で繰返すには

2つのコンテキストが同時に同じファイルを更新することを防止するには


保証された配達通知をセットアップするには

このトピックでは､メッセージが配信された時とその結果プロセスが完了した時、どのようにMagic xpiに通知するかを設定する方法について説明しています。

HTTPトリガやWebサービスなど､即時の応答が求められているリクエストをEAIエンジンが受け取ったが、即座の処理や応答が不可能なケースがあります。

このような状況では､以下のことを行う必要があります。

  • リクエスタにリクエストが届いたことを通知するメカニズムを作成します。

  • 到着したリクエストを処理のため確実に保存します。

以下のダイアグラムが処理を表しています。

以下のステップがダイアグラムに示されています。

  1. リクエストがHTTPから送られます。

  2. リクエストが確実な保存場所に保存されます。

  3. リクエストの配信を通知するメッセージが返されます。

  4. 通知とは独立してリクエストが処理されます。

  5. 通知が(例えば、Eメールで)送られます。

ステージ（２）では､リクエスト情報はデータベースやキュー、もしくはファイルに格納す ることも可能です。

実装ステージ

上記の機能を実装するには､以下のステップをMagic xpiのフローに作成する必要があります。

  • リクエストを処理し、永続的なストレージにそれらを格納し、確認(ACK)を送る処理。

  • 保存エリアからリクエストを取得し、リクエストを処理し、それからプロセスの完了通知を送る処理。

この機能は、以下のものを使用することでMagic xpiで実現することができます。

  1. リクエストを受け取るHTTPトリガは、キューにリクエスト情報を格納し、IDを持つ確認をクライアントに返します。

  2. 保存エリアとして機能するMSMQ コンポーネント

  3. リクエストがMSMQコンポーネントに到達するのを待つ追加処理。

リクエストが到着すると、処理が起動されます。次に、リクエストが処理され、成功か失敗かの通知が(例えば、Eメールによって)送られます。


長いトランザクションで動作するには

長いトランザクションは､ワークフロー実装シナリオの分野です。通常、ワークフローの実装シナリオには、ワークフローのプロセスを一旦保留し、ユーザの入力を待ってから継続するユーザ介入ポイントがあります。

Magic xpiを使用した長いトランザクションのソリューションは、Magic xpiフローを実行することにより起動されたステップを含むワークフロープロセスを参照します。長いトランザクションが実行されると、ステップ間のコンテキストを保持する必要があります。これはトランザクションのコンテキストをODSに保存し、次のステップに入る時にコンテキストを読み戻します。

簡単な長いトランザクションの例としては、顧客が特定金額以上の注文を出した場合です。ビジネスプロセスで は、その額を超えた注文においては､会計課で手動で承認を取ることを要求しています。注文プロセスは､会計課が注文依頼を承認もしくは却下するまで中断されることになります。

以下は長いトランザクションで、ひとつのユーザ介入ポイントを達成することが要求されている実施段階の説明です。このプロセスはeMailメッセージと応答フォームのあるHTMLページを使用します。Webサービスやファイル、COMを使用する等、要求機能を実行する他の方法もあります。また、Magic xpiトリガコンポーネントを使用して長いトランザクションから次のステップを起動することもできます。

このプロセスは､以下の3つの大きなステップを含んでいます。

  • 注文の承認を手動で受け付ける為のHTMLフォームを添付したEメールを送信します。

  • 現在のコンテキストデータをODSに保存します。

  • 応答フロー（HTTPトリガ）を起動し、格納されたコンテキストデータを読み出し、フローの残りを実行します。

以下の図が三つのステップを説明しています。

実装ステージ

A. ユーザ介入を準備する

以下のステップは､通常ユーザ介入を必要とするフローの最後に実行されるべきです。

  • 応答するために以下の内容を含む［送信］ボタン付きのHTML文書を用意します。

  • Magic xpiサーバHTTPリクエスタ

  • アプリケーションとしてのMagic xpiサーバ

  • 呼び出されるプログラムは、HTTPでなければなりません

  • 次のフローで使用されるHTTPトリガ名

  • 次のステップでのコンテキストデータ読み出しの為のトランザクションコンテキストIDを含め、実行に必要な他のパラメータ

  • フローデータユーティリティを使用して、トランザクションコンテキストデータをODSに保存します。データは､変数やユーザ情報等あらゆる格納タイプを使用することができます。選択されたコンテキストIDは、ユニークでなければならず、データはそれをキーとして使用します。

  • 作成されたHTML応答フォームを添付したEメールメッセージを用意し送信します。

B. 長いトランザクションで次のステップを起動する

長いトランザクションの次のステップは、長いトランザクションを継続するのに必要な情報を持っているMagic xpi サーバへのHTTPリクエストによって起動されます。

  • 新しいフローをHTTPトリガコンポーネントで作成します。フロー名は応答HTML文書の［送信］ボタンで使用されているものと同じ名前を使用します。

  • フローデータユーティリティを使用して、トランザクションコンテキストデータをコンテキストID（HTTPリクエストパラメータとして渡された）を使用してODSから読み出します。

  • 長いトランザクションをユーザ介入に応じて継続します。


ポーリング・メカニズムをセットアップするには

ポーリングは、EAI/BPM産業においてとても重要なコンセプトです。このトピックでは､Magic xpiがインテグレーションプロジェクトでどのように簡単にポーリング機能を設定できるか、いくつかの方法を紹介しています。

ポーリングとは､他のプログラムやデバイスを一つのプログラム又はデバイスから連続的にチェックし、プログラムやデバイスの状態を監視する機能です。EAI/BPMの世界では、これは特定のFTPアドレスに届くファイルであったり、特定のキューに入力されたメッセージであったり、特定のアドレスに届いたeMailメッセージであったりします。ポーリングデバイスがデバイス（からの信号）が到着したと判断した場合、例えばファイルが特定の場所に作成された場合、デバイスはインテグレーションシナリオで定義した通りに実行される処理を起動します。

このトピックでは､以下のフローについて説明しています。

  • ポーリングを指定されたデバイスで行います。

  • デバイス（からの信号）が到着すると実行を継続する他のフローもしくはステップを起動します。

Magic xpiでポーリングフローを定義する方法がいくつかあります。以下のものを使用することができます。

  • トリガコンポーネント

  • 自動起動､自動繰り返しフロー

実施ステージ

オプション1:トリガ

特定ファイルの到着を常に監視するディレクトリースキャナコンポーネントをトリガとして使用することができます。ファイルが到着すると、トリガがフローもしくはステップを起動し、そのまま次のファイルの到着を監視し続けます。

オプション2:自動起動と自動繰り返しフロー

このオプションでは、［自動起動］と［自動繰り返し］のプロパティをYesに設定してフローを使用します。［自動繰り返し］プロパティでは､フローは最後のフローコンポーネントの実行が終了すると自動的にフローの再実行を行います。言い換えると、このプロパティを使用することでループを作成することができるということです。

ポーリングを有効にするにはフローを以下のように作成します。

  1. フローの最初のステップは特定のデバイス（からの信号）を探します。

  2. デバイス（からの信号）が到着するとフローが実行されます。

  3. デバイス（からの信号）が到着しないとフローは停止します。

  4. ［自動起動］プロパティをYesに 設定すると、フローを起動し直し、最初のステップでデバイスからの最新の信号を探します。

追加情報

このトピックでは､Directory Scannerコンポーネントと関連していますが、ポーリングをメッセージング等、他のコンポーネントで実装することもできます。メッセージングコンポーネントをキューのポーリングを行うトリガとして使用することができます。こそれにより、キューに届くそれぞれのメッセージがイベントを起動し、フローの実行を継続させることができます。


印刷のためにMagic xpiプロジェクトからファイルを送信するには

Magic xpiプロジェクトから印刷するためにファイルを送るには、DOSコマンドを使用する必要があります。

印刷コマンドを設定するには、ファイル管理コンポーネントのCommand Line メソッドを使用してください。

ほとんどの印刷コマンドでは、ファイルを参照するための構文は、ローカルファイルへのパスです。プロジェクトから印刷することができる前に、ファイルをMagic xpiのフローのローカルファイルとして（ファイル管理コンポーネントを使用して)保存する必要があることを意味します。


データをコンテキスト間で共有するには

フロー間でのデータ共有はデータの保全や集中管理を可能にします。

子リニアフローは､親フローのコンテキストあるいはメモリーセグメントの範囲内で実行されます。フロー変数とコンテキスト変数は同じコンテキスト内の全てのフローで共有されます。

パラレルフローは､異なるコンテキストで実行され、独自のフロー変数とコンテキスト変数を持っています。フローが停止するとコンテキストは閉じられ､このフローで使用されていた全てのフロー変数とコンテキスト変数は消去され無くなります。

実行されている他の全てのフローあるいは特定のフローとデータを共有する必要が生じる場合があります。

Magic xpiにおいて、異なるコンテキスト上で動作しているフロー間でデータを共有したい場合、通常はグローバル変数やグローバル ODS、または外部記装置を使用する必要があります。

実施ステージ

フロー間のデータ共有の実際の例は､異なる倉庫の在庫の確認とそれに続く結果の確認です。この処理実装するには以下のようにします。

  • 在庫残高を確認する元のリクエストを処理するフローを作成します。フローは3つの並列分岐(各倉庫に1つ)をもとに作成してください。

  • 実行中、フローは3つの並列分岐を発生させ、それらがリニアの分岐上の［完了を待つ］プロパティを使用して、完成するのを待ちます。これらのフローは在庫残高を調べ、ODSシステムを現在のストック残高で更新し､現在の在庫残高とその倉庫が注文要求に答えられるかを示します。

  • すべての並列分岐が終了したら、フローのリニア部分は継続し、ODSからすべての3棟の倉庫の在庫を読み込み、倉庫の在庫量が注文要件を満たすことができるかどうかを決定します。


値の順序/配列を格納するには

Operational Data Storage (ODS)システムは、複数のフローコンポーネントまたはフローによって共有することができるように、データを保存します。本質的には、ODSは、少容量のデータで多くのクエリが利用できるようにするクイックアクセスのデータストレージです。これはデータウェアハウスとは異なります。これは、大量の情報が格納され、クエリが大容量のデータ上で動作します。

Magic xpi のODSシステムは、ODSに保存されるた各項目のためのエントリを格納するデータテーブルを持っています。ODSに保存されたすべての項目は、フローのシーケンスIDとUserKeyによって識別されます。

データの配列をODS の UserKeyに追加することができます。配列は、同じUserKey で複数の値のストレージを利用することができます。配列における値は、インデックスと呼ばれます。例えば、ODS1_1は、ODS1 の UserKeyにおける最初のインデックスです。

データが多くのソースから到着し、後で順番に処理されなければならない場所で、ODSの配列は並行処理のアーキテクチャで使用されます。従って、マルチスレッド環境においては、データを格納するためにユニークな名前をODSエントリに割り当てることは必要ではありません。

ODSデータは文字、数値、日付、時間、論理そしてBLOBの各データタイプをサポートし、配列内の各値は異なるデータタイプかもしれません。例えば、配列におけるインデックス1は文字で、インデックス2は数値であるかもしれません。

Magic xpi ODSシステムは、これらのデータストレージのモードをサポートします。

  • ローカルフローストレージ(ODSローカル) …… これは同じフロー内の並行ステップで使用するために特定のフローのデータをODSデータベースに保存します。サーバが開始されると、データはODSから消去されます。

  • グローバルストレージ(グローバルODS) …… フロー間のデータを保存するためにこのモードを使用することができます。すべてのフローは、データを取り出すことができます。

実装

ODSリポジトリ内に手動でODSデータを入力することができます。ODSリポジトリには、すべての固定のODSエントリ名と説明が入っています。フローデータユーティリティでODSを使用する時に 使用するODSエントリを選択することができます。

ODSエントリをリポジトリに追加する

ODSエントリをリポジトリに追加するには、以下の手順に従ってください。

  1. ODSリポジトリを開くには、ソリューションエクスプローラの［リポジトリ］セクションで［ODS］をダブルクリックしてください。または、Shift+F6を押下することでODSリポジトリを開くこともできます。

  2. ［ODSリポジトリ］ダイアログボックスで、［追加］をクリックすると新しいエントリを作成することができます。

  3. 以下の情報をリポジトリのカラムに入力してください。

  • 名前 …… ODSデータの名前を入力してください。これはUserKeyです。

  • 説明 …… データの目的の確認に役立つ説明に入力してください。これはオプションです。

  • 範囲 …… グローバルODS、またはローカルODSのどちらかを選択してください。

  4. 情報を入力し終わったら、リポジトリを閉じて、データを保存するために［OK］をクリックしてください。

ODSエントリでデータを管理する

ODSエントリの挿入、更新、削除、消去を行うためにフローデータユーティリティを使用することができます。これはフローの一部として自動的にODSデータを処理します。

  1. フローデータユーティリティを、フローにドラッグしてください。

  2. フローデータユーティリティをダブルクリックするか、右クリックしてコンテキストメニューから［構成］を選択し、［Flow Data設定］ダイアログボックスを開きます。

  3. ［Flow Data設定］ダイアログボックスで、［追加］をクリックして、新規エントリを作成します。サービスを設定するために、以下のガイドラインを使用してください。

  • アクション …… 以下のどれかの動作を選択することができます。

    • Update …… データを置き換えるか、変数に追加します。例えば、ファイルの内容をUserBLOBまたはUserStringに追加することができます。フロー変数の値を変更することもできます。

    • Insert …… データをODSキーインデックスに追加します。インデックスは、ODS配列の一部です。これは1つのODSキーでより多くの複数データを入力することを可能にします。配列のための個々のデータエントリはインデックスの中に含まれています。Insertを選択すると、［インデックス］フィールドは無効になります。ODSレコードが作成される時、次のインデックスとして自動的に作成されます。

    • Delete …… ODSエントリを消去します。これはUserKeyレベルでデータを消去し、UserKeyは存在しなくなります。
      注意： Deleteを選択すると、ODSにおけるすべてのデータが削除されます。

    • Clear …… 内部の値を指定されたODS UserKeyから削除します。しかし、UserKeyは残っていて、いつでもデータを追加したり、変更することができます。

    • Reset …… フロー変数の値を作成時に入力されたオリジナルのデフォルト値に変更します。フロー変数を作成する時にデフォルト値を入力した場合のみ、このオプションが使用されます。

  • タイプ …… ODSローカル/ODSグローバルな(上記を参照)

  • 名前 …… 変数リストから選択してODSデータの名前を入力してください。これは以前に作成された変数のリストです。

  • データタイプ …… データに基づいたデータタイプを設定してください。

  • インデックス …… 例えば、3つの注文が到着した後に、同じODSキーを持つ3つのレコードがあります。これらのレコードのODSインデックスは1、2、および3になります。InsertやUpdate、またはClearを行いたいODSインデックスを入力してください。UpdateまたはClearを行う場合にODS配列内のどのインデックスかを示すためにインデックスを入力したり、新規データを配列に挿入する時に、追加されるインデックス番号を指定するために、インデックスを入力します。このアクションはODSグローバルとODSローカルのデータタイプをサポートします。
    注意： ClearまたはUpdateを選択し、インデックスを入力しない場合、最初のインデックスエントリは更新されるか、消去されます。

  • 更新式 …… ODSへの更新/挿入で使用したいデータを入力してください。

  • 条件 …… これはフリーテキストのフィールドです。更新される条件を示す論理式に入力してください。Trueは、更新が行われることを示します。Falseは、更新されないことを示します。

ODS 関数

Magic xpiは、以下のODS関数を提供します。

  • ODSArrayCnt …… この関数は指定されたODS配列内の要素をカウントします。

  • ODSExists …… この関数は、指定されたODSインデックスがODSデータベースに存在しているかどうかをチェックします。

  • ODSGet …… この関数は、指定されたODSエントリの値を取り出します。


一連の値で繰返すには

Magic xpi で一連の値を繰返すには、3つの異なる方法があります。

  • 自動繰り返し

  • GoTo

  • フロー呼出

自動繰り返し

［フロープロパティ］ダイアログボックスでこのオプションを定義します。自動繰り返しは、フロー内で最後のフローコンポーネントが完了すると、サーバが再びフローを呼び出すかどうかを指定します。ループ効果を作成するためにこの機能を使用することができます。

GoTo

フロー内で、1つの分岐の実行が完了した時、どのコンポーネントを実行すべきかを指定することができます。Magic xpiのGoToコマンドを使用してこれを行うことができます。GoToコマンドを使用するには以下のようにします。

  1. 移動したいコンポーネントを選択してください。

  2. 右クリックして、［GoTo］を選択してください。

  3. 移動したいコンポーネントを選択してください。

  4. Magic xpi は接続をします。

これらのステップが完了したら、Magic xpiは、次に実行されるコンポーネントを示す点線が表示されます。

以下の場合にのみ、GoToコマンドを使用することができます。

  • 共通の親コンポーネントを共有するコンポーネントを使用している場合。

  • リニアのコンポーネント、またはリニア分岐内のコンポーネントを指定している場合。

フロー呼び出し

これは、送り先の定義の一部としてデータマッパユーティリティで利用可能なオプションです。データソースからのデータによって呼び出されるフローの回数に応じて、複数回のループを作成するためにフロー呼び出しを使用することができます。

例

この例は、XMLフォーマットで顧客からの注文を受け取ることを仮定しています。XMLファイルには、必要なすべての項目と数量が含まれています。各注文は、異なる数の項目を含んでいるかもしれず、注文に対する全体の在庫量をチェックするための仕組みを設定する必要があります。

  1. 2つの新しいフローを作成してください：FlowAとFlowB。

  2. 2つの新しいフロー変数をFlowBに追加してください：F_Items と F_Amount 。

  3. データマッパユーティリティをFlowAにドラッグしてください。

  4. データマッパーをダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  5. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしでください。

  6. XML送り元の［プロパティ］ペインで、のXML送り元を設定してください。

  7. ツールボックスの［マッパスキーマ］セクションから、フロー呼び出しタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  8. フロー呼び出しの送り先の［プロパティ］ペインで、FlowBを選択してください、次に［保存］をクリックしてください。

  9. ［データマッパー］ウィンドウで、値をXMLファイルから2つのフロー変数にマッピングしてください。

  10. ［データマッパー］ウィンドウで、送り元の複合要素を送り先カラムのフロー名にマッピングしてください。

これによって、注文の中に含まれている項目数と一致するまで、2番目のフローが何度も呼び出されることになります。


2つのコンテキストが同時に同じファイルを更新することを防止するには

一方のコンテキストがテキストファイルを更新し、それを保存すると、他のコンテキストが保存したファイルの変更が失われるかもしれません。

この問題を解決するには、Magic xpi のロックリソースサービスを使用することができます。ロックリソースサービスは、フローロジックの重要なセクションでロックすることを可能にします。このセクションにユニークな名前を指定します。これはロックシステムに追加されます。ロックを開放するには、アンロックリソースサービスを使用します。

プロセスがこの重要なセクションに達すると、ロックされたとしてフラグを設定します。このセクションに達している他のプロセスは、ロックされたセクションでリソースを修正することができません。

ロックが開放されるまで待つことになります。無制限にロックされないようにするするにために、タイムアウトを定義することもできます。

関連トピック：

ロックユーティリティ


インストール

以下のテクニカルノートは、Magic xpiの一般的な問題について扱っています。

Magic xpa3.xとMagic xpi4.x の両方を同じPCにインストールする


Magic xpa3.xとMagic xpi4.x の両方を同じPCにインストールする

Magic xpa3.xとMagic xpi4.xを同じPCにインストールするには、一方のインストール(GigaSpacesとMagic xpa の両方に対して)のデフォルトのディスカバリポートを変更する必要があります。

例えば、Magic xpi を変更すると決めた場合、以下を行ってください。

  1. magicxpi-setenv.batファイルで、次の行を有効にしてください： set DISCOVERY_PORT=<my new port value>

これによって、新しいディスカバリポートがGigaSpacesインフラストラクチャーに設定されます。

  2. Magic.ini、ife.ini、およびifm.iniファイルで、新しい特性をJVM_ARGSセクションに追加してください： -Dcom.gs.multicast.discoveryPort=<my new port value>

これは、デフォルトのディスカバリポートをサーバ、スタジオ、およびモニタに設定します。運用環境だけで使用する場合は、Magic.iniファイルのこの値を変更するだけですみます。

Magic xpi4.5から、ife.iniとifm.iniファイルはインストール処理の対象でなくなりました。

また、Webリクエスタまたはコマンドラインリクエスタ用にポートを設定する必要があります。

  • mgreq.iniファイル(コマンドライン用はルートフォルダ、Webリクエスタ用はScripts\configフォルダ内)のlocatorの設定行に移動し、以下の構文を使用してポートを追加してください： <locator>:<port>


コンポーネント

以下のトピックは、Magic xpiのコンポーネントについて扱っています。

Magic xpaからMagic xpiプロジェクトを呼び出すには

Magic xpi でMagic xpaのユーザ定義関数を使用するには

Magic xpiを使用して、Sugar にクオートを作成するには

ApacheのActiveMQを使用したJMSコンポーネントを設定するには

HTTPトリガを作成するには

Magic xpi で JD Edwards Enterprise One の呼び出しを暗号化するには

JD Edwards Enterprise One で新しい顧客レコードを作成するためにMagic xpiを使用するには

Exchangeコネクタを使用する時に、任意のタイムゾーンでミーティングを設定するには

GigaSpacesのサービス開始時にMicrosoft Excelコンポーネントを動作させるには

IISをWebサーバとして使用する際に、HTTPリクエストのヒープサイズを変更するには

MSMQを使用するには


Magic xpaからMagic xpiプロジェクトを呼び出すには

Magic xpaの［コールリモート］処理コマンドを使用してMagic xpiのプロジェクトを呼び出すことができます。

このために必要なセットアップは、Magic xpaをどこから実行しているかに依存します。2つの異なる方法でこれを実行することができます。

  • Magic xpiをインストールする時に、インストールされるMagic xpaから

  • スタンドアロンのMagic xpa から

Magic xpaとMagic xpi を同じPCにインストールしたい場合、次を参照してください：Magic xpa3.xとMagic xpi4.x の両方を同じPCにインストールする

Magic xpa Studioはインストーラーによって生成されたショートカットを使用して起動する必要があります。

Jarファイルを定義する

両方のシナリオで、<Magic xpiインストール>\Runtime\java\lib フォルダからMagic.iniファイルに定義された Magic xpaのCLASSPATHエントリに 以下のjar ファイルをコピーする必要があります。

  • commons-lang3-3.1.jar

  • jaxp-xercesImpl.jar

  • log4j-1.2.16.jar

  • log-commons-logging.jar

  • mgxpi-commons.jar

  • mgxpi-gs.jar

  • uniRequester.jar

  • xpicommons-gs.jar

スタンドアロンのMagic xpa を使用している場合、<Magic xpiインストール>\Runtime\GigaSpaces\lib\ から全てのjar ファイルを追加する必要があります。

Magic xpaとMagic xpi で使用される Java Runtimeのバージョンが同じであることを確認してください。

Magic xpi の実装ステップ

コンポーネントSDKで作成されたトリガを使用している場合、Magic xpi では何もする必要がありません。

コンポーネントビルダで作成されたトリガを使用している場合、以下を行う必要があります。

  1. Magic xpiを開いてください。

  2. ［プロジェクト］メニューを選択し、［設定］を選択してください。

  3. HTTPサービスを追加してください。

  4. Webサーバとエイリアスを入力してください。

  5. ［エンドポイント］ボタンをクリックしてください。

  6. ダイアログボックスの左下の［追加］をクリックしてください。

  7. 引数を追加するために、ダイアログボックスの右下の［追加］をクリックしてください。

  8. ［サンプルHTMLの作成］チェックボックスを選択してください。

  9. ［エンドポイントURL］を記録してください。Magic xpa でサーバを定義している時に、これが必要になります。

Magic xpa の実装ステップ

Magic xpa で、サーバとサービスを作成する必要があります。

Magic xpiサーバを作成する

  1. Magic xpaを開いてください。

  2. ［オプション］メニューから、［設定］、次に［サーバ］を選択してください。

  3. 新しいサーバを定義し、［サーバタイプ］にMagic xpi Spaceを設定してください。

  4. ［サーバアドレス］カラムで、以下の値(Spaceとの接続)を定義してください。 SpaceName=MAGIC_SPACE&LookupGroupName=<name>&LookupLocators=<host:[port]>

    例えば： SpaceName=MAGIC_SPACE&LookupGroupName=Magic_xpi_4.5_YARIVM-WIN7&LookupLocators=YARIVM-WIN7:4174

LookupGroupName／LookupLocators の値は、Magic xpiのMagic.iniファイルから削除してください。LookupLocators プロパティに値が設定されていない場合、エントリは等号(=)までの状態で残しておいてください。

Magic xpiサービスを作成する

  1. Magic xpaの［オプション］メニューから、［設定］、次に［サービス］を選択してください。

  2. 新しいサービスを定義し、前のセクションで作成したサーバを選択してください。

  3. ［エンドポイント］カラムで、Magic xpiのプロジェクト名(例えばC_Remote)を入力してください。

Magic xpa からMagic xpi の呼び出し（［コールリモート］処理コマンド）

定義したサービスを呼び出すため、Magic xpaの［コールリモート］処理コマンドを使用することができます。

Magic xpi へのコールリモートは、文字とBLOBのタイプのみ戻すことができます。

コンポーネントSDKで作成されたMagic xpiトリガを呼び出すか、Webリクエスタ(IIS)を通さないk Magic xpi のHTTPトリガを呼び出すことができます。

  • コンポーネントSDKで作成されたMagic xpaトリガを使用している場合、次の行をMagic xpaプログラムに追加してください：<サービス名>.prgName(<Magic xpi プロジェクト名>)

  • HTTPトリガを使用している場合、Magic xpiで定義されたエンドポイントの名前(例えば、HTTP_1#Trigger1)を使用してください。


Magic xpi でMagic xpaのユーザ定義関数を使用するには

Magic xpaのユーザ定義関数をMagic xpiのプロジェクトで使用することができます。これを行うには、以下の手順に従ってください。

Magic xpi

Magic xpi で、以下の手順に従ってください。

  1. ［プロジェクト］メニューから、［設定］を選択してください。［設定］ダイアログボックスが開きます。

  2. ［設定］ダイアログボックスの［一般的な環境］セクションで、［ユーザ環境変数］をクリックしてください。

  3. ここに設定されたパスを記録してください。

この設定は、Magic xpiのMagic.iniファイル(<Magic xpiインストール>\Runtime\Magic xpaフォルダ)の [MAGIC_LOGICAL_NAMES]セクションで定義することもできます。

Magic xpa

Magic xpa で、以下の手順に従ってください。

  1. 新しいプロジェクトを作成してください。

  2. ユーザ定義関数を作成してください。

  3. Magic xpiのUserFunctionsLocation設定(上記で説明)で定義された名前と同じであることが確認されたこのプロジェクトのキャビネットファイルを作成してください。

  4. ファイルをMagic xpiのUserFunctionsLocation設定で定義されたパスに保存してください。例えば：C:\Magic xpi 4.6\Runtime\User resources\UserFunctions.ecf

Magic xpi

Magic xpiに戻って、以下の手順に従ってください。

  1. <Magic xpiインストール>\Studio\FunctionDescription.xml ファイルを開き、必要であれば戻りタイプとパラメータを含めて、関連した詳細情報を定義した関数をリストに追加してください。以下のような既存の関数をコピーし、DisplayNameやReturnValue、Description の各タグ、<Parameters> 、および他の関連したすべてのタグを編集することによって、これを行うことができます。

    <Function>
    <DisplayName>ABS</DisplayName>
    <ReturnValue>N</ReturnValue>
    <HideItem>N</HideItem>
    <MinArgNum></MinArgNum>
    <MaxArgNum></MaxArgNum>
    <Obsolete></Obsolete>
    <HelpID>9032</HelpID>
    <FunctionSignature></FunctionSignature>
    <Description>Returns the absolute value of a real number, without regard to sign.</Description>
    <Parameters>
    <Parameter>
    <Name>number</Name>
    <Type>N</Type>
    <Description>Any number.</Description>
    </Parameter>
    </Parameters>
    </Function>

  2. Studioを開き、新しく作成された関数が式エディタで利用可能であることを確認してください。

  3. データマッパーで新しい関数を使用するために、objectidとして関数をcomps.expファイルに追加する必要があります。これは<Magic xpiインストール>\Runtime\Templates\Mapperフォルダに配置されています。テキストをファイルにコピーし、Component nameやMciFile valタグ、およびPublicName valタグの値を更新することで、これを行うことができます。

    Component name="UserFunction">
    <CompId val="463816514-25434-19825-92354D96D"/>
    <MciFile val="C:\Magic xpi     4.6\Runtime\Magic Xpa\Builders\ECI\userfunctions\UserFunction.eci"/>
    <ComponentType val="Magic xpa"/>
    <Type val="U"/>
    <CABINET_FILE val="%UserFunctionsLocation%"/>
    <LoadImmediate val="Y"/>
    <CtlIndex val="6"/>
    <LastISN val="1"/>
    <ComponentFuncs>
    <Object>
    <id val="1"/>
    <ItemIsn val="1"/>
    <PublicName val="userfunctionsTest"/>
    </Object>
    </ComponentFuncs>

Since version:

4.5


Magic xpiを使用して、Sugar にクオートを作成するには

Magic xpiを使用し、Sugarのクォートを作成するには、以下の手順に従ってください。

  1. クォートを作成するために、Sugar XMLインタフェースを使用してください。.

  2. 製品バンドルを作成するために、Create Product Bundles メソッドを使用してください。

  3. 量や価格、および関連した割引率などの値を定義を確認し、クォートに格納したい製品を作成してください。

  4. 製品バンドルと製品をリンクするために、Linkメソッドを使用してください。

  5. クォートと製品バンドルをリンクするために、 Linkメソッド を使用してください。

クォートのシナリオは、コネクタのレガシーAPIの実装ではサポートされていません。


ApacheのActiveMQを使用したJMSコンポーネントを設定するには

Magic xpiのJMSコンポーネントは、JNDI APIを使用しているApache ActiveMQサーバを使用して動作します。利用するには、ActiveMQ（バージョン5.5.1)からメッセージを読み書きするためにプロジェクトを適切に設定する必要があります。

  1. この例では、ActiveMQはQueTestと呼ばれる一つのキューをを持っています。

  2. ActiveMQと呼ばれるフォルダをMagic xpiのルートに追加します。

  3. \libフォルダから、jarファイルを\ActiveMQ\フォルダにコピーします。

  4. 次に、jarファイルをMagic.iniの[CLASSPATH]セクションに追加して、サーバがファイルを読み込むようにします。クラスパスのサイズを保存するために、ActiveMQフォルダが追加され、相対パスは使用されます。

    以下は、新しいクラスパスのjarファイルの例です。

CLASSPATH=ActiveMQ/activation-1.1.jar;ActiveMQ/activemq-camel-5.5.1.jar;Act+

iveMQ/activemq-console-5.5.1.jar;ActiveMQ/activemq-core-5.5.1.jar;ActiveMQ/+

activemq-jaas-5.5.1.jar;ActiveMQ/activemq-protobuf-1.1.jar;ActiveMQ/activem+

q-web-5.5.1.jar;ActiveMQ/camel-core-2.7.0.jar;ActiveMQ/camel-jetty-2.7.0.ja+

r;ActiveMQ/camel-jms-2.7.0.jar;ActiveMQ/camel-spring-2.7.0.jar;ActiveMQ/ger+

onimo-j2ee-management_1.1_spec-1.0.1.jar;ActiveMQ/geronimo-jms_1.1_spec-1.1+

.1.jar;ActiveMQ/geronimo-jta_1.0.1B_spec-1.0.1.jar;ActiveMQ/jaxb-api-2.1.ja+

r;ActiveMQ/jaxb-impl-2.1.6.jar;ActiveMQ/kahadb-5.5.1.jar;ActiveMQ/stax-1.2.+

0.jar;ActiveMQ/stax-api-1.0.1.jar;ActiveMQ/slf4j-log4j12-1.5.11.jar;ActiveM+

Q/log4j-1.2.14.jar;ActiveMQ/jcl-over-slf4j-1.5.11.jar;ActiveMQ/slf4j-api-1.+

5.11.jar;ActiveMQ/OR_JNDI.jar

  5. 最後のjarファイル（OR_JNDI.jarと呼ばれる）は、作成する必要があります。これは、jndi.propertiesファイル（ActiveMQドキュメントによって必要となります)を保持します。例えば、OR_JNDI.jarファイルの内容は次の通りです。

java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
# use the following property to configure the default connector
#java.naming.provider.url = vm://localhost
java.naming.provider.url = tcp://localhost:61616
# use the following property to specify the JNDI name the connection factory
# should appear as.
connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry
# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.QueTest = QueTest
# register some topics in JNDI using the form
# topic.[jndiName] = [physicalName]
topic.MyTopic = example.MyTopic

  6. Magic.iniファイルの［JVM_ARGS］セクションで、以下の値を追加する必要があります。

    Djava.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitial+
    ContextFactory -Djava.naming.provider.url=tcp://localhost:61616

  7. 次に、Magic xpiリソースを設定してください。Magic xpiプロジェクトで、リソースを定義します。Connection Factory Nameパラメータを、queueConnectionFactoryに設定しなければなりません（これは、jndi.propertiesファイルの値と一致します)。

  8. 最後に、Queue NameパラメータをQueTestに設定する必要があります。

参考：

Apache ActiveMQ: http://activemq.apache.org/

Ver5.5.5のダウンロード（このサンプルで使用）

http://archive.apache.org/dist/activemq/apache-activemq/5.5.1/apache-activemq-5.5.1-bin.zip


HTTPトリガを作成するには

コンポーネントをMagic xpiエディタのメインエリア､またはトリガコンポーネントセクションに追加することができます。コンポーネントをトリガコンポーネントセクションに含めると、トリガコンポーネントが適切な情報を受信した場合、これらのコンポーネントはフローを起動します。このトピックでは､HTTPコンポーネントをトリガとして使用するフローの作成方法について説明しています。

以下は､適切な情報をHTTPトリガに返すフローとフローデータユーティリティを呼び出す、HTTPトリガを使用するプロセスの作成の実装ステージの説明です。

下の図はどのようにプロセスが動作するかを示しています。

プロセスは､以下の主要なステップを含んでいます。

開始前とステージ 1

  • Magic xpiサーバへリクエストを送るWebページが読み込まれます。

  • リクエストは、HTTPトリガコンポーネントを実行するフォーマットでMagic xpiサーバに送られます。

ステージ 2

  • HTTPトリガコンポーネントがフローを起動します。

ステージ 3

  • フローは様々な"Update"アクションが定義されたフローデータユーティリティを含んでいます。

  • フローデータユーティリティが終了すると､フローはHTTPトリガにユーザBLOBで応答を返します。

ステージ 4

  • プロセスが終了し、HTTPトリガは適切な情報をMagic xpiサーバのHTTPリクエスタに送ります。

HTTPトリガを使用して動作する時に、戻されるHTTPヘッダをコントロールすることについてのビデオデモンストレーションを参照するには、ここをクリックしてください。


Exchangeコネクタを使用する時に、任意のタイムゾーンでミーティングを設定するには

StartとEndの要素は、XMLの dateTimeフォーマットを使用します。これは、YYYY-MM-DDTHH：MM：SSまたはYYYY-MM-DD HH：MM：SSのどちらかです。2番目の例は、一番目と同じ構文ですが、Tが空白に置き換えられます。StartとEndの要素では、タイムゾーンのオフセットを含めないでください。オフセットは、MeetingTimeZone要素に設定する必要があります。

例えば、StartまたはEnd の値は、 2015-01-31T09:00:00 または 2015-01-31 09:00:00であるかもしれません。 これは、XML のdateTimeフォーマットで有効な構文であるため、日付と時間の区切り文字がハイフン(-)とコロン(：)であることに注意してください。StartとEnd要素に設定した値がこの構文で評価されることを確認してください。

値がデータマッパーのMeetingTimeZone要素に設定されない場合、ローカルPCのタイムゾーンが使用されます。値が要素に設定されている場合は、PCのタイムゾーンを上書きします。

明示的にUTCタイムゾーンを設定したい場合は、UTCをMeetingTimeZone要素に入力してください。

  • MeetingTimeZone要素は、文字タイプです。

  • daylight savingまたはstandard timeは、MeetingTimeZone要素に設定された値に基づいて、自動的に計算されます。

  • 以下は、MeetingTimeZone要素で有効な構文です。

    • 以下は、リストに表示されるj値です。 http://tutorials.jenkov.com/java-date-time/java-util-timezone.html.。値は大文字小文字を区別しません。

または:

    • +hh:ss. これはタイムゾーンのオフセットです。この部分は、UTCを参照して常に計算されます。ここでは、常にコロン(：)が使用されなければならないことに注意してください。

    • 無効な値が設定された場合、実行中を例外が発生します。


GigaSpacesのサービス開始時にMicrosoft Excelコンポーネントを動作させるには？

Microsoft Excelコンポーネントは、GigaSpacesがサービスとして起動したときに動作するように、追加の設定が必要です。

そのためには、以下の手順で行います。

  1. スタートメニューを表示します。「Component Services」と入力して、Component Servicesエクスプローラーを開きます。または、［コントロールパネル］の「管理ツール」から開くこともできます。

  2. ［Component Services」→「My Computer」→「DCOM Config」の順に選択します。

  3. DCOM Config "メニューで "Microsoft Excel Application "を探します。

  4. その上でパークし、右クリックしてプロパティダイアログを開きます。

  5. Identity "タブを開き、"This user "オプションを選択します。

  6. ログインしているユーザーの認証情報（ユーザー名とパスワード）を入力します。

  7. 変更内容を保存し、システムを再起動します。システムを再起動したら、GigaSpacesをサービスとして起動します。

これでMicrosoft Excelコンポーネントが正常に動作するようになります。


IISをWebサーバとして使用する際に、HTTPリクエストのヒープサイズを変更するには

ヒープサイズは、<Magic xpi Installation> \ Runtime \ scripts \ configフォルダーの下にあるsettings.xmlファイルで変更できます。

このファイルで、以下のセクションを探してください。

<!-- <JvmSettings>

<JvmCustomOptions>

<add Option="Xms512m"/> <add Option="-Xmx1024m"/>

</JvmCustomOptions> -->

<!--please set mem values in both section above and below this line -->

<!-- <JvmMemory InitialHeapSizeInMB="512" MaximumHeapSizeInMB="1024"/>

</JvmSettings> -->

このセクションのコメントを解除し、必要に応じてInitialHeapSizeInMB およびMaximumHeapSizeInMB の値を変更してください。


MSMQを使用するには

Magic xpiのMSMQコンポーネントは､MSMQサーバに接続することができます。MSMQコンポーネントは、トリガおよびフロー内のステップとして使用することができます。コンポーネントをトリガとして使用する場合、ポーリング機能を設定することができます。コンポーネントをステップとして使用する場合は､キューの開始と終了等、様々なアクティビティを実行させることができます。

このコンポーネントをフローエリアで使用した場合、以下のような簡単に使用することができるインターフェースを提供します。

  • ダイレクアクセスメソッド

  • XML

必要条件

MSMQコンポーネントを使用するには以下の条件が必要です。

  • MSMQがインストールされ実行している。

  • プロジェクトで使用されるユーザキューが存在するかの確認が必要です。

MSMQ 実装例

ここでは様々な方法でMSMQキューにアクセスする手順の例を提供します。この例に基づいてプロ ジェクトを実行するには､以下のことをする必要があります。

  1. MSMQ サービスを開始します。

  2. 二つの新しいキューを追加します：SampleQueue と SampleQueue1

  3. プロジェクトに数値タイプのHandleQueueというグローバル変数を追加し、デフォルト値を100に設定します。

Tこのトピックには、以下の例があります。

  • Send オペレーション

  • Get オペレーション

  • トリガとしてのMSMQ


MSMQ コンポーネントのメソッドインタフェースを使用するには

このセクションは、MSMQコンポーネントのメソッドインターフェースをどのように使用するかについて説明しています。

  1. ［設定］ダイアログボックスの［リソース］セクションでMSMQをリソースとして定義してください。詳細は、ここをクリックしてください。

  2. MSMQコンポーネントをフローエリアにドラッグしてください。

  3. ［インターフェース］をメソッドとして定義し、［構成］をクリックします。［ダイレクトアクセスメソッド:MSMQ］ダイアログボックスが開きます。

  4. ［新規］をクリックし、使用したいメソッドを選択します。

  5. ［メソッド詳細］セクションで異なるパラメータの詳細を入力します。太字のパラメータは必須です。

  6. 必要に応じて上記のステップ#3と#4を繰り返し、メソッドを追加します。

  • メソッドは､［名前］カラムの並び順に順次実行されます。

  • メッセージを送りたい場合は、その順序でOpen、Send、そしてCloseを使用してください。


MSMQ コンポーネントのXMLインターフェースを使用するには

このセクションは､MSMQコンポーネントのXMLインターフェースの使用方法について説明しています。

  1. ［設定］ダイアログボックスの［リソース］セクションでMSMQをリソースとして定義してください。詳細は、ここをクリックしてください。

  2. MSMQコンポーネントをフローエリアにドラッグしてください。

  3. MSMQコンポーネントの［プロパティ］ペインで、インタフェースをXMLと定義してください。

送り先オブジェクトは既に定義され、設定されています。これは送り先はMSMQコンポーネントのXSDファイルに基づいているからです。 独自のソースファイルを使用したり、送り先を返す式を使用することもできます。

  4. MSMQコンポーネントをダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  • データマッパーにはマッピングすることができる全てのパラメータを含んでいます。 必須パラメータは表示されません。

  • 各メソッドは､複合要素として表示されます。


メッセージをキューに送信するためにMSMQ コンポーネントを使用するには

以下のステップは、どのようにMSMQコンポーネントを使用してメッセージをキューに送るかを説明します。

  1. ［設定］ダイアログボックスの［リソース］セクションでMSMQをリソースとして定義してください。詳細は、ここをクリックしてください。

  2. 新しいフローを作成します。

  3. フローエリアにMSMQコンポーネントをドラッグします。.

  4. ［プロパティ］ペインの［設定］セクションで、MSMQリソースが選択されていることを確認してください。

  5. ［プロパティ］ペインの［汎用］セクションで、［インタフェース］をメソッドと定義してください。

  6. MSMQコンポーネントをダブルクリックするか、右クリックして［設定］をクリックしてください。

  7. ［MSMQ構成］ダイアログボックスで、［追加］をクリックし、Openメソッドを追加してください。以下にで表示されているように、パラメータに必要な値を入力してください。

  8. ［追加］をクリックしSend メソッドを追加し、以下のようにパラメータの詳細を入力します。

Queue Handleパラメターは､キューの最初から最後まで同一である必要があります。

  9. ［追加］をクリックして Closeメソッドを追加し、以下のようにパラメータを入力します。

  10. ［OK］をクリックしてオペレーションの設定を確認します。

  11. ソリューションエクスプローラで、フローで右クリックし、コンテキストメニューから［プロパティ］を選択してください。

  12. フローの［プロパティ］ダイアログボックスで、Auto start = Yes でフローを定義してください。Auto start = No のメッセージを送るフローを作成してください。

  13. キューの中身を確認するには､マイコンピュータアイコンを右クリックし、［管理］を選択します。

  14. 以下のように進みます。サービスとアプリケーション > メッセージキュー > 専用キュー > SampleQueue > キューメッセージ

  15. Magic xpiモニタとMagic xpiサーバを開始します。

  16. キューメッセージでメッセージを確認することができるため、プロジェクトの動作をモニタで追跡することができます。


キューからメッセージを受信するためにMSMQ コンポーネントを使用するには

以下のステップは､どのようにMSMQコンポーネントを使用し、キューを取得するかを説明します。

  1. ［設定］ダイアログボックスの［リソース］セクションでMSMQをリソースとして定義してください。詳細は、ここをクリックしてください。

  2. プロジェクトに新規のフローを作成します。

  3. フローエリアにMSMQコンポーネントをドラッグします。.

  4. ［プロパティ］ペインの［設定］セクションで、MSMQリソースが選択されていることを確認してください。

  5. ［プロパティ］ペインの［汎用］セクションで、［インタフェース］をメソッドと定義してください。

  6. MSMQコンポーネントをダブルクリックするか、右クリックして［設定］をクリックしてください。

  7. ［MSMQ構成］ダイアログボックスで、［追加］をクリックし、Openメソッドを追加してください。以下にで表示されているように、パラメータに必要な値を入力してください。

  8. ［追加］をクリックしGet メソッドを追加し、以下のようにパラメータの詳細を入力します。

Queue Handleパラメターは､キューの最初から最後まで同一である必要があります。

  9. ［追加］をクリックして Closeメソッドを追加し、以下のようにパラメータを入力します。

  10. ［OK］をクリックしてオペレーションの設定を確認します。

  11. ソリューションエクスプローラで、フローで右クリックし、コンテキストメニューから［プロパティ］を選択してください。

  12. フローの［プロパティ］ダイアログボックスで、Auto start = Yes でフローを定義してください。Auto start = No のメッセージを送るフローを作成してください。

  13. キューの中身を確認するには､マイコンピュータアイコンを右クリックし、［管理］を選択します。

  14. 以下のように進みます。サービスとアプリケーション > メッセージキュー > 専用キュー > SampleQueue > キューメッセージ

  15. Magic xpiモニタとMagic xpiサーバを開始します。

  16. キューメッセージでメッセージを確認することができるため、プロジェクトの動作をモニタで追跡することができます。


トリガとしてMSMQ コンポーネントを使用するには

以下のステップは､MSMQをトリガとしてどのように使用するかを説明しています。

MSMQコンポーネントをトリガとして使用する場合、受信メッセージによってコンポーネントが実行され、それにによってフローが起動されます。メッセージは､ユーザBLOB内のフローに送られます。

  1. この例の目的のため、キューにメッセージを送るフローを定義する必要があります。フローを作成し、キュー名をprivate&\SampleQueue1に変更します。

  2. ［設定］ダイアログボックスの［リソース］セクションでMSMQをリソースとして定義してください。詳細は、ここをクリックしてください。

  3. ［設定］ダイアログボックスの［サービス］セクションでMSMQをサービスとして定義してください。詳細は、ここをクリックしてください。

  4. MSMQコンポーネントをMagic xpiのトリガエリアにドラッグしします。

  5. MSMQコンポーネントをダブルクリックするか、右クリックして［設定］をクリックしてください。［コンポーネント構成：MSMQ］ダイアログボックスが開きます。

  6. 以下のようにパラメータの詳細を入力します。パラメターの説明は、こちらです。

  7. ［OK］をクリックしてオペレーションの設定を確認します。

  8. Save Messageユーティリティをフローにドラッグし、以下のようにパラメータの詳細を入力します。

  9. Magic xpiモニタとMagic xpiサーバを開始します。

  10. Magic xpiモニタのユーザメッセージを参照する場所でプロジェクトの動作を追跡することができます。メッセージをダブルクリックして参照することができます。


データマッパー

以下のトピックは、Magic xpiのでデータマッパーについて扱っています。

XML要素をチェックするには

データマッパーのデータベースウィザードを使用しないで、SQLステートメントを作成するには

データマッパーを使用してデータベース処理を実行するには

DB2/400データベースに対する言語サポートを作成するには

ダイナミックなテキストファイルを作成するには

テーブル内の他のカラムの値でテーブルカラムを更新するには

フラットファイル送り元から送り先に負数を設定するために、データマッパーを使用するには

Multi-Occurrence 複合物から特定のデータを取得するには

兄弟要素のデータに基づくMulti-Occurrence 複合物から特定のデータを取得するには

特定のインスタンスにマッピングするには

特定のインスタンスからマッピングするには

独立した送り元と順序/行構成にリンクするには

変換テーブルを使用するには

データ要素を統一するには

データ要素を分割するには

ヘッダと行レコードの両方を含むフラットな構造を階層的なXMLにマッピングするには

送り元上で発生した繰返しをカウントするには

Multi-Occurrence 複合物から単一データ要素を取り出すには

データマッパーの特定の要素を検索するには

反復可能な複合物の中に、特定の数の項目を作成するには


XML要素をチェックするには

XML内に要素が存在するかどうか調べるために、2つの簡単なオプションがあります。

  1. XML処理コンポーネントのCheck Existsメソッドの使用。

  2. データマッパーの送り元としてXMLを使用。［送り先］ペインに論理変数を定義して、送り元内に要素が存在するかどうか調べるために、XMLExist関数を使用します。


データマッパのデータベースウィザードを使用しないで、SQLステートメントを作成するには

Home > Magic xpi 逆引き辞典 > データマッパー > データマッパーのデータベースウィザードを使用しないで、SQL文を作成するには

データマッパーのデータベースウィザードを使用しないで、SQLステートメントを作成するには

Magic xpiデータユーティリティは､データのマッピング時に、素早く簡単に使用するSQL文を作成することができるウィザードを提供しています。開発の自由度を広げるために、ウィザードを使用せずSQL文を手動で作成することもできます。

手動でSQL命令文を作成するには、データマッパユーティリティをフローにドラッグします。［送り元送り先］ダイアログボックスで送り元、または送り先としてデータベースを選択し、［プロパティ］をクリックし［データベーススキーマプロパティ］ダイアログボックスを開きます。ウィザードを実行し、必要なテーブルとカラムを選択します。次に［データベーススキーマプロパティ］を開き、ダイアログボックスの下部にある［SQL］をクリックし、［SQL命令文］画面を開きます。基本的なデータベーススクリプトの規則に従って［SQL命令文］フィールドにSQL文を入力します。もし現在のオブジェクトがソースデータオブジェクトである場合、Select文のみ使用できます。もし現在のオブジェクトが送り先データオブジェクトである場合は､Update、Insert、そして Delete文のみ使用できます。

フロー変数が入力されると、このようにクエスチョンマーク（？）と大小記号 （<>）で囲まれます： <?フロー変数名?>。ExampleやOrder By等、他の有効なSQL文を使用することもできます。

JOINを使用して命令文で複数のテーブルを使用することもできます。ウィザードで複数のテーブルが選択された場合、ウィザードでの選択に従い、JOIN文が自動的に作成されます。

データマッパユーティでのSQL文の注意点

  • 全てのデータベースタイプをサポートするためにステートメントではANSI記号を使用してください。

  • データマッパユーティリティは､ユニオンをサポートしていません。ビジュアルマッパでは表示されません。

  • データマッパーは、空白が含まれるフィールド名をサポートしていません。

  • 文字列は､シングルクオーテーション(')で囲ってください。

  • 他のデータベースに接続するにはデータベースのオーナに通知してください。接続したいデータベースがプロジェクトで使用するMagic xpiの内部データベースである場合はその必要はありません。

  • フィールドや関数にワイルドカードを使用することはできません。個別に指定するかエイリアスを作成してください。

例

この例は手動でSQL文を作成し、以下のテーブルを更新する方法を説明します（データ マッパユーティリティのウィザードは使用しません）。

Table_Key | Col1 | Col2 | Col3
1 | A | 12 | F
2 | B | 14 | Y
3 | C | 18 | W

My_keyという数値変数を追加するには：

  1. 既存のフローを開くか新規のフローを作成し、データマッパユーティリティをフローにドラッグします。

  2. データマッパーをダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしでください。

  4. データベースソースの［プロパティ］ペインで、データベース処理とデータベース定義としてUpdateを選択してください。

  5. ［ウイザード］をクリックし、ウィザードを実行します。

  6. データベース送り先の［プロパティ］ペインで、［SQLステートメント画面］を開くために［SQL］をクリックしてください。

  7. 以下のステートメントを記述してください。

UPDATE ExampleTable SET ExampleTable.Col1=’T’, ExampleTable.Col2=20, ExampleTable.Col3=’X’, WHERE ExampleTable.Table_Key=<!?My_Key?!>

更新されるレコードは数値変数My_Keyの値によって決まります。テーブルカ ラムは以下の値で更新されます。

  • Col1: T

  • Col2: 20

  • Col3: X


データマッパを使用してデータベース処理を実行するには

Home > Magic xpi 逆引き辞典 > データマッパー > データマッパーを使用してデータベース処理を実行するには

データマッパーを使用してデータベース処理を実行するには

Magic xpiのデータマッパユーティリティは､視覚的にXML構造のソースファ イルを送り先ファイルにマッピングさせて、XMLもしくはデータベーススキーマを送り先XML､あるいはデータベーススキーマへのマッピングを可能にします。以下のようにSelect、Insert、UpdateおよびDeleteのデータベース操作を行うことができます。

  • Select SQLステートメント用のソースデータベーススキーマ

  • insert、Update、Delete 操作用の送り先データベーススキーマ

このトピックでは､データマッパーを使用した様々なデータベース操作の設定に必要なステップについて説明しています。

関連トピック：

データマッパーでデータベース操作を設定するには

データマッパーのSQLステートメントを作成してマッピング接続を行うには


データマッパでデータベース操作を設定するには

Home > Magic xpi 逆引き辞典 > データマッパー > データマッパーを使用してデータベース処理を実行するには > データマッパーでデータベース操作を設定するには

データマッパーでデータベース操作を設定するには

このセクションでは、データマッパーでデータベース運用の設定をする時に必要な情報を提供します。ここで提供されている情報は、どの操作においても共通です。

SQL文の書き方とマッピング接続の作成の仕方については、データマッパーのSQLステートメントを作成してマッピング接続を行うにはを参照しています。

Insert 操作

以下のステップは、Insert操作として実行するアクションについて説明します。

  1. XMLファイルを送り元スキーマとして定義します。

  2. データベースを送り先スキーマとして定義します。

  3. 送り先スキーマで右クリックして［プロパティの表示］を選択します。

  4. ［ウィザード］プロパティで、ウィザードを開くために [image] をクリックしてください。

  5. ［DBオペレーション］フィールドで、Insertを選択してください。

  6. 送り先スキーマのために、接続されたデータベースに基づいた有効なInsertのSQL文を挿入するために、ウィザードを使用してください。

  7. 送り元と送り先のオブジェクトを定義した後で、取得された情報をXMLファイルからInsert文に接続する場所を示す［データマッパー］画面に進めることができます。

Update 操作

以下のステップは、Update操作とし実行するアクションについて説明します。

  1. データベースのスキーマを送り元として定義します。この場合のSQL文は、Selectです。

  2. データベースを送り先スキーマとして定義します。

  3. 送り先スキーマで右クリックして［プロパティの表示］を選択します。

  4. ［ウィザード］プロパティで、ウィザードを開くために [image] をクリックしてください。

  5. ［DBオペレーション］フィールドで、Updateを選択してください。

  6. 送り先スキーマのために、接続されたデータベースに基づいた有効なUpdateのSQL文を挿入するために、ウィザードを使用してください。

  7. 送り元と送り先のオブジェクトを定義した後で、取得された情報をXMLファイルからUpdate文に接続する場所を示す［データマッパー］画面に進めることができます。

Delete 操作

以下のステップは、Delete操作とし実行するアクションについて説明します。

  1. データベースのスキーマを送り元として定義します。この場合のSQL文は、Selectです。

  2. データベースを送り先スキーマとして定義します。

  3. 送り先スキーマで右クリックして［プロパティの表示］を選択します。

  4. ［ウィザード］プロパティで、ウィザードを開くために [image] をクリックしてください。

  5. ［DBオペレーション］フィールドで、Deleteを選択してください。

  6. 送り先スキーマのために、接続されたデータベースに基づいた有効なUpdateのSQL文を挿入するために、ウィザードを使用してください。

  7. 送り元と送り先のオブジェクトを定義した後で、取得された情報をXMLファイルからDelete文に接続する場所を示す［データマッパー］画面に進めることができます。

Select 操作

以下のステップは、Select操作とし実行するアクションについて説明します。

  1. データベースのスキーマを送り元として定義します。この場合のSQL文は、Selectです。

  2. XMLファイルを送り先スキーマとして定義します。

  3. 送り元と送り先のオブジェクトを定義した後で、取得された情報をXMLファイルからSelect文に接続する場所を示す［データマッパー］画面に進めることができます。


データマッパのSQLステートメントを作成してマッピング接続を行うには

Home > Magic xpi 逆引き辞典 > データマッパー > データマッパーを使用してデータベース処理を実行するには > データマッパーのSQL文を作成してマッピング接続を行うには

データマッパーのSQL文を作成してマッピング接続を行うには

このセクションでは、データマッパーを使用するときにどのようにSQL文を作成するか、そしてどのようにマッピング接続を作成するかについて説明しています。送り元/送り先のデータベースの定義の仕方については、データマッパーでデータベース操作を設定するにはを参照してください。

SQL文を準備する

送り元/送り先データベーススキーマは、以下のように定義することができます。

  • ダイレクトSQL ステートメント …… SQL文を手動で入力します。

  • ウィザード …… "ウィザード"インターフェースを使用して必要なデータベース、テーブル、カラム等を選択します。

どちらの方法を使用しても結果は同じです。

SQLのいろいろな部分を動的に定義することができます。動的定義の値を以下のように決定することができます。

  • Runtime …… グローバル/フロー変数の各タグは実行時しか値を持ちません。SQL文中のこれらの変数の構文は以下のとおりです。: G.name1

  • Mapping …… 動的タイプをどの送り元要素もしくは定数値から定義することもできます。SQL文中のこれらの変数の構文は以下のとおりです。 MyDel

以下は送り元/送り先のスキーマ用の様々なSQL命令文の例です。

Insert 文

INSERT INTO customer
(city,fax_area,fax_num,house_num,name,number_id,phone_area, phone_descr,phone_num,street,zip_code)

Update 文

SELECT customer.city,customer.street FROM customer WHERE
customer.name = G.name1

UPDATE customer SET city=city, street=street
WHERE customer.name = G.name2

Delete 文

SELECT customer.city FROM customer WHERE customer.city =
G.city

DELETE FROM customer WHERE customer.city = MyDel

Select 文

SELECT customer.city,customer.fax_area,customer.fax_num,customer.house_num,customer.name,customer.number_id,customer.phone_area,customer.phone_descr.customer.phone_num,customer.street,customer.zip_code FROM customer

マッピング接続を準備する

送り元/送り先スキーマを定義した後、マッピング段階に進むことができます。これは送り元要素（送り元スキーマから取り出された情報）と送り先要素を結びつける時です。

送り元と送り先のスキーマの間に様々なタイプの接続を定義することができます。以下がデータベース形式のスキーマに適切な接続です。

  • Simple Connection …… 単一複合要素と送り先の単一複合要素を接続します。

  • Complex Connection …… ひとつの複合要素と他の複合要素を接続します。

  • Dynamic Tag (Mapping) Connection …… 動的タグ定義と定数、他の要素もしくはフローグローバル変数を接続します。

以下の図はサンプルプロジェクトで見ることができる様々なマッピング接続の例です。

Insert マッピング

Inser操作においては、単一要素が送り元XMLスキーマから送り先データベーススキーマへマッピングされます。

送り先スキーマのPhone_desc要素はそれ自身に接続されます。つまり実行時に入力された値が計算された式から得られたということです。

Update マッピング

Update操作においては、送り先スキーマのCityとStreet要素は動的タグです。これらのタグはUpdateSql文の一部であり、SQL文の定義の一部としてではなく、マッピングプロセス中に実際の値を受け取ります。

Delete マッピング

Delete操作においては、送り先スキーマのMyDel要素が動的なタグです。このタグはDelete文とWhere句の一部であり、SQL文の定義内ではなく、マッピング処理中に実際の値を受け取ります。


DB2/400データベースに対する言語サポートを作成するには

以下の手順は、DB2 for IBM iデータベース管理システムに言語サポートを追加するために必要な手順です。これら の手順は、Magic xpi スタジオとデータマッパサービスがインストールされているWindows OS上で実行されます。

これらのステップは、データマッパユーティリティがDB2 for IBM iデータベースから、またはDB2 for IBM iデータベースへデータをマッピングする場合に必要なステップです。DB2 for IBM iデータベースを使用してデータをマッピングするには、Windows PCは、DB2 for IBM iデータベースがインストールされているIBM iサーバと同じネットワークになければなりません。

以下の変更をMagic.ini設定ファイルに加えてください。

  1. Magic.iniファイルの [MAGIC_DBMS]へ進んでください。

  2. AS400から始まる行で、LANGUAGE=AS2EB.ENGというエントリを探してください。もしシステム言語が英語でない場合は、*.ENGファイル拡張子をDB2 for IBM iでサポートされている言語に対応するように変更してください。

  3. AS400の行の最後にカンマ(,)を追加し、正しいASCII/EBCDIC変換パスを入力しくてださい。例えば、日本語の場合はsupport/ACS400.JPNを追加します。

  4. DB2 for IBM iから始まる行の最後にカンマ(,)を追加し、正しいASCII/EBCDIC変換パスを入力しくてださい。例えば、日本語の場合はsupport/ACS400.JPNを追加します。

ステップ３とステップ４でASCII/EDBCDIC翻訳パスに使用されている拡張子は、ステップ２でLANGUAGEエントリに追加された拡張子と同じでなければなりません。

  5. カンマ (,) をもうひとつ追加し、正しいACSファイルを追加してください。例えば、日本語の場合、support/ACS400.JPNを追加します。

  6. [MAGIC_LOGICAL_NAMES] セクションへ進みます。

  7. date_format 設定をプラットフォームの日付フォーマットに変更します。例えば、IBM iの日付フォーマットはYYYY-MM-DDです。

以下の変更をWindows環境設定変数に追加します。

  1. ［マイコンピュータ］アイコンで右クリックし、プロパティを選択し、Windowsのシステムプロパティを開きます。

  2. ［詳細設定］タブをクリックします。

  3. ［環境変数］をクリックします。

  4. <コンピューター名>セクションのユーザ変数でMagic xpi_LANGUAGEを選択し［編集］をクリックします。

  5. もしこの変数がリストにない場合、［新規］をクリックして Magic xpi_LANGUAGEを［変数名］フィールドに追加します。［編集］をクリックする必要はありません。次のステップで説明しているように［変数値］フィールドにパスを追加し、［OK］をクリックしダイアログボックスを閉じ最後のステップに進みます。

  6. 正しいASCII/EDBCDIC翻訳パスを［変数値］フィールドに追加します。例えば日本語を使用する場合、support/AS2EB.JPNを追加します。

  7. ［OK］をクリックしダイアログボックスを閉じます。

  8. ［OK］をクリックし、［Windows環境変数］ダイアログボックスを閉じます。

ユーザIDを設定する

以下をチェックし、データマッパユーティリティが動作しているかを確認してください。

  • DB2 for IBM iデータベースへそしてDB2 for IBM iデータベースからデータをマッピングするには、データベースの情報を［設定］ダイアログボックスの［リソース］セクションに入力しなければなりません。[リソース]セクションの［ユーザ］フィールドに入力された名前が、DB2 for IBM iデータベースのあるIBM iマシン上に存在していること確認してください。

IBM i用Magic xpiサーバを設定する

DB2 for IBM iデータベースがインストールされるIBM iマシン上で、[リソース]セクションのデータベースエントリに入力されたユーザのユーザプロフィールが符号化された文字セットIDオプションの中に65535という数値が含まれていないkいことを確認してください。


ダイナミックなテキストファイルを作成するには

データマッパユーティリティは､様々な送り元からのデータを様々なタイプのテキストファイルにマッピングできます。データをテキストファイルにマッピングするには、データ要素を定義する Magic xpiマージタグを使用してテンプレートファイルを作成する必要があります。データマッパユーティリティは、このマージタグを使用して様々なタイプの送り元からデータをマッピングします。

マージタグが正規のASCII文字列として記述されている限り、テンプレートファイルはどのようなフォーマットでも構いません。

もしテンプレートファイルをデータマッパユーティリティの送り先と定義した場合、マージ機能はテンプレートファイル内のマージタグをスキャンします。スキャンされたタグは、［データマッパー］画面の送り先セクションに表示されます。全ての送り元からこれらのタグにマッピングすることが可能です。例えば、XMLあるいはデータベースのフィールドをタグにマッピングすることができます。

プロジェクトを実行すると、タグは定義した送り元マッピングに応じた値に置き換えられます。

ここには、いくつかのサンプルマージタグがあります。

<!$MG_NAME> …… このタグはデータマッパーで定義されたデータ要素にマッチするタグ名を定義します。NAMEの部分をタグの名前で置き換える必要があります。データマッパーがタグをスキャンした時に一致するものが見つかった場合、その値でタグを置き換えます。

<!$MGREPEAT> …… このタグは繰り返し部分の開始場所を定義します。繰り返し部分は処理ごとに複製されるため数値が不明な行を扱うことができます。このタグは出力からは削除されます。

<!$MGENDREPEAT> …… このタグは繰り返し部分の終了場所を定義します。このタグは出力からは削除されます。

例

この例はデータベーステーブル内容をテキストファイルに変換する方法を説明しています。最初はテンプレートを作成し、次にデータマッパユーティリティを設定します。例として以下のサンプルテーブルを使用します。

Customer_ID | Order_ID | Product | Quantity
1 | 1 | Chair | 12
1 | 2 | Table | 12

ステップ 1：テンプレートファイルを作成する

以下の形式のテキストファイルを作成します。

ID,Order_ID,Product,Quantity

-----------------------------

<!$MGREPEAT>

<!$MG_ID>,<!$MG_OrderID>,<!$MG_Product>,<!$MG_QTY>

<!$MGENDREPEAT>

ステップ 2：データマッパユーティリティを設定する

以下のステップは、データマッパユーティリティの設定の仕方を説明します。

  1. データマッパユーティリティをフローにドラッグします。

  2. データマッパーをダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  4. ［データベース定義］ドロップダウンリストで、データベースを選択してください。

  5. データベースウィザードを開くために、［ウイザード］をクリックしてください。

  6. ［有効なテーブル］の下の［テーブル選択］画面で、サンプルテーブルやその他のテーブルを選択し、［追加］をクリックしてください。次に［次へ］をクリックして、［カラムの選択］画面の開きます。

  7. ［全て追加］をクリックし、テーブルのカラムを［選択されたカラム］セクションに移動し、［b］をクリックして［Where句］画面を開いてください。

  8. ［次へ］をクリックして［ウイザード結果］ダイアログに移動します。次に［完了］をクリックしてウィザードを閉じてください。

  9. ツールボックスの［マッパスキーマ］セクションから、テンプレートタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  10. テンプレート送り先の［プロパティ］ペインの［テンプレートファイル］フィールドで、ステップ1で作成したテンプレートファイルの位置を入力してください。

  11. ［データ送り先］のリストボックスで、ファイルを選択し、ファイルの位置を入力してください。次に［保存］をクリックしてください。

  12. ［データマッパー］ウィンドウで、送り元内のテーブルカラムを適切な送り先にマッピングしてください。

  13. プロジェクトを保存し実行してください。


テーブル内の他のカラムの値でテーブルカラムを更新するには

Magic xpiデータマッパユーティリティは、データベーステーブルのフィールドを更新することができます。同じテーブル内のフィールドを更新式で使用する場合、データマッパーの送り元、送り先の両方に同じテーブルを定義します。この場合、送り先にUpdate操作を使用し、送り元でSelect操作を使用します。送り元から送り先へ必要なフィールドをマッピングします。

同じテーブルの別のカラムの値でテーブルのカラムを更新する別の方法は、データベースウィザードの最後の画面の中でSQL文を変更することです（詳細は、こちらを参照してください）。

例

この例ではCol1の値をCol1とCol2の値の合計で更新します。

My_Key | Col1 | Col2
1 | 12 | 56
2 | 666 | 19
15 | 23 | 97

送り元を定義する

  1. Magic xpiで既存のフローを開くか新規のフローを作成します。

  2. データマッパユーティリティをフローにドラッグします。

  3. データマッパーをダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  4. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  5. ［データベース定義］ドロップダウンリストで、データベースを選択してください。

  6. データベースウィザードを開くために、［ウイザード］をクリックしてください。

  7. ［テーブル選択］画面で、［有効なテーブル］リストからExample_Table選択し、［追加］をクリックして［選択されたテーブル］リストに追加します。［次へ］をクリックして［カラム選択］画面を開きます。

  8. Col1を［有効なカラム］リストから選択し、［追加］をクリックし［選択カラム］リストに追加します。［次へ］をクリックして、［Where句］ダイアログを開きます。

  9. ［次へ］をクリックして、［ウィザードの結果］ダイアログを開きます。［完了］をクリックして、ウィザードを閉じ［データマッパー］ウィンドウに戻ります。

送り先を定義する

  1. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  2. データベースウィザードを開くために、［ウイザード］をクリックしてください。

  3. ［DBオペレーション］リストでUpdateを選択します。

  4. ［テーブル選択］画面で、［有効なテーブル］リストからExample_Table選択し、［追加］をクリックして［選択されたテーブル］リストに追加します。［次へ］をクリックして［Where句］ダイアログを開きます。

  5. ［次へ］をクリックして、［ウィザードの結果］ダイアログを開きます。［完了］をクリックして、ウィザードを閉じ［データマッパー］ウィンドウに戻ります。

  6. ［データマッパー］ウィンドウで、Col1とCol2を送り元から送り先のCol1にマッピングしてください。

  7. 送り先リストのCol1で右クリックしてください。

  8. ［プロパティ］ペインで、［計算値］フィールドの右側の [image] をクリックして式エディタを開いてください。

  9. 以下を行って、式を作成してください。

  1. Col1を変数リストから選択します。

  2. + を演算子リストから選択します。

  3. Col2を変数リストから選択します。

作成した式は［式エディタ］の下側の［式］ウィンドウに表示されます。以下のように表示されます。

Col1+Col2

この処理はCol1の値をCol1とCol2の値の和で更新します。


フラットファイル送り元から送り先に負数を設定するために、データマッパーを使用するには

送り先に負数かもしれない数値を持つフラットファイルにマッピングする必要があるとき、数値データタイプのフィールドを追加して、書式を12からN12に修正することで、送り元のプロパティを修正してください。


Multi-Occurrence 複合物から特定のデータを取得するには

Multi-Occurrence 複合物から指定したデータを取得して、条件付マッピングを用いてフィルタリングするために、変数を使用することができます。

スキーマの例：:

XMLドキュメントの例：

  1. 取得されたデータを保持する数を定義してください。

  2. データマッパユーティリティをフローエリアにドラッグしてください。

  3. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  4. XML送り元の［プロパティ］ペインで、サンプルXML文書を選択してください。

  5. ツールボックスの［マッパスキーマ］セクションから、変数タイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  6. 変数の送り先の［プロパティ］ペインで、以前に定義した変数を選択してください。

  7. ［データマッパー］画面で、送り元のPerson複合物の［single instance filter］を以下の値で定義してください。

Src.S1/Employees/Person/ID ='200'

  8. 送り元のName要素を送り先のF.Name変数にマッピングしてください。

サンプルXMLドキュメントに基づいて、一旦マッピングが実行されると、変数 F.Nameの値はAliceでなければなりません。


兄弟要素のデータに基づくMulti-Occurrence 複合物から特定のデータを取得するには

兄弟要素のデータに基づくMulti-Occurrence複合物から必要なフィルタリング・データを取得するために、変数を使用することができます。次に、条件付マッピングを使用してフィルタリングを行うために、この変数を使用してください。

フィルタ値は、Multi-Occurrence複合物からデータセットを取得するために連結されるかもしれません。

スキーマの例：

XMLドキュメントの例：

  1. 取得されたデータを保持する数を定義してください。

  2. データマッパユーティリティをフローエリアにドラッグしてください。

  3. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  4. XML送り元の［プロパティ］ペインで、サンプルXML文書を選択してください。

  5. ツールボックスの［マッパスキーマ］セクションから、変数タイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  6. 最初の送り先は、F.CustomerId 変数を選択します。2番目の送り先には、以下に示しているようにF.Quantity変数を選択します。

  7. ［データマッパー］画面で、送り元XML複合物要素を最初の転送先の複合要素に接続してください。これは変数の親になります。

  8. 送り元上で一つ以上の要素に基づくフィルタ条件を定義してください。例：Src.S1/Order/CustomerID ='100'

  9. 送り先の変数に抽出したい単純要素を接続してください。必要に応じて、式を追加してください。

  10. 子送り元のXML複合要素を2番目の送り先の複合要素（変数の親)に接続してください。

  11. 送り元内の一つ以上の要素に基づいた OrderLines マップ上で、フィルタ条件を定義してください。最適化のために、親から抽出される値に基づく論理式を含めることができます。例：Src.S1/OrderOrderLines/ItemID ='210' AND F.CustomerId <> '''

  12. 以下に示すように、送り先の変数を取得しようとする単純要素に接続してください。必要に応じて、式を追加してください。

類似したケースとして、値が複数の送り元から来た場合、一連のイベントを保証することができないため、プロセスを2つの個別のデータマッパーに分割することが最善の方法です。


特定のインスタンスにマッピングするには

single-occurrence複合物をMulti-Occurrence複合物にマッピングするには、送り先合成物を増やすために、Instance Creation を使用してください。次に、ソースデータを適切に作成された複合物にマッピングしてください。

入力XMLドキュメントのためのスキーマ例：

出力XMLドキュメントのためのスキーマ例：

XMLドキュメントの例：

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  3. XML送り元の［プロパティ］ペインで、サンプルXML文書を選択してください。

  4. ツールボックスの［マッパスキーマ］セクションから、multi-occurrence 複合物(例えば、XML)をサポートするスキーマタイプを［データマッパー］ウィンドウの送り先エリアにドラッグjしてください。

  5. 送り先の［プロパティ］ペインで、サンプルXML文書を選択してください。

  6. ［データマッパー］画面で、以下のように表示されたマッピングを定義してください。

  7. 送り先の複合物の［プロパティ］ペインで、［レプリケーション］パラメータのドロップダウンリストから Yesを選択して、［インスタンス作成］を有効にしてください。

  8. ［データマッパー］画面で複合名がAddress#1に変更されたことを確認してください。

  9. 複合ノードのコンテキストメニューから、［レプリケーション追加］を選択し、必要なレプリケーション数を選択してください。送り元内の単純要素を各々の指定した送り先インスタンスに接続してください。.

  • 例：ShipTo送り元の単純要素を指定した送り先インスタンス内の要素に接続してください。


特定のインスタンスからマッピングするには

Multi-Occurrence複合物をsingle-occurrence要素にマッピングするには、送り元複合物を増やすために、レプリケーション機能を使用してください。次に、送り元データを送り先複合物にマッピングしてください。

入力XMLドキュメントのためのスキーマ例：

出力XMLドキュメントのためのスキーマ例：

XMLドキュメントの例:

  1. データマッパステップを作成してください。

  2. 取得されたスキーマに基づいて、XML送り元タイプを定義してください。

  3. 取得された送り先スキーマに基づいて、XML送り先タイプを定義してください。

  4. ［データマッパー］画面で、以下を実行してください。

  • 送り元複合物の［プロパティ］ペインの［レプリケーション］パラメータのドロップダウンリストからYesを選択することで、［インスタンス作成］を有効にしてください。

  • ［データマッパー］画面で複合名がAddress#1に変更されたことを確認してください。

  • 複合ノードのコンテキストメニューから、［レプリケーション追加］を選択し、必要なインスタンス数を選択してください。

  5. 複製された送り元要素を送り先の単純要素に接続してください。例：

  • 単純なAddress要素をShipToに接続して、2番目の要素をBillTo送り先要素に接続してください。

送り元内のレプリケーションは、最初と2番目の複合物を提供します。レプリケーションインスタンス毎に必要な複合物が選択可能で有効なフィルタリングはありません。


独立した送り元と順序/行構成にリンクするには

2つの独立したmulti-occurrence送り元の間で論理リンクを作成して、論理条件に合う複合データを取得するために、フラットファイルのmulti-occurrence送り元を経由して実行してください。繰り返しのために、SELECT文がフラットファイルからデータベースに multi-occurrenceの行送り元のために、フィルタ値付きで送られます。

送り元フラットファイルの例

データベーステーブルの例

送り先XSD

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプとデータベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  3. 与えられたフラットファイルとテーブルの構造に従って、フラットファイルとデータベースソースを定義してください。

  4. ［データベースソース］プロパティに行き、ウィザードを開始してください。itemID、name、およびqtyフィールドをSelect し、orderID=C.UserString という WHERE句を定義してください。結果のSQL文は、これと同じように表示されるはずです。

SELECT [OrderLines].itemID , [OrderLines].name , [OrderLines].qty FROM dbo.[OrderLines] WHERE [OrderLines].orderID=<?C.UserString?>

  5. 所定のXSDに基づいたXMLとして、送り先を定義してください。

  6. フラットファイル・ソースの単純要素を、送り先のOrder複合単純要素にマッピングしてください。

  7. フラットファイルからOrder compound プロパティのAdvancedタブで、OrderIDでC.UserStringを更新してください。

  8. データベース単純要素をOrderLines複合単純要素にマッピングしてください。

これは、このプロセスの出力例です。

説明

フラットファイル・レコード上で繰り返すたびに、SELECTステートメントはorderIDの値を含むWhere句でデータベースに送られます。そしてそれは、C.UserStringで更新します。データベースはフィルタリングされていて、送り先複合物として選択されたレコードのマッピングを維持し続けます。


変換テーブルを使用するには

1つの語彙またはシステムその他からデータを変換するときに、自動的にルックアップテーブルを利用するには、変換テーブルとConvert関数を使用してください。

変換テーブルは、自動データ変換を容易にするために動的なルックアップテーブルとして使用することができます。変換テーブルには2つのタイプがあります。

  • スタティック

  • ダイナミック

スタティック変換テーブル

スタティック変換テーブルは、予め設定されたフラットファイル・データに基づいています。変換データは、サーバの起動によって読み込まれます。サーバがまだ実行中に、変換テーブルファイルのデータが修正されると、リフレッシュ変換のみが必要となります。

スタティック変換テーブルを使用するには：

  1. ソリューションエクスプローラで、［データコンバータ］をダブルクリックし、スタティック変換テーブルを定義してください。

  2. データマッパステップを作成してください。

  3. 複数のテキストフィールドを持つフラットファイルとして、送り元と送り先を定義してください。

  4. 送り元から送り先にフィールドをマッピングし、必要な箇所でConvert関数を使用してください。Convert関数は、変換されたデータでユーザ文字列を返します。4つの入力パラメータがあります。

a. 変換テーブル名

b. 入力テキスト（変換されたフィールド)

c. 入力フィールドが変換テーブル内に存在しないときに使用されるデフォルト値

d. 0/1 大文字と小文字の区別の指定

ダイナミック変換テーブル

下記の例では、ダイナミック変換テーブルは、XML要素を変換するために使用されています。変換データはデータベーステーブルに保存され、実行時に変換テーブルに読み込まれます。ダイナミック変換テーブが定義され、リフレッシュ変換テーブルサービスを使用してメモリに読み込まれます。

ダイナミック変換テーブルを使用するには：

  1. ［フラットファイル］ダイアログボックスで、フラットファイルの［プロパティ］ペインを通してアクセスされ、ダイナミック変換テーブルを、以下に表示されるように定義してください。

  2. 変換データを準備するために、データマッパステップを作成してください。

  3. データベースタイプとして送り元を定義してください。2つのテキストフィールドにフラットファイルタイプとして、送り先を定義してください。

  4. 送り元から送り先に入力フィールドをマッピングしてください。送り先の2番目のフィールドは、変換値です。変換値を編集するために、式または追加された検索データを使用することができます。送り先ファイル名は動的な式です。これは実行時に評価されます。

  5. データをリフレッシュするために、リフレッシュ変換テーブルサービスを使用してください。変換テーブルの名前は、データコンバータリポジトリで定義された名前です。ファイル名は、前のデータマッパーのステップで定義された送り先のファイルです。この時点で、変換テーブルデータは、メモリに読み込まれます。

  6. 出力の変換を可能にするために、データマッパステップを作成してください。

  7. 送り元と送り先をXMLファイルとして定義してください。

  8. 以下に表示されているように、必要な値をマッピングしてしてください。スタティック変換テーブルのセクションに記述されているConvert関数を使用してください。


データ要素を統一するには

一つのデータ要素にmulti-occurrenceデータ要素を統合するには、複合レベルの計算メカニズムを使用してください。統合された送り先データを作成するために送り元複合物を繰り返す間にこれは変数を更新します。

変数（F.Var1)は、送り元のデータを計算するために使用してください。

スキーマの例:

データ要素を統合するには：

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. .ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  3. XML送り元の［プロパティ］ペインで、サンプルXML文書を選択してください。

  4. ツールボックスの［マッパスキーマ］セクションから、変数タイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  5. 変数送り先の［プロパティ］ペインで、繰返しを許可するために、ダミー変数としてC.UserStringを選択してください。

  6. 以下に示すように、反復可能な単純要素の送り元複合物をインスタンス送り先にマッピングしてください。送り先の［プロパティ］ペインの［複数更新］パラメータで、 [image] をクリックして［複数更新］ダイアログボックスを開き、文字変数(F.Var1)を単一要素ソースデータの値で更新します。

F.Var1 & ' ' & Src.S1/Root/lines/Line


データ要素を分割するには

multi-occurrenceの送り先要素（データ要素の統合処理の反対)内の単一データ要素を分割するには、multi-occurrenceデータを含むフラットファイル・データを作成するフロー内のソースデータを前処理してください。次に、必要なmulti-occurrence の送り先要素を作成するために、フラットファイルを送り先複合物にマッピングしてください。

解決策として、繰り返し回数をコントロールする変数を使用するループが必要となります。追加モードでフラットファイルの送り先を定義することで、各々の繰り返しでフラットファイルに要素を追加する必要があります。この代わりに、ローカルのOD配列を使用することができます。

データ要素を分割するには：

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. 送り元をXMLタイプと定義し、送り先を変数と定義してください。計算は、同じデータに対するXMLの度重なる読み込みを防止するために、この変数上で実行されます。

  3. 文字変数への分割を希望する英数字値を保持する送り元の要素にマッピングしてください。

  4. カウンタを更新するフローデータ・ステップを定義してください。

  5. 分割処を実行するために、新しいデータマッパステップを定義してください。送り元は空で、送り先は追加モードのフラットファイルタイプです。

  6. 以下に示すように、必要なデータを取得する送り先式を定義してください。例:

mid ( F.StringToProcess ,F.StartLocation ,F.LineSize )

  7. 最後のステップは、Calculate（フローデータ）ステップに対するGoToコマンドです。終了条件（F.Total)が設定されます。以下のイメージでは、ループの終了条件は以下の通りです。

F.LoopCounter < F.Total


ヘッダと行レコードの両方を含むフラットな構造を階層的なXMLにマッピングするには

Magic xpi でデータマッパーを使用する場合、フラットな構造を階層的なXMLファイルにマッピングする必要がある場合があるかもしれません。

フラットな構造を階層的なXMLファイルにマッピングするには：

データマッパーを スタジオのフローエリアにドラッグした後に、最初にやるべき事は、次の通りにデータマッパーの送り元プロパティを設定することです。

  1. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  2. XML送り元の［プロパティ］ペインで、必要なXSDファイル(この場合、Accounts.xsd)を選択してください。

  3. データをどこから取り出すかを定義する必要があります。この場合に、Accounts.xmlと呼ばれるファイルになります。［送り元タイプ］パラメータで、ドロップダウンリストからファイルを選択してください。

  4. ［ファイルパス］パラメータで、式エディタを開くために [image] をクリックしてください。以下の式に入力してください: EnvVal ('currentprojectdir')&'Data/Accounts.xml'

この式は送り元に、現在のプロジェクトディレクトリから Accounts.xmlと呼ばれるデータファイルを捜すように指示します。

  5. 式エディタを閉じるために、［OK］をクリックしてください。

データマッパーの送り元プロパティを設定し終わったら、次の通り送り先プロパティを設定する必要があります。

  1. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  2. XML送り先の［プロパティ］ペインで、必要なXSDファイル(この場合、Accounts1.xsd)を選択してください。

  3. ［送り先タイプ］パラメータで、ドロップダウンリストから変数を選択してください。 をクリックし C.UserBlob を選択してください。これは、マッピングされたデータの送信先になります。

さて、データのより明確な書式を取得するために、［データマッパー］ウィンドウで表示されるように、Accounts.xsdとAccounts1.xsdファイルの構造を見てみましょう。これを行うには、送り元上と［データマッパー］ウィンドウ内の送り先でパークし、それらで右クリックし、コンテキストメニューから［全て展開］を選択してください。

［送り元］ペイン(以下の左に表示されます)で、フラットな構造がAccounts.xsdファイルの内容によって定義されていることを確認できます。これはAccountと呼ばれる複合ノードから構成されています(それはNameとIDのノードから構成されています)。さらに、PhoneNumberと呼ばれる兄弟複合ノードがあります(それはprimary、value、およびaccountIDノードから構成されています)。

2つの複合ノードの間に親子関係が全くないことに注意してください。それらの間の唯一の接続は、IDノードとaccountIDノード経由でです。［送り先］ペイン(以下の右に表示されます)で、階層的な親子構造がAccounts1.xsdファイルによって定義されるのが確認できます。これはAccountと呼ばれる親複合ノードから構成されています(それはNameとIDのノードから構成されています)。さらに、PhoneNumberと呼ばれる子複合ノードがあります(それはprimaryと、Valuedノードから構成されています)。この場合に、アカウントと電話番号の間の関係がスキーマの構造によって制御されるため、accountIDノードは不要になります。

次に、次の通りソースデータを接続先データにマッピングする必要があります。

  1. ［送り元］ペインで、Nameノードを右クリックし、［接続］を選択してください。そして、マウスを［送り先］ペインのNameノードにドラッグし、クリックしてください。

  2. ［送り元］ペインで、IDノードを右クリックし、［接続］を選択してください。そして、マウスを［送り先］ペインのIDノードにドラッグし、クリックしてください。

  3. ［送り元］ペインで、Primaryノードを右クリックし、［接続］を選択してください。そして、マウスを［送り先］ペインのPrimaryノードにドラッグし、クリックしてください。

  4. ［送り元］ペインで、valueノードを右クリックし、［接続］を選択してください。そして、マウスを［送り先］ペインの ノードにドラッグし、クリックしてください。

このマッピングについての問題は、各アカウントが自身の電話番号に加えてその時点でのすべてのアカウントの電話番号を保持するということです。これは、マッピングにフィルタが適用されなかったために発生します。これを防止するには、必要なフィルタを作成する必要があります。

  1. フロー変数リポジトリを開き、F.accountIDと呼ばれるフロー変数を作成してください。

  2. 各アカウントが自身の電話番号だけを保持し、他は保持しないことを確認するために、複合レベルの計算メカニズムを使用する必要があります。これを行うには、［送り先］ペインのAccountsRecords複合ノードを右クリックし、［プロパティを表示］を選択してください。

  3. ［プロパティ］]ペインの［複合更新］パラメータで、［複合更新］ダイアログボックスを開くために [image] をクリックしてください。そして、新規行を作成するために［追加］をクリックしてください。

  4. ［変数名］カラムで、 [image] をクリックしてF.accountID 変数を選択してください。

  5. ［式］カラムで、 [image] をクリックして式エディタを開いてください。 をクリックし、リストからIDノードのために正しいパスを選択してください。

この式の結果は、ソース側で、アカウントの各繰返しによって［ID］フィールドの値が取得されることです。

次に、接続先のアカウントと同じIDを持つレコードだけがその特定のアカウントの配下の子 PhoneNumberレコードに送られるように、ソースのPhoneNumberレコードにフィルタをかける必要があります。

  1. ［送り先］ペインのPhoneNumber複合ノードで右クリックし、［プロパティを表示］を選択してください。

  2. ［プロパティ］ペインの［条件］パラメータで、式エディタを開くために [image] をクリックしてください。 をクリックしてリストからaccountIDノードのために正しいパスを選択してください。

F.accountIDは、アカウントのIDを保持するために、早い段階cで作成されたフロー変数であることに注意してください。

  4. ［保存］をクリックしてください。

  5. ブレイクポイントを設定してください、次に、ソリューションエクスプローラのフローで右クリックし、［デバッグ］を選択することで、フローをデバッグしてください。

  6. ツールバー上の［プロジェクト実行/継続］ [image] ボタンをクリックして、プロジェクトを実行してください。

  7. ［コンテキストビュー］ウィンドウを開くために、ツールバー上の［コンテキストビュー］ [image] ボタンをクリックしてください。

  8. ここで、［コンテキスト変数］タブを選択し、C.UserBlob変数を探して［名前］カラムを見てください。結果データを保持するために、以前に［接続先プロパティ］ダイアログボックスの［データ接続先］パラメータでこの変数が選択されたことを覚えていてください。BLOBの内容にズームするために [image] をクリックしてください。

  9. ［ビュー変数：C.UserBlob］ウィンドウで、ドロップダウンリストからTXTを選択し、［開く］をクリックして作成した実際のXMLファイルを参照してください。

  10. ContextView_BLOB.TXT XMLファイルで、各アカウントがアカウントのエントリの配下で自身の電話番号がリストされていることが確認できます。

このXMLは、以下の方法で作成されました。

  • 各ソースのAcounts要素のために、Acounts要素は［送り先］ペインで作成されました。

  • その後、PhoneNumber要素は［送り先］ペインで作成されました。

  • 次に、電話番号がアカウントに割り当てられました。

  • しかし、作成したフィルタは、アカウントIDを接続先の要素と一致させる電話番号のマップを作成しただけです。

  • これは、各アカウントが自身の電話番号だけを受け取ったことを意味していて、すべての番号がソースファイルに含まれているわけではありません。


送り元上で発生した繰返しをカウントするには

Magic xpiのデータマッパーにを使用する時、いくつのソースレコードがあるかを知る必要がある場合があります。

また、レコードのすべてのx番号のために一定のフィールドで異なる値を定義したい場合があったり、レコードのすべてのx番号がヘッダ行で、行の残りが特定のヘッダと関連しているフラットファイルソースを持つかもしれません。

Magic xpiは、これらのソースレコードを簡単にカウントすることができます。

このトピックは、すでにビルドし、データマッパーを含むプロジェクトで動作していることを仮定しています。

送り元上で発生した繰返し数をカウントするには：

送り元の繰返しをカウントしたい場所でプロジェクトを開いたら、以下の手順に従ってください。

  1. 関連するフローで、フロー変数リポジトリを開くために、［フロー変数］］をダブルクリックしてください。

  2. ［追加］をクリックして、F.counterと呼ばれる新しいフロー変数を作成してください。変数のタイプを数値に設定してください。

  4. 送り元の繰返しをカウントしたい、データマッパーでダブルクリックして（または、右クリックして［構成］を選択して）、［データマッパー］ウィンドウを開いてください

  5. ［データマッパー］ウィンドウで、［送り先］ペインの親複合ノードで右クリックし、［プロパティを表示］を選択します。

  6. ［プロパティ］ペインの［複数更新］パラメータで、［複数更新］ダイアログボックスを開くために [image] をクリックしてください。そして、新規行を作成するために［追加］をクリックしてください。

  7. ［変数名］カラムで、 [image] をクリックしてF.counter変数を選択してください。

  9. ［式］カラムで、 [image] をクリックし次の式を入力してください： F.counter +1

これは、各繰返しのために、1の値がF.counter 変数に加算されることを意味しています。それは0から開始します。

［送り先］ノード上で定義したかもしれない条件が実行される前に、この繰返しカウントは行われます。［送り先］ノード上でFalseの条件を定義した場合、代わりにマッピングを行った数を受け取ります。この問題を回避するためと、Tureの繰返しカウントを取得するために、ノードの［プロパティ］]ペインの［条件］カラムにも同じ条件を定義する必要があります。

  10. ［保存］をクリックしてください。

  11. ブレイクポイントを設定してください。次に、ソリューションエクスプローラのフローを右クリックし、［デバッグ］を選択することで、フローをデバッグしてください。

  12. ツールバー上の［プロジェクトの実行/継続］ [image] ボタンをクリックしてプロジェクトを実行してください。

  13. ［コンテキストビュー］ウィンドウを開くために、ツールバ上の［コンテキストビュー］ [image] ボタンをクリックしてください。

  14. ［コンテキストビュー］ウィンドウの［フロー変数］タブで、F.counter変数行の［値］カラムに値が表示されます。この値は、送り元上で発生した繰返しの数です。


Multi-Occurrence 複合物から単一データ要素を取り出すには

時々、multi-occurrence 複合要素から、特定のレコードを取得する必要があるかもしれません。以下の例は、ソースファイルからどのように特定のアカウントの名前を取得するかについて説明しています。

multi-occurrence 複合要素から単一のデータ要素を取り出すには：

データマッパーをスタジオのフローエリアにドラッグした後に、最初に行う事は、以下のようにデータマッパーのソースプロパティを設定することです。

  1. データマッパーをダブルクリックするか、右クリックして［構成］クリックしてください。［データマッパー］ウィンドウが開きます。

  2. ツールボックスの［マッパスキーマ]］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  3. XML送り元の［プロパティ］ペインで、必要なXSDファイル(この場合、Accounts.xsd)を選択してください。

  4. データをどこから取り出すかを定義する必要があります。この場合に、Accounts.xmlと呼ばれるファイルになります。［送り元タイプ］パラメータで、ドロップダウンリストからファイルを選択してください。

  5. 式エディタを開くために [image] をクリックしてください。以下の式に入力してください: EnvVal ('currentprojectdir')&'Data/Accounts.xml'

この式は送り元に、現在のプロジェクトディレクトリから Accounts.xmlと呼ばれるデータファイルを捜すように指示します。

  6. 式エディタを閉じるために、［OK］をクリックしてください。.

データマッパーの送り元プロパティを設定し終わったら、次の通り送り先プロパティを設定する必要があります。

  1. ツールボックスの［マッパスキーマ］セクションから、変数タイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  2. 変数送り先の［プロパティ］ペインで、 C.UserString コンテキスト変数を選択してください。

  3. ［送り先プロパティ］ウィンドウを閉じるために、［OK］をクリックしてください。

次に、次の通りソースデータを送り先データにマッピングする必要があります。

  4. ［データマッパー］ウィンドウの［送り元］ペインで、Nameノードで右クリックし、［接続］を選択してください。そして、マウスを［送り先］ペインのC.UserStringノードにドラッグし、クリックしてください。［データマッパー］ウィンドウで接続されるように、これらの簡単なノードは、それぞれの親の複合ノードとともに表示されます。

XMLソースファイルは、3つの異なるアカウント(以下に表示されているような)を含んでいます。XMLにおけるPhone numberは、この例では関連していないため無視することができます。

次のステップは、ID値が3であるアカウントの名前を抽出するために送り先側の条件を作成することです。

  1. ［送り先］ペインのインスタンス複合ノードで右クリックし、［プロパティを表示］を選択してください。

  2. ノードの［プロパティ］ペインの［条件］パラメータで、 [image] ボタンをクリックして式エディタを開きます。

  3. 式エディタで、 [image] ボタンをクリックし、リストからIDノードのために正しいパスを選択してください。

  4. 式エディタを閉じるために、［OK］をクリックしてください。

  5. フローエリアで、ブレイクポイントを設定してください。次に、ソリューションエクスプローラのフローで右クリックし、［デバッグ］を選択することにで、フローをデバッグしてください。

  6. ツールバー上の［実行］ボタンをクリックして、プロジェクトを実行してください。

  7. ［コンテキストビュー］ウィンドウを開くために、ツールバー上の［コンテキストビュー］ボタンをクリックしてください。

  8. ここで、［コンテキスト変数］タブを選択し、C.UserString変数を探して［名前］カラムを見てください。結果データを保持するために、以前に［送り先プロパティ］ダイアログボックスでこの変数が選択されたことを覚えていてください。この変数は、その［値］カラムのソースファイルから取り出したかったアカウントの名前を表示します。この例では、アカウントの名前は Account3です。


データマッパーの特定の要素を検索するには

たくさんの送り元または送り先の要素を含むデータマッパーを使用する場合、マッピングしたい正確な要素を見つけることが難しい場合があります。これをより容易にするには、Magic xpiは、特定の要素を［データマッパー］画面に配置する2つの異なる方法を提供します。

データマッパーの特定の要素を検索するには：

  • 任意の要素上でパークして、検索する要素の最初の文字を入力します。これによって、直接、入力した文字で開始される最初の要素に位置付けされます。

  • ［編集］メニューから、［検索］を選択し、［テキスト検索］を選択すると［テキスト検索］ダイアログボックスが開きます。ここで、検索したい要素の名前を入力し、［Look In］フィールドで現在のドキュメントを設定します。必要ならば、［大文字小文字を区別］や［完全に一致する単語］のチェックボックスをを選択することもできます。そして、［全て検索］をクリックしてください。

この機能は、［送り元］または［送り先］ペインのどちらかの検索を行うことはできますが、同時に両方のペインを検査することはできません。


反復可能な複合物の中に、特定の数の項目を作成するには

XML送り元と送り先の中に、既存のデータマッパー複合ノードを簡単に複製することができます。Magic xpiの専用のレプリケーション機能を使用してこれを行います。

反復可能な複合物内で項目を複製するには：

  1. データマッパーを開き、複製したい複合ノードを選択してください。ノードで右クリックし、［プロパティ］ペインを表示するために、コンテキストメニューから［プロパティを表示］を選択してください。

  2. ［レプリケーション］パラメータで、ドロップダウンリストからYesを選択してください。

  3. 選択された複合ノードに #1 という接尾辞が付加されることに気づくはずです。

  4. ［データマッパー］画面で、複写したい複合ノードで再び右クリックしてください。コンテキストメニューから［レプリケーションの追加］を選択してください。これによって、その下にエントリのある重複したい複合ノードを追加します。

複製された複合ノードには、 #2 という接尾辞が付加されます。この新しいノードは、複写した直後のノードのすぐ下に追加されます。オリジナルの複合ノードで右クリックするか、複製された任意のノード上で右クリックすることによって、制限無くレプリケーション処理を繰り返すことができます。新しいインスタンスには、連番で接尾辞が付加されます。

複製された複合ノードを削除するには：

  • オリジナルのノードをまたは複製された複合ノードで右クリックし、コンテキストメニューから［レプリケーションの削除］を選択してください。これで、複製した最後の複合ノードが削除されます。

オリジナルのノード名を復元するには：

  • オリジナルの複合ノード上でパークし、［レプリケーション］パラメータのドロップダウンリストからNoを選択してください。


データベース

以下のトピックは、Magic xpiのデータベースについて扱っています。

動的なWhere句を使用するには

ODBCを使用するには

Magic xpiのDateTimeデータベース項目を使用するには

Magic xpiの内部データベースを変更するには

How Do I Manually Create a Magic xpi Internal Database?

SQL Server Expressを使用するとき、パフォーマンスの問題を解決するには

SQLトランザクション用にデフォルトのBLOBサイズを変更するには

データベース・トランザクション上でロールバックを開始するには

マッピングのためにMSSQLのDateTimeタイプの送り元をOracleのDateTimeタイプに変換するには

Magic xpiにOracleのシーケンスを読み込むには

Magic xpiでストアドプロシージャーを呼び出すには

データベースのパスワードを変更するには


動的なWhere句を使用するには

Magic xpiデータマッパユーティリティを使用してSQL文を作成することができます。静的と動的の二種類のWhere句があります。このテクニカルノートは、この命令文をいつどのように使用するかを説明します。

 | 静的Where句 | 動的Where句
適用先 | 送り元と送り先 | 送り先 (Update と Delete)
いつ使用するか | 値が変数に入っている場合 | 値が変数に入っていない場合
［データマッパー］画面での表示 | No | Yes
構文 | Table_column = <?Variable_Name?> | table column = <!?Data_holder_name?!>
データタイプ | 変数はMagic xpiでサポートされているどのデータ形式でも可 | データフォルダはMagic xpiでサポートされているどのデータ形式でも可

例

以下の例では､動的なWHERE句の作成方法を説明します。例の中のステップは二つのステージに分かれています。

  • ステージ 1 …… 送り元と送り先定義

  • ステージ 2 …… データマッピング

このステップでは、プロジェクトで以下のプロパティを持ったexampleTable_Desという名前のテーブルがあることを前提としています。

Table_Key | Col1 | Col2 | Col3
Key1 | A | 56 | D
Key2 | B | 78 | E
Key3 | C | 99 | F

また統合プロジェクトには、二つ目のテーブル、exampleTable_Des と同じ構造のexampleTable_Sour があることを前提としています。

この例の目的は、exampleTable_Sourテー ブル内のexampleTable_Desテーブルからレコードを削除することです。

ステージ1：送り元と送り先を定義

送り元を定義する

  1. Magic xpi スタジオでは、データマッパユーティリティをフローにドラッグします。

  2. データマッパーでダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウを開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  4. ［データベース定義］ドロップダウンリストで、データベースを選択してください。

  5. データベースウィザードを開くために、［ウイザード］をクリックしてください。

  6. ［テーブル選択］画面で、exampleTable_Sourテーブルを選択し、［次へ］をクリックして［カラム選択］画面を開きます。

  7. Table_Keyカラムを選択し、［次へ］をクリックして［Where句］画面を開きます。

  8. ［次へ］をクリックして［ウイザードの結果］画面に移り、［完了］をクリックしてウィザードを閉じます。

送り先を定義する

  1. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  2. ［データベース定義］ドロップダウンリストの中で、データベースを選択してください。

  3. データベースウィザードを開くために、［ウイザード］をクリックしてください。

  4. ［DBオペレーション］リストで、Deleteを選択してください。

  5. ［テーブル選択］画面で、exampleTable_Desテーブルを選択し、［次へ］をクリックして［Where句］画面を開きます。

  6. ［使用可能カラム］リストからTable_Keyカラムをダブルクリックし、［Where句テキスト］エリアに以下の内容を追加します。: =<!?MyKey?!>.
    テキストは以下のように表示されます：Table_Key=<!?MyKey?!>

注意： MyKey は定義済み変数ではなくデータホルダです。.

  7. ［次ヘ］をクリックし、［ウィザード結果］ダイアログボックスへ進みます。［完了］をクリックしてウィザードを閉じます。

ステージ 2：データをマッピングする

  • ［データマッパー］画面で、Table_KeyカラムをMyKeyにマップします。

これによりexampleTable_Desテーブル内のレコードのうち、exampleTable_Sourにもあるレコード全てを削除する設定が完了しました。

この例でexample_Table_Desテーブルのカラムをデータホルダにマッピングせずに変数を使用した場合、exampleTable_Desテーブルからは一つのレコードしか削除されないはずです。


ODBCを使用するには

Magic xpiは、ODBCデータソースを使用し様々なデータベース管理システムのデータにアクセスすることができます。ODBCデータソースでデータベースのデータにアクセスするには、互換ODBCドライバを設定しなくてはなりません。Widows®のODBCデータソースアドミニストレータで、ユーザもしくはシステムデータソースのドライバを設定します。プロジェクトのひとつ、もしくは両方のタイプのデータソースを設定するおとができます。

構成

ODBCの構成には三つの主なステージがあります。

  • ステージ 1 …… ODBCデータソースの追加

  • ステージ 2 …… ドライバの互換性の確認

  • ステージ 3 …… Magic xpiでODBCの設定

ステージ 1：ODBCデータソースを追加する

ODBCデータソースを追加するには、以下を行います。

  1. Windowsの［スタート］メニューから［コントロールパネル］をクリックし、［管理ツール］アイコンをダブルクリックします。

  2. ［データソース（ODBC）］アイコンをダブルクリックし、［ODBCデータソースアドミニストレータ］ダイアログを開きます。

  3. いずれかをクリックします：

    • ［ユーザーDSN］タブをクリックすると、データが現在のユーザのみ参照可能で、現在のPCでのみで使用できるようになります。

    • ［システムDSN］タブをクリックすると、現在のPCの全てのユーザでデータを参照できるようになります。

  4. ［追加］をクリックします。

  5. データソースを設定したい適切なドライバを選択し、［完了］をクリックします。

  6. ［ODBCセットアップ］ウィザードで必要な情報を入力します。

ステージ 2：ドライバ互換性を確認する

Mgchkdrv.exe ユーティリティを使用し、Magic xpiとの互換性テストを行います。

  1. <Magic xpi インストールフォルダ>\Runtime\Magic xpa\Gatewaysフォルダで、Mgchkdrv.exeをダブルクリックします。

  2. ［Select Data Source］ボタンをクリックします。

  3. ［コンピュータデータソース］タブをクリックし、先ほど作成したDSNを選択し、［OK］をクリックします。

ユーティリティがテストを行い、ログと併せて結果を表示します。

もしテストが失敗した場合、ODBCドライバはMagic xpiと互換性がありません。

ステージ 3：Magic xpiでODBCを設定する

以下のステップでは、Magic xpiでODBCゲートウェイを設定する方法を説明します。

  1. Magic xpi スタジオを起動し、［プロジェクト］メニューで［設定］をクリックして［設定］ダイアログボックスを開きます。

  2. ［設定］ダイアログボックスの［リソース］セクションで、新しいデータベースリソースを作成してください。

  3. ［DBMS］フィールドからODBCオプションを選択し、［OK］をクリックします。必要であれば、データソース名とユーザID/パスワードにDSNを入力します。

  4. ［検証］をクリックし、接続をチェックします。［適用］をクリックして終了します。

これでODBCデータベースを、データマッパユーティリティの送り元と送り先として使用することができます。

トラブルシューティング

もしUnknown databaseエラーメッセージが表示された場合、以下のようにしてMagic.iniファイルのODBCゲートウェイ設定を有効にします。

  1. Magic xpiインテグレートプラットフォームの一部となる全てのアプリケーションを閉じます。ここには、Magic xpi スタジオ、Magic xpi モニタ、Magic xpi サーバ そして Magic xpa が含まれています。

  2. Magic xpiのインストールフォルダにあるMagic.iniファイルを開きます。

  3. [Magic_Gateways]セ クションを探します。

  4. ;MGDB19=mgodbc.dll行 へ進み行頭のセミコロン(;)を取り除きます。

  5. 等号記号(=)の後に以下のパスを追加します。 \Magic xpi\Gateways\<.dllファイルの名前>

選択する.dllファイルは、Magic xpix.x/Gatewaysフォルダ内にあるものでなければなりません。

  6. Magic.ini ファイルを保存し終了します。

  7. Magic xpi を再起動します。


Magic xpiのDateTimeデータベース項目を使用するには

Magic xpiは、DateTimeデータ型をネイティブにはサポートをしません。Magic xpiのデータマッパーを使用してデータベースのDateTime値でSELECT、INSERT、UPDATEを行うには、文字列としてこれらの値を処理する必要があります。

Magic xpiは、ノードレベルで、Magic xpiサーバに文字列としてDateTime値を処理するように指示する簡単な設定を提供します。この動作をコントロールするプロパティは、StringDateと呼ばれ、日付データ型で利用できます。

例

DATETIMEフィールドを使用しているデータベース

日付と時刻をDATETIMEデータ型フィールドに挿入するには、［文字列日付］プロパティをYesに設定してください。

この変更後、全ての日付データベースフィールドは文字列として解釈されます。

例えば、MSSQLのDateTimeフォーマットが11:22:41に10/01/2007の場合、計算値フィールドで以下の式を使用することができます。

DStr (Date (),'DD/MM/YYYY')&' '&TStr (Time (),'HH:MM:SS')

Oracleデータベース

設定

日付と時間をDATETIMEデータ型フィールドに挿入する場合は、［StringDate］プロパティをYesに設定してください。

この変更後、全ての日付データベースフィールドは文字列として解釈されます。

2.Magic xpiプロジェクトで：

上記で説明したように適切な変更が終了したら、OracleのNLS_DATE_FORMATを設定する必要があります。OracleにDateTime値を入力するには、二箇所の送り先（同じデータマッパーかあるいは二つの個別のデータマッパー）を修正する必要があります。

送り先1：

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. データマッパーでダブルクリックするか、右クリックして［設定］をクリックしてください。［データマッパー］ウィンドウを開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  4. ［プロパティ］ペインの［ダイナミックSQLステートメント］フィールドで、Yesを選択してください。

  5. ［SQLステートメント］ボタンをクリックし、以下のOracle SQLコマンドを入力してください。

alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH:MI:SS'

このSQLコマンドは、現在のOracleセッションのNLS_DATE_FORMATを次のように設定します：'YYYY-MM-DD HH:MI:SS'。

  6. 変更内容をMagic xpiで有効にするには［保存］クリックします。

送り先2:

  1. データマッパユーティリティをフローエリアにドラッグしてください。

  2. ツールボックスの［マッパスキーマ］セクションから、データベースタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  3. ［プロパティ］ペインでウィザードを開いてください。

  4. ［DBオペレーション］リストで、Insertを選択してください。

  5. Magic xpiウィザードを使用して適切なテーブルとフィールドを選択します。

  6. 必要なデータをマッピングするか、直接入力します。

  7. ［日付］フィールドには先ほどのステップで指定した書式で入力します。

例: '1980-10-16 18:18:18'


Magic xpiの内部データベースを変更するには

ユーザは、Magic xpiインストール中に導入されたデフォルトMagic xpi内部データベースを別のサポートされているデータベースに変更することができます。このトピックは、Magic xpi内部データベースを1つのサポートされたデータベースから別のサポートされたデータベースに変更するために必要な手順について紹介しています。

ステップ #1：新しい Magic xpi 内部データベースを作成する

新しいMagic xpのi内部データベースは、Magic xpiのインストールによって提供されるデータベースに特有なスクリプトを使用して、バックエンドでデータベースサーバに作成されます。詳細は、Magic xpi の内部データベースを手動で作成する を参照してください。

ステップ#2：Magic xpiの新しい内部データベースを参照するために、datasource.xmlファイルを変更する

新しい内部データベースを反映するためにdatasource.xmlファイルを変更する必要があります。ファイルは以下の配置されています：<Magic xpi インストールフォルダ>\Runtime\Config このファイルを設定する方法を示した例は、この中のファイルを参照してください。

  1. datasource.xmlファイルでデータベース設定を行ってください。

  2. MSSQLを除いたすべてのデータベースでは、以下のフォルダにJDBCドライバーjar ファイルをコピーしてください：<Magic xpiインストールフォルダ>\Runtime\java\DatabaseDrivers。.MSSQLのJDBCドライバ(jar ファイル)だけがMagic xpiのインストール時に提供されます。他のDBMSに対しては、JDBCドライバのjar ファイルを提供する必要があります。

  3. datasource.xml で定義されたdriverClassNameがJDBCドライバと互換であることを確認してください。

ステップ#3：Magic xpiの新しい内部データベースを参照するために、Magic.iniファイルを変更する

  1. Magic xpi スタジオ、Magic xpi サーバ、およびMagic xpi モニタが動作していないことを確認してください。

  2. 修正する前に、Magic.iniファイルをバックアップしてください。

  3. Magic.iniファイルの[MAGIC_LOGICAL_NAMES]セクションに、以下の論理名を追加してください。

date_format=YYYY-MM-DD

DB_NAME= <スクリプトを使用し作成したデータベース名>

DB_SERVER_NAME= <データーベースサーバ名>

DB_USER= <スクリプトを使用して作成されたユーザ名>

DB_PASSWORD= <スクリプトを使用して作成されたユーザのパスワード>

  4. MSSQL ゲートウェイのエントリを有効にします。

Magic.iniファイル内の[MAGIC_GATEWAYS]セクションのMSSQLゲートウェイのエントリが有効になっており、ゲートウェイの dllファイルへのフルパスが指定されていることを確認してください。

もしこのエントリがコメントアウトされていた場合（行頭にセミコロンがついている）、以下のように行頭のセミコロンを外してください。

[MAGIC_GATEWAYS]

MGDB20=D:\Magic xpi\Gateways\mgms7.dll

  5. Magic.ini ファイルを保存し、Magic xpiサービスを開始してください。

エラーメッセージが表示されない(データベースサーバとの接続について)場合、Magic xpiの内部データベースの変更が成功したことになります。

ステップ#4：Oracleデータベースのために、magicxpi-setenv.batファイルを更新します。

  • oracle.net.tns_admin jvm の引数を持つGigaSpaces-xpa/bin/magicxpi-setenv.bat > ADDITIONAL_OPTIONS プロパティを更新してください。こそれはTNSNAMES.ORAファイルを含むフォルダへのパスが含まれています。

    例えば： set ADDITIONAL_OPTIONS=%ADDITIONAL_OPTIONS% -Dcom.magicsoftware.ibolt.home=%MAGIC_XPI_HOME%\runtime -Doracle.net.tns_admin=$ORACLE_HOME/network/admin

ステップ#5：Oracle12c以降のデータベースのため、Oracle12cのセッションをプラガブルデータベース(PDB)に切り換える

Oracle12cは、顧客で作成されたプラガブルデータベース(PDB)を含めることができるマルチテナントコンテナデータベース(CDB)です。Oracle12cのデータベースのスクリプトを実行することで、Magic xpiに、PDBを作成させたい場合があります。

スクリプトを実行する前に、次の通りにOracleセッションをそのPDBに切り換える必要があります。

  1. dbaとしてsqlplusと接続してください。例えば： connect system/manager as sysdba

  2. コマンドを実行してください： SHOW CON_NAME

    現在のセッションがどこで実行しているかを確認する必要があります。例えば、次のセッションはルートセッションとして動作しています。

    CON_NAME
    ------------------------------
    CDB$ROOT

  3. データベースサーバ上にどのようなタイプのデータベースを持っているかを確認するには、以下のコマンドを実行する必要があります: SELECT PDB FROM V$SERVICES;

    出力例：

    PDB
    ------------------------------
    PDBORCL
    CDB$ROOT
    CDB$ROOT
    CDB$ROOT
    CDB$ROOT

    これは、PDBORCLであるPDBを持っていることを意味しています。

  4. コマンドを実行してください： alter session set container=PDBORCL;

    出力は次のようになるはずです： Session altered.

  5. セッションが切り替わったことを確認するには、再び以下のコマンドを実行してください： SHOW CON_NAME

    出力は次のようになるはずです： :
    CON_NAME
    ------------------------------
    PDBORCL

  6. これで、Oracleユーザを作成するためにスクリプトを実行することができます。

トラブルシューティング

特定のRDBMSで内部データベース用にMagic xpiを作成した時にエラーが発生した場合、SQLスクリプトの実行時に作成されたエラーログを参照してください。これは、Magic xpaが使用しているRDBMSと関連した問題を特定する場合に役立ちます。

例 - MSSQLデータベース

<Magic xpiインストール>\db\MSSQL 内のMSSQL.logファイルをチェックして、MSSQLサーバに接続してSQLステートメントを実行する際に記録されたエラーを確認してください。

Windows OSの PATH環境変数にパス（MSSQL\Binnフォルダ）のエントリが含まれていることを確認してください。MSSQLサーバ上でデータベースやユーザを作成することが可能な権利を持つユーザIDがあることを確認してください。


Magic xpi の内部データベースを手動で作成するには

Magic xpiの内部データベースを手動で作成するには、<Magic xpiインストールフォルダ>\DBフォルダ内にあるjスクリプトを実行する必要があります。各データベース用に、それぞれのフォルダに必要なスクリプトがあります。

Rundb.batファイルを編集し、それを実行するか、データベースを設定するためのコマンドラインを実行する必要があります。

Rundb.batファイルを編集するには：

  1. %1をSQL Server名に置き換えてください。

  2. %2をユーザ名と置き換えるか、ユーザが無ければ、空の""ブラケットを使用してください。

  3. %3をパスワードと置き換えるか、パスワードが無ければ、空の""ブラケットを使用してください。

  4. コマンドがWindows認証用の場合は、%4を「1」と置き換えます。そうでなければ空の""ブラケットを使用してください。

  5. %5をデータベースのタイプと置き換えてください：MSSQL、ORACLE、DB2、DB2400、またはMYSQL。

コマンドラインからファイルを実行するには：

  1. コマンドプロンプトを開いてください。

  2. DBフォルダへ移動してください。

  3. コマンドラインで、rundbを入力し、スペースを入力後に以下のパラメータを追加してください。

  4. SQL Serverの名前。

  5. ユーザ(ユーザが無ければ、空の""ブラケットを使用してください)の名前。

  6. パスワード(パスワードが無ければ、空の""ブラケットを使用してください)。

  7. コマンドがWindows認証用の場合は「1」を、そうでなければ、空の""ブラケット。

  8. データベースのタイプ：MSSQL、ORACLE、DB2、DB2400、またはMYSQL。

    例えば： C:\Magic xpi 4.6\DB>RunDB MSSQLServer sa p@ssword "" MSSQL

  4. Enterを押下して、パラメータを指定してバッチを実行してください。

ファイルを実行すると、プロセスは選択したDBタイプに基づいたログファイルを作成します。


SQL Server Expressを使用するとき、パフォーマンスの問題を解決するには

Magic xpiが内部データベースとしてMS SQL Server Expressを使用してインストールされるとき、時々パフォーマンスの問題が発生することがあります。たとえば、［データマッパー］画面を開くときに、このような問題を経験するかもしれません。

これらの問題を防ぐには、MS SQL Serverの設定マネージャで、以下の変更を行ってください。

  1. SQL Server構成マネージャを開いてください。.

  2. サーバのプロトコルとしてTCP/IPと名前付きパイプを有効にしてください。

  3. これらの変更をした後、サーバを再起動してください。SQL Server のサービスに移動し、サーバを選択して、（以下の図で示すように)右クリックで再起動します。

  4. 次に、クライアント側で同じプロトコルを有効にしてください。


SQLトランザクション用にデフォルトのBLOBサイズを変更するには

sql_blobsizeフラグを使用して、これを行うことができます。このフラグは、Magic.iniファイルの[MAGIC_LOGICAL_NAMES]セクションにあります。デフォルト値は、1000000に設定されます。これはBLOBのサイズを1MBと定義しています。BLOBのサイズを変更するためにこのフラグの値を変更することができます。


データベース・トランザクション上でロールバックを開始するには

ロールバックを作成するために、フローデータユーティリティを使用することができます。論理変数を以下の式で更新するフローデータ・ステップを作成してください。

Rollback ('FALSE'Log, 0)

この関数は、オープンされたすべてのデータベースのトランザクションをロールバックします。


マッピングのためにMSSQLのDateTimeタイプの送り元をOracleのDateTimeタイプに変換するには

MSSQLのDateTimeタイプは、Magic xpiの文字型タイプ（String Date)として読み出されます。

上記のマッピングを実行するために、Oracleのフォーマットと互換性を持つように、String Dateを変換するためにOracleの to_date関数を使用する必要があります。

例：

  • Insertの代わりにデータマッパーの動的なDBオペレーションを使用してください。

  • 送り元ノードで［StringDate］プロパティがYesに設定されていることを確認してください。

  • ダイナミックなSQL文の“プレイスホルダ”として使用するために、2つの新しい変数（例、F.sourceとF.format)を追加してください。

  • 例えば、以下のようなSQL文を使用してください。
    "insert into table_name values(to_date('<!?F.source?!>','<!?F.format?!>'))"

  • 送り元のMSSQL DateTimeをF.source 変数にマッピングしてください。

  • 以下のフォーマットをF.format変数にマッピングしてください。
    'yyyy/mm/dd hh:mi:ssam' (これは、OracleのDateタイプのデフォルトフォーマットです)

結果として、以下のようなSQL文が作成されます。

insert into table_name values(to_date('2012/01/15 11:05:04','yyyy/mm/dd hh:mi:ssam'))


Magic xpiにOracleのシーケンスを読み込むには

以下のSQL文を数値変数にマッピングすることで、Oracleのシーケンスを取得することができます。

select pubs1.nextval from dual

(*pubs1 は、シーケンスの名前です。)

SQL文トは、手動で記述する必要があります。この場合、ウィザードを使用することができません。


Magic xpiでストアドプロシージャーを呼び出すには

Magic xpiでストアドプロシージャーを呼び出すためにデータマッパーを使用することができます。

データの戻りが内ストアドプロシージャーを呼び出すために動的な送り先のSQL文を使用することができ、また、関連データを送るためにプレースホールダーを使用することができます。

ストアドプロシージャーがデータを返すと、それが結果セットを返すことを確認してください。

パラメータをストアドプロシージャーに送る必要がある場合、ハードコードされた値または環境変数を使用してください。

環境変数を使用するのであらば［データマッパー］画面に入るために最初にハードコードされた値を使用してください。マッピングが完了したら、これらの値を環境変数に置き換えることができます。これをしないと、［データマッパー］画面を開くことができません。

以下のスクリーンショットは、パラメータなしでのストアドプロシージャーの呼び出しを表示しています。

以下のスクリーンショットは、パラメータ付きでストアドプロシージャーを呼び出す場合を表示しています。


データベースのパスワードを変更するには

Magic xpiはインストール時に設定された内部データベースのパスワードの暗号化をサポートしています。

パスワードはユーザーの要求に応じていつでも変更することができます。パスワードを変更するには、以下の手順に従ってください。

  1. <Magic xpi のインストールフォルダ>\DB\Scripts\ フォルダに移動します。

  2. コマンドプロンプトからMagicxpiDBSecurity.batを実行します。その際、ユーティリティは、新しいパスワードを入力するように求められます。

  3. ユーティリティの実行が終了すると、新しいパスワードが保存され、暗号化された形式でdatasource.xmlファイルに設定されます。パスワードが提供されていない場合、ユーティリティは datasource.xml からパスワードを読み取り、暗号化します。

ここで入力したパスワードとデータベース内のパスワードが同じであることを確認してください。

パスワードは大文字と小文字が区別されます。

これが完了したら、GSA と Monitor Display Server サービスを再起動します。これで、暗号化されたパスワードがMagic Monitorの設定ファイル(OPTIONS.ini)にも反映されることを確認します。

(Since version: 4.13.1)


日付と時刻

以下のトピックは、Magic xpiの中で日付と時刻の扱いについて説明しています。

Magic xpi でDateTime の日付タイプを使用するには

Unix 時刻を計算するには

現在の日付を取得するには

現在の時刻を取得するには

日付値を加算するには

時効値を加算するには

指定された日付に対応する月の最初の日付を取得するには

指定された日付に対応する年の最初の日付を取得するには

指定された日付に対応する月の最後の日付を取得するには

指定された日付に対応する年の最後の日付を取得するには

指定された日付に対応する曜日名を取得するには

指定された日付に対応する月名を取得するには

指定された日付の年/月/日の各部分を取得するには

指定された日付の週単位の日数を取得するには

日付値を文字列に変換するには

文字列で格納された日付を日付値に変換するには

XML DateTimeフォーマットを計算するには

ユリウス歴の日付を計算するには


Magic xpi でDateTime の日付タイプを使用するには

Magic xpiは、DateTimeデータタイプをネイティブにサポートしていません。DateTimeデータタイプを使用する場合は、文字列として処理する必要があります。Magic xpiデータマッパーを使用して、データベース間でDateTime値 に対するSELECT、INSERT、またはUPDATE wを行いたい場合はこれを行う必要があります。

Magic xpiは、ノードレベルで簡単に設定することができます。これによってMagic xpiサーバに、文字列としてDateTime値を処理するように指定します。この動作をコントロールするプロパティは、String Dateと呼ばれて、日付データタイプで利用できます。


Unix 時間を計算するには

Unix時間は、協定世界時(UTC)1970年1月1日00:00:00以降からの経過した秒数です。何秒が一定のイベントが発生してからの経過時間を追跡するためにこの数値を使用することができます。

プロジェクトでUnix 時間を使用したい場合、UTCが以下の式を使用するタイムゾーンであるという前提で、Unix時間の導関数を計算することができます。

(Date ()-DVal ('01/01/1970','MM/DD/YYYY')-1)*86400+(Time ()-TVal('00:00:00','HH:MM:SS'))

それでは、この式はどのようなものかを見てみましょう。

Date () - …… これは日付関数で、システム日付を返し、以下を減算します。

DVal ('01/01/1970','MM/DD/YYYY')-1) …… DVal関数は、日付'01/01/1970'を日付値に変換し、Magic xpiに、MM/DD/YYYY という書式であることを指定します。次に、1の値は、1970年の最初の日を削除するために戻り値から減算します。

*86400 …… 86,400（これは1日の秒数です)で戻り値の日付を乗算します。

ここまでで在、1970年1月1日から現在の日付(システム日付)までの秒数を持っています。

次に以下を加算します。

Time () – ……- システム時刻で以下を減算します。

TVal('00:00:00','HH:MM:SS') ……– TVal関数は、時間'00:00:00'を日付値に変換します。HH: MM：SSは、時刻の書式をMagic xpiに指定します。しかし、この部分を空白のままにすると、Magic xpiが書式を'HH:MM:SS' と扱われるため、この部分は省略するすることもできます。

これはMagic xpiに、この日付値が日付の最初に開始されることを指定しています。

式全体がユニット全体としてそれをマークしている括弧に取り囲まれています。


現在の日付を取得するには

Magic xpiで現在の日付を取得するには、Date() 関数を使用します。Date() 関数は、Magic xpiが現在実行中のPCのシステム日付を返します。

日付の格納形式

Magic xpiでの日付は、0001/01/01以降からの日数を表す数値で格納されています。変換はすべて自動的に行われるため、開発者が意識する必要はありませんが、内部処理上は数値として扱われるということです。従って、5日を追加する場合、もとの日付から5日を進めることになります。「月末の日付」や「うるう年」 のような問題に関して考慮する必要はありません。

Date()関数を使用するには：

Date()関数は、データマッパーでしばしば使用されます。これは受渡日として現在の日付を入力し、レコードがいつ作成され修正されたかというタイムスタンプを設定する場合に利用できます。

これを使用する場合は、Date()を入力するだけです。実行時に、関数は現在の日付に置き換えます。

アメリカ(MM/DD/YY)またはヨーロッパ(DD/MM/YY)などの日付のフォーマットを変更した場合、DStr()関数を使用することができます。この詳細については、日付値を文字列に変換するにはのトピックのDStr()関数を使用するを参照してください。

Date()+10のように、この関数に数値式を加算したい場合は、AddDate()関数を使用してください。これは、Magic xpiが日付フィールドで数値式が利用できないからです。


現在の時刻を取得するには

Magic xpiで現在の時間を取得するには、Time() 関数を使用します。Time() 関数は、Magic xpiが実行しているPCのシステム時間を返します。

Time()関数を使用するには：

Time()関数は、データマッパーでしばしば使用されます。これは受渡日として現在の時刻を入力し、レコードがいつ作成され修正されたかというタイムスタンプを設定する場合に利用できます。

これを使用する場合は、Time()を入力するだけです。実行時に、関数は現在の時刻に置き換えます。

より精密な時間を扱う場合は、 mTime 関数を使用してください。


日付値を加算するには

Magic xpiにおける日付データは0年以降の日付を表す数値が格納されています。従って、日付を加算するには、日数を追加するだけで可能になります。例えば：

Date() + 5

この式では、現在から5日後の日付が返ります。

しかし、年数や月数および日数をもとに加算処理を行う場合は、 AddDate()関数を使用します。この関数は、以下の４つのパラメータを使用します。

AddDate(Date, Years, Months, Days)
Date | 加算/減算対象の日付データ
Years | 加算/減算する年数を表す数値
Months | 加算/減算する月数を表す数値
Days | 加算/減算する日数を表す数値

例えば、以下のような式を作成した場合：

AddDate(F.myDate,0,-1,0)

指定された日付から1ヶ月が減算されます。従って、例えば2008年7月6日をもとに計算を行った場合、 AddDate() 関数は2008年6月6日を返します。


時効値を加算するには

Magic xpiにおける時刻データは、0時以降の秒数を表す数値が格納されています。従って、時刻を加算するには、秒数を追加するだけで可能になります。例えば：

Time() + 5

この式では、現在から5秒後の時刻が返ります。

しかし、時数や分数および秒数をもとに加算処理を行う場合は、AddTime() 関数を使用します。この関数は、以下の４つのパラメータを使用します。

AddTime(Time, Hours, Minutes, Seconds)
Time | 加算/減算対象の時刻データ
Hours | 加算/減算する時数を表す数値
Minutes | 加算/減算する分数を表す数値
Seconds | 加算/減算する秒数を表す数値

例えば、以下のような式を作成した場合：

AddTime(F.myTime,-1,0,0)

指定された日付から1時間が減算されます。従って、例えば 14:08:03をもとに計算を行った場合、 AddTime() 関数は13:08:03を返します。


指定された日付に対応する月の最初の日付を取得するには

帳票処理のための日付範囲を求めるために、月の最初の日付を取得する必要がある場合があります。BOM() 関数を使用することで、このようなことが実現できます。

BOM()関数を使用するには：

BOM() 関数の構文は以下の通りです。

BOM(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、月の最初の日付を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

参照： 指定された日付に対応する月の最後の日付を取得するには


指定された日付に対応する年の最初の日付を取得するには

帳票処理のための日付範囲を求めるために、年の最初の日付を取得する必要がある場合があります。BOY() 関数を使用することで、このようなことが実現できます。

BOY()関数を使用するには：

BOY() 関数の構文は以下の通りです。

BOY(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、年の最初の日付を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

参照： 指定された日付に対応する年の最後の日付を取得するには


指定された日付に対応する月の最後の日付を取得するには

帳票処理のための日付範囲を求めるために、月の最後の日付を取得する必要がある場合があります。EOM()関数を使用することで、このようなことが実現できます。

EOM() 関数を使用する利点の一つは、うるう年を正しく処理することです。

EOM()関数を使用するには：

EOM()関数の構文は以下の通りです。

EOM(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、月の最後の日付を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

参照： 指定された日付に対応する年の最初の日付を取得するには


指定された日付に対応する年の最後の日付を取得するには

帳票処理のための日付範囲を求めるために、年の最後の日付を取得する必要がある場合があります。EOY()関数を使用することで、このようなことが実現できます。

EOY()関数を使用するには：

EOY()関数の構文は以下の通りです。

EOY(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、年の最後の日付を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

参照： 指定された日付に対応する年の最初の日付を取得するには


指定された日付に対応する曜日名を取得するには

指定された日付が何曜日になるかを取得し、テキストに変換することは非常に難しいことかもしれません。しかしこれを行うには、CDOW() 関数を使用することができます。

この関数を使用する利点の一つは、プロジェクトが他の国で使用された場合、ユーザの選択した言語で曜日名を返すということです。

ヒント：

週単位の日付計算を行う必要がある場合は、DOW() 関数を使用することができます。この関数は週単位で日数（日曜日を1とした、日数）が返ります。フロー内で使用するには、こちらの方が便利です。

参照： 日付値を文字列に変換するには トピックの 日付書式 セクション。

CDOW() 関数を使用するには：

CDOW()関数の構文は以下の通りです。

CDOW(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、曜日の名前（英語）を含む文字列を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。


指定された日付に対応する月名を取得するには

指定された日付に対応する月名を取得し、テキストに変換することは非常に難しいことかもしれません。しかしこれを行うには、CMonth() 関数を使用します。

この関数を使用する利点の一つは、プロジェクトが他の国で使用された場合、ユーザの選択した言語で月の名前を返すということです。

ヒント：

月数の計算を行う必要がある場合は、Month() 関数を使用することができます。この関数は、名前ではなく月数を数値で返します。フロー内で使用するには、こちらの方が便利です。

CMonth()関数を使用するには：

CMonth()関数の構文は以下の通りです。

CMonth(date)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

この関数は、月名（英語）を含む文字列を返します。

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

参照： 指定された日付の年/月/日の各部分を取得するには


指定された日付の年/月/日の各部分を取得するには

フロー内で日付データを使用する場合、日付データを分離する必要があるかもしれません。例えば、その年の1ヶ月間の全レコードを要約するような場合が考えれます。

日付データを分離するには、以下の３つの関数があります。

  • Day(date) …… その月の日数を表す数値を取得します。

  • Month(date) …… 月数を表す数値を取得します。

  • Year(date) …… 年数を表す数値を取得します。

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

ヒント：

  • 月数に基づいた計算をする必要がある場合は、異なる関数、Month()を使用してください。これは、フロー内で月数の数値を返します。

  • 月の名前や曜日の名前を表示させたい場合は、CMonth() 関数や CDOW() 関数を使用します。これらは、文字列で名前を返します。参照：指定された日付に対応する月名を取得するには


指定された日付の週単位の日数を取得するには

プログラムの内容によっては、週単位で処理を行う必要があるかもしれません。例えば、金曜日に給料が配達される場合、指定された日付が金曜日か否かを確認する必要があるはずです。

値が数値で返るようであれば、曜日を確実にチェックできます。特に、アプリケーションが他言語で実行されるような場合、このオプションはスペルや大文字／小文字の問題を低減させることになります。

指定された日付から週番号を取得するには、 DOW())関数を使用します。

DOW()関数を使用するには：

DOW(date) は、週単位での日数を取得します。返される値は、１（日曜日）から 7（土曜日）までです。

例えば、2007/08/19は日曜日なので DOW(`2007/08/19'DATE) は、1を返します。

ヒント：

指定された日付の曜日名（英語）を取得する場合は、CDOW()関数を使用します。

参照： 指定された日付に対応する曜日名を取得するには


日付値を文字列に変換するには

Magic xpiにおける日付値は基本的には数値で、0001/01/01以降の日数として扱われます。しかし、日付を文字列に含めたい場合、日付を文字列に変換する必要があります。このような場合、DStr() 関数を使用して行います。

日付書式

日付を表示する場合、Magic xpiでは複数の書式を指定することができます。日付の書式は、どのように表示されるかを指定します。書式は、日付を解釈する一種のテンプレートです。文字で示されたプレイスホールダは、どのように日付を解釈するかを示すために使用されます。例えば、2007年6月30日 は以下のように扱われます。

書式 | どのように表示されるか | コメント
YY/MM/DD | 07/06/30 |
YYYY/MM/DD | 2007/06/30 |
YYYYMMDD | 20070630 |
YYYY-MM-DD | 2007-06-30 |
YYYY | 2007 |
YY | 07 |
MMMM | June |
DDD | 181 | ユリウス歴での年内の日数
DDDD | 30th |
WWW | Sat |
WWWWWWWWW | Saturday |
##/##/#### | Depends | Magic.iniファイルで設定されているDateModeで定義された値に依存します。

DStr()関数を使用する：

DStr()関数の構文は以下の通りです。

DStr (date, picture)

戻り値: 指定された書式による文字列。 DStr() 書式を使用します。

この関数がどのように動作するか、いくつかの例があります。

Magic.iniファイルの中で設定しているDateMode が A (アメリカ)と設定されている場合。

DStr ('01/28/92'Date,'WWWWWWWW, MMMMMMMM DD, YYYY')

戻り値: 'Tuesday, January 28, 1992'.

DateMode が E (ヨーロッパ)と設定されている場合, DStr('28/01/96'Date,'DD/MM/YY')

戻り値: 28/01/96.

参照： 文字列で格納された日付を日付値に変換するには


文字列で格納された日付を日付値に変換するには

通常Magic xpiは、日付変換処理を行います。すなわち、フォーム上に日付を表示したり、フォームの日付を読み込んだり、データソースから読み込む場合、手動で変換する必要はありません。しかし、文字列を日付として取得するためにその文字列を解析する必要がある場合、若干のプログラムを組む必要があります。

このような場合、 DVal() 関数を使用する必要があります。この関数は文字列を解析して日付データに変換するために指定呈された書式を使用します。書式と文字列の整合性は、開発者に依存しています。例えば以下のようになります。

式 | 結果
DVal('06/30/07', 'MM/DD/YY') | June 30, 2007
DVal('06/30/07', 'DD/MM/YY') | 0

参照： 日付値を文字列に変換するには


XML DateTimeフォーマットを計算するには

Magic xpiは、XML DateTimeフォーマットを簡単に計算するができます。これを行うために必要なものは、提供されている4つのMagic xpi関数のうちの1つを使用します。

DateTimeFormat, GetDate, GetTime, or GetTimeZone.

DateTimeFormat()関数を使用するには：

DateTimeFormat()の構文は以下の通りです。

DateTimeFormat(date, time, timezone, format)

date …… 日付項目（05/06/2008'DATEのように直接日付を指定するか、日付データを返す式を指定）

上記の05/06/2008'DATE中の文字列'DATE'は、Magic xpiのリテラルです。このリテラルを使用すると、文字列は日付と解釈されます。

これが数値として内部で扱われるため、四則演算で使用することができます。例えば、01/01/97'DATE+14は、日付'15/01/97' が算出される有効な式です。

time …… 時刻項目 ( '16:10:14'TIM のように直接時刻を指定するか、時刻データを返す式を指定)

timezone …… 世界標準時として使用したいタイムゾーンです。

format …… 使用したい XML DateTimeのフォーマットで、YYYY-MM-DDThh：mm：ssTZDまたはユリウス歴の日付フォーマットです。

ここに、この関数がどのように動作するかを示す例があります。

式： DateTimeFormat('29/04/2008'Date, '10:45:30'Time, '+05:30',1) 。戻り値： 2008-04-29T10:45:30+5:30.

GetDate()関数を使用するには：

この関数は1つのDateTime文字列を受け入れ、文字フォーマットで入力値の日付セクションを返します。

GetDate()の構文は以下の通りです：

GetDate(datetime, format)

datetime …… DateTime式です。

format …… 使用したい XML DateTimeのフォーマットで、YYYY-MM-DDThh：mm：ssTZDまたはユリウス歴の日付フォーマットです。

ここに、この関数がどのように動作するかを示す例があります。

式： GetDate('2008-04-29T10:45:30+5:30',1)。戻り値：2008-04-29.

GetTime() 関数を使用するには：

この関数は1つのDateTime文字列を受け入れ、文字フォーマットの中で入力値の時間セクションを返します。

GetTime() の構文は以下の通りです：

GetTime(datetime, format)

datetime …… DateTime式です。

format …… 使用したい XML DateTimeのフォーマットで、YYYY-MM-DDThh：mm：ssTZDまたはユリウス歴の日付フォーマットです。

ここに、この関数がどのように動作するかを示す例があります。

式： GetTime('2008-04-29T10:45:30+5:30',1)。戻り値： 10:45:30.

GetTimeZone() 関数を使用するには：

この関数は、日付と時間の入力値を受け入れ、文字フォーマットで入力値のタイムゾーンセクションを返します。

GetTimeZone() の構文は以下の通りです：

GetTimeZone(datetime, format)

datetime …… DateTime式です。

format …… 使用したい XML DateTimeのフォーマットで、YYYY-MM-DDThh：mm：ssTZDまたはユリウス歴の日付フォーマットです。

ここに、この関数がどのように動作するかを示す例があります。

式： GetTimeZone('2008-04-29T10:45:30+5:30',1),。戻り値： +5:30.

参照： ユリウス歴の日付を計算するには


ユリウス歴の日付を計算するには

JD Edwardsを使用する場合、すべての日付を6桁に変換するユリウス日付の特別なタイプを使用する必要があります。Magic xpiは、ユリウス日付のJD Edwards タイプを計算します。これによってMagic xpi の JD Edwards Enterprise OneとJD Edwards Worldのコネクタの使用が簡単になります。

この目的のために、Magic xpiは4つの関数を提供します。

DateTimeFormat, GetDate, GetTime, or GetTimeZone.

これらの関数の各構文についての詳細は、XML DateTimeフォーマットを計算するにはのトピックを参照してください。

関数は同じ方法で動作しますが、［フォーマット］パラメータで、2を入力します。これによって、関数に、ユリウス日付の値を返すように指示することになります。

このタイプのユリウス日付のためのフォーマットは、CYYDDD です。Cが世紀(0=1900と1=2000)、YYは年数、DDDは日数です。

従って、111081の 場合、1は世紀を示し、11は年(2011)、081はその年内の81日目となります。

ここで、関数のいくつかの例を示します。

式 | 結果
DateTimeFormat('22/03/2011'Date, '','',2) | 111081
GetDate('111081',2) | 2011/03/22
GetTime('111081',2) | 10:45:30
GetTimeZone('111081',2) | +5:30


配備

以下のトピックは、Magic xpiプロジェクトの配備について扱っています。

自動的に開始するようにプロジェクトを設定するには

配備するPCに、どのファイルをコピーする必要があるか

プロジェクトを配備環境に移動させる時にどの構成を修正する必要があるか

配備のために使用する実行可能ファイルを作成するには

プロジェクトのDirectory Scannerコンポーネントがネットワークドライブからファイルにアクセスすることができることを確認するには

Webサーバのエイリアスを定義する時に、クライアントのユーザとパスワードを取得するには

配備されたプロジェクトでHTTPリクエストのボディを受け取るには

HTTPリクエストのHTTP Verbを取得するには

運用環境でコンポーネントのロギングを保持する必要があるか

Web サービスのトリガを配備するには

ユーザ定義のコンポーネントを配備環境に移動するには

Java Keytoolを使用してSSL証明書を生成するには？

Apache TomcatにSSLを実装するには


自動的に開始するようにプロジェクトを設定するには

プロジェクトのスタートアップ構成は、projectsStartup.xmlファイルで定義されます。ここには、自動的に開始されるプロジェクトのリストが含まれています。projectsStartup.xml.exampleと名付けられたこのファイルのサンプルは、<Magic xpiインストール>\Runtime\Config フォルダ内に提供されています。<Magic xpiインストール>\Runtime\Configフォルダに置く必要のある projectsStartup.xmlファイルを作成するには、projectsStartup.xml.exampleファイルを使用してください。

Magic xpiサービスがMagic Spaceを開始し配備すると、自動的にprojectsStartup.xmlファイルにリストされるプロジェクトとサーバが開始されます。

projectsStartup.xmlファイルの名前は変更しないでください。名前を変更をすると、GSAは、Magic SpaceにprojectsStartup.xmlファイルの情報を配備するすることができなくなります。


配備するPCに、どのファイルをコピーする必要があるか

プロジェクトの開発を終了したら、先に進み、フィールド内のプロジェクトの配備を準備することができます。適切に装備するには、配備するPCへコピーする内容を確認する必要があります。

これらは、以下の通りです。

  • 開発PCのプロジェクトフォルダ。

  • プロジェクトで作成したユーザコンポーネント。

また、SystinetにWeb サービスプロバイダのJarを配備する必要があります。


プロジェクトを配備環境に移動させる時にどの構成を修正する必要があるか

プロジェクトを配備環境に移動する時、適切に動作させるためにプロジェクトのために構成を部分的に修正する必要があります。

  • プロジェクトで使用され、Magic.iniファイルで定義された環境変数は、配備PCのMagic.iniファイルにコピーされ、配備環境に対応するように修正する必要があります。

  • プロジェクトのifs.iniファイルで定義された環境変数は、配備環境に対応するように修正する必要があります。

  • Magic.iniファイルの内部のデータベースの環境変数は、配備PCの内部データベースを示すように修正してください。

  • start.xmlファイルは、プロジェクトフォルダの新しい位置と新しいホストに対応するように修正してください。

  • 手動での起動とシャットダウンができるように、 <My Documents>\Magic\projects\<プロジェクト名>\<現在のプロジェクト> にある開始と終了のリンクを新しいプロジェクトの位置を示すように修正してください。

  • 自動起動する新しいプロジェクトをリストに反映するために、<Magic xpiインストール>\Runtime\ConfigフォルダのprojectsStartup.xmlファイルを修正してください。

  • サーバのifs.iniファイルのLicenseName 特性は、運用ライセンス(WindowsPCの場合はIBPRSRVI、非Windowsマシンの場合はIBPRSRVN)に設定してください。


配備のために使用する実行可能ファイルを作成するには

Magic xpi スタジオ を使用している場合、Magic xpiプロジェクトまたは.mgxpiprojファイルにアクセスしています。この.mgxpiprojファイルは、ソースファイルのコレクションを参照します。これは<My Documents>\Magic\projects\<プロジェクト名>\<現在のプロジェクト>\Source にXMLフォーマットで保持されています。

しかし、プロジェクトが完成したら、インストール用にパッケージ化したいはずです。パッケージ化されたファイルは、Magic xpiの実行可能ファイルまたは.ibpとして知られていて、ビルドまたはリビルドの処理によって作成されます。.mgxpiprojと.ibpファイルの主要な違いは以下の通りです。

.mgxpiproj | .ibp
Magic xpiプロジェクト | Magic xpi の実行可能ファイル
Magic xpi スタジオを開きます。 | 統合プロジェクトを実行します。
XMLソースファイルが存在している必要があります。 | XMLソースのパッケージされたバージョンが含まれています。

プロジェクトを配備する時は、.ibpファイルと他のサポートファイル(フォント、色、コンポーネントなど)だけを配備する必要があります。

また、配備の際、Magic xpiの実行版だけをインストールするだけで十分です。

実行可能な.ibpファイルは、簡単に作成することができます。

実行可能ファイルを作成するには：

  1. プロジェクトを開いてください。

  2. ［ビルド］メニューを開き、［ソリューションのビルド］または［ソリューションのリビルド］のどちらかを選択してください。

ダイアログボックスが閉じたら、.ibpファイルが <My Documents>\Magic\projects\<プロジェクト名>に作成され、利用できるようになります。


プロジェクトのDirectory Scannerコンポーネントがネットワークドライブからファイルにアクセスすることができることを確認するには

プロジェクトのDirectory Scannerコンポーネントがネットワークドライブからファイルにアクセスすることができることを確認するためには、ネットワークリソース(システム管理者によって定義されます)にアクセスするために、証明書を持っていることを確認する必要があります。その際、必要な位置でファイルの削除や書込、リネームが可能です。

これを行うには、以下のようにします。

  1. ［スタート］メニューから［ファイル名から実行］をクリックしてください。［ファイル名から実行］ダイアログボックスが開きます。

  2. ［ファイル名から実行］ダイアログボックスでservices.mscを入力し、［OK］をクリックしてください。［サービス］ダイアログボックスが開きます。

  3. ［サービス］ダイアログボックスで、Magic xpi4.6GSAサービスをダブルクリックしてください。［サービスプロパティ］ダイアログボックスが開きます。

  4. ［ログオン］タブをクリックしてください。

  5. ［アカウント］オプションを選択し、アカウント名とパスワードを入力してください。

  6. ［OK］をクリックしてください。


Webサーバのエイリアスを定義する時に、クライアントのユーザとパスワードを取得するには

IISの認証設定がBASIC認証に設定されている場合、Magic xpiへのHTTPリクエストはユーザとパスワードを必要とします。指定されない場合、リクエストは受け取りません。

これらの詳細は、HTTP_AUTHORIZATIONリクエストのHTTPヘッダで利用可能です。

mgreq.iniファイルでHTTP変数を定義することで保持することができ、その情報を検索するためにGetParam関数を式エディタに手動で入力することができます。（この関数は、Magic xpiの関数リストでは選択できませんが、Magic xpaの機能を利用しています。）

これを行うには、以下のようにします。

  1. mgreq.iniファイル( Runtime\scripts\configディレクトリ)に以下のようにHTTP変数を追加してください。
    HttpVars = REMOTE_USER,MG_POST_BODY, HTTP_AUTHORIZATION

  2. IISを再起動してください。

  3. プロジェクトを開いてください。

  4. HTTPトリガを含むフローにおいて、以下の関数を使用して、任意の変数を更新してください。
    GetParam ('HTTP_AUTHORIZATION')
    変数には、Base64フォーマットのユーザIDとパスワードが含まれています。(例えば:‘Basic XXXXXXX’)


配備されたプロジェクトでHTTPリクエストのボディを受け取るには

配備されたプロジェクト内でHTTP リクエストのボディを受け取るには、<Magic xpiインストール>\Runtime\scripts\configフォルダ内にある mgreq.iniファイルのHttpVarsパラメータにMG_POST_BODY プロパティを追加して、IISを再起動してください。

実行時に、HTTPボディはC.HTTP_Bodyコンテキスト変数で有効になります。


HTTPリクエストのHTTP Verbを取得するには

  1. <Magic xpiインストール>\Runtime\scripts\configフォルダ内のmgreq.iniファイルで、HttpVarsパラメータを有効にし、変数REQUEST_METHODを追加してください。

  2. IISを再起動してください。

  3. HTTPトリガを含むフローにおいて、verbを受け取るために、フローデータユーティリティの［更新式］カラムで以下の式を使用してください。 GetParam ('REQUEST_METHOD')

プロジェクトを実行すると、GET、POST、PUT、DELETE、およびHEADなどの値が取得されます。


運用環境でコンポーネントのロギングを保持する必要があるか

Magic xpiは、プロジェクトについての追加情報を取得する様々なロギングオプションを提供しています。しかし、ロギングを有効にするとプロジェクトの実行の速度は低下します。

従って、最適なプロジェクト性能を得るために、特定のログタイプを無効にすることができます。デバッグする必要がある特定の問題がない限り、Mapper.logとSFDCログなどのログをデバッグすることは運用環境では使用しないでください。

さらに、内部データベースに書き込んだり、モニタに表示されるロギングメッセージのいくつかを無効にすることができます。これらのフィルタリング選択を更新した場合、適用するためにサーバを再起動する必要はありません。

ifs.iniファイルのMonitorLogLevel= flag によってモニタのロギングレベルを制御ることもできます。しかし、このフラグに変更を加えた場合、変更内容を反映させるためにサーバを再起動する必要があります。


Web サービスのトリガを配備するには

Magic xpi でWeb サービスサーバを作成する場合、［サービス：Webサービス］ダイアログの、［Web サービスの配備］のチェックボックスを選択することでSystinet内に自動的に Webサービスを配備させることができます。

代わりに、以下の手順に従うことにで Systinet から手動でモジュールを配備することができます。

  1. Systinetコンソールを開いてください。2つの方法のうちのどれかを行ってください。

a.以下のURLを使用してください： http://<Systinet host>:6060。例えば： http://localhost:6060.

b.Windowsの［スタート］メニューを開き、 Start WSO2 SESJ オプションと WSO2 SOA Enablement Server Administration Console オプションをクリックしてください。

c.stinet host>:6060. 例えば： http://localhost:6060.

Systinetへのデフォルトログインオプションは、User Name = adminとPassword = changeitです。

  2. Deployment をクリックして、Deploy new package に続けます。

  3. コンテキストとコンテキスト名に入力してください。

  4. 配備したいパッケージを選択してください。これはMagic xpiによって作成された.jar ファイルです。これは、project\service\<サービス名> フォルダにあります。

  5. ［Deploy］ボタンをクリックしてください。

これでWeb サービスサーバが利用できます。


ユーザ定義のコンポーネントを配備環境に移動するには

.NETベースのユーザ定義コンポーネント

Magic xpi の.NET Utilityを定義すると、.NETベースのユーザ定義コンポーネントが開発PC上のプロジェクトフォルダに作成されます。推奨方法として、プロジェクトフォルダをそのまま配備PCに移動すると、プロジェクトを配備すると、利用可能なユーザ定義.NETコンポーネントが自動的に定義されることになります。そうしない場合は、開発PC上でコンポーネントを手動でプロジェクトのフォルダに移動する必要があります。

Javaベースのユーザ定義コンポーネント

Javaベースのユーザ定義コンポーネントを作成するためにコネクタビルダを使用することができます。コンポーネントのファイルは、開発PC上の<Magic xpi>\Runtime\addon_connectorsフォルダに保存されます。開発PC上で同じ階層を持つこれらのコンポーネントを手動で同じフォルダに移動させる必要があります。

Javaの実装が含まれたjarは、開発PCからコピーする必要があります。jarは、Magic.iniファイルまたはOSのclasspathのどちらかで参照されるようにすべきで、それは<Magic xpi>\Java\libフォルダに配置されています。

コネクタビルダを使用してユーザがユーザ定義コンポーネントを修正することを防止するには、metadata.xmlファイルのないコネクタフォルダをユーザに送ってください。


Java Keytoolを使用してSSL証明書を生成するには？

このページではSSL証明書を生成するプロセスをすぐに開始する方法について説明します。証明書は様々な方法で生成することができ、様々なキーアルゴリズムが含まれます。このページでは、Java（JDK）インストールプログラムに付属しているKeytoolを使用して証明書を生成する一つの方法を説明します。

証明書を生成

SSLを有効にするには、最初に証明書ファイルを生成する必要があります。証明書の生成はJavaに付属している標準のkeytoolを使用して生成できます。 SSLは.keystoreファイルまたはjksファイルのいずれかを使用して構成します。keytoolのガイダンスに従って、証明書ファイルを生成するための一連の手順を実行することができます。

一連の手順を実行する際、各要件に従って値を設定してください。また、設定したパスワードはTomcatの構成時に必要になるので、記憶しておく必要があります。

keytool を実行するには、コマンドプロンプトで下記のコマンドを実行します。

keytool -genkey -alias tomcat -keyalg RSA

.keystore ファイルはデフォルトでユーザのホームフォルダに生成されます。

keystoreパラメータを追加してjksファイルを作成し、カスタムファイル名とロケーションを指定することもできます。

例：

keytool -genkey -alias tomcat -keyalg RSA -keystore samplekeystore.jks

jksファイルを生成する際、コマンドプロンプトの一連の手順を実行したくない場合は、-noprompt を使用することができます。

例：

keytool -genkey -alias tomcat -keyalg RSA -noprompt -dname "CN=localhost, OU=NA, O=NA, L=NA, S=NA, C=NA" -keystore samplekeystore.jks -validity 9999 -storepass <...> -keypass <...>

keytoolプログラムの詳細は、JDKのドキュメントを参照してください。


Magicモニタ用のApache TomcatにSSLを実装するには？

Home > Magic xpi 逆引き辞典 > 配備 > Apache TomcatにSSLを実装するには？

Apache TomcatにSSLを実装するには？

TomcatでSSLを有効にするには、証明書ファイルを取得する必要があります。証明書ファイルがない場合は、ここをクリックすると証明書を生成する一つの方法が記載してあります。

このページでは、Magic モニタ、デバッガ、ローカルエージェントでSSLを使用する場合の基本的な概要を説明します。ただし、考えられる全てのシナリオと適用例を網羅しているわけではありません。より詳細な文書については、Apache Tomcat ドキュメントを参照してください。その他の公式なドキュメントがあればそちらもご参照ください。

TomcatでSSLを有効にするには以下のステップを実行します。

  1. Tomcatインストールフォルダ下のconfフォルダに移動します。

  2. このフォルダでserver.xmlを探し、まずこのファイルをバックアップします。

  3. テキストエディタでserver.xmlを開きます。

  4. このファイルの<Connector>タグを見つけます。<Connector>タグは下記のように記述されています。

<Connector port="8068" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

SSLを実装するには、既存のConnectorタグを下記のように置き換え、太字の属性を仕様に合わせて変更する必要があります。

<Connector port="<SSL Port>" keystoreFile="<Path to certificate file with .keystore or .jks extension>"

keystorePass="<Certificate password>"

SSLEnabled="true"

scheme="https"/>

ConnectorタグのkeystoreFile属性は、証明書ファイルの場所を定義します。このファイルはjksフォーマットかkeystoreフォーマットのどちらかになります。keystorePass属性に続いて証明書の生成中に提供されたものと同じパスワードを入力し、portタグにSSLポートを入力します。

jksタイプの証明書を使用したConnectorタグの例を以下に示します。:

<Connector port="8443" keystoreFile="conf/samplekeystore.jks"

keystorePass="changeit"

SSLEnabled="true"

scheme="https"/>

次のステップはweb.xmlの更新です。この手順は、Webサーバの構成でHTTPとHTTPSの両方が有効であり、WebappパスをHTTPSプロトコルに制限する場合にのみ有効です。下記にWebappパスの例としてMagicモニタの例を示します。magicmonitorの文字列をDebuggerやRemoteDebuggerなどの他の適当な値に置き換えることができます。

  1. <Magic xpi installation>\Runtime\RTView\base\conf フォルダにあるweb.xmlファイルを見つけます。

  2. テキストエディタでこのファイルを開き、下記のセクションをファイル末尾の</web-app> タグの前に追加します。

<security-constraint>

<web-resource-collection>

<web-resource-name>magicmonitor</web-resource-name>

<url-pattern>/</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

設定が終了したら、「Magic Monitor Display Server」サービスを再起動してください。

関連トピック

デバッガの保護

Magic モニタの保護

ローカルエージェントの保護


開発時の検討事項

以下のトピックは、Magic xpi での開発時に検討する項目について扱っています。

配備をより簡単にするために開発ガイドラインとは

Web サービスコンシューマを配備PCに移行するには


配備をより簡単にするために開発ガイドラインとは

プロジェクトの開発を始める前に、プロジェクトを配備したい時に助けとなる様々な選択を考慮しておいてください。

  • データマッパーによって使用されたスキーマなどのファイルをプロジェクトフォルダにすべてを保持しておいてください。この方法によって、一方の中心的な位置の必要なファイルとプロジェクトフォルダに関連している他のファイルのほとんどを持つことになります。これによって、開発環境から配備環境にそれらを簡単にコピーすることができます。

  • ファイルやコンポーネントに名前を割り当てる場合、小文字だけを使用してください。Windows OSではファイルとコンポーネントの名前は大文字小文字を区別しません。しかし、UNIXまたはIBM iなどの他のOSでは大文字小文字を区別します。プラットフォームを横断して名前が利用できるように、小文字を使用してください。

  • 環境変数は、開発環境から配備環境にプロジェクトをよりスムーズに移行できるようにします。物理的な記憶媒体、またはOSの命名規則との明示的な関係を持つことなくアプリケーション要素のために名前を作成することができます。次のような環境変数を使用してください。

  • 外部のプロジェクトのフォルダ内のファイルの物理パス …… これはMagic xpi 内のすべてのコネクタと関連した一般的なガイドラインです。

  • FTPコンポーネントとDirectory Scannerコンポーネント内のFTPパス。

  • Web サービスコンシューマ …… WSDL位置とエンドポイント。参照：Web サービスコンシューマを配備PCに移行するには

  • サーバ、メッセージングキュー、およびエイリアスの名前またはアドレス。

  • ネットワークドライブで環境変数を使用することを推奨します。

  • それは、プロジェクトのロジック(例えば、ハードコードされたリトライのループ数を定義する代わりに、この数値を保持する環境変数を使用し、環境変数が存在してい場合、ハードコードされたデフォルトを定義します)と関連した構成。

  • 原文のデータのためにANSIを使用しないでください。代わりにUnicodeを使用してください。詳細は、推薦とヒントを参照してください。

  • Magic xpi の開発と運用環境の両方で同じデータベースタイプを使用してください。

参照： サーバ性能の考察


Web サービスコンシューマを配備PCに移行するには

Web サービスコンシューマのエンドポイントは、すでに移植可能で、エンドポイントを環境変数として定義することで、またはリソースから値を変更することによって変更することができます。

配備を成功するための唯一の問題と注意する重要な点は、WSDLの位置です。サービスをロードした後に、変更することはできません。

この問題を解決するには、WSDL URLのために環境変数を使用して、それを運用環境に対応した値に変更することを確認してください。

このためのステップは以下の通りです。

  1. ［設定］ダイアログボックスの［環境］セクションの中で、ユーザ環境変数の下の［追加］をクリックして、WSDL URLのために新しい環境変数を作成します。ここで、以下のURLへのパスを指定します。

    http://mui.magicsoftware.com/eDevCountriesDemo/Service1.asmx?WSDL

  2. ［OK］をクリックしてください。

  3. ［設定］ダイアログボックスの［リソース］セクションで、Web サービスクライアントリソースの中で、［WSDL URL］設定に移動し、パーセント記号(%)を含めた新しい環境変数を入力してください。ここでは、%WsdlURL% が入力されています。これは、上記で定義された環境変数です。

  4. ［構成］ボタンをクリックして、［設定］ダイアログボックスを開き、［読込］をクリックしてください。すべてが適切に設定されると、"WSDLの読み込みに成功しました"というメッセージが表示されます。


Directory Scannerコンポーネント

以下のトピックは、Magic xpi のDirectory Scannerコンポーネントについて扱っています。

Directory Scannerのトリガによって処理されたファイルの数を制御するには


Directory Scannerのトリガによって処理されたファイルの数を制御するには

Directory Scannerのトリガによって処理されたファイル数を制限するには、フローの［プロパティ］ペインで設定する［最大インスタンス数］を使用してください。

この設定は、フローが持つことができる並行インスタンスの数を制限します。

しかし、Directory Scannerは、まだ、TriggersBufferSize= flag(デフォルト値は10)で定義された制限でファイルを取得し、Space

にそれらをロードし続けることに注意してください。


Dynamics CRMコネクタ

以下のトピックは、Magic xpiのDynamics CRMコネクタについて扱っています。

非アクティブな状態にあるオブジェクトを更新するには

Dynamics CRMを使用してPhoneCall(アクティブ)を作成するには

日付フィルターに基づいてクエリ操作を実行するには？


非アクティブな状態にあるオブジェクトを更新するには

オブジェクトを変更したり、更新したりした場合、そのオブジェクトが非アクティブ、またはクローズ状態にある時は、常に最初にステータスを更新する必要があります。

これは、新しいステータスをStateCodeオブジェクトまたはstatuscodeフィールドにマッピングすることでは行われません。

代わりに、Change Stateオペレーションを使用してこれを行います。

このオペレーションは、エンティティの状態を変更するために使用されます。各エンティティは、このオペレーションによって変更することができるActive、InactiveそしてOpenななどのステータスがあります。

このオペレーションを使用する時、データマッパーには2つのノードがあります。

  • statecode …… ステータスです。

  • statuscode …… ステータスの意味です。

statecodesはステータスを表す数値では無く、ステータスの文字列(ActiveやInactiveなど)として使用する必要があります。Dynamics CRMはただ、特定のstatecodeのために有効なstatuscodesを受け入れ、正しい数値をstatuscodesに設定したことを確認しなければなりません。例えば、0(Open)のstatecodeを持つ読み込みエンティティを持つことができます。このstatecodeは、1(New)または2(Contactedのstatuscodeを持つことができます。

statecodesとstatuscodesのリストについては、次を参照してください：https://technet.microsoft.com/en-us/library/dn531157(v=crm.7).aspx.


Dynamics CRMを使用してPhoneCall(アクティブ)を作成するには

PhoneCallオブジェクトは、Caseオブジェクトと関連しているアクティビィティのタイプです。Caseオブジェクトは、ContactオブジェクトまたはAccountオブジェクトと関連することができます。従って、PhoneCallを作成するには、最初に、Contact/Accountを定義し、次にアクティビィティにドリルダウンする必要があります。

この例は、Contactのケースのために、どのようにPhoneCallを作成するかについて説明しています。

  1. ContactのIDを取得します。

a.この例において、ファーストネームが‘Marco’であるContactのIDを取得してください。

b.次に、ContactのIDをF.ContactId 文字変数に保存するために、データマッパーを使用してください。

  2. そのContactのためにインシデントなオブジェクトを作成してください。Dynamics CRMでは、インシデントはCaseと呼ばれます。

a.新しく作成されたインシデントIDをF.IncidentId文字変数に保存してください。

b.インシデントを作成する時に、それをCustomerに照会しなければなりません。
WebベースのUI(以下)の場合、［Customer］フィールドのためにアスタリスクが必須になります。

Magic xpi では、CustomerIdを提供し、顧客のタイプを定義する必要があります。この場合に'contact'です)。

さらに、新しく作成されたインシデントのために名前を指定する必要があります。この例では、それを 'Incident 1'と呼びます。

  1. 以下のイメージで示すように、作成されたインシデントのために、PhaoneCallオブジェクトを作成してください。

    WebベースのUI を考慮したフィールド名であることに注意してください。後で、このトピックはMagic xpi経由でその属性にどのよぅに値を設定するかを説明します。

    Magic xpi で、新しく作成されたPhoneCallのIDをF.PhoneCallId 文字変数に保存してください。

    次に、RegardingObjectIdとそのタイプを提供する必要があります。この例では‘'Incident'です’。さらに、新しく作成されたPhoneCallに名前を指定する必要があります。ここでは、'PhoneCall 1' と呼びます。


日付フィルターに基づいてクエリ操作を実行するには？

日付フィルターを作成するには、Dynamics CRMステップ構成時にクエリ操作を選択します。

[OK]ボタンをクリックすると、[データマッパー]ウィンドウが開きます。

以下に示すように、日付と時刻の子プロパティを個別にマップする場合、日付と時刻フィールドに入力した値は読み取り専用モードでのみ使用でき、その結果、クエリ操作はデータを返しません。

データをクエリするには、親ノードにパークします。 プロパティペインから[計算値]プロパティを選択し、日付と時刻を次の形式で入力します：yyyy-MM-ddTHH：mm：ss.sssZ

例えば、下の画像の 2019-07-21T10:27:01.000Z のようになります。

この場合、日時エンティティのデータは、親ノードの下にまとめられます。


エンコード

以下のトピックは、Magic xpiでのエンコードについて扱っています。

ファイルが指定されたエンコードで定義されることを確認するには

指定されたエンコードでファイルを作成するには

UnicodeかANSI、UTF-8のファイルをメモリに読み込ませるには

データマッパーを使用する場合、UnicodeかANSI、UTF-8のフラットファイルでレコードを処理するには

UnicodeかUTF-8 BOMをBLOBファイルに追加するには

UnicodeかUTF-8 BOMをBLOBファイルに追加するには

UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するには

UTF-8の内容を含むUnicode BLOBをバイナリBLOBに変換するには


ファイルが指定されたエンコードで定義されることを確認するには

Magic xpiで指定したファイルのエンコーディングは簡単に確認することができます。ここでは、テキストとXMLファイルのエンコーディングを確認する方法について説明します。

テキストファイルのエンコーディングを確認するには：

  1. 関連するテキストファイルで右クリックして、［プログラムから開く］を選択し、続いてNotepadを選択します。テキストファイルが開きます。

  2. テキストファイルの［ファイル］メニューから、［名前を付けて保存］を選択してください。

  3. ［名前を付けて保存］ダイアログボックスで、下のイメージで示するように［保存］ボタンのそばにある［エンコーディング］をクリックしてください。ここには、選択されたテキストファイルで使用されるエンコーディングを表示しています。この場合、エンコードタイプは、ANSIです。

XMLファイルのエンコーディングを確認するには：

  1. 関連するXMLファイルで右クリックしてください。［プログラムから開く］を選択し、Notepadを選択します。XMLファイルが開きます。

  2. 下のイメージで示すように、ファイルのエンコーディングを参照するために、XMLヘッダをチェックしてください。この場合、エンコードタイプは、UTF-8です。

  3. ヘッダのないXMLファイルを選択した場合、［ファイル］メニューをクリックして、［名前を付けて保存］を選択してください。

  4. ［名前を付けて保存］ダイアログボックスで、下のイメージで示するように［保存］ボタンのそばにある［エンコーディング］をクリックしてください。これは、XMLファイルで使用されるエンコードタイプを示しています。この場合、エンコードタイプは、UTF-8です。

XMLヘッダのエンコードタイプを、［名前を付けて保存］ダイアログボックスで指定されたエンコードタイプと比較してください。下のイメージで示すように、これらのタイプは、常に同じでなければなりません。


指定されたエンコードでファイルを作成するには

Magic xpiでは、非常に簡単に指定したエンコードタイプでファイルを作成することができます。エンコードタイプとして選択することができる2つの異なるファイルタイプがあります。テキストとXMLです。

指定したエンコードタイプでテキストファイルを作成するには：

  1. フローにデータマッパーをドラッグしてください。

  2. データマッパーをダブルクリックするか、右クリックし、コンテキストメニューから［構成］を選択してください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  4. フラットファイルで右クリックし、［プロパティ］ペインを開くために、コンテキストメニューから［プロパティを表示］を選択してください。

  5. ［プロパティ］ペインの［データ送り先エンコーディング］フィールドで、必要なエンコーディングタイプを選択してください。デフォルトはANSIです。

  6. ［OK］をクリックして構成内容を保存して、開いていたダイアログボックスを閉じてください。

ドロップダウンリストからANSIを選択すると、エンコードタイプはPCのコントロールパネルで定義されている［地域と言語］の設定に基づいて定義されます。

指定したエンコードタイプでXMLファイルを作成するには：

  1. フローにデータマッパーをドラッグしてください。

  2. データマッパーをダブルクリックするか、右クリックし、コンテキストメニューから［構成］を選択してください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、XMLファイルタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。.

  4. XMLファイルで右クリックし、［プロパティ］ペインを開くために、コンテキストメニューから［プロパティを表示］を選択してください。

  5. ［プロパティ］ペインの［XSDファイル］フィールドで、必要なXSDファイルを選択してください。

  6. ［プロパティ］ペインの［XMLエンコーディング］フィールドで、必要なエンコーディングを選択してください。デフォルトは、プロジェクトエンコーディングです。

ドロップダウンリストからプロジェクトエンコーディングを選択すると、エンコード値がプロジェクトレベルの設定から取得されます。プロジェクトレベルのこのエンコード値を変更するには、［プロジェクト］メニューを選択して、［プロジェクト<名前>プロパティ］をクリックして［プロジェクトプロパティ］ダイアログボックスを開きます。［詳細］タブの［プロジェクトデータエンコーディング］フィールドで必要なエンコーディングを選択します。

  7. ［保存］をクリックして構成を保存してください。


UnicodeかANSI、UTF-8のファイルをメモリに読み込ませるには

Unicode、ANSIまたはUTF-8ファイルをメモリに読み込ませるには、File2Blb関数とファイル管理コンポーネントを使用して行われます。

File2Blb関数を使用して内容をメモリに読み込ませるには：

  1. フローにフローデータユーティリティをドラッグしてください。

  2. ［追加］をクリックして［Flow Data設定］ダイアログボックスを開きます。

  3. ［タイプ］カラムで、コンテキストを選択してください。

  4. ［名前］カラムで、関連するBLOBを選択してください。

  5. ［エンコーディング］カラムで、ファイルに必要なエンコードタイプを選択してください。

  6. ［更新式］カラムで、 [image] をクリックして式エディタを開いてください。

  7. 式エディタで、File2Blb関数を選択して続けて左括弧"("を入力します。

  8. をクリックして、メモリに読み込ませたい内容をクリックして、右括弧")"を続けて入力してください。

  9. ［OK］をクリックして［Flow Data設定］ダイアログボックスを閉じます。フローを実行すると、ファイルの内容がメモリに読み込まれます。

ファイル管理コンポーネントで内容をメモリに読み込ませるには：

  1. フローにファイル管理コンポーネントをドラッグしてください。

  2. ［メソッド］インターフェースを選択し、［設定］をクリックしてください。

  3. ［ダイレクトアクセスメソッド：ファイル管理］ダイアログボックスで、［新規］をクリックしてください。

  4. ドロップダウンリストからRead Fileメソッドを選択してください。

  5. ［OK］をクリックして、［ダイレクトアクセスメソッド：ファイル管理］ダイアログボックスを閉じてください。フローを実行すると、ファイルはエンコードタイプに基づいてメモリに自動的に読み込まれます。


データマッパーを使用する場合、UnicodeかANSI、UTF-8のフラットファイルでレコードを処理するには

データマッパーは、フラットファイルを使用して動作するとき、異なるエンコーディングドでレコードを処理する方法を定義します。

送り元と送り先レコードの処理：

  1. フローにデータマッパーをドラッグしてください。

  2. データマッパーをダブルクリックするか、右クリックし、コンテキストメニューから［設定］を選択してください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  4. フラットファイルで右クリックし、［プロパティ］ペインを開くために、コンテキストメニューから［プロパティを表示］を選択してください。

  5. ［プロパティ］ペインの［データ送り元エンコーディング］パラメータまたは［データ送り先エンコーディング］フィールドで、ドロップダウンリストから必要なエンコーディングタイプを選択してください。ここでは、ANSI、Unicode、またはUTF-8から選択することができます。

送り元レコード例 | 送り先レコード例


UnicodeかUTF-8 BOMをBLOBファイルに追加するには

バイトオーダーマーク（BOM)は、テキストファイルのバイト順序を示すために使用されます。エンコーディングの検出を支援するためにBOMをBLOBファイルに追加したい場合があるかもしれません。BlobAddBOM関数を使用することでUnicodeまたはUTF-8 BOMをBLOBファイルに簡単に追加することができます。

BlobAddBOM関数を使用して、UnicodeまたはUTF-8 BOMをBLOBファイルに追加するには：

  1. この例の目的のために、サンプルのBLOBファイルを作成することから開始してください。<Magic xpiのインストールフォルダ>\Magic xpa\projects\<現在のプロジェクト>フォルダに保存してください。このファイルをutf8.txtと呼びます。

  2. 次に、この例で使用する変数を作成してください。変数リポジトリを開いてください。

  3. ここで、F.utf8nobomと呼ばれるBLOB変数とF.logicと呼ばれる論理変数を作成してください。

  4. フローにフローデータユーティリティをドラッグしてください。

  5. BOMを追加する処理を開始するために、選択されたファイルをBLOBに変換する必要があります。［Flow Data設定］設定ダイアログボックスで、［追加］をクリックしてください。

  6. ［アクション］カラムで、ドロップダウンリストからのUpdateを選択します。

  7. ［タイプ］カラムで、Flowを選択します。

  8. ［名前］カラムで、以前作成したF.utf8nobom というBLOB変数を選択します。

  9. ［エンコード］カラムで、Binaryを選択します。

  10. ［更新式］カラムで、 [image] をクリックして式エディタを開いてください。

  11. 式エディタでは、以下の式（以下のように)を入力し、［OK］をクリックしてください。

    File2Blb (EnvVal ('currentprojectdir')&'utf8.txt')

  12. 次のステージは、BOMを新しく作成されたBLOBに追加することです。これは、BlobAddBOM関数を使用することで可能です。［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  13. 手順#6～9（上記の）で入力した値と同じパラメータを入力してください。

  14. ［更新式］カラムで、 [image] をクリックして式エディタを開いてください。

  15. 式エディタでは、以下の式（以下のように)を入力し、［OK］をクリックしてください。

    BlobAddBOM ( F.utf8nobom ,1)

UTF-16 BOMを追加するには、次の式を使用してください： BlobAddBOM ( F.utf8nobom ,2).

  16. 次に、新しくBOMが追加されたBLOBを最初のファイル形式に戻す必要があります。これを行うには、Blb2File関数を使用します。［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  17. ［アクション］カラムで、ドロップダウンリストからのUpdateを選択します。

  18. ［タイプ］カラムで、Flowを選択します。

  19. ［名前］カラムで、以前作成したF.logic という論理型変数を選択します。

  20. ［更新式］カラムで、 [image] をクリックして式エディタを開いてください。

  21. 式エディタでは、以下の式（以下のように)を入力し、［OK］をクリックしてください。

    Blb2File ( F.utf8nobom , EnvVal('currentprojectdir') &'utf8withbom.txt')

  22. ［OK］をクリックしてフローデータユーティリティを閉じてください。

  23. プロジェクトをビルドしてください。

  24. これで、プロジェクトのデバッグや実行を行うと、<Magic xpiのインストールフォルダ>\Magic\projects\<現在のプロジェクト>フォルダ内にutf8withbom.txtと呼ばれるファイルが作成されます。このファイルは、BOMが追加されたファイルの元のBLOBファイルです。ファイルの名前は、手順#20で入力した式から取得されます。バイナリエディタを使用することで、このBOMを参照することができます。


UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するには

UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するには、UTF8toUnicode関数を使用する必要があります。

UTF-8の内容を含むバイナリBLOBをUTF8toUnicode関数を使用してUnicode BLOBに変換するには：

  1. この例では、バイナリのBLOBファイルを作成することから始めます。 <My Documents>\Magic\projects\<現在のプロジェクト>フォルダ内にこのファイルをUTF-8エンコーディングで保存してください。このファイルをutf8.txtと呼びます。

  2. この例で使用する変数を作成するために、フロー変数リポジトリを開いてください。

  3. ここで、F.utf8とF.utf16と呼ばれる2つのBLOB変数を作成してください。そして、F.logと呼ばれる論理変数を作成してください。

  4. 次に、この例で使用する変数を作成してください。フロー変数リポジトリを開き、F.utf8とF.utf16と呼ばれる2つのBLOB変数を作成してください。そして、同じタブでF.logと呼ばれる論理変数を作成してください。

  5. Drag a Flow Data uフローデータユーティリティをフローにドラッグしてください。

  6. 変換処理を開始するために、File2Blb関数を使用して、ファイルシステムからバイナリのBLOBファイルを読み込む必要があります。［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  7. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  8. ［タイプ］カラムで、Flowを選択してください。

  9. ［名前］カラムで、以前に作成したF.utf8 BLOB変数を選択してください。

  10. ［エンコーディング］カラムで、UTF-8をそのまま表示することがないため、Binaryを選択してください。

  11. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  12. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    File2Blb (EnvVal ('currentprojectdir')&'utf8.txt')

実例として、UTF8toUnicode関数を使用しない簡単な方法でutf8.txtファイルをUnicodeに変換しようとする場合、どうなるかを見てみましょう。この場合、UTF-8 がサポートされないためにファイルが破損することになります。

  1. ［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  2. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  3. ［タイプ］カラムで、Flowを選択してください。

  4. ［名前］カラムで、以前に作成したF.utf16 BLOB変数を選択してください。

  5. ［エンコーディング］カラムで、Unicodeを選択してください。

  6. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  7. F.utf8 BLOB変数の内容によってF.utf16 BLOB変数を更新するために、以下の式を式エディタ(以下のイメージで示すように)に入力してください。次に［OK］をクリックしてください。

    F.utf8

次のステージは、F.utf16 BLOB変数の内容をファイルシステム（utf16_outputという名前のファイル）に保存することです。Blb2File関数でこれを行います。

  1. ［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  2. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  3. ［タイプ］カラムで、Flowを選択してください。

  4. ［名前］カラムで、以前に作成したF.log 論理変数を選択してください。

  5. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  6. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    Blb2File ( F.utf16 , EnvVal('currentprojectdir') &'utf16_output.txt')

次に、ステップ6(上記)で定義したutf16_output.txtファイルで何が作成されるかを確認するため、プロジェクトを実行してください。

  1. ［Flow Data設定］ダイアログボックスを閉じるために、［OK］をクリックしてください。

  2. プロジェクトをビルドしください。

  3. Magic xpiモニタを開き、プロジェクトを開始します。

  4. <My Documents>\Magic\projects\<現在のプロジェクト>フォルダを開いてください。utf16_output.txtファイルが作成されていることを確認できます。

utf16_output.txtファイルを開くと、その内容が破損していることに注意してください。

さて、UTF8toUnicode関数を使用して、UTF-8ファイルをUnicodeに変換するために以下の変更をする必要があります。これによって、正しくエンコードされた内容を受け取ることができます。

  1. ［Flow Data設定］ダイアログボックスの2番目の行に移動し、［削除］をクリックしてください。

  2. 新規行を作成するために、［追加］をクリックしてください。

  3. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  4. ［タイプ］カラムで、Flowを選択してください。

  5. ［名前］カラムで、以前に作成したF.utf16 BLOB変数を選択してください。

  6. ［エンコーディング］カラムで、Unicodeを選択してください。

  7. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  8. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    UTF8toUnicode ( F.utf8 )

  9. テーブルの2番目の行までこの新規エントリを移動させるために、［Flow Data設定］ダイアログボックスの右側の上カーソルキーを使用してください。

  10. ［Flow Data設定］ダイアログボックスの3番目のエントリで［更新式］カラムに移動して [image] をクリックして式エディタを開きます。

  11. 式を以下のように変更してください。

    Blb2File ( F.utf16 , EnvVal('currentprojectdir') &'utf16_output_valid.txt')

さて、ステップ11(上記)で定義したutf16_output_valid.txtファイルがどのように作成されるかを確認するために、再びプロジェクトを実行してください。

  1. ［Flow Data設定］ダイアログボックスを閉じるために、［OK］をクリックしてください。

  2. プロジェクトをビルドしください。

  3. Magic xpiモニタを開き、プロジェクトを開始します。

  4. <My Documents>\Magic\projects\<現在のプロジェクト>フォルダを開いてください。utf16_output.txtファイルが作成されていることを確認できます。

utf16_output_valid.txtファイルを開くと、その内容が正しくエンコードされることが確認できるはずです。これは、UTF-8の内容をUnicodeに変換するために、UTF8toUnicode関数を使用したためです。

関連トピック：

UTF-8の内容を含むUnicode BLOBをバイナリBLOBに変換するには


UTF-8の内容を含むUnicode BLOBをバイナリBLOBに変換するには

Magic xpiは、簡単にUnicode BLOBをUTF-8の内容を含んだバイナリBLOBに変換することができます。UTF8fromUnicode関数を使用してこれを行うことができます。

このトピックは、UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するにはで作成された utf16_output_valid.txt Uncode BLOB を使用して説明します。このトピックのために新しいプロジェクトを作成すると、新しいプロジェクトの<My Documents>\Magic\projects\ フォルダにutf16_output_valid.txtファイルをコピーしてください。

UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するにはトピックのプロジェクトが動作しない場合は、このサンプルで動作するような独自のUnicode BLOBファイルを作成する必要があります。そしてこのファイルを <My Documents>\Magic\projects\<現在のプロジェクト> フォルダに保存してください。このファイルをutf16_output1.txtと呼びます。

UTF8fromUnicode関数を使用して Unicode BLOBをUTF-8 の内容を持つバイナリBLOBに変換するには：

  1. この例で使用する変数を作成するために、フロー変数リポジトリを開いてください。

  2. そこで、F.utf8とF.utf16と呼ばれる2つのBLOB変数を作成してください。また、F.logと呼ばれる論理変数を作成してください。

  3. フローデータユーティリティをフローにドラッグしてください。

  4. 変換処理を開始するために、File2Blb関数を使用して、ファイルにUnicode BLOBを読み込む必要があります。［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  5. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  6. ［タイプ］カラムで、Flowを選択してください。

  7. ［名前］カラムで、以前に作成した F.utf16 BLOB変数を選択してください。

  8. ［エンコーディング］カラムで、Unicodeを選択してください。

  9. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  10. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    File2Blb (EnvVal ('currentprojectdir')&'utf16_output1.txt')

次のステージは、UTF8fromUnicode関数を使用して、utf16_output1.txtファイルをUTF-8 BLOB変数に変換することです。

  1. ［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  2. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  3. ［タイプ］カラムで、Flowを選択してください。

  4. ［名前］カラムで、以前に作成したF.utf8 BLOB変数を選択してください。

  5. ［エンコーディング］カラムで、Binaryを選択してください。

  6. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    UTF8fromUnicode ( F.utf16 )

次に、ファイルシステムにUTF-8 BLOB変数を書き込むj必要があります。

  1. ［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  2. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  3. ［タイプ］カラムで、Flowを選択してください。

  4. ［名前］カラムで、以前に作成したF.log 論理変数を選択してください。

  5. ［エンコーディング］カラムで、Binaryを選択してください。

  6. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    Blb2File ( F.utf8 , EnvVal('currentprojectdir') &'utf8_output.txt')

次に、ステップ6(上記)で定義した utf8_output.txtファイルに何が作成されるかを確認するために、プロジェクトを実行してください。

  1. ［Flow Data設定］ダイアログボックスを閉じるために、［OK］をクリックしてください。

  2. プロジェクトをビルドしください。

  3. Magic xpiモニタを開き、プロジェクトを開始します。

  4. <My Documents>\Magic\projects\<現在のプロジェクト>フォルダを開いてください。utf8_output.txtファイルが作成されていることを確認できます。

utf8_output.txtファイルを開くと、その内容はUTF-8で正しくエンコードされます。バイナリエディタを使用して内容をチェックすると、ファイルにBOMが含まれていないことが確認できます。

次のステージは、BOMをBLOB変数にに追加する方法についてを説明します。

  1. ［Flow Data設定］ダイアログボックスで、［追加］をクリックしてください。

  2. ［アクション］カラムで、ドロップダウンリストからUpdateを選択してください。

  3. ［タイプ］カラムで、Flowを選択してください。

  4. ［名前］カラムで、以前に作成したF.utf8 BLOB変数を選択してください。

  5. ［エンコーディング］カラムで、Binaryを選択してください。

  6. ［更新式］カラムで、 [image] をクリックして式エディタを開きます。

  7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に［OK］をクリックしてください。

    BlobAddBOM ( F.utf8 ,1)

  8. テーブルの3行目までにこの新規エントリを移動させるために、［Flow Data設定］ダイアログボックスの右側の上カーソルキーを使用してください。

  9. 既存のutf8_output.txtファイルを<My Documents>\Magic\projects\<現在のプロジェクト>フォルダから削除してください。

さて、utf8_output.txtファイルで何が作成されるかを確認するために、再びプロジェクトを実行してください。

  1. ［Flow Data設定］ダイアログボックスを閉じるために、［OK］をクリックしてください。

  2. プロジェクトをビルドしください。

  3. Magic xpiモニタを開き、プロジェクトを開始します。

  4. <My Documents>\Magic\projects\<現在のプロジェクト>フォルダを開いてください。utf8_output.txt ファイルが作成されていることを確認できます。

utf8_output.txtファイルを開くと、その内容がUTF-8で正しくエンコードされることが確認できるはずです。それだけでなく、バイナリエディタを使用して、内容をチェックするとファイルにBOMが含まれていることが確認できます。

関連トピック：

UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するには


エラー処理

以下のトピックは、Magic xpiの中のエラー処理について扱います。

リカバリ

クラッシュ後にワークプロセスを再起動するには

事前に定義された後にワークプロセスの実行を停止するには

クラッシュから回復する時にリソースを消去することができるか

フローにタイムアウトを設定するには

フローのエラー処理

エラーが発生したときに、フローを中断するには

エラーを受け取った時に、Eメールを受け取るようにするには

エラーフローでエラーについての追加情報を取得するには

エラーが発生したら、ステップのリトライ回数をコントロールするには

特定のエラーが発生した後に、フローを異なる場所に移動するには

どのフローがエラーを呼び出したかを識別するには

どのステップがエラーを呼び出したかを識別するには

どのトリガがエラーを呼び出したかを識別するには

どの最終ステップIDがエラーを呼び出したかを識別するには

どの最終フローIDがエラーを呼び出したかを識別するには

エラー処理フローからのフローにエラーを返すには

データマッパエラー処理

データベースエラーが発生した場合に、データマッパーを終了するには

例外が発生したデータベースのレコードフィールドを取り出すには

フローにタイムアウトを設定するには


クラッシュ後にワークプロセスを再起動するには

プロジェクト開発フェーズの間、Magic xpiはエラーがプロジェクトのフローで発生した場合に、動作内容を定義することができます。これはリカバリポリシーとして知られて、フローの［プロパティ］ペイン(以下のイメージに示しています)の［リカバリポリシー］プロパティで定義されます。

クラッシュの後にワークプロセスを再起動するするには、［リカバリポリシー］プロパティから再起動を選択してください。

クラッシュの後にワークプロセスを停止するには、［リカバリポリシー］プロパティからアボートを選択してください。


事前に定義された後にワークプロセスの実行を停止するには

ワークプロセスは、ルートフロー全体(その子フローを含みます)の実行ツリーです。ワークプロセスは全体として1つの企業取引として扱われます。

フローの［プロパティ］ペイン(以下のイメージで示しています)の［タイムアウトポリシー］プロパティは、Magic xpiが終了する前に、フローがどれくらい長く実行することができるかを定義することを可能にします。

これは、IBM iとコマンドラインなどの外部システムと接続する場合にフローが無制限に応答を待つことを防止するために、フローにタイムアウトを設定することが推奨されます。

タイムアウトをフローに設定する時、タイムアウトに達したら何を行うかを定義することができます。［タイムアウトポリシー］プロパティのオプションは以下の通りです。

  • アボート

  • 再起動

  • なし

タイムアウトをフローに設定する時、最初に、フローの実行にどれだけの時間がかかるかをチェックする必要があります。フロータイムアウトがルートフロー(他のフローから呼ばれないフロー)にだけ作用することに注意してください。これは、呼び出すフローと呼び出されるフローでタイムアウトが定義されると、呼び出すフローのタイムアウトだけが実施されることを意味しています。

フロータイムアウトは、ユーザ定義の猶予期間の後にスレッドを停止させます。HTTPトリガまたはWeb サービストリガは、フロータイムアウトを問わずあらかじめ決められたタイムアウトの後にタイムアウトメッセージを返します。フローがタイムアウトになり、再起動し、その時だけ応答を返すようにすることができます。

フローは、新しいスレッドで再起動sします。


エラーが発生したときに、フローを中断するには

Magic xpiは、特定のエラーコードのまたはエラーコードの範囲でエラーポリシーを定義することができます。エラーが発生するとに、これらのエラーポリシーは何を行うかをMagic xpiに指示します。Magic xpiに、フロー中止するように指示することができます。これは、［エラーポリシー］タブ(以下のイメージで示しています)を通して行います。

エラーが発生した時にフローを中断するには：

  1. ソリューションエクスプローラの関連したフロー下で、エラーポリシーをダブルクリックすることによって、［エラーポリシー］タブを開いてください。

  2. ［追加］をクリックしてください。

  3. エラーリポジトリを開くために、［開始］カラムの右側で [image] をクリックしてください。

  4. エラー範囲の開始値としてエントリを選択し、［OK］をクリックしてください。これを行うと、［コンポーネント］カラムは選択されたエラーに関連しているコンポーネントの名前が表示されます。

  5. エラーリポジトリを開くために、［終了値］カラムの右側で [image] をクリックしてください。

  6. エラー範囲の終了値としてエントリを選択し、［OK］をクリックしてください。

  7. ［開始値］カラムに入力した同じ値を、［終了値］カラムに入力することでエラーポリシーを1つのエラーコードに設定することができます。

  8. ［エラーポリシー］カラムで、アボートを選択してください。

  9. 上記に定義したエラーコードをフローが返す場合、これは、サーバに、実行してほしい動作になります。

  10. 新しいエラーポリシーを保存するために、［保存］をクリックしてください。

これで、定義したエラー範囲内でエラーが発生すると、フローは中断されます。


エラーを受け取った時に、Eメールを受け取るようにするには

Magic xpiに、特定のエラーが発生したときに常にEメールの通知を送るように指示することができます。これを行うには、［エラーポリシー］タブで特定のエラーコードまたはエラーコードの範囲をエラーポリシーに定義します。エラーが発生すると、これらのエラーポリシーによって何を行うかをMagic xpiに指示します。

エラーポリシーを定義する時、［通知］カラム(以下のイメージに示しています)でメールを選択してください。

これで、エラーが発生すると常に、［Eメール送信先］で定義された電子メールアドレスに、Eメール通知が送られます。


エラーフローでエラーについての追加情報を取得するには

C.sys.LastErrorInfo コンテキスト変数を使用することで、エラーフローでエラーについての詳細情報を取得することができます。この変数はBLOBタイプで、SQLステートメントやJavaエラー、およびその他を含めることができます。

エラーがデータベースで発生した場合、問題の多いSQLステートメントは、sys.LastErrorInfo 変数に出力されます。

XML送り元または送り先を使用している場合、XMLの［プロパティ］ペイン(以下のイメージで示しています)の［XML検証］プロパティでYesを選択すると、C.sys.LastErrorInfo 変数に、XMLが有効でない理由を含めます。

SQLステートメントを構文解析せずに、ステートメントの値を取得するノードの［プロパティ］ペインの［ログエラー］プロパティを使用することができます。


エラーが発生したら、ステップのリトライ回数をコントロールするには

Magic xpiは、エラーの発生時にステップを繰り返して実行する回数を定義することができます。最初にすべき事は、［エラーポリシー］タブの［エラーポリシー］プロパティをリトライ(以下のイメージに示すように)に設定することです。

次に、実行するリトライ回数を定義する必要があります。これは、ifs.iniファイルのStepRetryLimit= flag(以下のイメージで示しています)で行います。デフォルトは、3回です。

これで、定義されたエラー範囲で、エラーが発生すると、指定したリトライ回数に応じて、Magic xpiは、再びステップを実行しようとします。


特定のエラーが発生した後に、フローを異なる場所に移動するには

エラーが発生すると、Magic xpiに、フロー内の異なる場所に移動するように指示することができます。これは、［エラーポリシー］タブ(以下のイメージに示するような)で行います。

エラーが発生した時に、フローを異なる場所に移動するには：

  1. ソリューションエクスプローラの関連したフロー下で、エラーポリシーをダブルクリックすることによって、［エラーポリシー］タブを開いてください。

  2. ［追加］をクリックしてください。

  3. エラーリポジトリを開くために、［開始］カラムの右側で [image] をクリックしてください。

  4. エラー範囲の開始値としてエントリを選択し、［OK］をクリックしてください。これを行うと、［コンポーネント］カラムは選択されたエラーに関連しているコンポーネントの名前が表示されます。

  5. エラーリポジトリを開くために、［終了値］カラムの右側で [image] をクリックしてください。

  6. エラー範囲の終了値としてエントリを選択し、［OK］をクリックしてください。

  7. ［開始値］カラムに入力した同じ値を、［終了値］カラムに入力することでエラーポリシーを1つのエラーコードに設定することができます。

  8. ［エラーポリシー］カラムで、ジャンプを選択してください。

  9. 上記に定義したエラーコードをフローが返す場合、これは、サーバに、実行してほしい動作になります。

  10. ［ステップ］カラムで、ステップリストを開くために [image] をクリックしてください。ここで、エラーが発生した時のフローの移動先のステップを選択してください。

  11. 新しいエラーポリシーを保存するために、［保存］をクリックしてください。

これで、定義したエラー範囲内でエラーが発生すると、フローは定義されたステップに移動します。


どのフローがエラーを呼び出したかを識別するには

たくさんのフローを含んでいるプロジェクトを作成する時に、エラーが発生した特定のフローを識別することができることは非常に便利です。C.sys.LastErrorFlowNameコンテキスト変数を使用することで、この情報を取得することができます。サーバがステップを実行するたびに、C.sys.LastErrorFlowName変数は、エラーコードが返った時にエラーが発生したフロー名で更新されます。


どのステップがエラーを呼び出したかを識別するには

たくさんのフローを含んでいるフローを作成する時に、エラーが発生した特定のステップを識別する必要があるかもしれません。C.sys.LastErrorStepNameコンテキスト変数を使用することで、この情報を取得することができます。サーバがステップを実行するたびに、C.sys.LastErrorStepName変数は、エラーコードが返った時にエラーが発生したステップ名で更新されます。


どのトリガがエラーを呼び出したかを識別するには

エラーを呼び出すトリガについての情報を取得するには、C.sys.LastTriggerNameコンテキスト変数を使用する必要があります。この変数は、フローを起動したコンポーネント名を保持し、各トリガの呼出しによって更新されます。変数は、どのトリガが起動したかをチェックするためにフローによって使用されます。


どの最終ステップIDがエラーを呼び出したかを識別するには

エラーを呼び出したステップのIDまたは名前を見つけ出すには、C.sys.LastStepIDコンテキスト変数を使用してください。この変数は最後に実行されたステップのステップIDを保持し、各コンポーネントの実行後に自動的に設定されます。従って、エラーがその特定のステップで発生した場合、この変数はそのステップのIDを提供します。


どの最終フローIDがエラーを呼び出したかを識別するには

エラーを呼び出したフローのIDまたは名前を見つけ出すには、C.sys.LastFlowIDコンテキスト変数を使用してください。この変数は最後に実行されたステップのフローIDを保持し、各コンポーネントの実行後に自動的に設定されます。従って、エラーがその特定のフローで発生した場合、この変数はそのフローのIDを提供します。


エラー処理フローからのフローにエラーを返すには

Magic xpiは、2つの専用のコンテキスト変数、C.sys.LastErrorCodeとC.sys.LastErrorDescriptionを持っています。これは、新しいエラーが発生するまで、どのジョブがフローで発生した最後のエラーを保持しているかを提供します。

エラーの詳細は、C.sys.LastErrorCode値によってC.sys.ErrorCodeコンテキスト変数を自動的に更新することでフローに返されます。

専用のエラー処理フローを作成していない場合、ステップの実行を許すか防止するための条件として、C.sys.ErrorCodeを使用することができます。


データベースエラーが発生した場合に、データマッパーを終了するには

フローにおいてステップとしてのデータマッパーを設定する時に、データベースエラーがそのステップで発生した場合の動作を定義することができます。データマッパーの［プロパティ］ペイン(以下のイメージに示すような)で［エラー動作］プロパティを使用して、これを行います。

データベースエラーが発生したときにデータマッパーを終了するには、［エラー動作］プロパティを終了またはダイナミックに設定してください。

終了は直ちにステップ実行を終了させ、フローに定義されたエラーポリシーが実行されます。エラーが発生したポイント以降に定義されたマッピングは実行されません。

ダイナミックは、エラーフローがエラーで終了した場合、直ちにステップ実行を終了させます。エラーフローがエラーをクリアすると、フローは継続されます。これは、データベース送り先にみの関連していることに注意してください。


例外が発生したデータベースのレコードフィールドを取り出すには

例外が発生したデータベースのレコードフィールドを取得するためには、データベースの［プロパティ］ペインの［エラー処理フロー］プロパティを使用してください。このプロパティは、データベース送り先レベルで発生する任意のエラーを処理するためにエラーフローを選択します。失敗ステートメントからエラー処理フローのフロー変数にレコードフィールドをマッピングするエラーフローを作成することができます。このようにして、例外が発生したレコードフィールドを確認することができます。


エラーを無視し、次のレコードに継続するには

デフォルトでは、C.sys.ErrorCodeとC.sys.ErrorDescription 変数は、ステップを入力することで自動的にクリアされます。エラーフローが定義されていない場合、Magic xpiは関連したエラーポリシーがあるかどうかを確認します。特定のエラーコード、またはエラーコード範囲でエラーポリシーが定義されていない場合、データマッパーの［プロパティ］ペインの［エラー動作］プロパティで継続かダイナミックのどちらかが選択された場合に、次のレコードへ移動します。


クラッシュから回復する時にリソースを消去することができるか

クラッシュから回復する時にリソースをクリアにするには、リソースをクリアにする開放するためにクリーンアップリカバリフローを作成する必要があります。フローに対して専用のにクリーンアップリカバリフローを定義してください。これは、フローの［プロパティ］ペイン(以下のイメージに示するような)の［クリーンアップリカバリフロー］プロパティで定義されます。

クリーンアップリカバリフローは、フローが中断されるか、再起動されるか、セーブポイントから開始される直前に、リカバリプロセスの一部として呼び出されます。


フローにタイムアウトを設定するには

フローの［タイムアウトポリシー］プリシーは、Magic xpiがフローを終了する前に、どれくらい実行するかを定義することができます。

これは、IBM iとコマンドラインなどの外部システムと接続する場合にフローが無制限に応答を待つことを防止するために、フローにタイムアウトを設定することが推奨されます。

タイムアウトをフローに設定する時、タイムアウトに達したら何を行うかを定義することができます。［タイムアウトポリシー］プロパティのオプションは以下の通りです。

  • アボート

  • 再起動

  • なし

タイムアウトをフローに設定する時、最初に、フローの実行にどれだけの時間がかかるかをチェックする必要があります。フロータイムアウトが無制限のフロー(他のフローから呼ばれないフロー)にだけ作用することに注意してください。これは、呼び出すフローと呼び出されるフローでタイムアウトが定義されると、呼び出すフローのタイムアウトだけが実施されることを意味しています。

フロータイムアウトは、ユーザ定義の猶予期間の後にスレッドを停止させま、［タイムアウトポリシー］プロパティで定義されたリカバリが適用されます。


式

以下のトピックは、Magic xpiの中のエラー処理について扱います。

式ウィンドウで式の体制を整えるには

自動的にタイプ入力された関数の名前を完了するには

関数のヘルプページを表示するには

式エディタから関数リストを開くには

式の中で文字列値を定義するには


式ウィンドウで式の体制を整えるには

式の内容によっては記述内容が長く複雑になる場合があります。例えば、ネストされたIF文を定義する場合は以下のようになります。

IF (Source/S3/Record/CustomerExists, '', '<a href= "http://localhost/magicxpi4/MGrqispi.dll?appname=IFSmagic xpi_course&prgname=HTTP&arguments=- ARequestConfirmation%23add_customer&RequestNum=' & Trim (Str( F.HTTP_Request_Num,'5')) & ' "> ' & Trim ( Str (Source/S3/Record/CustomerID, '9') ) & '</a>' )

構文上この式が正しくても、人が理解するには難しいものがあります。この式に改行や空白を追加することで、より理解しやすいものにすることができます。例えば以下のようになります。

IF (Source/S3/Record/CustomerExists, '',

'<a href= "http://localhost/magicxpi4/MGrqispi.dll?appname=IFSmagic xpi_course&prgname=HTTP&arguments=

-ARequestConfirmation%23add_customer&RequestNum=' &

Trim (Str( F.HTTP_Request_Num,'5')) & ' "> ' &

Trim ( Str (Source/S3/Record/CustomerID, '9') ) &

'</a>' )

ここでは、Magic xpiで式の体裁を整える方法について説明します。

式の体裁を整えるには：

  1. ボタンから［式エディタ］にズームしてください。

  2. Enterキーを押下することで式が改行表示されます。また、必要に応じてインデントを加えるために空白を入力することもできます。

  3. 編集が終了したら、［OK］ボタンや右上のXボタンをクリック するか、 Escキーを押下します。

改行を入力すると式の中にCRLFコードが入力されます。これはMagic xpiの式内であれば問題はありません。


自動的にタイプ入力された関数の名前を完了するには

キー操作を減らすために、Magic xpiには関数名に対して オートコンプリート機能が備わっています。関数名を入力する場合、入力操作のほとんどをMagic xpiに依存させることができます。

オートコンプリート機能を使用するには：

  1. 入力したい関数名の最初の数文字を入力します。この例では、' bl' が入力されています。大文字小文字は区別しません。

  2. CTRL+スペースバーを押下してください。関数リストが表示され、名前の最初の文字が入力した文字と一致する関数に位置付けされます。

  3. カーソルを下に動かして使用したい関数に位置付けます。この場合、カーソルキーを使用して動かすこともできますが、関数名を続けて入力することでも自動的にカーソルが移動します。

  4. 使用したい関数名にカーソルが位置付いたら、Tab を押下します。関数名が自動的に追加されます。

入力文字に該当する関数が1つだけの場合は、リストボックスが開かず自動的にその関数が挿入されます。


関数のヘルプページを表示するには

どのような言語で開発する場合でも、全ての関数（メソッド）がどのように動作するものかをすべて覚えていることは難しいものです。Magic xpiでは、プログラムを作成中に該当するオブジェクトについて説明されたヘルプトピックを表示する機能があります。ヘルプを表示させるには、２つの方法があります。

任意の場所から関数のヘルプトピックを探すには：

スタジオでは、どこからでも関数のヘルプトピックを表示させることができます。

  1. F1 を押下します。これによってオブジェクトに対応したヘルプトピックが表示されます。

  2. ［インデックス］タブをクリックします。

  3. 関数の名前を入力します。

入力した関数に対応するトピックが表示されます。また、［検索］タブを使用することでこの関数名を使用しているトピックを探すことができます。

開発作業中（特にMagic xpiの勉強中）は、ヘルプを開いたままにしておくことで参照にかかる時間が早くなります。

式エディタでヘルプを使用するには：

さらに、関数が含まれている式から、その関数に対応するヘルプトピックを表示させることができます。

  1. ［式］エディタを開きます。

  2. 関数の記述場所にカーソルを置きます。

  3. F1キーを押下します。

これで、パークした関数に対するヘルプトピックが表示されます。

関数リストからヘルプを表示するには：

関数を入力する便利な機能の１つに関数リストがあります。ここでは簡単にヘルプを表示させることができるだけでなく、関数を選択すると、括弧やパラメータのプレイスホルダが自動的に入り、関数入力が楽になります。

関数の入力方法については、式エディタから関数リストを開くにはを参照してください。


式エディタから関数リストを開くには

式エディタ で編集中に、以下の操作を行うことで関数リストを表示させることができます。

  • Ctrl+SPACEの押下

  • エディタの上部で [image] ボタンをクリックします。

関数リストが開いたら、以下の手順で関数を選択することができます。

関数リストから関数を選択するには：

  1. 式エディタ で、関数を設定したい場所にカーソルを置きます。

  2. 上記で説明されたオプションの1つを使用して、関数リストを開いてください。

  3. 使用したい関数名に位置付けると、関数のパラメータを表示するためにツールティップを使用することができます。どのような関数を使用すべきか確信がない場合は、必要なものを見つけるまで、この処理を繰り返すことができます。

  4. 使用したい関数が見つかったら、そこでダブルクリックするか、Enterキーを押下してください。

  5. これで、関数は式に書き込まれます。


式の中で文字列値を定義するには

式をMagic xpiに入力する際、すべての文字列はシングルクォーテーションで囲む必要があります。この指定をしない場合、文字列は項目のシンボル名か関数名として認識されます。

式の中で文字としてシングルクォーテーションを入力する必要がある場合は、２つのシングルクォーテーションを連続して入力します。

例：

'It''s ok'

は、次のように表示されます。

It's ok


JD Edwards Enterprise Oneコネクタ

以下のトピックは、Magic xpiの JD Edwards Enterprise Oneコネクタについて扱っています。

Magic xpi で JD Edwards Enterprise One の呼び出しを暗号化するには

JD Edwards Enterprise One で新しい顧客レコードを作成するためにMagic xpiを使用するには


Magic xpi で JD Edwards Enterprise One の呼び出しを暗号化するには

Magic xpiは、JD Edwards Enterprise One ダイナミックJavaコネクタを通して、JD Edwards サーバと接続します。サーバによって行われる通信は、動的なJavaコネクタとJDEサーバの間で行われます。

セキュリティを適用する方法があるのであれば、そこで設定する必要があります。、JDEダイナミックJavaコネクタの通信をセキュリティ保護することをJDEのエキスパートに相談する必要があります。


JD Edwards Enterprise One で新しい顧客レコードを作成するためにMagic xpiを使用するには

基本的な顧客を作成するために、以下の2つの標準のJDEのビジネス関数を呼ぶ必要があります。

  • N0100041.AddressBookMasterMBF

  • N0100042.MBFCustomerMaster

N0100041.AddressBookMasterMBF

最初に、住所録レコード(通常は、Cタイプのレコード)を作成し、住所録番号(AN8)を取り出すためにN0100041.AddressBookMasterMBF関数を使用する必要があります。

  1. JD Edwards Enterprise Oneコネクタをフローにドラッグしてください。

  2. ステップ上で右クリックし、［構成］を選択してください。

  3. ［モジュール名］プロパティで、N0100041を入力してください。

  4. ［ビジネス関数］プロパティで、AddressBookMasterMBFを選択してください。

  5. データマッパーを開き、以下のマッピングを接続側(最初の5つは必須ですj)に入力してください。

入力は以下の通りです。

cActionCode = 'A' (追加の意味)

cUpdateMasterFile = '1'

cProcessEdits = '1'

szSearchType = 'C' (顧客の意味)

szAlphaName = [住所録アカウント名]

szSecondaryAlphaName = [2番目の住所録アカウント名]

szMailingName = [メールの名前]

szSecondaryMailingName = [2番目ののメール名前]

szAddressLine1 = [アドレス]

szPostalCode = [郵便番号]

szCity = [都市]

szState = 国コード、有効な国コードを指定。

szCountry = 会社のためにデフォルト国を使用している場合、szCountry = YouはNullのままにすることができます。

szPhoneNumber1 = [電話番号]

AN8を含む出力フィールドは以下の通りです。

mnAddressBookNumber

N0100042.MBFCustomerMaster

F03012 に顧客レコードを作成するために、N0100042.MBFCustomerMaster関数を呼び出すステップでAN8を使用します。

  1. JD Edwards Enterprise Oneコネクタをフローにドラッグしてください。

  2. ステップ上で右クリックし、［構成］を選択してください。

  3. ［モジュール名］プロパティで、N0100042 を入力してください。

  4. ［ビジネス関数］プロパティで、MBFCustomerMasterを選択してください。

  5. 住所録ファンクションコールからAN8値を使用する必要があります。

  6. AN8値を接続側の mnCustomerNumberにマッピングしてください。

  7. 接続側で、以下の最小のマッピングを入力してください。

mnCustomerNumber – the AN8 (Address Book # in the mnAddressBookNumber node) from the previous function

cActionCode – ˈAˈ (for Add)

cUpdateMasterFile – ˈ1ˈ

cProcessEdits – ˈ1ˈ


ライセンス

以下のトピックは、Magic xpiライセンスについて扱っています。

プロジェクトのためにスレッドを確保するには

プロジェクトの潜在的な並列実行機能を制限するには

プロジェクトが運用ライセンスを使用していることを確認するには

プロジェクトのライセンスを変更するには

ライセンスをリフレッシュするには

複数のサーバを使用するためにライセンスを設定するには

必要なライセンスのリストを生成するには


プロジェクトのためにスレッドを確保するには

Magic xpi がマルチプロジェクトモードで動作する場合、プロジェクトを適切に実行するために一定のスレッド数を確保する必要があるかもしれません。例えば、複数のプロジェクトを実行していて、いくつかのプロジェクトが、ストレス条件(例えば、多くのWeb サービスまたはHTTP リクエストがあることで)のもとですべてのスレッドを消費するかもしれない場合、継続的に動作させる必要がある重大なプロジェクトのために一定の(最小)のライセンススレッドを確保することを考慮する必要があります。

プロジェクトを実行する時、Magic xpiのワーカは、プロパティで定義されたライセンスのみをチェックアウトしますが、ライセンスを返すことはしません。ワーカがフローを完了しても、ライセンスはリ解放しません。プロジェクトのワーカの残りは、プールからライセンスを使い続けることになります。

サーバが手動でシャットダウンされたり、モニタ経由で停止された場合、確保されたライセンスはプールに戻ります。そのプロジェクトを処理しているサーバはフローティングライセンスを消費し続けます。しかし、サーバが再起動されたり、そのプロジェクトのために別のサーバが起動されてた時は、確保されたライセンスは再度チェックアウトされます。

［設定］ダイアログボックスの［プロジェクト環境］セクションの［一般設定］の［予約ライセンススレッド］エントリに必要なライセンス値を設定します。プロジェクトのifs.iniファイルの[MAGICXPI_GS]セクションで、ReservedLicenseThreads= flag に値を設定することでも可能です。フラグの値が、0(デフォルト値)に設定された場合、プロジェクトはライセンスを確保せず、ライセンスプールで利用可能なライセンスを使用します。


プロジェクトの潜在的な並列実行機能を制限するには

ワーカのプロジェクトの総数は、潜在的な最大の並列実行機能を定義します。

100個のワーカを持つことができますが、ライセンスに基づいて実行するため、「潜在的」という言葉が使用されています。


プロジェクトが運用ライセンスを使用していることを確認するには

プロジェクトのために運用環境でのライセンスを使用していることを確認するには、ライセンスファイルに正しいライセンス名が定義されていることをチェックする必要があります。これは、Windowsプラットフォームの場合がIBPRSRVIで、非Windowsプラットフォームの場合がIBPRSRVN になります。

ifs.iniファイルの［MAGIC_ENV］LicenseName= flag に定義されたライセンス名がライセンスファイルに存在していなければなりません。一致していなければ、プロジェクトのifs.iniファイルでライセンス名をを変更してください。また<Magic xpiインストール>\Runtime\Magic xpaフォルダでライセンス名を変更した場合、作成する新しいプロジェクトでこのライセンス名を使用するようにしてください。


プロジェクトのライセンスを変更するには

プロジェクトのライセンスを変更するには、projects/<プロジェクト名>フォルダに置かれている ifs.iniファイルを開いてください。そこで、［MAGIC_ENV］LicenseName= flagの値を、使用したいライセンス名に変更するだけです。


ライセンスをリフレッシュするには

新しいライセンス(有効期限の延長や、スレッド数を増やす場合も含まれます)を受け取った場合にライセンスレコードをリフレッシュする必要があります。

リフレッシュ処理は簡単です。ただ、ライセンスファイルで定義されたホストIDと一致しているホストで、新しいエンジンを起動させる必要があります。

前より少ないライセンス数や有効期限が前のライセンスより前の場合、ライセンスは更新されません。

ライセンスをリフレッシュするには：

  1. <Magic xpiインストール>\Runtime\Magic xpaフォルダの既存のライセンスファイルを、新しいライセンスファイルに置き換えてください。

  2. 0個のワーカ、そしてトリガやスケジューラ、または自動起動のない設定でプロジェクトのサーバ(エンジン)を定義してください。

  3. Magic xpaモニタで、ステップ2で定義したサーバを右クリックし、［新規インスタンスの実行］を選択してください。

  4. エンジンが、実行ステータス(［ステータス］カラムでRunningが表示されます)に鳴るまで待ってください。

  5. 再度サーバ上で右クリックし、シャットダウンを選択してください。


複数のサーバを使用するためにライセンスを設定するには

複数のサーバを使用する時、各プロジェクトは、license.datファイルにアクセスして読み込むj必要があります。これは、以下の通りおこないます。

  1. 購入後に受け取ったライセンスファイルをコピーし、サーバのすべて、または共有フォルダにコピーしてください。ライセンスファイルは、各サーバ毎に独自のライセンスファイルが必要ではないため、すべてのサーバでアクセスできる共有フォルダに置くことがよい選択です。

  2. 共有されたライセンスファイルを指定するために、Magic.iniファイルの［MAGIC_ENV］LicenseFile のエントリを更新して、ライセンスファイルの位置を修正してください。 例えば：
    LicenseFile =\\10.1.1.6\licenses\License.dat

  3. プロジェクトのifs.iniファイルが、Windows用で［MAGIC_ENV］LicenseName = IBPRSRVI などの製品ライセンスが設定されることを確認してください。

ライセンスのHOSTIDフラグでライセンスを制限しているサーバは別として、ロードする他のサーバは実際のライセンスを追加しません。従って、ライセンスカウントは0になります。


ナビゲーションとワークスペース

以下のトピックは、Magic xpiのナビゲーションとワークスペースについて扱っています。

Magic xpi スタジオのデフォルトのオープニング表示を定義するには

プロジェクトのオブジェクト内のテキストを検索するには

プロジェクトのエラーをチェックするには

ツールティップをより長く表示させるには


Magic xpi スタジオのデフォルトのオープニング表示を定義するには

Magic xpiは、スタジオを最初に開く時にどのように表示させるかを定義することができます。

スタジオのデフォルトのオープニング表示を定義するには：

  1. ［ツール］メニューで、［オプション］を選択してください。

  2. ［環境］の配下の［オプション］ダイアログボックスで、Startupをクリックしてください。

  3. ［起動時］のドロップダウンリストで、以下のオプションのどれかを選択してください。

    • ホームページを開く

    • 前回読み込んだソリューションを読み込む

    • ［プロジェクトを開く］ダイアログボックスを表示する

    • ［新規プロジェクト］ダイアログボックスを表示する

    • 空の環境を表示する

  4. ［OK］をクリックしてください。


プロジェクトのオブジェクト内のテキストを検索するには

変更を行うためにプロジェクト内のテキストを検索すること便利です。特定のデータの名前を変更する必要が発生するかもしれません。例えば「Salesman」の代わりに「Salesrep」を使用する場合などです。ひょっとしたら、ハードコードされた会社名を変更する必要があるかもしれません。

Magic xpi には、以下で説明するようなテキストを検索するための便利な機能があります。

特定のオブジェクトの名前をテキスト検索するには：

ビジネスプロセスやフロー、フロー内のステップ、およびデータマッパノードの名前をテキスト検索することができます。

  1. 編集 > 検索 > テキスト検索 を選択するか、Ctrl+SHIFT+Fを押下してください。［テキスト検索］ダイアログボックスが開きます。

  2. 検索したいテキストを入力してください。

  3. どこで検索を実行するかを、［Look In］ドロップダウンリストから指定してください。

  4. ［Narrow the search to ］チェックボックスを選択し、次にドロップダウンリストからオプションの1つを選択することで、検索条件を絞り込んでください。

  5. さらに、［検索オプション］の下のチェックボックスのどちらかを選択して、検索条件を絞ってください。

  6. ［全て検索］をクリックしてください。結果は、［テキスト検索結果］ウィンドウに表示されます。ここから、直接、特定の結果項目をダブルクリックするか、その項目上で右クリックし、コンテキストメニューから［移動］を選択することで検索結果と関連した［プロパティ］ペインに移動することができます。

  7. 次の検索項目に続くには、F3(または、編集 > 次を検索)を押下します。前の項目に戻る場合は、Ctrl+F3(編集 > 前を検索)を押下してください。


プロジェクトのエラーをチェックするには

Magic xpi で、デバッグ段階または運用段階にかかわらず、プロジェクトをビルドする時、プロジェクトは自動的にチェックされます。

自身でチェッカを実行させることもできます。Magic xpi プロジェクトの構文チェックに数秒かかるだけです。チェッカーツールは、例えば、設定されていないステップや互換性のないタイプを見つけるます。構文チェックが完了すると、エラー(もしあれば)のリストが表示されます。エラーをクリックすると、そのエラー箇所に移動することができるので、それを修正することができます。

構文チェッカを処理する様々なオプション（プロジェクト全体、ビジネスプロセス、特定のフロー、ステップ、またはトリガ）があります。

1つのアイテムの構文をチェックを行うには：

  1. チェックしたい項目上でパークしてください。

  2. 項目を右クリックし、コンテキストメニューから［チェッカ］を選択してください。以下のどちらかになります。

  • 「フローに何も結果は発見されませんでした」というメッセージが表示されます。

  • ［チェッカ結果］画面が表示され、エラーメッセージが表示されます。

  3. エラーがある場合、［チェッカ結果］リストを使用して、エラーのリストから修正作業を行うことができます。

  4. ［チェッカ結果］画面から、画面のエントリをダブルクリックすることによって、問題が存在しているMagic xpiの中のエリアに直接移動することができます。

  5. 画面のトップでエラーや警告、および情報のボタンをクリックすることでどのエラーを表示するかをカスタマイズすることもできます。

プロジェクト全体をチェックするには：

または:

1度にプロジェクト全体をチェックすることができます。エラーメッセージは、すべて［チェッカー結果］画面にグループ化され、1つのプログラムに対してチャックする場合と同じ方法でリストを通して修正作業を行うことができます。

  1. プロジェクトの任意の場所から［プロジェクト］メニューを選択し、［チェッカ］を選択してください。

  2. 構文チェッカーはプロジェクト全体で実行され、エラーは［チェッカ結果］画面にリスト表示されます。

  3. エラーがある場合、［チェッカ結果］リストを使用して、エラーのリストを通して修正作業を行うことができます。

  4. ［チェッカ結果］画面から、画面のエントリをダブルクリックすることによって、問題が存在しているMagic xpiの中のエリアに直接移動することができます。


ツールティップをより長く表示させるには

デフォルトでは、Magic xpi のツールティップは、5秒間表示されるように設定されています。より長く表示させたい場合は、簡単に変更することができます。

Magic xpiのインストールフォルダにあるMagic.ini を開くか、Windowsの［スタート］メニューからショートカットを選択してください。

［MAGIC_ENV］セクションで、TooltipTimeoutという名前のエントリが見つかります。そこの値が 5に設定されることが確認できますj。それは5秒を意味しています。それを0から31の間の任意の数値に変更することができます。これによって、ツールティップを31秒までの表示させることができるようになります。変更をしたら、プロジェクトを再起動してください。そうすると、変更内容が反映されます。

値を 0に設定した場合、ツールティップは表示されなくなります。


プロジェクトのデバッグ

以下のトピックは、Magic xpiのデバッグ機能について扱っています。

デバッガを使用して、プロジェクトをデバッグするには

ブレイクポイントをプロジェクトに設定するには

データベースゲートウェイによって記録された情報を制御するには

動的なゲートウェイログを作成するには

SAP ERR(JCO)コンポーネントのためにログファイルを作成するには

Magic xpiをデバッグするためにデバッグツールを使用するには

Magic xpiをデバッグするためにUser-Mode Dump Heap (UMDH)を使用するには

Magic xpiで.NET Utilityコンポーネントをデバッグするには


デバッガを使用して、プロジェクトをデバッグするには

Magic xpiのデバッガは、開発段階の間、統合プロジェクトをテストするための強力なデバッグツールです。デバッガは、プロジェクトを実行したり、運用プロジェクトに付属して、プロジェクトがどのように実行されるかを制御します。実行順序やフロー変数、サービス、およびブレイクポイントをコントロールし表示します。デバッガのコンテキストツリーを見ることによって、サーバがどのようにプロジェクトでフローを実行しているかを確認できます。

このトピックは、デバッガをどのように使用するかについて説明しています。

ブレイクポイントを設定する

デバッガを実行する前に、どこで停止したらいいかを指定する必要があります。ブレイクポイントを設定することによって、これを行うことができます。これによって、特定のステップ上のフロー実行を停止させることができるので、ブレイクポイントはツールのデバッグに役立ちます。ブレイクポイントに達すると、次のステップが実行される前に、スレッドと分岐などのすべての実行されたコンテキストは停止します。

ブレイクポイントを設定するには、関連したステップで右クリックし、コンテキストメニューから［ブレイクポイント］を選択してください。

ステップ、フロー、またはブランチの一時中断

プロジェクトをデバッグする時、任意の問題に対してピンポイントで狙うことを容易にするために特定の要素を中断することができます。中断されたステップは無視され、ステップが実行されたかのように、バッガは次のステップに続きます。中断されたフローは実行されず、そのモードから解放されるまで、「停止される」ように扱われます。

ステップ、フロー、または分岐を中断するために、そこで右クリックし、コンテキストメニューから［中断］を選択してください。

デバッガによる実行を開始する

さて、デバッガによる実行を開始する必要があります。［デバッグxpi］メニューをクリックし、［デバッグ開始］を選択するかF5を押下することで、プロジェクト全体をデバッグすることができます。ツールバー上の [image] アイコンをクリックすることもできます。

代わりに、関連するフローで右クリックし、コンテキストメニューから［デバッグ］を選択することで特定のフローをデバッグするようの設定できます。このように特定のフローをデバッグする時、プロジェクトの他のすべてのフローは無効になります。

プロジェクト内をステップ動作する

ブレイクポイントを設定し、デバッガを開始したら、プロジェクトの中で1つずつステップ実行を行うことができます。コンテキストツリーのステップで右クリックし、コンテキストメニューから［ステップ］または［継続］を選択することによって、これを行うことができます。

ここからコンテキストビューにアクセスすることもできます。コンテキストビューは、現在動作しているビューのために格納されたすべての内部情報を提供し、変数の値を変更することもできます。

デバッグ処理を終了する

デバッグを終了する場合は、［デバッグxpi］メニューをクリックし［デバッグ停止］を選択するか、Shift+F5を押下することによって、簡単に処理を停止することができます。コンテキストツリー内の任意のステップで右クリックし、コンテキストメニューから［デバッグ停止］を選択することもできます。


ブレイクポイントをプロジェクトに設定するには

ブレイクポイントは、選択したステップ上のフローの実行を停止させることができ、デバッグのために非常に便利なツールです。

ブレイクポイントに達したら、次のステップを実行する前に、スレッドと分岐などの実行されたコンテキストのすべては停止します。コンテキストツリーから［ステップ］または［継続］のどちらかを選択するまで、デバッガはその時点で待機します。

ブレイクポイントの設定または削除をするには：

  1. ブレイクポイントを特定のステップに設定するには、そこで右クリックし、コンテキストメニューから［ブレイクポイント］を選択してください。

  2. ブレイクポイントを特定のステップから削除するには、そこで右クリックし、コンテキストメニューから［ブレイクポイント］を選択してください。

ステップ上にブレイクポイントが定義されている場合、ブレイクポイントのイメージ( [image])が隣に表示されます。以下のイメージのように、ブレイクポイントとしてマークされたステップが表示されます。

［デバッグxpi］メニューからアクセスされた［ブレイクポイント設定/解除］オプション(以下のイメージを参照)は、現在パークしているステップからブレイクポイントを追加したり、削除することができます。ブレイクポイントがステップ上に存在していない場合、ブレイクポイントが作成されます。ブレイクポイントが存在していて、現在使用可能な場合、それは削除されます。


データベースゲートウェイによって記録された情報を制御するには

ゲートウェイログ

特定のデータマッパーのステップをデバッグするか、一定の間隔でログの動作をおこなうようにに指示するなどの場合に、動的にゲートウェイログを使用可能にしたり無効にするために、Logging関数を使用することができます。

これをどのように行うかについての詳細は、ここをクリックしてください。

  • デバッグ段階が完了しアプリケーションを配備する前に、ロギングを停止することを推奨します。ロギングは、プログラムの実行速度を低下させます。

  • デバッグ段階で失敗するすべてのオペレーションはまたは動作は、MagicXPI.Logファイルに記録されます。メッセージボックスで、要求された処理で発生したエラーが表示されます。どのようなエラーが発生したか、そしてどこで発生したかを確認するには、ログを参照してください。


動的なゲートウェイログを作成するには

場合によっては、データベースと接続する特定のデータマッパステップをデバッグする必要があったり、一定の間隔で実行するためにログが必要になるかもしれません。これらのインスタンスで、動的にゲートウェイログを使用可能にしたり、無効にするためにLogging関数を使用することができます。これはMagic.iniファイルの中では ロギング設定を変更することができません。

構文は以下の通りです。

Logging(startstop, filter)

パラメータ:

  • startstop …… 'True'Log の場合、ロギングを開始します。

  • filter …… どのロギングエントリを開始／停止するかを指定します。

いくつかの例があります：

Logging 式 | 効果
Logging('True'Log, 'Levels') | Levelsに対してロギングを開始します。,
Logging('False'Log, 'Recompute') | Recomputeの動作に対してロギングを停止します。
Logging('False’Log, 'ALL') | すべてのロギングをを停止します。
Logging('True'Log, 'RESET') | Magic.iniファイルに格納された値にロギングを戻します。
Logging('True'Log, 'Oracle=D') | Oracleのロギングを開発者レベルに設定します。

動的なゲートウェイログを作成するには、以下の手順に従ってください。

  1. 論理タイプの変数を定義してください。

  2. 以下の行を含むフローデータステップを追加してください。

a. 変数を以下の式で更新します Logging ('TRUE'LOG,'MicrosoftSQLServer=D'). この設定はMSSQL用です。別のデータベースタイプが必要な場合、それに応じて名前を変更してください。

b. 変数を以下の式で更新します Logging ('TRUE'LOG,'Gateway').

c. 変数を以下の式で更新します Logging ('TRUE'LOG,'ExecutionLogFileName=< file name >').

パスが指定されていない場合、ファイルは<Magic xpiインストール>\Runtimeフォルダに作成されます。

  3. ゲートウェイログを停止するには、別のフローデータステップを作成し、論理変数を定義し、次の式で更新してください： Logging ('FALSE'LOG,'MicrosoftSQLServer=D').


SAP ERP(JCO)コンポーネントのためにログファイルを作成するには

デフォルトでは、SAP ERP(JCO)コンポーネントのために作成されるログファイルはありません。

そのようなログを作成するには、logback.xmlファイルを修正する必要があります。これは \java\classes\ フォルダにあります。

logback.xmlファイルを開き、以下の2つのエントリの"level"を変更してください。

<logger name="magicxpi.component.sapr3.step"
 additivity="false"
 level="INFO">

<appender-ref ref="SapR3-Step-appender" />

</logger>

<logger name="magicxpi.component.sapr3.trigger"
 additivity="false"
 level="INFO">

<appender-ref ref="SapR3-Trigger-appender" />

</logger>

エントリは以下のどれかの値に変更することができます。

- all
- debug
- info
- warn
- error
- fatal
- off
- null

(通常、debugを選択することで十分です。)

このログは、Magic xpiサーバ側に作成されます。これは、SAP ERPのトレースファイルではありません。SAP ERPトレースを有効にするには、SAP ERPリソースに移動し、［SAPトレース］パラメータの値をYesに変更してください。結果として生じるトレースファイルは、Magic xpiのインストールフォルダに作成されます。


Magic xpiをデバッグするためにデバッグツールを使用するには

Magic xpaまたはMagic xpiのエンジンをトラブルシューティングする必要がある場合、問題が再現できない時、ログファイルが必要になるかもしれません。Magic xpaのテクニカルサポート部門がそれらを要求した場合、このトピックは、Magic xpa(uniPaaS)またはMagic xpi(jBOLT)のために、ダンプログファイルを作成するために、デバッグツールをどのように使用するかについて説明しています。

64ビットのWindows OS上で32ビットのダンプファイルを作成する

以下のどれかの方法で、64ビットOS上で32ビットのダンプを作成することができます。

  1. タスクマネージャを使用する： タスクマネージャからダンプを作成することが可能です。しかし、32ビット版のタスクマネージャを使用する必要があります。

a.トラブルシューティングしたいプログラムを実行してください。

b.C:\Windows\SysWOW64\taskmgr.exeからタスクマネージャを開始してください。これは、32ビット版のタスクマネージャです。タスクマネージャの32ビット版を実行していることを確認したい場合、taskmgr.exeがタスクマネージャ自身で*32 とリスト表示されていることでチェックすることができます。以下のイメージに表示されているように、プロセス名の隣の*32は、プロセスが32ビットアーキテクチャを使用していることを示しています。

c.トラブルシューティングしたいプロセス上で右クリックして［ダンプファイルの作成］を選択してしてください。

  2. ProcDumpユーティリティを使用する：

a. procdump.exeファイルを次のサイトからダウンロードしてください：http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx.インストールする必要はありません。ダウンロードして実行するだけです。

b.コマンドラインから以下の構文を使用して実行してください。

procdump –e –ma [プロセス名] <ダンプファイルのフルパス>

または

procdump –e –ma <PID> <ダンプファイルのフルパス>

-e = 処理されない例外を待ちます

-ma = ダンプファイル名

MicrosoftのWinDbgツールを使用してダンプファイルを作成する

WinDbgを使用してMagic xpaをデバッグするビデオデモンストレーションを参照する場合は、ここをクリックしてください。

WinDbgツールをインストールし設定する

Microsoft のWindowsデバッガ(WinDbg)を使用するには、Magic xpiがインストールさられたPCで、以下を実行してください。

  1. Cドライブ(Cドライブ上になければならないことに注意してください)上に、mgdbgと呼ばれる新規フォルダを作成してください。

  2. Debugging Tools for Windows フォームからダウンロードして実行してください。

     http://www.microsoft.com/en-us/download/confirmation.aspx?id=8279

  3. Windows SDKセットアップウィザードから、［Next］ボタンをクリックして［Installation Options］ダイアログに移動し、［Debugging Tools］チェックボックスをチェックし、他のオプションのチェックをすべてを外します。インストール処理が終了するまでるまで［Next］ボタンをクリックして、［Finish］をクリックしてください。
    すでにWindows SDKがインストールさせている場合は、このダイアログのようにメンテナンスオプションを選択してください。

  4. それを保存したら、プロセスがかなり大きなサイズの複数のファイルを作成するため、ハードディスク上のCドライブに十分な空きスペースがあることを確認してください。Magic xpaのバージョンに対応したWinDbgの内部構成ファイルをダウンロードするため、以下のリンクを使用してください。

    Ver9に対応したファイルは、ここをクリックしてください。

    Ver10、uniPaaS、およびMagic xpaに対応したファイルは、ここをクリックしてください。

    jBOLTとMagic xpiに対応したファイルは、ここをクリックしてください。

  5. ファイルを解凍し、ファイルをwindbg.inにリネームし、それを c：\mgdbgフォルダに保存してください。

オプション1：CMDを使用してダンプファイルを作成する

  1. 管理者権限でCMDウィンドウを開いてください。

  2. CMDウィンドウで以下の構文を使用してください。

    [windbg.exe のフルパス名] -p [プロセスid] -G -Q -c "$<c:\mgdbg\windbg.in"

[プロセスid] は、Windowsのタスクマネージャの［プロセス］タブに表示される Magic xpa 実行エンジンのプロセスIDです。

デバッガウィンドウが開きます。

  3. トラブルシューティングしたいMagic xpaアプリケーションを実行してください。

  4. エンジンがクラッシュしたら、以下のイメージに示されているように「Dump successfully written 」という表示を確認してください。これは、ダンプファイルを初期に作成したフォルダに作成します。この場合、Cドライブ上のmgdbgフォルダになります。

  5. PC上で1つのMagic xpiエンジンしか実行していない場合は、以下の構文を使用することもできます。

    [Full pathname of windbg.exe executable] -pn [.exe name] -G -Q -c "$<c:\mgdbg\windbg.in"

    .exe名は以下の通りです。

    mgrntw.exe …… Ver9
    eDevRTE.exe …… Ver10
    uniRTE.exe …… Magic xpa
    MgxpaRuntime.exe …… Magic xpi
    iBoltServer.exe …… jBOLT versions
    MgxpiServer.exe …… Magic xpi versions

.exe名/プロセスIDを変更することで、開発環境のクラッシュを捕らえることもできます。

マルチスレッドのMagic xpaエンジンをデバッグするためには、ダンプファイルを作成するために、1つのスレッドのクラッシュによって実行エンジン全体がクラッシュすることを確認する必要があります。これは、Magic.iniファイルの定義を使用して行います。

[MAGIC_SPECIALS]

ExceptionMessageBoxDisplay = Y

オプション2：WinDbgから直接ダンプファイルを作成する

コマンドラインにアクセスする権限がない場合、次の通りに直接WinDbgツールでダンプファイルを作成することができます。

  1. アプリケーションをロードする前に、WinDbgユーティリティ(管理者として)を実行してください ：スタート > すべてのプログラム > Debugging Tools for Windows > WinDbg 。

  2. ［ファイル］メニューから、［Attach to a Process］オプションを選択し、Magic xpaエンジンをアクセスします。

    注意：アルファベット順に並べられているため、実行可能な名前でプロセスをソートすることができます。

  3. デバッグしたい.exeが実行していることを確認してください。

  4. プロセスリストから、デバッグしたい.exeファイルを選択するか、プロセスIDを入力して、［OK］をクリックしてください。

  5. 再度、トラブルシューティングしたいアプリケーション を開き、実行してください。

  6. .exeファイルがクラッシュしたら、コマンド $<c:\mgdbg\windbg.inを入力し、Enterを押下してください。これによって、mgdbg.in のスクリプトが読み込まれ、ダンプファイルが作成されます。

起動時にエンジンがクラッシュした場合にダンプファイルを作成する

起動時に実行エンジンがクラッシュする場合があり、Windowsデバッガを既存のプロセスに割り当てることは不可能です。

この場合に、WinDbgツールで以下のようにします。

  1. ［ファイル］メニューから、Magic xpaエンジンをロードするために［Open Executable］オプションを選択してください。

  2. 実行エンジンの .exeファイルを選択し、開いてください。

  3. .exeファイルがロードされたら、コマンド $<c:\mgdbg\windbg.in を入力してしてください。

    これは、mgdbg.in でスクリプトを読み込みます。

    注意：すでに一度ツールを実行した場合、パスを入力することなく g という文字を入力し、Enter を押下するだけすみます。

  4. Enterをクリックするとデバッグが可能になります。

  5. クラッシュする瞬間まで、アプリケーションを実行してください。「Dump successfully」というメッセージが表示され、ダンプファイルがmgdbフォルダに作成されます。.

全くクラッシュがない時にダンプファイルを作成する

異常終了が全くない場合：

  1. windbg.inファイルを開いてください。

  2. .dumpで始まる行ををコピーしてください。例えば： .dump /ma /u c:\\mgdbg\\mg_crsh.dmp;gn.

  3. ［コマンドプロンプト］画面の下にそれを貼り付けて、Enterを押下してください。

グローバルなフラグ

ダンプファイルに（クラッシュの原因を理解するために）必要な情報が保存されない場合があります。従って、グローバルなフラグ(gflags)情報を保持するダンプファイルを作成するように要求されます。その他の情報を作成するために、Debugging Tools for Windows を設定するために、以下のステップを実行してください。(注:グローバルフラグを設定した後で、.exeファイルを実行するようにしてください。)

  1. Global Flags ユーティリティを実行してください：（スタート > すべてのプログラム > Debugging Tools for Windows > Global Flags）

  2. Yesクリックしてください。

  3. フォーカスをImage File と呼ばれる3番目のタブに置いてください。

  4. デバッグしたい.exeファイルの名前を入力してください。フルパスではなくimage name(以下に表示されているような)のみを使用してください。

  5. ［Tab］ボタンを押下して、画面の上のOption を有効にしてください。

  6. ［Enable page heap］チェックボックスとテクニカルサポートから選択するように指示された他のすべてのチェックボックスを選択してください。

メモリの不要な消費がないように、ダンプファイルが作成されたら、グローバルフラグの定義を削除してください。再度ツールを開き、［Enable page heap ］チェックボックスをクリアすることで、これを行うことができます。

WinDbgをデフォルトの Windowsの 事後分析デバッガとして設定する方法

WinDbgはデフォルトのデバッガとして動作しないため、端末セッションでユーザダンプをキャプチャすることは困難です。このような場合、以下の方法でダンプファイルを作成することができます。

この方法は、様々なアプリケーションのどのようなクラッシュに対しても自動的にダンプファイルを作成します。

この方法は、レジストリの変更を必要としています。他に選択肢がない限りは使用しないでください。

  1. 最新のDebugging Tools for Windowsをインストールしてください：: http://www.microsoft.com/whdc/devtools/debugging/default.mspx.

  2. 以下のコマンドを実行して、WinDbgをデフォルトデバッガとして設定しててください：: WinDbg –I

    注意： I は大文字で入力してください。

  3. ダンプが保存されるフォルダを作成し、ユーザとリモートデスクトップユーザに対しフルコントロールの権限を与えてください。

    この例では、c:\TEMP フォルダが使用されます。

  4. 以下のキーを探し、まだない場合は追加してください：

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

    例えば、それは以下の値を持っています：

    "C:\Program Files\Debugging Tools for Windows\windbg.exe" -p %ld -e %ld –g

    現在のキーの値を取得し、以下の文字列を追加してください：

    -c '.dump /o /f c:\TEMP\new.dmp; q' -Q -QS -QY –QSY

    新しいキーは、以下の値を設定する必要があります：:

    "C:\Program Files\Debugging Tools for Windows\windbg.exe" -p %ld -e %ld -g -c '.dump /o /f c:\TEMP\new.dmp; q' -Q -QS -QY –QSY

    64ビットのWindows上で、64ビットの"Debugging Tools for Windows"を使用しています。しかし、32ビットプロセス(タスクマネージャで *32として表示されます)からダンプを保存したい場合、Wow6432Node のレジストリーハイブを変更する必要がありし、32ビット版の"Debugging Tools for Windows"から32ビット版の WinDbg.exeファイルを使用する必要があります。

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

セッション中に例外がある時は常に、ダンプがTempフォルダに作成されます。

注意： 以前に保存されたダンプは上書きされます。

  5. Windows Server2003、Windows XP以降のOS上では、ハンドルデータとスレッド時刻の情報などの追加のデバッグ情報を保存するために /f の代わりに /maスイッチを使用することができます。

    "C:\Program Files\Debugging Tools for Windows\windbg.exe" -p %ld -e %ld -g -c '.dump /o /ma c:\TEMP\new.dmp; q' -Q -QS -QY -QSY

  6. ダンプがまだ発生しない場合、ローカルセキュリティポリシーにおいて［詳細追跡］を有効にしてください。そして、事後分析デバッガ起動されたことを確認するために、セキュリティイベントログのプロセス作成イベントを捜してください。

    注意：この方法はPC上の様々なクラッシュに対するダンプファイルを作成し、c：\TEMPフォルダへの既存のファイルを上書きします。

事後分析デバッガとしてWinDbgを削除する

  1. ［スタート］を選択し、［ファイルを指定して実行］をクリックしてください。

  2. レジストリエディタを開くために、RegEditを入力してください。

  3. HKEY_LOCAL_MACHINEを展開し、Softwareに移動してください。Microsoft > WindowsNT > Current Version > AeDebug をクリックしてください。

  4. ウィンドウの右側のペインで、Debugger という名前のレジストリキーをダブルクリックしてください。

  5. エントリを、"drwtsn32 -p %ld -e %ld -g" に変更します。クォーテーションマークを含めて、事後分析デバッガをデフォルトに戻します。

  6. ［OK］をクリックし、レジストリエディタを閉じてください。

関連トピック：

Magic xpiをデバッグするためにUser-Mode Dump Heap (UMDH)を使用するには


Magic xpiをデバッグするためにUser-Mode Dump Heap (UMDH)を使用するには

メモリリークは、トレースしづらいかもしれません。Microsoftは、開発者に、特定のプロセスの Windows ヒープ アロケーションを分析するように、OS を使用して動作する便利なユーティリティを提供しました。

UMDH(ser-Mode Dump Heap)と呼ばれるこのユーティリティは、Windowsのためのデバッグツールの一部です。一般的な用法は、"quiet mode"でメモリ状態のスナップショットを取り、メモリリークを再生し、別のスナップショットを取り、それから2つのショットを比較することです。

User-Mode Dump Heap (UMDH)を使用しMagic xpiをデバッグするには、以下の手順に従ってください。

  1. Debugging Tools for Windows フォームからダウンロードしてください：

    http://archive.msdn.microsoft.com/debugtoolswindows/Release/ProjectReleases.aspx?ReleaseId=4912

    dbg_x86_6.12.2.633.msiと呼ばれるファイルをダウンロードしてください。

  2. コマンドプロンプトを開き、"Debugging Tools for Windows"のインストールディレクトリ(通常は、ProgramFiles%\Debugging Tools for Windows\ (64ビットOSの場合、"(*86)" が追加されます)を開いてください。

  3. pdbファイルのディレクトリを参照するため、環境変数_NT_SYMBOL_PATHを定義してください。

  4. .ユーザースタックトレースを有効にしてください： gflags -i +ust

    注意： グローバルなフラグUIを経由して行うこともできます。

  5. 実行エンジンを起動してください。そして、Magic xpiアプリケーション/サーバを実行してください。

  6. 開始点に達してください。実行形式で実行した後で、再び使用する予定のタスクを調べてください。

  7. begin.txtと呼ばれるファイルでスナップショットを作ってください。

    umdh -p: -f:

    例えば： umdh -p:1234 -f:d:\temp\begin.txt

  8. メモリリークを作成するために、あと数回同じプログラムを実行してください。次に、最初のスナップショットを実行した時に存在していたのと同じOpen Windows の状態にしてください。

    再び、end.txtと呼ばれるスナップショットを作成してください。

    umdh -p:1234 -f:d:\temp\end.txt (これは今回異なるファイルです.)

    さて、ファイル間で比較してください。

    umdh -d d:\temp\begin.txt d:\temp\end.txt -f:d:\temp\diff.txt

  9. diff.txt.を送ってください。

  10. ユーザスタックトレースを無効にしてください： gflags -i -ust


Magic xpiで .NET Utilityコンポーネントをデバッグするには

Magic xpi で.NET Utilityコンポーネントをデバッグするには：

  1. .NETコードをリビルドし、関連したpdbファイルが作成されたことを確認してください。

  2. .NETコードの中で、ブレイクポイントを定義してください。

  3. デバッガでプロジェクトを開始し、ブレイクポイントを.NETのステップに設定してください。

  4. Visual Studioを、サーバ(以下のリンクを参照してください)に接続してください。
    http://msdn.microsoft.com/en-us/library/vstudio/3s68z0b3.aspx

    デバッグする.NETコードを選択してください。

  5. Magic xpi スタジオ で、ステップモードでプロジェクトを実行してください。


プロジェクト

以下のトピックは、Magic xpiでのプロジェクトについて扱っています。

新しいプロジェクトを作成するには

既存のプロジェクトを開くには

プロジェクトをバックアップするには

Magic xpiプロジェクトを削除するには

プロジェクトをリネームするには


新しいプロジェクトを作成するには

新しいプロジェクトを作成するには：

  1. ファイル > 新規作成 > プロジェクト を選択するか、Ctrl+SHIFT+Nを押下してください。すでにプロジェクトを開いている場合、それは閉まるり、新しいプロジェクトが作成されます。

  2. プロジェクト名を入力してください。

  3. 新しいプロジェクトを作成したい位置を選択してください。

  4. ソリューション名は、デフォルトで新しいプロジェクトに割り当てた名前と同じになります。Create directory for solutionチェックボックスを選択することで、変更することができます。

  5. ［OK］をクリックしてください。

Magic xpiは、［位置］フィールドで指定した位置に新しいフォルダを作成します。

プロジェクトが作成されると、入力した位置パスの新しいサブディレクトリに作成されます。プロジェクト名はディレクトリ名になり、またMagic xpiプロジェクトのファイル名になります。拡張子は .mgxpiprojになります。

関連トピック：

既存のプロジェクトを開くには


既存のプロジェクトを開くには

簡単にMagic xpi スタジオ でプロジェクト間を移動を行ったり、Windows からプロジェクトを開くことができます。既存のプロジェクトを開く2つの基本的な方法は、以下の通りです。

［プロジェクトを開く］ダイアログボックスを使用する

  1. 上部のメニューから、ファイル > 開く > プロジェクト/ソリューションを選択するか、Ctrl+SHIFT+Oを押下してください。

  2. Windowsの［プロジェクトを開く7］ダイアログボックスが表示されます。要求されたプロジェクトに対応した .mgxpiprojファイルを選択してください。

  3. ［開く］をクリックしてください。

新しいプロジェクトが開きます。

最近使用したプロジェクト

現在のプロジェクトを閉じる必要はありません。それは自動的に閉まります。プロジェクトに変更を加えた場合、［確認メッセージ］ボックスが表示され、変更を確認します。自身がプロジェクトのセットを使用して動作していることに気付くかもしれません。Ctrl+SHIFT+O(ファイル > 開く > プロジェクト/ソリューション)を使用してネットワーク上の任意のプロジェクトを開くことができます。しかし、最近作業したものを開く方が簡単です。

  1. ファイル > 最使ったプロジェクトとソリューションを選択してください。

  2. 必要なプロジェクトを見つけてください。

  3. 開きたいプロジェクトをクリックしてください。

今まで行っていた作業は保存され、選択されたプロジェクトに切り替わります。プロジェクトに変更を加えた場合、［確認メッセージ］ボックスが表示され、変更を確認します。


プロジェクトをバックアップするには

作業内容をバックアップすることは常に重要です。自動的にバックアップ処理を行うことができるソースコントロール製品を持ってもよいですが、このようなものがない場合、よいバックアップ処理のために2、3の簡単なオプションを備えています。

  • OS 上のファイルのバックアップ処理を作成する。

  • 作業中にフローのコピーを作成する。

  • プロジェクトのコピーを保存する。

これらについて、以下で紹介しています。

OS 上のファイルのバックアップする

Magic xpiが新しいプロジェクトを作成する時、プロジェクトの構造はルートレベルから構成されています。これは、.mgxpiproj(プロジェクト)ファイル、2つの.xmlファイル、およびいくつかのサブディレクトリによって構成されています。

従って、プロジェクト全体をバックアップする最も迅速で、最も簡単な方法は、最上層(この例では"Reservations")で単にフォルダを圧縮することです。必要であれば、プロジェクトの複数の圧縮されたバージョンを保持することができます。この方法は、現在のプロジェクトの完全なスナップショットを確実に持つことになります。

ハードウェア上の障害の場合に対応するため他のメディア(CDまたは外部ハードディスクなど)にこのディレクトリをコピーすることもできます。

作業中にフローのコピーを作成する

フローの作業を始める前に、フローで右クリックし、［コピー］を選択することで常にそのバックアップコピーを作成することができます。フローのビジネスプロセスでパークし、右クリックしてください、［貼り付け］を選択してください。これはプロジェクト全体をバックアップするほどの広範囲なものではありませんが、オリジナルのコピーに戻ることができる確実で迅速な方法です。何か実験的なことを行っている場合は、これは特に便利です。

プロジェクトのコピーを保存する

新しい名前で既存のプロジェクトのコピーを保存することもできます。詳細は、ここをクリックしてください。


Magic xpiプロジェクトを削除するには

必要なくなったプロジェクトを削除するには、そのディレクトリを <My Documents>\Magic\projects ディレクトリより削除します。

例えば、Testという名前のプロジェクトを削除するには、C:\Magic xpi\projects\Testディレクトリを削除します。

もしプロジェクトに対して［スタート］メニューにショートカットがある場合、必要であればそれも削除してください。削除するには、［スタート］メニューを選択し､該当するMagic xpiインストールを右クリックし、コンテキストメニューから削除を選択します。

この操作はプロジェクトへのショートカットを削除するだけで、実際のプロジェクトファイルは削除されません。


プロジェクトをリネームするには

Magic xpiは、新しい名前で既存のプロジェクトのコピーを保存することができます。リネームさられたプロジェクトは、オリジナルのプロジェクトと同じ位置に保存されます。

新しい名前でプロジェクトを保存するには：

  1. ［ファイル］メニューをクリックしてください。

  2. ［別名で保存］を選択してください。


Salesforceコネクタ

以下のトピックは、Magic xpi のSalesforceコネクタプロジェクトについて扱っています。

最初のSalesforceプロジェクトを作成するには

setRefbyExternalId関数を使用して SalesforceにおけるUpdate とUpsert を行うには

SalesforceをWeb サービスと呼ぶためにXMLSpyを使用するには


最初のSalesforceプロジェクトを作成するには

このトピックは、Magic xpi のSalesforceプロジェクトを作成する場合の最初のステップを説明します。

Salesforceアカウントを作成するには：

  1. http://www.salesforce.com/developer/ を開いてください。

  2. サイト上でサブスクリプションフォームに必要事項を入力して、Salesforceアカウントを開いてください。

  3. ログインURLが含まれたEメールを受け取ります。パスワードを変更するために、URLをクリックしてください。

  4. パスワードを変更した後に、セキュリティトークンを要求してください。

a. ページのトップのSetupリンクをクリックしてください。

b. ［My Personal Information］セクションで、［eset your security token link ］をクリックして、セキュリティトークンを含むEメールを受け取るようにします。

セキュリティトークンをパスワードに追加し、Magic xpiの［Connections Salesforce ］ダイアログボックスの［Password］フィールドに結合された結果を入力すると、後でこれを使用することができます。

例えば、パスワードが1234で、セキュリティトークンがAABBCCである場合、Magic xpiの［パスワード］フィールドで1234AABBCCを入力する必要があります。

salesforce.comのWebサイトにログインする場合は、セキュリティトークンは必要ありません。Magic xpiなどの外部アプリケーションを使用する時だけトークンは使用されます。

  5. https://login.salesforce.com/ を開いてください。ここで、Salesforceアプリケーションにログインすることができます。.

簡単なSalesforceプロジェクトを作成するには：

この例では、Queryオペレーションは、すべてChannel Customers アカウントタイプで実行されます。

Salesforceとの接続を設定する：

  1. Magic xpi スタジオを開き、新しいプロジェクトを作成してください。

  2. ［プロジェクト］メニューから［設定］を選択して、［設定］ダイアログボックスを開いてください。

  3. ［設定］ダイアログボックスの［リソース］セクションで、［追加］をクリックしてください。［新規リソース］ダイアログボックスが開きます。

  4. ドロップダウンリストからSalesforceのリソースタイプを選択してください。［リソース名］フィールドで、新しいSalesforceリソースの名前を入力し、［OK］をクリックしてください。

  5. 関連したフィールドでSalesforceサーバのユーザ名とパスワードを入力してください。パスワードは、Salesforceパスワードとsalesforce.comによって供給されたセキュリティトークンの組み合わせです。

  6. 新しい接続をテストするために、［検証］をクリックしてください。

  7. 接続が確認されたら、［オブジェクトリスト］をクリックしてアップデートされたサポートされたオブジェクトリストを取得してください。

  8. 接続定義を保存するために、［適用］をクリックしてください。

Salesforceコネクタを設定する：

  1. Salesforceコネクタをフローエリアにドラッグしてください。

  2. データマッパーをダブルクリックするか、右クリックして［構成］をクリックし、［Salesforce構成］ダイアログボックスを開いてください。

  3. ［オブジェクト］フィールドの隣で [image] をクリックし、アカウントオブジェクトを選択してください。

  4. ［オペレーション］フィールドで、ドロップダウンリストからQueryを選択してください。

  5. フロー変数リポジトリを開くために、CTRL+Lを押下してください。F.ResultBlobと呼ばれる新しいBLOB 変数を定義してください。

  6. ［Store Result In］フィールドの隣の [image] をクリックし、戻りのXMLデータを保持するために、F.ResultBlobを選択してください。

  7. ［データマッパー］ウィンドウを開くために、［OK］をクリックしてください。

  8. 送り先側で、タイプ要素をダブルクリックして、［プロパティ］ペインの［計算値］フィールドのチャンネルに Customer - Channel を入力してください。これは、channel customers だけを検索することを可能にします。

  9. ［OK］をクリックして構成画面を終了してください。

Salesforce XMLのクエリ結果をフラットファイルにマッピングする：

  1. データマッパコンポーネントをフローにSalesforceコネクタの子としてドラッグします。

  2. データマッパーをダブルクリックするか、右クリックし［設定］をクリックしてください。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り元エリアにドラッグします。

  4. XML送り元の［プロパティ］ペインで、アカウントXSDファイルを選択してください。<プロジェクト名>/salesforce/XSD/<Salesforce.com 接続名>/Account.xsd の下でこれを見つけることができます。

  5. データソースとしてF.ResultBlobを選択してください。

  6. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  7. データベースソースの［プロパティ］ペインの［データ送り先］フィールドで、ドロップダウンリストからファイルを選択してください。それに以下の値を設定してください：EnvVal('currentprojectdir')&'ChannelAccounts.txt'

  8. テーブルエリアで、3つの文字フィールドを作成するために、［新規］を3回クリックしてください。

  9. 新規フィールドを、Name、Country、およびWebsite にリネームしてください。

  10. ［OK］をクリックしてください。

  11. ［データマッパー］ウィンドウで、［Name］送り元ノードを［Name］送り先ノードにマッピングしてください。

  12. ［データマッパー］ウィンドウで、［BillingCountry］送り元ノードを［Country］送り先ノードにマッピングしてください。

  13. ［データマッパー］ウィンドウで、［Website］送り元ノードを［Website］送り先ノードにマッピングしてください。

  14. ［保存］をクリックしてください。

フローの実行：

  1. デバッガモードでプロジェクトを実行してください。Salesforceクエリ結果に続き、ChannelAccounts.txtファイルが利用可能で、すべてのチャンネルレコードを含んでいることをチェックするために、ステップを使用してください。

  2. 最終的なフローは、以下の表示表示されます。


setRefbyExternalId関数を使用して SalesforceにおけるUpdate とUpsert を行うには

setRefbyExternalId関数を使用している Salesforce でUpdateとUpsert を行うには、以下の手順に従ってください。

  1. Magic xpiを使用して、Salesforce でコンタクトを作成してください。すべてのSalesforceコンタクトには、ルックアップ アカウントフィールド(以下にで表示されているようにAccount Nameと名付けられています)があります。

コンタクトの編集モードでは、Account Name はルックアップフィールドです。

  2. Setup > App Setup > Customize > Accounts > Fields を選択します。以下のイメージのように、アカウントには、API名SLASerialNumber__c が設定された 外部IDフィールドがあります。

  3. アカウント名 Pyramid Construction Inc フィールドを示し、Account ID を知る必要が無い Contact “John Smith” フィールドを更新するには、SLASerialNumber__c の値を使用する事ができます。この場合に、値は 1981 になります。

  4. Salesforceコネクタでコンタクトを更新する時、AccountIdフィールドはデータマッパーに表示されます。コンタクトの［Accout t Name］前フィールドがルックアップフィールドであるため、以下の詳細をAccountIdにマッピングすることができます。

'setRefbyExternalId (Account, SLASerialNumber __c, 1981)'

実行中、AccountIdに挿入される値は、SLAシリアル番号が1981と同じアカウントのIDとなります。SLAシリアル番号が1981に設定される複数のアカウントがある場合、処理は失敗します。

同じ方法は、Upsertオペレーション(唯一の違いは、UpsertではUpsert条件を指定する必要があることです)やCreateオペレーション(Createオペレーションの必須フィールドを指定する必要があります)で有効です。


SalesforceをWeb サービスと呼ぶためにXMLSpyを使用するには

このトピックは、テストツールとしてMagic xpiの外部でどのようにSalesforce Web サービスを呼び出すか、そしてSalesforce APIの動作を確認するかについて説明しています。

これは、SOAPリクエスト(例えば、soapUI)を送ることが可能な様々なツールを使用するで行うことができます。このトピックは、XMLSpyRを使用して、どのようにリクエストをSalesforceに送るかを、ログイン問題をチェックし、SOQLクエリを実行し、describeSObjects()オペレーションを実行し、Upsertオペレーションを使用したり、getServerTimestampを使用することが可能になることを実証しています。

Salesforce Web サービスを呼び出すためにXMLSpyを使用するには：

  1. Salesforce WSDLファイルをダウンロードし、それをローカルで簡単にアクセス可能な場所に保存してください。salesforce.comにログインし、Setupを選択してください。

  2. App Setup > Develop > API を選択し、Generate Partner WSDL を選択してください。ローカルに保存したXMLファイルが開きます。

  3. XMLSpyを開き、ログイン処理のCreate new SOAP request を使用して、Salesforceにログインしてください。Web サービスの応答は、さらなるWeb サービスリクエスト(チケットが有効な限り)で使用されるセッションIDを含みます。.

  4. ［WSDL file location］ウィンドウが開きます。ここで、以前にローカルに保存したSalesforce WSDLを選択してください。

  5. WSDLを選択すると［Select Soap Operation Name］ウィンドウが開きます。次に、必要な処理コマンドを選択してください。(最初にSalesforceでチケットを開くためにログイン処理を選択する必要があるであることに注意してください。)

  6. ログインXMLが開きます。

a.関連しない全ての要素を削除することができます。

b.以下を有効なSalesforce証明書と置き換えてください。

    • <m:username> String</m:username>

    • <m:password> String</m:password>

ログインリクエストは、以下のように表示されるはずです：
<SOAP-ENV:Envelopexmlns:SOAP-ENV=" http://schemas.xmlsoap.org/soap/envelope/ "xmlns:SOAP-ENC=" http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd=" http://www.w3.org/2001/XMLSchema ">

<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:login xmlns:m="urn: partner.soap.sforce.com ">
<m:username>userName</m:username>
<m:password>Password+Token</m:password>
</m:login>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

  7. リクエストをSalesforceに送ってください。

  8. より多くのWeb サービスリクエストをSalesforceに送る必要がある場合、以下を行う必要があります。

a. 新規の SOAPリクエスト(ステップ3を参照)を作成してください。

b. 要求されたSOAPオペレーションを選択してください。

  7. 以下のステップは、オブジェクトのメタデータを取得するためのdescribeSObjects オペレーションを示しています。

  8. XMLが開かれます。:

a. 関連しない全ての要素を削除することができます。

b. <m:sessionId>String</m:sessionId> をログインWS結果XMLからのセッションID文字列に置き換えます。

c. <m:sObjectType>String</m:sObjectType> をメタデータを取得したいオブジェクトに置き換えます。例えば、 Account.

describeSObjects リクエストは、以下のように表示されるはずです。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<SOAP-ENV:Header>
<m:SessionHeader xmlns:m="urn:partner.soap.sforce.com">
<m:sessionId>00D70000000Jv4S!ARoAQB5ijhZCQhFpql4UFcs_qro5mQFg1d9A6_k8aDxniMM4WlaRnq
_KOZudBnsau2GZwLGpBEmhf_PCKbfX7.lnihBsPet5</m:sessionId>
</m:SessionHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:describeSObjects xmlns:m="urn:partner.soap.sforce.com">
<m:sObjectType>Account</m:sObjectType>
</m:describeSObjects>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

  11. login Web service response に移動し、サーバURLの文字列をコピーしてください。

  12. describeSObjectsリクエストXML上でパークし、［SOAP］メニューを選択して、［Change SOAP request parameters］を選択します。

    SOAPリクエスト設定において、接続エンドポイントを、login Web service response(ステップ11)からコピーしたサーバURL文字列で置き換えてください。

    メッセージウィンドウが開きます。No を選択します。

  13. リクエストを送ってください。

    別のXMLが開きます。これはWeb サービス応答です。

上記の方法は、SOAPリクエスト(soapUIなどの)を送ることが可能な様々なツールを使用して実行することができますが、、このドキュメントはXMLSpyのみ使用しています。


SAPB1 コネクタ

以下のトピックは、Magic xpiのSAPB1コネクタについて扱っています。

SAPB1コネクタで複数オブジェクトを照会するには

SAPB1コネクタで複数のオブジェクトを追加するには

SAPB1コネクタをアップグレードするには

SAPB1フィールド内の値をクリアにするには

SAPB1 HANAを使用するには


SAPB1コネクタで複数オブジェクトを照会するには

SAPB1データインターフェース（DI)APIは、一度に一つのオブジェクトを処理します。一方、Magic xpiのデータマッパユーティリティは、一つのステップ内で複数のオブジェクトの照会を行うことができます。ステップを構成するとき、Magic xpiはDIで複数のオブジェクトを照会できるようにします。

このトピックの終わりに、SAPB1のメインオブジェクトの複合要素に関する、特別な注意事項があります。

ユーザテーブルシステム内の追加または更新中に、SAP B1によって管理されている-'like Object, UserSign, Series, Period, Transfered, CreateDate, CreateTime and DataSource-の各フィールドは、ユーザによって更新することはできません。

例

複数のSAPB1オブジェクトを照会するには、三つの主要なステージがあります。

  • ステージ 1：Magic xpiのSAPB1コンポーネントを構成します。

  • ステージ 2：複数照会の結果をマッピングします。

  • ステージ 3：マップされた複数照会の結果を表示します。

ステージ 1：SAPB1コンポーネントを構成する

この例ではBusiness Partnersの一覧がテキストファイルにある場合、複数のBusinessPartnersを照会する方法について説明します。この例では、以下の情報を使用してサンプルテキストファイルを作成します。

Business Partnerファイルテンプレートは、以下のようになります。

BPName,CardCode,CardType,Tel1,Tel2,Contact,email

テキストファイル内のデータは、以下のようになります。

Test 00001,M00001,cCustomer,111-00001,222-00001,Contact 00001,1@mail.com

Test 00002,M00002,cCustomer,111-00002,222-00002,Contact 00002,2@mail.com

Test 00003,M00003,cCustomer,111-00003,222-00003,Contact 00003,3@mail.com

Test 00004,M00004,cCustomer,111-00004,222-00004,Contact 00004,4@mail.com

Test 00005,M00005,cCustomer,111-00005,222-00005,Contact 00005,5@mail.com

以下のステップは、Business Partnersの一覧がテキストファイルにある場合、どのように複数のBusinessPartnersを照会するかを説明しています。

  1. ［設定］ダイアログボックスの［リソース］セクションでSAPB1リソースを定義してください。

  2. SAPB1コネクタをフローにドラッグします。

  3. SAPB1コネクタの［プロパティ］ペインで、インタフェースとしてXMLを選択してください。

  4. ［プロパティ］ペインの［設定］セクションで、以前に［設定］ダイアログボックスの［リソース］セクションで定義したSAPB1リソースを選択してください。まだSAPB1リソースを定義していない場合、SAPB1コネクタの設定を継続することができません。

  5. SAPB1コネクタをダブルクリックするか、右クリックして［設定］をクリックします。設定ウィンドウが開きます。

  6. データオブジェクトリストを開くために、 [image] をクリックしてください。ビジネスパートナーを選択し、［OK］をクリックしてください。

  7. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  8. 送り元の［プロパティ］ペインで、［Exsample］フィールドに最初の頃に作成したテキストファイルパスをコピーし、データソースを選択してください。

  9. ［リフレッシュ］をクリックして、サンプルファイルを読み込みます。データマッパーは、サンプルファイル内の情報を使用してフラットファイルのデータを調整するかを定義します。

  10. ［保存］をクリックします。

  11. ［データマッパー］ウィンドウで、関連したクエリパラメータ接続を作成してください。この例では二つのCardCode要素を接続します。複数のオブジェクトを照会するには、Record要素をBO要素に結び付けます。

Magic xpiは、複数のオブジェクトのデータを格納する単一のXMLファイルを作成します。Magic xpiは、このファイルを使用してSAPB1のDIの照会を行います。XMLファイルは、ユーザBLOB変数に保存されます。

照会結果を保存したい場所を指定することができます。このオプションは、［SAPB12005構成］ダイアログボックスの［アドバンスド照会オプション］セクションの［結果を保存］ドロップダウンリストにあります。

XMLコードの照会結果のサンプルを参照するには、こちらをクリックしてください。

ステージ 2：複数照会の結果をマッピングする

複数照会の結果は、Magic xpi のODSテーブルに保存されます。Business Partnersの名前一覧は、ODS文字列フィールドに保存されます。

照会結果をマッピングするには、以下のようにします。

  1. データマッパーサービスをSAPB1コンポーネントにドラッグします。

  2. データマッパーをダブルクリックするか、右クリックして［設定］をクリックします。［データマッパー］ウィンドウが開きます。

  3. ツールボックスの［マッパスキーマ］セクションから、以下の送り元の1つを、［データマッパー］ウィンドウ(以下の例はQueryResult_BP という名前を使用しています)の送り元エリアにドラッグしてください。

  • XML …… 送り元タイプをXMLに設定し、以下にあるBusiness partner XSDを選択します。
    <    current project>\SAPB1_2004\XSD\oBusinessPartners(2).xsd, または

  • IFC Model …… 送り元タイプをIFCモデルに設定し、 [image] をクリックしてコンポーネントリストを開きSAPB1コネクタを選択します。そして、 [image] をクリックしてスキーマリストを開き、Business Partnersを選択します。データソースリストボックスからUserBLOBを選択します。

  4. ツールボックスの［マッパスキーマ］セクションから、ODSタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  5. 送り先の［プロパティ］ペインで、ODSリポジトリを開くために［ODS］ボタンをクリックしてください。

  6. ［新規］をクリックして、キー名を入力します。この例ではBP_Nameという名前を使用します。チェックボックスにチェックを入れ［OK］をクリックします。

  7. ［データマッパー］ウィンドウで、前の段階で作成されたBO要素をBP_Name要素と接続してください。そして、CardName要素をAlpha要素と接続してください。

ステージ 3: マップされた複数照会の結果を見る

  1. デバッガを実行します。［デバッグxpi］メニューの［システムテーブル］で［ODS］をクリックします。

  2. をクリックして［ODS詳細］画面を開き、照会結果を表示します。

SAPB1のメインオブジェクト複合要素

各オブジェクトのSAPB1スキーマでは、実際にXMLでこの複合要素の1つを持つ場合だけ、メインのオブジェクト（例：Business Partner/row)の要素は、複数のoccurrenceとしてスキーマ内に誤って定義されます。

マッパ規則に従うことで複数のoccurrence要素（行)を一つのoccurrence要素（QueryParams)にもマッピングできないため、SAPB1コンポーネント内で複数の更新、参照、削除を行おうとした場合、この定義では問題が発生します。また、送り元は、SAPB1オブジェクトのXMLになります。

この問題に対して2つの解決策があります。

  • 一つのoccurrence要素とするために、行レベル（常にTrueになっています)上で、フィルタを定義する。

  • 手動でXSDを修正する。


XMLコードのサンプル

<?xml version="1.0" encoding="UTF-16" standalone="no" ?>
<BOM>
<BO>
<AdmInfo>
<Object>2</Object>
<Version>2</Version>
</AdmInfo>
<BusinessPartners>
<row>
<CardCode>M00001</CardCode>
<CardName>Test 00001</CardName>
<CardType>cCustomer</CardType>
<Phone1>111-00001</Phone1>
<Phone2>222-00001</Phone2>
<EmailAddress>1@mail.com</EmailAddress>
</row>
</BusinessPartners>
<ContactEmployees>
<row>
<Name>Contact 00001</Name>
</row>
</ContactEmployees>
</BO>
<BO>
<AdmInfo>
<Object>2</Object>
<Version>2</Version>
</AdmInfo>
<BusinessPartners>
<row>
<CardCode>M00002</CardCode>
<CardName>Test 00002</CardName>
<CardType>cCustomer</CardType>
<Phone1>111-00002</Phone1>
<Phone2>222-00002</Phone2>
<EmailAddress>2@mail.com</EmailAddress>
</row>
</BusinessPartners>
<ContactEmployees>
<row>
<Name>Contact 00002</Name>
</row>
</ContactEmployees>
</BO>


SAPB1コネクタで複数のオブジェクトを追加するには

SAPB1データインターフェース（DI)APIは、一度に一つのオブジェクトを処理します。一方、Magic xpiのデータマッパユーティリティは、一つのステップ内で複数のオブジェクトの照会を行うことができます。ステップを構成するとき、Magic xpiはDIで複数のオブジェクトを照会できるようにします。

複数のSAPB1オブジェクトを追加する場合、まず最初にXMLインターフェースを使用してMagic xpiのSAPB1コンポーネントを構成します。そして送り元複合物をSAPB1 BO 複合物に接続します。これにより同時に複数のレコードを追加することができます。この処理は以下の例で説明されています。

例

この例では、Business Partners の一覧がテキストファイルになっている場合、複数のBusiness Partnersを追加する方法を説明しています。この例においては、以下の情報を格納したサンプルテキストファイルを作成します。

Business Partners ファイルテンプレートは、以下のようになります。

BPName,CardCode,CardType,Tel1,Tel2,Contact,email

テキストファイルのデータは、以下のようになります。

Test 00001,M00001,cCustomer,111-00001,222-00001,Contact 00001,1@mail.com

Test 00002,M00002,cCustomer,111-00002,222-00002,Contact 00002,2@mail.com

Test 00003,M00003,cCustomer,111-00003,222-00003,Contact 00003,3@mail.com

Test 00004,M00004,cCustomer,111-00004,222-00004,Contact 00004,4@mail.com

Test 00005,M00005,cCustomer,111-00005,222-00005,Contact 00005,5@mail.com

以下のステップは、Business Partnersの一覧がテキストファイルにある場合の複数のBusiness Partnersの追加の方法です。

  1. ［設定］ダイアログボックスの［リソース］セクションでSAPB1リソースを定義してください。

  2. SAPB1コネクタをフローにドラッグします。

  3. SAPB1コネクタの［プロパティ］ペインで、インタフェースとしてXMLを選択してください。

  4. ［プロパティ］ペインの［設定］セクションで、以前に［設定］ダイアログボックスの［リソース］セクションで定義したSAPB1リソースを選択してください。まだSAPB1リソースを定義していない場合、SAPB1コネクタの設定を継続することができません。

  5. SAPB1コネクタをダブルクリックするか、右クリックして［構成］をクリックします。［構成］ウィンドウが開きます。

  6. ［オペレーション］ドロップダウンリストから、Addを選択してください。

  7. データオブジェクトリストを開くために、 [image] をクリックしてください。ビジネスパートナーを選択し、［OK］をクリックしてください。

  8. ツールボックスの［マッパスキーマ］セクションから、フラットファイルタイプを［データマッパー］ウィンドウの送り元エリアにドラッグしてください。

  9. 送り元の[プロパティ]ペインで、ソースパスとして上記で取得したテキストファイルを使用してください。

  10. ［保存］をクリックします。

  11. ［データマッパー］ウィンドウで、関連した接続を作成してください。複数のオブジェクトを追加するために、Record要素をBO要素と接続してください。

Magic xpiは複数のオブジェクトを格納した一つのXMLファイルを作成し、UserXMLを更新します。Magic xpiはこのファイルを使用して SAPB1 DIへオブジェクトを追加します。UserXMLコンテンツをPCに保存すると、XMLファイルを参照することができます。この情報は、プロジェクトのデバッグの時などに便利kです。

XMLコードのサンプルを参照するには、こちらをクリックしてください。


SAPB1コネクタをアップグレードするには

Magic xpiは、アップグレードを行った後でも既存のコネクタで動作し続けることができます。たとえば、SAPB1 8.8に接続するためにSAPB1 2007コネクタを使用し続けることもできます。しかし、新しいオブジェクトやデータベースタイプのように、新しいSAPB1バージョンの新機能が必要な場合、コネクタの新しいバージョンを使用する必要があります。

SAPB1コネクタをアップグレードすることを選択した場合、手動でステップを再現する必要があります。


SAPB1フィールド内の値をクリアにするには

値をSAPB1フィールドからクリアしたい場合、NULL値を持つ関連要素（フィールド)でXMLを作成する必要があります。結果XMLにNULL値を作成するには、以下のようにする必要があります。

  1. クリアしたい値の要素にNULL値をマッピングしてください。

  2. ［データマッパー送り先プロパティ］ダイアログボックスの［常にノード作成］チェックボックスを選択します。これによって、その要素のために空のノードが作成されます。


SAPB1 HANAを使用するには

SAPB1 HANAを使用するには、最初に以下を行う必要があります。

  • SAP HANA DI APIをインストールしてください。

  • SAP HANA ODBCドライバをインストールしてください。

  • ODBCデータソースを作成してください。

  • SAP HANA トリガのためにODB接続文字列を定義してください。

SAP HANA DI APIをインストールすると、インストールされた場所から特定のバージョンだけを使用することができます。他のSAPB1バージョンと接続することはできません。

SAP HANA ODBCドライバをインストールする

データベースと接続することが必要なSAP HANA ODBCドライバは、SAP HANA クライアントソフトウエアと一緒に提供されます。クライアントソフトウエアをダウンロードし、Magic xpi がインストールされたPCにインストールする必要があります。

ODBCデータソースの作成

必要なODBCドライバをインストールしたら、接続したい各データベースのために専門のODBCデータソースを作成する必要があります。データソースは、データベースの名前とパスワードとユーザ名などのSAP HANA データベースを位置付け、アクセスするために使用する接続証明書を保持します。

Windows PC上で、ODBCリソースを作成する以下の手順に従ってください。

  1. ［スタート］メニューから、コントロールパネルと［管理ツール］を選択してください。

  2. ［管理ツール］ダイアログボックスで、［ODBCデータソース(32ビット)］をダブルクリックしてください。

  3. ［ODBCデータソースアドミニストレータ］ダイアログボックスで、［システムDSN］タブをクリックしてください。

  4. ここで、SAP HANA クライアントソフトウエアによってダウンロードしたHDBCODBC32ドライバを使用して、32ビットWindowsのためにODBCデータソースを作成してください。

64ビットOSを使用していて、［管理ツール］ダイアログボックスでODBCデータソース(32ビット)オプションが表示されない場合、%windir%\sysWOW64\odbcad32.exe コマンドを実行して［ODBCデータソースアドミニストレータ］ダイアログボックスを開いてください。

SAP HANA トリガのためにODB接続文字列を定義する

SAP HANA トリガを使用したい場合、［ODBCデータソースアドミニストレータ］ダイアログボックスで定義された、ODBC接続文字列を取り出し、それをSAPB1 マルチ リソースリストの［接続プロパティ］カラムに入力する必要があります必要なフォーマットは、<接続文字列>\<db owner>です。バックスラッシュ(\)が入力されない場合、入力全体が接続文字列とみなされ、db ownerの値はSAPB1リソースの［Company Database］プロパティから取り出されます。

Since version:

4.5a


SAP ERPコネクタ

以下のトピックは、Magic xpiのSAP ERPコネクタについて扱っています。

Magic xpiを起動させるためにSAP ERPシステムを設定するには

マスタデータ分布のためにSAP ERPシステムを設定するには


Magic xpiを起動させるためにSAP ERPシステムを設定するには

SAP ERPシステムは､特定のイベントが発生すると論理システムにIDoc(Intermediate Document)を送るように設定することができます。SAP ERP ALE (Application Link Embedding)メカニズムは､IDocを送信できるようにSAP ERPシステムを設定する場合に使用されます。

SAP ERPシステムを設定するには：

  1. 論理システムを定義する

SAP ERPシステムとMagic xpi間の通信を可能にするためには､SAP ERPシステムにMagic xpiとSAP ERPクライアントの論理システムを設定しなければなりません(SAP ERPクライアントは通常定義済みです）。

アプリケーションリンク Enabling > Sending and Receiving Systems > Logical systems > Define Logical systems.

代わりに 使用するトランザクション: SALE

  2. RFC接続先を定義する

RFCの接続先は､SAP ERPからMagic xpiにデータを転送するために使用されます。

アプリケーションリンク Enabling (ALE) > Sending and Receiving Systems > Systems in Network > Define Target Systems for RFC Calls

代わりに 使用するトランザクション: SM59

以下の点に注意してください。

  • RFC接続先のコネクションタイプは､TCP/IPにしてください。

  • 新しいRFC接続先を定義する場合は、プログラムID値を必ずMagic xpiのトリガ設定のProgid設定値と同じにしてください。

論理システムへのRFC接続先が定義されました。

  3. 論理ポートを定義する

低レベルネットワーク運用においては､RFC接続先とシステムポート番号が関連付けられている必要があります。 論理ポートは､Magic xpiへデータが送られるポートを定義します。論理ポートはRFC接続先が既に作成されている場合のみ使用できます。

アプリケーションリンク Enabling (ALE) > Sending and Receiving Systems > Systems in Network > Asynchronous Processing > Assigning Ports > Define Port

代わりに 使用するトランザクション: WE21

  4. 配布モデルを定義する

SAP ERP/3システムとMagic xpi間のIDoc交信を有効にするには､配布モデルを定義する必要があります。配布モデルは､必要なメッセージタイプ全てを含んでいる必要があります。パートナプロファイルも作成する必要があります。

アプリケーションリンク Enabling > Modeling and Implementing Business Process > Maintain Distribution Model and Distribute View

代わりに 使用するトランザクション: BD64

  5. パートナプロファイルを定義する

マスタデータ配布シナリオのための送出メッセージをコントロールするためのパートナプロファイルを作成します。

アプリケーションリンク Enabling > Modeling and Implementing Business Process > Partner Profiles and Time of Processing > Maintain Partner Profile

代わりに 使用するトランザクション: WE20

IDocを手動で送信し、トリガ設定をテストする：

  1. Magic xpiのSAP ERPコネクタトリガを設定する

このトリガは､SAP ERPシステムから手動で送られるDEBMAS IDocタイプのデータを受信待機するために使用されます。

  2. SAP ERPシステムを使用してDEBMASメッセージを送信する

IDocを確実にMagic xpiに送るために､パートナプロファイルの送出パラメターにDEBMASメッセージタイプが設定されているかを確認してください。

上記の設定ステップで定義した通りの適切なMagic xpiの論理システム名を入力してください。

トランザクション: BD12


マスタデータ分布のためにSAP ERPシステムを設定するには

このトピックは､マスタデータ配布のためのSAP ERP設定方法について説明しています。マスタデータが更新されると､配布モデルの定義に従ってマスタデータIDocを作成したり、Magic xpiに配布することができます。

最初に Magic xpiを起動させるためにSAP ERPシステムを設定するには のトピックを理解してください。

チェンジポインタは､shared master data(SMD)ツールに含まれるメカニズムによりSAP ERPシステムで管理されており、change document (CD)オブジェクトに基づいています。

SAP ERPシステムのマスタデータへの全ての変更は､change documentsに記録されます。change documentsから IDocs を生成するにはチェンジポインタ を作成しなくてはなりません。IDocsはバックグラウンド処理でこれらのchange pointersにより作成されます。

チェンジポインタを設定するには：

  1. チェンジポインタの数値範囲を管理する

アプリケーションリンク Enabling > Master Data Distribution > Replication of Modified Data > Maintain Number Range for Change Pointers

  2. メッセージタイプの チェンジポインタを有効にする

例えば、MATMAS (material master data) あるいは､DEBMAS (customer master data) メッセージタイプのメッセージポインタ書き出しを開始できます。

アプリケーションリンク Enabling > Master Data Distribution > Replication of Modified Data > Activate Change Pointers for Message Types

代わりに使用するトランザクション: BD50

  3. レポートのバリアントを定義する

マスタデータ変更を配布するには、チェンジポインタを読み込むレポートをスケジュールし、それらからIDocsを作成する必要があります。

バリアント作成には､RGDMIDOCプログラムを指定します。バリアント作成は､特定メッセージタイプのために行われます。

アプリケーションリンク Enabling > Master Data Distribution > Replication of Modified Data > Creating IDocs from change pointers > Define Variants

代わりに使用するトランザクション: SE38

  4. スケジュールジョブ

マスタデータのためのIDocsを定期的に作成するジョブをスケジュールしなくてはなりません。スケジュールは定義されたバリアントごと、すなわちメッセージタイプごとにに起動されます。

例えば、顧客マスタを配布したい場合、DEBMASメッセージタイプ用のジョブを計画しなくてはなりません。これは定期的に変更をチェックし､IDocsを生成します。

ジョブステップを定義する場合、ABAPプログラム名、RBDMIDOC を入力し、先ほどのステップで作成したバリアントを選択してください。

アプリケーションリンク Enabling > Master Data Distribution > Replication of Modified Data > Creating IDocs from change pointers > Schedule Job

代わりに使用するトランザクション: SM36


サーバ

以下のトピックは、Magic xpiのサーバについて扱っています。

Magic xpiのサーバメッセージを管理するには

Magic xpiサーバ用のゲートウェイログを作成するには


Magic xpiのサーバメッセージを管理するには

このトピックは､Magic xpiサーバのメッセージの変更方法を説明します。

ログ情報は、プロジェクトの設計やデバッグ中に必要となります。しかし、過剰な量の情報を出力しながらデバッグを行うと､システムのパフォーマンスを低下させてしまいます。このためログ情報は製品環境では減らすべきです。

解説：

Magic xpiサーバは、稼動中ifs_actlogという名前の内部メッセージテーブルにメッセージを送ります。Magic xpiモニタはこのテーブルを参照し、メッセージを表示します。

ユーザが設定を変更することにより特定のタイプのメッセージに対して以下の変更ができます。

  1. メッセージがMagic xpiモニタに表示されない。

  2. メッセージがifs_actlogテーブルに書き込まれない。

メッセージが書き込まれないようにする

メッセージを内部メッセージテーブルに書き込まないようにする方法は三つあります。

A. ifs.iniファイルの特定フラグを変更する

以下のフラグによりMagic xpiサーバから内部メッセージテーブルへ書き込まれるメッセージが既定されます。これらのフラグはプロジェクトのifs.iniファイルに設定します。

注意： ifs.iniファイルの変更を有効にするにはサーバを再起動する必要があります。

[MAGIC_IBOLT]MonitorLogLevel

このフラグの値として、以下の値を指定することができます（カンマ区切り）。

User …… ユーザ定義メッセージを表示します。

Error …… エラー及びエラーコンポーネントの呼び出しを表示します。

Exec …… サーバやフローなどの起動を表示します。このスイッチはUser、Errorメッセージを含みます。

Service …… サービスを表示します(ODS, Lock, PSS)。

All …… 全てのメッセージを表示します（フラグが存在しない場合これがデフォルトです）。

None …… メッセージを表示しません。

[MAGIC_IBOLT]DisableActivityLog

値: Y or N

このフラグがYになっている場合、動作ログは取られず、内部メッセージテーブルには何も書き込まれません。もちろんモニタにも何も表示されません。

[MAGIC_IBOLT]MonitorMode

このフラグの値として、以下の値を指定することができます。

Activity …… モニタは動作ログを表示しますが統計表示は行いません。

Statistic …… モニタは統計表示を表示し、動作ログは表示しません。このオプションはかなりのCPU能力を消費します。

Both …… ニタは動作ログと統計表示両方を表示します。

B. モニタ経由のメッセージを停止する

注意： モニタへの変更は即時に反映されます。

  1. モニタを開きます。

  2. ［設定］メニューから［アクティビティログ］を開きます。

  3. ［アクティビティログ］ダイアログの［サーバ設定］ボタンをクリックし ､［サーバログ設定］ダイアログを開きます。

ここで選択されたメッセージはサーバから送られなくなります。

C. アクティビティログメッセージファイルを変更する

Magic xpi で、Actlog_Write_Settings.xmlとActlog_Display_Settings_<user>.xmlファイルにアクティビティログメッセージを格納します。

例

  1. Magic xpiにエラーメッセージとユーザメッセージのみを送って欲しい場合、プロジェクト内のifs.iniファイルの[MAGIC_IBOLT]MonitorLogLevelフラグを以下のように変更してください。

[MAGIC_IBOLT]MonitorLogLevel = Error , User

  2. もしFlow component started と Flow component completedを送信して欲しくない場合、ifs_mytpテーブルでこれらのメッセージをSuspendとして選択するか、Magic xpiモニタでsuspend を設定してください。


Magic xpiサーバ用のゲートウェイログを作成するには

Magic xpiサーバとプロジェクトのデータベース間で接続とデータ転送に関して詳細な状況を把握する必要がある場合があります。ゲートウェイのログを作成することによって、この状況を把握することができます。

ゲートウェイのログを作成するには：

  1. Magic.iniファイルを開きます。そして、使用するデータベースゲートウェイ（.dll）が有効になっていることを確認してください。たとえば、Oracleゲートウェイのログを有効にするには：

a. Magic.iniファイルの[MAGIC_GATEWAYS] セクションで、MGDB13=gateway\mgOracle.dll を見つけてます。

b. 先頭のセミコロンを外してください：これは以下のようなイメージになります。

  2. Magic xpa Studioを起動します。これは、Magic xpiのインストール環境から利用できます。

  3. Magic xpa Studioで、以下のように選択します。 オプション > 設定 > ロギング

  4. ［ロギング］ダイアログボックスの［設定］タブでは、ゲートウェイをYesに設定します。そして、［外部ログファイル名］にファイル名を入力してください。残りのオプションがNo.に設定されることを確認してください。

  5. ［ロギング］ダイアログボックスの［DBMS］タブで、データベースのエントリ（例、Oracle)を開発者に設定してください。.

    注意： 次の3つのログレベルが利用できます：開発者、サポート、ユーザ。

  6. ［OK］をクリックして終了します。

  7. 次に、Magic.iniファイルで行われた変更内容を確認します。たとえば、以下のイメージのように、Oracleゲートウェイのログは開発者レベルで設定されています。そして、SQLiteはゲートウェイのログが設定されていません。.

    Magic.iniファイルの［MAGIC_LOGGING］セクションでは、ログファイルのパス設定を確認することができます。:


ソース管理

以下のトピックは、Magic xpiのソース管理について扱っています。

ソース管理を使用して作業する環境を設定するには

ソース管理によって管理されるプロジェクトを作成するには

既存のプロジェクトをソース管理データベースに追加するには

プロジェクトをソース管理から削除するには

ソース管理プロバイダの定義、変更を行うには

オブジェクトを以前のコピーにロールバックするには

変更内容をトラッキングするには

Magic xpi でソース管理製品としてTFSを使用する場合のビデオデモンストレーションを参照するには、ここをクリックしてください。


ソース管理を使用して作業する環境を設定するには

必要条件：

Magic xpi と一緒に以下をPCにインストールする必要があります。

  • TFSクライアント(クライアントか、Visual Studio2010以上をインストールしてください)などのソース管理クライアント

  • Visual Studio用のTeam Foundation Server MSSCCI Provider 32-bit プラグインのようなソース管理のためのAPI

ソース管理を使用して作業を開始するには：

  1. ［ツール］メニューから、［オプション］を選択してください。

  2. ［オプション］ダイアログボックスで、［ソース管理］をクリックしてください。

  3. ［ソース管理］の下の、［プラグインの選択］をクリックしてください。

  4. ［現在のソース管理プラグイン］フィールドで、使用したいソース管理製品を選択し、［OK］をクリックしてください。

  5. 最初に、Magic xpi でソース管理を使用する場合は、［ファイル］メニューから［ソース管理］を選択し、次に［<ソース管理プロバイダ>を起動］を選択してください。以下のイメージでは、このオプションは［Team Foundation Server MSSCCI Providerを起動］になっています。

  6. ソース管理クライアントで、チームエクスプローラを開き、［チームプロジェクトへの接続］アイコンをクリックしてください。

  7. ［追加］をクリックし、［Team Foundation Serverの追加］ダイアログボックスで、Team Foundation Serverの名前かURLを追加してください。

  8. ［OK］をクリックしてください。

  9. ［Team Foundation Serverへの接続］ダイアログボックスで、サーバとチームプロジェクトを選択し、［接続］をクリックしてください。

これで終了です。PC、ソース管理を使用して動作する用意ができているはずです。


ソース管理によって管理されるプロジェクトを作成するには

Magic xpi で新しいプロジェクトを作成する時、最初からソース管理を使用して管理させるように選択することができます。

ソース管理を使用して作業するには、PCのセットアップを行う必要があります。ソース管理を使用して作業する環境を設定するにはを参照してください。

ソース管理によって管理されるプロジェクトを作成するには：

  1. ［ファイル］メニューまたはツールバーボタンのどちらかを使用して、通常の方法で新規プロジェクトを作成してください。

  2. 通常の方法で［新規プロジェクト］ダイアログボックスを埋め、［ソース管理に追加］のチェックボックスをチェックしてください。

    .

  3. その時、使用したいソース管理データベースを定義するように促されます。以下のステップで表示される実際の画面とオプションは、使用するソース管理製品に依存していることに注意してください。

  4. ［OK］をクリックしてください。

  5. ［Choose Folder in Team Foundation Server］ダイアログボックスでフォルダで、ソース管理データベース内のプロジェクトの位置を選択してください。

  6. ［OK］をクリックしてプロジェクトをソース管理に追加します。

  7. プロジェクトがソース管理データベースに格納されると、それと関連するすべてのファイルとともにソース管理ツールに確認することができます。チームエクスプローラで、［Source Control］をクリックしてください。

  8. ソース管理を選択していないというメッセージが表示されたら、Visual Studio Team Foundation Server.を選択してください。

  9. ［OK］をクリックすると、チェックアウトした項目が表示されます。


既存のプロジェクトをソース管理データベースに追加するには

すでに開発中のプロジェクトがある場合、いつでもソース管理データベースにそれをチェックすることができます。

ソース管理を使用して作業するには、PCのセットアップを行う必要があります。ソース管理を使用して作業する環境を設定するにはを参照してください。

既存のプロジェクトをソース管理データベースに追加するには：

  1. ソース管理コントロールの配下に置きたいプロジェクトを開いてください。

  2. ［ファイル］メニューから、［ソース管理］、次に［ソース管理にソリューションを追加］を選択してください。

  3. その時、使用したいソース管理データベースを定義するように促されます。以下のステップで表示される実際の画面とオプションは、使用するソース管理製品に依存していることに注意してください。

  4. ［OK］をクリックしてください。

  5. ［Choose Folder in Team Foundation Server］ダイアログボックスでフォルダで、ソース管理データベース内のプロジェクトの位置を選択してください。

  6. ［OK］をクリックしてプロジェクトをソース管理に追加します。

  7. ［チェックイン - ソースファイル］は、Magic xpiがデフォルトでソース管理内で処理する全てのソースファイルが表示されます。チェックボックスのすべてを選択した状態のままにして、［チェックイン］ボタンをクリックしてください。これで、Magic xpiがデフォルトでのソースコントロールにおいて、扱う全てのソースファイルをチェックインします。後で、他の項目を追加することができます。

ifs.ini、Resources.xml、およびServices.xml などのMagic xpiのファイルは、ソース管理で処理されません。

これで項目はチェックインされ、使用したい項目があれば、最初にそれらをチェックアウトする必要があります。

  8. Magic xpiのツールボックスでは、全ての項目がロックされている状態(隣に [image] ロックアイコンが表示されます)で表示されます。


プロジェクトをソース管理から削除するには

特定のプロジェクトでソース管理を使用しないことを決めた場合、それをソース管理サーバから削除することができます。

以下のステップで表示される実際の画面とオプションは、使用するソース管理製品に依存していることに注意してください。

プロジェクトをソースコントロールから削除するには：

  1. ［ファイル］メニューから、［ソース管理］、そして［ソース管理の変更］を選択してください。

  2. ［ソース管理の変更］ダイアログボックスで、ソース管理から削除したいソリューションやプロジェクトを選択し、［解除］をクリックしてください。

  3. ［OK］をクリックして除去プロセスを完了します。

このよにプロジェクトを解除しても、そのコピーはまだソース管理サーバ上に残っています。再びソース管理の使用を開始する場合は、このコピーを削除する必要があります。


ソース管理プロバイダの定義、変更を行うには

特定のプロジェクトで使用されているソース管理製品は、Magic xpiの［オプション］ダイアログボックスに表示されています。他のソース管理製品をPCにインストールして、そちらに切り換えたい場合は、ソース管理製品を変更することもできます。

プロジェクトによって使用されるソース管理製品を定義したり、変更するには：

  1. ［ツール］メニューから、［オプション］を選択してください。

  2. ［オプション］ダイアログボックスで、［ソース管理］をクリックしてください。

  3. ［ソース管理］の配下で、［プラグインの選択］をクリックしてください。

［現在のソース管理プラグイン］フィールドで、プロジェクトが使用しているソース管理製品が表示されています。必要に応じて、ドロップダウンリストから異なるソース管理製品を選択し、［OK］をクリックしてください。


オブジェクトを以前のコピーにロールバックするには

コンテキストメニューの「ロールバック」は、オブジェクトを以前のバージョンに戻すことを意味しています。

オブジェクトの最新バージョンを取得するには：

  • オブジェクト上でパークし［ファイル］を選択してください。［ソース管理］から［最新バージョンの取得(再帰)］を選択します。

これで、そのオブジェクトのバージョンの中で以前にチェックインされたものを取得します。


変更内容をトラッキングするには

Magic xpi のアイテムでチェックアウト／チェックインするたびに、ソース管理ツールは、何が変更されたかを記録しています。それらの変更がなぜ発生したかについて短い注意書きを入力することができます(そして、そうするべきです)。

さて、どのような変更を行ったか、いつ、そしてどのような理由かを確認したい時、ソリューションエクスプローラの関連する項目に位置付けてください。そして、［ファイル］メニューから［ソース管理］そして［履歴表示］を選択してください。結果は、どのソース管理ツールを使用しているかに依存します。

項目のチェックインとチェックアウト

項目に対する処理を行いたい場合、［ファイル］メニューから［ソース管理］、そして［編集のためにチェックアウト］を選択します。コメントの入力が要求され、項目は編集用に開きます。

終了したら、［ファイル］メニューから［ソース管理］、そして［チェックイン］を選択します。再び、コメントの入力要求が表示されます。

これらのコメントは、オブジェクトの変更履歴に表示されます。

履歴

どのような変更を行ったか、いつ、そしてどのような理由かを確認したい場合は、［ファイル］メニューから［ソース管理］そして［履歴表示］を選択してください。

変更内容のリストが表示されます。TFSの場合は、2つの変更内容を選択することができ、右クリックで［コンペア］を選択します。

ここで、比較された２つのファイルが並列して表示されます。変更や追加、削除された行が色分けされます。


Space

以下のトピックは、Magic xpiのSpace機能について扱っています。

Magic xpi 4.xのためにUnicast Discoveryの設定を行うには

1台のPC上のサーバの複数インスタンスを実行するには

モニタから新規サーバインスタンスを追加するには

モニタからサーバインスタンスをシャットダウンするには


Magic xpi 4.xのためにUnicast Discoveryの設定を行うには

ユニキャストは、一つの開発PCで動作している時を含むすべての配備シナリオで使用しなければなりません。

ユニキャストは、ルックアップサービス（LU)が指定したPC上で位置付けられ、PCのホスト名またはIPアドレスを知っていることを意味します。このトピックは、Magic xpi 4.xで動作するためにユニキャストディスカバリの設定方法について説明しています。

ユニキャストディスカバリの設定は、手動でも自動的にでも行うことができます。

ルックアップ環境の手動設定

手動でユニキャストディスカバリの設定を行うには、以下に示すような、ファイル内で同じLookup GroupエントリとLookup Locatorエントリの定義を含むいくつかのファイルを必要とします。

  1. magicxpi-setenv.batファイル（以下のフォルダ内にあります：<Magic xpiのインストールフォルダ>\Runtime\Gigaspaces-xpa\bin)

a. MAGIC_MULTICAST_ENABLEDエントリをFalseに設定します。

b. LOOKUPLOCATORSエントリにルックアップサービス（LU)を実行するホストに設定してください。これらの値は、カンマで区切ってください。.

c. LOOKUPGROUPSのエントリの値はそのままにしてください。

  2. Magic.iniファイルの［MAGICXPI_GS］セクション

a. LookupLocatorsエントリをルックアップサービス（LU)を実行するホストに設定してください。

b. LookupLocatorsエントリがMagic.ini ファイルに存在しない場合、それを作成してください。

c. LookupGroupName のエントリの値はそのままにしてください。

  3. Magic.iniファイルと同じ設定（手順#2)で、Mgreq.iniファイル（<Magic xpiのインストールフォルダ>\Runtimeフォルダ上)を設定してください。

  4. Magic.iniファイルと同じ設定（手順#2)で、インターネットリクエスタのMgreq.iniファイル（scripts\configフォルダ上)を設定してください。

  5. Systinetは、Mgreq.iniファイル（<Magic xpiのインストールフォルダ>\Runtimeフォルダ上)から、設定設定を使用します。Mgreq.iniファイルの位置は-Dcom.magicsoftware.requester.conf という JVMプロパティによってコントロールされます。そして、それは%WASP_HOME%\bin\Install_GSA_service.batファイルと%WASP_HOME%\bin\Server.batファイルにあります。Install_GSA_service.batファイルを変更した場合、以下のステップを行わなければなりません。

a. Systinetサービスをアンインストールしてください。これを行うには、管理者としてコマンドプロンプト（CMD)を開いてください。そして、%WASP_HOME%\binに移動してください。次に、Uninstall_GSA_service.batファイルを実行してください。.

b. Systinetサービスをインストールしてください。これを行うには、管理者としてコマンドプロンプト（CMD)を開いてください。そして、%WASP_HOME%\binに移動してください。に、Install_GSA_service.batファイルを実行してください。

サービスのアンインストールやインストールを行うには、管理者権限が必要です。

グリッドサービスエージェント（GSA)を設定する

ユニキャストディスカバリ・モードで実行すると、LUSはLookupLocatorsエントリに定義されたPC上でローカルに開始されなければなりません。残りのインストール処理は、指定したLUSを示すための設定を行う必要があり、その結果、開始しないようにしてください。

  1. グリッドサービス・エージェント（GSA)がLUSを読み込むため、GSAを設定する必要があります。これは、magicxpi-gs-agent.batファイルで行います（以下のフォルダにあります：<Magic xpiのインストールフォルダ>\Runtime\Gigaspaces-xpa\bin）。LUSを開始するインストール処理を設定するには、magicxpi-gs-agent.batファイルに、以下の変更を行ってください。

a. Notepadでファイルを開いてください。

b. call gs-agent.batで開始される行をコメント化してください。行の先頭に Rem を追加することでコメントになります。

c. any machine with lus service から開始されるコメント行に位置付けてください。

d. call処理からテキストをコピーして、スクリプトの最後にペーストしてください。

行は次の通りでなければなりません： call gs-agent.bat gsa.gsc 2 gsa.global.gsm 1 gsa.lus 1 gsa.global.lus 0 gsa.mgdeploy 1

gsa.lus 1要素は、LUSが1インスタンスから開始されなければならず、GSAによってローカルで管理されなければならず、グリッド上でグローバルでないことを示しています。

gsa.global.lus 0要素は、グローバルなLUSが開始してはいけないことを示しています。

  2. LUSを使用するだけのようにインストール処理を設定するには、それを開始することなく、magicxpi-gs-agent.batファイルに以下の変更を行います。

a. Notepadでファイルを開いてください。

b. call gs-agent.batで開始される行をコメント化してください。行の先頭に Rem を追加することでコメントになります。

c. any machine without lus service: から開始されるコメント行に位置付けてください。

d. call処理からテキストをコピーして、スクリプトの最後にペーストしてください。

行は次の通りでなければなりません： call gs-agent.bat gsa.gsc 2 gsa.global.gsm 1 gsa.lus 0 gsa.global.lus 0 gsa.mgdeploy 1

gsa.lus 0要素は、ローカルのLUSが開始してはいけないことを示しています。 gsa.global.lus 0要素は、グローバルなLUSが開始してはいけないことを示しています。


1台のPC上のサーバの複数インスタンスを実行するには

1台のPC上のサーバで複数のインスタンスを実行するデモを参照する場合は、ここをクリックしてください。

Magic xpiサーバのプロセス(MagicxpiServer.exe)は、1 つのOSプロセスです。プロジェクトで処理される大量のデータがある場合、1つのプロセスがそのリソースを使い果たした場合に、複数のOSプロセスで処理を分割したら、より速くなるかもしれません。

1台のPC上のサーバで複数のインスタンスを実行するには：

  1. テキストエディタを使用してstart.xmlファイルを開いてください。このファイルは、<My Documents>\Magic\projects\<プロジェクト名>\<current project>フォルダにあります。

  2. start.xmlファイルでは、以下のイメージで示すように、一つのサーバインスタンスが定義されています。

  3. 次に、以下のイメージで示すように、このサーバインスタンスをコピーして、既存のインスタンスの下に新しいサーバインスタンスとして、ペーストしてください。

  4. 次に必要に応じて新しいサーバインスタンスのNumberOfWorkersとNumberOfInstancesの値を変更することができます。Triggers、SchedulerとAutostartの値をTrueまたはFalseに設定します。

  5. 必要な値を設定したら、start.xmlファイルを保存して閉じてください。

  6. プロジェクトを開始すると、モニタでサーバのインスタンス数を確認することができます。

異なるPC上でプロジェクトのサーバプロセスのための複数インスタンスを実行させることもできます。これによって、リニアなスケーラビリティと同様に、より多くのメモリとCPUが利用できるようになります。より多くのリソースをプロジェクトに追加することができて、唯一の共有リソースがネットワークのため（プロジェクトは異なるPC上で実行するため、すべてのエンジンは各PCのCPUとメモリを利用します）にこれが可能になります。


モニタから新規サーバインスタンスを追加するには

モニタから新しいサーバインスタンスを追加するデモを参照する場合は、ここをクリックしてください。

モニタから複製のサーバインスタンスを追加するには：

  1. プロジェクトを作成してビルドしてください。

  2. モニタを開いてプロジェクトを開始してください。

  3. モニタから、［サーバ］タブを開いてください。

  4. サーバの詳細がタブい表示されます。

  5. サーバエントリで右クリックし、コンテキストメニューから［新規インスタンスの実行］を選択してください。［新規サーバインスタンス］ダイアログボックが開きます。

  6. ［新規サーバインスタンス］ダイアログボックスのサーバ詳細は、既存サーバと同じです。必要な変更を行って、［OK］をクリックして新しいサーバインスタンスを作成してください。

  7. ［リフレッシュ］をクリックして、新しいサーバの詳細を確認してください。

モニタから異なる情報を持つサーバインスタンスを追加するには：

  1. プロジェクトを作成してビルドしてください。

  2. モニタを開いてプロジェクトを開始してください。

  3. モニタから、［サーバ］タブを開いてください。

  4. ［ナビゲーション］ペインのサーバエントリで右クリックし、コンテキストメニューから［サーバ追加］を選択してください。［新規サーバインスタンス］ダイアログボックが開きます。

  5. ［新規サーバインスタンス］ダイアログボックスで必要なサーバ詳細を入力し、［OK］をクリックしてください。

  6. ［リフレッシュ］をクリックして、新しいサーバの詳細を確認してください。


モニタからサーバインスタンスをシャットダウンするには

モニターからサーバインスタンスをシャットダウンするデモを参照するには、ここをクリックしてください。

モニタからサーバインスタンスをシャットダウンするには：

  1. プロジェクトを作成して、ビルドしてください。

  2. モニタを開いて、プロジェクトを開始してください。

  3. モニタから、このプロジェクトの［サーバ］タブを開いてください。

  4. 終了させたいサーバを選択してください。

  5. このサーバ上で右クリックし、コンテキストメニューから［シャットダウン］を選択してください。［シャットダウンパラメータ］ダイアログボックスが開きます。

  6. ［OK］をクリックして［シャットダウンパラメータス］ダイアログボックを閉じます。

  7. ［リフレッシュ］をクリックします。サーバのステータスは、STOP_REQUESTEDに変更されます。

  8. もう一度［リフレッシュ］をクリックします。サーバは停止します。

  9. Windowsのタスクマネージャーを開いて、［プロセス］タブを選択します。停止したサーバは、リストには表示されないはずです。

  10. モニターの［プロジェクトビュー］画面で、サーバのうちの1台が実行していないという警告メッセージが表示されます。これは、サーバを停止したからです。

  11. モニタを開いて、［ナビゲーション］ペインの［サーバ］タブを選択してください。

  12. たった今停止したサーバ上で右クリックし、コンテキストメニューから［エントリの消去］を選択してください。

  13. ［リフレッシュ］をクリックします。サーバがリストから消えます。

  14. モニタの［プロジェクトビュー］画面で、［リフレッシュ］をクリックしてください。リストからのシャットダウンされたサーバを削除したため、警告は表示されなくなります。


Webサービス

以下のトピックは、Magic xpiのWebサービスについて扱っています。

Webサービスのトリガを使用するには

WebサービスのコンシューマとしてMagic xpiを設定するには

統合Windows認証によって保護されているWebサービスを呼び出すには

Magic xpiの中のWeb サービスに基本認証を提供するには

WS-Securityで動作しているWebサービスプロバイダとして、Magic xpiを設定するには

HTTPコンポーネントを使用してWebサービス呼び出しを行うには

手動でSystinet Server for Javaをインストールするには

Magic xpiでWeb Services Over SSLのコンシューマとして使用するには

IIS7で証明書を処理して、SystinetにSOAPリクエストを送るには


Webサービスのトリガを使用するには

WebサービストリガからMagic xpiを起動させ、Magic xpiをWebサービスプロバイダとして機能させるには､以下のステップを行ってください。

  • インストールとセットアップ

  • Magic xpiプロジェクトのビルド

  • Web サービスユーティリティの定義

  • サービス操作の定義

  • Systinetへのサービスの作成と実行

  • リクエストを処理し結果を返すフローの定義

  • 以前定義済みのサービスを元にフローのWebサービストリガを定義

  • Webサービスカスタマを使用したトリガのテスト

トリガは､以下の処理を行います。

  1. Webサービスコンシューマからリクエストを受け取ります。

  2. XSDタイプをMagic xpiデータタイプにマッピングします。

  3. リクエストの発行者がフロー実行の権限を持つかどうかをチェックします。プロジェクトプロパティ内の［認証システム］プロパティがなしに設定されている場合は実行されません。

  4. リクエストの内容を含むXMLドキュメントを作成します。ドキュメントはメソッドに渡される引数の値に依存します（トリガ定義時に作成されるXMLスキーマによります）。

  5. フローを起動します。

  6. 戻り値として割り当てられたフロー変数の値をWebサービスコールに返します。ll.

フローの作成

フローは以下のことを行います。

  1. トリガによって作成され、引数の値を格納しているXMLドキュメントを受け取ります。これはデータマッパー経由で行われます。

  2. トリガの戻り値として割り当てられた変数を更新します。

関連トピック：

Webサービストリガを実装するには


Webサービストリガを実装するには

このトピックでは、Webサービス・ロバイダであるMagic xpiプロジェクトをビルドする方法について説明しています。このサービスは､Webサービスコンシューマ（クライアント）から二つの数値引数を受け取ります。Magic xpiがリクエストを受け取り、二つの数値の合計を計算し、それをコンシューマに返します。

  1. ［設定］ダイアログボックスの［リソース］セクションを開き、Systinet接続詳細を含んだ新しいWeb サービスサーバリソースを定義してください。デフォルトの接続値は以下の通りです。:

    • サーバーURL： http://localhost:6060

    • ユーザ名： admin

    • パスワード： changeit

  2. ［設定］ダイアログボックスの［サービス］セクションを開き、SumServiceという名前で、新しいWeb サービスサービスを定義してください。

  3. ［サービス設定］ダイアログボックスで、Web サービスプロバイダとして以前に作成されたWeb サービスサーバリソースを選択してください［Web サービス名］を入力し、パラメータの残りをデフォルト値のままにして、以下に表示されているように、［オペレーション］ボタンをクリックしてください。

  4. ［オペレーション］ダイアログボックスで、Addオペレーションとその引数を定義してください。［Add］をクリックして新しいオペレーションを作成し、Add という名前を指定します。

  5. ［オペレーション］ダイアログボックスの［引数］セクションで、、戻り値の名前を Sum に変更し、タイプを Numeric に変更してください。

  6. さらに二つの引数を追加し、それらをNum1とNum2と名付けてください。以下のように ［方向］は In、［データタイプ］は Numeric に設定します。

［OK］をクリックして、［設定］ダイアログボックスに戻ります。

  7. ［設定］ダイアログボックスで［管理］ボタンをクリックし、［管理］ダイアログボックスを開きます。

  8. ［管理］ダイアログボックスでMagic xpiサービスとSystinetの .jar ファイルを生成することができます。［Webサービスのデプロイ］チェックボックスをチェックすると、サービスはSystinetサーバに配備され、機能するようになります。

  9. ［生成］ボタンをクリックし新しいサービスを実行します。

サービスが正しく配備されると､以下のメッセージが表示されます。また何かおかしい場合は、詳細を含んだエラーメッセージが表示されます。

エラーメッセージが表示されたり、 Not Authorized 404 メッセージが発生した場合、Webサービスサーバ リソースの接続詳細が正しいか確認してください。また、同じユーザ名とパスワードでSystinetコンソールにログインしてみてください。

サービスの生成と配備に成功したら､その新しいサービスをフローで使用することができます。以下のステップを行なってください。

  1. ソリューションエクスプローラで、フローを挿入したいビジネスプロセスを選択してください。

  2. P［プロジェクト］メニューから、［Add］、そして［フロー］をクリックしてください。新しいフローをAddFlowと名付けてください。

  3. ソリューションエクスプローラの新しいフローの配下で、［フロー変数］をダブルクリックしてフロー変数リポジトリを開いてください。

変数名 | タイプ | 説明
F.num1 | Numeric | 最初の値
F.num2 | Numeric | 二番目の値
F.num | Numeric | 二つの値の合計

  3. Webサービスユーティリティをフロートリガエリアにドラッグします。

  4. Web サービスユーティリティの［プロパティ］ペインで、［サービス名］ドロップダウンリストからSumServiceを選択してください。

  5. Web サービスユーティリティをダブルクリックするか、右クリックしてコンテキストメニューから［構成］を選択してください。［Web サービストリガー構成］ダイアログボックスが開きます。

  6. ［Web サービストリガー構成］ダイアログボックスで、［オペレーション名］ドロップダウンリストからAddを選択してください。

  7. 戻り値の式で、F.num 変数を使用してください。

  8. Num1 と Num2のパラメターには以下のようにそれぞれ F.num1 と F.num2 変数を使用します。

  9. ［OK］をクリックしてコンポーネントの構成を終了します。

  10. 次にフローエリアにフローデータユーティリティをドラッグし、以下のようにf.sum式をF.num1+F.num2 の合計値で更新します。

結果としてフローは以下のように表示されます。

  11. ［ビルド］メニューから［ソリューションをビルド］を選択し配備宇用のフローを作成します。

サービスのテスト

新しいWebサービスをテストするには､以下のステップを実行します。

  1. Javaランタイムエンジンがインストールされているか システム変数をチェックして確認します。

  1. スタート > マイ コンピューター と選択し、右クリックして［プロパティ］を選択します。

  2. ［詳細設定］タブで［環境変数］を選択します。JAVA_HOME が一覧の中に表示されているはずです。

コマンドプロンプトで "%JAVA_HOME%\bin\java" -version コマンドを実行してみることも可能です。

どちらもうまくいかない場合、インストールに問題がある可能性があります。Magic xpiの再インストールで問題が解決するかもしれません。

  2. プロジェクトのスタートリンク､またはMagic xpiモニタからサーバのプロジェクトを起動し、正しく起動するか確認します。

  3. インターネットブラウザー（Internet Explorer 又は Mozila Firefox）を開き、SystinetコンソールURL (http://localhost:6060/admin/console)を開きます。以下の画面が見えるはずです。

Systineのtユーザ名とパスワードでログインします。

  4. Web Service Treeであなたのサービスを探し出し、以下のように［Invocation Console］ボタンをクリックします。

  5. テストしたいオペレーションを選択し、テストデータを入力し、以下のように［Perform call］ボタンをクリックします。

  6. コールが成功すると以下のように表示されます。

（XML Spayのような）外部ツールやWebサービススタジオやコードからサービスをテストすることもできます。


WebサービスのコンシューマとしてMagic xpiを設定するには

Magic xpi Web サービスコンシューマは､インターネット上の外部Webサービスプロバイダにアクセスすることができます。

以下のステップに従い、Countries Demo WebサービスにサービスのWSDL URLを使用してアクセスします。

  1. 新しいプロジェクトまたは新しいフローを作成します。

  2. 新しいWebサービスクライアントリソースを定義します。

  3. 以下の値を［WSDL URL］フィールドに入力します： http://mui.magicsoftware.com/eDevCountriesDemo/Service1.asmx?WSDL

  4. ［設定］をクリックしてWSDLをロードします。

  5. 以下のフロー変数を定義します。

名前 | タイプ | 書式 | デフォルト値
F.Result | BLOB |  |
F.OUT | BLOB |  |
F.Fault | BLOB |  |
F.CountrySymbol | Alpha | 2 | US

  6. データマッパユーティリティをフローエリアにドラッグします。

  7. Webサービスユーティリティをフローエリアのデータマッパステップにドラッグしてします。

  8. Web サービスユーティリティをダブルクリックするか、右クリックしてコンテキストメニューから［構成］を選択してください。［Web サービス構成］ダイアログボックスが開きます。

  9. GetCapitalCityという名前のオペレーションを選択します。

  10. ［GetCapitalCity］パラメタで F.OUTを、［GetCapitalCityResponse］パラメタでF.Result、［Fault］パラメタでF.Fault（画面左下）を選択します。［OK］をクリックします。

  11. データマッパステップをダブルクリックするか、右クリックしてコンテキストメニューから［構成］を選択してください。［データマッパー］ウィンドウが開きます。

  12. ツールボックスの［マッパスキーマ］セクションから、XMLタイプを［データマッパー］ウィンドウの送り先エリアにドラッグしてください。

  13. XML送り元の［プロパティ］ペインで、以下のXSDファイルエントリを選択してください：tempuri_org_.xsd.。このファイルは、 <Magic xpi>\Projects\<プロジェクト名>\resources\<サービス名> にあります。

  14. F.OUT フロー変数をデータ送り先として選択します。

  15. GetCapitalCity をXMLルートとして選択します。

  16. ［保存］をクリックしてください。

  17. ［データマッパー送り先］ペインで、ツリーを全て展開し cSymbol要素を公開してください。

  18. cSymbol要素をダブルクリックし、計算値としてF.CountrySymbolを選択してください。

  19. ［保存］をクリックしてください。

  20. メッセージ保存ユーティリティをフローにドラッグしてください。

  21. ［メッセージ］パラメータに WS call result を入力してください。

  22. ［BLOB］パラメータでは、F.Result 変数を選択してください。

  23. ［ファイル拡張子］パラメータに、xmlを入力してください。コンシューマフローは、自動起動に設定してください。

  24. プロジェクトを保存してください。プロジェクトは以下のよぅに表示されるはずです。

  25. デバッガまたはサーバを使用してフローを実行します。

  • Webサービスの起動に失敗するとFault（F.Fault）にマッピングされている変数に障害の応答が入力されます。

  • Webサービス呼出しからのXML結果は､データマッパーを使用して、リクエストで使用されたものと同じXSDで解析する必要があります。しかし、GetCapitalCityResponse ルートを使用してください。

  • 最初のデータマッパーステップの前にF.CountrySymbolに適切な値を入れる必要があります（デフォルトはUSです）。


統合Windows認証によって保護されているWebサービスを呼び出すには

このトピックは、統合Windows認証（IWA)を必要とするWebサービスのコンシューマを有効にするための環境設定を行う方法について説明しています。

IWAの概要は、以下を参照してください：http://en.wikipedia.org/wiki/Integrated_Windows_Authentication

セットアップ手順

  1. 以下を内容を含む jaasconfig.confという名前のテキストファイルを作成してください。

KrbCredentials {
com.sun.security.auth.module.Krb5LoginModule required debug=true
doNotPrompt=false
useTicketCache=true;
};

  2. Magic.iniファイルの[MAGIC_SPECIALS]セクションに、以下の3つのエントリを追加します。

a. OverrideSoapSpyForIntegratedAuthentication=Y

b. Java1.6Home = <Magic xpi installation>\Runtime\JRE

c. IntegratedAuthenticationJvmArgs= -Djava.security.auth.login.config=c:\temp\jaasconfig.conf -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

設定ファイルのパス（太字)は、PC上のファイルの位置と合っていなければなりません。

コメント

  • このセットアップの後でWebサービスを呼び出すと、現在のWindowsユーザーのWindowsログイン証明書が各呼び出し（Kerberosでエンコードされています)に追加されます。

  • 呼び出し側とプロバイダは、同じアクティブディレクトリを使用しなければなりません。

デバッグ

呼び出しを行うJavaプロキシサーバで、トレースを可能にするには、以下のように特殊フラグを修正してください：

[MAGIC_SPECIALS]

IntegratedAuthenticationJvmArgs=-Djava.security.auth.login.config=C:\temp\jaasconfig.conf -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true -Dcom.magicsoftware.ssj.integratedauth.debug=true

これで、WSの呼び出しで、%TEMP%フォルダのWsInteAuthXXXXXX .logという名前のログファイルが作成されます。

LAN上のプロキシサーバを使用する

プロキシサーバを使用した通信を可能にするためには、特殊フラグのうちの1つを以下のように変更する必要があります：

[MAGIC_SPECIALS]

IntegratedAuthenticationJvmArgs=-Dhttp.proxyHost=Proxy server IP -Dhttp.proxyPort=Proxy Server port -Djava.security.auth.login.config=jaasconfig.conf -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true


Magic xpiの中のWeb サービスに基本認証を提供するには

Magic xpi で、Web サービスに基本認証を提供するには、以下を行う必要があります。

Systinet のAdminコンソール：

  1. Web service を開き、［Set endpoint security］をクリックしてください。

  2. ［Authorization Required］チェックボックスを選択してください。

  3. ［Custom Security Providers］ボタンをクリックしてください。

  4. ［HttpBasic］チェックボックスを選択してください。

Magic xpi：

次の通りWeb サービスクライアントリソースを設定する必要があります。

  1. Web サービスクライアントリソースで、WSDL URLを入力し、［構成］ボタンをクリックしてください。

  2. ［汎用］タブで、［検証］ボタンをクリックしてください。

  3. ［セキュリティ］タブで、［セキュリティレベル］をTranspaort、［認証タイプ］をBASICに変更してください。

  4. ［OK］をクリックしてください。

  5. Web サービスステップを追加し、［Web サービス構成］で、［Identity］ボタンをクリックしてください。

  6. ユーザ名とパスワード(adminとchangeitなど)を入力してください。

注意： Systinetにユーザと役割を追加することができます。password という 名前のプロパティをSystinetに追加するために必要なパスワードを定義して、Web サービスを呼び出す許可を与える場合は、以下のようにしてください。

  1. SystinetのPermissions overview で、［ Add permission ］ボタンをクリックしてください。

  2. ［Permission type］フィールドで、org.systinet.security.perm.WSInvokePermission を選択してください。


WS-Securityで動作しているWebサービスプロバイダとして、Magic xpiを設定するには

WS-Securityは、Webサービスのリクエストと応答の両方でデジタル署名される高水準のセキュリティプロトコルです。

これは、他の「ハンドシシェイク」のセキュリティプロトコル（SSL)とは異なり、クライアントとサーバで相互で信用するには十分でないことを意味します。各リクエストと応答は、証明書キーを使用して署名されなければなりません。

パート1ーエイリアスと証明書の設定

上記の説明に基づき、最初にプロバイダとコンシューマの間で証明書を渡す必要があります。

応答にデジタル署名するために使用することができる証明書を読み込む必要があります。このようにするには、以下の手順に従ってください。

  1. Systinet Pstoreで新しいエイリアスを作成します（この例では：WsSecurityAlias)。

  2. 使用する必要がある証明書を読み込むか、証明書のリクエストを作成します。次に、リクエストを証明書“generator”に送信します。

  3. 一旦、証明書を受け取ると、作成した新しいエイリアスを使用して読み込ませます。

新しい証明書を読む方法については、ここを参照してください。

証明書を受け取り、Pstoreのエイリアス（WsSecurityAlias)に読み込むと、WS-Securityプロトコルを使用するためにWebサービスを設定する必要があります。

パート2 – （Systinetコンソールから)WS-Securityプロトコルを設定する

WS-Securityプロトコルを設定するために、以下の手順に従ってください。

  1. Magic xpiでWebサービスのサービスを作成して、それを配備してください。

  2. Systinetコンソールから、作成されたWebサービスを見つけ、以下の設定を行います：

a. ［Set endpoint security］ をクリックして、次に ［Custom Security Providers］をクリックします。

b. ［WS-Security］チェックボックスを選択し［Properties］.をクリックします。

c. ［Custom Settings］をクリックします。

  3. 新しいセクションが"WS-Security configuration of message"というページに追加されます。ここから、新しいトークンと証明書を以下のように設定します：

a. ［Create Configuration］.をクリックします。

b. ［Add Token］ をクリックして、［ Add Signature］に移ります。

  4. セキュリティトークンのために、証明書“generator”によって必要される公開鍵基盤（PKI)を設定する必要があります。たとえば、X.509 v3デジタル証明書の構造については、以下の設定を使用してください。

a. Security tokens のパラメータに以下を入力してください。

    1. order: 100

    2. type: X509v3

    3. wsu:Id: SigningSecurityToken-1

    4. methods: Webサービスのサービスメソッドの各メソッド名

b. signaturesでのパラメータ

    1. token Id: SigningSecurityToken-1

    2. mode: reference

    3. order:


HTTPコンポーネントを使用してWebサービス呼び出しを行うには

時々、Webサービス・コンポーネントの代わりにHTTPコンポーネントを使用してWebサービス呼び出しを送る要求や必要があるかもしれません。

このトピックでは、以下の通りにHTTPステップ（WebサービスのコンシューマとしてMagic xpiを設定するには の例を参照)を設定する方法について説明しています。

  1. HTTPリソース.を作成してください。

  2. HTTPコンポーネントをフローエリアにドラッグ&ドロップして、Postメソッドを設定してください。

  3. HTTPリクエストのボディの内容をを参照するには、XMLSpyやSoapUIまたはサードパーティのツールを使用して、リクエストをトレースしてください。そして、そこからHTTPヘッダを取得してください。

  4. 送信されたパラメータがこの例で何であるのか（リクエスト・ヘッダとデータBLOBは、以下の画面を参照してください)について知るために、全部のヘッダとボディは、SoapSpyからそのままコピーされます。

WSDLがMagic xpiで読み込むことができない場合、SoapSpyを使用することはできません。呼び出しをトレースするためにSoapUIとSOAPツールキットを使用することができます。


手動でSystinet Server for Javaをインストールするには

Magic xpiのインストーラが設定上の問題でSystinetをインストールすることがで場合があります。このトピックでは、Systinetをインストールする上での必要条件と検証方法とインストレーション方法について説明します。

必要条件

  1. 環境変数として WASP_HOME が定義されないことを確認してください。
    SET WASP_HOME コマンドを使用することで確認できます。

  2. 環境変数が存在する場合は、以下のようにして環境変数ダイアログを開き、WASP_HOME を選択したら、［削除］をクリックしてください。

    コンピュータ アイコンで右クリック > プロパティ > システム詳細設定 > 詳細設定タブ > 環境変数

  3. PCでJavaが正しくインストールされていることを確認してください。SystinetサーバーはJavaを利用しており、Ver1.6以上を必要とします。これは、以下に示すように、コマンドプロンプトで Java -versionを実行することで確認できます。

    Java -versionコマンドは、PATH環境変数で定義されたパスで位置づけられたjava.exeファイルのインストール・バージョンを表示します。

たとえば、Java.exeファイルが、PATH環境変数 …..; F: \magic\ Java\bin;…… によって利用できるように設定されます。

これは、Java.exeファイルが以下のファイル・パスを指定していることを意味します。 F：\magic\ Java\bin;……。
以下のどちらかがインストール可能です。

  1. JRE …… Magic xpiの実行エンジンで必要なJava実行時環境です。

JDK ……クライアント・モジュールまたはプロバイダ・モジュールを作成するうえで必要な Javaの開発キットです。JDKがインストールされている場合は、JREも含まれます。JDKは、開発環境では必須になります。

JDK/JREのインストーラーは、以下からダウンロードすることができます： http://java.sun.com/javase/downloads/index.jsp

Javaのインストーラは、Magic xpiのインストールCDにもバンドルされています。

  4. 環境変数 JAVA_HOMEが Java -version コマンドで確認したバージョンと合っていることを確認してください。

  5. Java -versionコマンドによって特定されたjava.exeファイルの位置を特定するには、where java コマンドを使用します。最初の結果は、PCのPATH環境変数にるjava.exeファイルの位置が返ります。

インストール方法

  1. 以下に示すように、Webサービス・フレームワークを選択しないで、Magic xpiをインストールしてください。このコンポーネントはデフォルトで選択されるので、チェックボックスをクリアにする必要があります。

  2. 以下のコマンドを入力することによって、手動でSystinetをインストールしてください。java -jar wso2-soa-enablement-server-java-6.6.jar.

    wso2-soa-enablement-server-java-6.6.jarファイルは、Magic xpiのインストールCD内にあります。

    このファイルは、Systinet 6.6のインストーラです。
    旧バージョンのファイル名は、 systinet-server-java-6.5.2.jar.です。

    Systinet 6.6 は、Java Ver1.6以上を使用します。

  3. S以下に示すように、Install Security Supportオプションを選択してください。

    インストレーションのステップ#3の後、Nextをクリックしてデフォルト指定を使用してください。

  4. 以下のようにして環境変数ダイアログを開き、WASP_HOME にSystinetのインストールパスを定義してください。

    コンピュータ アイコンで右クリック > プロパティ > システム詳細設定 > 詳細設定タブ > 環境変数

    ユーザ環境変数でなく、システム環境変数に定義してください。

    以下のイメージは、予想される結果を表示しています（PCを再起動する必要があるかもしれません)。

  5. 以下のJARファイルを%WASP_HOME%\libディレクトリ内にコピーしてください。

  6. <Magic xpi のインストールフォルダ>\Runtime\Magic Xpa\Support\MgSSJ.jar

  7. <Magic xpi のインストールフォルダ>\Runtime\Magic Xpa\Support\MgRequester.jar

  8. <Magic xpi のインストールフォルダ>\Runtime\Magic xpa\Support\saaj_utils.jar

  9. <Magic xpi のインストールフォルダ>\Runtime\java\lib\uniRequester.jar

  10. <Magic xpi のインストールフォルダ>\Runtime\java\lib\mgxpi-commons.jar

  6. log4j.configファイル（SSJ\config)に以下の行を追加してください。

log4j.category.magicxpi=INFO,magicFile

log4j.additivity.magicxpi=false

# file appender

log4j.appender.magicFile=org.apache.log4j.RollingFileAppender

log4j.appender.magicFile.File=${wasp.location}/log/magic.log

log4j.appender.magicFile.MaxFileSize=1MB

log4j.appender.magicFile.MaxBackupIndex=5

log4j.appender.magicFile.layout=org.apache.log4j.PatternLayout

log4j.appender.magicFile.layout.ConversionPattern=%p %d [%c] %m%n

  7. log4j.jarファイル（%WASP_HOME%\lib）を以下のようにしてMagic xpiの同一ファイルで置き換えてください。:

a. <Magic xpiのインストールフォルダ>\java\lib\log4j-1.2.16.jarを%WASP_HOME%\libディレクトリにコピーしてください。

b. %WASP_HOME%\libから元のlog4j.jarファイルを削除してください。

c. %WASP_HOME%\libにあるlog4j.jar を、log4j-1.2.16.jarにリネームしてください。

  8. %WASP_HOME%\libで、GigaSpacesという名前の新しいフォルダを作成してください。そして、ここに以下のファイルをコピーしてください。:

    • <Magic xpiのインストールフォルダ>\java\lib\mgxpi-gs.jar

    • <Magic xpiのインストールフォルダ>\GigaSpaces\lib\required (すべてのファイルをこのフォルダからコピーします)

  9. %WASP_HOME%\bin\Server.batファイルを編集してください。これは、Webサービスを提供する上で必要です。以下の2つの変更が必要です。:

a. WASP_CLASSPATH を以下のように設定します。
set WASP_CLASSPATH=%WASP_CLASSPATH%;%WASP_HOME%\lib\uniSSJ.jar;%WASP_HOME%\lib\uniRequester.jar;%WASP_HOME%\lib\saaj_utils.jar;%WASP_HOME%\lib\mgxpi-commons.jar;%WASP_HOME%\lib\GigaSpaces\com.springsource.org.aopalliance-1.0.0.jar;%WASP_HOME%\lib\GigaSpaces\commons-logging.jar;%WASP_HOME%\lib\GigaSpaces\dsl.jar;%WASP_HOME%\lib\GigaSpaces\gs-openspaces.jar;%WASP_HOME%\lib\GigaSpaces\gs-runtime.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aop-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.asm-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aspects-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.core-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.expression-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.transaction-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\mgxpi-gs.jar;

以下のように、CALLから始まり、SET PARAMS から始まる行のの後に配置します。
CALL <SSJ installation>\bin\env.bat
Set WASP_CLASSPATH=.......
SET PARAMS=%*

b. %JAVA_CMD%セクションでは、次を追加してください。 "-Dcom.magicsoftware.xpi.SpaceName=MAGIC_SPACE " "-Dcom.magicsoftware.xpi.LookUpGroupName=<LookupGroupName>" “-Dcom.magicsoftware.xpi.LookUpLocators = <host:port>,<host:port>”

  8. Systinetサーバのサービスを作成してください。

    このセクションは、必須でありません。サーバは、以下を入力することで呼び出すことができます。

    %wasp_home%\bin\StartService.bat

    %WASP_HOME%\bin\InstallService.batを以下のように修正してください。

a. CALL env.bat の行を以下の行に差し替えてください。

set JAVA_HOME=The JAVA_HOME value

set WASP_HOME=The WASP_HOME value

set JAVA_CMD= The JAVA_HOME value\bin\java

set BUILD_FILE=build-default.xml

  1. b. ステップ#9で定義した場合と同CLASSPATHを指すたように、Djava.class.pathを変更してください。

  2. "-Djava.class.path=%WASP_HOME%\lib\wasp.jar;%WASP_HOME%\lib\uniSSJ.jar;%WASP_HOME%\lib\uniRequester.jar;%WASP_HOME%\lib\saaj_utils.jar;%WASP_HOME%\lib\mgxpi-commons.jar;%WASP_HOME%\lib\GigaSpaces\com.springsource.org.aopalliance-1.0.0.jar;%WASP_HOME%\lib\GigaSpaces\commons-logging.jar;%WASP_HOME%\lib\GigaSpaces\dsl.jar;%WASP_HOME%\lib\GigaSpaces\gs-openspaces.jar;%WASP_HOME%\lib\GigaSpaces\gs-runtime.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aop-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.asm-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aspects-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.core-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.expression-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.transaction-3.2.4.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\mgxpi-gs.jar;%CLASSPATH%;"

  1. c. 以下の行（正しいSpace関連の環境で)を追加してください。

Dcom.magicsoftware.xpi.SpaceName=MAGIC_SPACE " "-

Dcom.magicsoftware.xpi.LookUpGroupName=<LookupGroupName>" “-

Dcom.magicsoftware.xpi.LookUpLocators = <host:port>,<host:port>”"-

直後に

"-Dlog4j.configuration=%WASP_HOME%\conf\log4j_NTservice.config"

  1. d.スクリプトを保存して、実行してください（set NT_SERVICE_NAME=…の行を変更することでサービス名を変えることができます)。

インストールのテスト

  1. プロバイダ側のテスト

  • Magic xpiでWebサービスを作成し配備します。

  • 以下に示すように、Systinet ServerのWeb Invocation Consoleから、Webサービスを呼び出してください。

  2. コンシューマ側のテスト

  • ［設定］ダイアログボックスの［サービス］セクションの中にサービスをロードしてください。

  • Web サービスを呼び出すプログラムを実行してください。


Magic xpiでWeb サービス Over SSLのコンシューマとして使用するには

このトピックでは、SSL経由のWebサービスをプロバイダやコンシューマとして使用するためにMagic xpiとSystinetを設定する方法について説明しています。さらに、SSLサーバの証明書の変更が記述される追加されたSSL関連の設定方法も含んでいます。

セキュアな方法で動作する時だけ、いくつかのWebサービスは利用できます。最も一般的なプロトコルのうちの1つが、SSL（Secure Socket Layer)です。例えば、次のようなにURLに 's' が付加されていることで識別できます。https://www.example_url.com

このトピックは、そのようなWebサービスをプロバイダやコンシューマとするための、Magic xpiとSystinet Serverでの設定内容について説明しています。

Magic xpiは、いくつかの設定でSSLで動作することをサポートします。

  • サーバは信頼されたサーバでなければならないが、クライアント認証を必要としない場合

  • 証明書を使用して、サーバがクライアントを信頼し、その引き替えに クライアントがサーバを信頼するような相互認証を使用する場合。

このトピックは、Systinetのインストールによって提供されるデフォルト証明書を他の証明書に変更するために必要な方法を説明しています。

Webサービス over SSL のコンシューマにする：

Webサービス over SSLのコンシューマの場合、Webサービス・ベンダによって提供される証明書を使用するためにSystinet Serverを設定する必要があります。

場合によっては、正しい証明書が使用されていることを確実にするために、Magic xpiと関連するリソースで特定の環境が必要となります。

相互認証のためにクライアント証明書を設定する：

クライアント証明書が提供された場合、クライアント証明書をSystinetに読み込ませるために以下のステップが必要です。

WSDLを読み込むときは、クライアント証明書が使用されないため、WSDLのローカルコピーを保存して、そこから動作することが推奨されます。

  1. コマンドプロンプトで以下のコマンドを実行して、PStoreツールを開いてください。 %WASP_HOME%\bin\PStoreTool.bat --gui

  2. PStoreメニューを使用して、 %WASP_HOME%\conf\clientconf.xml を選択することで、クライアント設定ファイルを開きます。

  3. 新しいエイリアスを入力するために、Key Storeを使用します。

  4. 新しいエイリアスに名前（Magic xpiで使用するため)を設定し、Load PKCS#12をクリックします。クライアント証明書（.pfxまたは.cerファイル)とそのパスワードを指定してください。

  5. このエイリアス名とパスワードは、Webサービスのステップで［Show Identity details］画面で使用します。

サーバ証明書を設定する：

ベンダがすべてのクライアントでサーバを”信頼”させる必要がある場合、この方法が必要です。

  1. Webブラウザ（相互に認証されたWebサービスは、この段階でベンダのs証明書を必要とします)を使用して、WSDL URLにアクセスしてください。

  2. セキュリティ・アイコンを見つけ、それをクリックすると、証明書が表示されます。

  3. ［証明書を見る］をクリックして、［詳細］タブに移動します。

  4. ［Copy to File］ (デフォルトを使用)をクリックして証明書をファイルで保存してください。

  5. コマンド%WASP_HOME%\bin\PStoreTool.bat --gui を使用してクライアント側のPStoreツールを開きます。

  6. ［PStore］メニューをクリックしてOpen from fileを選択します。

  7. SSJ\Confディレクトリ内の clientConf.xmlファイルを開いてください。

  8. ［Key Store］メニューから、Import Aliasを選択します。

  9. Type を TRUSTED_CERTIFICATE_ENTRY に変更し、［Load Certificate Chain］ をクリックします。先ほど保存した *.cer ファイルを指定します。

  10. ［OK］をクリックします。これで、サーバはクライアントに"信頼"されます。

Magic xpiでクライアント証明書を設定する：

Magic xpi側でWeb サービス over SSL のコンシューマとなるために必要な設定は、以下の通りです。

  1. Webサービスのステップでは、関連するIDの詳細を送るために、［Identity］ボタンを使用してください。必要なパラメータは、ユーザ名パラメータとしてPstoreエイリアスとパスワードパラメータとして証明書のパスワードです。クライアント証明書が使用される場合は常に必要です。

  2. ［設定］ダイアログボックスの［リソース］セクションで、サービスのWeb サービスクライアント定義に位置付けてください。［構成］画面で、［セキュリティ］タブを選択してください。［セキュリティレベル］をTranspaort、［認証タイプ］をSSLに変更してください。これらの設定がクライアント証明書を使用する時に必要になります。

SSLサーバ証明書を変更するには：

デフォルトのSystinet Server証明書は、machineName.Domain として発行されます。

これは他のどの証明書にも変更することが可能で、以下の処理を実行する必要があります。

  1. %WASP_HOME%\bin\PStoreTool.bat --gui コマンドを使用して PStoreツールを開いてください。

  2. PStore → Open Remoteを使用してください（利用可能なをサーバが要求されます)。

  3. ［Key Store］メニューから新規の Identityを作成してください。

  4. 名前とパスワードを入力してください。

  5. ［Add Key Store Entry］画面で、［Distinguished Name］ボタンをクリックして、必要な情報を追加してください。

  6. この新しいID上で右クリックしコンテキストメニューから［Certificate request］を選択してください。PCから証明書要求が発行されることは、極めて重要です。

  7. 証明書リクエストをTXTファイルとして保存して、CA（認証局)を使用している証明書を作成してください。

  8. 新しいID上でパークしているとき、［Load Certificate］ボタンをクリックして、新しいIDに新しい証明書を読み込ませてください。

  9. CA（認証局)によって作成されるファイル（*.cer)を選択してください。

  10. ［Apply Changes］ボタンをクリックすることで確認してください（識別パスワードが必要です)。

  11. 証明書の発行者が信頼されていることを確認してください。下の図のように証明書の発行者がDCTESTCAであることに注意してください。

    証明書の発行者が “信用される”ようにするために必要なステップは、以下の通りです。

a. （上記に表示されているような)証明書を開いて、発行者行の上でパークしてください。［View Certificate］ボタンが、利用できるようにならなければなりません。これをクリックして、2番目の証明書を開いてください。

b. ［Detail］タブを開き、［Copy to file］をクリックして *.cerファイルを保存してください。

c. PStore でKeyStore → Import alias を選択して、Type を TRUSTED_CERTIFICATE_ENTRY に変更します。［Load Certificate Chain］ボタンをクリックして、.cerファイルを選択します。

d. SSJ\ConfディレクトリのServerConf.xmlファイルを開いてください。

e. エイリアスとして新しいIDを、パスワードとしての新しいIDのパスワードを指定することで、［httpsPreferences］ セクションを変更してください。:

<httpsPreferences name="https">
<alias>NewTechNoteUser</alias>
<defaultTimeout>40000</defaultTimeout>
<maxIdleTime>500</maxIdleTime>
<maxReadTime>40000</maxReadTime>
<maxThreads>255</maxThreads>
<minThreads>5</minThreads>
<needsClientAuth>false</needsClientAuth>
<nonProxyHosts>localhost</nonProxyHosts>
<password>TechPass</password>
<port>6443</port>
</httpsPreferences>

f. Systinetを再起動して、管理コンソールを開いてください。ログオンする際、最初のログイン情報（Admin、changeit)を使用してください。


IIS7で証明書を処理して、SystinetにSOAPリクエストを送るには

このトピックは、SystinetにSOAPリクエストを送るためにIIS7のルーティング機能を使用する方法を説明しています。そして、2048ビットのキー長の証明書の使用を有効にしています。

PStoreツールは、1024バイトの証明キーを作成することができます。その結果、2048バイト証明書を使用したい場合、SystinetにSOAPリクエストを送る必要があります。

IISのこの新しいアドオン（http://www.iis.net/downloads/microsoft/application-request-routing）を使用することでリクエストをルーティングすることができます。

以下のサイトでこれに関する詳細な情報を確認することができます。

http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/define-and-configure-an-application-request-routing-server-farm

http://www.iis.net/learn/extensions/installing-application-request-routing-(arr)/install-application-request-routing

http://blogs.iis.net/wonyoo/archive/2011/04/20/how-to-install-application-request-routing-arr-2-5-without-web-platform-installer-webpi.aspx

http://aaronwalrath.wordpress.com/2010/05/28/installing-a-certificate-in-iis-7-5-from-a-public-certificate-authority/

ARRv3.0.exeアドオンをインストールしたら、IIS7のIISマネージャーを起動して以下のステップに従ってください。

  1. IISマネージャーの［サーバ］ノードを選択してください（左側のツリービュー上のサーバ名)。

  2. ［Application Request Routing Cache］アイコンをダブルクリックしてください。

  3. 右側の［操作］パネルの、［Server Proxy Settings］をクリックしてください。

  4. ［Enable proxy］のチェックボックスを選択します。

  5. ［Use URL Rewrite to inspect incoming requests］チェックボックスを選択してください。

  6. ［Reverse proxy］フィールドに、リクエストを送りたいサーバを入力してください。例、Systinetが10.1.12.115:6060 （または、vmware7util06.frmagic：6060)のアドレスで動作している場合、図のように入力してください。

  7. SOAP UIで、エンドポイントをIP（またはホスト名)に変更してください。例：10.1.12.115（または、vmware7util06)+ WSDL内のエンドポイントの残り。

アクセスするURLは、以下のように変更する必要があります。

変更前："http: //10.1.12.115: 6060/MySolution/" (または http://vmware7util06.frmagic: 6060/MySolution/)

変更後："http: //10.1.12.115/MySolution/" (または http://vmware7util06.frmagic/MySolution/)

これで、サーバのIPアドレス（またはホスト名)とポートは置き変えられます。

通常、Webサービスの仕様が頻繁に変わることはないため、WebサービスのWSDLも頻繁に変更されることはありません。

その結果、先に述べたようにエンドポイントの手動での変更に対応するには、、結局IISの任意の仮想ディレクトリに置いたファイルにSystinetのWSDLを保存するようにみなすことができ、IISのURLに基づくエンドポイントを手動で変更することができます。


テクニカルノート

テクニカルノートは、Magic xpiの機能と統合プロジェクトにおける使用方法に関する技術情報を提供します。このセクションは定期的に更新されます。

テクニカルノートは、以下の内容で構成されています。

コンポーネント

設定

データベース

Magic xpi サーバ

ライセンス


コンポーネント

以下のトピックは、Magic xpiのコンポーネントについて扱っています。

Javaクラスコネクタ


Javaクラスコネクタ

目的

このテクニカルノートは、Javaクラスコネクタユーティリティの使い方を説明します。

説明

Javaクラスコネクタユーティリティは、Javaクラスあるいはオブジェクトにアクセスすることを可能にします。Javaクラスオブジェクトへのアクセスはインスタンスメソッド、インスタンス変数、スタティックメソッド、スタティック変数等、必要なオブジェクトを選択し、それらからの応答を受け取ります。これによりフロー内のコンポーネントがJavaクラスにアクセスすることが可能になります。

例

この例ではjava.util.Vectorクラスを使用して、Dynamic Arrayを作成する方法を説明します。

  1. Java クラスコネクタユーティリティをフローにドラッグします。

  2. ［構成］をクリックし、構成ダイアログボックスを開きます。

  3. ［Class name］に java.util.Vectorと入力します。

  4. ［Constructor］ドロップダウンリストで ()Vを選択し、［選択］をクリックします。

新しいオブジェクトを作成するためにConstructorのパラメータを設定する必要はありません。

  5. ［Object references］の隣の [image] をクリックし、変数リストを開きます。オブジェクトを保持する変数を選択し､［選択］をクリックします。

  6. ［メソッド］をクリックして、［メソッド選択］画面を開きます。

  7. ［新規］をクリックし、ドロップダウンリストから、メソッドとしてIM_setSize(I)Vを選択してください。このメソッドは、ベクトルサイズを設定します。

  8. ［メソッドパラメータ］セクションで、ベクトルのサイズを設定するために、数値を入力してください。

  9. 再び［新規］をクリックして別の方メソッドを追します。

  10. ドロップダウンリストから、メソッドとしてIM_size()Iを選択してください。

  11. このメソッドはベクトルサイズを返します。

  12. ［戻り値］の隣の [image] をクリックしてメソッドの戻り値を保持する変数を選択してください。

  13. ［OK］を3回クリックして構成を完了してください。

  14. メッセージ保存ユーティリティをフローにドラッグしてください。

  15. ［メッセージ］フィールドの右側の [image] をクリックして式エディタを開いてください。

  16. 2番目のメソッドの戻り値を入力して、それを文字列に変換するために、Str関数を使用してください。

  17. プロジェクトを実行してください。


設定

以下のトピックは、Magic xpiの環境設定について扱っています。

Magic xpiとIIS 7を使用して実行する

Magic.ini とIfs.ini ファイルの役割

WindowsのサービスとしてSystinet Serverを追加する


Magic xpiとIIS 7を使用して実行する

以下のステップは、Magic xpiで利用するためにIIS 7（indows 2008とWindows 7以降）の設定方法について説明しています。

Magic xpiとIIS7を使用するには、PCにインストールされた.NET Framework 4.0のフル・バージョンが必要です。

ステップ1

IIS 7をインストールする際、「CGI / ISAPI」を選択してください。選択されていない場合は、以下のようにして選択する必要があります。

  1. コントロールパネルを開いてください。

  2. ［プログラムと機能］のウィンドウを開いてください。

  3. ウィンドウの左側の［Windowsの機能の有効化または無効化］］オプションを選択してください。

  4. ［ウィンドウの機能］ダイアログボックスで、［インターネットインフォメーションサービス > World Wide Webサービス > アプリケーション開発機能 ］を選択し、CGIとISAPI のオプションを選択してください。

ステップ2

Magic xpiで必要なエイリアスを設定した後、以下のようにします。

  1. IISマネージャ（［スタート］ > ［ファイル名を指定して実行］メニューを選択して inetmgrを入力して実行するか、［スタート］ > ［コンピュータ名］上で右クリックを行い、［管理］を選択し、 ［サービスとアプリケーション］ > ［インターネットインフォメーションサービス（IIS）マネージャー］を選択します）を起動します。

  2. ［接続］ペインのルート（コンピュータ名)に移動します。

  3. ［ハンドラーマッピング］オプションをダブルクリックします。

  4. 無効リストに、CGI-exeとISAPI-dllが表示されています。

  5. ここで右クリックして､［機能のアクセス許可の編集］をクリックします。

  6. ［機能のアクセス許可の編集］ダイアログボックスで、［実行］をチェックします。CGIとISAPIオプションが、［有効］リストに追加されます。

  7. IISを再起動してMagic xpiを読み込みます。

関連トピック：

サーバのトラブルシューティング


Magic.ini とIfs.ini ファイルの役割

目的

このテクニカルノートは、Magic xpiのMagic.iniとifs.iniファイルの役割を説明しています。

説明

Magic xpiインストールには、サーバ用の ifs.iniファイルだけでなく、主要な構成ファイルであるMagic.iniファイルの両方が含まれています。

Magic.iniファイルは､Magic xpiの変数構成情報が含まれていて、外部テキストエディタで編集できるフリー形式のテキストファイルです。Magic xpiを起動するには、Magic.iniファイルが<Magic xpiインストール>\Runtime\Magic xpaフォルダになくてはなりません。

ほとんどの設定は、Magic xpi スタジオで行うことができ、それによりMagic.iniファイルが自動的に更新されます。また、プログラムメニューから Magic xpi x.x > 設定ファイル > Magic.ini を選択することで、Magic.iniファイルにアクセスすることもできます。

ifs.iniファイルは、主要なMagic.iniファイに定義されているものと同じセクションやプロパティがいくつか含まれています。それがMagic.iniファイルの情報と異なるように、ifs.iniファイルで設定を変更すると、Magic.iniファイルの情報はifs.iniファイルの構成に従って上書きされて、Magic xpiは動作します。

スタジオ と ランタイム において、ifs.iniファイルは常にMagic.iniファイルに優先されます。 Since version: 4.5

Magic xpiの起動のたびにMagic.iniファイルが読み込まれ、その時に設定の変更が反映されます。Magic xpiモジュールが起動されるたびにIfs.iniファイルが読み込まれます。.iniファイルの［MAGIC］セクションは､Magic xpiのベースとなっているMagic xpa エンジンによって使用されています。

重要

  • 一部同一のセクションがありますが、モジュール.iniファイルはMagic.iniファイルとは異なる構造をしています。

  • セミコロン（;）で開始される行は､Magic xpi起動時に無視されます。

  • ifs.iniファイルで「 \ 」記号を使用しなければならない場所では、「 \\ 」のように一重ではなく二重で指定してください。

  • Magic.iniファイル内では、途中で改行したい場合、「+」記号を使用してください。

  • 環境変数の値が複数のカンマ（,）を含んでいる場合は、エンジンは最初のカンマより前の部分をその値として認識します。もし値全体がカンマを含む必要がある場合、環境変数の値の先頭にアスタリスク（*）を追加してください。この場合、「\」がある場合は二重にしないでください。

例えば、もし値が下記の場合:

[MAGIC_LOGICAL_NAMES]MyHost=SERVER1,SERVER2

値は次のように記述してください。

[MAGIC_LOGICAL_NAMES]MyHost=*SERVER1,SERVER2

追加情報

Magic.iniファイルは､異なるセクションに分かれており、それぞれのセクションは関連した設定のグループが含まれています。

以下はMagic.iniファイルの重要なセクションです。

テーマ | セクション | 説明
動作環境 | [MAGIC_ENV] | グローバルな環境パラメータ
DBMS | [MAGIC_DBMS] | Magic xpiがサポートする全てのDBMSリスト
データベース | [MAGIC_DATABASES] | Magic xpiがサポートする全てのデータベースリスト
論理名 | [MAGIC_LOGICAL_NAMES] | 論理名テーブル
ゲートウェイ | [MAGIC_GATEWAYS] | Magic xpiデータベースゲートウェイのリスト


WindowsのサービスとしてSystinet Serverを追加する

目的

このテクニカルノートは、SystinetがWindowsのサービスとして追加されない理由と、手動でWindowsサービスに追加する方法について説明しています。

説明

PCのCLASSPATH環境変数がセミコロンで終了していない場合、 Install_GSA_service.batファイルは無効な構文を作成します。

問題が発生するファイルの指定した部分：

"-Djava.class.path=%WASP_HOME%\lib\wasp.jar;%WASP_HOME%\lib\uniSSJ.jar;
%WASP_HOME%\lib\uniRequester.jar;%WASP_HOME%\lib\saaj_utils.jar;%WASP_HOME%\lib\mgxpi-commons.jar;%WASP_HOME%\lib\GigaSpaces\com.springsource.org.aopalliance-1.0.0.jar;%WASP_HOME%\lib\GigaSpaces\commons-logging.jar;%WASP_HOME%\lib\GigaSpaces\dsl.jar;%WASP_HOME%\lib\GigaSpaces\gs-openspaces.jar;%WASP_HOME%\lib\GigaSpaces\gs-runtime.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aop-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.asm-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aspects-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.core-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.expression-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.transaction-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\mgxpi-gs.jar;%CLASSPATH%”

問題の対応するには、以下の2つの方法の内どちらかをを実行してください。

  1. 以下のように Install_GSA_service.battファイルの終端にセミコロンを追加してください。
    "-Djava.class.path=%WASP_HOME%\lib\wasp.jar;%WASP_HOME%\lib\uniSSJ.jar;
    %WASP_HOME%\lib\uniRequester.jar;%WASP_HOME%\lib\saaj_utils.jar;%WASP_HOME%\lib\mgxpi-commons.jar;%WASP_HOME%\lib\GigaSpaces\com.springsource.org.aopalliance-1.0.0.jar;%WASP_HOME%\lib\GigaSpaces\commons-logging.jar;%WASP_HOME%\lib\GigaSpaces\dsl.jar;%WASP_HOME%\lib\GigaSpaces\gs-openspaces.jar;%WASP_HOME%\lib\GigaSpaces\gs-runtime.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aop-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.asm-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.aspects-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.beans-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context.support-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.context-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.core-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.expression-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\org.springframework.transaction-3.1.1.RELEASE.jar;%WASP_HOME%\lib\GigaSpaces\mgxpi-gs.jar;%CLASSPATH%;”

  2. PCのCLASSPATH環境変数に直接セミコロンを追加してください。

上記のステップのうちどれか1つを実行した後で、もう一度 Install_GSA_service.bat を実行してください。Windowsサービスが正しく作成されます。


データベース

以下のテクニカルノートは、Magic xpiデータベースの問題について扱っています。

AIXにおけるmallocエラー

30文字より大きいデータベーステーブルのタイトル


AIXにおけるmallocエラー

目的

このテクニカルノートは、AIXオペレーティングシステム上でのmallocエラーの対処方法を説明します。

解説

メモリ上で大量のBLOBを使用したMagicxpiプログラムや巨大なXMLファイルを使用したプロジェクトを実行させた場合、リソース問題を起こすことがあります。

リソース問題を回避するには、LDR_CNTRL環境変数のmaxdata 値を設定することにより既存のプログラムにAIXの大きなアドレス空間モデルを使用させることができます。

例えば、以下のコマンドを使用して、データエリアに８セグメント予約し、a.outプログラムを実行させることができます：

LDR_CNTRL=MAXDATA=0x80000000 a.out

このコマンドは、a.out プログラムをデータサイズに8セグメントまでデータに利用させることで非常に大きなアドレス空間モデルを使用して実行します。

AIX オペレーティングシステムでmallocエラーを防ぐためには、以下のコマンドをコマンドラインで実行します。

LDR_CNTRL=MAXDATA=0x8000000

詳細は、以下のリンクを参照してください。

https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.genprogc/lrg_prg_support.htm


30文字より大きいデータベーステーブルのタイトル

目的

Magic xpi スタジオは、何故タイトル名が30文字を超えるデータベーステーブルに接続できないのでしょうか？

解説

データベース・リソースを定義するとき、リソース定義のフェーズやデータベースウィザードまたは、手動でSQL文を入力する事で関連するテーブルを選択することができます。

リソース定義のフェーズでテーブルを選択し、テーブルのカラムタイトルの長さが30文字を超えた場合、後でそれが使用できなくなります。

リソース定義のフェーズでのテーブル選択は、設計作業におけるパフォーマンスを高めることができます。例えば、データベースに沢山のテーブルやカラムが含まれている場合、リソース定義のフェーズでテーブルを選択しない場合、そのデータベースにアクセスする各ステップの設定にかなりの時間がかかります。リソース定義のフェーズでテーブルを選択すると、この状況を回避することができます。

ODBC データベース

ODBCデータベースを使用して、テーブル名が30の文字より大きい場合、以下のエラーが［リソース］画面に表示されます。

"Current logged user does not have privileges on table xxxx columns. Selection is cancelled."

MS-SQL データベース

MS-SQLデータベースを使用してて、テーブル名が30の文字より大きい場合、以下のエラーが［データマッパー］ウィンドウに表示されます。

"Information cannot be retrieved for database table of xxx. Check that you have the required permission or that the SQL statement is correct."

解決手段

両方のデータベースで、この問題に対応するために2つの考えられるオプションがあります。

  • リソース定義のフェーズでテーブルを選択しないでください。ステップを設定するとき、または、SQL文を手動で入力するときに、データベースウィザードのフェーズでこれだけを行う必要があります。

  • 大きなタイトル名のテーブルを指すデータベース内にて、短い名前でビューを定義することができます。この処理は、大きなタイトル名のテーブル毎に行う必要があります。

    例：

    テーブルのlongnamesを作成してください： (f1 int , f1234567890123456789012345678901234567890 char(10))

    ビューのためにshortnamesを作成してください：     (f1 , f2 )

    つまり以下のようにします。

    Select     f1longnames

    最初のテーブルの代わりにこのビューを使用してください。この種のビューは、すべてのデータ操作言語（DML)をサポートします。


Magic xpi サーバ

以下のトピックは、Magic xpiのサーバ環境について扱っています。

サーバのパフォーマンスの考察


サーバのパフォーマンスの考察

目的

このテクニカルノートは､Magic xpiサーバから最適なパフォーマンスを引き出す要素について説明しています。以下のトピックに分かれています。

  • 環境上のパフォーマンスの考察

  • パフォーマンスのガイドライン

環境上のパフォーマンスの考察

以下のハードウェアとソフトウェア構成がMagic xpiサーバの全体的な性能に影響します。

  1. ハードウェアとソフトウェアのインフラ

  2. OS上のプラットフォーム(IBM i,Windows)

  3. マシンタイプ(特定のマシンモデル)

  4. マシンのCPU数

  5. CPUの処理速度

  6. マシンのメモリサイズ

  7. マシンの記憶装置の性能(I/O)

  8. OSの設定と負荷（例えば他のアプリケーションやリソース）

  9. ネットワークの設定（ネットワークスピードや名前解決）

  2. データベーススループット

  3. Magic xpiの内部データベースサーバ

  4. プロジェクト関連のデータベースサーバ

  3. 外部プロジェクトのリソーススループット

  4. メッセージキュー

  5. Webサービス

  6. HTTP

  7. メールサーバ

  8. その他の外部リソース

  4. Magic xpiプロジェクトのパフォーマンスの検討材料

  5. プロジェクトの動作ボリューム

  6. フローの並行実行

  7. 配備構造

    • Magic xpiサーバの数

    • Magic xpiプロジェクトトポロジー

    • 内部データベースの場所

  8. 配備構造定

  9. マッピングの複雑さ

パフォーマンスのガイドライン

  1. フローの並行実行とMagic xpiライセンス

フローの並行実行は､以下の場合に発生します。

  • フローを非同期で起動した場合

  • 並行またはスタンドアロンフロー分岐を使用した場合

  • トリガを使用して外部からフローを起動した場合

すべての並行実行のフローは､それぞれMagic xpiのサーバスレッドを使用するため､Magic xpiの並行実行スレッドのライセンスを必要とします。

並行実行のフローの起動は､いついかなる場合でもMagic xpiの並行実行スレッドのライセンス数内に制限されています。

もしライセンス数に達した場合、起動リクエストはキュー内で待つことになります。もし利用可能なライセンスがあればリクエストは処理されます。

十分なライセンススレッドを使用しないとフロー起動の遅延れが発生します。これによりMagic xpiサーバの全体的なスループットに影響します。

  2. メモリ使用状態

Magic xpiサーバはプロジェクトとは別に内部使用のための初期メモリ量を消費します。プロジェクトの読み込み、実行には更にメモリを必要とします。必要なメモリの量は以下の要素に依存します。

  • フローとステップの数

  • 処理されるデータのサイズ(メッセージデータ)

  • 並行実行するフローの数

  • データマッパステップの種類（タイプとマッピング数）

Magic xpiサーバがプロジェクトを実行する時には、OSは物理記憶を効率的に管理するために、スワップ領域を使用します。

もしシステムが不十分な物理メモリ量しか搭載していない場合、OSはメモリーページを非効率にスワップするようになります。これによりサーバが起動しているマシン上のプロセスの速度が低下し、スループットが低下します。

  3. マルチCPU

TMagic xpiはマルチCPUのマシンで使用できます。マルチCPUの設定では､OSがマシンで実行されているプロセスへのCPUリソースの分配を決定します。

Magic xpiサーバのプロセスは､OSのCPUリソース分配に介入しません。Magic xpi以外のプロセスもCPUリソースを使用し、全体的なCPU分配に影響を与えます。

Magic xpiのサーバ機能を実行するプロセスは､マルチスレッドで動作しているため、Magic xpiのサーバプロセス内の別々のプロセスをそれぞれ個別のCPUが処理している場合があります。これはMagic xpiではなくOSが管理しており、OSに依存します。Magic xpiはマシン上で動作するCPUの数についていかなる制限も設定していません。

ライセンスファイル上の並行実行リクエスト数は､それぞれ個別のスレッドを処理している全てのCPUに対しての並行時実行リクエスト数です。

Magic xpiサーバは､他のアプリケーションやデータベースが動作しているサーバ上で動作している場合があります。その為、CPUを追加した場合、Magic xpiプロジェクトの全体的なパフォーマンスが上がる可能性があります。

  • Magic xpiサーバはI/Oを使用するため､CPUの追加で必ずしもプロジェクトのパフォーマンスが上がるわけではありません。

  • プロセスのボトルネックを見つけ､プロジェクトのI/Oパフォーマンスを上げることをお勧めします。

  4. プロジェクト基本設計（サードパーティーとデータベース設置場所を含む）

  • Magic xpiプロジェクト基本設計は､Magic xpiサーバのパフォーマンスに大きな影響を持つ可能性があります。以下が考慮すべき基本設計要素です。

  • もし複数のMagic xpiサーバが同一のマシン上で動作している場合、一つのMagic xpiサーバで実行される適切な数の並行実行フローを使用すべきです。

  • 複数のMagic xpiサーバを個別のマシンで動作させることができます。

  • 内部データベースは､Magic xpiサーバと同じマシン上でも個別のマシン上でも動作させることもできます。

  • 外部プロジェクトI/Oパフォーマンスには、以下の内容が含まれます。

    • 外部アプリケーションへの接続性（ミドルウェア、HTTP、Webサービス）

    • 外部アプリケーションのパフォーマンスや限界による処理ボトルネック。

    • 通信スピード

アプリケーションや通信チャンネルの適切な選定や､チューニングによりパフォーマンスを上げることができます。

  • Magic xpiログ設定

    • リモートサービス(アクティビティログ, ODS, PSS) やルーティングの使用も全体のパフォーマンスを向上させる基本設計要素です。

    サーバにより収集され、内部データベースに書き出される情報（統計収集やログ取得レベル）を制限することによりMagic xpiサーバのスループットを向上させることができます。

  5. OSのセットアップ

    以下のOSリソースは、サーバの全体的パフォーマンス向上のためチューニングすることができます。

  • CPU分配やプロセスの優先度設定

  • メモリの割り当て

  • ファイル・ハンドル

  • TCP/IPネットワーク設定

  • I/Oリソースの割り当て

    マシンチューニングを怠ると、ハードウェアやOSの非効率的な運用につながり、マシンの全体的なパフォーマンスが低下する場合があります。


ライセンス

以下のトピックは、Magic xpiのライセンスについて扱っています。

Magic xpi のライセンス形態


Magic xpi のライセンス形態

目的

このテクニカルノートは､Magic xpiライセンスの様々な部分についての情報を提供します。

説明

Magic xpiのライセンスの内訳

IBNPSTD | スタジオのライセンス
IBMON | モニタのライセンス。
IBNPSRV | 非製品サーバ用のライセンス。このライセンスを使用した場合、プロジェクトは24時間後にシャットダウンされ、メッセージがログに送られます。メッセージには、シャットダウンが発生した時のライセンス名とシリアル番号が記録されます。
IBPRSRVI | Intel環境（Windows OS）を使用したサーバ用の製品ライセンス。
IBPRSRVN | 非Intel環境（IBM i）を使用したサーバー用の製品ライセンス。

ライセンス名は、サーバの ifs.iniファイルの [MAGIC_ENV]LicenseName セクションで以下のように設定します。

[MAGIC_ENV]LicenseName = IBPRSRVI.

iniファイルに定義されたライセンス名とライセンスファイル内のライセンス名が一致しない場合、対応するログファイル(studio_error.log、<プロジェクト名>_error.log、または monitor_error)に以下のエラーが記録されます：“Failed to set the license file parameters”

ライセン名

以下のライセンスはオプションです。これらは個別に購入し､既存のライセンスファイルに追加することができます。

IBA1 | SAP A1用ライセンス。
IBDYCRM | Dynamics CRM 用ライセンス。
IBHL7 | HL7 用ライセンス。
IBJDE | JD Edwards Enterprise One 用ライセンス。
IBNotes | Lotus Notes 用ライセンス。このライセンス､Notes DBコネクタを使用してNotes データベースへのアクセスを可能にします。
IBR3 | SAP ERP 用ライセンス。
IBSBO | SAP Business One 用ライセンス。
IBSFDC | Salesforce 用ライセンス。. Salesforce AppExchangeからMagic xpiアプリをインストールしなければなりません。アプリのインストールについての情報は、ここをクリックしてください。 (Since version: 4.5a)
IBSystemi | IBM i 用ライセンス。データマッパーはこのキーワードなしでも IBM i上の DB2 for IBM i データベースにアクセスすることができます。
IBSHAREP | SharePoint 用ライセンス。
IBEXCHANGE | Exchange 用ライセンス。
IBJDEWRLD | JD Edwards World 用ライセンス。
SERVICEMAX | ServiceMax 用ライセンス。 (Since version: 4.6)
SUGCRM | Sugar 用ライセンス。
DYNAX | Dynamics AX 用ライセンス。

デバッグセッションまたは非製品ライセンスが使用されている場合は、ライセンス確認は行なわれません。

ホスト固定のライセンス

Magic Software Japan で作成されるすべてのライセンスは、ホスト固定です。これは、一旦起動すると、起動で使用されるPCで使用しなければならないことを意味します。クラスタ環境のライセンスに関する詳細情報は、ここをクリックしてください。

MGSTATIONSユーティリティ

ネットワーク上で指定されたライセンスの利用状況を確認するには、Magic xpiディレクトリ内のMGSTATIONS.exeを実行することで可能です。

構文： | MGSTATIONS <ライセンス名> <ライセンスファイル>
パラメータ： | <ライセンス名> …… ライセンス名を含む文字列。
 | <ライセンスファイル>……ライセンスファイルのパス名。ライセンスファイルが指定されない場合、Magic xpiは現在の作業ディレクトリ内にあるlicense.datファイル内のライセンス名を検索します。
戻り値： | ライセンスファイルで指定される必要なライセンスに対応するユーザ数またはインスタンス数。
例： | MGSTATIONS IBPRSRVI license.dat

MGSTATIONSユーティリティは、Magic xpiサーバが実行されていないPC上でのみ実行することができます。その他の場合、結果は正確でありません。


Magic xpi の互換ガイド

Home > 互換性ガイド

Magic xpi の互換性ガイド

このセクションは､Magic xpi の動作が保証された様々なプラットフォームについての情報を提供します。

サポートされている各プラットフォーム上において、Magic xpiアプリケーションが実行できるOS、使用できるデータベース、Webアプリケーション実行のためサポートされているWebサーバ、メッセージング機能のためサポートされているミドルウェア、サポートされているフレームワーク、プロトコル、上級インテグレーション機能のためのアプリケーションサーバ等の情報を見つけることができます。

Microsoft社の 32/64ビットのWindows OSに対して、Magic xpiはすべてのプラットフォームでサポートされています。ここでは、実際にMSEのQCグループによって評価したプラットフォームを挙げています。

関連トピック：

プラットフォームとオペレーティングシステム

データベース

Web サーバ

ミドルウェア、フレームワーク、プロトコル

セキュアコントロールプロバイダ

エコシステム


プラットフォームとオペレーティングシステム

このセクションは、Magic xpiが処理する上で Magic Software Enterprises によって保証されたプラットフォームとOSを説明します。

Microsoft® Windows® (クライアントとサーバ)

Intel プロセッサの場合:

  • Windows® 8

  • Windows® 10

Microsoft® 64-bit Windows® (サーバのみ)

Intel プロセッサ上:

  • Windows® 2016 (Server Edition)

  • Windows® 2019 (Server Edition)


データベース

このセクションでは、Magic xpi が使用できるデータベースについて説明します。

Microsoft® Windows®

  • Oracle 11g、12c、18c、19c

  • Microsoft® SQL Server 2008、2012、2014、2016、2019

  • Microsoft® SQL Server on Azure DB

  • ODBC 3 (内部データベースとしてはサポートされない)

  • DB2 UDB 11 (64-bit クライアントのみ、内部データベースとしてはサポートされない)

  • MySQL 5.x、 および 8.x (内部データベースとしてはサポートされない)

  • Pervasive 13 (内部データベースとしてはサポートされない)

  • DB2/400 OS/400 V5R4, V6R1, V7R1, および V7R3

  • Magic xpiでは、Studioとインストーラでは32bitのデータベースクライアントを使用しますが、実行時にプロジェクトを実行する場合は64bitのデータベースクライアントを使用します。これは、サポートされているすべてのデータベースに適用されます。

  • Oracle DBにはOLEDBドライバがプリインストールされている必要があります。

  • 使用するシステムにインストールされているデータベースのバージョンに基づいて、Standard版またはEnterprise版を選択してください。DBAは、現在使用されている製品タイプを判断することができます。不明な場合は、Standard エディションを選択してください。

  • DB2の場合、インストーラ画面でサーバー認証を実行するために、DB2サーバー上にSAMPLEデータベースを作成する必要があります。

  • DB2400 の場合、インストーラー画面で DB2400 のサーバ認証を行うには、IBMi Access ODBC Driver または iSeriesAccess ODBC Driver が必要です。


Web サーバ

このセクションでは､Magic xpi が使用できるWebサーバについて説明しています。

Microsoft® 64ビット Windows

  • Internet Information Server v7

  • Internet Information Server v8

  • Internet Information Server v10

Magic xpiリクエスタとして64ビット版のモジュールがあります。

  • Apache Tomcat 7.x以降

Apache Tomcatサーバーバージョン7.xを実行するためのJavaの最小バージョンはJava 8です。Javaバージョン7はサポートされておらず、HTTPおよびODataコンポーネントはJava 7で動作しません。


ミドルウェア、フレームワーク、プロトコル

このセクションでは､Magic xpi で使用できるミドルウェア、フレームワークおよびプロトコルについて説明しています。

Microsoft® Windows®

  • IBM WebSphere® MQ 7.5 と 8.0 クライアント/サーバ …… メッセージング機能のため MQ クラスタリングがサポートされています。

  • Microsoft® MQ 2.x または 3.x …… MSMQメッセージング機能で使用されます。

  • JMS …… JMS API 1.3 クライアント以降が必要です。

  • JRE 8.0 …… Java インテグレーション機能で使用します。. OracleとOpenJDKの両方のJREがサポートされています。 サポートされているOpenJDKディストリビューションは、RedHat、Zulu、Amazon correttoです。注：JRE 8.0は、SystinetベースのWebサービス（コンシューマーとプロバイダーの両方）ではサポートされていません。 Windowsオペレーティングシステムの場合、Webサービスコンシューマーを使用するには、WCFクライアントを使用します。

Oracle Java version 1.8 update 261 はサポートされていません

ディストリビューション | Version
Open JDK | Java 8 262
Zulu JDK | Java 8 265
Zulu JDK | Java 8 262
Oracle JDK | Java 8 241
Amazon Corretto | Java 8 262
Amazon Corretto | Java 8 275

  • Microsoft® Active Directory

  • LDAP V.2 と V.3 簡単な接続で使用できます。

  • SOAP 1.1

  • SOAP 1.2

  • Oracle JDK version 1.8 update 261はサポートされません。

  • Amazon Corretto JDK version 8.282 はサポートされません。

  • Open JDK version 1.8 update 302 はサポートされません。

  • Zulu JDK version 1.8 update 302 (Windows) はMSSQL-2014以前のサーバではサポートされません。

GigaSpacesのいくつかの制限により、新しいビルドバージョンのJDK 8を使用できなくなり、Sigarライブラリに関連するエラーが発生します。 Sigarライブラリを無効にすると、この問題を解決できます。 詳細な手順と制限事項については、 スペーストラブルシューティング のヘルプページを参照してください。

以下にMagicxpiでサポートされているOpenJDKの公式ダウンロードサイトへのリンクを示します。 これらのダウンロードリンクにアクセスして、関連する1.8OpenJDKバージョンをダウンロードしてください。

  • https://github.com/corretto/corretto-8/releases

  • https://www.azul.com/downloads/zulu-community

  • https://developers.redhat.com/products/openjdk/download


セキュアコントロールプロバイダ

このセクションでは､Magic xpi で利用できるソース管理製品について説明しています。

Microsoft® Windows®

Magic xpi は、TFS や Visual SourceSafe などの SCC（ソースコード制御）API V1.01 を使用するサードパーティのソース管理製品に対して、ソース管理のサポートを提供します。

(Microsoft Team Foundation Server2012 - 2017 の使用を強く推奨します)


エコシステム

このセクションは、Magic xpiが利用するエコシステム（複数の企業によって構築された共通の収益環境）について説明します。

  • Dynamics AX 2012

  • Dynamics CRM 2012 から 2016 および Dynamics 365 version 9.1

  • Dynamics 365(CRM 機能)

  • Exchange 2007 以降(On-Demand、On-Premise 共に)

  • JD Edwards Enterprise One 8.2,9.1 および 9.2

  • JD Edwards World A 7.x, A 8.x, および A 9.x

  • Salesforce API 51

  • ServiceMax API 51

  • SAPB1 8.8 and above including SAPB1 HANA
    SAPB1 V10(FP2120)及び SQL server 2019まで認証済み

  • 全ての SAP 製品 supporting JCO API, like SAP ERP from version 4.6c to S/4 HANA

  • SharePoint® Server 2007, 2010, 2013,2016, 2019 On-premise, and SharePoint® Server 365/Online (MOSS)

  • SugarCRM V10 and V11.x REST API and Legacy API (4.x)

  • XSLT 1.0

  • HCL Domino Server v9.x and v10.x


必要なライセンスのリストを生成するには

統合プロジェクトをビルドするときは、専用のライセンスが必要な専用のコンポーネントまたはコネクタを使用する必要があります。適切なライセンスを持っていないと、このプロジェクトは機能しません。

Magic xpiを使用すると、プロジェクトを実行するために追加ライセンスを購入する必要があるかどうかを簡単に確認することができます。Magic xpi Studioのヘルプメニューから、必要なライセンスを選択します。 このオプションは、プロジェクトを開いているときにのみ使用できます。[必要なライセンス]ダイアログボックスが開きます。

エントリを右クリックし、コンテキストメニューからコピーを選択するか、Ctrl + Cショートカットを使用して、リストから特定のエントリをコピーできます。


ダイレクトスキャナコンポーネントを使用するときにヘブライ語名でファイルを識別するには

In the FTP Resource definition, there is a property called Encoding. This property determines whether the scanned files should be encoded. If there are files with Hebrew encoding in the FTP folder, this property's value should be set to Hebrew. This ensures that files with Hebrew names are taken from the FTP server by the Directory Scanner's FTP to LAN method when the filter is set to *.*.


BLOBファイルからUnicodeまたはUTF-8 BOMを削除するには？

バイナリBLOBファイルからUnicodeまたはUTF-8 BOMを削除する必要がある場合は、BlobRemoveBOM関数が使用できます。

RemoveBOM関数を使用してバイナリBLOBファイルからUnicodeまたはUTF-8 BOMを削除する:

  1. この例では、まずBOMを含むサンプルBLOBファイルを作成します。 <My Documents>\Magic\projects\<現在のプロジェクト>フォルダに保存します。このファイルを utf8.txt と呼びます。

  2. この例で使用する変数を作成するには、フロー変数リポジトリを開きます。

  3. ここで、F.utf8とF.utf8nobomという2つのBLOB変数を作成します。次に、F.logicという論理変数を作成します。

  4. フローデータユーティリティをフローにドラッグします。

  5. BOMの削除処理を開始するには、File2Blb関数を使用してサンプルファイルをBLOBにロードする必要があります。 [Flow Data Configuration]ダイアログボックスで、[Add]をクリックします。

  6. [Action]カラムでドロップダウンリストからUpdateを選択します。

  7. [Type]カラムで、Flowを選択します。

  8. [Name]カラムで、以前作成した F.utf8 BLOB変数を選択します。

  9. [Encoding]カラムで、Binary を選択します。

  10. [Update Expression] カラムで、, [image] をクリックして式エディタを開きます。.

  11. 式エディタで次の式を入力し、OKをクリックします。

File2Blb (EnvVal ('currentprojectdir')&'utf8.txt')

  1. 次の段階では、新しく作成されたファイルに含まれているBOMを削除します。これは、BlobRemoveBOM関数を使用して行います。 [Flow Data Configuration]ダイアログボックスで、Add をクリックします。

  2. [Action]カラムのドロップダウンリストから Update を選択します。

  3. [Type]カラムで、Flowを選択します。

  4. [Name]カラムで、以前作成した F.utf8nobom BLOB変数を選択します。

  5. [Encoding]カラムで、Binary を選択します。

  6. [Update Expression] カラムで、, [image] をクリックして式エディタを開きます。.

  7. 式エディタで次の式を入力し、OKをクリックします。

    BlobRemoveBOM ( F.utf8 )

  8. 次に、BOMを削除したBLOBをファイルにロードする必要があります。これは、Blb2File関数で行います。 [Flow Data Configuration]ダイアログボックスで、Add をクリックします。

  9. [Action]カラムのドロップダウンリストから Update を選択します。

  10. [Type]カラムで、Flowを選択します。

  11. [Name]カラムで、以前作成した F.logic BLOB変数を選択します。

  12. [Update Expression] カラムで、, [image] をクリックして式エディタを開きます。.

  13. 式エディタで次の式を入力し、OKをクリックします。

    Blb2File ( F.utf8nobom , EnvVal('currentprojectdir') &'utf8withoutbom.txt')

  14. OK　をクリックして、フローデータユーティリティを閉じます。

  15. プロジェクトをビルドします。

  16. これでプロジェクトをデバッグして実行すると、<My Documents>\Magic\projects\<現在のプロジェクト>フォルダにutf8withoutbom.txtという名前の新しい.txtファイルが表示されます。このファイルは元のファイルです。BOMを削除したファイルは、ステップ23で入力した式からファイル名が取得することができます。バイナリエディタを使用して、BOMが削除されたことを確認することができます。

関連トピック：

UnicodeかUTF-8 BOMをBLOBファイルに追加するには


データマッパのSQL文を作成してマッピング接続を作成するには

This section describes how you create the SQL statements when you use the Data Mapper, and how you make the mapping connections. For information about how to define the Source and Destination databases, see How Do I Set Up Database Operations In the Data Mapper?.

Preparing the SQL Statements

You can define the Source and target database schemas in one of these ways:

  • Direct SQL statement: You manually enter the SQL statement

  • Wizard: You select the required database, table, column, etc. through a “wizard” interface

The results are the same whichever method you use.

You can define different sections of the SQL statement as dynamic. You can determine the values of those dynamic definitions as follows:

  • Runtime: Global or Flow Variable tags only have a value during runtime. The syntax of these variables in an SQL statement is: G.name1

  • Mapping: You can define dynamic types from any Source element or from constant values. The syntax of these variables in the SQL statement is: MyDel

Below are examples of the different SQL statements for the Source and Destination schemas.

Insert Statement

INSERT INTO customer
(city,fax_area,fax_num,house_num,name,number_id,phone_area, phone_descr,phone_num,street,zip_code)

Update Statement

SELECT customer.city,customer.street FROM customer WHERE
customer.name = G.name1

UPDATE customer SET city=city, street=street
WHERE customer.name = G.name2

Delete Statement

SELECT customer.city FROM customer WHERE customer.city =
G.city

DELETE FROM customer WHERE customer.city = MyDel

Select Statement

Preparing the Mapping Connections

After you define the Source and Destination schemas, you can then move to the mapping phase. This is when you connect the Source elements (the information retrieved from the Source schemas) to the Destination elements.

You can define different types of connections between the Source and Destination schemas. Below are the types of connections that are relevant for database-type schemas:

  • Simple Connection: Connecting between an element of a simple compound to another element in a Destination simple compound

  • Complex Connection: Connecting between one compound to another compound

  • Dynamic Tag (Mapping) Connection: Connecting a dynamic tag definition to a constant, another element, or a Flow or Global Variable

The diagrams below are examples of the different mapping connections that you can find in the sample project.

Insert Mapping

For the Insert operation, the simple elements are mapped from the Source XML schema to the Destination database schema.

 The phone_desc element in the Destination schema is connected to itself. This means that the value entered at runtime is retrieved from a calculated expression.

Update Mapping

For the Update operation, the city and street elements in the Destination schema are dynamic tags. These tags are part of the Update SQL statement and receive their real values during the mapping process and not as part of the SQL statement definition.

Delete Mapping

For the Delete operation, the MyDel element in the Destination schema is a dynamic tag. This tag is part of the Delete SQL statement WHERE clause and receives its real value in the mapping process and not in the SQL statement definition.


リンクサーバをセットアップするには

リンクサーバを使用すると、SQL Serverデータベースエンジンは、SQL Serverのインスタンスの外部にあるOLE DBデータソースに対してコマンドを実行できるため、1つのサーバ接続内から複数のデータソースにアクセスすることができます。

SQLサーバの別のインスタンスへのリンクサーバを作成するには、以下の手順に従ってください。

  1. SQL Server Management Studio（SSMS）にログインします。

  2. Object Explorerコンポーネントの下の［サーバオブジェクト］メニューを開き、リンクサーバで右クリックします。展開されたメニューから[新規のリンクサーバ…]オプションを選択して、新しいサーバのリンクを作成します。これにより、[新規のリンクサーバ]ウィンドウが開きます。

  3. ［汎用］ページにパークし、[リンクサーバ]フィールドに接続するサーバの名前を入力します。

  4. [サーバの種類]でラジオボタンから[SQL Server]を選択します。

  5. [セキュリティ]ページで[停止]をクリックし、[追加]ボタンをクリックしてログインマッピングを作成します。ローカルログインは、Sap B1リソースに記載されているDBユーザ名です。上記のリモートサーバで適切なアクセス許可を持つログイン名を使用して、リモートユーザを指定します。リモートユーザを認証するためのパスワードであるリモートパスワードを入力します。

  6. オプションとして、サーバオプションを表示または指定するには、[サーバーオプション]ページにアクセスします。

  7. [OK]をクリックして設定を保存します。エントリが保存される前に、リンクサーバへのリモートログインが確認されます。

  8. リンクサーバが正常に作成されたら、それに対してサンプルクエリを実行して検証します。

リンクサーバは、Transact-SQLを使用して作成することもできます。

詳細は、次のリンクを確認してください。

https://docs.microsoft.com/ja-jp/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-2017