UMWebService
I am trying to write a SOAP client that will list the Portal users and roles via a remote Java program.
I generated a SOAP client using the wsdl at:
...://irj/servlet/prt/soap/UMWebService
I am able to fetch a single user and a singl role using my generated client using and the getUser and getUniqueRole operations.
Next I am trying to call searchUsers but I am unsure of the values to supply for the four parameters or where I can go look to find the parameter mapping. The searchRoles call has a very similar signature.
The types on the method are string, int, boolean, int.
Through experimentation I've figured out 1 and 4, but 2 and 3 are a mystery.
1) String = Search String
*2) int = Is some type of enumeration if I use the value 2 it'll return all users.. ???
*3) boolean = not sure what this controls... ????
4) resultLimit = 0 returns all results
Here is the relevant wsdl elements.
<wsdl:operation name="searchUsers" parameterOrder="searchUsers_4_param14 searchUsers_4_param15 searchUsers_4_param16 searchUsers_4_param17">
<wsdl:input name="searchUsers_input0" message="intf:searchUsersRequest" />
<wsdl:output name="searchUsers_output0" message="intf:searchUsersResponse" />
<wsdl:fault name="com.sap.security.api.UMException" message="intf:UMException" />
</wsdl:operation>
<wsdl:message name="searchUsersRequest">
<wsdl:part name="searchUsers_4_param14" type="xsd:string" />
<wsdl:part name="searchUsers_4_param15" type="xsd:int" />
<wsdl:part name="searchUsers_4_param16" type="xsd:boolean" />
<wsdl:part name="searchUsers_4_param17" type="xsd:int" />
</wsdl:message>
Can anyone assist me in understanding what to pass in for these parameters or point me in the right direction?
Thanks.
Hi Dan,
see [IUMWebService|http://portal.ccspc.com.cn:50000/irj/portalapps/javadocs/runtime_misc_portalapplication/com/sapportals/portal/prt/webservice/usermanagement/iumwebservice.html]
The 1st parameter is the query string. You can use * as a wildcard if you use the LIKE_OPERATOR.
The 2nd parameter is the search mode operator: 0=EQUALS_OPERATOR, 1=LIKE_OPERATOR, 2=GREATER_THAN_OPERATOR and 3=LESS_THAN_OPERATOR (but I don't think 2 and 3 are useful in this context).
The 3rd parameter is caseSensitive and the 4th parameter is maxResultsize (<= 0 means all results).
Kind regards,
/Sigiswald
Similar Messages
-
Authentication failure message while calling UMWebService from Java
Hi All:
I am trying to consume UMWebService published in EP. The URL for this webservice is:
"http://<server>:<port>/irj/servlet/prt/soap/UMWebService?Wsdl".
I ceated a web reference to this WebService in my WebDynproJAVA project. But when I called one of the methods(getMapping()) on this webservice, a SOAP Exception has occured with the following message: "The User Authentification is not correct to access to the Portal Service UMWebService or the service was not found."
How would I solve this problem to provide the Authentication for the webservice.
Thanks in advance,
Munna_SAPHi Munna,
if your WAS requires user authentication you should do this:
1. set-up security options of Logical Port in you WS Model (Security tab > set HTTP Authentication)
2. before WS executing set user name and password:
wdContext.currentRequest_UMWebService_getMappingElement().modelObject()._setUser("user");
wdContext.currentRequest_UMWebService_getMappingElement().modelObject()._setPassword("pwd");
Let me know if this help,
regards
Pavel -
EP Authentication through WebService
Hi all,
I need to implement a login module in a .NET standalone application that gets the user profile in EP 6.0 SP2. Next the app will send some SOAP messages to SAP XI.
I want to validate the user and password from a .NET login screen and validate the user & password in the Portal.
I have read something about UMWebService but it doesn't include any login method.
Another question is how to authenticate in the UMWebService if it's set HIGH_LEVEL security zone. I am able to execute it with Everyone access permitted, but if I avoid Everyone access to the security zone how can I pass the user & password to the WebService from .NET app. If this is possible with something like "Credentials" object, I can execute some dummy method in the standard WebService and if I get response I assume that the user is authenticate because it has been able to execute the webservice. If not, and exception "Authentification error while executin UMWebService".
Any solution for this problem?
Any other solution?
ThanksHi Luis,
why <u>explicitely</u> verifying user and password? What about doing it <u>implicitely</u> by having some "ping" like portal web service which requires authentication and using that web service then? If you add valid credentials to the web service request, authentication to the portal should succeed and you should receive a response that contains some expected "ping" data.
No need to alter security zones then
Regards
Heiko -
Accessing UME data programmatically
Is it possible for me to access UME data on one server when running on another server?
Here's the scenario:
I am building some common code that will get information about a user from various sources and create one object to contain all that data. For example, the code will get some data from an Oracle database, some other data from a Notes database and some data from the UME. I'll then build an object that I will return to the calling program and it can use this information while the application is running to improve the 'user experience'
I know how to read from the UME on the server I'm currently running on but that becomes a problem when the code is running on the local engine. We have all our developers setup with a local engine so they can test their code locally before putting on server.
For accessing Oracle this is no problem because we just use the same datasource name (defined in Visual Admin) as we have on the server. The actual datasource definition on local engine points to the same Oracle server/database as the development server's datasource does. This means that our developers can test their code that accesses Oracle locally without having to deploy to development server.
Problem is that I can't figure out how to do something similar with UME. I don't want to duplicate the UME on every developer's machine and I don't want to have them deploy their code to development server each time they want to test. Obviously, they'll need to deploy to development server eventually but we like to do our testing locally first.
Sorry for the long post but I wanted to give as much info as possible. Please let me know if you have any questions and I'll be glad to clarify/elaborate.
Thanks in advance for any help.
David.Hi David,
I don't have any documentaion about the Web Service.
However, consuming it is like consuming any other Web Service in Web Dynpro:
Models -> Create Model -> Import Web Service Model
Select WSDL Source -> Local File System or URL
Enter WSDL: <b>http://<portal>:<port>/irj/servlet/prt/soap/UMWebService?style=rpc_enc </b>
This works in EP6 SP16 and I guess will work on other versions as well.
See attached snapshot for methods.
http://img260.imageshack.us/img260/2788/umewebserviceot9.jpg
Hope it helps,
Omri -
Exchange 2013 - Duplicate Binding for EWS
Hi there,
on our Exchange 2013 server we find that Outlook and OWA are both working fine. Mac users can't connect. This seems to be related to the following error [sorry for the Dutch language]:
Basically it complains that an endpoint is already bound to the URI.
WebHost failed to process a request.
Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/34026242
Exception: System.ServiceModel.ServiceActivationException: De service /EWS/exchange.asmx kan niet worden geactiveerd als gevolg van een uitzondering tijdens de compilatie. Het uitzonderingsbericht is: Er is reeds een bindingsexemplaar gekoppeld aan luister-URI
https://bilbo.ourdomain.loc:444/EWS/Exchange.asmx/http. Als twee eindpunten dezelfde LuisterURI willen delen, moeten ze ook hetzelfde bindingsobjectexemplaar delen. De twee conflicterende eindpunten zijn opgegeven in AddServiceEndpoint()-aanroepen, in een
configuratiebestand, of in een combinatie van AddServiceEndpoint() en configuratiebestand. . ---> System.InvalidOperationException: Er is reeds een bindingsexemplaar gekoppeld aan luister-URI https://bilbo.ourdomain.loc:444/EWS/Exchange.asmx/http. Als twee
eindpunten dezelfde LuisterURI willen delen, moeten ze ook hetzelfde bindingsobjectexemplaar delen. De twee conflicterende eindpunten zijn opgegeven in AddServiceEndpoint()-aanroepen, in een configuratiebestand, of in een combinatie van AddServiceEndpoint()
en configuratiebestand.
bij System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
bij System.ServiceModel.ServiceHostBase.InitializeRuntime()
bij System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
bij System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
bij System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
bij System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
--- Einde van intern uitzonderingsstackpad ---
bij System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
bij System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
Process Name: w3wp
Process ID: 8320
The IIS Manager has two sites ('Default Web Site', 'Exchange Back End').
For the Default Site only the bindings *:80, *:443, 127.0.0.1:80, 127.0.0.1:443 are enabled.
For the Exchange Back End only the bindings *:81, *:444 are enabled
There are no other sites.
I have tried searching the config files by doing:
PS C:\inetpub> Get-ChildItem . -include *.config -rec | select-string -pattern "444"
This does give files under C:\inetpub\history and C:\inetpub\temp but I don't know [given the history/temp] names if I should look further here.
I have also looked at
PS C:\windows\system32\inetsrv> Get-ChildItem . -include *.config -rec | select-string -pattern "444"
This returns only a single line in config\applicationHost.config which matches what I see in the IIS Manager GUI.
Where else can I search to find the duplicate binding?
EljakimOkay, after a couple of nights of trouble shooting I found the solution.
In the web.config file under Exchange\ClientAccess\exchweb\ews somehow the following information had appeared:
<services>
<service name="Microsoft.Exchange.Services.Wcf.EWSService" behaviorConfiguration="EWSServiceBehavior">
<!-- For streamed transfer mode, we need a different endpoint address with /s/. -->
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="webHttpBinding" bindingConfiguration="EWSStreamingNegotiateHttpBinding" name="Https" contract="Microsoft.Exchange.Services.Wcf.IEWSStreamingContract" />
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="webHttpBinding" bindingConfiguration="EWSStreamingNegotiateHttpsBinding" name="Http" contract="Microsoft.Exchange.Services.Wcf.IEWSStreamingContract" />
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="EWSAnonymousHttpBinding" name="Https" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" />
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="EWSAnonymousHttpsBinding" name="Http" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" />
<endpoint binding="customBinding" bindingConfiguration="EWSWSSecurityHttpBinding" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" address="http" />
<endpoint binding="customBinding" bindingConfiguration="EWSWSSecurityHttpsBinding" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" address="http" />
</service>
<service name="Microsoft.Exchange.UM.ClientAccess.UMWebService" behaviorConfiguration="UMServiceBehavior">
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="UMLegacyHttpBinding" contract="Microsoft.Exchange.Services.Wcf.IUM12LegacyContract" />
<endpoint address="http" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="UMLegacyHttpsBinding" contract="Microsoft.Exchange.Services.Wcf.IUM12LegacyContract" />
</service>
</services>
The endpoint addresses are wrong in this file. I compared the endpoints to a config on another server and fixed the issue by changing the services to:
<services>
<service name="Microsoft.Exchange.Services.Wcf.EWSService" behaviorConfiguration="EWSServiceBehavior">
<!-- For streamed transfer mode, we need a different endpoint address with /s/. -->
<endpoint address="s" behaviorConfiguration="MultiReceive" binding="webHttpBinding" bindingConfiguration="EWSStreamingNegotiateHttpsBinding" name="Https" contract="Microsoft.Exchange.Services.Wcf.IEWSStreamingContract"/>
<endpoint address="s" behaviorConfiguration="MultiReceive" binding="webHttpBinding" bindingConfiguration="EWSStreamingNegotiateHttpBinding" name="Http" contract="Microsoft.Exchange.Services.Wcf.IEWSStreamingContract"/>
<endpoint address="" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="EWSAnonymousHttpsBinding" name="Https" contract="Microsoft.Exchange.Services.Wcf.IEWSContract"/>
<endpoint address="" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="EWSAnonymousHttpBinding" name="Http" contract="Microsoft.Exchange.Services.Wcf.IEWSContract"/>
<endpoint binding="customBinding" bindingConfiguration="EWSWSSecurityHttpBinding" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" address="wssecurity"/>
<endpoint binding="customBinding" bindingConfiguration="EWSWSSecurityHttpsBinding" contract="Microsoft.Exchange.Services.Wcf.IEWSContract" address="wssecurity"/>
</service>
<service name="Microsoft.Exchange.UM.ClientAccess.UMWebService" behaviorConfiguration="UMServiceBehavior">
<endpoint address="" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="UMLegacyHttpsBinding" contract="Microsoft.Exchange.Services.Wcf.IUM12LegacyContract"/>
<endpoint address="" behaviorConfiguration="MultiReceive" binding="customBinding" bindingConfiguration="UMLegacyHttpBinding" contract="Microsoft.Exchange.Services.Wcf.IUM12LegacyContract"/>
</service>
</services>
Maybe you are looking for
-
Saving Arrays to database???
Hi! I'am new on Jsp and I want to save values that the user add into a combobox. I Have a Save_action.jsp that executes when the user click on the submit button. So I want the array values to be saved into the database + be updated. Here is the probl
-
Hi, I have a document HTML, and I must show It when the user pressed a button. I try with web.show_document, but don't work because I work C/S with form 6. What Must I do ?? How I do to open explorer ??? kind regards Giordano
-
How to select items with selectedItem and selectedIndex?
Hello. I'm trying to selected and item in both a dropdownlist and combobox using selectedItem or selectedIndex properties. They don't work Browing internet I found a lot of people with the same problem, that was already know in 2008. The easy command
-
I don't want to lose all the work I've put into my Behance account thus far.
-
Edit Capture Time, Half Hour Time Zone Increment
Using Lightroom 1.3.1 Windows, I am trying to Edit Capture Time on a batch of photos. Some countries use half hour increments for time zones. How do I shift capture time by +11.5 hours?