前回の記事ではCDSとBCの双方にデータが存在し、紐づけられているケースについて検証しました。今回は片方にしかデータがない場合でもう片方にデータレコードを新規作成するケースを検証します。
1. BCで新規作成→CDSに連携
まずはBCでCustomerを1件新規作成し、CDSに連携。
Customerの一覧画面で「+新規」
テンプレートを聞かれるがどちらでも可。今回はB2Bのテンプレートを使用。 新規作成する得意先の名称を入力。鉛筆ボタンで照会モードに切り替えてデータを確定(保存)
同期を実行。
CDSに対応するレコードがないので「Coupling」を新規作成して良いか聞かれる。このCouplingがミソ。はいを選択。
このような画面が表示される。この画面で今回新規作成した得意先のCoupling設定を指定する。
ここでの選択肢は2つ。CDSのレコードを新規作成するか、既存のCDSレコードを指定して紐づけを行う。今回は前者とする。CDSのレコードを新規作成する場合、CreateNewスイッチをONにする。
同期が実行される。 実行結果ログを確認。
CDSに 1件作成された。
作成されたCDSのレコードを確認する。直接CDS側で見てもよいが、より明確に紐づけ先レコードを確認するため、BCから照会する。BCの得意先マスタのカードページのどこかにある「Account」ボタンを虫眼鏡ボタンから検索して選択。
新規タブが開き、CDS側のAccountレコードフォームが開く。名称が正しく連携されている。ここまでは順調。
2. CDS側で新規作成→BCに連携
CDSでCustomerを1件新規作成する。「+New」ボタンを押下。 新規作成画面が開く。
名称を適当に作成してSave。
BCから同期を実行する。( CDSから同期実行するメニューがありそうだが不明。CRM連携は存在した気がする。)
同期を実行。いろいろな画面から同期は実行できるが、今回はSetup画面からの例。
対象の4マスタのうち、得意先だけ同期実行する場合は、Customer以外の行を削除する。点々ボタンを押して「さらに選択」を選ぶと、、
複数選択できる。Customer以外を選択して削除。
Customerだけ残った状態でSync All。
はい、を選択。
ログを確認する。
ログを確認。
1件も作成されていない。。失敗。
原因はこちら。テーブルマッピングでBCのCustomerとCDSのAccountを紐づけているが、そこでフィルターが掛かっている。ただ、一覧画面上で条件を見ると「Field6=1,…」のように項目名がサッパリわからない仕様になっている。
が、慌てず点々ボタンを押すと条件がフィールド名称で確認できる。CDSがわで新規作成したレコードがこの条件を満たしているかを確認し、必要に応じて修正する。
画面から更新したいところだが、実は条件で指定されている項目は標準のフォームに含まれない項目なので編集できない。(これは改善してほしいところ。。)よって、Excelから編集する。Excelでデータ編集」ボタンを押すと、、
Excelがダウンロードされるので開く。
編集を有効にする。
初回はこのようにPower Appsのアドインのインストール確認が表示される。信頼して進める。
サインインする。ここで使用するアカウントはBCにサインインしていたアカウント。
Excelでデータを確認。RelationshipTypeがブランクになっている。ここはCustomerにすべき。
StatusはActiveなので問題ない。
Company 列は2つ存在する。Lookupとついているほうはハズレ。他のレコードを見ると先に見たBC-CDSのマッピングテーブルのフィルタ条件値と異なる。
こちらのCompanyがブランクになっているのがCDSからBCに同期されない原因。
BCのフィルタ条件値(=上のレコードと同じ値)を指定する。
RelationTypeにはCustomerを指定。そして右下のPublishボタンを押す。
Publishが成功すると、Company(Lookup)列に値がセットされる。実は、Company列の値をキーにしてCDSのCompanyエンティティから値を取ってきている。
BCに戻り同期を実行。
先ほどと同様に同期を実行する。
はい、を選択して同期実行。
テーブルマッピングから、、
ログを確認。
1件の新規レコードがBCの得意先に作成された。(そしてここでもCDSではなくCRMと書いてあるw)
BCの得意先一覧を確認するとCDSからAccountが同期してCustomerが新規作成されていることがwかる。成功!
なお、この検証をしている際に以下のエラーが何度か出た。確証はないが、BC側で複数インスタンスを持たせたときに発生するような気がする。実は途中から別の検証目的でProduction2を作成した後くらいからエラーが発生した。そして最後はProduction2で同期の実験を行った。CompanyのIDはGUIDだと思うのだけど、ProductionもProduction2もGUIDが同じだったので、そこが悪さしているような。。。確証はないけど。
次回はExcelでデータ編集しなくて済むよう、CDS側のフォームに項目追加します。
1件のコメント