26
Retek ® Allocation 10.0.5 オペレーションガイドの補遺

Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek® Allocation™ 10.0.5

オペレーションガイドの補遺

Page 2: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの
Page 3: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

企業本部

Retek Inc. Retek on the Mall 950 Nicollet Mall Minneapolis, MN 55403 USA

888.61.RETEK (米国フリーダ

イヤル) 代表: +1 612 587 5000

ファックス: +1 612 587 5100

欧州本部:

Retek 110 Wigmore Street London W1U 3RW United Kingdom

代表: +44 (0)20 7563 4600

営業: +44 (0)20 7563 46 46

ファックス: +44 (0)20 7563 46 10

本マニュアルで説明されるソフトウェアは、ライセンス契約の

もとに提供され、Retek Inc. の機密情報であり、その契約条

件に従う場合にのみ使用できます。

本マニュアルの全部または一部を、Retek Inc. (Retek on

the Mall, 950 Nicollet Mall, Minneapolis, MN 55403) の書面

による明示的な許諾なくして複製または配布することはでき

ません。また、著作権情報は Retek Inc. の同意なしに削除

することはできません。

本マニュアルの情報は予告なく変更されることがあります。

Retek は内容の保全を図るため、製品資料を読み取り専用

フォーマットで提供します。Retek カスタマサポートは、Retek

の許可なく変更された資料についてはサポート致しかねま

す。

ここに記載された機能は、本文書のタイトルページの内容に

基づくものであり、本バージョンにのみ適用されます。同じソ

フトウェアコンポーネントの将来のリリースも含め、他のバー

ジョンのソフトウェアについては一切、適用されません。新

バージョンのソフトウェアリリースに伴い、ここに記載された

機能は変更される場合があります。Retek は、独自の裁量

に基づき、このような変更を加える権利を有するものとしま

す。

Retek® AllocationTM は、Retek Inc. の商標です。

Retek、および Retek のロゴは、Retek Inc. の登録商標で

す。

この情報は未公開であり、機密保持契約、企業秘密、およ

びその他の法律によって保護されています。出版に際して

は、次の事項に準拠するものとします。

©2005 Retek Inc. All rights reserved.

本マニュアルで言及されている他の製品名はすべて、各社

の商標または登録商標であり、それに準じた取り扱いをす

る必要があります。

米国にて印刷。

Page 4: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek エラー! プロパティ名に誤りがあります。

カスタマサポート

カスタマサポート時間帯

カスタマサポートは年中無休で、E-Mail、電話、Web アクセスにより、ご利用いただけます。

選択したサポートオプション (スタンダード、プラス、プレミアム) によっては、特定のサービスの

提供回数が制限される場合があります。重大度 1 の (深刻な) 問題の処理は、週 7 日間 (24

時間) ベースで行われ、問題が解決されるまで、アクティブメンテナンス中のすべてのクライア

ントは継続的に監視されます。Retek との間でアクティブメンテナンス契約を結んでいるお客様

については、契約条項に従い、次のいずれかの方法で各地域のカスタマサポートにお問い合

わせいただくことができます。

お問い合わせ方法 連絡先

E-Mail [email protected]

インターネット (ROCS) rocs.retek.com

Retek 社のお客様向け Web サイトです。問題に関する最新の情報を

参照することができます。

電話 +1 612 587 5800

各国のフリーダイヤルをご利用いただくこともできます。

オーストラリア +1 800 555 923 (AU-Telstra) または +1 800 000 562 (AU-Optus) フランス 0800 90 91 66

香港 800 96 4262 韓国 00 308 13 1342 英国 0800 917 2863

米国 +1 800 61 RETEK または 800 617 3835

メール Retek カスタマサポート

Retek on the Mall

950 Nicollet Mall

Minneapolis, MN 55403

カスタマサポートにご連絡いただく前に、下記の内容をご確認ください。

• 製品のバージョンおよびプログラム/モジュールの名前

• 具体的、技術的な症状 (業務に与える影響を含む)

• 問題の詳細な再現手順

• 正確なエラーメッセージ

• 問題の操作を確認できるスクリーンショット (手順ごと)

Page 5: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

目次

目次

第 1 章 – 序文 ..................................................................................... 1

第 2 章 - テクニカルアーキテクチャ .................................................. 3

処理ステージ 1 ................................................................................................................. 3 処理ステージ 2 ................................................................................................................. 4

第 3 章 – プログラムの概要................................................................ 5

インストール............................................................................................................... 5

