28.10.2014 Views

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!