JSON データ検索 API
インスタンスに HTTPS GET 要求を発行して、データをクエリします。
デフォルトでは、 sysparm_sys_id パラメーターが存在する場合、GET 要求は get 関数として解釈されます。それ以外の場合は、getRecords 関数として解釈されます。URL パラメーター sysparm_action=getを指定することもできます。クエリ応答は常にレコードのレコードハッシュによってカプセル化され、個々のレコードの値自体がフィールド名でハッシュされます。
参照変数の表示値を返します
get または getRecords 関数からレコードを取得すると、そのレコードに関連付けられているすべてのフィールドが返されます。多くの場合、これらのフィールドは、別のテーブルの
sys_id を含む参照フィールドです。基本システムの動作では、これらのフィールドの sys_id 値が返されます。フィールドの表示値を返すには、次のいずれかのオプションを使用します。- プロパティ glide.json.return_displayValue をシステムプロパティに追加すると、すべての JSON 要求が参照フィールドの表示値を返します。
- パラメーター displayvalue=true を JSON 要求 URL に追加すると、そのパラメーターを含む JSON 要求は、参照フィールドの
sys_idではなく表示値を返します。JSON URL は次のようになります。https://<instance name>.service-now.com/incident.do?JSON&sysparm_action=getRecords&sysparm_query=active=true^category=hardware&displayvalue=true - JSON 要求 URL にパラメーター displayvalue=all を追加すると、そのパラメーターを含む JSON 要求は、参照フィールドの表示値と
sys_idを返します。表示値フィールドの応答要素名には、プリフィックスとしてdv_が付きます (例:dv_caller_id)。
変数を取得
displayvariables クエリパラメーターを使用して、サービスカタログアイテムレコードに関連付けられた変数のアレイを返します。変数を取得するには、JSON 要求 URL にパラメーター displayvariables=true を追加します。たとえば、 サービスカタログ 変数を含む JSON 形式のレコードを取得するための URL を次に示します。
https://<your-instance>.servicenow.com/sc_req_item.do?JSONv2&sysparm_action=getRecords&sysparm_query=sys_id=5018da81742bd410f8771974894916fe&displayvariables=trueレコードからの複数行の変数セットを表示する応答の例を次に示します。
{
"records":[
{
…
"variables":[
{
"display_value":[
{
"quantity":"1",
"color":"Black",
"device_type":"Apple iPhone 8",
"storage":"64GB"
},
{
"quantity":"1",
"color":"Black",
"device_type":"Apple iPhone 8",
"storage":"64GB"
}
],
"columns_meta":[
{
"name":"device_type",
"label":"Device Type",
"id":"da7d3f3241411300964ff05369414eca",
"type":5,
"order":"0"
},
{
"name":"storage",
"label":"Storage",
"id":"691e337241411300964ff05369414e31",
"type":5,
"order":"1"
},
{
"name":"color",
"label":"Color",
"id":"e89fb77241411300964ff05369414e74",
"type":5,
"order":"2"
},
{
"name":"quantity",
"label":"Quantity",
"id":"2d5f737241411300964ff05369414eaf",
"type":5,
"order":"3"
}
],
"max_rows":50,
"name":"mobile_devices_set",
"id":"e84d3f3241411300964ff05369414e3e",
"type":"one_to_many",
"value":[
{
"quantity":"1",
"color":"black",
"device_type":"iphone8",
"storage":"64GB"
},
{
"quantity":"1",
"color":"black",
"device_type":"iphone8",
"storage":"64GB"
}
],
"row_count":2
},
{
"question_text":"Department",
"name":"department",
"type":8,
"value":"Development",
"order":100
},
{
"question_text":"Who is this request for?",
"name":"requested_for",
"type":8,
"value":"System Administrator",
"order":100
},
{
"question_text":"When do you need this?",
"name":"needed_by",
"type":5,
"value":"Today",
"order":200
},
{
"question_text":"Business Justification",
"name":"business_justification",
"type":2,
"value":"Example justification",
"order":200
}
],
…
}
]
}応答のキーは次のように定義されます。
| キー | 説明 |
|---|---|
| display_value | 複数行の変数セットの質問の表示値。複数行の変数セットでのみ返されます。 |
| columns_meta | フィールドのsys_idや名前などの複数行の変数セットメタデータのアレイ。変数に複数のフィールドが含まれている場合にのみ返されます。 |
| max_rows | 複数行の変数セットで許可される最大行数。複数行の変数セットでのみ返されます。 |
| name | 質問名。 |
| ID | 複数行の変数セットのSys_id。複数行の変数セットでのみ返されます。 |
| type | 質問のタイプ。 |
| value | 質問値。 |
| row_count | 複数行の変数セットの現在の行数。複数行の変数セットでのみ返されます。 |
| question_text | 質問ラベル。単一行の変数セットでのみ返されます。 |
| order | 質問の順番。 |
レコードの順序を制御する
JSON 応答でレコードが表示される順序を制御できます。順序を設定するには、URL エンコードクエリで ORDERBY 句または ORDERBYDESC 句を使用します。例を次に示します。
sysparm_query=active=true^ORDERBYnumber^ORDERBYDESCcategory
すべてのアクティブなレコードをフィルタリングし、結果を最初に番号の昇順に並べ替え、次にカテゴリ別の降順に並べ替えます。詳細については、「 エンコードされたクエリ文字列」を参照してください。
getKeys
sysparm_queryパラメーターにエンコードされたクエリ文字列を指定して、複数のレコードの
sys_idを取得します。https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getKeys&sysparm_query=active=true^category=hardware
取得
sysparm_sys_idパラメーターで
sys_idを指定して、レコードを直接取得します。https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_sys_id=9d385017c611228701d22104cc95c371
必要に応じて、 sysparm_action パラメーターを指定することもできます。
https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=get&sysparm_sys_id=9d385017c611228701d22104cc95c371
レコードを取得
sysparm_query パラメーターにエンコードされたクエリ文字列を指定して、すべてのレコードを取得します。
https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getRecords&sysparm_query=active=true^category=hardware