構成............................................................................................................................... 5 RETL.................................................................................................................................. 5 RETL ユーザーと権限 ..................................................................................................... 5 環境変数 ............................................................................................................................ 6 alc_config.env の設定 ....................................................................................................... 6

モジュールの実行....................................................................................................... 7

スキーマファイル ............................................................................................................ 7 マルチスレッドとコマンドラインパラメータ ............................................................ 7

プログラムの機能....................................................................................................... 8

プログラムリターンコード ............................................................................................ 8 プログラムステータスコントロールファイル ............................................................ 8 再開/復旧 ........................................................................................................................... 9 メッセージログ機能 ...................................................................................................... 11 プログラムエラーファイル .......................................................................................... 11

.......................................................................... 12 Retek Allocation リジェクトファイル

実行とデバッグの一般的な状況............................................................................. 12

例 ...................................................................................................................................... 12

第 4 章 – プログラムリファレンス一覧............................................ 15

Retek Allocation のプログラム ................................................................................ 15

付録 A – アプリケーションプログラミングインターフェイス (API) 仕様 .................................................................................................. 17

ファイルのレイアウト............................................................................................. 17

i

Page 6: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

プロファイルのレコード定義 ...................................................................................... 17

スキーマファイル (profile.schema) ......................................................................... 20

ii

Page 7: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

第 1 章 – 序文 このドキュメントでは、Retek Allocation の RETL 処理の概要について触れ、Curve の値

を Retek Allocation に抽出する場合に使用されるエクスポートファイルの定義について

取り上げます。

Curve からの抽出には、最大 4 レベルのプロファイルが含まれます。デパートメントレ

ベル、クラスレベル、サブクラスレベル、およびアイテムレベルで構成されます。これ

らのレベルはすべて、正規化された単一のファイルに格納されます。このファイル内の

各レコードには、デパートメント、クラス、サブクラス、アイテムごとに専用の ‘長さ’ と、決められた位置が割り当てられ、子要素 1、子要素 2、子要素 3、子要素 4、および

サイズプロファイルの数量値が格納されます。レコードは、データ値ごとに、正確な位

置と長さ/パディング規則を使用してマッピングされている必要があります。

プロファイルのレベルに関係なく、各レコードには、店舗、子要素値 (4 つの子要素値

フィールドのいずれか)、および数量の値が格納されている必要があります。

デパートメントレベルのプロファイルには、デパートメントのデータ値が専用のデパー

トメントフィールドに格納されます。クラス、サブクラス、およびアイテムのフィール

ドには、値は一切格納されません。空のままになります。

クラスレベルのプロファイルには、デパートメントおよびクラスのデータ値が専用のデ

パートメントフィールドおよびクラスフィールドに格納されます。サブクラスおよびア

イテムのフィールドには、値は一切格納されません。空のままになります。

サブクラスレベルのプロファイルには、デパートメント、クラス、およびサブクラスの

データ値が専用のデパートメントフィールド、クラスフィールド、およびサブクラスフ

ィールドに格納されます。アイテムのフィールドには、値は一切格納されません。空の

ままになります。

デパートメント、クラス、およびサブクラスのレコードはすべて、ITEM_MASTER の特

定の子要素値からマッピングされた、非集計の子要素値だけが格納された状態で抽出さ

れ、エクスポートファイルの対応する子要素値に格納されます。エクスポートファイル

では、非集計の子要素が適切な diff_id にマッピングされている必要があります。

アイテムレベルのプロファイルには、トランザクションレベルアイテムのデータ値 (ファッション SKU) が、専用のアイテムフィールドに格納されます。デパートメント、ク

ラス、およびサブクラスのフィールドには、値は一切格納されません。空のままになり

ます。アイテムレベルのエクスポートレコードには、ITEM_MASTER の特定の子要素 ID からマッピングされた、集計と非集計の両方の子要素値が、エクスポートファイル

の対応する子要素位置に格納されます。

すべてのデータ値は、対応するフィールドの先頭位置から始まっていることが必要です。

個々のデータフィールドに割り当てられた長さを補完するパディングについては、デー

タの後ろに挿入されている必要があります。

標準的なプログラミング機能の概要のほか、抽出プログラムのリファレンスが記載され

ています。フラットファイルの仕様については、「付録 A – アプリケーションプログラ

ミングインターフェイス (API) 仕様」を参照してください。

1

Page 8: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの
Page 9: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

第 2 章 - テクニカルアーキテクチャ このモジュールは、Retek Extract Transform and Load (RETL) フレームワークと連携して

