Getting Started - Magic Software DEVNET Japan - Magic Software ...
Getting Started - Magic Software DEVNET Japan - Magic Software ...
Getting Started - Magic Software DEVNET Japan - Magic Software ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
第 21 章 - グループレベル 処 理<br />
1 . はじめに<br />
データソースに 格 納 されている 複 数 のレコードが [ 共 通 の 要 素 ]を 持 つ 場 合 があります。たとえば、< 受 注 明 細 行 >デー<br />
タソースでは、 同 じ 受 注 番 号 を 持 つレコードを 一 つのグループとして 参 照 することができました。もう 一 つの 例 としては、 都<br />
市 と 国 の 関 係 があります。つまり、ある 国 に 属 する 複 数 の 都 市 は、 一 つのグループを 構 成 していると 見 なすことができます。<br />
<strong>Magic</strong> uniPaaS では、グループと 見 なせる 一 まとまりのデータを 処 理 するときに 便 利 な、[グループロジックユニット]が 用<br />
意 されています。<br />
[グループロジックユニット]は、バッチタスクだけで 使 用 することができます。<br />
また 実 際 には 次 の2つのグループロジックユニットがあります。<br />
•[グループ 前 ]<br />
•[グループ 後 ]<br />
グループロジックユニットで 使 用 するグループの 順 番 は、タスクのソート 条 件 (メインソースのインデックス、またはソー<br />
トテーブル)に 一 致 している 必 要 があります。<br />
本 章 では、< 印 刷 : 国 別 都 市 一 覧 >プログラムをグループロジックユニットを 使 用 して 作 成 しましょう。<br />
2 .[グループロジックユニット]について<br />
グループロジックユニットはデータビューの 作 成 処 理 を 実 行 しているときに[ブレーク]を 発 生 させます。<br />
グループロジックユニットを 使 用 して、ある 処 理 レベルでの 合 計 を 計 算 したり、グループ 単 位 でのデータ 出 力 をしたり、あ<br />
るいは 帳 票 印 刷 時 のブレーク 処 理 を 行 なわせることができます。<br />
グループロジックユニットに 対 して、グループ 項 目 を 一 つ 定 義 します。このグループ 項 目 の 値 が 変 わるときにグループロ<br />
ジックユニットが 起 動 されます。<br />
一 つのタスク 内 で、 複 数 のグループ 項 目 を 定 め、それぞれの 項 目 に 対 応 する 複 数 のグループロジックユニットを 定 義 するこ<br />
とができます。<br />
グループロジックユニットの 順 序 は、タスクのソート 条 件 に 定 義 されたセグメント 項 目 の 順 序 と 一 致 しなければなりませ<br />
ん。たとえば、タスクメインソースのインデックスセグメントが、< 国 コード>,< 都 市 コード>の 順 序 で 定 義 されていると<br />
きには、グループロジックユニットも 同 じ 順 序 で 定 義 されなければなりません。つまり、まず< 国 コード> 項 目 に 対 応 するグ<br />
ループロジックユニットが 定 義 され、その 次 に< 都 市 コード> 項 目 に 対 応 するグループロジックユニットが 定 義 されなければ<br />
なりません。<br />
ソート 条 件 のセグメント 定 義 で 使 用 している 項 目 の 一 部 のみを 用 いたデータのグループ 化 は 可 能 ですが、その 場 合 でも 順 序<br />
の 上 下 関 係 は 維 持 しなければなりません。ただし、ソート 条 件 のセグメントの 中 間 項 目 を 用 いてグループ 化 したデータは、 予<br />
想 しない 結 果 となる 場 合 があります。<br />
3 . グループロジックユニットの 実 行 順 序<br />
グループロジックユニットがタスク 内 に 定 義 されたとき、<strong>Magic</strong> エンジン 内 部 の 処 理 がどのようになるかについて 理 解 して<br />
おくことはとても 重 要 です。<br />
<strong>Magic</strong> エンジンはソート 順 (インデックスまたは 所 定 のタスクソート 条 件 )に 従 ってメインソースレコードを 順 に 読 込 みま<br />
す。<br />
•[グループ 前 ]は、グループ 項 目 の 最 初 のレコードが 処 理 される 前 に 実 行 されます。<br />
•[グループ 前 ]は、[レコード 前 ]よりも 前 に 実 行 されます。<br />
•[グループ 後 ]は、グループ 項 目 の 最 後 のレコードが 処 理 された 後 に 実 行 されます。<br />
•[グループ 後 ]は、[レコード 後 ]よりも 後 に 実 行 されます。<br />
グループロジックユニットに 定 義 されたグループ 項 目 の 値 が 変 わったとき、すなわち、 新 しく 読 込 まれたレコード( 次 回 処<br />
理 するレコード)と 現 在 レコードとでグループ 項 目 の 値 が 異 なるときに、[グループ 後 ]が 実 行 され、また 続 いて[グループ<br />
前 ]が 実 行 されることになります。<br />
まとめると、<strong>Magic</strong> エンジンの 内 部 処 理 は 次 の 順 序 で 行 なわれるようになります。<br />
タスク 前<br />
グループ 前 ( 最 初 のレコード、およびグループ 項 目 値 が 変 化 したとき)<br />
364 <strong>Getting</strong> <strong>Started</strong><br />
<strong>Magic</strong> uniPaaS V1Plus