API応答フィルター

Revised: 26 August 2020

機能の概要

API応答フィルターは、フィルターまたはAPIフィルターとも呼ばれ、応答出力を簡素化し、パフォーマンスを大幅に向上させます。Coupa管理者は、API応答フィルターを作成および管理して、経費、申請書、請求書、発注書、ユーザーリソースを取得できます。1つ以上のリソースに既定のフィルターを指定して、そのコントローラーのすべての呼び出しにそのフィルターを自動的に適用できます。また、複数のリソースタイプに適用するフィルターを定義できます。 設定に使用されるのと同じAPIフィルター詳細ページからAPIフィルターをテストでき、フィルターに加えられた変更の履歴も保持されます。

フィルターは、リモート承認者コールアウトと税金エンジンコールアウトでも使用できます。これらのタイプのコールアウトを使用すると、フィルターを指定して、これらのエンドポイントに送信されるメッセージを簡略化できます。

Coupaの考え方

Coupaの既定のAPI応答には、サードパーティシステムが必要とするよりも多くの情報を含めることができます。 サービスで不要な可能性がある関連付けの多くのレベルを返すことができます。

コールアウトは、リモート承認者サービスや税金サービスに必要な以上の情報を送信することもできます。これらのコールアウトタイプに設定されたフィルターを使用すると、メッセージ本文で送信されるリソースフィールドを指定できます。

API応答フィルターは、呼び出し応答の出力を削減できるため、外部サービスが必要とする以上の処理に必要なオーバーヘッドなしに、サービスが必要とするもののみを送信します。 

API応答フィルターは、次のリソースに対して作成できます。

  • 請求書
  • 注文ヘッダー
  • 注文品目
  • ユーザー
  • 経費ヘッダー
  • 経費品目
  • 申請書

APIフィルターの作成ページでは、繰り返しが迅速に行え、変更履歴が保持されるため、フィルターのテスト、応答の確認、必要なものだけを取得するための変更をすばやく行うことができます。

仕組み

Coupa APIフィルターを使用して応答に必要なデータ量を制限すると、送信されるデータが少なくなるため、応答時間の遅延が減少します。出力をシステム統合に必要なものまで簡略化することで、最初の人間による評価時間と、後で解析と処理を行うための計算時間の両方が短縮されます。 

api_filters/index権限を持つCoupa管理者およびシステムインテグレーションユーザーは、[設定]>[インテグレーション]>[APIフィルター]でAPI応答フィルターインターフェイスを確認できます

APIフィルター.png

最初にシードされたフィルターは、「default_[ResourceName]_filter」というパターンを使用してラベル付けされ、ベストプラクティスを表す事前設定フィルターです。これらのシード済みフィルターはすでに削除されており、利用可能なすべてのフィールド(属性)は含まれていませんが、インテグレーションの取り組みに最も一般的に必要とされるフィールドを表しています。独自のフィルターを作成するか、既定のリソースフィルターを編集することで、リソースフィールドを追加または削除して、最初にシードされたセットを変更できます。  

APIフィルター詳細.png

既定のAPIフィルター

チェックを入れると、[ 既定]チェ ックボックスは、そのリソースをGETするためのすべてのAPI呼び出しにフィルターを適用します。各リソースには、デフォルトのAPIフィルターが1つしかない場合があります。

[既定 ]チェックボックスがオフの場合、クエリ文字列param:をそのリソースのGET呼び出しに追加することでそのAPIフィルターを使用できます?filter='[API Filter Name]'

フィルター

APIフィルターが有効です。つまり、リストされた属性が応答に表示されます。これらのリソース属性を追加または削除して、テストの前にフィルターがリソースオブジェクト属性をサードパーティシステムに渡し、[保存 ]します。 

フィルター構文では、複数のドキュメントタイプを使用することもできます。デフォルトでは、新しいフィルターには、フィルター作成の最初のステップで選択したリソースに対応する属性が含まれていますが、フィルターテキストを追加して他のドキュメントタイプに適用することもできます。コールアウトまたはウェブフックが別のドキュメントに対してAPI応答フィルターを使用している場合、他のドキュメントのフィルター指定は無視されます。

以下は、2つのドキュメントタイプが強調表示されたフィルター構文のスクリーンショット例です。グラフィックの下でクリックすると、選択可能なテキストを含む同じフィルターを展開できます。