動作します。このアーキテクチャによって、データ処理ツールの性能を最大限に引き出

し、並列処理機能を利用したデータベースのバッチ処理が可能となります。

RETL フレームワークを実行すると、XML スクリプト内に含まれる有効な演算子が解析

されます。

次の図は、抽出処理アーキテクチャの概念を示したものです。サイズプロファイルアー

キテクチャは、この図に従って動作します。

このアーキテクチャには、2 つのステージが使用されています。以降、各ステージにつ

いて説明します。

一時的なステージングテーブル

ステージ 2 マージ/アップサートプロセス

エクスポート先テーブル (ALC_SIZE_PROFILE)

ステージ 1Allocation

Extract/Transform/Load プロセス

プロファイルデータファイルインターフェイスおよび

スキーマRMS ータベース

(アイテムマスター)

RETL 処理アーキテクチャ

処理ステージ 1 ステージ 1 では、プロファイルデータをインポートし、RMS ITEM_MASTER テーブル

に対して必要な情報を照会します (アイテムレベルのプロファイルのみ)。このステージ

から生成される結果は、アイテムレベルのプロファイルとデパートメント/クラス/サブ

クラスレベルのプロファイルが格納された一時的なテーブルです。

詳細な処理の流れは次のとおりです。

1 デパートメントレベルのプロファイルをステージングテーブルに直接挿入します。

2 クラスレベルのプロファイルをステージングテーブルに直接挿入します。

3 サブクラスレベルのプロファイルをステージングテーブルに直接挿入します。

3

Page 10: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

4 アイテムレベルのプロファイルの場合、ITEM_MASTER テーブルの照会が必要とな

ります。トランザクションレベルアイテムの処理ロジックでは、ITEM_MASTER テーブルに対して 3 段階のレフトジョインを実行することによって、親および祖父母

アイテムごとの集計インジケータが取得されます。アイテムファイルは、次に、ア

イテムマスターテーブルから対応するアイテム ID を照会し、

ITEM_AGGREGATE_IND = ‘Y’ である親アイテムまたは祖父母アイテムの ID を STYLE として使用します。その後、これらのアイテムレベルのプロファイルが、ス

テージングテーブルに挿入されます。

エラー処理

親および祖父母の存在しないアイテムレコードにはすべて、警告のフラグが設定されま

す。入力データファイル内のアイテムのうち、ITEM_MASTER テーブル内のアイテムと

一致しないアイテムにはエラーのフラグが設定されます。

処理ステージ 2 ステージ 2 では、プロファイルレコードを、最終的なエクスポート先である ALC_SIZE_PROFILE テーブルに挿入し、更新します。

詳細な処理の流れは次のとおりです。

1 デパートメント、クラス、サブクラス、スタイル、店舗、サイズ 1、サイズ 2、サイ

ズ 3、サイズ 4 が一致した場合は、数量を更新します。

2 それ以外の場合、レコードを挿入します。

4

Page 11: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

第 3 章 – プログラムの概要 この章では、Retek Allocation のロード処理で使用される RETL プログラムの機能を簡単

に説明します。RETL ツールの詳細については、最新の『RETL Programmer’s Guide』を

参照してください。

インストール Retek Allocation RETL. をインストールするディレクトリを選択します。このディレクト

リ (MMHOME) に、Retek Allocation RETL のすべてのファイルが抽出されます。

RETL フレームワークでは、抽出、トランスフォーメーション、ロードの各処理中、次

のコードツリーが使用されます。これらのコードツリーについては、本ドキュメントで

後述します。

<base directory (MMHOME)>

/data

/error

/log

/rfx

/bookmark

/etc

/lib

/schema

/src

構成

RETL Retek Allocation RETL を構成、実行する前に、RETL バージョン 11.1 以降をインストー

ルしてください。次の手順に進む前に、‘verify_retl’スクリプト (RETL のインストール時

に一緒に展開されます) を実行し、RETL が正常に機能していることを確認します。

RETL ユーザーと権限

Retek Allocation RETL は RETL ユーザーとしてインストール、実行する必要があります。

また、『RETL Programmer’s Guide』に従って権限を設定する必要があります。Retek Allocation RETL では、テーブルデータの読み取り、作成、削除、および更新が実行され

ます。これらの権限が正しく設定されていないと、処理中にエラーが発生します。

5

Page 12: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

環境変数

ご使用のバージョンの RETL に対して設定する必要のある環境変数については、

