Creating an import set web service

  • Release version: Washingtondc
  • Updated February 1, 2024
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Creating an Import Set Web Service

    This guide outlines the process for creating a web service import set table in ServiceNow, which is essential for staging and transforming imported data from external applications. The creation process is initiated through the System Web Services interface.

    Show full answer Show less

    Key Features

    • Create Web Service: Define the import set table name and label, with an option to create a transform map to direct data to a target table.
    • Web Service Fields: All fields are published as xsd:string by default, and you can manage these fields by adding, modifying, or marking them for deletion.
    • Transform Maps: Optionally create a transform map during web service creation, which executes synchronously upon invocation.
    • Response Customization: Modify response values in the transform map script using predefined variable names to customize the output response.
    • Debugging: Enable SOAP request logging by setting a system property to track incoming requests for easier troubleshooting.

    Key Outcomes

    By following these steps, ServiceNow customers can effectively import and transform data from external systems, customize the responses returned to clients, and troubleshoot any issues that arise during integration. This enhances data management and improves overall operational efficiency within the ServiceNow platform.

    Create a web service import set table to define how to stage and transform imported data.

    Navigate to All > System Web Services > Inbound > Create New.

    Figure 1. Create Web Service

    The Name of the web service is the table name of the import set table whereas the Label field is the resulting table field.

    If you want to create a transform map after creating the web service, check the Create transform map checkbox and choose the target table you want the data to transform into. After the Create button is selected, the web service is created and you will be immediately put into the Table Transform Map form. You may then continue to specify the transform map or script.

    Web Service Fields

    The fields available for this web service. All fields by default are published as the XSD type of xsd:string. The Name is the field that is exposed for the web service and therefore appears as the name of the field in the WSDL. The Label is the label of the field as it appears for the import sets table.

    You can Add, mark for Delete or modify (double-click the field) an existing web service field in this list.
    Note:
    After adding web service fields, click Create to create the web service import set table.

    To add other fields after the Web Service is created, find the target table, and add the fields to that table.

    Mapping web service import sets

    During the creation of the web service import set, you may optionally create the transform map for it.

    All transform maps are executed for the service when it is invoked and the import set mode is set as "Synchronous" (the default).

    The following image is an example of the transform map associated with the Notification web service import set.
    Figure 2. Notification Transform Map

    Adding Web Service Response Values

    In the transform map script associated with a web service import set, some variable values can change the response values of the web service. In addition to the normal variables that are available in a transform map script, the table documents the variables that are available and their effects.
    Table 1. Adding Web Service Response Values
    Variable name Type Description
    response Output Object Javascript object that holds dynamically created response elements used to customize the output response of a web service import set insert.

    Example

    // create new elements called "transaction_id" 
    // and "hello" in the web service response
    response.transaction_id="abc123";
    response.hello="world";
     
    status_message="message 1";
    // this is the normal status_message variable
    The code snippet example results in the following response being generated back to the web service consumer
    <soapenv:Envelopexmlns:imp="http://www.service-now.com/imp_notification"                  
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/><soapenv:Body>
    <insertResponse xmlns="http://www.service-now.com/imp_notification">
      <sys_id>969d157c0a0a0baf008ba5770ffa798c</sys_id>
      <table>incident</table>
      <display_name>number</display_name>
      <display_value>INC0010091</display_value>
      <status>inserted</status>
      <status_message>message 1</status_message>
      <transaction_id>abc123</transaction_id>
      <hello>world</hello>
    </insertResponse>
    </soapenv:Body></soapenv:Envelope>

    Debugging web service import sets

    To debug a SOAP Request coming into the system, create the system property glide.processor.debug.SOAPProcessor.

    Once you have created it, set it to true to have all SOAP requests be logged in the System Log. Set it to false when you are done to keep the size of your System Log to a managed length.