Microsoft Dynamics 365 Finance & Supply Chain 接続:販売注文を取り込む
Microsoft Entra ID でアプリを登録し、Finance & Operations の中でも同じアプリを登録してユーザーを紐付け、環境 URL と 3 つの認証情報フィールドを Integration に入力、テスト・マッピング確認・有効化で販売注文が入ってきます。
Microsoft Dynamics 365 Finance & Supply Chain コネクタは、Finance & Operations 環境の販売注文を OMS に取り込み、倉庫が手入力し直さずに履行できるようにします。この接続が今日行うのはそれだけです。販売注文を取り込みますが、顧客の取込、在庫の読取、在庫やその他のデータの Dynamics 365 への返送は行いません。1 接続で 1 環境に対応し、入力した環境 URL がその環境を直接指します。
前提条件#
- サインインできる Microsoft Dynamics 365 Finance & Supply Chain(Finance & Operations)環境と、その環境アドレス(例:https://myorg.operations.dynamics.com)。
- Microsoft Entra ID でアプリを登録できる管理者アクセス。または、代わりに登録してテナント ID・クライアント ID・クライアントシークレットを渡してくれる IT 管理者。
- Finance & Operations 内のシステム管理アクセス:アプリは F&O 内でも登録し、ユーザーに紐付ける必要があります。そのユーザーには販売注文データを読み取れるロールが必要です。Entra ID にだけ認証情報があっても、それだけでは足りません。
- クライアントシークレットは作成したらすぐに安全な場所に保管してください。値は一度だけ表示され、後から読み直すことはできません。
認証情報の取得#
- 環境 URL:Finance & Operations 環境のアドレスを使います。例:https://myorg.operations.dynamics.com。ベースアドレスだけをコピーし、末尾に /data を付けないでください。
- テナント ID とクライアント ID:Microsoft Entra ID で App registrations を開き、新しいアプリを登録し(または IT 管理者が登録したアプリを開き)、概要ページで Directory (tenant) ID と Application (client) ID をコピーします。
- クライアントシークレット:同じアプリで Certificates & secrets を開き、新しいクライアントシークレットを作成します。その値をすぐにコピーしてください。値は一度だけ表示され、ここで使えるのは値だけで、横に表示されるシークレット ID ではありません。
- Finance & Operations 内でアプリを登録:F&O で System administration → Setup → Microsoft Entra ID applications を開き、同じクライアント ID の行を追加し、販売注文データを読めるロールを持つユーザーに紐付けます。この手順を省くと、全フィールドが正しくても下のテストは失敗します。
Integration への入力#
- Integration → コネクタマーケットプレイス → Microsoft Dynamics 365 Finance & Supply Chain → 新規接続を開きます。
- environment_url — 環境 URL、必須:Finance & Operations 環境のアドレス。例:https://myorg.operations.dynamics.com。ベースアドレスだけを入力し、末尾に /data を付けません。環境を特定するのはこのフィールドです。この接続には環境名や会社の別フィールドはありません。
- tenant_id — テナント ID、必須:Microsoft Entra ID のアプリ登録の概要ページにある Directory (tenant) ID。xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式の GUID です。
- client_id — クライアント ID、必須:同じ概要ページにある Application (client) ID。認証情報の手順で Finance & Operations 内に登録した ID と完全に同じものを使ってください。両者は一字一句一致している必要があります。
- client_secret — クライアントシークレット、必須:Entra ID の Certificates & secrets でコピーしたシークレットの値(値であり、シークレット ID ではありません)。シークレットとして保存され、再表示されることはありません。
接続テスト#
テストは 2 段階で実行され、エラーメッセージでどちらの段階が失敗したか分かります。まず必須項目の欠落をチェックします(環境 URL がないと MISSING_ENV_URL、テナント ID がないと MISSING_TENANT_ID、クライアント ID またはシークレットがないと MISSING_CLIENT_SECRET)。次にクライアント ID とシークレットを使って、テナント向けに Microsoft サインインへアクセストークンを要求します。シークレットが間違っていると、ここで INVALID_CREDENTIALS で失敗します。その後、そのトークンを使って環境から販売注文を 1 件だけ読み取ります(SalesOrderHeadersV2 データエンティティ、1 レコードのみ)。Microsoft がトークンを発行しても Finance & Operations がその読取を 401 で拒否した場合、結果は INVALID_TOKEN となり、これはほぼ常に、アプリが F&O 内に登録されていないか、ユーザーが紐付いていないことを意味します。403 の場合は MISSING_SCOPE で、紐付いたユーザーに販売注文データを読めるロールがないことを意味します。テストは環境の応答を最大 12 秒待ちます。環境が遅いと時間だけで失敗することがあるので、その場合はテストを再実行してください。
Mapping / テンプレート選択#
Dynamics 365 Finance & Supply Chain の標準テンプレートを選択してください。このコネクタが読み取る販売注文のフィールド(SalesOrderHeadersV2 データエンティティ)を、OMS 側の標準注文フィールドと対応付けます。有効化の前に Mapping プレビューを開き、注文番号が正しい場所に入ること、倉庫が依拠するフィールド(納期・配送先住所・顧客参照番号)が対応付いていることを確認してください。対応付けていないフィールドは標準注文に引き継がれません。やみくもに有効化せず、環境内の実際の販売注文 1 件とプレビューを照合してください。
有効化#
有効化後、Integration は設定した頻度で Finance & Operations 環境から新しい販売注文を取得し、Mapping で各注文を標準注文に変換して OMS に渡し、履行させます。この接続に逆方向の流れはありません。顧客の同期、在庫の読取、在庫や履行実績の Dynamics 365 への返送は行いません。最初の数件を Runs / Logs で確認し、F&O の同じ注文と照合してから、無監視で任せてください。
よくある質問#
テストが INVALID_CREDENTIALS で失敗する(トークン要求時に 401)
Microsoft サインインがクライアント ID とシークレットのペアを拒否しました。シークレットの値が間違っているか期限切れ、あるいはここに入力したテナント ID とクライアント ID が別のアプリ登録のもので、ペアになっていません。
Microsoft Entra ID でアプリ登録を開き、3 つの値をすべて照合してください。概要ページの Directory (tenant) ID と Application (client) ID、そして Certificates & secrets で新しいシークレットを作成し、その値(横のシークレット ID ではありません)をコピーして client_secret に貼り付けます。その後、再テストしてください。
テストが INVALID_TOKEN で失敗する(トークンは発行されたが F&O が 401 を返す)
認証情報は Entra ID では有効ですが、Finance & Operations がこのアプリを認識していません。F&O 内の Microsoft Entra ID applications に登録されていないか、登録されていてもユーザーが紐付いていないため、F&O がトークンを拒否しています。
F&O で System administration → Setup → Microsoft Entra ID applications を開き、この接続のクライアント ID の行を追加または探し、ユーザーを紐付けます。保存してテストを再実行してください。この接続で最も多い修正です。
テストが MISSING_SCOPE で失敗する(F&O が 403 を返す)
F&O はアプリを認識しトークンも受け付けましたが、アプリに紐付いたユーザーに販売注文データを読めるロールがないため、SalesOrderHeadersV2 データエンティティの読取が拒否されています。
F&O で、紐付いたユーザーに販売注文データを読めるロールを付与します(ロールの割当は F&O 管理者が System administration → Users で行います)。または、そのロールを既に持つ別のユーザーにアプリを紐付け直します。その後、再テストしてください。
テストが MISSING_ENV_URL で失敗する、または環境に到達できない
environment_url フィールドが空か、そのアドレスが環境のベースアドレスではありません。最も多い間違いは末尾に /data が付いたアドレスで、コネクタのサインイン先を通り過ぎてしまいます。
environment_url に Finance & Operations 環境のベースアドレス(例:https://myorg.operations.dynamics.com)を入力し、.com の後には何も付けません。特に末尾の /data は取り除いてください。その後、再テストしてください。
この接続で顧客や在庫も同期できますか?
いいえ。この接続は販売注文の取込だけです。顧客の取込、在庫の読取、在庫の Dynamics 365 への返送は行いません。顧客と在庫の管理は Finance & Operations 自体で行い、この接続は OMS への注文フローに使ってください。
この接続が端から端まで運ぶフローは販売注文(明細行を含む)だけです。OMS で注文を処理する際、顧客と在庫は Finance & Operations を参照してください。この接続では取り込まれません。