『RETL Programmer’s Guide』を参照してください。MMHOME を Retek Allocation RETL のベースディレクトリに設定する必要があります。これは、インストールプロセス時に

選択した最上位のディレクトリになります (前出の「インストール」を参照)。.kshrc で、

次の行を追加してください。

export MMHOME=<base directory for RMS RETL>

alc_config.env の設定

バッチモジュールを実行する前に、Retek Allocation で、alc_config.env ファイル内の環境

パラメータが正しいことを確認してください。ローカルの設定によっては、変数を修正

しなければならない場合もあります。

RETL の構成

1 RETL スクリプトを実行する UNIX のアカウントで UNIX サーバーにログインしま

す。

2 $MMHOME/rfx/etc ディレクトリに移動します。

3 alc_config.env スクリプトを修正します。

a DBNAME 変数を、Retek Allocation データベースの名前に変更します。次にその

例を示します。

export DBNAME=int9i

b RMS_OWNER 変数を Retek Allocation スキーマオーナーのユーザー名に変更しま

す。次にその例を示します。

export RMS_OWNER=steffej_rms1011

c BA_OWNER 変数を Retek Allocation バッチユーザーのユーザー名に変更します。

次にその例を示します。

export BA_OWNER=rmsint1011

また、alc_config.env、.kshrc など、パスワードが参照されている可能性のあるファイル

で、環境変数 PASSWORD を設定する必要があります。次の例では、alc_config.env に行

を追加し、データベースへのログインパスワードとして ‘mypasswd’ を使用するように

設定しています。

export PASSWORD=mypasswd

6

Page 13: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

モジュールの実行

スキーマファイル

RETL では、スキーマファイルを使用して、入力データセットまたは出力データセット

のフォーマットを指定します。スキーマファイルでは、各カラムのデータ型とフォーマ

ットが定義されます。RETL は、この定義に基づいてデータを処理します。スキーマフ

ァイルの名前は、普段はほとんど変更されないため、各モジュール内にハードコーディ

ングされます。すべてのスキーマファイルは、‘.schema’ という拡張子で ‘rfx/schema’ ディレクトリに置かれます。スキーマファイルの詳細については、最新の『RETL Programmer’s Guide』を参照してください。

Retek Allocation モジュールのスキーマファイルには、profile.schema という名前が付けら

れています。詳細については、「付録 A – アプリケーションプログラミングインターフ

ェイス (API) 仕様」を参照してください。

マルチスレッドとコマンドラインパラメータ

UNIX の定義で言うところのマルチスレッドとは異なり、Retek Allocation のマルチスレ

ッドは、1 つの RETL プログラムが、複数回実行される (別個のグループのデータが同

時に処理される) ことを意味します。マルチスレッドによって、全体の処理にかかる時

間を短縮することができます。

この Retek Allocation モジュールの場合、マルチスレッドは "不可欠" であり、ファイル

ベースのモジュールは入力ファイルごとに一回だけ実行されなければなりません。

alcl_size_profile モジュールの場合、次の 2 つ入力パラメータが必要となります。

• プランニングソリューションからの (一意の名前を持つ) 入力データファイル。

• 一意のスレッド番号。スレッド番号は内部的に使用されます。出力ファイルやテー

ブル名前とは一切関係ありません。

次の例では、小売業者が 3 つの入力ファイルに対し、alcl_size_profile.ksh モジュールを 3 回実行するシナリオを想定しています。

alcl_size_profile.ksh ${MMHOME}/data/alc_size_profile.dat.1 1

alcl_size_profile.ksh ${MMHOME}/data/alc_size_profile.dat.2 2

alcl_size_profile.ksh ${MMHOME}/data/alc_size_profile.dat.3 3

7

Page 14: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

プログラムの機能

注:このセクションでは、Retek Allocation とは関係のない RETL プログラムが、

一部の例で使用されています。これらのプログラムは、例示のみを目的として言及

されています。

抽出プログラムは RETL フレームワークで記述され、次のような機能があります。

• プログラムリターンコード

• プログラムステータスコントロールファイル

• 再開/復旧

• メッセージログ機能

• プログラムエラーファイル

• リジェクトファイル

プログラムリターンコード

RETL プログラムでは、処理が正常に終了したかどうかがリターンコードで示されます。

プログラムが正常に実行された場合はゼロ (0) が返されます。プログラムでエラーが発

生した場合は、ゼロ以外が返されます。

プログラムステータスコントロールファイル

同じデータに対して 2 つの同じプログラムが実行されてしまう事態を防ぐため、Retek Allocation RETL のコードでは、プログラムステータスコントロールファイルが利用され

