| # Infor LN ホームページに必要な関数を作成するには 概要 ホームページを作成する際には、ホームページのワークロード項目、警告などを表示するロジックを含む関数を Infor LN サーバ上に作成する必要があります。 ホームページ関数を作成するには、次のステップを実行します。 Infor LN サーバにログオンします。 プログラムスクリプト/ライブラリ (ttadv2530m000) セッションを開始します。 ライブラリを作成してエディタを起動するか、既存のライブラリを編集します。 関数構文をライブラリに追加します。 ライブラリを保存してコンパイルします。 これで関数をホームページにリンクできるようになりました。詳細については、Infor LN ホームページを作成するにはを参照してください。 ホームページ関数のタイプ 以下のセクションでは、タイプごとにホームページ関数の説明と例を示します。 ワークロード項目を表示する関数 警告を表示する関数 計数関数 セッションを開始する関数 レポート項目関数 ワークロード項目関数 インターフェイス
    function extern long <workloadFunction>(long i.node)
i.node の内容は次のとおりです。
    <CompanyInfo>
    <compnr> </compnr>
    <logcompnr> </logcompnr>
    <fincompnr> </fincompnr>
    </CompanyInfo>
常に XML ノードを返します。
    <WorkloadItems>
    <Item>
    <id> </id>
    <label> </label> 個人用設定ダイアログのラベル
    [<type> </type>] Long (将来必要が生じたときに拡張可能)。指定しない場合、フィルタは不可
    [<unit> </unit>] フィルタにのみ使用
    <countFunction> </countFunction>
    <sessionStartFunction> </sessionStartFunction>
    [<supportCount> </supportCount>] デフォルト = false
    [<supportAmount> </supportAmount>] デフォルト = false
    [<additionalInfo> </additionalInfo>] count および start 関数でさらなる読取を防ぐために、バックエンドに戻される xml ノード
    </Item>
    . . .
    </WorkloadItems>
例
    function extern long get.dashboard.workload.items(long i.node)
    {
    long items
    items = xmlNewNode("WorkloadItems")

    < 項目を追加 >

    return(items)
    }
項目ノードは次のようになります。
    <WorkloadItems>
    <Item>
    <id>wl_1</id>
    <label>Open Orders</label>
    <countFunction>get.open.orders.count</countFunction>
    <sessionStartFunction>start.open.orders</sessionStartFunction>
    <supportCount>true</supportCount>
    <supportAmount>false</supportAmount>
    <additionalInfo>
    <buyer>76300</buyer>
    </additionalInfo>
    </Item>
    <Item>
    <id>wl_2</id>
    <label>Created Orders greater than</label>
    <type>long</type>
    <unit>Eur</unit>
    <countFunction>get.create.orders.count</countFunction>
    <sessionStartFunction>start.create.orders</sessionStartFunction>
    <supportCount>true</supportCount>
    <additionalInfo>
    <buyer>76300</buyer>
    </additionalInfo>
    </Item>
    </WorkloadItems>
警告関数 インターフェイス
    function extern long <alertFunction>(long i.node)
i.node の内容は次のとおりです。
    <CompanyInfo>
    <compnr> </compnr>
    <logcompnr> </logcompnr>
    <fincompnr> </fincompnr>
    </CompanyInfo>
常に XML ノードを返します。
    <Alerts>
    <Item>
    <id> </id>
    <label> </label> 個人用設定ダイアログのラベル
    [<type> </type>] Long (将来必要が生じたときに拡張可能)。指定しない場合、フィルタは不可
    [<unit> </unit>] フィルタにのみ使用
    <countFunction> </countFunction>
    <sessionStartFunction> </sessionStartFunction>
    [<supportCount> </supportCount>] デフォルト = false
    [<supportAmount> </supportAmount>] デフォルト = false
    [<additionalInfo> </additionalInfo>] count および start 関数でさらなる読取を防ぐために、バックエンドに戻される xml ノード
    </Item>
    . . .
    </Alerts>
例
    function extern long get.dashboard.alerts(long i.node)
    {
    long items
    items = xmlNewNode("Alerts")

    < 項目を追加 >

    return(items)
    }
項目ノードは次のようになります。
    <Alerts>
    <Item>
    <id>al_1</id>
    <label>Open Orders</label>
    <countFunction>get.open.orders.count</countFunction>
    <sessionStartFunction>start.open.orders</sessionStartFunction>
    <supportCount>true</supportCount>
    <supportAmount>false</supportAmount>
    </Item>
    <Item>
    <id>al_2</id>
    <label>Late Orders</label>
    <type>long</type>
    <unit>days late</unit>
    <countFunction>get.late.orders.count</countFunction>
    <sessionStartFunction>start.late.orders</sessionStartFunction>
    <supportCount>true</supportCount>
    <imageLarge>td/ipu/bipuoutbox.gif</imageLarge>
    <imageSmall>td/ipu/bipuoutbox_s.gif</imageSmall>
    </Item>
    </Alerts>
計数関数 インターフェイス
    function extern void <countFunction >(long i.node)
