予約 API
Appointment API は、予約アプリケーションとやり取りするためのエンドポイントを提供します。この API を使用して、予約と再スケジュール、利用可能な予約スロットの確認、予約構成の詳細のフェッチを行います。
この API を使用する前に、予約設定とサービス設定を設定する必要があります。また、予約中のタスクが既に存在している必要があります。詳細については、「Configuring Appointment Booking」を参照してください。
Appointment API には Appointment Booking プラグイン (com.snc.appointment_booking) が必要であり、sn_apptmnt_booking 名前空間内で提供されます。この API にアクセスするには、snc_internal ロールが必要です。
予約:GET /sn_apptmnt_booking/appointment/calendar
予約できる時間範囲を返します。返品結果には、予約サービス構成で設定されたリードタイムと将来の最大予約可能日が遵守されます。
リード タイムと将来の最大予約可能日の構成の詳細については、 Create or modify an application configuration for Appointment Booking を参照してください。
このエンドポイントにアクセスするには、snc_internal ロールまたは snc_external ロールのいずれかが必要です。
URL 形式
バージョニングされた URL: /api/sn_apptmnt_booking/{api_version}/appointment/calendar
デフォルト URL: /api/sn_apptmnt_booking/appointment/calendar
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須。予約サービス構成で構成されたレコードプロデューサーのSys_id。 テーブル:レコードプロデューサー [sc_cat_item_producer] データタイプ:文字列 |
| 場所 | 必須。予約の場所のSys_id。 テーブル:場所 [cmn_location] データタイプ:文字列 |
| opened_for | 必須。予約対象のユーザーのSys_id。 テーブル: ユーザー [sys_user] データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| 結果 | エンドポイント要求の結果に関する情報。 データタイプ: オブジェクト |
| result.range_end | 予約できる範囲の終了。
データタイプ:文字列 形式:内部日時形式の予約のタイムゾーン。 |
| result.range_start | 予約できる範囲の開始。
データタイプ:文字列 形式:内部日時形式の予約のタイムゾーン。 |
cURL 要求
次のコード例は、このエンドポイントを呼び出す方法を示しています。
curl "http://instance.servicenow.com/api/sn_apptmnt_booking/v1/appointment/calendar?catalog_id=e4c1116b3b810300ce8a4d72f3efc40f&location=32e8499cdb2d2200d75270f5bf9619d6&opened_for=6816f79cc0a8016401c5a33be04be441" \
--request GET \
--header "Accept:application/json" \
--user 'username':'password'
結果:
{
"result": {
"range_start": "2023-02-08 03:52:27",
"range_end": "2023-02-21 23:52:27"
}
}
予約:GET /sn_apptmnt_booking/予約/構成
指定された予約サービス構成で定義された構成を返します。
さらに、予約ウィジェットにスロットを表示するために必要な翻訳とユーザーの日時設定を返します。
このエンドポイントにアクセスするには、snc_internal ロールまたは snc_external ロールのいずれかが必要です。
URL 形式
バージョニングされた URL: /api/sn_apptmnt_booking/{api_version}/appointment/configuration
デフォルト URL: /api/sn_apptmnt_booking/appointment/configuration
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須。予約サービス構成で構成されたレコードプロデューサーのSys_id。 データタイプ:文字列 テーブル:レコードプロデューサー [sc_cat_item_producer] |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| 結果 | エンドポイント要求の結果。 データタイプ: オブジェクト |
| result.active | 関連するカタログ ID のサービス構成セットアップがアクティブかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.active_string | 関連付けられたカタログ ID のサービス構成セットアップのステータスのテキスト表現。 データタイプ:文字列 |
| result.advanced_calendar_view_portal | 詳細カレンダービューをポータルに表示するか、基本ビューを表示するかを示すフラグ。詳細カレンダービューの詳細については、「 Create or modify an application configuration for Appointment Booking」を参照してください。 可能な値:
データタイプ:ブーリアン |
| result.auto_acceptance | 予約が受け入れ済みステータスに自動的に移行するかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.locale_language | ユーザーの言語設定。 データタイプ:文字列 形式:ISO 639.1 言語コード |
| result.service_config | サービス構成に関する詳細。 データタイプ: オブジェクト |
| result.service_config.active | 予約サービス設定のアクティブステータスを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.service_config.active_string | 予約サービス設定のステータスをテキストで表現します。 データタイプ:文字列 |
| result.service_config。appointment_booking_config | 関連するカタログ ID の予約サービス構成セットアップのSys_id。 データタイプ:文字列 テーブル:予約サービスの設定 [sn_apptmnt_booking_service_config] |
| result.service_config。appointment_duration | 予約の長さ。 データタイプ:文字列 単位:分 |
| result.service_config。appointments_per_bookable_slot | 関連付けられたスロットで予約可能な予約の数。 データタイプ:文字列 |
| result.service_config。bookable_days | 予約できる日数を表すカンマ区切りの値。 日は整数で表されます (月曜日 = 1 および日曜日 = 7)。 データタイプ:文字列 |
| result.service_config.cancel_by_time | 予約の開始前にユーザーが予約をキャンセルできる最小時間。たとえば、午後 1:00 に予約していて、2 時間のキャンセル期限がある場合は、午前 10 時 59 分までに予約をキャンセルする必要があります。 形式:この値は、「1970-01-01 00:00:00」との日時の差です。したがって、戻り値が「1970-01-01 04:00:00」の場合、会議開始の 4 時間前にルームをキャンセルする必要があることを意味します。 データタイプ:文字列 |
| result.service_config.default_timezone | 予約するタイムゾーン設定。 可能な値:
データタイプ:文字列 |
| result.service_config。enable_advanced_config | 予約時に予約構成と予約ルールを考慮するかどうかを示すフラグ。詳細については、「Create appointment booking advanced configuration」を参照してください。 可能な値:
データタイプ:ブーリアン |
| result.service_config.field_mapping | 予約に使用される場所と連絡先の値にマッピングされたカタログ変数に関する詳細。 データタイプ: オブジェクト |
| result.service_config。field_mapping.contact | 連絡先値を含むカタログ変数の名前。 データタイプ:文字列 |
| result.service_config.field_mapping。contactRPVariable | 場所カタログ変数データの詳細。 データタイプ: オブジェクト |
| result.service_config.field_mapping。contactRPVariable.displayName | 連絡先カタログ変数の表示名。 データタイプ:文字列 |
| result.service_config.field_mapping。contactRPVariable.label | 連絡先カタログ変数のラベル。 データタイプ:文字列 |
| result.service_config.field_mapping。contactRPVariable.name | 連絡先カタログ変数の名前。 データタイプ:文字列 |
| result.service_config。field_mapping.location | 場所の値を含むカタログ変数の名前。 データタイプ:文字列 |
| result.service_config.field_mapping。locationRPVariable | 場所カタログ変数データの詳細。 データタイプ: オブジェクト |
| result.service_config.field_mapping。locationRPVariable.displayName | 場所カタログ変数の表示名。 データタイプ:文字列 |
| result.service_config.field_mapping。locationRPVariable.label | 場所カタログ変数のラベル。 データタイプ:文字列 |
| result.service_config.field_mapping。locationRPVariable.name | 場所カタログ変数の名前。 データタイプ:文字列 |
| result.service_config。future_bookable_max_days | 予約できる将来の最大日数。 データタイプ:文字列 |
| result.service_config.lead_time | 予約開始前のユーザーが予約できる最小時間。たとえば、午後 1:00 に予約する場合、リードタイムが 2 時間の場合、午前 10 時 59 分までに予約する必要があります。 形式:この値は、「1970-01-01 00:00:00」との日時の差です。したがって、戻り値が「1970-01-01 04:00:00」の場合、会議開始の 4 時間前にルームを予約する必要があることを意味します。 データタイプ:文字列 |
| result.service_config.mandatory | 予約が必須かどうかを示すインジケーター。 可能な値:
データタイプ:文字列 |
| result.service_config。use_slot_end_time_as | エージェントが到着する時間、または関連する予約にスケジュールされている作業を完了する時間に関するインジケーター。 可能な値:
データタイプ:文字列 |
| result.service_config.work_duration | 予約の作業に要する時間。作業期間は、予約サービスの構成で構成されます。詳細については、「Create or modify service configuration for Appointment Booking」を参照してください。 データタイプ:文字列 単位:分 |
| result.task_table | 予約できるテーブルの名前。予約サービスの構成で構成されます。 データタイプ:文字列 |
| result.translations | 予約ウィジェットで使用されるテキスト翻訳の名前と値のペア。アクション、メッセージ、日、および月の変換された値が含まれます。 データタイプ: オブジェクト |
| result.userDateFormatOptions | JS 日付オブジェクトを表示するために必要な日付形式オプションについて説明します。これらの値は、変更できない予約定数で設定されます。 データタイプ: オブジェクト |
| result.userDateFormatOptions.day | 日の日付形式。 データタイプ:文字列 形式:数値 (値または 1 〜 31) |
| result.userDateFormatOptions.month | 月の日付形式。 データタイプ:文字列 形式:Short (Jan、Feb、Mar などの値) |
| result.userDateFormatOptions.week | 週の日付形式。 データタイプ:文字列 形式:数値 (1 〜 5 の値) |
| result.userDateFormatOptions.weekday | 平日の日付形式。 データタイプ:文字列 形式:Short (月、火、水などの値) |
| result.useRR | sn_apptmnt_booking.use_read_replica_from_ui プロパティの値。この値は、UI からクエリが実行されるときに、読み込みレプリカデータベースを使用して予約スロットをフェッチするかどうかを定義します。 可能な値:
データタイプ:ブーリアン |
| result.userTimeFormat | ユーザーの時間形式を記述します。 ユーザーはエンドポイント要求を行うユーザーです。プラットフォームを介して作成された場合は、エージェントです。ポータルを介して作成された場合は、顧客です。 データタイプ: オブジェクト |
| result.userTimeFormat.type | 時間形式のタイプ。 可能な値:
データタイプ:文字列 |
| result.userTimeFormat.value | 「HH:mm:ss」などの優先時間形式。 データタイプ:文字列 |
| result.userTimeFormatOptions | JS 時間オブジェクトをレンダリングするために必要な時間形式オプションについて説明します。これらの値は、変更できない予約定数で設定されます。 データタイプ: オブジェクト |
| result.userTimeFormatOptions.hour | 時間単位のフォーマット。 形式:数値 (値 1 〜 12) |
| result.userTimeFormatOptions.hourCycle | 時間単位の形式。 可能な値は h23 のみです。 |
| result.userTimeFormatOptions.minute | 分単位の形式。 形式:数値 (1 〜 60 の値) |
| result.view_scale | サービス構成で構成されたビュー。 可能な値:
データタイプ:文字列 |
cURL 要求
次のコード例は、このエンドポイントを呼び出す方法を示しています。
curl "http://instance.servicenow.com/api/sn_apptmnt_booking/v1/appointment/configuration?catalog_id=e4c1116b3b810300ce8a4d72f3efc40f" \
--request GET \
--header "Accept:application/json" \
--user ‘username':'password'
応答:
{
"result": {
"active": true,
"activeString": "true"
"view_scale": "day",
"auto_acceptance": true,
"task_table": "wm_order",
"advanced_calendar_view_portal": false,
"service_config": {
"appointment_booking_config": "deb1d2fd3b033200ce8a4d72f3efc4c2",
"future_bookable_max_days": "14",
"appointments_per_bookable_slot": "20",
"bookable_days": "1,2,3,4,5",
"active": true,
"activeString": "true",
"mandatory": "1",
"lead_time": "1970-01-01 04:00:00",
"cancel_by_time": "1970-01-01 04:00:00",
"appointment_duration": "120",
"default_timezone": "location",
"work_duration": "60",
"enable_advanced_config": true,
"field_mapping": {
"location": "location"
"opened_for": "contact",
"locationRPVariable": {
"name": "location",
"label": "Location",
"displayName": "location"
},
"contactRPVariable": {
"name": "contact",
"label": "Contact",
"displayName": "contact"
}
},
"use_slot_end_time_as": ""
},
"translations": {
"submit_btn_text": "Select",
"cancel_btn_text": "Cancel",
"calendar_prev_text": "Previous",
"select_appointment_calendar_text": "Select Appointment Calendar",
"calendar_next_text": "Next",
"previous_btn_text": "Previous day",
"next_btn_text": "Next day",
"date_input_placeholder_text": "Pick a date",
"show_calendar_btn_text": "Show Calendar",
"app_window_btn_text_start_time": "Start time",
"app_window_btn_text_end_time": "End time",
"appointment_window_aria_label_start_text": "Available appointment window ",
"no_appointment": "No appointments",
"time_zone": "Time zone",
"selected_window": "The window which has been selected is ",
"day_names": {
"1": "Monday",
"2": "Tuesday",
"3": "Wednesday",
"4": "Thursday",
"5": "Friday",
"6": "Saturday",
"7": "Sunday"
},
"days": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"daysShort": [
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
],
"daysMin": [
"Su",
"Mo",
"Tu",
"We",
"Th",
"Fr",
"Sa"
],
"months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"monthsShort": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
],
"today": "Today",
"clear": "Clear",
"language": "en",
"arrive_by_msg": "The agent will arrive within the selected slot."
},
"useRR": true,
"locale_language": "en",
"userTimeFormat": {
"value": "HH:mm:ss",
"type": "24hr"
},
"userDateFormatOptions": {
"weekday": "short",
"year": "numeric",
"month": "short",
"day": "numeric"
},
"userTimeFormatOptions": {
"hour": "numeric",
"minute": "numeric",
"hourCycle": "h23"
}
}
}
予約:GET /sn_apptmnt_booking/予約/execute_rule_conditions
指定されたタスクsys_idまたは指定されたカタログアイテムデータのセットに一致する予約サービス設定ルールのsys_idを返します。
渡されたタスク ID またはカタログアイテムデータは、サービス構成に定義されたルールに照らして評価されます。これらの条件が最初に一致するルールのsys_idが返されます。その後、このルールsys_id後続の可用性要求に渡して、ルールで定義されている正しいスロットをフェッチする必要があります。
このエンドポイントにアクセスするには、snc_internal ロールまたは snc_external ロールのいずれかが必要です。
URL 形式
バージョニングされた URL: /api/sn_apptmnt_booking/{api_version}/appointment/execute_rule_conditions
デフォルト URL: /api/sn_apptmnt_booking/appointment/execute_rule_conditions
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| catalogId | 必須。予約サービス構成で構成されたレコードプロデューサーのSys_id。 データタイプ:文字列 テーブル:レコードプロデューサー [sc_cat_item_producer] |
| otherInputs | taskIdパラメーターが指定されていない場合は必須です。 サービス構成に定義されたルールと比較するカタログアイテム変数の名前と値のペア。 たとえば、次のようになります。 データタイプ: オブジェクト |
| taskId | otherInputsパラメーターが指定されていない場合は必須です。 予約しているタスクレコードのSys_id。予約が行われているタスクテーブルにあります。catalogIdは特定の予約設定に対応しており、すべての設定には予約を行うタスクテーブルがあります。 データタイプ:文字列 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| 結果 | エンドポイントによって返される情報の説明。 データタイプ: オブジェクト |
| result.dedicatedCapacity | 関連付けられたルールに専用のキャパシティがあるかどうかを示すフラグ。専用容量の詳細については、「 Create service configuration rules for a service configuration」を参照してください。 可能な値:
データタイプ:ブーリアン |
| result.futureMaxBookableDays | 一致ルールを使用して予約できる将来の最大日数。 データタイプ:文字列 |
| result.ruleId | 要求で渡された taskId パラメーターまたは otherInputs パラメーターに一致する予約サービス設定ルールのSys_id。 データタイプ:文字列 テーブル:サービス構成ルール [sn_apptmnt_booking_config_rule] |
| result.ruleName | 渡されたパラメーターに一致したルールの名前。 データタイプ:文字列 |
cURL 要求
次のコード例は、 taskId パラメーターを使用してルール比較要求を行う方法を示しています。
curl "http://instance.servicenow.com/api/sn_apptmnt_booking/v1/appointment/execute_rule_conditions" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"catalogId\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
\"taskId\": \"ce1f397c43b861105e0dbcba6ab8f298\"}" \
--user 'username':'password'
応答:
{
"result": {
"ruleId": "f7d5d98f437c21105e0dbcba6ab8f2fc",
"ruleName": "Priority 1 rule",
"dedicatedCapacity": true,
"futureMaxBookableDays": "14"
}
}
cURL 要求
次のコード例は、 otherInputs パラメーターを使用してルール比較要求を行う方法を示しています。
curl "http://instance.servicenow.com/api/sn_apptmnt_booking/v1/appointment/execute_rule_conditions" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"catalogId\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
\"otherInputs\": {
\"u_sn_point_of_sale_variable_set\": \"true\",
\"short_description\": \"Point-of-Sale Installation\",
\"contact\": \"6816f79cc0a8016401c5a33be04be441\",
\"description\": \"Install new point-of-sale system with cash tray\",
\"location\": \"32e8499cdb2d2200d75270f5bf9619d6\"
}
}" \
--user 'username':'password'
応答:
{
"result": {
"ruleId": " 1d1bb72b4334a1105e0dbcba6ab8f275",
"ruleName": "Lake View SC rule",
"dedicatedCapacity": false,
"futureMaxBookableDays": "21"
}
}
予約 - POST /sn_apptmnt_booking/appointment/appointment
フィールドサービス管理 (FSM)タスクの予約と再スケジュールを行うことができます。
フィールドサービス管理 (FSM)タスクの詳細については、「Configuring Appointment Booking」を参照してください。
URL 形式
バージョニングされた URL: /api/sn_apptmnt_booking/{api_version}/appointment/appointment
デフォルト URL: /api/sn_apptmnt_booking/appointment/appointment
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| actualEndDate | 必須。予約のタイムゾーンでの予約スロットの終了日時。 日付タイプ:文字列 形式:YYYY-MM-dd HH:mm:ss |
| 実際の開始日 | 必須。予約のタイムゾーンでの予約スロットの開始日時。 日付タイプ:文字列 形式:YYYY-MM-dd HH:mm:ss |
| catalogId | 予約サービス構成用に構成されたレコードプロデューサーのSys_id。 このパラメーターを渡さない場合、エンドポイントは taskId パラメーターと taskTable パラメーターからこの情報を識別しようとします。できない場合、エンドポイントは失敗し、エラーが返されます。 日付タイプ:文字列 テーブル:予約サービス構成 [sn_apptmnt_booking_service_config] テーブルの [カタログアイテム] フィールド。 |
| 終了日 UTC | 必須。UTC タイムゾーンの予約スロットの終了日時。 日付タイプ:文字列 形式:YYYY-MM-dd HH:mm:ss |
| 場所 | 必須。予約に関連する場所レコードのSys_id。 日付タイプ:文字列 テーブル:場所 [cmn_location] |
| オープン対象 | 必須。予約対象のユーザーのSys_id。 日付タイプ:文字列 テーブル: ユーザー [sys_user] |
| reschedule | 必須。予約が再スケジュールされているかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| service_cofig_rule | 予約がルールに基づいて予約されている場合は、サービス構成ルールのsys_id。 日付タイプ:文字列 テーブル:サービス構成ルール [sn_apptmnt_booking_config_rule] |
| 開始日 UTC | 必須。UTC タイムゾーンの予約スロットの開始日時。 日付タイプ:文字列 形式:YYYY-MM-dd HH:mm:ss |
| taskId | 必須。予約しているタスクレコードのSys_id。 日付タイプ:文字列 テーブル: taskTable パラメーターで定義されます。 |
| taskTable | 必須。予約が行われているタスクレコードを含むテーブルの名前。 日付タイプ:文字列 |
| タイムゾーン | 必須。指定された予約スロットを予約または更新するときに使用するタイムゾーン。 形式:国/都市または地域の形式 (米国/東部など) 日付タイプ:文字列 |
| validate_request | 予約要求を検証するかどうかを示すフラグ。いずれかの検証が失敗すると、エンドポイントは失敗し、問題を説明するエラーメッセージが返されます。 次の検証が実行されます。
有効な値:
データタイプ:ブーリアン デフォルト値:false |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| 結果 | エンドポイント要求の結果に関する情報。 データタイプ: オブジェクト |
| result.data | 作成または再スケジュールされた予約レコードのSys_id。 データタイプ:文字列 |
| result.message | 予約要求がスケジュール設定されたか失敗したかを説明するメッセージ。たとえば、エラー応答には次のものが含まれます。
データタイプ:文字列 |
| result.reason | 予約要求の結果に関する追加情報。 データタイプ:文字列 |
| result.success | 要求が成功したかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
cURL 要求
次の例は、作業指示 [wm_order] テーブルのタスクの新しい予約を作成する方法を示しています。
curl "https://instance.servicenow.com/api/sn_apptmnt_booking/appointment/appointment" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"startDateUTC\": \"2023-02-01 20:00:00\",
\"endDateUTC\": \"2023-02-01 22:00:00\",
\"actualStartDate\": \"2023-02-01 15:00:00\",
\"actualEndDate\": \"2023-02-01 17:00:00\",
\"taskTable\": \"wm_order\",
\"location\": \"32e8499cdb2d2200d75270f5bf9619d6\",
\"catalogId\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
\"openedFor\": \"ddce70866f9331003b3c498f5d3ee417\"
\"taskId\": \"ce1f397c43b861105e0dbcba6ab8f298\",
\"reschedule\": false,
\"service_configuration_rule\": \"\",
\"timezone\": \"US/Eastern\"
}" \
--user 'username':'password'
応答:
{
"result": {
"success": true,
"message": "Your appointment has been scheduled successfully.",
"reason": "Appointment created!",
"data": "7a5f393c43b861105e0dbcba6ab8f29f"
}
}
予約 - POST /sn_apptmnt_booking/予約/可用性
予約サービス設定で設定されているスロットを、その空き状況とともに返します。
サービス構成で詳細構成が有効になっている場合、エンドポイントはこれらの構成を優先し、ルールと詳細構成に従ってデータを返します。このエンドポイントを使用して、要求本文の get_next_available_slot パラメーターまたは get_next_available_day_data パラメーターを true として渡すことで、最初に利用可能なスロットを見つけることもできます。
このエンドポイントにアクセスするには、snc_internal ロールまたは snc_external ロールのいずれかが必要です。
URL 形式
バージョニングされた URL: /api/sn_apptmnt_booking/{api_version}/appointment/availability
デフォルト URL: /api/sn_apptmnt_booking/appointment/availability
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| catalog_id | 予約サービス構成用に構成されたレコードプロデューサーのSys_id。 このパラメーターを渡さない場合、エンドポイントは taskId パラメーターと task_table パラメーターからこの情報を識別しようとします。できない場合、エンドポイントは失敗し、エラーが返されます。 データタイプ:文字列 テーブル:予約サービスの構成 [sn_apptmnt_booking_service_config] テーブルの関連レコードの [カタログアイテム] フィールド。 |
| end_date | 必須。予約をフェッチする終了日時。 データタイプ:文字列 形式:UTC タイムゾーンおよび形式 YYYY-MM-dd HH:mm:ss |
| fetch_days_slot | 要求された日付範囲で毎日最初に利用可能なスロットを返すかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン デフォルト値:false |
| full_day | 必須。開始日と終了日の時間値に関係なく、渡された指定された日付範囲のすべての予約を返すかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| get_next_available_slot | 最初に利用可能な予約スロットが、渡された start_date および end_date パラメーターに含まれていない場合でも、応答とともに返すかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン デフォルト値:false |
| limit | 返される予約の最大数。 データタイプ:数値 デフォルト:sn_apptmnt_booking .max_appointments_ で返されたプロパティで指定された値。プロパティが空の場合は 1,000。 |
| 場所 | 必須。予約に関連付けられた場所レコードのSys_id。 データタイプ:文字列 テーブル:場所 [cmn_location] |
| opened_for | 必須。予約対象のユーザーのSys_id。 データタイプ:文字列 テーブル: ユーザー [sys_user] |
| otherInputs | スクリプト化された手法で可用性を計算するために必要なその他の値の名前と値のペア。通常、これらの値はカタログアイテム変数ですが、予約アプリケーションをカスタマイズすると、実装に必要な値を渡すことができます。 たとえば、次のようになります。 データタイプ: オブジェクト |
| service_config_rule | 予約スロットと可用性の計算に使用するサービス構成ルールのSys_id。 データタイプ:文字列 テーブル:サービス構成ルール [sn_apptmnt_booking_config_rule] |
| start_date | 必須。予約をフェッチする開始日時。 データタイプ:文字列 形式:UTC タイムゾーンおよび形式 YYYY-MM-dd HH:mm:ss |
| taskId | 予約しているタスクレコードのSys_id。 日付タイプ:文字列 テーブル: taskTable パラメーターで定義されます。 |
| task_table | 必須。予約が行われているタスクレコードを含むテーブルの名前。 データタイプ:文字列 |
| use_read_replica | 予約スロットとその可用性をフェッチするときに、データベースの読み取りレプリカを使用するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| 表示 | 必須。要求の作成元ポイント。 有効な値: (大文字と小文字を区別)
データタイプ:文字列 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| 結果 | 要求に一致する予約の詳細。 データタイプ: オブジェクト |
| result.availability | 指定された要求を満たす予約スロットのリスト。 データタイプ:オブジェクトのアレイ |
| result.availability.available | 関連付けられたタイムスロットが利用可能かどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.availability.end_date | 関連付けられた予約の終了日時。タイムゾーンは、 time_zone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.availability.end_date_display | 関連する予約の終了日時を表示します。タイムゾーンは、 time_zone_display_value パラメーターの値に基づいています。 データタイプ:文字列 形式:要求ユーザーの日時形式。 |
| result.availability.end_dateUTC | 関連する予約の終了日時 (UTC 時間)。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.availability.start_date | 関連する予約の開始日時。タイムゾーンは、 time_zone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.availability.start_date_display | 関連する予約の開始日時を表示します。タイムゾーンは、 time_zone_display_value パラメーターの値に基づいています。 データタイプ:文字列 形式:要求ユーザーの日時形式。 |
| result.availability.start_dateUTC | 関連付けられた予約の開始日時 (UTC 時間) データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.has_more | 制限を返した後にフェッチする予約スロットがさらにあるかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.next_available_slot | get_next_available_slotパラメーターが true として渡された場合は、渡された開始日と終了日に関係なく、最初に利用可能なスロットの詳細。 データタイプ: オブジェクト |
| result.next_available_slot.available | 関連付けられたタイムスロットが利用可能かどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.next_available_slot.end_date | 関連付けられた予約の終了日時。タイムゾーンは、 time_zone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.next_available_slot.end_date_display | 関連する予約の終了日時を表示します。タイムゾーンは、 time_zone_display_value パラメーターの値に基づいています。 データタイプ:文字列 |
| result.next_available_slot.end_dateUTC | 関連する予約の終了日時 (UTC 時間)。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.next_available_slot.start_date | 関連する予約の開始日時。タイムゾーンは、 time_zone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.next_available_slot.start_date_display | 関連する予約の開始日時を表示します。タイムゾーンは、 time_zone_display_value パラメーターの値に基づいています。 データタイプ:文字列 |
| result.next_available_slot.start_dateUTC | 関連付けられた予約の開始日時 (UTC 時間) データタイプ:文字列 形式:YYYY-MM-DD hh:mm:ss |
| result.no_appt_available | 指定された日時に利用可能な予約スロットが他にもあるかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.success | エンドポイント呼び出しが成功したかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| result.time_zone | 予約スロットがレンダリングされたタイムゾーン。予約サービス設定の値に基づいています。 データタイプ:文字列 |
| result.time_zone_display_value | 予約スロットがレンダリングされたタイムゾーンを表示します。予約サービス設定の値に基づいています。 データタイプ:文字列 |
cURL 要求
次のコード例は、このエンドポイントを呼び出す方法を示しています。
curl "http://instance.servicenow.com/api/sn_apptmnt_booking/v1/appointment/availability" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"start_date\": \"2023-02-05 05:00:00\",
\"end_date\": \"2023-02-07 04:59:59\",
\"location\": \"32e8499cdb2d2200d75270f5bf9619d6\",
\"catalog_id\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
\"opened_for\": \"6816f79cc0a8016401c5a33be04be441\",
\"full_day\": false,
\"task_table\": \"wm_order\",
\"view\": \"portal\",
\"get_next_available_slot\": true,
\"use_read_replica\": true,
\"service_config_rule\": \"f7d5d98f437c21105e0dbcba6ab8f2fc\"
}" \
--user 'username':'password
応答:
{
"result": {
"success": true,
"availability": [
{
"start_date": "2023-02-06 09:00:00",
"end_date": "2023-02-06 11:00:00",
"start_date_display": "09:00",
"end_date_display": "11:00",
"start_dateUTC": "2023-02-06 14:00:00",
"end_dateUTC": "2023-02-06 16:00:00",
"available": false
},
{
"start_date": "2023-02-06 13:00:00",
"end_date": "2023-02-06 15:00:00",
"start_date_display": "13:00",
"end_date_display": "15:00",
"start_dateUTC": "2023-02-06 18:00:00",
"end_dateUTC": "2023-02-06 20:00:00",
"available": false
},
{
"start_date": "2023-02-06 15:00:00",
"end_date": "2023-02-06 17:00:00",
"start_date_display": "15:00",
"end_date_display": "17:00",
"start_dateUTC": "2023-02-06 20:00:00",
"end_dateUTC": "2023-02-06 22:00:00",
"available": false
}
],
"has_more": false,
"no_appt_available": true,
"time_zone": "US/Eastern",
"time_zone_display_value": "US/Eastern",
"next_available_slot": {
"start_date": "2023-02-10 13:00:00",
"end_date": "2023-02-10 15:00:00",
"start_date_display": "13:00",
"end_date_display": "15:00",
"start_dateUTC": "2023-02-10 18:00:00",
"end_dateUTC": "2023-02-10 20:00:00",
"available": true
}