ダイレクト Web サービス

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • 適切なアクセス制御リストが設定されている場合は、システム内の任意のテーブルでダイレクト Web サービスを使用できます。

    サポートされている受信メッセージの形式は、ドキュメントスタイルリテラル XML SOAP ドキュメント (ドキュメント/リテラル) です。ダイレクト Web サービスの WSDL 記述および XML スキーマを取得するには、相対 URL <tablename>.do?WSDL をポイントします。たとえば、オンラインデモシステムのインシデントテーブルの WSDL を取得するには、以下の URL を使用します。https://<instance name>.service-now.com/incident.do?WSDL

    拡張クエリパラメーター

    拡張クエリパラメーターを使用すると、getgetKeys、および getRecords 関数の使用時に、SOAP クエリで返される結果をフィルタリングして変更できます。
    注:
    拡張クエリ要素名の前には 2 つのアンダースコア文字が付きます。
    表 : 1. 使用可能な拡張クエリパラメーター
    パラメーター 説明
    __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 サービスのプロパティページを使用して変更できます。 システムプロパティ > Web サービス.

    重複サービス名の許可

    デフォルトでは、動的に生成された WSDL のサービス名は一意であり、次の形式になります。

    ServiceNow_<table name>

    サービス名の重複を許可するには、管理者は glide.wsdl.unique_service_name プロパティを false に設定できます。プロパティが存在しない場合は作成します。