com.genesyslab.wfm8.API.service.locator800

## Interface WFMLocatorService800Soap

-     public interface WFMLocatorService800Soap

  The Locator service resides on WFM Server. Use it to locate other WFM Servers. In the case of multi-server WFM solution deployment, the Locator Service works as a simple load balancer for the WFM Servers. The Locator service is designed to be used once per session, just before the session is established. Once the session is established, the client will work always with the same server. So, the balancing is done not per request, but per session. Also, the Locator service can check a user login and password for the calling client and identify whether the given user login is related to an agent or a supervisor Person object in the Configuration Database. The Locator service should also to be used to locate the appropriate WFM Data Aggregator, WFM Builder, and WFM Report Server.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Location` | `locateBuilder(java.lang.String sessionServiceName, java.lang.String appName, int userID)` The method should locate the WFM Builder that is idle or is least busy.
    `Location` | `locateDataAggregator(java.lang.String sessionServiceName, java.lang.String appName, int userID, int siteID)` The method should locate the WFM Data Aggregator configured to serve the specified Site.
    `Location` | `locateReportServer(java.lang.String sessionServiceName, java.lang.String appName, int userID)` The method should locate the WFM Reports Server.
    `Location` | `locateServer(java.lang.String sessionServiceName, java.lang.String appName, int userID, java.util.List<java.lang.Integer> siteIDArray)` The method should locate "the best" WFM server with which to establish the session.
    `LoginInfo` | `locateServerLogin(java.lang.String sessionServiceName, java.lang.String appName, java.lang.String userName, java.lang.String userPassword)` The difference between "LocateServer" and "LocateServerLogin" is that the client doesn't need to fetch the DBID of the Person object before calling this function.
    `LoginInfo2` | `locateServerLogin2(java.lang.String sessionServiceName, java.lang.String appName, java.lang.String userName, java.lang.String userPassword)` "LocateServerLogin2" is the same as "LocateServerLoginEx" except that it also returns Last Login Time.
    `LoginInfoEx` | `locateServerLoginEx(java.lang.String sessionServiceName, java.lang.String appName, java.lang.String userName, java.lang.String userPassword)` The difference between "LocateServer" and "LocateServerLoginEx" is that the client doesn't need to fetch the DBID of the Person object before calling this function.

- - ### Method Detail

    - #### locateServer

          Location locateServer(java.lang.String sessionServiceName,
                              java.lang.String appName,
                              int userID,
                              java.util.List<java.lang.Integer> siteIDArray)

      The method should locate "the best" WFM server with which to establish the session. The specified parameters are taken into account to determine the best server. Note that when you use this method, the WFM Server that serves as locator may return itself or another WFM Server. Once the session is established with the WFM Server indicated by "serverLocation" , the client should not call LocateServer again, but should go directly to WFM Server, which keeps its session.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Normally it should be 'SessionService800'.
        `appName` - The unique name of client's Application object as specified in Configuration Manager.
        `userID` - An id for a supervisor or an agent (the DBID of the Person object from Configuration Server). In the case of a supervisor, this DBID must match one found in WFM security subsystem, otherwise the method will return an error. In the case of an agent (the associated Person has the isAgent flag set to true), the corresponding agent should be found in the WFM DB and assigned to a specific site. Otherwise, an error will be returned.
        `siteIDArray` - A list of site IDs, which will be used during the forthcoming session. It will be ignored if NULL is passed. It cannot be used together with "agentId"
      Returns:
        URL that identifies the located WFM Server and its Session service, which should be used for subsequent establishment of the session.

    - #### locateServerLogin

          LoginInfo locateServerLogin(java.lang.String sessionServiceName,
                                    java.lang.String appName,
                                    java.lang.String userName,
                                    java.lang.String userPassword)

      The difference between "LocateServer" and "LocateServerLogin" is that the client doesn't need to fetch the DBID of the Person object before calling this function. It is useful for a GUI client, which knows the username and password entered by the user in the login screen. It checks whether the specified login information is correct, and provides the Person DBID together with the isAgent flag. Also, like "LocateServer", it directs the client to its WFM Server for session establishment.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's Application object as specified in Configuration Manager.
        `userName` - A string that represents the username of the Person object in found in Configuration Server. Maybe an agent (isAgent flag is set to true) or a supervisor. If the program determines that the DBID is an agent's, the agent must already have been imported by synchronization into the WFM database. If it is a supervisor DBID, it must exist in the WFM security subsystem. If these conditions are not met, the method will return an error.
        `userPassword` - The password of the Person, which is found in Configuration Server using the "userName" parameter. The method will return an error if the password does not match.
      Returns:
        `LoginInfo`

    - #### locateServerLoginEx

          LoginInfoEx locateServerLoginEx(java.lang.String sessionServiceName,
                                        java.lang.String appName,
                                        java.lang.String userName,
                                        java.lang.String userPassword)

      The difference between "LocateServer" and "LocateServerLoginEx" is that the client doesn't need to fetch the DBID of the Person object before calling this function. It is useful for a GUI client, which knows the username and password entered by the user in the login screen. It checks whether the specified login information is correct, and provides the Person DBID together with the isAgent flag. Also, like "LocateServer", it directs the client to its WFM Server for session establishment.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's Application object as specified in Configuration Manager.
        `userName` - A string that represents the username of the Person object in found in Configuration Server. Maybe an agent (isAgent flag is set to true) or a supervisor. If the program determines that the DBID is an agent's, the agent must already have been imported by synchronization into the WFM database. If it is a supervisor DBID, it must exist in the WFM security subsystem. If these conditions are not met, the method will return an error.
        `userPassword` - The password of the Person, which is found in Configuration Server using the "userName" parameter. The method will return an error if the password does not match.
      Returns:
        `LoginInfoEx`

    - #### locateServerLogin2

          LoginInfo2 locateServerLogin2(java.lang.String sessionServiceName,
                                      java.lang.String appName,
                                      java.lang.String userName,
                                      java.lang.String userPassword)

      "LocateServerLogin2" is the same as "LocateServerLoginEx" except that it also returns Last Login Time.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's Application object as specified in Configuration Manager.
        `userName` - A string that represents the username of the Person object in found in Configuration Server. Maybe an agent (isAgent flag is set to true) or a supervisor. If the program determines that the DBID is an agent's, the agent must already have been imported by synchronization into the WFM database. If it is a supervisor DBID, it must exist in the WFM security subsystem. If these conditions are not met, the method will return an error.
        `userPassword` - The password of the Person, which is found in Configuration Server using the "userName" parameter. The method will return an error if the password does not match.
      Returns:
        `LoginInfo2`

    - #### locateReportServer

          Location locateReportServer(java.lang.String sessionServiceName,
                                    java.lang.String appName,
                                    int userID)

      The method should locate the WFM Reports Server.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's Application object as specified in Configuration Manager.
        `userID` - An id the of the supervisor or agent (DBID of Person object from Configuration Server). In supervisor's case this DBID should be found in WFM security subsystem, otherwise the method will return an error. In agent's case (the associated Person has isAgent flag set to true), the corresponding agent should be found in WFM DB and assigned to specific site. Otherwise, the error will be returned.
      Returns:
        URL that identifies located Report Server and its Session service, which should be used for subsequent establishment of the session.

    - #### locateBuilder

          Location locateBuilder(java.lang.String sessionServiceName,
                               java.lang.String appName,
                               int userID)

      The method should locate the WFM Builder that is idle or is least busy.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's CME application object.
        `userID` - An id of supervisor or agent (DBID of Person object from Configuration Server). In supervisor's case this DBID should be found in WFM security subsystem, otherwise the method will return an error. In agent's case (the associated Person has isAgent flag set to true), the corresponding agent should be found in WFM DB and assigned to specific site. Otherwise, the error will be returned.
      Returns:
        URL that identifies located Schedule Builder and its Session service, which should be used for subsequent establishment of the session.

    - #### locateDataAggregator

          Location locateDataAggregator(java.lang.String sessionServiceName,
                                      java.lang.String appName,
                                      int userID,
                                      int siteID)

      The method should locate the WFM Data Aggregator configured to serve the specified Site.
      Parameters:
        `sessionServiceName` - The name of the Session Service to use. Can be null to todefault to 'SessionService800'.
        `appName` - The unique name of client's CME application object.
        `userID` - An id of supervisor or agent (DBID of Person object from Configuration Server). In supervisor's case this DBID should be found in WFM security subsystem, otherwise the method will return an error. In agent's case (the associated Person has isAgent flag set to true), the corresponding agent should be found in WFM DB and assigned to specific site. Otherwise, the error will be returned.
        `siteID` - An ID of the Site or BU you are interested in. A separate connection to Data Aggregator should be established for every different Site. A negative ID value implies that ID is of BU instead of Site.
      Returns:
        URL that identifies located Data Aggregator and its Session service, which should be used for subsequent establishment of the session.

Copyright © 2005-2016 Genesys Telecommunications Labs, Inc. All Rights Reserved.