API応答フィルター

Revised: 26 August 2020

機能概要

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

フィルターは、リモート承認者のコールアウトとTax Engineのコールアウトでも使用できます。これらのタイプのコールアウトを使用すると、これらのエンドポイントに送信されるメッセージを簡素化するためのフィルターを指定できます。API内に新しく追加されたフィールド

は、APIレスポンスフィルターまたは「フィールド」クエリパラメーターに記載されている特定のフィールドが付いている場合にのみ、APIレスポンスに表示されます。

考えていたこと

CoupaのデフォルトのAPI応答には、サードパーティシステムが必要とする以上の情報が含まれている可能性があります。彼らはあなたのサービスが必要としないかもしれない関連付けの多くのレベルを返すことができます。

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

APIレスポンスフィルターは、コールレスポンスの出力を減らすことができるため、外部サービスが必要とする以上の処理に必要なオーバーヘッドなしで、サービスが必要とするものだけを送信します。 

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

  • 請求書
  • 注文ヘッダー
  • 注文明細
  • ユーザー
  • 経費ヘッダー
  • 経費明細
  • 申請書

APIフィルター作成ページは、すばやい反復を可能にし、変更履歴を維持するため、フィルターをすばやくテストし、応答を確認し、必要なものを得るために修正することができます。

ワクチンの仕組み

Coupa APIフィルターを使用して応答に必要なデータ量を制限する場合、送信されるデータが少ないほど、応答時間の遅延が短くなります。システム統合に必要な出力を簡素化すると、最初の人間の評価時間と、後で解析および処理のためのコンピューティング時間の両方が短縮されます。 

Api_filters/index権限を持つCoupa管理者とシステム統合ユーザーは、[設定] > [統合] > [APIフィルター]でAPI応答フィルターインターフェイスを表示できます。

API Filters.png

最初にシードされたフィルタは、パターン「DEFAULT _[ ResourceName ]_ FILTER」を使用してラベル付けされ、ベストプラクティスを表すプリセットフィルタです。これらのシードフィルタはすでにトリミングされており、すべての利用可能なフィールド(属性)を含んでいませんが、代わりに統合作業に最も一般的に必要なフィールドを表しています。独自のフィルターを作成するか、デフォルトのリソースフィルターを編集することで、最初にシードされたセットを変更するために、より多くのリソースフィールドを追加または削除できます。  

APIフィルターDetail.png

既定のAPIフィルター

[既定]チェックボックスをオンにすると、そのリソースを取得するためのすべてのAPI呼び出しにフィルターが適用されます。各リソースには、デフォルトのAPIフィルターを1つだけ使用できます。

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

フィルター

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

フィルタ構文では、複数のドキュメントタイプでの使用も可能です。デフォルトでは、新しいフィルターには、フィルターの作成の最初のステップで選択したリソースに対応する属性が含まれますが、他のドキュメントタイプに適用するフィルターテキストを追加できます。コールアウトまたはWebフックが別のドキュメントに対して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 ",
" street 1 ",
      "street 2
      "," 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
        "
line ",
"
          unit
_
price ",
          {
"dci_category ": [
name "," lookup "[ name "]]},
      {
"account ":
" name ", "name
" 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 "、"number
          "、" pcard_account
          "、
{custom_fields
            ": [" payment_term "}]]}、
{" uom ": [" code
           
          }]]、
       
{"
      order_
line_changes ":
         
    "、"
updated
      "、
   
"、"
  updated
      "、"、
"file_file_size
      "}}_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形式で応答します。

オペレーターとして

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

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

可用性

この機能は、すべてのCoupaのお客様に利用可能です。

 

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