前回の記事では項目数が少ない簡単なマスタをExcelから更新する方法について書きましたが、今回はもう少し複雑なマスタとして得意先マスタをExcelで更新してみます。新規登録の際に編集不可項目でエラーが出るので少し工夫が必要です、という話です。
D365BCにサインインしてCustomerを検索。
得意先の一覧画面です。リスト形式になっていない場合はリスト形式に変更しておいた方が結果確認が容易です。(そのままでも問題はないです。)
Page > Edit in Excel を選択し、、
Excelを保存。この辺は前回と同じ手順。
ファイルが保存出来たら開きます。
新規登録してみます。Excelのテーブル内でどこかのセルにカーソルを合わせて「新規」ボタンを押すと、
新規行が作成されます。
試しに一番最後の行をコピーして新規行を作ります。そのままではキー重複するのでコードは変更し、名称も分かるように変えておきます。他は全てコピペです。
右の方に行くと「Balance_LCY」という項目があります。これは売掛の残高を示す項目で、編集不可の項目です。(別テーブルで持っている内訳の合計金額が計算される仕組みになっています。)
上の行をコピペしたので同じ金額が入っているわけですが、そのまま「公開」を押してみると、、
エラーになりました。。メッセージセンターを開きます。
読み取り専用項目に値を入れたのでエラー、という旨のメッセージが出ています。読み取り専用項目を一つずつ特定して対処するのは結構面倒なので別の方法がないか試みます。
まずは、一旦ExcelをBCの最新の状態に戻すため、「更新」を押します。
追加した行が削除されることになるので警告が出ますが、「はい」を選択すると行削除されます。
改めて新規行を追加し、今度はコード(No.)と名称(Name)のみを入力して「公開」を押します。
すると無事に追加されました。
その後、改めて上の行の残りの列をコピペします。
編集不可項目の「Balance_LCY」にも値が入っています。(コピペしたので。)そして「公開」します。
すると「読み取り専用項目は更新されない」旨のメッセージが表示されますので「はい」を選択します。
すると読み取り専用項目には値が書き込まれず、エラーも出ずに更新できました。
読み取り専用項目は「Balance_LCY」以外にも例えば最終更新日(Last_Date_Modified)などもありますが、Excelの値ではなく、BC側で計算された値がセットされます。
2件のコメント