今回はDynamicsのメタデータを使用した設定変更。
シンプルなものでカスタマイズをしてみます。
オプションセット選択肢作成の煩わしさを解消
例えば、住所の入力で都道府県を入力するケースがあるとしましょう。
都道府県は手入力によるデータの揺らぎ防止のため、カスタムのオプションセットから入力させるケースも少なくないと思います。
その場合、都道府県のオプションセットを作成するときに、47都道府県を選択肢に登録する必要があります。
都道府県のオプションセットはソリューションのオプションセットから、作成することができます。
都道府県は47個あるので、47回選択肢を追加する作業をしないといかず面倒です。
1つ1つ手入力していくと、抜け漏れは入力間違いなど、人為的ミスにも繋がるのので、選択肢の追加を機械的に行いたいところです。
メタデータから選択肢を追加
上記選択肢を一個一個登録する手間を解消するため、機械的に一括で作成する方法があります。
それが、カスタマイズ用のメタデータを編集する方法です。
以下の方法については、Dynamicsのコアな部分をいじることになるため、必ずバックアップを取得し、なおかつ動作については自己責任でお願いします。
メタデータとは?
カスタマイズで設定した内容をXMLファイル化したものがメタデータとなります。
設定変更するたびに、Dynamicsのシステム側でメタデータが自動反映され、ユーザ側からはXMLファイルの編集を意識することなく、UIベースで変更することが可能になります。
メタデータを取得する
メタデータはソリューションのエクスポートから取得可能です。
まずはソリューションをエスクポートします。
エクスポートする際は、必ずアンマネージドを選択してください。
Zipファイルでエクスポートされますので、解凍します。
何個かファイルかフォルダがありますが、カスタマイズした内容は「customizations.xml」に記載されています。
こちらを開きます。
customizations.xmlはいろいろな内容が記載されていますが、今回はオプションセット選択肢の一括追加が目的なので、optionsetsタグの部分を参照します。
先ほど定義した都道府県の名前「new_todofuken」で検索かけると早いです。
すると、このようなXML文が記載されているかと思います。
customizations.xml
<optionsets>
<optionset Name="new_todofuken" localizedName="都道府県">
<OptionSetType>picklist</OptionSetType>
<IsGlobal>1</IsGlobal>
<IntroducedVersion>0.0.0.1</IntroducedVersion>
<IsCustomizable>1</IsCustomizable>
<ExternalTypeName></ExternalTypeName>
<displaynames>
<displayname description="都道府県" languagecode="1041" />
</displaynames>
<Descriptions>
<Description description="" languagecode="1041" />
</Descriptions>
<options>
<option value="100000000" ExternalValue="" Color="#0000ff">
<labels>
<label description="北海道" languagecode="1041" />
</labels>
<Descriptions>
<Description description="" languagecode="1041" />
</Descriptions>
</option>
</options>
</optionset>
</optionsets>
先ほど定義したオプションセットがこのように定義されています。
optionタグの中に定義した選択肢が記載されています。
もうお分かりですね。
ここに記載されているoptionタグを増やすことで、選択肢を追加することができます。
北海道で記載されている内容(黄色マーカー部分)をベースとして、赤字の部分を他の都道府県に置き換えれてあげればOKです。
optionタグのvalue属性には一意の数値が入りますので重複しなければOKです。
こちらは、1ずつ増やしておきましょう。
optionタグの作りかたとして、まずExcelで都道府県とValue値の対応表を作成します。
都道府県は、ググれば一覧が出てきて容易にコピーできますし、B列のValue値はオートフィル機能で採番してしまえばOKです。
次に、北海道のoptionタグの内容(黄色マーカーのXML文)を別列に貼り付け。
再度、XMLファイルに貼り付ける時にダブルクォーテーションが残ってしまうので、改行は全て除いて貼り付けます。
そして、文字列と値(XMLの赤字部分)の部分をA列とB列から参照するようにします。
あとは、その数式を47都道府県分コピーすれば、都道府県名と値が変わったoptionタグが数式によって表示されます。
最後にその数式の値を、customizations.xmlをoptionsタグ直下に貼り付けます。
字下げなどの整形はしなくてもOKです。
この状態でcustomizations.xmlを保存して、再度Zipファイルで固めます。
Zipで固めたら、ソリューションのインポートをしてカスタマイズした内容を取り込みます。
インポートが完了すると、この通り、選択肢が増えています。
メタデータの書き方が分かれば他のことでも対応可能
今回はオプションセットの選択肢を例にとりましたが、customizations.xmlのメタデータの書き方が分かっていれば、様々なカスタマイズをXMLのテキスト上で設定することができます。
ただし、冒頭でもお伝えしたように、Dynamicsのコアとなる内容のため、下手に編集すると、ソリューションが壊れかねません。
必ず実施前はバックアップをとって、あくまで自己責任の範囲内でお願いします。
コメント