ています。各モジュールの実行時に、alc_config.env が実行され、プログラムステータス

コントロールファイルの存在がチェックされます。このファイルが存在する場合、

‘${PROGRAM_NAME} has already started’ というメッセージが記録され、モジュールの

実行が中止されます。このファイルが存在しない場合は、プログラムステータスコント

ロールファイルが作成され、モジュールが実行されます。

モジュールの実行中にエラーが発生した場合、プログラムステータスコントロールファ

イルは削除されません。この場合は、ユーザーがコントロールファイルを削除してから、

モジュールを再度実行する必要があります。

8

Page 15: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

ファイル命名規則

プログラムステータスコントロールファイルには命名規則が設けられ、入力にテキスト

ファイルを受け取るプログラムを異なるファイルに対して複数回実行できるようになっ

ています。

プログラムステータスコントロールファイルの名前とディレクトリは、設定ファイル (alc_config.env) の中で設定します。既定では、このディレクトリは $MMHOME/error になります。プログラムステータスコントロールファイルには、既定では次の規則に準拠

したピリオド区切りのファイル名が付けられます。

• プログラム名前

• 出力ファイル名 (コマンドラインで指定された場合)

• ‘status’

• モジュールが実行された日付

たとえば、2001 年 1 月 5 日にバッチ実行された、invildex というプログラムのプログラ

ムステータスコントロールファイルには、次のような名前が付けられます。

$MMHOME/error/invildex.invilddm.txt.status.20010105

再開/復旧

RETL では、(一度に 1 レコードずつではなく) すべてのレコードがまとめて処理される

ため、再開と復旧の方法は Pro*C の場合と異なります。再開/復旧プロセスは、次の 2 点を目的としています。

1 プログラムやデータベースの障害によるデータの損失を防ぐ。

2 プログラムまたはデータベースの障害が発生した場合に、必要な再処理を限定する

ことにより、

再開時のパフォーマンスを向上させる。

Retek Allocation RETL の再開/復旧

Retek Allocation RETL モジュールは、データをフラットファイルからインポートし、必

要に応じてトランスフォーメーションを実行した上で、データを該当する Retek Allocation テーブルにロードします。

このモジュールは、単一の RETL フローを使用しており、再開/復旧プロセスは不要で

す。抽出プロセスが何らかの理由で失敗した場合、プログラムを修復した後で、プロセ

ス全体を再度実行すれば、データの損失は生じません。テキストファイルを入力として

受け取るモジュールの場合は、モジュールを再実行するにあたり、次の 2 つの選択肢が

あります。

1 入力ファイル全体を使用してモジュールを再実行する。

2 初回実行時に正常に処理されなかったレコードだけを使用して、モジュールを再実

行し、

9

Page 16: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

その結果生成されたファイルを、前回の出力ファイルと連結する。

10

Page 17: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

メッセージログ機能

メッセージログは、後述のフォーマットで毎日出力されます。

デイリーログファイル

すべての RETL プログラムは、開始と終了時に、デイリーログファイルにメッセージを

出力します。デイリーログファイルの名前とディレクトリは、設定ファイル (alc_config.env) の中で設定します。既定では、このディレクトリは $MMHOME/log にな

ります。すべてのログファイルは UTF-8 でエンコードされます。

デイリーログファイルには命名規則が設けられ、既定では次の規則に準拠したピリオド

区切りのファイル名が付けられます。

• モジュールが実行された日付

• ‘.log’

たとえば、2001 年 1 月 5 日に記録されたログファイルの場所と名前は次のようになりま

す。

$MMHOME/log/20010105.log

フォーマット

次の例に示したように、ログファイルに出力されたすべてのメッセージには、プログラムの名前とタイムスタ

ンプのほか、情報メッセージとエラーメッセージのいずれかが含まれています。

cusdemogdm 13:20:01: Program Starting...

cusdemogdm 13:20:05: Build update and insert data.

cusdemogdm 13:20:13: Analyze table rdw10dev.cust_demog_dm_upd

cusdemogdm 13:20:14: Insert/Update target table.

cusdemogdm 13:20:23: Analyze table rdw10dm.cust_demog_dm

cusdemogdm 13:20:27: Program Completed...

通常、プログラムが異常終了した場合、問題がどのプロセスで発生したかを示すエラーファイルが出力さ

れます。エラーファイルに詳細情報を出力するまでもないような一部の問題 (単に、出力

ファイルが指定されていないなど) については、ログファイルにエラーメッセージとし

