ダイレクト Web サービス
適切なアクセス制御リストが設定されている場合は、システム内の任意のテーブルでダイレクト Web サービスを使用できます。
サポートされている受信メッセージの形式は、ドキュメントスタイルリテラル XML SOAP ドキュメント (ドキュメント/リテラル) です。ダイレクト Web サービスの WSDL 記述および XML スキーマを取得するには、相対 URL <tablename>.do?WSDL をポイントします。たとえば、オンラインデモシステムのインシデントテーブルの WSDL を取得するには、以下の URL を使用します。https://<instance name>.service-now.com/incident.do?WSDL。
拡張クエリパラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| __encoded_query | 返された結果のフィルタリングに使用するエンコードされたクエリ文字列を指定します。エンコードされたクエリ文字列の形式は、sysparm_query URL パラメーターで指定できる値に似ています。RSS フィードジェネレーターの例で、エンコードされたクエリの構築例を参照してください。 |
<__encoded_query>active=true^category='hardware'</__encoded_query> |
| __order_by | 返された結果が指定されたフィールド順に並べ替えられるように指示します。 | <__order_by>priority</__order_by> |
| __order_by_desc | 返された結果が指定されたフィールド順に降順で並べ替えられるように指示します。 | <__order_by_desc>opened_date</__order_by_desc> |
| __exclude_columns | 結果セットから除外するカンマ区切りフィールド名のリストを指定します。 | <__exclude_columns>sys_created_on,sys_created_by,caller_id,priority</__exclude_columns> |
| __limit | 返されるレコードの数を制限します。 | <__limit>100</__limit> |
| __first_row | セットの先頭からこのレコード数だけ結果をオフセットするように指示します。__last_row とともに使用すると、結果のウィンドウをクエリする効果があります。結果には最初の行番号が含まれます。 |
<__first_row>250</__first_row> |
| __last_row | セットの先頭または __start_row 値 (指定されている場合) からこのレコード数で結果を制限するように指示します。__first_row とともに使用すると、結果のウィンドウをクエリする効果があります。結果は最後の行番号未満であり、最後の行は含まれません。 |
<__last_row>500</__last_row> |
| __use_view | 返される結果を制限および展開するために使用するフォームビューを名前で指定します。フォームビューに caller_id.email などの詳細参照フィールドが含まれている場合、このフィールドも結果で返されます。 | <__use_view>soap_view</__use_view> |
ダイレクト Web サービス名前空間
各テーブルの一意の名前空間の指定
glide.wsdl.definition.use_unique_namespace プロパティは、各テーブルのダイレクト Web サービス WSDL に確実に一意の targetNamespace 属性が含まれるようにします。このプロパティはデフォルトで true になっており、この場合はテーブルのダイレクト Web サービス WSDL で targetNamespace 値が http://www.service-now.com/<table name>である必要があります。false の場合 (またはプロパティが存在しない場合)、すべてのテーブルで targetNamespace 値に同じ http://www.service-now.com が使用されます。すべてのテーブルでも同じ操作名が共有されるため、複数の ServiceNow Web サービスを使用しようとする Web サービスクライアントは、複数のテーブル間の要求を区別できません。一意の targetNamespace 値を使用すると、Web サービスクライアントは複数のテーブル間の要求を区別できます。
たとえば、インシデントテーブルのダイレクト Web サービス WSDL は、次の targetNamepsace 値を使用します。
<wsdl:definitions xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/"xmlns:tns = "http://www.service-now.com/incident"xmlns:xsd = "http://www.w3.org/2001/XMLSchema"xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/"xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace = "http://www.service-now.com/incident" ><wsdl:types><xsd:schema elementFormDefault = "unqualified"targetNamespace = "http://www.service-now.com/incident" >
名前空間要件の設定
ServiceNow の WSDL スキーマでは、デフォルトで elementFormDefault="unqualified" 属性が宣言されます。この属性は、インスタンスドキュメント内でローカルに宣言された要素を targetNamepsace で修飾する必要があるかどうかを示します。この属性の値が unqualified の場合、ローカルに宣言された要素を targetNamepsace で修飾することはできません。この属性の値が qualified の場合、ローカルに宣言された要素を targetNamepsace で修飾する必要があります。
ただし、これは、WSDL から生成されたクライアント (.NET、Axis2、webMethods など) が埋め込みスキーマを処理する方法と互換性がありません。結果としてスキーマ名前空間が削除され、Web サービス応答が解析不能になります。
この互換性の問題を解決するために、glide.wsdl.schema.UnqualifiedElementFormDefault と呼ばれるブールプロパティが導入されています。このプロパティのデフォルトの値は true です。false に設定すると、WSDL から生成されたクライアントが Web サービス呼び出しの戻り値を解析できるようになります。このプロパティは、次の Web サービスのプロパティページを使用して変更できます .
重複サービス名の許可
デフォルトでは、動的に生成された WSDL のサービス名は一意であり、次の形式になります。
ServiceNow_<table name>
サービス名の重複を許可するには、管理者は glide.wsdl.unique_service_name プロパティを false に設定できます。プロパティが存在しない場合は作成します。