仕事でD365BCのEdit in Excel を色々といじったので少し整理してみます。
Edit in Excel はExcelからBCのデータを更新できる機能です。うまく使うとデータ移行から日常運用のマスタメンテナンスまで、生産性を劇的に向上できるツールです。
まずはDynamics365ポータルからD365BCにサインイン。
Edit in Excelを実験するマスタとして今回は「Payment Method(決済方法)」を使います。
(他のマスタでも構いませんが、項目数が手ごろなのでこのマスタを使います。)
虫眼鏡アイコンから検索ワードを入力してPayment Methodを選択。
(余談ですが、いつの間にか電球アイコンから虫眼鏡アイコンに戻りましたね。。)
Payment Methodの一覧画面です。決済方法として銀行(Bank)とか現金(Cash)などが存在するのが分かります。メニューの「Page」から「Edit in Excel」をクリック。
ファイルを保存します。(保存せずに開くでもExcelからの編集はできますが、後々再利用できるので保存しておく方がベターです。)
保管場所を適当に作ってファイルを保存。
保存したExcelを開きます。
最初の状態ではデータは表示されていません。これは、この時点で認証が通っていないからです。「編集を有効にする。」を選択。
初回のみ、アドインのインストール処理が必要です。「アドインを信頼」を選択。
アドインのインストール(信頼)が終わると以下の画面になります。右側にアドインの情報が表示されています。少し寄り道して歯車アイコンを押してみます。
サーバーのサーバーのURLとか、言語設定が確認できます。キャンセルボタンで戻ります。
サインインボタンを押してサインインします。
IDとパスワードを入力してサインイン。
エラーが出た場合はExcelを一旦閉じて最初からやり直すとよいです。
サインインすると色々と処理が走ります。右側のアドインのボックスの下の方に表示されます。
アドインのアプレットが読み込まれているようです。
メタデータを取得しているようです。
データが表示されました。
では実際にExcelで編集してD365BCを更新してみましょう。まずはデータの更新から。
既存コードの説明文言(Descripition)を変更します。そして「公開」ボタンを押します。(更新、ではないことに注意です。更新だと、BCのデータをExcelに反映することになります。(向きが逆です。)
更新が成功しました。
BCに反映されたか見てみましょう。反映されていますね。
次にデータを新規追加してみます。Excel上で新規コード(今回は「BANK2」にします)を追加し、Excelアドインの「公開」をクリック。
BCを見てみましょう。反映されていない、、?こういうときは「F5」ボタンを押します。一見ブラウザのリロードですが、単にBCのリストをリロードしてくれます。
追加されていることが確認できました。
次は削除です。今しがた追加したコードをExcel上で削除し、公開ます。(行選択して削除)
本当に削除してよいか確認する警告メッセージが出ますので、「はい」を選択して公開。
(更新のみの場合は出ないくせに、削除の場合だと削除と更新を聞いてくるのは謎。。)
BCに戻って確認します。削除されていることが分かります。
エラーはどのように表示されるでしょうか?
新規追加でわざとキー重複を起こしてみます。既存のコードと同じ文字列(今回はMULTIPLE)を追加して「公開」
重複のエラーが表示されます。
別のエラーも見てみます。許容されていない値を入れた場合。
B列はTrueかFalseの2択ですが、それ以外の値を入れて公開してみます。
エラーが表示されました。ご丁寧にハイライトされています。エラーの詳細情報があるようなので、「メッセージセンターを開く」をクリック。
許容されない値が入力された旨が表示されています。
メッセージに「行12へ移動」とありますのでクリックしてみると、該当のエラー行に飛びます。
データのクレンジングが捗りますね。
メッセージセンターの「エラーのみ」フラグをOFFにしてみると、成功した処理も表示れます。最初のユーザー認証処理も記録されています。
Excelの編集時に注意すべきこととして、Excelのテーブルを使っていることを意識してください。
たとえば、行コピーして行貼り付けして新規行を作成した場合、認識されないことがあります。
本来はキー重複エラーになはずですが、「公開」ボタンを押してもエラーになりません。
Excelでテーブル選択のプルダウンを表示し「AxTableXX」を選択すると、最終行が範囲外になっていることが分かります。テーブルに含まれていないので、そもそも更新対象にならず、エラーにならなかった、という理屈です。
ひとしきりExcelでデータ更新しつつ、BCに戻るとセッションタイムアウトで接続が切れていましたw
逆にいうとBCのセッションが切れてもExcelから更新可能ということです。つまり、Excel自体がBCのサーバー(というかサービス)に接続してユーザー認証も通したうえで更新している、ということの証明でもあります。
3件のコメント