はじめに
本記事ではMicroStrategyにおける
IDとDESCの設定不備によっておこる挙動についてご紹介します。
ID・DESCとは
アトリビュートに設定できるものです。
他のカラムをキーとして名称や説明などを取得したい際にDESCに設定すると
IDをキーに、データを取得することができます。
IDにはコード、DESCには説明や名称などを設定することが多いです。
ケース
今回のケースではエリアの名称が定期的に変わる場合を想定します。
当時のエリア名称:エリア名称 ※トランザクションから取得
最新のエリア名称:エリア名称(マスタ)※マスタから取得
データベースには以下のデータが格納されているとします。
※こちらは記事用に準備したテストデータです。
AAAの名称が東京エリア→関東エリアに変わったことがわかります。
上記の通り、トランザクション当時の名称を取得するためデータベースのまま
画面上でも取得できることが正しいです。
本来であればIDにエリア名称をセットするべきですが
マスタから取得するときのようにIDとDESCにカラムをセットします。
そうすると以下のように表示され、トランコード4の名称が
関東エリアではなく東京エリアで表示されてしまいます。
これはトランザクションのエリアコードをキーにエリア名称を取得するので
実行するたびに値が変わったり、maxがセットされたりなど正しい値を取得できません。
「名称や説明はDESCで設定する」という誤った理解をしたまま実装するとこのような不備が発生します。またデータが変わらないと検知できないため、初期での検知は難しくとも、のちの不具合に繋がる可能性があります。
さいごに
製品仕様を理解していないと発生する事象かと思います。
また検知してから水平展開で改修するとなると相当な工数がかかります。
そのため開発からこのような細かい仕様を把握しておくことが重要となります。
以上、みなさまの業務の一助となれましたら幸いです。