D365BCのデータをExcelから更新する(3)


前回の記事「CDSのエンティティデータをExcelで編集する(2)」ではCDSのエンティティデータをExcelで編集する際に1Excelブックで複数エンティティを編集しようとするとエラーになる事を紹介しました。今回の記事ではDynamics 365 Business Central ではエラーにならない事を説明します。

(D365BC的には以前の記事「D365BCのデータをExcelから更新する(1)」と「D365BCのデータをExcelから更新する(2)」の続編になります。)

まずはD365BCにサインイン。サインインの方法は過去記事参照で割愛。サインイン直後の画面で虫眼鏡ボタンをクリック。

「Payment」という単語で検索し、「Payment Method」機能を実行します。

支払方法(ex.銀行払いとか、クレカ払いとか)を管理するマスタです。Pageタブから「Edit in Excel」をクリック。

すると、Excelがダウンロードされますので開きます。(今回はChromeで実行しています。たのブラウザの場合、それぞれに応じてダウンロードファイルの場所を特定して開いてください。)

この時点ではデータが表示されません。「編集を有効にする」をクリック。

Payment Method(決済方法)の一覧が表示されました。認証を要求された場合、D365BCにサインインしているアカウントで認証を通して下さい。CDSと異なり、D365BCの場合はこの時点でデザインボタンが表示されています。(2019/12/22時点では)

デザインボタンは後回しにして、Excelブックを開いた状態で Alt + F11 を押します。するとVBAのエンティティデータが開きます。CDSの Edit in Excel と同様に「data_cache」という隠しシートがあります。

data_cacheシートのVisibleプロパティを、、

「-1 – xlSheetVisible」に変更します。

CDS同様、data_cacheシートが表示され、OData/Jsonで制御されていることが分かります。

別のエンティティを編集する用のシートを1枚新規作成した後、デザインボタンを押します。

「+テーブルの追加」を指定し、

追加対象テーブルをプルダウンから選びます。

今回は Payment Terms にします。Payment Method と名前が似ていますが「支払条件」という別のエンティティです。(月末締め翌々月末払い、のような支払サイトを管理するマスタです。)

エンティティとしてPayment Termsを選択したら「次へ」。

次はExcelで編集する対象のフィールドを選択します。

「使用可能なフィールド」から対象のエンティティのフィールどを一つないし複数選択し、「選択されたフィールド」の「追加」をクリック。今回は全項目を選択しました。

「選択されたフィールド」に先に選択した項目がセットされた事を確認して「完了」。

上書き注意メッセージが表示されますが、特に困る事は無いので「はい」を選択。

Payment Terms の列項目がExcelに表示されました。コネクタのダイアログには Payment Method と Payment Terms の両方のテーブルが表示されています。「完了」をクリック。

データは表示されません。。「更新」をクリックしてみます。

無事、データが表示されました!

両方のエンティティにデータを更新可能でしょうか?
試してみましょう。Payment Termsに1レコード追加し、、

Payment Methodにも1レコード追加し、「公開」をクリック。

レコードが追加されたか確認します。
Payment Methodは問題なく追加されています。

PaymentTermも追加されています。

data_cacheシートはどの様になっているのでしょうか?
D列はPayment Methodが12レコード存在し、その下にPayment Termsが12レコード存在します。(レコード数が同じなのは偶然です。)

A列にはエンティティ名、B列にはエンティティのレコードの件数…ではなくD列の「開始位置」が記載されています。ただし、1つ目は「0」で表されます。つまりPayment MethodsはD列のテーブルの0行目(Excel的にはD3セル)から、Payment TermsはD列のテーブルの12行目(Excel的にはD15セル)から記載されています。(3つ目のエンティティを追加して同様に実験するとよくわかります。)

念のため、右の方にスクロールしてデータを確認します。各シートで追加したレコードがいい感じに挿入されていることが分かります。 

この仕組みを活用すると、D365BCの初期設定を行う上で必要なテーブルを一つのExcelブックにまとめることができるので、初期設定が簡単に出来そうです。あるいは、仕入先、得意先、銀行…などの主要マスタを含めたExcelをユーザーに渡してユーザー自身で初期データ移行してもらう、といった使い方もできそうです。

1件のコメント

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です