て出力される場合もあります。

プログラムエラーファイル

デイリーログファイルの他にも、各プログラムによって、それぞれの詳細なフローメッ

セージやエラーメッセージが出力されます。これらのメッセージは、デイリーログファ

イルに一緒に書き込まれるわけではありません。各プログラムでは実行のたび、発生し

たエラーを独立したエラーファイルに出力します。

11

Page 18: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

プログラムエラーファイルの名前とディレクトリは、設定ファイル (alc_config.env) の中

で設定します。既定では、このディレクトリは $MMHOME/error になります。このエラ

ーファイルには、特定のプログラムで、特定の日付に発生したすべてのエラーおよびす

べてのルーチン処理メッセージが書き込まれます。たとえば、RETL の呼び出しで生成

された stderr および stdout の両方がこのファイルに保存されます。すべてのエラーファ

イルは UTF-8 でエンコードされます。

プログラムエラーファイルには命名規則が設けられ、既定では次の規則に準拠したピリ

オド区切りのファイル名が付けられます。

• プログラム名前

• 最初のファイル名 (コマンドラインで指定された場合)

• モジュールが実行された日付

たとえば、2001 年 1 月 5 日にバッチ実行された slsilddm というプログラムについての

エラー情報と詳細なログ情報は、すべて次のファイルに格納されます。

$MMHOME/error/slsildmdm.slsildmdm.txt.20010105

Retek Allocation リジェクトファイル

Retek Allocation モジュールでは、データ関連の問題 (必要なルックアップテーブルにデ

ータが見つからなかったなど) が発生した場合、リジェクトファイルが生成されます。

実行されたモジュールは、まず、すべてのデータを処理するよう試み、その上で、レコ

ードをリジェクト (拒否) したことを通知します。したがって、データに関する問題はす

べて、1 つのパスで識別、修正されることになります。その後、モジュールを再実行す

れば、処理を正常終了させることができます。モジュールによってレコードがリジェク

トされた場合、リジェクトファイルは自動では削除されません。リジェクトファイルは、

モジュールの再実行前にユーザー自身が削除する必要があります。

注:詳細については、「第 2 章 - テクニカルアーキテクチャ」の「エラー処理」

も参照してください。

実行とデバッグの一般的な状況 以下の例は、プログラムの種類ごとに、実行とデバッグの一般的な状況を取り上げたも

のです。例の中でログやエラーに使用されているファイル名は、モジュールが 2001 年 3 月 9 日に実行されたと仮定して付けられています。

Run alcl_size_profile.ksh:

1 $MMHOME/rfx/src ディレクトリに移動します。

2 UNIX プロンプトで次のように入力します。

%alcl_size_profile.ksh <input datafile 1> <thread #>

12

Page 19: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

...

モジュールが正常に実行された場合の結果を次に示します。

• ログファイル: 実行日のログファイル (20010309.log) に、“Program started …” および “Program completed successfully” という、alcl_size_profile についてのメッセージが出

力されます。

• データ: Retek Allocation データベースに、抽出レコードが格納された alc_size_profile テーブルが存在します。

• エラーファイル: プログラムのエラーファイル (alcl_size_profile.20010309) には、標準

的な RETL フロー (“All threads complete” および “Flow ran successfully” で終了する) だけが記録され、その他のエラーメッセージは出力されません。

• Program status control:プログラムステータスコントロールファイル (alcl_size_profile.status.20010309) は存在しません。

• リジェクトファイル: リジェクトファイルは存在しません。

モジュールが正常に実行されなかった場合の結果を次に示します。

• ログファイル: 実行日のログファイル (20010309.log) には、“Program completed successfully” という、rmse_stores についてのメッセージは出力されません。

• データ: Retek Allocation データベースに、alc_size_profile テーブルが存在しますが、

このテーブルには、プロファイルファイルのインターフェイスから一部のレコード

しか抽出されていない場合があります。

• エラーファイル: 通常、プログラムエラーファイル (alcl_size_profile.20010309) に、エ

ラーメッセージが記録されています。

• プログラムステータスコントロール: プログラムステータスコントロールファイル (alcl_size_profile.status.20010309) が存在します。

• リジェクトファイル: このモジュールはレコードをリジェクトしないため、リジェク

トファイル (alcl_size_profile.status.20010309) は存在しません。

• ブックマークファイル: このモジュールは再開/復旧を使用しないため、ブックマー

クファイル (alcl_size_profile.bkm.20010309) は存在しません。

