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_SAP

    Hi 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?
    Thanks

    Hi 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?
    Eljakim

    Okay, 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