i.node の内容は次のとおりです。
    <Item>
    <id> </id>
    <compnr> </compnr>
    <logcompnr> </logcompnr>
    <fincompnr> </fincompnr>
    [<amount> <amount>] タイプが定義されている場合
    [<additionalInfo> </additionalInfo>]
     </Item>
常に XML ノードを返します。
    <Item>
    <id> </id>
    <description> </description>
    [<count><count>]
     [<amount><amount>]
     [<amountDescription><amountDescription>]
    </Item>
例
    function extern long get.create.orders.count(long i.node)
    {
    string id(5)
    long amount
    long infoNode

    id = xmlDataElement$(i.node, "id", 0)
    amount = xmlDataElement$(i.node, "amount", 0)
    infoNode = xmlFindFirst("additionalInfo", i.node)

    select . . .
    . . .
    return(node)
    }
ノードは次のようになります。
    <Item>
    <id>wl_2</id>
    <description>Orders greater than 100.000 Eur</description>
    <count>5<count>
    </Item>
セッションを開始する関数 インターフェイス
    function extern void <sessionStartFunction>(long i.node)
i.node の内容は次のとおりです。
    <Item>
    <id> </id>
    <compnr> </compnr>
    <logcompnr> </logcompnr>
    <fincompnr> </fincompnr>
    [<amount> <amount>] タイプが定義されている場合
    [<additionalInfo> </additionalInfo>]
     </Item>
関数は何も返さず、セッションを開始します。 例
    function extern void start.create.orders(long i.node)
    {
    string id(5)
    long amount
    id = xmlDataElement$(i.node, "id", 0)
    amount = xmlDataElement$(i.node, "amount", 0)

    . . .
    start.session(., ., ., .)
    }
ノードは次のようになります。
    <Item>
    <id>wl_2</id>
    <amount>100000</amount>
    </Item>
レポート項目関数 インターフェイス
    function extern long <reportFunction>(long i.node)
i.node の内容は次のとおりです。
    <CompanyInfo>
    <compnr> </compnr>
    <logcompnr> </logcompnr>
    <fincompnr> </fincompnr>
    </CompanyInfo>
常に XML ノードを返します。
    <Report>
    <design> </design> レポート設計の名前
    [<parameterSession> </parameterSession>] エンドユーザによるパラメータを変更するために開始するセッション
    [<parameter
    [name=’. . .’] 属性 ｢name｣ はパラメータの名前を指定
    > </parameter>]* 各パラメータの値を指定
    </Report>
例
    function extern long purchased.order.amount.report(long i.node)
    {
    long node
    . . .
    return(node)
    }
ノードは次のようになります。
    <Report>
    <design>Purchased Order Amount</design>
    <parameterSession>gazzzreptest</parameterSession>
    <parameter name=’Period Table’>MONTH</parameter>
    <parameter name=’Start Date’>Jan 01, 2006</parameter>
    <parameter name=’End Date’>Dec 31, 2006</parameter>
    <parameter name=’Buyer’>jsmith</parameter>
    <parameter name=’Default Currency’>EUR</parameter>
    </Report>
ランタイム時、このノードはレポートに次のリンクを作成します。
    ... /run?__report=Report\Purchased Order Amount.rptdesign&Period Table=MONTH&Start Date=Jan 01, 2006&End Date=Dec 31, 2006&Buyer=jsmith&Default Currency=EUR
ユーザはこのリンクをクリックしてグラフを表示できます。たとえば、次の図を参照してください。 レポートにパラメータセッションを定義している場合は、パラメータボタンが表示されます。ユーザがこのボタンを押すと、対応するパラメータセッションが開始します。 作成したセッションを使用して、ユーザはパラメータを変更できます。 パラメータセッションは、Infor LN セッションです。このため、このセッションの開発時には、参照など Infor LN のプログラミング能力をすべて使用できます。choice.end.program セクションで、send.parameters.to.report(…) 関数を呼び出す必要があります。この関数は、パラメータの名前と値の組をこの順番で指定したパラメータを必要とします。以下の例を参照してください。
    choice.end.program:
    before.choice:
    send.parameters.to.report("Start Date", start.date, "End Date", end.date)
ランタイム時、このコードはバックエンドに対する呼出になります。例:
    <RESPONSE>
    <ARG NAME="callResult">
    <callResult>
    <SESSION ID="6-2" STATE="CLOSED">
    <REPORTPARAMETERS>
    <parameter NAME="Start Date">Jan 01, 2007</parameter>
    <parameter NAME="End Date">Jan 31, 2007</parameter>
    <processinfo>report_0</processinfo>
    </REPORTPARAMETERS>
    </SESSION>
    </callResult>
    </ARG>
    </RESPONSE>
この呼出の結果、ホームページは以下を実行します。 正しいレポートを検索し、パラメータを新しい値で置き換えます。値はレポートに送信されたパラメータについてのみ置き換えられます。レポートに送信されていないパラメータの値は変わりません。 グラフが表示されているペインを最新の情報に更新します。 関連トピック ホームページの概要 ホームページの構造 ホームページの配布 Infor によって配布される事前定義のホームページ To install and configure Homepages Infor LN ホームページを作成するには |