モジュールの再実行

1 エラーの原因となった問題を特定し、修正します。

2 プログラムステータスコントロールファイルを削除します。

3 $MMHOME/rfx/src ディレクトリに移動します。UNIX プロンプトで次のように入力

します。

% alcl_size_profile.ksh <input datafile 1> <thread #>

13

Page 20: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek Allocation

14

Page 21: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

第 4 章 – プログラムリファレンス一覧 本章は、Retek Allocation プログラムの参考資料としてお読みください。

この章および「付録 A」の API フラットファイル仕様を熟読し、Retek Allocation に読み込まれるすべての抽出データを、テーブル

やカラムレベルまで把握することをお勧めします。

Retek Allocation のプログラム プログラム名 抽出される

テーブル/ファイル

抽出されるフィー

ルド エクスポート

先のファイル

またはテーブ

エクス

ポート

先のフ

ィール

フィールドの

型 フィ

ール

ドの

長さ

alcl_size_profile.ksh item_master item Alc_size_profile

item_parent Use item_parent as style if

Item_parent_aggregate_ind

= ‘Y’

item_grandparent Use item_grandparent as

Style if item_grandparent_

aggregate_ind = ‘Y’

item_aggregate_ind

item_parent_aggregate_ind

style VARCHAR2(25)

25

15

Page 22: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek エラー! プロパティ名に誤りがあります。

プログラム名 抽出される

テーブル/ファイル

抽出されるフィー

ルド エクスポート

先のファイル

またはテーブ

エクス

ポート

先のフ

ィール

フィールドの

型 フィ

ール

ドの

長さ

item_grandparent_aggregate_ind

profile file dept dept NUMBER(4) 4

class class NUMBER(4) 4

subclass subclass NUMBER(4) 4

store store NUMBER(10) 10

size1 size1 VARCHAR2(10)

10

size2 size2 VARCHAR2(10)

10

size3 size3 VARCHAR2(10)

10

size4 size4 VARCHAR2(10)

10

qty qty NUMBER(12,4)

17

16

Page 23: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

付録 A – アプリケーションプログラミング

インターフェイス (API) 仕様

ファイルのレイアウト • 略称: 階層における値の略称です (デパートメントの場合は D など)。

• ITEM_MASTER 値: RMS ITEM_MASTER テーブルのフィールドデータです。

• ALC_SIZE_PROFILE 値: Retek Allocation ALC_SIZE_PROFILE テーブルのフィールド

データです。

• SQL データ型: フィールドに使用できる有効な 3 つのデータ型および最大長を識別

する SQL データ型です。この長さを超えるフィールド値は格納できません。有効な

データ型を次に示します。

