リソースの件名の部分文字列を利用した条件で凡例を色分けできますか。
ドミノのリソース予約DBのフィールド(特にメールDBの予定文書で件名に当たる項目)の扱いはご存じのように複雑に感じる人もいるでしょう。メールや会議招集でいわゆる「件名(Subject)」に当たる「予約の説明」は以下のような振る舞いをしています(Ver.9.0.1現在)。よってOnTimeで会議室の予約を凡例機能で色分けしたい場合は→「凡例(Legends)のアイテム設定のノーツ式で使用できるフィールドについて」のようなシンプルな方法のノーツ式では書けません。本ページではその背景と利用が可能なノーツ式のサンプルをご案内します。
■リソース予約DBで直接予約を新規作成する時
画面左上にメールDBの会議招集で言うところの「件名」にあたる「予約の説明」枠があります。
■リソース予約DBで直接予約を新規作成した後
予約文書を開き直すとフォームの種類が変わっているので「予約の説明」枠も右上に移動します。フィールド名は「Purpose」です。この時点ではフィールドの種類はテキスト扱いです。
■リソース予約DBで予約をした後に再編集をした後
しかし、予約文書を「日時」や「予約の説明」など項目にかかわらず編集保存してしまうと「予約の説明」枠のフィールドは「Purpose」のままですが、種類はなんと!リッチテキストに変わってしまいます。
■メールDBから会議招集のロジックを使用して予約をした後
では次にメールDBから通常の会議招集を利用してリソースの予約を行った場合は件名はどのフィールドに保存されるか確認しましょう。会議招集時の「件名(Subject)」は存在せず、同じ値が2つのフィールドに保存されています。
リソース単体予約で保存される「予約の説明(Purpose)」というフィールドも存在しますが、新たに「Topic」というフィールドも作成されています。それぞれシーケンス番号が違うので保存のタイミングが違うようですね。さてどちらを利用すべきなのでしょうか?
■デザイナーで設計を見ると。。。。。
「予約の説明」にあたるPurposeフィールドの設計を見ると、デフォルト値に「Purpose」があるなら「Purpose」を、無ければ「Topic」を利用となっています。このデフォルト値のノーツ式を尊重してOnTime 日本チームは以下のような設定をサンプルとしてご案内いたします。
■OnTimeの凡例の条件式には以下のような式をサンプルとしてご案内します
上記のように、どのフィールドを使用する、またリッチテキストの値はプレーンテキストとして条件式で利用する、ということから以下のようなノーツ式をサンプルとしてご案内します。
@Contains( @AbstractSimple( @If( @IsAvailable(Purpose) ; "Purpose" ; "Topic") ) ;"ここに文字列を記述")
例えば役員が行う会議は必ず「役員会議」という言葉が含まれ、それによって凡例の色分けを行いたい時は以下のようになります。
@Contains( @AbstractSimple( @If( @IsAvailable(Purpose) ; "Purpose" ; "Topic") ) ;"役員会議")
実際の凡例(Legends)のアイテムとしては下図のような登録になります。
ちなみに上記式で使用している@関数の意味はノーツ式のヘルプでは、、、
- @Contains
—文字列に、指定された部分文字列が含まれているかどうかを調べます。 - @AbstractSimple
—テキストフィールドまたはリッチテキストフィールドの短い要約を作成します。 - @If
—条件を評価し、条件がTrueのときは条件の直後に記述された処理を実行し条件の評価を終了します。 - @IsAvailable
—文書を調べて指定されたフィールドがあるかどうかを確認します。
と記載されています。詳細はノーツ式のマニュアルをご参照ください。
さて、ご存じのようにOnTimeの凡例は様々な条件を自組織の環境に合わせて設定頂けます。上記内容はあくまでもサンプルです。ご利用の際は実際の環境に合わせてノーツ式は適宜修正してご利用下さい。