API応答filter.png

クリックすると、選択可能なテキストを使用した申請書の品目と注文品目の変更のフィルター構文の例が表示されます。
[
  "id",
  "created_at",
  "updated_at",
  "need_by_date",
  "status",
  "submitted_at",
  "ship_to_attention",
  "line_count",
  "exported",
  "total",
  {
    "custom_fields": [
      "migrated_po_number",
      "last_integrated_successfully"
    ]
  },
  {
    "currency": [
      "code",
      "decimals"
    ]
  },
  {
    "requested_by": [
      "id",
      "login",
      "fullname",
      "email",
      "work_level"
    ]
  },
  {
    "ship_to_address": [
      "name",
      "location_code",
      "street1",
      "street2",
      "city",
      "state",
      "postal_code",
      "vat_number",
      "local_tax_number",
      "company_code"
    ]
  },
  {
    "requisition_lines": [
      "id",
      "description",
      "line_num",
      "need_by_date",
      "order_line_id",
      "quantity",
      "receipt_required",
      "source_part_num",
      "unspsc_code",
      "status",
      "total",
      "line_type",
      "unit_price",
      {
        "dci_category": [
          "name",
          {
            "lookup": [
              "name"
            ]
          }
        ]
      },
      {
        "account": [
          "name",
          "code",
          "segment_1",
          "segment_2",
          "segment_3",
          {
            "account_type": [
              "name"
            ]
          }
        ]
      },
      {
        "ul_contract": [
          "name",
          "description",
          "external_ref_num"
        ]
      },
      {
        "custom_fields": [
          "ext_line_num",
          "material_type",
        ]
      },
      {
        "commodity": [
          "name",
          "category",
          "subcategory"
        ]
      },
      {
        "account_allocations": [
          "amount",
          "pct",
          {
            "account": [
              "name",
              "code",
              "segment_1",
              "segment_2",
              "segment_3",
              {
                "account_type": [
                  "name"
                ]
              }
            ]
          }
        ]
      },
      {
        "attachments": [
          "id",
          "created_at",
          "updated_at",
          "type",
          "intent",
          "file",
          "file_file_name",
          "file_file_size"
        ]
      },
      {
        "currency": [
          "code"
        ]
      },
      {
        "supplier": [
          "name",
          "display_name",
          "number",
          "pcard_account",
          {
            "custom_fields": [
              "payment_term_list"
            ]
          }
        ]
      },
      {
        "uom": [
          "code"
        ]
      }
    ]
  },
  {
    "order_line_changes": [
      "id",
      "created_at",
      "updated_at",
      "line_num",
      "description",
      "need_by_date",
      "order_header_change_id",
      "order_line_id",
      "price",
      "quantity",
      "total",
      "paid_amount",
      {
        "custom_fields": {}
      }
    ]
  },
  {
    "current_approval": [
      "id",
      "approvable_type",
      "approvable_id",
      "delegate_id"
    ]
  },
  {
    "created_by": [
      "id",
      "login",
      "fullname",
      "email",
      "work_level"
    ]
  },
  {
    "updated_by": [
      "id",
      "login",
      "fullname",
      "email",
      "work_level"
    ]
  },
  {
    "preparer": [
      "id",
      "login",
      "fullname",
      "email",
      "work_level"
    ]
  }
]

リセット

元のリスト に戻す場合や、参照用に変更履歴を拡張する場合は、[最初にシードされた値にフィルターをリセット]できます

テスト

フィルターの出力応答を確認するには、最初に[テストフィルター]フィールドに既知のID値を入 力し、[テス ト]をクリックします。  すべての標準の役割のセキュリティーはテストで確認できるものに適用されますが、保存されたAPIフィルターは、指定されたパラメーターフィールドのサブセットを読みやすいJSON形式で応答します。

演算子として

フィールドクエリ演算子を使用すると、回答本文に必要なフィールドを渡すことができます。フィールド値の形式はJSONです。以下の例を参照してください。

?fields=["id","invoice_number",{"invoice_lines":["id","line_num"]}]

利用可能性

この機能はすべてのCoupa顧客が利用できます。

 

このページに表示されている一部、または全ての内容は、機械翻訳によるものです。ご了承ください。