テーブル API に関する FAQIssue ServiceNow REST テーブル API に関連するよくある質問は、以下のとおりです。 FAQ UI の値と POST または PUT に使用する値が異なるのはなぜですか?UI には、データベース内の実際のデータの表示値が表示されます。これは操作されたデータです。REST API では、要求で指定された値が挿入および更新されるため、表示される値と異なる場合があります。sysparm_input_display_value 要求パラメーターを渡すと、入力値を表示値として REST API に強制的に処理させることができます。 実際には、sysparm_input_display_value は入力要求にどう影響しますか?フィールドの種類に応じて、実際の有効な値を取得してデータベースに挿入できるように入力の解決を試みます。たとえば、参照フィールドの表示名を送信すると、要求内の値の sys_id が取得され、データベースに格納されます。日付と時刻のフィールドでは、このパラメーターが true の場合、現在のユーザーのタイムゾーンに合わせて調整された日付と時刻の値が挿入されます。false の場合、日付と時刻の値は UTC タイムゾーンを使用して挿入されます。sysparm_query は何を返しますか?要件に合う、エンコードされたクエリを取得するにはどうすればよいですか?sysparm_query パラメーターは、ServiceNow で解釈できるエンコードされたクエリを返します。適切にエンコードされたクエリを取得するには、UI フィルターを使用します。POST、PUT、PATCH 操作で複数のレコードを指定するとどうなりますか?複数のレコードはサポートされていません。複数のレコードを指定した場合、最初のレコードのみが処理され、残りのレコードは無視されます。POST、PUT、PATCH がデータベースビューで機能しないのはなぜですか?データベースビューは読み取り専用です。データベースビューにレコードを挿入したり、レコードを更新したりすることはできません。latest が示すバージョンと v1 の違いは何ですか?API は下位互換性を考慮してバージョン管理されています。latest は常に最新のバージョン/実装を指します。Eureka の場合、これは v1 です。 応答結果をフィルタリングするにはどうすればよいですか?要件に合う、エンコードされたクエリを取得するにはどうすればよいですか?sysparm_query パラメーターは、ServiceNow プラットフォームで解釈できるエンコードされたクエリを返します。要件に合う、適切にエンコードされたクエリを取得するには、UI フィルターを使用します。 ビューパラメーターで指定したフィールドが応答に含まれていないのはなぜですか?複数の理由があります。たとえば、要求パラメーターの名前/値や sysparm_fields パラメーターの入力を間違えている可能性があります。また、ACL の制限により、これらのフィールドにアクセスできず、それらのフィールドが応答でマスクされている可能性もあります。 存在しないリソース/レコードの ID を指定した PUT/PATCH 要求を送信するとどうなりますか?「404 Not Found」やアップサートになりますか?404 Not found 例外。 REST API を使用して応答オブジェクトにアクセスするインポートセットサービスはサポートされていますか?「はい」とも「いいえ」とも言えます。Eureka リリースでは、インポートセットは他のテーブルと同じです。レコードを挿入すると、そのテーブルのデータを含む応答が返されますが、変換結果については何も返されません。 PUT と PATCH の違いは何ですか?REST の世界では、PUT と PATCH は意味が違います。PUT は、リソース全体を指定されたデータに置き換えることを意味します (要求で指定されていないフィールドがあった場合、そのフィールドは null になります)。PATCH は、指定されたフィールドのみを置き換えることを意味します。一方、テーブル API では、PUT と PATCH は同じ意味です。PUT と PATCH は、要求で指定されたフィールドのみを変更します。 REST API では、表示値と実際の値はどのように扱われますか?ServiceNow には、表示値と実際の値という概念があります。実際の値がデータベース内の生の値を表すのに対し、表示値は通常 UI に表示される、ユーザーが理解できる値を表します。 一部のフィールドでは、UI とデータベースで表示されるこれらの値が大きく異なります。以下に例を挙げます。 暗号化されたテキスト:データベース値は暗号化されますが、表示値はユーザーの暗号化コンテキストに基づき、暗号化が解除されます。参照フィールド:データベース値は sys_id ですが、表示値は参照レコードの表示フィールドです。日付フィールド:データベース値は UTC 形式ですが、表示値はユーザーのタイムゾーンに基づきます。選択フィールド:データベース値は数値の場合がありますが、表示値はより説明的なものになります。他にも、実際の値と表示値が異なるフィールドがあります。表示値は、データベース内の実際の値と、ユーザーまたはシステムの設定に基づいて操作されます。 関連質問:推奨設定が true であるにもかかわらず、sysparm_input_display_value パラメーターのデフォルト設定が false なのはなぜですか?ユーザーがこのパラメーターを指定する必要があるのはなぜですか?これは一貫性のためです。データ検索時には実際の値が取得されますが、この場合も一貫性を保つため、データ操作時には入力値が実際の値として扱われます。 REST は、SOAP や JSONv2 などの他の API とどのように違うのですか?SOAP は、データ検索では表示値をサポートしていますが、データ操作ではサポートしていません。SOAP の挿入/更新操作では、入力値が常に表示値として扱われ、操作されます。 JSONv2 も、データ検索では表示値をサポートしていますが、データ操作ではサポートしていません。JSONv2 の挿入/更新操作では、入力値が常に実際の値として扱われ、操作されません。REST を使用すると、両方の利点を活用できます。ユーザーは、システムとデータをやり取りする方法をより詳細に制御できます。 REST はソートと Orderby をサポートしていますか?そのとおりです。エンコードされたクエリで Orderby を指定して、結果をソートすることができます。」の「Table API」の sysparm_query パラメーターを参照してください。 REST を使用してフィールドの値を空にすることはできますか?はい。値に空の文字列を渡すことで、フィールドの値を無効化または空にすることができます。たとえば、{"short description":""} を送信すると、指定されたレコードの short_description フィールドが空になります。 通貨フィールドはテーブル API でどのように処理されますか? REST 要求を実行すると、返される通貨値はユーザーの Locale に基づいて現地通貨に変換されます。データを挿入する際は、変換は実行されません。この動作は、フィールドタイプが通貨または価格のフィールドに適用されます。 たとえば、英国ロケールのユーザーが USD の通貨値のレコードをクエリすると、返される値は GBP に変換されます。ただし、このユーザーが GBP の通貨フィールド値で新しいレコードを追加すると、値は USD に変換されず GBP で保存されます。米国ロケールのユーザーがクエリすると、この GBP 値は USD で表示されます。 Release 全てのリリース