I saw a few discussions here regarding the lack of solid documentation on the web services portion of the SOI documentation. I too ran into this problem but eventually figured it out through some testing and wanted to share with the community in case someone else runs into the issue. I use SOAPUI to test out my web services. In this example I will be modifying a user attribute of an alert given its alertid. If you do not have the alertid, I also demonstrate how to obtain the alert id for an alert that meets a specific criteria.
1. Download and launch SoapUI
2. Create a new SOAPUI project. It will ask you for a webservice URL, use http://[Your SOI Manager]:7090/sam/webservice/wsdls/alarm.wsdl
3. SoapUI Will now ask for authentication to download the WSDL template.
4.At this point SoapUI will create a project binding called 'alarmResourceBinding'. Locate the PUT operator. and double click 'Request 1'
5. Replace the content of the request with the following:
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:mdo="http://schemas.wiseman.dev.java.net/metadata/messagetypes"
xmlns:mex="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"
xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
xmlns:wxf="http://schemas.xmlsoap.org/ws/2004/09/transfer">
<env:Header>
<wsa:To
env:mustUnderstand="true"
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">http://[Your SOI Manager]:7090/sam/webservice
</wsa:To>
<wsman:ResourceURI
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">urn:resources.sam.ca.com/webservice/1/alarm</wsman:ResourceURI>
<wsman:OperationTimeout xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">P0Y0M0DT0H0M30.000S</wsman:OperationTimeout>
<wsman:SelectorSet xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">
<wsman:Selector Name="AlertID">2506556</wsman:Selector>
</wsman:SelectorSet>
<wsa:Action
env:mustUnderstand="true"
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">http://schemas.xmlsoap.org/ws/2004/09/transfer/Put</wsa:Action>
<wsa:ReplyTo xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">
<wsa:Address env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID env:mustUnderstand="true" xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">uuid:cf38c3e2-29e3-499e-a149-79010114857f</wsa:MessageID>
<wsman:FragmentTransfer
Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"
env:mustUnderstand="true"
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd">UserAttribute4</wsman:FragmentTransfer>
</env:Header>
<env:Body>
<ns9:alarm xmlns:ns9="http://schemas.sam.ca.com/webservice/1/alarm.xsd">
<ns9:UserAttribute4>Hi I Just Updated You!</ns9:UserAttribute4>
</ns9:alarm>
</env:Body>
</env:Envelope>
6. I have bolded the things you need to change. Take note that this is a 'Fragment', which means you only really need to tell it what fields you want to update. In this case, I am only updating UserAttribute4. The key here is you nede to know the AlertID of the alarm you are trying to update.
What if you dont know your Alert ID
1. Open the 'EnumerateOP' operator
2. Replace the contents of Request 1 with the following
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:mdo="http://schemas.wiseman.dev.java.net/metadata/messagetypes"
xmlns:mex="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"
xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
xmlns:wsmeta="http://schemas.dmtf.org/wbem/wsman/1/wsman/version1.0.0.a/default-addressing-model.xsd"
xmlns:wxf="http://schemas.xmlsoap.org/ws/2004/09/transfer"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<env:Header>
<wsa:Action
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd"
env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</wsa:Action>
<wsa:ReplyTo
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd">
<wsa:Address env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd"
env:mustUnderstand="true">uuid:630424fc-0ce1-4bab-be37-c0398451db66</wsa:MessageID>
<wsa:To
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd"
env:mustUnderstand="true">http://[YOUR SOI MANAGER]:7090/sam/webservice</wsa:To>
<wsman:ResourceURI
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd">urn:resources.sam.ca.com/webservice/1/alarm</wsman:ResourceURI>
</env:Header>
<env:Body>
<wsen:Enumerate>
<wsen:Expires>PT5M</wsen:Expires>
<wsen:Filter>//*[local-name()='SvcDeskTicket' and text()='IM5937771']/..</wsen:Filter>
</wsen:Enumerate>
</env:Body>
</env:Envelope>
3. In the case above, I am simply searching for any alarm that has a 'Ticket ID' value of 'IM5937771'.
4. Execute the call, and wait for the response which will look like the following (I left the formatting as is so that you can compare your manager's response):
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:mdo="http://schemas.wiseman.dev.java.net/metadata/messagetypes" xmlns:mex="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:wsmeta="http://schemas.dmtf.org/wbem/wsman/1/wsman/version1.0.0.a/default-addressing-model.xsd" xmlns:wxf="http://schemas.xmlsoap.org/ws/2004/09/transfer" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<env:Header>
<wsa:Action env:mustUnderstand="true" xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd" xmlns:ns13="http://ns.ca.com/2009/01/usm-data" xmlns:ns14="http://ns.ca.com/2009/07/usm-core" xmlns:ns15="http://ns.ca.com/2009/07/eventing">http://schemas.xmlsoap.org/ws/2004/09/enumeration/EnumerateResponse</wsa:Action>
<wsa:MessageID env:mustUnderstand="true" xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd" xmlns:ns13="http://ns.ca.com/2009/01/usm-data" xmlns:ns14="http://ns.ca.com/2009/07/usm-core" xmlns:ns15="http://ns.ca.com/2009/07/eventing">uuid:ba78ac41-3e5c-4523-af6e-545894683ecc</wsa:MessageID>
<wsa:RelatesTo xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd" xmlns:ns13="http://ns.ca.com/2009/01/usm-data" xmlns:ns14="http://ns.ca.com/2009/07/usm-core" xmlns:ns15="http://ns.ca.com/2009/07/eventing">uuid:630424fc-0ce1-4bab-be37-c0398451db66</wsa:RelatesTo>
<wsa:To env:mustUnderstand="true" xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd" xmlns:ns13="http://ns.ca.com/2009/01/usm-data" xmlns:ns14="http://ns.ca.com/2009/07/usm-core" xmlns:ns15="http://ns.ca.com/2009/07/eventing">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
</env:Header>
<env:Body>
<wsen:EnumerateResponse xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd" xmlns:ns13="http://ns.ca.com/2009/01/usm-data" xmlns:ns14="http://ns.ca.com/2009/07/usm-core" xmlns:ns15="http://ns.ca.com/2009/07/eventing">
<wsen:Expires>2015-02-25T11:33:25.331-05:00</wsen:Expires>
<wsen:EnumerationContext>0909ea1d-aae1-4f02-a8e8-923d79901d91</wsen:EnumerationContext>
</wsen:EnumerateResponse>
</env:Body>
</env:Envelope>
5. Take note of the bolded text (enumerationcontext). Now open the 'PullOp' operator, and replace the request with the following:
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:mdo="http://schemas.wiseman.dev.java.net/metadata/messagetypes"
xmlns:mex="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"
xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
xmlns:wsmeta="http://schemas.dmtf.org/wbem/wsman/1/wsman/version1.0.0.a/default-addressing-model.xsd"
xmlns:wxf="http://schemas.xmlsoap.org/ws/2004/09/transfer"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<env:Header>
<wsa:Action
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd" env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull</wsa:Action>
<wsa:ReplyTo
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd">
<wsa:Address env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd"
env:mustUnderstand="true">uuid:630424fc-0ce1-4bab-be37-c0398451db66</wsa:MessageID>
<wsa:To
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd"
env:mustUnderstand="true">http://[YOUR SOI MANAGER]:7090/sam/webservice</wsa:To>
<wsman:ResourceURI
xmlns:ns11="http://schemas.sam.ca.com/webservice/1/alarm.xsd"
xmlns:ns12="http://schemas.sam.ca.com/webservice/1/alarmAnnotation.xsd">urn:resources.sam.ca.com/webservice/1/alarm</wsman:ResourceURI>
</env:Header>
<env:Body>
<wsen:Pull
xmlns:wsenz="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ad="http://schemas.microsoft.com/2008/1/ActiveDirectory">
<wsenz:EnumerationContext>0909ea1d-aae1-4f02-a8e8-923d79901d91</wsenz:EnumerationContext>
<wsenz:MaxTime>PT10S</wsenz:MaxTime>
<wsenz:MaxElements>100</wsenz:MaxElements>
</wsen:Pull>
</env:Body>
</env:Envelope>
The result will be all alerts that fit the search criteria, and their respective alert id's
Edit: A few notes----
1. Make sure that you have the Auth settings set for all actions. The Auth panel is found at teh bottom left of each request dialog. Select 'Basic' and use your SOI Manager User and Password.
2. Make sure that your request properties have the option 'Strip Whitespaces' set to true. Whitespaces seem to impact SOI requests. Other CA products do not seem to be impacted by this.