POおよびPO変更内容のERPへの統合
CoupaのPOおよびPO変更をERPに統合するためのステップバイステップの手順。
はじめに
また、このドキュメントをMicrosoft Wordドキュメントとしてダウンロードすることもできます。Coupa発注書からERP.docx
一般的なAPI設定に関する考慮事項
- Coupa APIを使い始める
- APIキーセキュリティ(最終的に廃止となる)
- Open Connect APIアクセス(R 29以降)
- JSON/XML
- GraphQL ( R 30以降)
制限されたペイロード-フィールドとAPIフィルター
CoupaのAPIは、デフォルトで多くのデータを返します(たとえば、関連付けられたオブジェクトの完全なオブジェクト)。APIリターンペイロードは非常に大きく、したがって遅くなる可能性があります。これは、リソースの不必要な消費は言うまでもなく、余分なデータを必要としない顧客にとっては問題になる可能性があります。
物事を簡単にするために、Coupaには「フィールド」パラメーターとAPIフィルターの概念があり、オブジェクトのスキーマ全体とすべての関連付けの代わりに、制限されたJSONまたはXML応答を返します。
この記事で説明するユースケース
このドキュメントの前提は、ERPの発注書番号がCoupa発注書番号によって決まるということです。この記事では、Coupa発注書をERPに統合するための3つの異なるオプション(作成と更新の両方)について説明します。
これらのオプションは、Coupaからインテグレーションを監視する方法を変更します。
- オプション1:注文ヘッダーで定義したカスタムフィールドに基づいた簡単な監視
- オプション2:インテグレーション履歴レコードを使用した高度なモニタリング
- オプション3 :Coupa統合の完全なモニタリングを活用
3つのオプションでは、Coupa POはエクスポートフラグに基づいてERPにプッシュされます。
エラーが発生した場合、発注書の統合では、Coupa UIで発注書を手動で変更する必要があります。この変更によりエクスポートフラグがリセットされ、発注書は次の実行で考慮されます
Coupaは、Coupaサポートに連絡し、このオプションを有効にすることをお勧めします。すべての変更に対してPO最終エクスポートをリセットします。この設定はUIにのみ適用されます。APIを使用した変更では、エクスポート済みのステータスは変更されません。
APIのための専用連携と連絡先の作成
オプション2と3では、次を作成する必要があります。
- 実装する各APIオーケストレーションの専用統合
- インテグレーションごとに1つまたは複数のインテグレーション連絡先があり、インテグレーションに失敗した場合はアラートが表示されます
Coupaは、Coupaサポートに連絡し、このオプションを有効にすることをお勧めします。文書タイプ別インテグレーション履歴へのリンクを有効にする。この設定では、設定ページにリンクが追加され、ドキュメントタイプごとに完全な統合履歴が表示されます
オプション1:カスタムフィールドに基づいたシンプルなモニタリング
説明
このシナリオでは、各POに対して、1つまたは複数のPOヘッダーのカスタムフィールドに現在の統合ステータスを追加します。Integration Statusという名前のカスタムフィールドcf
。標準発注書データテーブルを使用して、次のURLでドキュメントの統合ステータスをフォローアップします。- integration - statusを追加
しましたhttps ://<your instance hostname>/order_headers
。
オーケストレーションダイアグラム
手順/APIコールの詳細
手順1 |
ERPで作成/更新するCoupa発注書のリストと詳細を取得します。 |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
|
サンプルURL |
https :/// api<your instance hostname>/purchase_orders? filter =& offset<your API filter name> = 10 & exported = false&show_deleted_lines = true&status [in ]= issued, canceled, closed |
クエリ本文のサンプル |
該当なし |
回答本文のサンプル |
* = show_deleted_lines = trueはPO変更のためのものです
手順2 |
個々のPOをエクスポート済みとしてマーク |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし* |
回答本文サンプル |
|
*このコールでは、URLに「? exported = true」を含めると、ペイロードは必要ありません。そこでERPで発注書の作成/更新が行われます。
手順3 |
レポート用カスタムフィールドを更新する |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
または
|
回答本文サンプル |
または
|
オプション2:インテグレーション履歴を使用した高度なモニタリング
説明
このシナリオでは、POごとに次のことを行います。
- ドキュメントの以前の統合履歴レコードを解決する
- 連携履歴記録を作成する
- エラーが発生した場合に統合連絡先にアラートを作成する
各文書には、インテグレーション履歴の詳細が含まれています。
標準PO連携履歴データテーブルを使用して、ドキュメントの連携ステータスをフォローアップします。この情報は、https :/// integration_history_records<your instance hostname>/purchase_ordersで確認でき
ます。
レスポンスコードのフィルターを使用して、正常に複製されたドキュメントと失敗したドキュメントを区別することができます。
オーケストレーションダイアグラム
手順/APIコールの詳細
手順1 |
ERPで作成/更新するCoupa発注書のリストと詳細を取得します。 |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文のサンプル |
手順2 |
個々のPOをエクスポート済みとしてマーク |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
|
サンプルURL |
|
クエリ本文のサンプル |
該当なし |
回答本文サンプル |
|
ここで、ERPで発注書の作成/更新が行われます。
手順3 a |
未解決の連携履歴記録を取得する |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文サンプル |
|
手順3 b |
以前の連携履歴記録を解決する |
---|---|
方法 |
プット |
API |
|
Query Params |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文のサンプル |
|
手順4 a |
インテグレーション履歴の作成(成功) |
---|---|
方法 |
プット |
API |
|
Query Params |
|
サンプルURL |
|
質問本文のサンプル |
|
回答本文のサンプル |
|
手順4 b |
インテグレーション履歴の作成(エラー)とインテグレーション連絡先へのアラート |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
|
回答本文のサンプル |
|
オプション3 :Coupa統合の完全なモニタリングを活用
説明
このシナリオでは、インテグレーション実行を作成して
- インテグレーションのステータス(保留中/開始済み/エラー/成功/失敗)
- 処理されたPOの合計数
- 成功とエラーの数
- 統合エラーのリストとそのステータス(解決済みかどうか)
各POについて:
- ドキュメントの以前の統合履歴レコードを解決する
- 連携履歴記録を作成する
- エラーが発生した場合は、統合エラーと統合連絡先へのアラートを作成します。
インテグレーションのすべてのインテグレーション実行は、https :/// integrations<your instance hostname><your integration id> // integration_runsで監視でき
ます。
標準PO統合エラーデータテーブルを使用して、統合エラーの解決保留中のすべてのPOを一覧表示します。: https ://<your instance hostname>/integration_errorsにあります
。
標準POインテグレーション履歴データテーブルを使用して、正常にインテグレーションされたすべてのPOを一覧表示します。次の場所にあります。https<your instance hostname> :/// integration_history_records/purchase_orders
。
オーケストレーションダイアグラム
手順/APIコールの詳細
手順1 |
連携実行の作成 |
---|---|
方法 |
投稿 |
API |
|
質問パラメータ |
該当なし |
質問本文のサンプル |
|
回答本文のサンプル |
|
手順2 |
ERPで作成/更新するCoupa発注書のリストと詳細を取得します。 |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
filter =<your API filter name> |
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文のサンプル |
手順3 |
連携実行を開始する |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
該当なし |
質問本文のサンプル |
|
回答本文のサンプル |
|
手順4 |
個々のPOをエクスポート済みとしてマーク |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文のサンプル |
|
ここで、ERPで発注書の作成/更新が行われます。
手順5 a |
未解決の連携履歴記録を取得する |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文サンプル |
|
手順5 b |
以前の連携履歴記録を解決する |
---|---|
方法 |
プット |
API |
|
Query Params |
|
サンプルURL |
|
クエリ本文のサンプル |
該当なし |
回答本文サンプル |
|
手順6 a |
未解決のインテグレーションエラーレコードを取得する |
---|---|
方法 |
取得 |
API |
|
質問パラメータ |
|
サンプルURL |
|
質問本文のサンプル |
該当なし |
回答本文のサンプル |
|
手順6 b |
以前の連携履歴記録を解決する |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
該当なし |
質問本文のサンプル |
該当なし |
回答本文サンプル |
|
手順7 a |
インテグレーション履歴の作成(成功)インテグレーション |
---|---|
方法 |
プット |
API |
|
Query Params |
fields = [" id ", "document - id "," status "] |
サンプルURL |
|
クエリ本文のサンプル |
|
回答本文のサンプル |
|
手順7 b |
インテグレーションエラーの作成とインテグレーション連絡先へのアラート |
---|---|
方法 |
プット |
API |
|
Query Params |
該当なし |
クエリ本文のサンプル |
|
回答本文のサンプル |
|
手順8 |
連携実行が正常に終了しました |
---|---|
方法 |
プット |
API |
|
質問パラメータ |
該当なし |
質問本文のサンプル |
該当なし |
回答本文のサンプル |
|
インテグレーション実行中に一般的な障害が発生した場合
ステップx |
インテグレーション実行の失敗を報告する |
---|---|
方法 |
プット |
API |
|
Query Params |
該当なし |
クエリ本文のサンプル |
該当なし |
回答本文のサンプル |
|