[解説] エンティティ連結された項目のデータ型を変更する方法

はじめに

複数のエンティティをまたいでデータを扱う際に便利な「エンティティ内部連結」機能ですが、連結された属性の項目のデータ型を変更する場合には、少し注意が必要です。

本記事では「連結した項目のデータ型を変更しようとしても、元に戻ってしまう」という現象の原因と、正しい対応方法についてご紹介します。

困った現象

他のエンティティから連結した項目「製造日」がデータ型「文字列」になっていたから「日付時刻」に変更したい!

ところが次のような経験はないでしょうか。

「項目のデータ型を変えるには項目設定」と考え、項目を右クリック → [項目設定] からデータ型を変更し、[適用する] を押したところ……

データ型が「文字列」に戻ってしまった!

この現象の理由

この現象は不具合ではなく、連結項目のデータ型は「連結元(参照先)」の設定が優先されるという仕様によるものです。そのため、連結先(表示している側)でデータ型を変更しても、連結元のデータ型の設定が変わっていない場合は、元の型に戻ってしまいます。

対応方法(正しい設定手順)

手順1

連結項目を配置しているパネルを右クリック[連結エンティティ]→[連結先] からデータ型を変更したい連結元エンティティを選択します。

手順2

連結元エンティティの入出力コンテキストが表示されるので、ここで連結されている対象項目のデータ型を変更します。(例:文字列 → 日付時刻)

手順3

[適用する] を選択し、元のパネル(連結項目を設定している画面)に戻ります。

手順4

連結項目のデータ型が、設定した型に自動的に反映されていることを確認します。

あとは、必要に応じて表示形式や部品種類などを調整し、[適用する] を選択すれば完了です。

なお、コンテキサーではデータソース(データベースやcsvファイルなど)からコンテキストを作る際、最初はデータ型が“文字列”としてコンテキストが作成されます。

今回のケースのように、日付として扱いたいデータ項目は、データソースから作成した後にデータ型を“日付時刻”に変えておけば、今回のようなトラブルを防ぐことができます。

まとめ

・連結項目のデータ型は、連結元の設定が最優先
・表示側で変更しても、元に戻る場合は仕様によるもの
・データ型を変更したい場合は、必ず連結元エンティティ側で設定する

この仕様を理解しておくことで、データ連結時の「なぜか反映されない」といったつまずきを防ぐことができます。

ぜひ、同様のケースでお困りの際に参考にしてみてください。

今回のような内容を丁寧に解説し、また実際にコンテキサーで手を動かす実習を含む「ユーザートレーニング」というプログラムをご用意しております、詳細はお問い合わせください。

コメントを残す