Epicor Kinetic 接続:注文と顧客を取り込み、在庫を確認
Epicor Kinetic でサービスアカウントと API Key を作成し、サーバーのベース URL、Company ID、ユーザー名、パスワード、API Key を Integration に入力、テスト・マッピング・有効化。
Epicor Kinetic コネクタは Epicor Kinetic ERP の販売注文と顧客をこのシステムに取り込み、Epicor にある在庫数量を確認できます。Epicor から読み取る接続です:在庫の変更を Epicor に返送しません。各リクエストでは 2 つの認証情報を一緒に使います。Basic ログイン用のサービスアカウントと API Key です。そのため両方が常に必要です。Epicor のインスタンスと会社ごとに 1 接続です。
前提条件#
- ログインできる Epicor Kinetic インスタンスと、そのサーバーのベースアドレス。クラウドの場合は https://mycompany.epicorsaas.com/MyInstance のような形式、オンプレミスの場合は https://<サーバー>/<インスタンス名> です。
- Company ID(例:EPIC06)。これは v2 OData アドレスの会社セグメントなので、取得したい会社と正確に一致する必要があります。
- User Account Security Maintenance で作成し、その会社へのアクセス権を持つ専用の Epicor サービスアカウント。そのユーザー名とパスワードが認証情報の半分です。
- API Key Maintenance でキーを作成し、そのキーに Erp.BO.SalesOrderSvc、Erp.BO.CustomerSvc、Erp.BO.PartSvc をカバーする Access Scope を割り当てる権限。
認証情報の取得#
- User Account Security Maintenance で専用サービスアカウントを作成または確認し、取得対象の会社へのアクセス権があることを確認します。ユーザー名を控え、パスワードを用意してください。
- Epicor Kinetic → API Key Maintenance → New Key を開き、新しい API Key を作成します。
- キーに 3 つのサービスすべてをカバーする Access Scope を割り当てます:Erp.BO.SalesOrderSvc、Erp.BO.CustomerSvc、Erp.BO.PartSvc。Scope に欠けたサービスがあるキーは、その種類のデータを読めません。
- API Key が表示されたその瞬間にコピーしてください。一度しか表示されません。失くした場合は、古いものを探さず新しいキーを作成してください。
- 同時に他の 2 つの値も控えます:/api サフィックスを付けないサーバーのベースアドレスと、Company ID(例:EPIC06)です。
Integration への入力#
- Integration → コネクタマーケットプレイス → Epicor Kinetic → 新規接続 を開きます。
- base_url、必須、Epicor サーバーのベース URL:インスタンスのアドレス(例:https://mycompany.epicorsaas.com/MyInstance)を入力します。/api サフィックスは付けないでください。アドレスの残りはシステムが組み立てます。
- company、必須、Company ID:会社セグメント(例:EPIC06)を入力します。サービスアカウントがアクセスできる会社でなければなりません。
- username、必須、サービスアカウントのユーザー名:User Account Security Maintenance の専用サービスアカウントのユーザー名を入力します。
- password、必須、サービスアカウントのパスワード:同じサービスアカウントのパスワードを入力します。パスワード型のフィールドで、秘密情報として保存されます。
- api_key、必須、REST API キー:API Key Maintenance → New Key でコピーした API Key を貼り付けます。その Access Scope が Erp.BO.SalesOrderSvc、Erp.BO.CustomerSvc、Erp.BO.PartSvc をカバーしている必要があります。パスワード型のフィールドで、秘密情報として保存されます。
接続テスト#
接続テストをクリックします。テストはまず 5 フィールドすべてが入力されているか確認します。base_url が未入力の場合は MISSING_BASE_URL で止まり、他のフィールドが未入力の場合も、何も送信する前にテストが止まります。次に、2 つの認証情報を一緒に使って実際の読み取り専用リクエストを 1 回行います:SalesOrder サービスに販売注文を 1 件問い合わせ、同じリクエストでサービスアカウントを Basic ログインとして、API Key も一緒に送信します。200 の応答が返れば合格です。エラーを見れば、どちらの認証情報を確認すべきか分かります:401 はサービスアカウントのユーザー名またはパスワードが拒否されたことを示し、400 または 403 は API Key 自体が拒否されたか、その Access Scope がサービスをカバーしていないことを示します。インスタンスが約 12 秒応答しない場合、テストはタイムアウトで止まります。
Mapping / テンプレート選択#
Epicor Kinetic 標準の Mapping を選択します。API Key の Scope がカバーする 3 つのサービスに対応します:販売注文は Erp.BO.SalesOrderSvc、顧客は Erp.BO.CustomerSvc、在庫確認は Erp.BO.PartSvc を読みます。テスト合格後、1 回取得を実行し、実注文を並べて確認してください(注文番号、顧客、明細、数量)。さらに 1 部品の数量を Epicor の表示と照合してから有効化します。インスタンスの項目が異なる場合は、Epicor 側の名前を変えず、Mapping でその項目を調整してください。
有効化#
有効化後、接続は設定した頻度で Epicor Kinetic の販売注文と顧客をこのシステムに取り込み、在庫確認では Epicor の現在の数量を読み取ります。最初は Runs / Logs で取得を確認し、Epicor と照合してから無人運用に移してください。
この接続が行わないこと:在庫の変更を Epicor Kinetic に返送しません。Epicor 内の数量は引き続き Epicor が管理し、この接続は読み取るだけです。在庫は引き続き Epicor 自体で管理してください。
よくある質問#
テストが 401 で失敗する
Epicor が Basic ログインを拒否しました:サービスアカウントのユーザー名またはパスワードが一致していないか、そのアカウントが company フィールドの会社にアクセスできません。このエラーはサービスアカウントに関するもので、API Key ではありません。
User Account Security Maintenance のアカウントと username、password を照合し、そのアカウントが入力した会社にアクセスできることを確認して、再テストしてください。401 の場合は API Key を変更しないでください。
テストが 400 または 403 で失敗する
API Key 自体が拒否されたか、その Access Scope がテストで呼び出したサービスをカバーしていません。サービスアカウントは問題ない場合があります。このエラーはキーとその Scope、つまり認証情報のもう半分に関するものです。
API Key Maintenance で、貼り付けたキーとその Access Scope を確認してください:Erp.BO.SalesOrderSvc、Erp.BO.CustomerSvc、Erp.BO.PartSvc をカバーしている必要があります。キーのコピーが不完全な場合や Scope が不足している場合は、Scope を修正するか新しいキーを作成し、api_key に全文を貼り付けて再テストしてください。
テストが MISSING_BASE_URL または他の未入力メッセージで止まる
5 つの必須フィールドのいずれかが空のため、テストは何も送信する前に止まりました。base_url、company、username、password、api_key の 5 つすべてが必須です。各リクエストには両方の認証情報と会社のアドレスが必要だからです。
Integration への入力の手順に従って 5 フィールドすべてを入力し、保存して再テストしてください。base_url には、先頭に欠けのないインスタンスの完全なアドレスを使ってください。
どの値も正しく見えるのに、テストが失敗し続ける
よくある原因はアドレスです:base_url の末尾に /api サフィックスがあると、システムがその後ろに独自のアドレス部分を追加し、リクエストが間違ったアドレスへ行きます。company の値も同じ種類の失敗を引き起こします。これはアドレスの一部なので、Company ID が間違っていると、テストはこれらの認証情報では応答しない会社を指します。
base_url の末尾の /api サフィックスを取り除き、インスタンスのアドレスそのもの(例:https://mycompany.epicorsaas.com/MyInstance)にし、サービスアカウントがアクセスできる会社の Company ID と company を再確認してください。認証情報を変更する前に、保存して再テストしてください。
注文は取り込めるのに、顧客や在庫が取り込めない
接続自体は機能しています。テストは SalesOrder サービスで合格しました。欠けているデータの種類は API Key の Scope を指しています:各サービスにはそれぞれのカバーが必要で、SalesOrderSvc をカバーしても CustomerSvc や PartSvc が欠けている Scope では、注文は読めても他の 2 つは空のままになります。
API Key Maintenance で、そのキーの Access Scope を広げ、3 つすべてをカバーするようにしてください:Erp.BO.SalesOrderSvc、Erp.BO.CustomerSvc、Erp.BO.PartSvc。既存のキーの Scope を変更できない場合は、完全な Scope を持つ新しいキーを作成し、api_key に貼り付け、再テストしてから取得を実行してください。
接続済みだが販売注文が取り込まれない
接続は機能しています(テストで SalesOrder サービスを実際に読みました)が、新しく取り込むものがありません。Epicor のその会社の取得範囲内に新しい販売注文がないか、ある注文が company フィールドの会社とは別の会社に属しています。
接続が使用する同じ Company ID で Epicor に販売注文を 1 件作成または確認し、手動取得を実行して、プレビューまたは Runs / Logs に注文が表示されるか確認してください。