com.genesyslab.wfm7.API.service.session700

## Interface WFMSessionService700Soap

- All Superinterfaces:
    java.rmi.Remote

      public interface WFMSessionService700Soap
      extends java.rmi.Remote

  Session service is common to all backend servers of WFM solution. Before getting any data from any WFM backend server, the client has to establish the session using this service. All other services require session id as an input parameter to all methods. The exception is Locator service, which does not require establishing the session. The session is established separately with every server, but all services on the same server share the same session. Snapshots: Session service provides only a common method to close already opened snapshot. Snapshots are opened by other services, using specific to the service parameters. Asynchronous Request: Some processes may take significant time. WFM server has separate methods for initiating long process, canceling process, get process status, progress, and results. Asynchronous methods take user parameters, starts process and returns immediately. Later server can provide status (progress) of the process. To get status and progress of the request, WFM Session service should be used. Synchronous method starts process and returns on completion.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cancelRequest(java.lang.String requestID)` Allows you to cancel asynchronous request.
    `void` | `closeRequest(java.lang.String requestID)` Session service provides only a common method to close already opened asynchronous request.
    `void` | `closeSession()` Closes the previously opened session.
    `void` | `closeSnapshot(java.lang.String snapshotID)` Session service provides only a common method to close already opened snapshot.
    `int` | `getRequestProgress(java.lang.String requestID)` Returns progress of asynchronous request expressed in percentage (0 - 100%)
    `boolean` | `getRequestResult(java.lang.String requestID)` Session service provides only a common method to check for result of completion of asynchronous request.
    `RequestStatus` | `getRequestStatus(java.lang.String requestID)` Returns status of asynchronous request.
    `SessionInfo` | `openSession(java.lang.String appName, int userID)` The method opens session on server (WFM Main Server, WFM DA, WFM Builder or WFM Reporting) for calling client.
    `SessionInfo` | `openSessionLogin(java.lang.String appName, java.lang.String userName, java.lang.String userPassword)` The difference between 'OpenSession' and 'OpenSessionLogin' is that client is not required to know DBID of its CME application to open the session.
    `void` | `pingSession()` Sends "keep alive" signal for the specified session as the session is going to be closed by the server, when there is no client activity with the session for a pre-set amount of time.

- - ### Method Detail

    - #### openSession

          SessionInfo openSession(java.lang.String appName,
                                int userID)
                                  throws java.rmi.RemoteException

      The method opens session on server (WFM Main Server, WFM DA, WFM Builder or WFM Reporting) for calling client. The session will remain open, while not closed by the client or expired by timeout. If input parameters are invalid, the method will return error.
      Parameters:
        `appName` - The unique name of client's CME application object.
        `userID` - DBID of Person object in CME. It could be either suoervisor's or agent's ID. Note, that WFM security subsystem applies only to supervisors. If userID = 0, then user will not be associated with this session and data security will not be applied. Hint: userID can be passed as a negative value indicating that its absolute value designates an agent and not a supervisor, which eliminates need to check supervisor/agent dependency and speeds up the login.
      Returns:
        Structure, which contains session id for just created session and list of services, which can be accessed on this server using this session. This list also can be used to find specific part of URL, which should be used accessing the each service.
      Throws:
        `java.rmi.RemoteException`

    - #### openSessionLogin

          SessionInfo openSessionLogin(java.lang.String appName,
                                     java.lang.String userName,
                                     java.lang.String userPassword)
                                       throws java.rmi.RemoteException

      The difference between 'OpenSession' and 'OpenSessionLogin' is that client is not required to know DBID of its CME application to open the session. However, application name is still required. If given user is a supervisor, it should be known to WFM security subsystem. Otherwise, the method will return an error. This method will be used mostly by limited 3rd party or test tools. All WFM components and other Genesys products should use "OpenSession".
      Parameters:
        `appName` - The unique name of client's CME application object.
        `userName` - there should be a Person object in CME with this username. If user is synchronized with WFM DB security subsystem, security rights will be applied. Otherwise, session will be established without applying security rights
        `userPassword` - it should match the password of Person in CME, which is identified by 'userName' parameter.
      Returns:
        see `openSession`.
      Throws:
        `java.rmi.RemoteException`

    - #### closeSession

          void closeSession()
                            throws java.rmi.RemoteException

      Closes the previously opened session. It also will close all open snapshots, which are associated with this session. If other requests, which belong to the same session, are being executed in parallel to 'CloseSession', then session will be effectively closed, when the last request is served. However, new requests for this session will not be served after 'CloseSession' call is received. No parameters.
      Throws:
        `java.rmi.RemoteException`

    - #### pingSession

          void pingSession()
                           throws java.rmi.RemoteException

      Sends "keep alive" signal for the specified session as the session is going to be closed by the server, when there is no client activity with the session for a pre-set amount of time. No parameters.
      Throws:
        `java.rmi.RemoteException`

    - #### closeSnapshot

          void closeSnapshot(java.lang.String snapshotID)
                             throws java.rmi.RemoteException

      Session service provides only a common method to close already opened snapshot. Snapshots are opened by other services, using specific to the service parameter. Returns an error, if sid is not a valid session ID or snapshot ID is not valid.
      Parameters:
        `snapshotID` - Snapshot ID
      Throws:
        `java.rmi.RemoteException`

    - #### closeRequest

          void closeRequest(java.lang.String requestID)
                            throws java.rmi.RemoteException

      Session service provides only a common method to close already opened asynchronous request. Asyncronous requests are opened by other services, using specific to the service functions. After asynchronous requests finishes its operation, it stores results in session accessible with request ID. The results are discarded only after CloseRequest is called. Returns an error, if request ID is not valid.
      Parameters:
        `requestID` - Request ID
      Throws:
        `java.rmi.RemoteException`

    - #### getRequestResult

          boolean getRequestResult(java.lang.String requestID)
                                   throws java.rmi.RemoteException

      Session service provides only a common method to check for result of completion of asynchronous request. Asynchronous requests are opened by other services, using specific to the service functions. Those services usually also provide specific functions for the retrieval of result of asynchronous request. If called before completion of async request this method waits till completion (and by timeout). Usually you would want to check progress of async request by calling GetRequestProgress and call GetRequestResult only after returned progress is 100%.
      Parameters:
        `requestID` - Request ID
      Returns:
        "true" indicates successful completion, "false" - that request was canceled. If request has failed, an error is returned.
      Throws:
        `java.rmi.RemoteException`

    - #### getRequestProgress

          int getRequestProgress(java.lang.String requestID)
                                 throws java.rmi.RemoteException

      Returns progress of asynchronous request expressed in percentage (0 - 100%)
      Parameters:
        `requestID` - Request ID
      Returns:
        Progress percentage. 100% means that request processing is complete.
      Throws:
        `java.rmi.RemoteException`

    - #### getRequestStatus

          RequestStatus getRequestStatus(java.lang.String requestID)
                                         throws java.rmi.RemoteException

      Returns status of asynchronous request. The status includes status string and progress in percentage.
      Parameters:
        `requestID` - Request ID
      Returns:
        Status string and progress
      Throws:
        `java.rmi.RemoteException`

    - #### cancelRequest

          void cancelRequest(java.lang.String requestID)
                             throws java.rmi.RemoteException

      Allows you to cancel asynchronous request.
      Parameters:
        `requestID` - Request ID
      Throws:
        `java.rmi.RemoteException`

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