Inbound REST web service question

Sergio24
Kilo Expert

Hello community,

I need some answers, guidance and advise on an integration we're working on with an external system MIM (Microsoft Identity Manager).

Basically in ServiceNow we're are managing users requests for SAP roles exemptions (created through Service catalog).

This will create a service request with requested items (one by role) and a catalog task (one by requested item).

The catalog task is where the external system MIM will query informations (like the user, his position, the SAP role, etc) and at the end will update the task to close it.

So the external system will do two types of interactions with ServiceNow:   Query and Update. It also has been stated that the external system will be the one to pull and push information periodically.

We need to provide an Inbound web service to the external system (we're going to use REST/JSON)

Here is where I need answers and guidance:

From what I read so for in the community, SNOW documentation and best practices videos:

- We can use a direct inbound web service to a SNOW table (ex: sc_request_task) when the system pull (query) information

- We can use an Import set web service when the system push (create, update) information

In our case, the external system will:

1- Initially query information in SNOW by getting the catalog task informations related to SAP roles exemptions.

2- Process the information

3- Finally update the catalog task to close them

- Can we use an Import set web service when initially an external system is only querying information from SNOW?

- Or we have to use a direct web service first and then an import set web service for the updates in SNOW?

- Or is there any other options

Thank you

1 ACCEPTED SOLUTION

larstange
Mega Sage

Hi



You can do it any way you like


  1. The external system can first query it identify the record it needs to update. Then it can call an update API to do the update. Whether you choose to do this via an import set or via a scripted REST API is up to you, but personally since it is not an import as such, but more an integration I would do a scripted api.
  2. You could also just do the second step (the update) if the external system can provide you with a number of values (user, case number ect) so that you in the update service can determine which record to update.

View solution in original post

12 REPLIES 12

patricklatella
Mega Sage

Hello larstange,

I'm seeing your replies and wondering if you have experience with setting up an inbound REST web service to ServiceNow from the SAP ETL tool "BODS"?  We are trying to setup the connection to our ServiceNow instance from the BODS tool, it's asking for the URL, user ID, and password.  

I've created a user record to use in our instance, and have given the rest_api_explorer and rest_service roles.  

We then are using the URL :

https://cubicdev.service-now.com/api/now/table/incident  (doing this integration with our DEV instance for now).  Plus I realize this is only for the [incident] table, but it was the only URL I could find.  

We are getting an error and the connection is not being made.  

Do you know what we might be doing wrong?  Thanks very much.

Patrick

 

larstange
Mega Sage

Hi

Which error are you getting?

I would recommend that you test the inbound rest API using eg. SoapUI or Postman just to check that everything is working in a more simple tool chain.

Then move to SAP from there.

patricklatella
Mega Sage

the error is saying: 

WADL document is missing an application element

 

Well ServiceNow does not generate a WADL document, so if SAP is expecting one, you are out of luck getting it from ServiceNow.

https://community.servicenow.com/community?id=community_question&sys_id=7bcc8329db9cdbc01dcaf3231f9619db&view_source=searchResult

 

You might be able to create it yourself, but this is not somehing I have ever tried to do.

 

When I look at test REST projects created in SoapUI towards ServiceNow it looks like SoapUI is generating a wadl. Maybe you can use this to feed SAP.

 

https://www.soapui.org/rest-testing/working-with-rest-services.html

We actually tried it using SOAP and got it connected...thanks for the input!