com.genesyslab.wfm7.API.service.schedule750

## Interface WFMScheduleService750Soap

- All Superinterfaces:
    java.rmi.Remote

      public interface WFMScheduleService750Soap
      extends java.rmi.Remote

  The WFM Schedule Service is the part of WFM Server that handles schedule data. In essence, Schedule Service defines an API for retrieval, querying, and manipulation of schedule data.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `acknowledgeNotification(int siteID, long timestamp)` Acknowledges to the server that the notification was received and processed.
    `void` | `addActivityToScenario(int scheduleID, int siteID, int[] activityIDArray)`
    `void` | `addAgentToScenario(int scheduleID, int siteID, SchScenarioAgent[] agentArray)`
    `java.lang.String` | `applyCalendarItemsAsync(int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter, boolean autoCommit)` Applies non-scheduled calendar items to the schedule, if possible.
    `void` | `assignProfileAgents(int scheduleID, int siteID, SchAssignment[] assignments)`
    `java.lang.String` | `autoAssignProfileAgents(int scheduleID, int siteID, int rankingSystem, boolean biddingAgentsOnly)` Starts profile schedule auto-assignment engine.
    `SchAgentDayHolder` | `buildAgentDay(int scheduleID, int siteID, SchAgentDay[] newSchedule, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideActivitySetInfo, boolean provideOvertime, boolean provideTradeEligibility)` Builds complete schedule shifts with optimal break/meal distibution for the given schedule shifts
    `SchAgentDayHolder` | `buildAgentDayInSnapshot(java.lang.String schSnapshotID, SchAgentDay[] newSchedule, SchAgentDay[] modifiedSchedule, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideActivitySetInfo, boolean provideOvertime, boolean provideTradeEligibility)` Builds complete schedule shifts with optimal break/meal distibution for the given schedule shifts (based on existing schedule snapshot).
    `void` | `clearProfileAgentAssignments(int scheduleID, int siteID, int[] profileAgentIDArray)` Clears the existing assignments of the profile agent schedules.
    `java.lang.String` | `commitPendingAgentDay(int scheduleID, int siteID, double[] days, CfgAgentFilter agentFilter, SchStateFilter stateFilter)`
    `java.lang.String` | `commitPendingAgentDayFromSnapshot(java.lang.String schSnapshotID, int[] indexArray)`
    `int` | `createScenario(java.lang.String name, double startDate, double endDate, double endDateExt, SchScenarioSite[] sites, int type, java.lang.String comments)` Creates new schedule scenario `SchScenario`
    `java.lang.String` | `deleteAgentDay(int scheduleID, int siteID, int[] teamIDArray, int[] agentIDArray, double startDate, double endDate)`
    `void` | `deleteAgentFromScenario(int scheduleID, int siteID, int[] agentIDArray)`
    `void` | `deleteScenario(int scheduleID)`
    `java.lang.String` | `deleteState(int scheduleID, int siteID, CfgAgentFilter agentFilter, SchStateFilter stateFilter, SchState[] states, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Deletes the specified scheduled state(s) from the agent(s) schedules.
    `SchAgentDayHolder` | `fetchAgentDayFromSnapshot(java.lang.String schSnapshotID, int firstAgentIndex, int lastAgentIndex, double firstDate, double lastDate, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideActivitySetInfo, boolean provideAgentInfo, boolean provideOvertime, boolean provideTradeEligibility, boolean provideTeamInfo, boolean provideContractInfo, boolean provideAvailabilityInfo, boolean autoRefresh)`
    `CfgAgentHolder` | `fetchAgentFromSnapshot(java.lang.String schSnapshotID, int firstIndex, int lastIndex, int infoType, boolean provideActivities, boolean provideTeamInfo, boolean provideContractInfo)`
    `SchAgentDayHolder` | `fetchPendingAgentDayFromSnapshot(java.lang.String schSnapshotID, int firstIndex, int lastIndex, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideAgentInfo, boolean provideOvertime, boolean provideTeamInfo, boolean provideContractInfo, boolean provideAvailabilityInfo)`
    `SchScenarioHolder` | `fetchScenarioFromSnapshot(java.lang.String snapshotID, int firstIndex, int lastIndex, int infoType, boolean provideUserInfo)`
    `int` | `findAgentInSnapshot(java.lang.String schSnapshotID, int field, java.lang.String value, int startIndex)`
    `int` | `findScenarioInSnapshot(java.lang.String snapshotID, java.lang.String name, int startIndex)`
    `SchBid[]` | `getAgentBids(int scheduleID, int siteID, int[] agentIDArray)` Returns schedule bids for the specified agents.
    `SchAgentDayHolder` | `getAgentDay(int source, int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter, int[] excludeStates, int groupMode, int sortMode, boolean ascending, double sortDate, int stateLayout, boolean provideStateInfo, boolean provideActivitySetInfo, boolean provideAgentInfo, boolean provideOvertime, boolean provideTradeEligibility, SchTotalsRequest[] totalsRequest, boolean provideTeamInfo, boolean provideContractInfo, boolean provideAvailabilityInfo)` Loads agent days from the specified schedule for the specified range of dates and specified set of agents.
    `SchSnapshot` | `getAgentDaySnapshotResult(java.lang.String requestID)`
    `SchAgentStateHolder` | `getAgentState(int source, int scheduleID, int siteID, double startDateTime, double endDateTime, CfgAgentFilter agentFilter, SchStateFilter stateFilter, int stateLayout, boolean provideStateInfo)` Loads agent scheduled states of specified type from specified time window.
    `SchAgentTotals[]` | `getAgentTotals(int source, int scheduleID, int siteID, int[] teamIDArray, int[] agentIDArray, SchTotalsRequest[] totalsRequest)` Calculates different totals, such as paid time, work time, and vacation time, for the given agent for the specified date period(s) and granularity.
    `java.lang.String` | `getAuditLogAsync(int siteID, int[] teamIDArray, int[] agentIDArray, double schStartDate, double schEndDate, double actionStartDateTime, double actionEndDateTime, int[] actionTypes, int[] actionUsers, int detailsLevel, int stateLayout, int[] excludeStates)` Reads schedule audit log in async mode.
    `SchAuditLog` | `getAuditLogByID(long auditID, int siteID, int[] teamIDArray, int[] agentIDArray, double schStartDate, double schEndDate, int detailsLevel, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideAgentInfo, boolean provideTeamInfo, boolean provideContractInfo, boolean provideScenarioInfo, boolean provideUserInfo)` Returns information about a specific schedule audit transaction.
    `SchAuditLog` | `getAuditLogResults(java.lang.String requestID, int stateLayout, boolean provideStateInfo, boolean provideAgentInfo, boolean provideTeamInfo, boolean provideContractInfo, boolean provideScenarioInfo, boolean provideUserInfo)` Retrieves Audit Log that was requested asynchronously.
    `SchBiddingParams` | `getBiddingParams(int scheduleID, int siteID)` Returns current bidding parameters for the schedule scenario, which includes the bidding window and a list of bidding agents.
    `SchActivitySet[]` | `getDayActivitySetInfo(int siteID, double date, int[] activityIDArray)`
    `CfgAgentHolder` | `getMasterAgent(int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, int sortMode, boolean ascending, int infoType, boolean provideActivities, boolean provideTeamInfo, boolean provideContractInfo)`
    `SchPlanningPeriod[]` | `getPlanningPeriod(int scheduleID, int siteID, double startDate, double endDate)`
    `SchCandidateHolder` | `getProfileAgentCandidates(int scheduleID, int siteID, int[] agentIDArray, boolean biddingAgentsOnly, boolean provideBids, boolean mergeCandidates, boolean provideAgentInfo)` Returns a list of actual agents who qualify for the schedules of the specified profile agent(s), or returns a list of qualifying profile agents, if actual agents were specified as an input.
    `SchValidationHolder` | `getRequestValidation(java.lang.String requestID)` Used to retrieve validation (error/warning) messages after the completion of asynchronous operations such as insertState, deleteState, and saveAgentDayAsync.
    `SchScenarioHolder` | `getScenario(int scheduleID, int infoType, boolean provideUserInfo)`
    `CfgActivityHolder` | `getScenarioActivity(int scheduleID, int siteID, int[] activityIDArray, int sortMode, boolean ascending, int infoType, boolean provideActivitySetInfo, boolean provideVirtualActivityInfo)`
    `CfgAgentHolder` | `getScenarioAgent(int scheduleID, int siteID, int[] agentTypeFilter, CfgAgentFilter agentFilter, int sortMode, boolean ascending, int infoType, boolean provideActivities, boolean provideTeamInfo, boolean provideContractInfo)`
    `SchScenarioAgent[]` | `getScenarioAgentInfo(int scheduleID, int siteID, int[] agentIDArray)` Returns additional information related to scenario agents.
    `SchAgentQuota[]` | `getScenarioAgentQuota(int scheduleID, int siteID, int[] agentIDArray)`
    `SchScenarioParams` | `getScenarioParams(int scheduleID, int siteID)`
    `CfgSiteHolder` | `getScenarioSite(int scheduleID, int[] siteIDArray, int sortMode, boolean ascending, int infoType, boolean provideBUInfo)`
    `CfgTeamHolder` | `getScenarioTeam(int scheduleID, int siteID, int[] teamIDArray, int sortMode, boolean ascending, int infoType, boolean provideAgentInfo)`
    `CfgVirtualActivityHolder` | `getScenarioVirtualActivity(int scheduleID, int[] virtualActivityIDArray, int infoType, int sortMode, boolean ascending, boolean provideActivityInfo, boolean provideBUInfo)`
    `SchScenarioWarning[]` | `getScenarioWarnings(int scheduleID, int siteID)`
    `CfgAgentHolder` | `getScheduledAgents(int scheduleID, int siteID, double startDate, double endDate, int[] flagFilter, int sortMode, boolean ascending, int infoType, boolean provideActivities, boolean provideTeamInfo, boolean provideContractInfo)`
    `SchCoverageHolder` | `getStateGroupCoverage(int source, int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter, int[] stateGroups, int granularity)` Calculates the schedule state group coverage for every specified state group, taking schedules of specified agents.
    `SchCoverageHolder` | `getStateGroupCoverageFromSnapshot(java.lang.String schSnapshotID, int[] stateGroups, int granularity, SchAgentDay[] modifiedSchedule)` Calculates schedule state group coverage for every specified state group, taking schedules from the existing schedule snapshot.
    `SchCandidateHolder` | `getSwapCandidates(int scheduleID, int siteID, double[] days, int[] teamIDArray, int[] agentIDArray, boolean provideAgentInfo)`
    `java.lang.String` | `insertAgentDay(int scheduleID, int siteID, CfgAgentFilter agentFilter, SchStateFilter stateFilter, SchAgentDay[] agentDayArray, boolean buildAgentDay, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to insert the same agent day schedule(s) for multiple agents.
    `java.lang.String` | `insertAgentState(int scheduleID, int siteID, SchAgentState[] states, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to insert different schedule states into different agents' schedules.
    `java.lang.String` | `insertState(int scheduleID, int siteID, CfgAgentFilter agentFilter, SchStateFilter stateFilter, SchState[] states, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to insert the same schedule states into different agents' schedules.
    `SchSnapshot` | `openAgentDaySnapshot(int source, int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter, int groupMode, int sortMode, boolean ascending, double sortDate, SchTotalsRequest[] totalsRequest)`
    `java.lang.String` | `openAgentDaySnapshotAsync(int source, int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter, int groupMode, int sortMode, boolean ascending, double sortDate, SchTotalsRequest[] totalsRequest)`
    `CfgSnapshot` | `openMasterAgentSnapshot(int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, int sortMode, boolean ascending)`
    `SchSnapshot` | `openPendingAgentDaySnapshot(int scheduleID, int siteID, double startDate, double endDate, int[] userIDAray, int[] teamIDArray, int[] agentIDArray, int groupMode, int sortMode, boolean ascending)`
    `SchSnapshot` | `openPendingAgentDaySnapshot2(int scheduleID, int siteID, double startDate, double endDate, int[] userIDAray, CfgAgentFilter agentFilter, int groupMode, int sortMode, boolean ascending)` Opens a snapshot of pending agent day schedules for specified list of users.
    `CfgSnapshot` | `openScenarioAgentSnapshot(int scheduleID, int siteID, int[] agentTypeFilter, CfgAgentFilter agentFilter, int sortMode, boolean ascending)`
    `SchScenarioSnapshot` | `openScenarioSnapshot(int ownership, int[] typeFilter, int[] statusFilter, int[] siteIDFilter, double startDate, double endDate, int sortMode, boolean ascending)`
    `CfgSnapshot` | `openScheduledAgentSnapshot(int scheduleID, int siteID, double startDate, double endDate, int[] flagFilter, int sortMode, boolean ascending)`
    `SchNotification` | `pollNotification(long timestamp, int siteID, int[] teamIDArray, int[] agentIDArray, double schStartDate, double schEndDate, int detailsLevel, int stateLayout, int[] excludeStates, boolean provideStateInfo, boolean provideAgentInfo, boolean provideTeamInfo, boolean provideContractInfo)` Polls schedule change notification
    `java.lang.String` | `publishSchedule(SchSiteAgents[] siteAgents, int sourceScheduleID, double sourceStartDate, double sourceEndDate, int targetScheduleID, double targetStartDate, double targetEndDate, boolean applyCalendarItems)` Publishes schedule scenario to Master, or Master to scenario, or scenario to scenario.
    `long` | `readAgentDayDBTimestamp(int scheduleID, int siteID, int[] agentIDArray, double startDate, double endDate)`
    `long` | `readScenarioDBTimestamp(int scheduleID)`
    `void` | `renameScenario(int scheduleID, java.lang.String name)`
    `long` | `rollbackAuditTransaction(long auditID, int siteID, int[] teamIDArray, int[] agentIDArray, double schStartDate, double schEndDate)` Rolls back current schedule to specific Schedule Audit Transaction from the past.
    `java.lang.String` | `rollbackPendingAgentDay(int scheduleID, int siteID, double[] days, CfgAgentFilter agentFilter, SchStateFilter stateFilter)`
    `java.lang.String` | `rollbackPendingAgentDayFromSnapshot(java.lang.String schSnapshotID, int[] indexArray)`
    `SchValidationHolder` | `saveAgentDay(int scheduleID, int siteID, SchAgentDay[] agentDayArray, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)` Saves agent day schedule to database.
    `java.lang.String` | `saveAgentDayAsync(int scheduleID, int siteID, SchAgentDay[] agentDayArray, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)` Saves agent day schedule to database asynchronously.
    `void` | `saveScenarioComments(int scheduleID, java.lang.String comments)`
    `void` | `saveScenarioWarnings(int scheduleID, int siteID, SchScenarioWarning[] warnings)`
    `java.lang.String` | `scheduleMeetingAsync(int scheduleID, int siteID, int[] teamIDArray, int[] agentIDArray, CfgMeeting meeting, boolean autoCommit)` Schedules meeting and saves it to the schedule database asynchronously.
    `void` | `setAgentBids(int scheduleID, int siteID, int[] agentIDArray, SchBid[] bids)` Sets schedule bid values for the specified list of agents.
    `void` | `setBiddingParams(int scheduleID, int siteID, SchBiddingParams params)` Used to open scenario for bidding by setting bidding window and list of bidding agents.
    `void` | `setScenarioAgentQuota(int scheduleID, int siteID, SchAgentQuota[] agentQuota)`
    `void` | `setScenarioParams(int scheduleID, int siteID, SchScenarioParams param)`
    `void` | `setScenarioType(int scheduleID, int scenarioType)`
    `void` | `sortAgentDaySnapshot(java.lang.String schSnapshotID, int groupMode, int sortMode, boolean ascending, double sortDate)`
    `void` | `sortScenarioSnapshot(java.lang.String snapshotID, int sortMode, boolean ascending)`
    `SchValidationHolder` | `swapSchedules(int scheduleID, int siteID, double[] days, int agentID1, int agentID2, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)`
    `SchValidationHolder` | `validateAgentDay(int scheduleID, int siteID, SchAgentDay[] agentDayArray)`
    `SchValidationHolder` | `validatePendingAgentDayFromSnapshot(java.lang.String schSnapshotID, int[] indexArray)`
    `java.lang.String` | `validateScheduleAsync(int source, int scheduleID, int siteID, double startDate, double endDate, CfgAgentFilter agentFilter, SchStateFilter stateFilter)` Validates the specified range of the schedule.
    `boolean` | `wasAgentDaySnapshotModified(java.lang.String schSnapshotID, int firstAgentIndex, int lastAgentIndex, double firstDate, double lastDate)`

- - ### Method Detail

    - #### getRequestValidation

          SchValidationHolder getRequestValidation(java.lang.String requestID)
                                                   throws java.rmi.RemoteException

      Used to retrieve validation (error/warning) messages after the completion of asynchronous operations such as insertState, deleteState, and saveAgentDayAsync.
      Parameters:
        `requestID` - Asynchronous request ID
      Returns:
        `SchValidationHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### getAgentState

          SchAgentStateHolder getAgentState(int source,
                                          int scheduleID,
                                          int siteID,
                                          double startDateTime,
                                          double endDateTime,
                                          CfgAgentFilter agentFilter,
                                          SchStateFilter stateFilter,
                                          int stateLayout,
                                          boolean provideStateInfo)
                                            throws java.rmi.RemoteException

      Loads agent scheduled states of specified type from specified time window. This function has at least two applications. One is to see all scheduled states on which the agent is scheduled in the specified time window. The second is to see what agents have specific state(s) scheduled in the specified time window.
      Parameters:
        `source` - Specifies schedule source `ESchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `startDateTime` - Time window start date/time `OleDateTime`
        `endDateTime` - Time window end date/time `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `stateLayout` - State layout `ESchStateLayout`
        `provideStateInfo` - Provide schedule state descriptive information or not
      Returns:
        `SchAgentStateHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### getAgentDay

          SchAgentDayHolder getAgentDay(int source,
                                      int scheduleID,
                                      int siteID,
                                      double startDate,
                                      double endDate,
                                      CfgAgentFilter agentFilter,
                                      SchStateFilter stateFilter,
                                      int[] excludeStates,
                                      int groupMode,
                                      int sortMode,
                                      boolean ascending,
                                      double sortDate,
                                      int stateLayout,
                                      boolean provideStateInfo,
                                      boolean provideActivitySetInfo,
                                      boolean provideAgentInfo,
                                      boolean provideOvertime,
                                      boolean provideTradeEligibility,
                                      SchTotalsRequest[] totalsRequest,
                                      boolean provideTeamInfo,
                                      boolean provideContractInfo,
                                      boolean provideAvailabilityInfo)
                                        throws java.rmi.RemoteException

      Loads agent days from the specified schedule for the specified range of dates and specified set of agents. Returned agent days are sorted and grouped together in the specified order.
      Parameters:
        `source` - Specifies schedule source `ESchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `excludeStates` - Specifies what state types (`ESchStateType`) to exclude from returned Agent Day. Can be NULL, meaning "don't exclude any state type"
        `groupMode` - `ESchGroupMode` Specifies of how returned agent days should be grouped together.
        `sortMode` - `ESchSortMode` Specifies how returned schedule days must be sorted.
        `ascending` - Sort order "true" - ascending , "false" - descending
        `sortDate` - Some sort modes require specified date for sorting. `OleDateTime`
        `stateLayout` - `ESchStateLayout` Specifies whether scheduled states should be overlapped or sequential. If SCH_LAYOUT_DAY is specified the returned agent days are in "short" format - `SchAgentDayShort`.
        `provideStateInfo` - Specifies to provide schedule state descriptive info or not
        `provideActivitySetInfo` - Tells whether to fill-in schActivitySetInfo field in SchAgentDay
        `provideAgentInfo` - Tells whether to provide short agent information about every unique agent in response.
        `provideOvertime` - Tells whether to calculate "wmOvertimeMinutes" field in Schedule Day returned
        `provideTradeEligibility` - Tells whether to check "eligibleForTrade" field in Schedule Day returned
        `totalsRequest` - An array of `SchTotalsRequest`. Contains a request to provide selected work totals for one or several different date periods. A "null" value means request no totals.
        `provideTeamInfo` - Tells whether to provide short team information about every unique team in response.
        `provideContractInfo` - Tells whether to provide short Contract information about every unique contract in response.
        `provideAvailabilityInfo` - Tells whether to provide Contract Availability with the response
      Returns:
        `SchAgentDayHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### openAgentDaySnapshot

          SchSnapshot openAgentDaySnapshot(int source,
                                         int scheduleID,
                                         int siteID,
                                         double startDate,
                                         double endDate,
                                         CfgAgentFilter agentFilter,
                                         SchStateFilter stateFilter,
                                         int groupMode,
                                         int sortMode,
                                         boolean ascending,
                                         double sortDate,
                                         SchTotalsRequest[] totalsRequest)
                                           throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openAgentDaySnapshotAsync

          java.lang.String openAgentDaySnapshotAsync(int source,
                                                   int scheduleID,
                                                   int siteID,
                                                   double startDate,
                                                   double endDate,
                                                   CfgAgentFilter agentFilter,
                                                   SchStateFilter stateFilter,
                                                   int groupMode,
                                                   int sortMode,
                                                   boolean ascending,
                                                   double sortDate,
                                                   SchTotalsRequest[] totalsRequest)
                                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getAgentDaySnapshotResult

          SchSnapshot getAgentDaySnapshotResult(java.lang.String requestID)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### sortAgentDaySnapshot

          void sortAgentDaySnapshot(java.lang.String schSnapshotID,
                                  int groupMode,
                                  int sortMode,
                                  boolean ascending,
                                  double sortDate)
                                    throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### fetchAgentDayFromSnapshot

          SchAgentDayHolder fetchAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                    int firstAgentIndex,
                                                    int lastAgentIndex,
                                                    double firstDate,
                                                    double lastDate,
                                                    int stateLayout,
                                                    int[] excludeStates,
                                                    boolean provideStateInfo,
                                                    boolean provideActivitySetInfo,
                                                    boolean provideAgentInfo,
                                                    boolean provideOvertime,
                                                    boolean provideTradeEligibility,
                                                    boolean provideTeamInfo,
                                                    boolean provideContractInfo,
                                                    boolean provideAvailabilityInfo,
                                                    boolean autoRefresh)
                                                      throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### fetchAgentFromSnapshot

          CfgAgentHolder fetchAgentFromSnapshot(java.lang.String schSnapshotID,
                                              int firstIndex,
                                              int lastIndex,
                                              int infoType,
                                              boolean provideActivities,
                                              boolean provideTeamInfo,
                                              boolean provideContractInfo)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### wasAgentDaySnapshotModified

          boolean wasAgentDaySnapshotModified(java.lang.String schSnapshotID,
                                            int firstAgentIndex,
                                            int lastAgentIndex,
                                            double firstDate,
                                            double lastDate)
                                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getDayActivitySetInfo

          SchActivitySet[] getDayActivitySetInfo(int siteID,
                                               double date,
                                               int[] activityIDArray)
                                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getAgentTotals

          SchAgentTotals[] getAgentTotals(int source,
                                        int scheduleID,
                                        int siteID,
                                        int[] teamIDArray,
                                        int[] agentIDArray,
                                        SchTotalsRequest[] totalsRequest)
                                          throws java.rmi.RemoteException

      Calculates different totals, such as paid time, work time, and vacation time, for the given agent for the specified date period(s) and granularity. For instance, this function can be used to calculate weekly totals, monthly totals, or schedule planning period totals.
      Parameters:
        `source` - `ESchSource` Specifies schedule source
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team"
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified - means "all agents".
        `totalsRequest` - An array of `SchTotalsRequest`. Contains a request to provide selected work totals for one or several periods. A NULL value means request no totals.
      Returns:
        `SchAgentTotals`[]
      Throws:
        `java.rmi.RemoteException`

    - #### readAgentDayDBTimestamp

          long readAgentDayDBTimestamp(int scheduleID,
                                     int siteID,
                                     int[] agentIDArray,
                                     double startDate,
                                     double endDate)
                                       throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### validateAgentDay

          SchValidationHolder validateAgentDay(int scheduleID,
                                             int siteID,
                                             SchAgentDay[] agentDayArray)
                                               throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### saveAgentDay

          SchValidationHolder saveAgentDay(int scheduleID,
                                         int siteID,
                                         SchAgentDay[] agentDayArray,
                                         boolean ignoreWarnings,
                                         boolean checkTimestamp,
                                         boolean autoCommit)
                                           throws java.rmi.RemoteException

      Saves agent day schedule to database.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `agentDayArray` - An array of agent day schedules `SchAgentDay` to save
        `ignoreWarnings` - if true, agent day is saved to db, even if there are warnings
        `checkTimestamp` - If true, every agent day schedule timestamp from agentDayArray is checked against one in the database. If the database timestamp is more recent, a warning is generated.
        `autoCommit` - Specifies whether to auto-commit the changes that are being made, or make them "pending".
      Returns:
        `SchValidationHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### saveAgentDayAsync

          java.lang.String saveAgentDayAsync(int scheduleID,
                                           int siteID,
                                           SchAgentDay[] agentDayArray,
                                           boolean ignoreWarnings,
                                           boolean checkTimestamp,
                                           boolean autoCommit)
                                             throws java.rmi.RemoteException

      Saves agent day schedule to database asynchronously. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use Session Service to check progress of the asynchronous request. Use the function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `agentDayArray` - An array of agent day schedules `SchAgentDay` to save
        `ignoreWarnings` - if true, agent day is saved to db, even if there are warnings
        `checkTimestamp` - If true, every agent day schedule timestamp from agentDayArray is checked against one in the database. If the database timestamp is more recent, a warning is generated.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### insertAgentDay

          java.lang.String insertAgentDay(int scheduleID,
                                        int siteID,
                                        CfgAgentFilter agentFilter,
                                        SchStateFilter stateFilter,
                                        SchAgentDay[] agentDayArray,
                                        boolean buildAgentDay,
                                        boolean ignoreWarnings,
                                        boolean allOrNothing,
                                        boolean autoCommit)
                                          throws java.rmi.RemoteException

      Used to insert the same agent day schedule(s) for multiple agents. Target agents can be specified using usual agent filter, which can have site, team(s), agent(s) as filtering criteria as well as agent scheduled states filter. The shift schedules to insert are passed as agent day schedules with specified shift start/end, activities and activity set schedule states. If agent ID is not specified (is zero) in passed agent day then such agent day schedule is multiplied for all target agents. Otherwise agent day schedule is inserted for specified agent only. Has an option to indicate that breaks/meals should be scheduled automatically for newly inserted shift schedules. This operation is asynchronous and so an ID of asynchronous request is returned. Use Session service to check progress of asynchronous request. Use function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `agentDayArray` - An array of agent days schedules `SchAgentDay` to insert. If agent ID is not specified (is zero) in passed agent day then such agent day schedule is multiplied for all target agents. Otherwise agent day schedule is inserted for specified agent only. The shift schedules to insert are passed as agent day schedules with specified shift start/end, activities and activity set schedule states.
        `buildAgentDay` - Specifies whether breaks/meals should be automatically inserted and optimally distributed for inserted schedule shifts
        `ignoreWarnings` - if "true" agent day is saved to db even if there were warnings
        `allOrNothing` - Specifies whether opration is atomic or not.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### deleteAgentDay

          java.lang.String deleteAgentDay(int scheduleID,
                                        int siteID,
                                        int[] teamIDArray,
                                        int[] agentIDArray,
                                        double startDate,
                                        double endDate)
                                          throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### swapSchedules

          SchValidationHolder swapSchedules(int scheduleID,
                                          int siteID,
                                          double[] days,
                                          int agentID1,
                                          int agentID2,
                                          boolean ignoreWarnings,
                                          boolean checkTimestamp,
                                          boolean autoCommit)
                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getSwapCandidates

          SchCandidateHolder getSwapCandidates(int scheduleID,
                                             int siteID,
                                             double[] days,
                                             int[] teamIDArray,
                                             int[] agentIDArray,
                                             boolean provideAgentInfo)
                                               throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### createScenario

          int createScenario(java.lang.String name,
                           double startDate,
                           double endDate,
                           double endDateExt,
                           SchScenarioSite[] sites,
                           int type,
                           java.lang.String comments)
                             throws java.rmi.RemoteException

      Creates new schedule scenario `SchScenario`
      Parameters:
        `name` - Name of scenario. If the specified name already exists, then the next consecutive number is added to the name so as to make it unique.
        `startDate` - Scenario start date `OleDateTime`
        `endDate` - Scenario end date `OleDateTime`
        `endDateExt` - Scenario extended end date (optional) `OleDateTime`
        `sites` - An array of `SchScenarioSite`
        `type` - Scenario type `ESchScenarioType`
        `comments` - Comments
      Returns:
        The ID of the newly created scenario
      Throws:
        `java.rmi.RemoteException`

    - #### deleteScenario

          void deleteScenario(int scheduleID)
                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### setScenarioParams

          void setScenarioParams(int scheduleID,
                               int siteID,
                               SchScenarioParams param)
                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioParams

          SchScenarioParams getScenarioParams(int scheduleID,
                                            int siteID)
                                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenario

          SchScenarioHolder getScenario(int scheduleID,
                                      int infoType,
                                      boolean provideUserInfo)
                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openScenarioSnapshot

          SchScenarioSnapshot openScenarioSnapshot(int ownership,
                                                 int[] typeFilter,
                                                 int[] statusFilter,
                                                 int[] siteIDFilter,
                                                 double startDate,
                                                 double endDate,
                                                 int sortMode,
                                                 boolean ascending)
                                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### sortScenarioSnapshot

          void sortScenarioSnapshot(java.lang.String snapshotID,
                                  int sortMode,
                                  boolean ascending)
                                    throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### findScenarioInSnapshot

          int findScenarioInSnapshot(java.lang.String snapshotID,
                                   java.lang.String name,
                                   int startIndex)
                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### fetchScenarioFromSnapshot

          SchScenarioHolder fetchScenarioFromSnapshot(java.lang.String snapshotID,
                                                    int firstIndex,
                                                    int lastIndex,
                                                    int infoType,
                                                    boolean provideUserInfo)
                                                      throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioSite

          CfgSiteHolder getScenarioSite(int scheduleID,
                                      int[] siteIDArray,
                                      int sortMode,
                                      boolean ascending,
                                      int infoType,
                                      boolean provideBUInfo)
                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioVirtualActivity

          CfgVirtualActivityHolder getScenarioVirtualActivity(int scheduleID,
                                                            int[] virtualActivityIDArray,
                                                            int infoType,
                                                            int sortMode,
                                                            boolean ascending,
                                                            boolean provideActivityInfo,
                                                            boolean provideBUInfo)
                                                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioActivity

          CfgActivityHolder getScenarioActivity(int scheduleID,
                                              int siteID,
                                              int[] activityIDArray,
                                              int sortMode,
                                              boolean ascending,
                                              int infoType,
                                              boolean provideActivitySetInfo,
                                              boolean provideVirtualActivityInfo)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioTeam

          CfgTeamHolder getScenarioTeam(int scheduleID,
                                      int siteID,
                                      int[] teamIDArray,
                                      int sortMode,
                                      boolean ascending,
                                      int infoType,
                                      boolean provideAgentInfo)
                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScheduledAgents

          CfgAgentHolder getScheduledAgents(int scheduleID,
                                          int siteID,
                                          double startDate,
                                          double endDate,
                                          int[] flagFilter,
                                          int sortMode,
                                          boolean ascending,
                                          int infoType,
                                          boolean provideActivities,
                                          boolean provideTeamInfo,
                                          boolean provideContractInfo)
                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openScheduledAgentSnapshot

          CfgSnapshot openScheduledAgentSnapshot(int scheduleID,
                                               int siteID,
                                               double startDate,
                                               double endDate,
                                               int[] flagFilter,
                                               int sortMode,
                                               boolean ascending)
                                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getMasterAgent

          CfgAgentHolder getMasterAgent(int siteID,
                                      double startDate,
                                      double endDate,
                                      CfgAgentFilter agentFilter,
                                      int sortMode,
                                      boolean ascending,
                                      int infoType,
                                      boolean provideActivities,
                                      boolean provideTeamInfo,
                                      boolean provideContractInfo)
                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openMasterAgentSnapshot

          CfgSnapshot openMasterAgentSnapshot(int siteID,
                                            double startDate,
                                            double endDate,
                                            CfgAgentFilter agentFilter,
                                            int sortMode,
                                            boolean ascending)
                                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioAgent

          CfgAgentHolder getScenarioAgent(int scheduleID,
                                        int siteID,
                                        int[] agentTypeFilter,
                                        CfgAgentFilter agentFilter,
                                        int sortMode,
                                        boolean ascending,
                                        int infoType,
                                        boolean provideActivities,
                                        boolean provideTeamInfo,
                                        boolean provideContractInfo)
                                          throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openScenarioAgentSnapshot

          CfgSnapshot openScenarioAgentSnapshot(int scheduleID,
                                              int siteID,
                                              int[] agentTypeFilter,
                                              CfgAgentFilter agentFilter,
                                              int sortMode,
                                              boolean ascending)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### assignProfileAgents

          void assignProfileAgents(int scheduleID,
                                 int siteID,
                                 SchAssignment[] assignments)
                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### setScenarioAgentQuota

          void setScenarioAgentQuota(int scheduleID,
                                   int siteID,
                                   SchAgentQuota[] agentQuota)
                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioAgentQuota

          SchAgentQuota[] getScenarioAgentQuota(int scheduleID,
                                              int siteID,
                                              int[] agentIDArray)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioWarnings

          SchScenarioWarning[] getScenarioWarnings(int scheduleID,
                                                 int siteID)
                                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### saveScenarioWarnings

          void saveScenarioWarnings(int scheduleID,
                                  int siteID,
                                  SchScenarioWarning[] warnings)
                                    throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### saveScenarioComments

          void saveScenarioComments(int scheduleID,
                                  java.lang.String comments)
                                    throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### renameScenario

          void renameScenario(int scheduleID,
                            java.lang.String name)
                              throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### deleteAgentFromScenario

          void deleteAgentFromScenario(int scheduleID,
                                     int siteID,
                                     int[] agentIDArray)
                                       throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### addAgentToScenario

          void addAgentToScenario(int scheduleID,
                                int siteID,
                                SchScenarioAgent[] agentArray)
                                  throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### addActivityToScenario

          void addActivityToScenario(int scheduleID,
                                   int siteID,
                                   int[] activityIDArray)
                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### setScenarioType

          void setScenarioType(int scheduleID,
                             int scenarioType)
                               throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### readScenarioDBTimestamp

          long readScenarioDBTimestamp(int scheduleID)
                                       throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### insertState

          java.lang.String insertState(int scheduleID,
                                     int siteID,
                                     CfgAgentFilter agentFilter,
                                     SchStateFilter stateFilter,
                                     SchState[] states,
                                     boolean ignoreWarnings,
                                     boolean allOrNothing,
                                     boolean autoCommit)
                                       throws java.rmi.RemoteException

      Used to insert the same schedule states into different agents' schedules. For full-day exceptions, a paid duration can be specified in the SchState.wmPaidMinutes field. If not specified (zero), then standard working hours are used. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use the Session service to check the progress of asynchronous request. Use function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `states` - An array of `SchState` to insert
        `ignoreWarnings` - If "true" tells to proceed with insert even if there were warnings.
        `allOrNothing` - If "true" tells that all schedule states should be successfully inserted for all specified agents as an atomic transaction. A "false" value tells that all successful inserts should be kept even if other inserts have failed.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### insertAgentState

          java.lang.String insertAgentState(int scheduleID,
                                          int siteID,
                                          SchAgentState[] states,
                                          boolean ignoreWarnings,
                                          boolean allOrNothing,
                                          boolean autoCommit)
                                            throws java.rmi.RemoteException

      Used to insert different schedule states into different agents' schedules. For full-day exceptions, a paid duration can be specified in the SchAgentState.wmPaidMinutes field. If not specified (zero), then standard working hours are used. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use the Session service to check the progress of asynchronous request. Use function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `states` - An array of `SchAgentState` to insert
        `ignoreWarnings` - If "true" tells to proceed with insert even if there were warnings.
        `allOrNothing` - If "true" tells that all schedule states should be successfully inserted for all specified agents as an atomic transaction. A "false" value tells that all successful inserts should be kept even if other inserts have failed.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### deleteState

          java.lang.String deleteState(int scheduleID,
                                     int siteID,
                                     CfgAgentFilter agentFilter,
                                     SchStateFilter stateFilter,
                                     SchState[] states,
                                     boolean ignoreWarnings,
                                     boolean allOrNothing,
                                     boolean autoCommit)
                                       throws java.rmi.RemoteException

      Deletes the specified scheduled state(s) from the agent(s) schedules. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use Session service to check the progress of the asynchronous request. Use function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier (zero for Master Schedule)
        `siteID` - Site ID
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `states` - An array of `SchState`. Every state's start/end times specify start and end date time of the time window where the specified scheduled states should be located for this delete operation. A scheduled state is assumed to be inside the window, even if it is only partially inside it.
        `ignoreWarnings` - If true, indicates that the procedure should proceed with the deletion, even if there are warnings.
        `allOrNothing` - If true, indicates that the entire series of scheduled states deletions should be succeed for all the specified agents as a single transaction. A false value indicates that individual successful deletions should be retained, even if other deletions fail.
        `autoCommit` - Specifies whether to auto-commit changes that are being made, or designate them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### findAgentInSnapshot

          int findAgentInSnapshot(java.lang.String schSnapshotID,
                                int field,
                                java.lang.String value,
                                int startIndex)
                                  throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getPlanningPeriod

          SchPlanningPeriod[] getPlanningPeriod(int scheduleID,
                                              int siteID,
                                              double startDate,
                                              double endDate)
                                                throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### commitPendingAgentDay

          java.lang.String commitPendingAgentDay(int scheduleID,
                                               int siteID,
                                               double[] days,
                                               CfgAgentFilter agentFilter,
                                               SchStateFilter stateFilter)
                                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### rollbackPendingAgentDay

          java.lang.String rollbackPendingAgentDay(int scheduleID,
                                                 int siteID,
                                                 double[] days,
                                                 CfgAgentFilter agentFilter,
                                                 SchStateFilter stateFilter)
                                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openPendingAgentDaySnapshot

          SchSnapshot openPendingAgentDaySnapshot(int scheduleID,
                                                int siteID,
                                                double startDate,
                                                double endDate,
                                                int[] userIDAray,
                                                int[] teamIDArray,
                                                int[] agentIDArray,
                                                int groupMode,
                                                int sortMode,
                                                boolean ascending)
                                                  throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openPendingAgentDaySnapshot2

          SchSnapshot openPendingAgentDaySnapshot2(int scheduleID,
                                                 int siteID,
                                                 double startDate,
                                                 double endDate,
                                                 int[] userIDAray,
                                                 CfgAgentFilter agentFilter,
                                                 int groupMode,
                                                 int sortMode,
                                                 boolean ascending)
                                                   throws java.rmi.RemoteException

      Opens a snapshot of pending agent day schedules for specified list of users. The schedules can optionaly be filtered based on CfgAgentFilter
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier (zero for Master Schedule)
        `siteID` - Site ID
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `userIDAray` - List of users (empty for all users)
        `agentFilter` - Agent filter `CfgAgentFilter`
        `groupMode` - `ESchGroupMode` Specifies of how returned agent days should be grouped together.
        `sortMode` - `ESchSortMode` Specifies how returned schedule days must be sorted.
        `ascending` - Sort order "true" - ascending , "false" - descending
      Returns:
        Snapshot ID
      Throws:
        `java.rmi.RemoteException`

    - #### fetchPendingAgentDayFromSnapshot

          SchAgentDayHolder fetchPendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                           int firstIndex,
                                                           int lastIndex,
                                                           int stateLayout,
                                                           int[] excludeStates,
                                                           boolean provideStateInfo,
                                                           boolean provideAgentInfo,
                                                           boolean provideOvertime,
                                                           boolean provideTeamInfo,
                                                           boolean provideContractInfo,
                                                           boolean provideAvailabilityInfo)
                                                             throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### validatePendingAgentDayFromSnapshot

          SchValidationHolder validatePendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                                int[] indexArray)
                                                                  throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### commitPendingAgentDayFromSnapshot

          java.lang.String commitPendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                           int[] indexArray)
                                                             throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### rollbackPendingAgentDayFromSnapshot

          java.lang.String rollbackPendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                             int[] indexArray)
                                                               throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### pollNotification

          SchNotification pollNotification(long timestamp,
                                         int siteID,
                                         int[] teamIDArray,
                                         int[] agentIDArray,
                                         double schStartDate,
                                         double schEndDate,
                                         int detailsLevel,
                                         int stateLayout,
                                         int[] excludeStates,
                                         boolean provideStateInfo,
                                         boolean provideAgentInfo,
                                         boolean provideTeamInfo,
                                         boolean provideContractInfo)
                                           throws java.rmi.RemoteException

      Polls schedule change notification
      Parameters:
        `timestamp` - A timestamp value to use as a baseline for notifications. A zero value implies the current moment, and a negative value tells the server to use the last acknowledged timestamp as a baseline.
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team".
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified, it means "all agents".
        `schStartDate` - Start date of the schedule range that needs to be tracked for changes. `OleDateTime`
        `schEndDate` - End date of the schedule range that needs to be tracked for changes. `OleDateTime`
        `detailsLevel` - Level of notification details `ESchAuditLevel`
        `stateLayout` - Schedule state layout of returned schedules `ESchStateLayout`
        `excludeStates` - List of schedule state types `ESchStateType` that should be excluded from returned schedule.
        `provideStateInfo` - Specifies whether to provide schedule state descriptive info
        `provideAgentInfo` - Indicates whether to provide short agent information about every unique agent in the response.
        `provideTeamInfo` - Tells whether to provide short team information about every unique team in the response.
        `provideContractInfo` - Tells whether to provide short Contract information about every unique contract in the response.
      Returns:
        `SchNotification`
      Throws:
        `java.rmi.RemoteException`

    - #### acknowledgeNotification

          void acknowledgeNotification(int siteID,
                                     long timestamp)
                                       throws java.rmi.RemoteException

      Acknowledges to the server that the notification was received and processed. See also `pollNotification`.
      Parameters:
        `siteID` - Site ID
        `timestamp` - A timestamp value from `SchNotification` returned by `pollNotification`
      Throws:
        `java.rmi.RemoteException`

    - #### getAuditLogAsync

          java.lang.String getAuditLogAsync(int siteID,
                                          int[] teamIDArray,
                                          int[] agentIDArray,
                                          double schStartDate,
                                          double schEndDate,
                                          double actionStartDateTime,
                                          double actionEndDateTime,
                                          int[] actionTypes,
                                          int[] actionUsers,
                                          int detailsLevel,
                                          int stateLayout,
                                          int[] excludeStates)
                                            throws java.rmi.RemoteException

      Reads schedule audit log in async mode.
      Parameters:
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team"
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified, it means "all agents".
        `schStartDate` - Start date of schedule range that you are interested in. Can be NULL. `OleDateTime`
        `schEndDate` - End date of schedule range that you are interested in. Can be NULL. `OleDateTime`
        `actionStartDateTime` - Start date+time of action time range. It always uses the GMT timezone. Can be NULL to ignore. `OleDateTime`
        `actionEndDateTime` - End date+time of action time range. It always uses the GMT timezone. Can be NULL to ignore. `OleDateTime`
        `actionTypes` - Action type filter `ESchActionType`. Can be null.
        `actionUsers` - User ID filter. Can be null.
        `detailsLevel` - Audit log details level `ESchAuditLevel`
        `stateLayout` - Schedule state layout of returned schedules `ESchStateLayout`
        `excludeStates` - List of schedule state types `ESchStateType` that should be excluded from returned schedule.
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`

    - #### getAuditLogResults

          SchAuditLog getAuditLogResults(java.lang.String requestID,
                                       int stateLayout,
                                       boolean provideStateInfo,
                                       boolean provideAgentInfo,
                                       boolean provideTeamInfo,
                                       boolean provideContractInfo,
                                       boolean provideScenarioInfo,
                                       boolean provideUserInfo)
                                         throws java.rmi.RemoteException

      Retrieves Audit Log that was requested asynchronously.
      Parameters:
        `requestID` - Async request ID that was returned by `getAuditLogAsync`.
        `stateLayout` - Schedule state layout of returned schedules `ESchStateLayout`
        `provideStateInfo` - Specifies whether to provide schedule state descriptive info.
        `provideAgentInfo` - Tells whether to provide short agent information about every unique agent in the response.
        `provideTeamInfo` - Tells whether to provide short team information about every unique team in the response.
        `provideContractInfo` - Tells whether to provide short Contract information about every unique contract in the response.
        `provideScenarioInfo` - Tells whether to provide `SchScenarioShort` information about every unique scenario in the response.
        `provideUserInfo` - Tells whether to provide short user information about every unique user in the response.
      Returns:
        `SchAuditLog`
      Throws:
        `java.rmi.RemoteException`

    - #### getAuditLogByID

          SchAuditLog getAuditLogByID(long auditID,
                                    int siteID,
                                    int[] teamIDArray,
                                    int[] agentIDArray,
                                    double schStartDate,
                                    double schEndDate,
                                    int detailsLevel,
                                    int stateLayout,
                                    int[] excludeStates,
                                    boolean provideStateInfo,
                                    boolean provideAgentInfo,
                                    boolean provideTeamInfo,
                                    boolean provideContractInfo,
                                    boolean provideScenarioInfo,
                                    boolean provideUserInfo)
                                      throws java.rmi.RemoteException

      Returns information about a specific schedule audit transaction.
      Parameters:
        `auditID` - The ID of the specific Schedule Audit Transaction `SchAuditTransaction`
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team"
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified, means "all agents".
        `schStartDate` - Start date of schedule range that you are interested in. Can be NULL. `OleDateTime`
        `schEndDate` - End date of schedule range that you are interested in. Can be NULL. `OleDateTime`
        `detailsLevel` - Level for the audit log details `ESchAuditLevel`
        `stateLayout` - Schedule state layout of returned schedules `ESchStateLayout`
        `excludeStates` - List of schedule state types `ESchStateType` that should be excluded from the returned schedule.
        `provideStateInfo` - Specifies whether to provide schedule state descriptive info
        `provideAgentInfo` - Tells whether to provide short agent information about every unique agent in the response.
        `provideTeamInfo` - Tells whether to provide short team information about every unique team in the response.
        `provideContractInfo` - Tells whether to provide short Contract information about every unique contract in the response.
        `provideScenarioInfo` - Tells whether to provide `SchScenarioShort` information about every unique scenario in the response.
        `provideUserInfo` - Tells whether to provide short user information about every unique user in the response.
      Returns:
        `SchAuditLog`
      Throws:
        `java.rmi.RemoteException`

    - #### rollbackAuditTransaction

          long rollbackAuditTransaction(long auditID,
                                      int siteID,
                                      int[] teamIDArray,
                                      int[] agentIDArray,
                                      double schStartDate,
                                      double schEndDate)
                                        throws java.rmi.RemoteException

      Rolls back current schedule to specific Schedule Audit Transaction from the past.
      Parameters:
        `auditID` - An ID of Schedule Audit Transaction to which to rollback schedule state.
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team"
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified, means "all agents".
        `schStartDate` - Start date of schedule range that you are interested in. Can be null. `OleDateTime`
        `schEndDate` - End date of schedule range that you are interested in. Can be null. `OleDateTime`
      Returns:
        New timestamp/transaction ID value
      Throws:
        `java.rmi.RemoteException`

    - #### buildAgentDayInSnapshot

          SchAgentDayHolder buildAgentDayInSnapshot(java.lang.String schSnapshotID,
                                                  SchAgentDay[] newSchedule,
                                                  SchAgentDay[] modifiedSchedule,
                                                  int stateLayout,
                                                  int[] excludeStates,
                                                  boolean provideStateInfo,
                                                  boolean provideActivitySetInfo,
                                                  boolean provideOvertime,
                                                  boolean provideTradeEligibility)
                                                    throws java.rmi.RemoteException

      Builds complete schedule shifts with optimal break/meal distibution for the given schedule shifts (based on existing schedule snapshot).
      Parameters:
        `schSnapshotID` - Schedule Snapshot ID
        `newSchedule` - Schedule shifts that need to be built
        `modifiedSchedule` - Other modified, but not saved agent days
        `stateLayout` - Schedule state layout of returned schedules `ESchStateLayout`
        `excludeStates` - List of schedule state types `ESchStateType` that should be excluded from returned schedule.
        `provideStateInfo` - Specifies whether to provide schedule state descriptive info
        `provideActivitySetInfo` - Tells whether to fill in schActivitySetInfo field in SchAgentDay
        `provideOvertime` - Tells whether to calculate the "wmOvertimeMinutes" field in the Schedule Day returned
        `provideTradeEligibility` - Tells whether to check the "eligibleForTrade" field in the Schedule Day returned
      Returns:
        `SchAgentDayHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### buildAgentDay

          SchAgentDayHolder buildAgentDay(int scheduleID,
                                        int siteID,
                                        SchAgentDay[] newSchedule,
                                        int stateLayout,
                                        int[] excludeStates,
                                        boolean provideStateInfo,
                                        boolean provideActivitySetInfo,
                                        boolean provideOvertime,
                                        boolean provideTradeEligibility)
                                          throws java.rmi.RemoteException

      Builds complete schedule shifts with optimal break/meal distibution for the given schedule shifts
      Parameters:
        `scheduleID` - Schedule ID
        `siteID` - Site ID
        `newSchedule` - Schedule shifts that need to be built
        `stateLayout` - Schedule state layout of the returned schedules `ESchStateLayout`
        `excludeStates` - List of schedule state types `ESchStateType` that should be excluded from the returned schedule.
        `provideStateInfo` - Specifies whether to provide schedule state descriptive info
        `provideActivitySetInfo` - Tells whether to fill-in schActivitySetInfo field in SchAgentDay
        `provideOvertime` - Tells whether to calculate the "wmOvertimeMinutes" field in the Schedule Day returned
        `provideTradeEligibility` - Tells whether to check the "eligibleForTrade" field in the Schedule Day returned
      Returns:
        `SchAgentDayHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### scheduleMeetingAsync

          java.lang.String scheduleMeetingAsync(int scheduleID,
                                              int siteID,
                                              int[] teamIDArray,
                                              int[] agentIDArray,
                                              CfgMeeting meeting,
                                              boolean autoCommit)
                                                throws java.rmi.RemoteException

      Schedules meeting and saves it to the schedule database asynchronously. If the provided CfgMeeting object contains a non-empty list of agents, then agents are taken from that list. Otherwise, agents/teams passed as parameters are used. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use Session service to check the progress of the asynchronous request. Use the function `getRequestValidation` to retrieve results.
      Parameters:
        `scheduleID` - Scenario ID (0 value stands for Master Schedule)
        `siteID` - Site ID
        `teamIDArray` - Team ID filter. Can be NULL, meaning "any team"
        `agentIDArray` - Agent ID filter. Can be NULL, meaning "all agents for specified teams". If teams were not specified, means "all agents".
        `meeting` - Meeting definition `CfgMeeting`
        `autoCommit` - Specifies whether to auto-commit the changes that are being made, or make them "pending".
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### setBiddingParams

          void setBiddingParams(int scheduleID,
                              int siteID,
                              SchBiddingParams params)
                                throws java.rmi.RemoteException

      Used to open scenario for bidding by setting bidding window and list of bidding agents. It is also used to change the bidding window and/or the list of bidding agents.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `params` - `SchBiddingParams`
      Throws:
        `java.rmi.RemoteException`

    - #### getBiddingParams

          SchBiddingParams getBiddingParams(int scheduleID,
                                          int siteID)
                                            throws java.rmi.RemoteException

      Returns current bidding parameters for the schedule scenario, which includes the bidding window and a list of bidding agents.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
      Returns:
        `SchBiddingParams`
      Throws:
        `java.rmi.RemoteException`

    - #### autoAssignProfileAgents

          java.lang.String autoAssignProfileAgents(int scheduleID,
                                                 int siteID,
                                                 int rankingSystem,
                                                 boolean biddingAgentsOnly)
                                                   throws java.rmi.RemoteException

      Starts profile schedule auto-assignment engine.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `rankingSystem` - Ranking system that should be used while auto-assigning, `ESchRankingSystem`
        `biddingAgentsOnly` - Tells whether to consider only the agents bidding as the candidate pool, or consider all agents (true/false).
      Returns:
        Asynchronous request ID
      Throws:
        `java.rmi.RemoteException`

    - #### getScenarioAgentInfo

          SchScenarioAgent[] getScenarioAgentInfo(int scheduleID,
                                                int siteID,
                                                int[] agentIDArray)
                                                  throws java.rmi.RemoteException

      Returns additional information related to scenario agents. `SchScenarioAgent`
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `agentIDArray` - An array of agent IDs
      Returns:
        `SchScenarioAgent`[]
      Throws:
        `java.rmi.RemoteException`

    - #### setAgentBids

          void setAgentBids(int scheduleID,
                          int siteID,
                          int[] agentIDArray,
                          SchBid[] bids)
                            throws java.rmi.RemoteException

      Sets schedule bid values for the specified list of agents.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `agentIDArray` - An array of agent IDs whose bids are being set. Note that if 'agentIDArray' contains some agent ID, and there are no bid records in the provided 'bids' array, then it is understood that all existing bids for that agent should be cleared.
        `bids` - An array of agent bids. `SchBid`
      Throws:
        `java.rmi.RemoteException`

    - #### getAgentBids

          SchBid[] getAgentBids(int scheduleID,
                              int siteID,
                              int[] agentIDArray)
                                throws java.rmi.RemoteException

      Returns schedule bids for the specified agents.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `agentIDArray` - An array of agent IDs whose bids are to be returned.
      Returns:
        `SchBid`[]
      Throws:
        `java.rmi.RemoteException`

    - #### validateScheduleAsync

          java.lang.String validateScheduleAsync(int source,
                                               int scheduleID,
                                               int siteID,
                                               double startDate,
                                               double endDate,
                                               CfgAgentFilter agentFilter,
                                               SchStateFilter stateFilter)
                                                 throws java.rmi.RemoteException

      Validates the specified range of the schedule. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use Session service to check the progress of this asynchronous request. Use function `getRequestValidation` to retrieve the results.
      Parameters:
        `source` - Specifies schedule source `ESchSource`
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `startDate` - Schedule range start date. `OleDateTime`
        `endDate` - Schedule range end date. `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
      Returns:
        Async-request ID
      Throws:
        `java.rmi.RemoteException`

    - #### applyCalendarItemsAsync

          java.lang.String applyCalendarItemsAsync(int scheduleID,
                                                 int siteID,
                                                 double startDate,
                                                 double endDate,
                                                 CfgAgentFilter agentFilter,
                                                 SchStateFilter stateFilter,
                                                 boolean autoCommit)
                                                   throws java.rmi.RemoteException

      Applies non-scheduled calendar items to the schedule, if possible. This operation is asynchronous and so an ID of asynchronous for the request is returned. Use Session Service to check the progress of this asynchronous request. Use function `getRequestValidation` to retrieve the results.
      Parameters:
        `scheduleID` - Schedule Scenario ID
        `siteID` - Site ID
        `startDate` - Schedule range start date. `OleDateTime`
        `endDate` - Schedule range end date. `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `autoCommit` - Specifies whether to auto-commit the changes that are being made, or make them "pending".
      Returns:
        Async-request ID
      Throws:
        `java.rmi.RemoteException`

    - #### clearProfileAgentAssignments

          void clearProfileAgentAssignments(int scheduleID,
                                          int siteID,
                                          int[] profileAgentIDArray)
                                            throws java.rmi.RemoteException

      Clears the existing assignments of the profile agent schedules.
      Parameters:
        `scheduleID` - Schedule Scenario ID
        `siteID` - Site ID
        `profileAgentIDArray` - An array of profile agent IDs
      Throws:
        `java.rmi.RemoteException`

    - #### getProfileAgentCandidates

          SchCandidateHolder getProfileAgentCandidates(int scheduleID,
                                                     int siteID,
                                                     int[] agentIDArray,
                                                     boolean biddingAgentsOnly,
                                                     boolean provideBids,
                                                     boolean mergeCandidates,
                                                     boolean provideAgentInfo)
                                                       throws java.rmi.RemoteException

      Returns a list of actual agents who qualify for the schedules of the specified profile agent(s), or returns a list of qualifying profile agents, if actual agents were specified as an input.
      Parameters:
        `scheduleID` - Schedule Scenario ID
        `siteID` - Site ID
        `agentIDArray` - A list of profile or actual agent IDs
        `biddingAgentsOnly` - Indicates whether to consider only the bidding agents as the candidate pool, or to consider all agents (true/false).
        `provideBids` - Indicates whether to provide bids from the returned candidates (true/false).
        `mergeCandidates` - Identifies whether to merge those candidates that have identical schedules into one returned profile agent.
        `provideAgentInfo` - Tells whether to provide agent info (true/false).
      Returns:
        `SchCandidateHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### publishSchedule

          java.lang.String publishSchedule(SchSiteAgents[] siteAgents,
                                         int sourceScheduleID,
                                         double sourceStartDate,
                                         double sourceEndDate,
                                         int targetScheduleID,
                                         double targetStartDate,
                                         double targetEndDate,
                                         boolean applyCalendarItems)
                                           throws java.rmi.RemoteException

      Publishes schedule scenario to Master, or Master to scenario, or scenario to scenario. This operation is asynchronous, and so an ID for the asynchronous request is returned. Use Session Service to check the progress of this asynchronous request. Use function `getRequestValidation` to retrieve the results.
      Parameters:
        `siteAgents` - Specifies which agent schedules to publish `SchSiteAgents`[]
        `sourceScheduleID` - Source scenario ID. (A value of zero designates the Master Schedule).
        `sourceStartDate` - Source schedule range start date. `OleDateTime`
        `sourceEndDate` - Source schedule range end date. `OleDateTime`
        `targetScheduleID` - Target scenario ID. ('0' value designates Master Schedule).
        `targetStartDate` - Target schedule range start date. `OleDateTime`
        `targetEndDate` - Target schedule range start date. `OleDateTime`
        `applyCalendarItems` - Tells whether to apply calendar items (true/false).
      Returns:
        Async-request ID
      Throws:
        `java.rmi.RemoteException`

    - #### getStateGroupCoverage

          SchCoverageHolder getStateGroupCoverage(int source,
                                                int scheduleID,
                                                int siteID,
                                                double startDate,
                                                double endDate,
                                                CfgAgentFilter agentFilter,
                                                SchStateFilter stateFilter,
                                                int[] stateGroups,
                                                int granularity)
                                                  throws java.rmi.RemoteException

      Calculates the schedule state group coverage for every specified state group, taking schedules of specified agents.
      Parameters:
        `source` - Specifies schedule source `ESchSource`
        `scheduleID` - Schedule (Scenario) identifier (zero for the Master Schedule)
        `siteID` - Site ID
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `stateGroups` - A list of state group IDs for which coverage needs to be calculated. If NULL, coverage is calculated for all configured state groups.
        `granularity` - The granularity of the returned coverage `ESchGranularity`
      Returns:
        `SchCoverageHolder`
      Throws:
        `java.rmi.RemoteException`

    - #### getStateGroupCoverageFromSnapshot

          SchCoverageHolder getStateGroupCoverageFromSnapshot(java.lang.String schSnapshotID,
                                                            int[] stateGroups,
                                                            int granularity,
                                                            SchAgentDay[] modifiedSchedule)
                                                              throws java.rmi.RemoteException

      Calculates schedule state group coverage for every specified state group, taking schedules from the existing schedule snapshot.
      Parameters:
        `schSnapshotID` - Schedule snapshot ID
        `stateGroups` - A list of state group IDs for which coverage needs to be calculated. If NULL, coverage is calculated for all configured state groups.
        `granularity` - The granularity of the returned coverage `ESchGranularity`
        `modifiedSchedule` - An array of agent schedule days that are not saved yet
      Returns:
        `SchCoverageHolder`
      Throws:
        `java.rmi.RemoteException`

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