文字: 文字 (a、b、c…)、数値 (1、2、3…)、および特殊文字 ($、#、&…) を格納

できます。

数値: 数値 (1、2、3…) のみを格納できます。

日付: 特定の年、月、日を格納できます。

• RETL データ型: スキーマファイルで識別されるデータ型です。

• null を許容?: フィールドに null 値を格納できるかどうかを示します。このセクショ

ンには、‘yes’ または ‘no’ が格納されます。‘yes’ の場合、そのフィールドには null 値は格納できません。‘no’ の場合、そのフィールドには null 値が許容されます (必ず

しも null 値が格納される必要はない)。

プロファイルのレコード定義

略称 ITEM_MASTER 値

ALC_SIZE_ PROFILE 値

SQL デー

タ型 RETL データ

null を許

容?

D DEPT DEPT NUMBER (4)

Int16 (len=4)

Yes

C CLASS CLASS NUMBER (4)

Int16 (len=4)

Yes

SUBCLASS SUBCLASS NUMBER (4)

Int16 (len=4)

Yes

I ITEM STYLE VARCHAR2 (25)

String (len=25)

Yes

S

17

Page 24: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek エラー! プロパティ名に誤りがあります。

略称 ITEM_MASTER 値

ALC_SIZE_ PROFILE 値

SQL デー

タ型 RETL データ

null を許

容?

L n/a STORE NUMBER (10)**

Int64 (len=10)

No

1 DIFF_1 SIZE1 VARCHAR2 (10)

String (len=10)

Yes

2 DIFF_2 SIZE2 VARCHAR2 (10)

String (len=10)

Yes

3 DIFF_3 SIZE3 VARCHAR2 (10)

String (len=10)

Yes

4 DIFF_4 SIZE4 VARCHAR2 (10)

String (len=10)

Yes

Q n/a QTY NUMBER (12,4)

Dfloat (len=17)

No

“BLANKS” Null values Null values Null values Null values

レコードフォーマット: D...C...S...I........................L.........1.........2.........3.........4.........Q.............. 1...5...9...13.......................38........48........58........68........78........88..........105 D、C、S、I、L、1、2、3、4、Q の定義については、表 1 を参照してください。数値は、固定幅フ

ィールドにおける適切な位置を示しています。実際のフィールド長をわかりやすく、ピリオドを使

って示しています。以下の例において、diff1 は色を表す集計子要素で、diff2 はサイズを表す非集計

子要素です。

合計レコード長 = 104

[デパートメントのみ]

1001 1000000000 XXL 0.2 1001 1000000000 XL 0.3 1001 1000000000 L 0.2 1001 1000000000 M 0.1 1001 1000000000 S 0.1 1001 1000000000 XS 0.1

[デパートメント、クラスレベルのみ]

10012000 1000000000 XXL 0.2 10012000 1000000000 XL 0.3 10012000 1000000000 L 0.2 10012000 1000000000 M 0.1 10012000 1000000000 S 0.1

18

Page 25: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

エラー! スタイルが定義されていません。

10012000 1000000000 XS 0.1

[デパートメント、クラス、サブクラスレベル]

100120002050 1000000000 XXL 0.2 100120002050 1000000000 XL 0.3 100120002050 1000000000 L 0.2 100120002050 1000000000 M 0.1 100120002050 1000000000 S 0.1 100120002050 1000000000 XS 0.1

[アイテムレベル]

1000000000 1000000000Color02 XXL 0.2 1000000000 1000000000Color02 XL 0.3 1000000000 1000000000Color02 L 0.2 1000000000 1000000000Color02 M 0.1 1000000000 1000000000Color02 S 0.1 1000000000 1000000000Color02 XS 0.1 1000000100 1000000000Color01 XXL 0.2 1000000100 1000000000Color01 XL 0.3 1000000100 1000000000Color01 L 0.2 1000000100 1000000000Color01 M 0.1 1000000100 1000000000Color01 S 0.1 1000000100 1000000000Color01 XS 0.1 1000000100 1000000000Color02 XXL 0.2 1000000100 1000000000Color02 XL 0.3 1000000100 1000000000Color02 L 0.2 1000000100 1000000000Color02 M 0.1 1000000100 1000000000Color02 S 0.1 1000000100 1000000000Color02 XS 0.1

注:角かっこ ([…]) で囲まれたテキストは、補足説明のみを目的としたものであり、実際のフ

ァイルには存在しません。

19

Page 26: Retek Allocation 10.0 - Oracle · 2005-11-04 · イテムマスターテーブルから対応するアイテム id を照会し、 item_aggregate_ind = ‘y’ である親アイテムまたは祖父母アイテムの

Retek エラー! プロパティ名に誤りがあります。

20

スキーマファイル (profile.schema) 以下は、Curve エクスポートファイルを Retek Allocation の ALC_SIZE_PROFILE テーブルにロードす

るための RETL スクリプトで使用される RETL スキーマファイル (profile.schema) を表しています。

<RECORD type="fixed" len="104" final_delimiter="0x0A">

<!-- start pos 1 --> <FIELD name="DEPT" len="4" datatype="int16" nullable="true" nullvalue=""/>

<!-- start pos 5 --> <FIELD name="CLASS" len="4" datatype="int16" nullable="true" nullvalue=""/>

<!-- start pos 9 --> <FIELD name="SUBCLASS" len="4" datatype="int16" nullable="true" nullvalue=""/>

<!-- start pos 13 --> <FIELD name="ITEM" len="25" datatype="string" nullable="true" nullvalue=""/>

<!-- start pos 38 --> <FIELD name="STORE" len="10" datatype="int64" nullable="false"/>

<!-- start pos 48 --> <FIELD name="SIZE1" len="10" datatype="string" nullable="true" nullvalue=""/>

<!-- start pos 58 --> <FIELD name="SIZE2" len="10" datatype="string" nullable="true" nullvalue=""/>

<!-- start pos 68 --> <FIELD name="SIZE3" len="10" datatype="string" nullable="true" nullvalue=""/>

<!-- start pos 78 --> <FIELD name="SIZE4" len="10" datatype="string" nullable="true" nullvalue=""/>

<!-- start pos 88 --> <FIELD name="QTY" len="17" datatype="dfloat" nullable="true" nullvalue=""/>

<!-- end pos 105 -->

</RECORD>