エンタープライズリソース計画への請求書の連携
Coupa請求書をエンタープライズリソース計画と連携するための手順。
このドキュメントは、Microsoft Word形式で「Coupa Invoices to ERP.docx」としても提供されています。
API設定に関する一般的な考慮事項
Open Connect APIアクセス(R29以降)
GraphQL (R30以降)
制限されたペイロード:フィールドとAPIフィルター
CoupaのAPIは、デフォルトで多くのデータを返します(例えば、関連するオブジェクトの完全なオブジェクト)。 APIリターンペイロードのサイズは非常に大きくなることがあり、その場合所要時間も長くなります。 その結果必要のないデータまで処理することになり、時間がかかるだけでなく、リソースの無駄な消費にもつながります。
より簡単にするために、Coupaには、オブジェクトのスキーマ全体とすべての関連付けの代わりに、制限されたJSONまたはXML応答を返す「フィールド」パラメーターとAPIフィルターの概念があります。
API:「return object」の代替として新しいAPIクエリパラメータ「fields」を使用
この記事で説明されているユースケース
請求書には通常エンタープライズリソース計画の内部番号が含まれています。 本ドキュメントでは、このエンタープライズリソース計画ドキュメント番号がCoupa請求書ヘッダーのカスタムフィールドであると仮定しています。 この例では、カスタムフィールド cf_erp_invoice_number が ERP Invoice Numberという名前で作成されました。 この記事では、Coupa請求書をエンタープライズリソース計画に連携するための3つの異なるオプションについて説明します(作成と更新の両方)。
これらのオプションは、Coupaからの連携の監視方法を変更するものです。
オプション1:請求書ヘッダーで定義したカスタムフィールドに基づく単純なモニタリング
オプション2:連携履歴レコードを使用した高度なモニタリング
オプション3: Coupa連携の完全なモニタリングの活用
3つのオプションにおいて、Coupa請求書はエクスポートフラグに基づいてエンタープライズリソース計画にプッシュされます。 エラーが発生した場合は、CoupaのUI上で請求書を手動で修正する必要があります。この操作によりエクスポートフラグがリセットされ、請求書は次回の実行時に再び処理されます。
Coupaサポートに連絡し、変更のたびに最後にエクスポートした請求書をリセットするオプションを有効にすることが推奨されています。 この設定はUIにのみ適用されます。 APIで行われた変更は、エクスポート済みステータスを変更するものではありません。
APIの専用連携と連絡先を作成する
オプション2と3では、次を作成する必要があります。
実装するAPIオーケストレーションごとの専用連携
連携に失敗した場合にアラートが送信される各連携の1つ以上の連携連絡先。
Coupaサポートに連絡し、ドキュメントタイプ別連携履歴へのリンクを有効にするオプションを有効にすることが推奨されています。 このオプションでは、設定ページにリンクが追加され、文書タイプごとに完全な連携履歴が表示されます。
オプション1:カスタムフィールドに基づく単純なモニタリング
Description
このシナリオでは、請求書ごとに、1つ以上の請求書ヘッダーカスタムフィールドに現在の連携ステータスが追加されます。 カスタムフィールド cf - integration - status が Integration Statusという名前で作成されました。 標準請求書データテーブルを使用し、次のURLでドキュメントの連携ステータスをフォローアップしてください。
https ://<your instance hostname>/invoicesオーケストレーションダイアグラム
手順/API呼び出しの詳細
手順1 | エンタープライズリソース計画で作成/更新するCoupa請求書のリストと詳細を取得します。 選択基準にはエクスポートフラグと請求書のステータスが含まれます。 |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル |
手順2 | 個々の請求書をエクスポート済みとしてマーク |
|---|---|
メソッド | PUT |
API | https://<your instance hostname>/api/invoices/<Invoice id> |
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ3 | レポートとエンタープライズリソース計画文書番号のカスタムフィールドを更新する |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | |
サンプルURL | |
クエリ本文のサンプル | または |
レスポンス本文のサンプル | または |
オプション2:連携履歴を使用した高度なモニタリング
説明
このシナリオでは、請求書ごとに次のことを行います。
ドキュメントの以前の連携履歴レコードを解決する
連携履歴レコードを作成する
エラーが発生した場合に連携連絡先にアラートを送信する
各文書には連携履歴の詳細が含まれています。
標準請求書連携履歴データテーブルを使用し、ドキュメントの連携ステータスをフォローアップしてください。 これは次の場所で見つけることができます。
https ://<your instance hostname>/integration_history_records/invoicesレスポンスコードのフィルターを使用すると、正常に複製された文書と失敗した文書を区別できます。
オーケストレーションダイアグラム
手順/API呼び出しの詳細
手順1 | エンタープライズリソース計画で作成/更新するCoupa請求書のリストと詳細を取得します。 選択基準にはエクスポートフラグと請求書のステータスが含まれます。 |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル |
手順2 | 個々の請求書をエクスポート済みとしてマーク |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ここでは、エンタープライズリソース計画での請求書の作成/更新が行われます。
ステップ3 a | 未解決の連携履歴レコードを取得する |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ3 b | 以前の連携履歴レコードを解決する |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ4 a | エンタープライズリソース計画文書番号のカスタムフィールドを更新する(成功) |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | |
サンプルURL | |
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
ステップ4 b | 連携履歴を作成する(成功) |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
ステップ4 c | 連携履歴を作成して(エラー)、連携連絡先にアラートを送信する |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
オプション3: Coupa連携の完全なモニタリングの活用
Description
このシナリオでは、次の項目を追跡する連携実行を作成します。
連携のステータス(保留中/開始済み/エラー/成功/失敗)
処理された請求書の合計数
成功とエラーの数
連携エラーのリストとそのステータス(解決済みかどうか)
請求書ごとに次のことを行います。
ドキュメントの以前の連携履歴レコードを解決する
連携履歴レコードを作成する
エラーが発生した場合、連携エラーと連携連絡先へのアラートを作成する
このURLを使用すると、連携のすべての連携実行をモニタリングできます。
https ://<your instance hostname>/integrations/<your integration id>/integration_runs.
標準請求書連携エラーデータテーブルを使用し、連携エラーのあるすべての請求書をリストアップします。 これは次の場所で見つけることができます。
https ://<your instance hostname>/integration_errors.
オーケストレーションダイアグラム
手順/API呼び出しの詳細
手順1 | 統合実行の作成 |
|---|---|
メソッド | POST |
API |
|
クエリパラメータ | 該当なし |
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
手順2 | エンタープライズリソース計画で作成/更新するCoupa請求書のリストと詳細を取得します。 選択基準にはエクスポートフラグと請求書のステータスが含まれます。 |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル |
ステップ3 | インテグレーションの実行を開始する |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | 該当なし |
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
ステップ4 | 個々の請求書をエクスポート済みとしてマーク |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ここでは、エンタープライズリソース計画での請求書の作成/更新が行われます。
ステップ5 a | 未解決の連携履歴レコードを取得する |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ5 b | 以前の連携履歴レコードを解決する |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ6 a | 未解決の連携エラーレコードを取得する |
|---|---|
メソッド | GET |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ6 b | 以前の連携履歴レコードを解決する |
|---|---|
メソッド | PUT |
API | https ://<your instance hostname>/api/integration_errors/<Old Integration Error Record id>/resolve |
クエリパラメータ | 該当なし |
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
ステップ7 a | エンタープライズリソース計画文書番号のカスタムフィールドを更新する(成功) |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | |
サンプルURL | |
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
ステップ7 b | 連携履歴の作成する(成功) 連携実行を参照する必要があります |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ |
|
サンプルURL |
|
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
ステップ7 c | 連携エラーを作成して連携の連絡先にアラートを送信。連携実行を参照する必要があります |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | 該当なし |
クエリ本文のサンプル | |
レスポンス本文のサンプル | |
手順8 | 連携実行を正常に終了 |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | 該当なし |
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |
連携実行中に一般的な障害が発生した場合。
ステップx | 連携実行の失敗を報告 |
|---|---|
メソッド | PUT |
API |
|
クエリパラメータ | 該当なし |
クエリ本文のサンプル | 該当なし |
レスポンス本文のサンプル | |