Activating ICT_SERVICE_DESK_API in 7.1
Short blog on configuring ICT_SERVICE_DESK_API in 7.1 from activating up to short test on SOAPUI.
Some copying and pasting from documentation but this is doc I wish I had before I started looking into it.
Setup Webservice API in Solution Manager.
1- Assign Roles to the Technical User
Use
This IMG activity creates a technical user with restricted authorization, that is used when an external service desk system calls the SAP Solution Manager Service Desk.
Activities
Create user
- Enter a user name
- Choose the user type System.
- Save.
Assign role to a user
If the external service desk system is also a SAP Solution Manager system, assign the following roles to the technical user:
SAP_SUPPDESK_ADMIN
SAP_SUPPDESK_INTERFACE
2 Activate Service
Activities
- Enter the service name ICT_SERVICE_DESK_API, and choose Execute.
- Select the service in the tree structure, and choose Activate Service in the context menu.
This directs you to transaction SICF.
Configure Service Provider
This Customizing activity configures this web service to connect to the external service desk. You can connect an external service desk to the Solution Manager
service desk to make different tools available to the different levels of your support organization.
In spro, this will direct you to transaction SOAManager
Activities
- In the Service Administration tab, choose Configure Web Services.
- Enter the following data:
- Search for: Service Definition
- Search term: ICT_SERVICE_DESK_API
- Start the search.
- Choose the service and click Apply selection.
- To create an end point to the service, in the Configuration tab, choose Create. You go to a dialog box.
- Enter the following data:
- Service name: ICT_SERVICE_DESK_API
- Description: ICT_SERVICE_DESK_API
- New Binding Name: ICT_SERVICE_DESK_API
- Choose Copy Settings.
- On the Provider Security tab, enter the following data:
- Transport guarantee > Connection security:None (HTTP) Authentification settings > Authentification method> Authentification at transport level: User ID and password
- Save your entries.
Just to test if everything is correct with J2EE, click on the link for Open Web Service navigator for selected binding
If you get the following error then follow the instructions
Open Web Service navigator for selected binding
- Enter the Hostname and port and save.
- Go to the Technical Configuration tab.
- Choose System Global Settings.
- Choose Edit/Display.
- Specify a host name and a port number.
- If you are working with a J2EE engine with
version 6.40 or 7.00, select J2EE engine is 6.40/7.0 - Note that if this option is not selected, the
system will assume that you are working with a J2EE engine with version 7.10 or
later - Save.
Configure Service Consumer
Use
The logical port specifies the server of the external system, and is used to transfer data. The Web AS HTTP or HTTPS port is used, depending on the
information in the URL.
To set this parameter, proceed as described in the activity Maintain Profile Parameters (see transaction SOLMAN_SETUP).
Activities
- In the Service Administration tab, choose Configure Web Services.
- Enter the following data:
- Search for: Consumer Proxy
- Search term: CO_PCICT_SERVICE_DESK_API
- Start the search.
- Choose the consumer proxy and then Apply Selection.
- Go to the Configuration tab.
- Choose Create to create the logical port. You go to a dialog box.
- Enter the required data:
- Logical Port Name: For example the name of the external system
- Description: For example the name of the external system
- Configuration type: WSDL-based configuration
- Either enter the URL of the external WSDL, or upload the WSDL document as a file.
- You will find the WSDL by going back into the ICT_SERVICE_DESK_API service definition. Click on the link Show / hide selected Binding’s or Service’s WSDL URL. Next you will see the URL below it.
- http://host:port/sap/bc/srt/wsdl/srvc_C6AE31154BB71EE2A284217D4A1C1A8B/wsdl11/allinone/ws_policy/document?sap-client=001
- Choose Copy Settings.
- In the Consumer Security tab, under User ID and Password, enter the technical user of the external system.
- Save your entries.
In the documentation here is idea of the logical port and end point which you just created.
Testing the Web Service
1- Press the button Ping Web Service, you should see this success message
Web service ping successful for LP ‘LINK2JIRA’, proxy ‘CO_PCICT_SERVICE_DESK_API’
2- Another test is to go to the WSDL Analyzer.
Enter in the WSDL, User and password and you will see the details of the service.
3- Now lets try a test on the Service.
In the ICT_SERVICE_DESK_API service definition click on the link
Open Web Service navigator for selected binding
A new browser page will open
Enter the WSDL URL of the Web service:
If you come across any errors you should check out Transaction SRT_TOOLS
Web Service Utilities: Administration -> Press Error Log button
This is very useful for giving more detail on an error you might see, it also gives the component this error is connected to.
4- Test from outside Solution Manager.
A very good tool is SOAPUI which is a free application.
- Open SOAPUI
- New project
- Enter description then WSDL URL and press OK.
- Depending on your settings you’ll be asked for user/password
You will now see the operands from the WSDL.
For short test we will try RequestSystemGuid.
As below, the GUID is returned.
Best Regards,
Matthew
Hi Matthew,
I haven't seen anything like your article posted before, and I agree, should you have this information before your first implementation connecting an ext service desk, life would have been so much easier! But sharing like this will give in return a lot to you, and for starters, my thankfulness. I hope to use your article soon and update you with my experience on this subject.
With best regards,
#solman71today
Hi Matthew,
Thanks for the excellent blog. I am confused about Service Consumer configuration though. The WSDL URL you have shown here is for the Solution Manager Service Desk I think. I was under the impression that this WSDL URL should be for the external Service Desk application like ServiceNow, Remedy, etc. Can you please confirm what exactly do we need to enter here? Where/How do we link to an external Service Desk application?
Thanks and regards.
Hi Matthew,
We are working on integraiong SOLMAN with SNOW using a middleware tool for incidnet relication. We have configured the provider and consumer as per the document .For the service consumer Web service endpoint of the middleware system is given.We are succesfully able to create an incident in SOLMAN and when we click on forward to external helpdesk ,ticket details are apperaing in middleware ,whch is intrun transferring details to SNOW and creating the incident .So incident flow/creation is happenign properly from SOLMAN-Middleware-SNOW .
But other way around SNOW-Middleware-SOLMAN we are not reciveing the incident.
When any new ticket is created/updated in last 1 minute is getting polled by middleware and it is trying to transfer the incident to solman.But no inciden is getting created in solman and no error logs in middleware or in soamanager of SOLMAN
When we try to do a test from SOAPUI to solman endpoint ,it gives error saying that call us incomplete or not suppoeted .Could you please suggest what could be the issue and how to fix it http://<hostname>:8000/sap/bc/srt/rfc/sap/ict_service_desk_api/001/ict_service_desk_api/ict_service_desk_api?
Regards,
Murali
Hi Matthew,
Could you please help with our issue
Regards,
Murali
Sorry but no idea.
Thanks Matthew for your reply
Regards,
Murali
Any idea how to SOLMAN sends this data back to the third party help desk. According to our web developer he feels SOLMABN is expecting to use an API on the third party help desk.
Hi Matthew,
Thank you for your greater blog.I used the service desk API and it seemed work fine,but status problem occurred when i check it.Below is what i did step by step.
1.call method ProcessIncident to create incident,seems work fine.Status marks 'PP' in table ICT_INCIDENTATTRĀ and 'New' in solman_workcenter.
2.call method ListUnclosedIncidents,returns the incident guid created above,seems work fine.
3.call method CloseIncident,return the personmaps,seems work fine.Status in table ICT_INCIDENTATTR marks 'CL'.
4.call method ListUnclosedIncidents again,returns nothing,seems incident above closed correctly.
But when i look up the incident from solman_workcenter ,status remained 'New'.
I don't know why. Could you please help with my issue?
Hi Matthew,
I found your post during my search about Monitoring the external Service Desk API.
I'm searching a solution to monitor the Webservice to the and from the External SD System.
On SOAMANAGER i didn't found a way to send me an alert when the external SD Service is unavailable or send a Mail to support when my created Incident isn't synchronized to the external System.
Any Ideas?
Someone else?