最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

a.16. 2000年問題 其の拾陸

[ Previous ] [ HOME ] [ Upper ] [ Next ]


ああ疲れる

午前中は、ボーナス処理、インセンティブデータダウンロードプログラム修正、マーケティング分析データ作成、分析ローデータミスの訂正ほか、をやらされた挙げ句、本国からの依頼をやって、2000年問題を継続。あーもう、誰のためにやっているのだろう?キレソウダ。

ヒットが多くてアウト

誕生日を範疇に入れるため、年を1932から有効にしたのだが、年のみのフィールドの検索のため、2桁も32から99にしてしまったので、ヒットが多い。2桁の年は、もっと範囲を縮めるべきだ。せいぜい、70から99くらいか?でも、再実行はしなかった。そもそも「年」だけのフィールドなんて少ない。本当なら、%SSTを使うべきところだが、旧遺産の引継でこうなってしまった。

さて、DDSを修正して、自動変換プログラムのソース生成で、転送をするフィールドをファイルに落としているので、それと、一致しないデータを検索してみた。言い忘れたが、このデータから日付を探すきっかけは、COLHDGの間違いを発見したときからだった。xx日とxx時間なのに、xx時間とxx時間とソースがかかれていた。コピーしたのだろう。これでは、COLHDGを信用できない。そこで、このデータからの検索を思いついたのだ。その、取り漏れも無く、今回の検索はうまくいっている。しかし、対象外データが多い。

そこで、QRYでDATFMTがY(上記のごとく)をはずして、*OTHRや*ZEROや*NONEもはずして、画面で眺めた。通常の数字も、前よりヒットが多く、「出現率」もだいたいが10%未満と少ない。ファイルライブラリー(改ページ)と出現確率(降順)をキーとする事で、見やすくなる。それにしても、無駄なフィールドが多いので、レコード選択をする事にした。

NLIKE、NLIST

QRYでは、NLIST、NLIKEが使える。NLISTは、2個以上の要素を指定して、それではないもの、という指定。これで無駄なライブラリー名をはずした。尚、2行以上も入力できるし、後から、1行挿入したいときは、NLIKEの行でF9を押せば、新しく入力行が挿入される。

NLIKEで、気をつけるべきは、

  • NLIKE '%SEQ#%'とすると、SEQ#を含む文字列がはずれ、

  • NLIKE 'SEQ#%'とすると、SEQ#で始まる文字列がはずれる。

しかしながら、

  • NLIKE '%SEQ#'は無効で、なにも反応しない。つまり、SEQ#で終わるものをはずせない。

仕方ないので、

NLIKE '%SEQ# %'として、SEQ#の後に一つスペースを入れる。ここでは、フィールド名を対象とするので、途中にスペースが入らないのと、10文字ぎりぎりの名前が無いのを利用した。これで、最後がSEQ#で終わるものをはずすことが出来る。

日付形式をどうしようか

ところで、日付形式はどのようにしようか。JISやISOでは、YYYY-MM-DDとスラッシュではなくハイフンだ。これを、年2桁で帳票や画面に出す場合は、YY/MM/DDでいいのだろうか。それとも、YY-MM-DDだろうか。場合によっては、システム値の修正もしなくてはならない。さらに、EDTCODEのYの修正もしなくてはならない。

友人から電話で、「どーして画面ファイルのDDSのキーワードは年2桁のままなのだ?」と言ってきた。DATEキーワード(ジョブ日付)のことだ。私に言わないで欲しい。「表示だけだから、00/01/31でもいいんじゃやない?」とは答えたが、V4R1でも変わっていない。パラメータが増えたのだろうか?

このあと、論理ファイル、RPG、CLPを、FNDSTRPDMにユーザーオプションを指定して、対象となったフィールドを検索してゆく。論理ファイルは%SSTなどの検査をしなくてはならない。でも、プログラムの中で、パラメータとして受けたものは、ファイルのフィールド名ではないので、ヒットしない。このあたりは注意だ。

続く...


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

Ads by TOK2