XMLファイルをWindows標準機能のみで編集しようとしたところ意外と難しかったので備忘がてら記事を書いておきます。Dynamics 365 Business Centralで行き当たった問題でしたが、D365BC以外にも使えると思います。
まずはD365BCの画面から。権限セットを編集する画面です。(D365BCに興味の無い方も少々お付き合いください。)
”Z_Test”という権限セットの内容を定義する画面です。画面中央の4行が権限セットに含まれる権限を表しています。
これを以下のように2行追加したい、というのがテーマです。D365BCではもちろん画面から手で追加できるのですが、大量に追加したい場合、手入力だと辛いのでXMLファイルを編集しましょう、という話です。
まずは権限セットの一覧画面に戻り、該当の権限セットをエクスポートします。
ダウンロードフォルダに落ちてきますので、適当な場所に移します。
分かりやすい名前に変更します。そしてメモ帳で開きます。
XMLファイルが開きました。選択判定した部分が4行の権限に対応しています。2行追加するだけなら手で頑張れなくもないですが、、大量に追加するのは厳しいです。
そこでExcelを使います。リボンに”Developer”タブを表示しておくことが前提条件です。
リボンにDeveloperタブが表示されていない場合は(おそらく多くの方は表示されていないと思いますが)、リボンの適当な場所で右クリックして”Customizing Riboon(リボンのカスタマイズ)”を選択します。
すると、以下のような画面が開きます。ここで”Custom Ribbon”セクションの”Developer”にチェックを入れます。
リボンのDeveloperタブを表示した状態でXMLファイルをExcelで開きます。
”Use the XML Source Task Pane”(XMLソースタスクペインを使用)を選択
右側に表示されているXMLソースの枠から編集対象の階層の要素を選択してドラッグアンドドロップ。今回はTenantPermissionを選択。
すると画面にテーブルが表示されます。データが表示されていないのでTableDesignタブのRefreshをクリック。
するとデータが表示されます。
適宜、追加したいデータを行追加。
DeveloperタブからExportを選択。
別名でXMLファイルを保存します。
メモ帳で開いてみましょう。
追加した行が正しくXMLファイルに書き出されていることが分かります。
元のファイルと比較します。すると、第1階層、第2階層の内容が異なる事が分かります。このまま取り込んでもエラーになりますので、元ファイルの第1階層、第2階層の内容を新しいファイルにコピーします。
このようになります。これを上書き保存します。
保存されました。
XMLファイルをインポートします。
上書きモードで取り込みを指定。
”Choose”でファイルを選択。
ファイルを指定します。
取り込まれました。正しく取り込まれたか、確認します。該当の権限セットを選択し、”Permission”を選択。
すると”Z_TEST”のPermissionSetが開かれました。正しく追加されていることが分かります。
件数が少なければ正直なところ手で書いた方が早いくらいですが、50件、100件となると面倒ですし間違いも起きますので、機械的にコピペなどで作りたいところです。
まあ、XML編集のツールをインストールして使えばもっと簡単にできる気もしますが、会社のPCでインストールできないとか、ツールに金かけたくないとか、色々理由もあると思いますのでExcelで出来るという事も覚えておいて損はないと思います。