intra-mart Accel Platform IM-LogicDesigner チュートリアルガイド 第7版 2018-04-01

5.4.11.2. ユーザ定義(XML解析)の詳細

この章では、XML解析を利用したユーザ定義の作成方法とその詳細について説明します。

5.4.11.2.1. 本チュートリアルで作成する概要

本チュートリアルでは、アカウント情報のXMLを読み込みアカウントデータを取得します。
チュートリアルを通して、ユーザ定義(XML解析)の作成方法とその詳細を説明します。

5.4.11.2.1.1. 本チュートリアルで使用するXMLの詳細

本チュートリアルではアカウントエクスポートでエクスポートされたアカウント情報XMLを使用します。
XMLの内容は以下の通りです。
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://intra-mart.co.jp/system/admin/account/account-data">
    <account-data cd="aoyagi">
        <password>aoyagi</password>
        <first-day-of-week>-1</first-day-of-week>
        <login-failure-count>0</login-failure-count>
        <valid-start-date>1900-01-01</valid-start-date>
        <valid-end-date>3000-01-01</valid-end-date>
        <account-license>true</account-license>
        <account-roles>
            <account-role id="im_workflow_user">
                <role-valid-start-date>1900-01-01</role-valid-start-date>
                <role-valid-end-date>3000-01-01</role-valid-end-date>
            </account-role>
        </account-roles>
    </account-data>
    <account-data cd="hagimoto">
        <password>hagimoto</password>
        <first-day-of-week>-1</first-day-of-week>
        <login-failure-count>0</login-failure-count>
        <valid-start-date>1900-01-01</valid-start-date>
        <valid-end-date>3000-01-01</valid-end-date>
        <account-license>true</account-license>
        <account-roles>
            <account-role id="im_workflow_user">
                <role-valid-start-date>1900-01-01</role-valid-start-date>
                <role-valid-end-date>3000-01-01</role-valid-end-date>
            </account-role>
        </account-roles>
    </account-data>
    <account-data cd="harada">
        <password>harada</password>
        <first-day-of-week>-1</first-day-of-week>
        <login-failure-count>0</login-failure-count>
        <valid-start-date>1900-01-01</valid-start-date>
        <valid-end-date>3000-01-01</valid-end-date>
        <account-license>true</account-license>
        <account-roles>
            <account-role id="im_workflow_user">
                <role-valid-start-date>1900-01-01</role-valid-start-date>
                <role-valid-end-date>3000-01-01</role-valid-end-date>
            </account-role>
        </account-roles>
    </account-data>
    <account-data cd="hayashi">
        <password>hayashi</password>
        <first-day-of-week>-1</first-day-of-week>
        <login-failure-count>0</login-failure-count>
        <valid-start-date>1900-01-01</valid-start-date>
        <valid-end-date>3000-01-01</valid-end-date>
        <account-license>true</account-license>
        <account-roles>
            <account-role id="im_workflow_user">
                <role-valid-start-date>1900-01-01</role-valid-start-date>
                <role-valid-end-date>3000-01-01</role-valid-end-date>
            </account-role>
        </account-roles>
    </account-data>
    <account-data cd="ikuta">
        <password>ikuta</password>
        <first-day-of-week>-1</first-day-of-week>
        <login-failure-count>0</login-failure-count>
        <valid-start-date>1900-01-01</valid-start-date>
        <valid-end-date>3000-01-01</valid-end-date>
        <account-license>true</account-license>
        <account-roles>
            <account-role id="im_workflow_user">
                <role-valid-start-date>1900-01-01</role-valid-start-date>
                <role-valid-end-date>3000-01-01</role-valid-end-date>
            </account-role>
        </account-roles>
    </account-data>
</root>

5.4.11.2.2. 入力値/出力値

ユーザ定義を呼び出す際の入力値と、呼び出しが完了した際に返却する返却値を定義します。
ユーザ定義(XML解析)の入力値/返却値の初期値は以下の通りです。
../../../../_images/xml_parser_input_default.png

図:入力値、および、返却値の初期値

5.4.11.2.2.1. 入力値

ユーザ定義(XML解析)の入力値はシステムによって固定です。
IM-LogicDesignerではXMLを取り扱うにあたり、以下の内容を入力値として定義しています。
入力値 説明
xml<binary> データを読み込むXML

5.4.11.2.2.2. 出力値

ユーザ定義(XML解析)の出力値はXMLから取得する要素を定義します。
出力値の定義方法には、「ルートから要素を定義する方法」 と「XPathで要素を定義する方法」があります。

5.4.11.2.2.3. ルートから要素を定義する方法

返却値にXML内のタグ名にあわせて要素を定義することで、定義された名前の要素を取得することができます。
アカウント情報XMLの場合、以下のように定義します。
../../../../_images/xml_parser_root_input.png

図:ルートから要素を定義した例

XMLから属性の値を取得したい場合は、要素を Object として定義し、配下の要素に「@属性名」の要素を追加します。
またテキスト要素を取得したい場合は「#text」の要素を追加します。
../../../../_images/xml_parser_attribute_input.png

図:属性、テキスト取得例

5.4.11.2.2.4. XPathで要素を定義する方法

XPathを使用して取得したい要素を指定して定義を行う方法です。XMLから特定の要素のみ取得したい場合に利用します。
たとえば、アカウント情報からユーザコードのみを取得したい場合は属性「cd」へのXPathを定義します。
  • XPath

    /root/account-data/@cd

XML解析定義のパラメータ名には、XPathで指定した要素を関連付ける返却値の要素名を指定します。
../../../../_images/xml_parser_user_cd_xpath.png

図:ユーザコード取得例

5.4.11.2.3. ユーザ定義(XML解析)を作成する

最後に、これまでの内容を踏まえてユーザ定義(XML解析)を作成します。
  1. 「XML解析定義編集」画面を表示します。

  2. ユーザ定義の基本情報となる各項目に以下の値を入力します。

    • ユーザ定義ID「tutorial_ud_xml_parser

    • バージョン「1」(固定)

    • ユーザ定義名
      • 標準 - 「ユーザ定義[XML解析]
      • 日本語、英語、中国語(中華人民共和国) - 入力なし
    • カテゴリ
      • カテゴリID - 「tutorial_user_category
    • ソート番号「8001

    ../../../../_images/xml_parser_create.png

    図:基本情報の定義

  3. XPathを定義します。
    ../../../../_images/xml_parser_xpath_input.png

    図:XPathの定義

  4. パラメータ名に入力した値をルートにして取得する要素を返却値に定義します。

    ../../../../_images/xml_parser_output.png

    図:返却値の定義