ダイレクト Web サービス
適切なアクセス制御リストが設定されている場合は、システム内の任意のテーブルでダイレクト Web サービスを使用できます。
サポートされている受信メッセージの形式は、ドキュメントスタイルのリテラル XML SOAP ドキュメント (ドキュメント/リテラル) です。直接 Web サービスの WSDL 説明と XML スキーマを取得するには、相対 URL <tablename>.do? をポイントします。WSDL。たとえば、オンラインデモシステムでインシデントテーブルの WSDL を取得するには、 https://<instance name>.service-now.com/incident.do?WSDL URL を使用します。
拡張クエリパラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| __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 が使用されます。また、すべてのテーブルが同じ操作名を共有するため、Web サービスクライアントが複数の ServiceNow 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 で修飾する必要があるかどうかを示します。この属性の値が 修飾されていない場合は、ローカルに宣言された要素を targetNamepsaceで修飾しないでください。この属性の値が 修飾されている場合は、ローカルに宣言された要素を 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 に設定できます。プロパティが存在しない場合は作成します。