com.genesyslab.wfm8.API.service.schedule850

## Interface WFMScheduleService850Soap

-     public interface WFMScheduleService850Soap

  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, java.util.List<java.lang.Integer> activityIDArray)` Adds new activities to the scenario
    `void` | `addAgentToScenario(int scheduleID, int siteID, java.util.List<SchScenarioAgent> agentArray)` Adds new agents to the scenario
    `java.lang.String` | `applyCalendarItemsAsync(int scheduleID, double startDate, double endDate, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, boolean autoCommit)` Applies non-scheduled calendar items to the schedule, if possible.
    `void` | `assignProfileAgents(int scheduleID, int siteID, java.util.List<SchAssignment> assignments)` Manually assigns profile schedules to actual agents.
    `void` | `assignProfileTeams(int scheduleID, int siteID, java.util.List<SchTeamAssignment> assignments)` Associates profile agents in a profile team with a real team
    `java.lang.String` | `autoAssignProfileAgents(int scheduleID, int siteID, int rankingSystem, boolean biddingAgentsOnly)` Starts profile schedule auto-assignment engine.
    `SchAgentDayHolder` | `buildAgentDay(int scheduleID, java.util.List<SchAgentDay> newSchedule, java.util.List<SchWorkState> states, int timezoneId, boolean scheduleShiftItems, SchAgentDayDetails schDetails)` Builds complete schedule shifts with optimal break/meal distribution for the given schedule shifts
    `SchAgentDayHolder` | `buildAgentDayInSnapshot(java.lang.String schSnapshotID, java.util.List<SchAgentDay> newSchedule, java.util.List<SchAgentDay> modifiedSchedule, java.util.List<SchWorkState> states, boolean scheduleShiftItems, SchAgentDayDetails schDetails)` Builds complete schedule shifts with optimal break/meal distribution for the given schedule shifts (based on existing schedule snapshot).
    `void` | `clearProfileAgentAssignments(int scheduleID, int siteID, java.util.List<java.lang.Integer> profileAgentIDArray)` Clears the existing assignments of the profile agent schedules.
    `void` | `clearProfileTeamAssignments(int scheduleID, int siteID, java.util.List<java.lang.Integer> teamIDArray)` Disassociates profile agents associated a real team and returns them to the original profile team.
    `java.lang.String` | `commitPendingAgentDay(int scheduleID, java.util.List<java.lang.Double> days, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter)` Commits pending schedule
    `java.lang.String` | `commitPendingAgentDayFromSnapshot(java.lang.String schSnapshotID, java.util.List<java.lang.Integer> indexArray)` Commits pending schedule from snapshot
    `int` | `createScenario(java.lang.String name, double startDate, double endDate, double endDateExt, java.util.List<SchScenarioSite> sites, int type, java.lang.String comments)` Creates new schedule scenario `SchScenario`
    `java.lang.String` | `deleteAgentDay(int scheduleID, double startDate, double endDate, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter)` Deletes specified range of schedule
    `void` | `deleteAgentFromScenario(int scheduleID, int siteID, java.util.List<java.lang.Integer> agentIDArray)` Deletes specified agents and their schedules from the scenario
    `void` | `deleteScenario(int scheduleID)` Deletes specified schedule scenario
    `java.lang.String` | `deleteState(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, java.util.List<SchState> states, int timezoneId, 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, SchAgentDayDetails schDetails, CfgAgentDetails cfgAgentDetails, boolean autoRefresh)` Retrieves a range of schedule agent days from existing schedule snapshot.
    `SchScenarioHolder` | `fetchScenarioFromSnapshot(java.lang.String snapshotID, int firstIndex, int lastIndex, int infoType, boolean provideUserInfo)` Returns range of scenarios from scenario snapshot
    `int` | `findScenarioInSnapshot(java.lang.String snapshotID, java.lang.String name, int startIndex)` Finds scenario index in snapshot
    `java.util.List<SchBid>` | `getAgentBids(int scheduleID, int siteID, java.util.List<java.lang.Integer> agentIDArray)` Returns schedule bids for the specified agents.
    `SchAgentDayHolder` | `getAgentDay(SchSource source, int scheduleID, double startDate, double endDate, int timezoneId, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, SchSortMode sortMode, SchAgentDayDetails schDetails, CfgAgentDetails cfgAgentDetails, java.util.List<SchTotalsRequest> totalsRequest)` Loads agent days from the specified schedule for the specified range of dates and specified set of agents.
    `SchSnapshot` | `getAgentDaySnapshotResult(java.lang.String requestID)` Returns results of completed openAgentDaySnapshotAsync async request.
    `SchAgentStateHolder` | `getAgentState(SchSource source, int scheduleID, double startDateTime, double endDateTime, int timezoneId, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, SchStateDetails schDetails, CfgAgentDetails cfgAgentDetails)` Loads agent scheduled states of specified type from specified time window.
    `java.util.List<SchAgentTotals>` | `getAgentTotals(SchSource source, int scheduleID, CfgAgentFilter agentFilter, java.util.List<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, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, double schStartDate, double schEndDate, double actionStartDateTime, double actionEndDateTime, java.util.List<java.lang.Integer> actionTypes, java.util.List<java.lang.Integer> actionUsers, int detailsLevel, SchAgentDayDetails schDetails)` Reads schedule audit log in async mode.
    `SchAuditLog` | `getAuditLogByID(long auditID, int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, double schStartDate, double schEndDate, int detailsLevel, SchAgentDayDetails schDetails, CfgAgentDetails cfgAgentDetails, boolean provideScenarioInfo, boolean provideUserInfo)` Returns information about a specific schedule audit transaction.
    `SchAuditLog` | `getAuditLogResults(java.lang.String requestID, SchAgentDayDetails schDetails, CfgAgentDetails cfgAgentDetails, 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.
    `java.util.List<SchActivitySet>` | `getDayActivitySetInfo(int siteID, double date, java.util.List<java.lang.Integer> schActivities, java.util.List<SchActivitySet> schActivitySetInfo)` Returns Activity Set info for specified activities
    `java.util.List<SchPlanningPeriod>` | `getPlanningPeriod(int scheduleID, int siteID, double startDate, double endDate)` Returns schedule planning period information
    `SchCandidateHolder` | `getProfileAgentCandidates(int scheduleID, int siteID, java.util.List<java.lang.Integer> profileAgentIDArray, 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)` Returns specified schedule scenario information
    `CfgActivityHolder` | `getScenarioActivity(int scheduleID, CfgActivityFilter activityFilter, CfgAgentFilter agentFilter, CfgProfileFilter profileFilter, CfgSortMode sortMode, CfgActivityDetails details)` Returns `CfgActivity` from schedule scenario
    `java.util.List<SchScenarioAgent>` | `getScenarioAgentInfo(int scheduleID, CfgAgentFilter agentFilter)` Returns additional information related to scenario agents.
    `java.util.List<SchAgentQuota>` | `getScenarioAgentQuota(int scheduleID, int siteID, java.util.List<java.lang.Integer> agentIDArray)` Returns `SchAgentQuota` for scenario
    `CfgBUHolder` | `getScenarioBU(int scheduleID, CfgBUFilter BUFilter, CfgSortMode sortMode, CfgBUDetails details)` Returns `CfgBU` from schedule scenario
    `java.util.List<SchScenarioParams>` | `getScenarioParams(int scheduleID, java.util.List<java.lang.Integer> siteIDs)` Returns scenario parameters
    `CfgSiteHolder` | `getScenarioSite(int scheduleID, CfgSiteFilter siteFilter, CfgSortMode sortMode, CfgSiteDetails details)` Returns `CfgSite` from schedule scenario
    `CfgTeamHolder` | `getScenarioTeam(int scheduleID, CfgTeamFilter teamFilter, CfgSortMode sortMode, CfgTeamDetails details)` Returns `CfgTeam` from schedule scenario
    `CfgVirtualActivityHolder` | `getScenarioVirtualActivity(int scheduleID, CfgVirtualActivityFilter virtualActivityFilter, CfgAgentFilter agentFilter, CfgProfileFilter profileFilter, CfgSortMode sortMode, CfgVirtualActivityDetails details)` Returns `CfgVirtualActivity` from schedule scenario
    `java.util.List<SchScenarioWarning>` | `getScenarioWarnings(int scheduleID, java.util.List<java.lang.Integer> siteIDs)` Returns scenario warnings
    `CfgAgentHolder` | `getScheduleAgent(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, java.util.List<java.lang.Integer> agentTypeFilter, java.util.List<java.lang.Integer> flagFilter, CfgSortMode sortMode, CfgAgentDetails cfgAgentDetails)` Returns `CfgAgent` from schedule scenario
    `SchStateGroupCoverageHolder` | `getStateGroupCoverage(SchSource source, int scheduleID, double startDate, double endDate, int timezoneId, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, CfgStateGroupFilter stateGroupFilter, int granularity)` Calculates the schedule state group coverage for every specified state group, taking schedules of specified agents.
    `SchStateGroupCoverageHolder` | `getStateGroupCoverageFromSnapshot(java.lang.String schSnapshotID, CfgStateGroupFilter stateGroupFilter, int granularity, java.util.List<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, java.util.List<java.lang.Double> days, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, boolean provideAgentInfo)` Returns list of agents that qualify for the schedule swap with specified agent.
    `java.util.List<SchTeamTotals>` | `getTeamTotals(SchSource source, int scheduleID, int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<SchTotalsRequest> totalsRequest)` Calculates Team work totals taking into account team history
    `java.lang.String` | `insertAgentDay(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, java.util.List<SchAgentDay> agentDayArray, boolean buildAgentDay, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` 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.
    `java.lang.String` | `insertAgentState(int scheduleID, java.util.List<SchAgentState> states, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to insert different schedule states into different agents' schedules.
    `java.lang.String` | `insertState(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, java.util.List<SchState> states, int timezoneId, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to insert the same schedule states into different agents' schedules.
    `java.lang.String` | `insertWorkState(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, java.util.List<SchWorkState> states, boolean replaceExistingWorkOnly, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Inserts Work State / Overtime
    `SchSnapshot` | `openAgentDaySnapshot(SchSource source, int scheduleID, double startDate, double endDate, int timezoneId, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, SchSortMode sortMode, java.util.List<SchTotalsRequest> totalsRequest)` Opens a snapshot of day schedules for specified criteria.
    `java.lang.String` | `openAgentDaySnapshotAsync(SchSource source, int scheduleID, double startDate, double endDate, int timezoneId, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, SchSortMode sortMode, java.util.List<SchTotalsRequest> totalsRequest)` Opens a snapshot asynchronously of day schedules for specified criteria.
    `SchScenarioSnapshot` | `openScenarioSnapshot(int ownership, java.util.List<java.lang.Integer> typeFilter, java.util.List<java.lang.Integer> statusFilter, java.util.List<java.lang.Integer> siteIDFilter, double startDate, double endDate, int sortMode, boolean ascending)` Opens schedule scenario snapshot
    `CfgSnapshot` | `openScheduleAgentSnapshot(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, java.util.List<java.lang.Integer> agentTypeFilter, java.util.List<java.lang.Integer> flagFilter, CfgSortMode sortMode)` Opens CfgAgent snapshot from schedule scenario
    `SchNotification` | `pollNotification(long timestamp, int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, double schStartDate, double schEndDate, int detailsLevel, SchAgentDayDetails schDetails, CfgAgentDetails cfgAgentDetails)` Polls schedule change notification
    `java.lang.String` | `publishSchedule(java.util.List<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, java.util.List<java.lang.Integer> agentIDArray, double startDate, double endDate)` Returns timestamp of specified schedule range
    `long` | `readScenarioDBTimestamp(int scheduleID)` Returns scenario modification timestamp
    `void` | `renameScenario(int scheduleID, java.lang.String name)` Renames schedule scenario
    `java.lang.String` | `replaceState(int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter, SchState findState, SchState replaceWithState, int timezoneId, boolean ignoreWarnings, boolean allOrNothing, boolean autoCommit)` Used to find one and replace with another schedule state for given agents.
    `long` | `rollbackAuditTransaction(long auditID, int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, double schStartDate, double schEndDate)` Rolls back current schedule to specific Schedule Audit Transaction from the past.
    `java.lang.String` | `rollbackPendingAgentDay(int scheduleID, java.util.List<java.lang.Double> days, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter)` Rolls back pending schedule
    `java.lang.String` | `rollbackPendingAgentDayFromSnapshot(java.lang.String schSnapshotID, java.util.List<java.lang.Integer> indexArray)` Rolls back pending schedule from snapshot
    `SchValidationHolder` | `saveAgentDay(int scheduleID, java.util.List<SchAgentDay> agentDayArray, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)` Saves agent day schedule to database.
    `java.lang.String` | `saveAgentDayAsync(int scheduleID, java.util.List<SchAgentDay> agentDayArray, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)` Saves agent day schedule to database asynchronously.
    `void` | `saveScenarioComments(int scheduleID, java.lang.String comments)` Saves scenario comments
    `void` | `saveScenarioWarnings(int scheduleID, java.util.List<SchScenarioWarning> warnings)` Saves scenario warnings
    `SchValidationHolder` | `scheduleMeeting(int scheduleID, CfgMeeting meeting, boolean ignoreWarnings, boolean autoCommit)` Schedules meeting and saves it to the schedule database.
    `java.lang.String` | `scheduleMeetingAsync(int scheduleID, int cfgMeetingID, double startDate, double endDate, boolean ignoreWarnings, boolean autoCommit)` Schedules meeting and saves it to the schedule database asynchronously.
    `void` | `setAgentBids(int scheduleID, int siteID, java.util.List<java.lang.Integer> agentIDArray, java.util.List<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, java.util.List<SchAgentQuota> agentQuota)` Sets `SchAgentQuota` for scenario
    `void` | `setScenarioForecast(int scheduleID, int forecastID)` Associates forecast with schedule scenario
    `void` | `setScenarioParams(int scheduleID, java.util.List<SchScenarioParams> params)` Sets scenario parameters
    `void` | `setScenarioType(int scheduleID, int scenarioType)` Sets new scenario type
    `void` | `sortAgentDaySnapshot(java.lang.String schSnapshotID, SchSortMode sortMode)` Sorts schedule snapshot
    `void` | `sortScenarioSnapshot(java.lang.String snapshotID, int sortMode, boolean ascending)` Sorts scenario snapshot
    `SchValidationHolder` | `swapSchedules(int scheduleID, int siteID, java.util.List<java.lang.Double> days, int agentID1, int agentID2, boolean ignoreWarnings, boolean checkTimestamp, boolean autoCommit)` Swaps schedules of two agents for specified days.
    `SchValidationHolder` | `validateAgentDay(int scheduleID, java.util.List<SchAgentDay> agentDayArray)` Validates schedule
    `SchValidationHolder` | `validatePendingAgentDayFromSnapshot(java.lang.String schSnapshotID, java.util.List<java.lang.Integer> indexArray)` Validates pending schedule from snapshot
    `java.lang.String` | `validateScheduleAsync(SchSource source, int scheduleID, double startDate, double endDate, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, SchStateFilter stateFilter)` Validates the specified range of the schedule.
    `boolean` | `wasAgentDaySnapshotModified(java.lang.String schSnapshotID, int firstAgentIndex, int lastAgentIndex, double firstDate, double lastDate)` Tells whether specified range of schedule in snapshot was modified since snapshot was created or not.

- - ### Method Detail

    - #### getAgentState

          SchAgentStateHolder getAgentState(SchSource source,
                                          int scheduleID,
                                          double startDateTime,
                                          double endDateTime,
                                          int timezoneId,
                                          CfgAgentFilter agentFilter,
                                          CfgActivityFilter activityFilter,
                                          SchStateFilter stateFilter,
                                          SchStateDetails schDetails,
                                          CfgAgentDetails cfgAgentDetails)

      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 `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `startDateTime` - Time window start date/time `OleDateTime`
        `endDateTime` - Time window end date/time `OleDateTime`
        `timezoneId` - Time Zone ID. Identifies time zone used in startDateTime/endDateTime time window as well time zone to use in returned schedule states. A zero value tells to use 'target' site time zone.
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `schDetails` - Request details `SchStateDetails`
        `cfgAgentDetails` - Agent details `CfgAgentDetails`
      Returns:
        `SchAgentStateHolder`

    - #### getAgentDay

          SchAgentDayHolder getAgentDay(SchSource source,
                                      int scheduleID,
                                      double startDate,
                                      double endDate,
                                      int timezoneId,
                                      CfgAgentFilter agentFilter,
                                      CfgActivityFilter activityFilter,
                                      SchStateFilter stateFilter,
                                      SchSortMode sortMode,
                                      SchAgentDayDetails schDetails,
                                      CfgAgentDetails cfgAgentDetails,
                                      java.util.List<SchTotalsRequest> totalsRequest)

      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 `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `timezoneId` - Time Zone ID. Identifies time zone used in startDate/endDate date period as well time zone to use in returned schedule states. A zero value tells to use 'target' site time zone.
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `sortMode` - Sort Mode `SchSortMode`
        `schDetails` - Request details `SchAgentDayDetails`
        `cfgAgentDetails` - Agent details `CfgAgentDetails`
        `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.
      Returns:
        `SchAgentDayHolder`

    - #### openAgentDaySnapshot

          SchSnapshot openAgentDaySnapshot(SchSource source,
                                         int scheduleID,
                                         double startDate,
                                         double endDate,
                                         int timezoneId,
                                         CfgAgentFilter agentFilter,
                                         CfgActivityFilter activityFilter,
                                         SchStateFilter stateFilter,
                                         SchSortMode sortMode,
                                         java.util.List<SchTotalsRequest> totalsRequest)

      Opens a snapshot of day schedules for specified criteria.
      Parameters:
        `source` - Specifies schedule source `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `timezoneId` - Time Zone ID. Identifies time zone used in startDate/endDate date period as well time zone to use in returned schedule states. A zero value tells to use 'target' site time zone.
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `sortMode` - Sort Mode `SchSortMode`
        `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.
      Returns:
        `SchSnapshot`

    - #### openAgentDaySnapshotAsync

          java.lang.String openAgentDaySnapshotAsync(SchSource source,
                                                   int scheduleID,
                                                   double startDate,
                                                   double endDate,
                                                   int timezoneId,
                                                   CfgAgentFilter agentFilter,
                                                   CfgActivityFilter activityFilter,
                                                   SchStateFilter stateFilter,
                                                   SchSortMode sortMode,
                                                   java.util.List<SchTotalsRequest> totalsRequest)

      Opens a snapshot asynchronously of day schedules for specified criteria.
      Parameters:
        `source` - Specifies schedule source `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `timezoneId` - Time Zone ID. Identifies time zone used in startDate/endDate date period as well time zone to use in returned schedule states. A zero value tells to use 'target' site time zone.
        `agentFilter` - Agent filter `CfgAgentFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `sortMode` - Sort Mode `SchSortMode`
        `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.
      Returns:
        returns Async request ID

    - #### getAgentDaySnapshotResult

          SchSnapshot getAgentDaySnapshotResult(java.lang.String requestID)

      Returns results of completed openAgentDaySnapshotAsync async request.
      Parameters:
        `requestID` - Async request ID
      Returns:
        returns `SchSnapshot`

    - #### sortAgentDaySnapshot

          void sortAgentDaySnapshot(java.lang.String schSnapshotID,
                                  SchSortMode sortMode)

      Sorts schedule snapshot
      Parameters:
        `schSnapshotID` - Snapshot ID
        `sortMode` - `SchSortMode`

    - #### fetchAgentDayFromSnapshot

          SchAgentDayHolder fetchAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                    int firstAgentIndex,
                                                    int lastAgentIndex,
                                                    double firstDate,
                                                    double lastDate,
                                                    SchAgentDayDetails schDetails,
                                                    CfgAgentDetails cfgAgentDetails,
                                                    boolean autoRefresh)

      Retrieves a range of schedule agent days from existing schedule snapshot. See `openAgentDaySnapshot` The range is either two dimensional (X - Agents, Y - Dates) or single dimension (X - schedule days)
      Parameters:
        `schSnapshotID` - Snapshot ID
        `firstAgentIndex` - First Agent index (or First Schedule Day if firstDate/lastDate dimension is not used)
        `lastAgentIndex` - Last Agent Index (or Last Schedule Day if firstDate/lastDate dimension is not used)
        `firstDate` - First Date (can be NULL)
        `lastDate` - Last Date (can be NULL)
        `schDetails` - Request details `SchAgentDayDetails`
        `cfgAgentDetails` - Agent details `CfgAgentDetails`
        `autoRefresh` - Tells whether snapshot should be auto-refreshed if modified or not.
      Returns:
        `SchAgentDayHolder`

    - #### wasAgentDaySnapshotModified

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

      Tells whether specified range of schedule in snapshot was modified since snapshot was created or not.
      Parameters:
        `schSnapshotID` - Schedule Snapshot ID
        `firstAgentIndex` - First Agent index (or First Schedule Day if firstDate/lastDate dimension is not used)
        `lastAgentIndex` - Last Agent Index (or Last Schedule Day if firstDate/lastDate dimension is not used)
        `firstDate` - First Date (can be NULL)
        `lastDate` - Last Date (can be NULL)
      Returns:
        returns boolean

    - #### getDayActivitySetInfo

          java.util.List<SchActivitySet> getDayActivitySetInfo(int siteID,
                                                             double date,
                                                             java.util.List<java.lang.Integer> schActivities,
                                                             java.util.List<SchActivitySet> schActivitySetInfo)

      Returns Activity Set info for specified activities
      Parameters:
        `siteID` - Site ID
        `date` - Specified date
        `schActivities` - A list of activities
        `schActivitySetInfo` - Current activity sets
      Returns:
        returns `List`<`SchActivitySet`>

    - #### getAgentTotals

          java.util.List<SchAgentTotals> getAgentTotals(SchSource source,
                                                      int scheduleID,
                                                      CfgAgentFilter agentFilter,
                                                      java.util.List<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. For instance, this function can be used to calculate weekly totals, monthly totals, or schedule planning period totals.
      Parameters:
        `source` - Specifies schedule source `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `agentFilter` - Agent filter `CfgAgentFilter`
        `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:
        returns `List`<`SchAgentTotals`>

    - #### getTeamTotals

          java.util.List<SchTeamTotals> getTeamTotals(SchSource source,
                                                    int scheduleID,
                                                    int siteID,
                                                    java.util.List<java.lang.Integer> teamIDArray,
                                                    java.util.List<SchTotalsRequest> totalsRequest)

      Calculates Team work totals taking into account team history
      Parameters:
        `source` - Specifies schedule source `SchSource`
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `teamIDArray` - Specified teams
        `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:
        returns `List`<`SchTeamTotals`>

    - #### readAgentDayDBTimestamp

          long readAgentDayDBTimestamp(int scheduleID,
                                     int siteID,
                                     java.util.List<java.lang.Integer> agentIDArray,
                                     double startDate,
                                     double endDate)

      Returns timestamp of specified schedule range
      Parameters:
        `scheduleID` -
        `siteID` -
        `agentIDArray` -
        `startDate` -
        `endDate` -
      Returns:
        returns Timestamp

    - #### validateAgentDay

          SchValidationHolder validateAgentDay(int scheduleID,
                                             java.util.List<SchAgentDay> agentDayArray)

      Validates schedule
      Parameters:
        `scheduleID` - Scenario ID (zero for Master)
        `agentDayArray` - Schedule to validate
      Returns:
        returns `SchValidationHolder`

    - #### saveAgentDay

          SchValidationHolder saveAgentDay(int scheduleID,
                                         java.util.List<SchAgentDay> agentDayArray,
                                         boolean ignoreWarnings,
                                         boolean checkTimestamp,
                                         boolean autoCommit)

      Saves agent day schedule to database.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `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`

    - #### saveAgentDayAsync

          java.lang.String saveAgentDayAsync(int scheduleID,
                                           java.util.List<SchAgentDay> agentDayArray,
                                           boolean ignoreWarnings,
                                           boolean checkTimestamp,
                                           boolean autoCommit)

      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
        `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

    - #### insertWorkState

          java.lang.String insertWorkState(int scheduleID,
                                         CfgAgentFilter agentFilter,
                                         CfgActivityFilter activityFilter,
                                         SchStateFilter stateFilter,
                                         java.util.List<SchWorkState> states,
                                         boolean replaceExistingWorkOnly,
                                         boolean ignoreWarnings,
                                         boolean allOrNothing,
                                         boolean autoCommit)

      Inserts Work State / Overtime
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `states` - A list of `SchWorkState` to insert
        `replaceExistingWorkOnly` - Tells whether to replace existing work only or to replace current states and reschedule shift items (like breaks, meals)
        `ignoreWarnings` - if "true" agent day is saved to db even if there were warnings
        `allOrNothing` - Specifies whether operation is atomic or not.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID

    - #### insertAgentDay

          java.lang.String insertAgentDay(int scheduleID,
                                        CfgAgentFilter agentFilter,
                                        CfgActivityFilter activityFilter,
                                        SchStateFilter stateFilter,
                                        java.util.List<SchAgentDay> agentDayArray,
                                        boolean buildAgentDay,
                                        boolean ignoreWarnings,
                                        boolean allOrNothing,
                                        boolean autoCommit)

      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
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `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 operation is atomic or not.
        `autoCommit` - Specifies whether to auto-commit changes are being made or make them "pending".
      Returns:
        Asynchronous request ID

    - #### deleteAgentDay

          java.lang.String deleteAgentDay(int scheduleID,
                                        double startDate,
                                        double endDate,
                                        CfgAgentFilter agentFilter,
                                        CfgActivityFilter activityFilter,
                                        SchStateFilter stateFilter)

      Deletes specified range of schedule
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `startDate` - Range start date
        `endDate` - Range end date
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
      Returns:
        Asynchronous request ID

    - #### swapSchedules

          SchValidationHolder swapSchedules(int scheduleID,
                                          int siteID,
                                          java.util.List<java.lang.Double> days,
                                          int agentID1,
                                          int agentID2,
                                          boolean ignoreWarnings,
                                          boolean checkTimestamp,
                                          boolean autoCommit)

      Swaps schedules of two agents for specified days.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `days` - Days to swap
        `agentID1` - Agent 1
        `agentID2` - Agent 2
        `ignoreWarnings` - If "true" agent day is saved to db even if there were 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:
        returns `SchValidationHolder`

    - #### getSwapCandidates

          SchCandidateHolder getSwapCandidates(int scheduleID,
                                             int siteID,
                                             java.util.List<java.lang.Double> days,
                                             java.util.List<java.lang.Integer> teamIDArray,
                                             java.util.List<java.lang.Integer> agentIDArray,
                                             boolean provideAgentInfo)

      Returns list of agents that qualify for the schedule swap with specified agent.
      Parameters:
        `scheduleID` - Schedule (Scenario) identifier. It's zero for Master Schedule
        `siteID` - Site ID
        `days` - Days to swap
        `teamIDArray` - Team list
        `agentIDArray` - Agent List
        `provideAgentInfo` -
      Returns:
        returns `SchValidationHolder`

    - #### createScenario

          int createScenario(java.lang.String name,
                           double startDate,
                           double endDate,
                           double endDateExt,
                           java.util.List<SchScenarioSite> sites,
                           int type,
                           java.lang.String comments)

      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

    - #### deleteScenario

          void deleteScenario(int scheduleID)

      Deletes specified schedule scenario
      Parameters:
        `scheduleID` - Scenario to delete

    - #### setScenarioParams

          void setScenarioParams(int scheduleID,
                               java.util.List<SchScenarioParams> params)

      Sets scenario parameters
      Parameters:
        `scheduleID` - Scenario ID
        `params` - A list of `SchScenarioParams`

    - #### getScenarioParams

          java.util.List<SchScenarioParams> getScenarioParams(int scheduleID,
                                                            java.util.List<java.lang.Integer> siteIDs)

      Returns scenario parameters
      Parameters:
        `scheduleID` - Scenario ID
        `siteIDs` - A list of Site ID
      Returns:
        returns `List`<`SchScenarioParams`>

    - #### getScenario

          SchScenarioHolder getScenario(int scheduleID,
                                      int infoType,
                                      boolean provideUserInfo)

      Returns specified schedule scenario information
      Parameters:
        `scheduleID` - Scenario ID
        `infoType` - `ESchInfoType`
        `provideUserInfo` -
      Returns:
        returns `SchScenarioHolder`

    - #### openScenarioSnapshot

          SchScenarioSnapshot openScenarioSnapshot(int ownership,
                                                 java.util.List<java.lang.Integer> typeFilter,
                                                 java.util.List<java.lang.Integer> statusFilter,
                                                 java.util.List<java.lang.Integer> siteIDFilter,
                                                 double startDate,
                                                 double endDate,
                                                 int sortMode,
                                                 boolean ascending)

      Opens schedule scenario snapshot
      Parameters:
        `ownership` - `ESchScenarioOwnership`
        `typeFilter` - `ESchScenarioType`
        `statusFilter` - `ESchScenarioStatus`
        `siteIDFilter` -
        `startDate` -
        `endDate` -
        `sortMode` -
        `ascending` -
      Returns:
        returns `SchScenarioSnapshot`

    - #### sortScenarioSnapshot

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

      Sorts scenario snapshot
      Parameters:
        `snapshotID` -
        `sortMode` - `ESchScenarioSortMode`
        `ascending` -

    - #### findScenarioInSnapshot

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

      Finds scenario index in snapshot
      Parameters:
        `snapshotID` - Scenario snapshot ID
        `name` - Name to search
        `startIndex` - The index to start search from
      Returns:
        returns Found index (-1 if not found)

    - #### fetchScenarioFromSnapshot

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

      Returns range of scenarios from scenario snapshot
      Parameters:
        `snapshotID` - Scenario snapshot ID
        `firstIndex` -
        `lastIndex` -
        `infoType` - `ESchInfoType`
        `provideUserInfo` -
      Returns:
        returns `SchScenarioHolder`

    - #### getScenarioBU

          CfgBUHolder getScenarioBU(int scheduleID,
                                  CfgBUFilter BUFilter,
                                  CfgSortMode sortMode,
                                  CfgBUDetails details)

      Returns `CfgBU` from schedule scenario
      Parameters:
        `scheduleID` -
        `BUFilter` -
        `sortMode` -
        `details` -
      Returns:
        returns `CfgBUHolder`

    - #### getScenarioSite

          CfgSiteHolder getScenarioSite(int scheduleID,
                                      CfgSiteFilter siteFilter,
                                      CfgSortMode sortMode,
                                      CfgSiteDetails details)

      Returns `CfgSite` from schedule scenario
      Parameters:
        `scheduleID` -
        `siteFilter` -
        `sortMode` -
        `details` -
      Returns:
        returns `CfgSiteHolder`

    - #### getScenarioVirtualActivity

          CfgVirtualActivityHolder getScenarioVirtualActivity(int scheduleID,
                                                            CfgVirtualActivityFilter virtualActivityFilter,
                                                            CfgAgentFilter agentFilter,
                                                            CfgProfileFilter profileFilter,
                                                            CfgSortMode sortMode,
                                                            CfgVirtualActivityDetails details)

      Returns `CfgVirtualActivity` from schedule scenario
      Parameters:
        `virtualActivityFilter` -
        `scheduleID` -
        `agentFilter` -
        `profileFilter` -
        `sortMode` -
        `details` -
      Returns:
        returns `CfgVirtualActivityHolder`

    - #### getScenarioActivity

          CfgActivityHolder getScenarioActivity(int scheduleID,
                                              CfgActivityFilter activityFilter,
                                              CfgAgentFilter agentFilter,
                                              CfgProfileFilter profileFilter,
                                              CfgSortMode sortMode,
                                              CfgActivityDetails details)

      Returns `CfgActivity` from schedule scenario
      Parameters:
        `scheduleID` -
        `activityFilter` -
        `agentFilter` -
        `profileFilter` -
        `sortMode` -
        `details` -
      Returns:
        returns `CfgActivityHolder`

    - #### getScenarioTeam

          CfgTeamHolder getScenarioTeam(int scheduleID,
                                      CfgTeamFilter teamFilter,
                                      CfgSortMode sortMode,
                                      CfgTeamDetails details)

      Returns `CfgTeam` from schedule scenario
      Parameters:
        `scheduleID` -
        `teamFilter` -
        `sortMode` -
        `details` -
      Returns:
        returns `CfgTeamHolder`

    - #### getScheduleAgent

          CfgAgentHolder getScheduleAgent(int scheduleID,
                                        CfgAgentFilter agentFilter,
                                        CfgActivityFilter activityFilter,
                                        java.util.List<java.lang.Integer> agentTypeFilter,
                                        java.util.List<java.lang.Integer> flagFilter,
                                        CfgSortMode sortMode,
                                        CfgAgentDetails cfgAgentDetails)

      Returns `CfgAgent` from schedule scenario
      Parameters:
        `scheduleID` -
        `agentFilter` - `CfgAgentFilter`
        `activityFilter` - `CfgActivityFilter`
        `agentTypeFilter` - `ESchAgentType`
        `flagFilter` - `ESchDayFlag`
        `sortMode` - `CfgSortMode`
        `cfgAgentDetails` - `CfgAgentDetails`
      Returns:
        returns `CfgAgentHolder`

    - #### openScheduleAgentSnapshot

          CfgSnapshot openScheduleAgentSnapshot(int scheduleID,
                                              CfgAgentFilter agentFilter,
                                              CfgActivityFilter activityFilter,
                                              java.util.List<java.lang.Integer> agentTypeFilter,
                                              java.util.List<java.lang.Integer> flagFilter,
                                              CfgSortMode sortMode)

      Opens CfgAgent snapshot from schedule scenario
      Parameters:
        `agentFilter` - `CfgAgentFilter`
        `activityFilter` - `CfgActivityFilter`
        `agentTypeFilter` - `ESchAgentType`
        `flagFilter` - `ESchDayFlag`
        `sortMode` - `CfgSortMode`
      Returns:
        returns `CfgSnapshot`

    - #### assignProfileAgents

          void assignProfileAgents(int scheduleID,
                                 int siteID,
                                 java.util.List<SchAssignment> assignments)

      Manually assigns profile schedules to actual agents.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
        `assignments` - Specified manual assignments `SchAssignment`

    - #### setScenarioAgentQuota

          void setScenarioAgentQuota(int scheduleID,
                                   int siteID,
                                   java.util.List<SchAgentQuota> agentQuota)

      Sets `SchAgentQuota` for scenario
      Parameters:
        `scheduleID` -
        `siteID` -
        `agentQuota` - A list of `SchAgentQuota`

    - #### getScenarioAgentQuota

          java.util.List<SchAgentQuota> getScenarioAgentQuota(int scheduleID,
                                                            int siteID,
                                                            java.util.List<java.lang.Integer> agentIDArray)

      Returns `SchAgentQuota` for scenario
      Parameters:
        `scheduleID` -
        `siteID` -
        `agentIDArray` -
      Returns:
        returns `List`<`SchAgentQuota`>

    - #### clearProfileAgentAssignments

          void clearProfileAgentAssignments(int scheduleID,
                                          int siteID,
                                          java.util.List<java.lang.Integer> profileAgentIDArray)

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

    - #### getProfileAgentCandidates

          SchCandidateHolder getProfileAgentCandidates(int scheduleID,
                                                     int siteID,
                                                     java.util.List<java.lang.Integer> profileAgentIDArray,
                                                     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.
      Parameters:
        `scheduleID` - Schedule Scenario ID
        `siteID` - Site ID
        `profileAgentIDArray` - 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`

    - #### getScenarioWarnings

          java.util.List<SchScenarioWarning> getScenarioWarnings(int scheduleID,
                                                               java.util.List<java.lang.Integer> siteIDs)

      Returns scenario warnings
      Parameters:
        `scheduleID` -
        `siteIDs` -
      Returns:
        returns `List`<`SchScenarioWarning`>

    - #### saveScenarioWarnings

          void saveScenarioWarnings(int scheduleID,
                                  java.util.List<SchScenarioWarning> warnings)

      Saves scenario warnings
      Parameters:
        `scheduleID` -
        `warnings` - A list of `SchScenarioWarning`

    - #### saveScenarioComments

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

      Saves scenario comments
      Parameters:
        `scheduleID` -
        `comments` -

    - #### renameScenario

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

      Renames schedule scenario
      Parameters:
        `scheduleID` -
        `name` -

    - #### deleteAgentFromScenario

          void deleteAgentFromScenario(int scheduleID,
                                     int siteID,
                                     java.util.List<java.lang.Integer> agentIDArray)

      Deletes specified agents and their schedules from the scenario
      Parameters:
        `scheduleID` -
        `siteID` -
        `agentIDArray` -

    - #### addAgentToScenario

          void addAgentToScenario(int scheduleID,
                                int siteID,
                                java.util.List<SchScenarioAgent> agentArray)

      Adds new agents to the scenario
      Parameters:
        `siteID` -
        `scheduleID` -
        `agentArray` - A list of `SchScenarioAgent`

    - #### addActivityToScenario

          void addActivityToScenario(int scheduleID,
                                   int siteID,
                                   java.util.List<java.lang.Integer> activityIDArray)

      Adds new activities to the scenario
      Parameters:
        `siteID` -
        `scheduleID` -
        `activityIDArray` -

    - #### setScenarioType

          void setScenarioType(int scheduleID,
                             int scenarioType)

      Sets new scenario type
      Parameters:
        `scheduleID` -
        `scenarioType` - `ESchScenarioType`

    - #### setScenarioForecast

          void setScenarioForecast(int scheduleID,
                                 int forecastID)

      Associates forecast with schedule scenario
      Parameters:
        `scheduleID` -
        `forecastID` -

    - #### readScenarioDBTimestamp

          long readScenarioDBTimestamp(int scheduleID)

      Returns scenario modification timestamp
      Parameters:
        `scheduleID` -
      Returns:
        returns long

    - #### publishSchedule

          java.lang.String publishSchedule(java.util.List<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. 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 `List`<`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

    - #### insertAgentState

          java.lang.String insertAgentState(int scheduleID,
                                          java.util.List<SchAgentState> states,
                                          boolean ignoreWarnings,
                                          boolean allOrNothing,
                                          boolean autoCommit)

      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
        `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

    - #### insertState

          java.lang.String insertState(int scheduleID,
                                     CfgAgentFilter agentFilter,
                                     CfgActivityFilter activityFilter,
                                     SchStateFilter stateFilter,
                                     java.util.List<SchState> states,
                                     int timezoneId,
                                     boolean ignoreWarnings,
                                     boolean allOrNothing,
                                     boolean autoCommit)

      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
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Agent filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `states` - An array of `SchState` to insert
        `timezoneId` - Time Zone ID. Identifies time zone used in states start/end times
        `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

    - #### deleteState

          java.lang.String deleteState(int scheduleID,
                                     CfgAgentFilter agentFilter,
                                     CfgActivityFilter activityFilter,
                                     SchStateFilter stateFilter,
                                     java.util.List<SchState> states,
                                     int timezoneId,
                                     boolean ignoreWarnings,
                                     boolean allOrNothing,
                                     boolean autoCommit)

      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)
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Agent filter `CfgActivityFilter`
        `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.
        `timezoneId` - Time Zone ID. Identifies time zone used in states start/end times
        `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

    - #### replaceState

          java.lang.String replaceState(int scheduleID,
                                      CfgAgentFilter agentFilter,
                                      CfgActivityFilter activityFilter,
                                      SchStateFilter stateFilter,
                                      SchState findState,
                                      SchState replaceWithState,
                                      int timezoneId,
                                      boolean ignoreWarnings,
                                      boolean allOrNothing,
                                      boolean autoCommit)

      Used to find one and replace with another schedule state for given agents. 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 (zero for Master Schedule)
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Agent filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `findState` - `SchState` state to find
        `replaceWithState` - `SchState` state to replace with
        `timezoneId` - Time Zone ID. Identifies time zone used in states start/end times
        `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

    - #### getRequestValidation

          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.
      Parameters:
        `requestID` - Asynchronous request ID
      Returns:
        `SchValidationHolder`

    - #### getPlanningPeriod

          java.util.List<SchPlanningPeriod> getPlanningPeriod(int scheduleID,
                                                            int siteID,
                                                            double startDate,
                                                            double endDate)

      Returns schedule planning period information
      Parameters:
        `scheduleID` -
        `siteID` -
        `startDate` -
        `endDate` -
      Returns:
        returns `List`<`SchPlanningPeriod`>

    - #### commitPendingAgentDay

          java.lang.String commitPendingAgentDay(int scheduleID,
                                               java.util.List<java.lang.Double> days,
                                               CfgAgentFilter agentFilter,
                                               CfgActivityFilter activityFilter,
                                               SchStateFilter stateFilter)

      Commits pending schedule
      Parameters:
        `scheduleID` -
        `days` -
        `agentFilter` -
        `activityFilter` -
        `stateFilter` -
      Returns:
        returns Async request ID

    - #### rollbackPendingAgentDay

          java.lang.String rollbackPendingAgentDay(int scheduleID,
                                                 java.util.List<java.lang.Double> days,
                                                 CfgAgentFilter agentFilter,
                                                 CfgActivityFilter activityFilter,
                                                 SchStateFilter stateFilter)

      Rolls back pending schedule
      Parameters:
        `days` -
        `agentFilter` -
        `activityFilter` -
        `scheduleID` -
        `stateFilter` -
      Returns:
        returns Async request ID

    - #### validatePendingAgentDayFromSnapshot

          SchValidationHolder validatePendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                                java.util.List<java.lang.Integer> indexArray)

      Validates pending schedule from snapshot
      Parameters:
        `schSnapshotID` -
        `indexArray` -
      Returns:
        returns `SchValidationHolder`

    - #### commitPendingAgentDayFromSnapshot

          java.lang.String commitPendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                           java.util.List<java.lang.Integer> indexArray)

      Commits pending schedule from snapshot
      Parameters:
        `schSnapshotID` -
        `indexArray` -
      Returns:
        returns Async request ID

    - #### rollbackPendingAgentDayFromSnapshot

          java.lang.String rollbackPendingAgentDayFromSnapshot(java.lang.String schSnapshotID,
                                                             java.util.List<java.lang.Integer> indexArray)

      Rolls back pending schedule from snapshot
      Parameters:
        `schSnapshotID` -
        `indexArray` -
      Returns:
        returns Async request ID

    - #### pollNotification

          SchNotification pollNotification(long timestamp,
                                         int siteID,
                                         java.util.List<java.lang.Integer> teamIDArray,
                                         java.util.List<java.lang.Integer> agentIDArray,
                                         double schStartDate,
                                         double schEndDate,
                                         int detailsLevel,
                                         SchAgentDayDetails schDetails,
                                         CfgAgentDetails cfgAgentDetails)

      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`
        `schDetails` - Schedule details `SchAgentDayDetails`
        `cfgAgentDetails` - Agent details `CfgAgentDetails`
      Returns:
        `SchNotification`

    - #### acknowledgeNotification

          void acknowledgeNotification(int siteID,
                                     long timestamp)

      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`

    - #### getAuditLogAsync

          java.lang.String getAuditLogAsync(int siteID,
                                          java.util.List<java.lang.Integer> teamIDArray,
                                          java.util.List<java.lang.Integer> agentIDArray,
                                          double schStartDate,
                                          double schEndDate,
                                          double actionStartDateTime,
                                          double actionEndDateTime,
                                          java.util.List<java.lang.Integer> actionTypes,
                                          java.util.List<java.lang.Integer> actionUsers,
                                          int detailsLevel,
                                          SchAgentDayDetails schDetails)

      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`
        `schDetails` - Schedule details `SchAgentDayDetails`
      Returns:
        Async request ID

    - #### getAuditLogResults

          SchAuditLog getAuditLogResults(java.lang.String requestID,
                                       SchAgentDayDetails schDetails,
                                       CfgAgentDetails cfgAgentDetails,
                                       boolean provideScenarioInfo,
                                       boolean provideUserInfo)

      Retrieves Audit Log that was requested asynchronously.
      Parameters:
        `requestID` - Async request ID that was returned by `getAuditLogAsync`.
        `schDetails` -
        `cfgAgentDetails` -
        `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:
        returns `SchAuditLog`

    - #### getAuditLogByID

          SchAuditLog getAuditLogByID(long auditID,
                                    int siteID,
                                    java.util.List<java.lang.Integer> teamIDArray,
                                    java.util.List<java.lang.Integer> agentIDArray,
                                    double schStartDate,
                                    double schEndDate,
                                    int detailsLevel,
                                    SchAgentDayDetails schDetails,
                                    CfgAgentDetails cfgAgentDetails,
                                    boolean provideScenarioInfo,
                                    boolean provideUserInfo)

      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`
        `schDetails` - `SchAgentDayDetails`
        `cfgAgentDetails` -
        `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:
        returns `SchAuditLog`

    - #### rollbackAuditTransaction

          long rollbackAuditTransaction(long auditID,
                                      int siteID,
                                      java.util.List<java.lang.Integer> teamIDArray,
                                      java.util.List<java.lang.Integer> agentIDArray,
                                      double schStartDate,
                                      double schEndDate)

      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

    - #### buildAgentDayInSnapshot

          SchAgentDayHolder buildAgentDayInSnapshot(java.lang.String schSnapshotID,
                                                  java.util.List<SchAgentDay> newSchedule,
                                                  java.util.List<SchAgentDay> modifiedSchedule,
                                                  java.util.List<SchWorkState> states,
                                                  boolean scheduleShiftItems,
                                                  SchAgentDayDetails schDetails)

      Builds complete schedule shifts with optimal break/meal distribution 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
        `states` - Work Sets to use (if any)
        `scheduleShiftItems` - Tells whether to auto-(re)schedule shift meals/breaks
        `schDetails` - `SchAgentDayDetails`
      Returns:
        returns `SchAgentDayHolder`

    - #### buildAgentDay

          SchAgentDayHolder buildAgentDay(int scheduleID,
                                        java.util.List<SchAgentDay> newSchedule,
                                        java.util.List<SchWorkState> states,
                                        int timezoneId,
                                        boolean scheduleShiftItems,
                                        SchAgentDayDetails schDetails)

      Builds complete schedule shifts with optimal break/meal distribution for the given schedule shifts
      Parameters:
        `scheduleID` - Schedule ID
        `newSchedule` - Schedule shifts that need to be built
        `states` - Work Sets to use (if any)
        `timezoneId` - Time zone ID, use zero for site time zone
        `scheduleShiftItems` - Tells whether to auto-(re)schedule shift meals/breaks
        `schDetails` - `SchAgentDayDetails`
      Returns:
        returns `SchAgentDayHolder`

    - #### scheduleMeeting

          SchValidationHolder scheduleMeeting(int scheduleID,
                                            CfgMeeting meeting,
                                            boolean ignoreWarnings,
                                            boolean autoCommit)

      Schedules meeting and saves it to the schedule database.
      Parameters:
        `scheduleID` - Scenario ID (0 value stands for Master Schedule)
        `meeting` - `CfgMeeting`
        `ignoreWarnings` - Tells whether warnings should be ignored or not. If not and there are warnings, then resulting schedules are saved as 'pending' schedules no matter what 'autoCommit' parameter is.
        `autoCommit` - Specifies whether to auto-commit the changes that are being made, or make them "pending".
      Returns:
        `SchValidationHolder`

    - #### scheduleMeetingAsync

          java.lang.String scheduleMeetingAsync(int scheduleID,
                                              int cfgMeetingID,
                                              double startDate,
                                              double endDate,
                                              boolean ignoreWarnings,
                                              boolean autoCommit)

      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)
        `cfgMeetingID` - Meeting ID
        `startDate` - Schedule range start
        `endDate` - Schedule range end
        `ignoreWarnings` - Tells whether warnings should be ignored or not. If not and there are warnings, then resulting schedules are saved as 'pending' schedules no matter what 'autoCommit' parameter is.
        `autoCommit` - Specifies whether to auto-commit the changes that are being made, or make them "pending".
      Returns:
        Asynchronous request ID

    - #### setBiddingParams

          void setBiddingParams(int scheduleID,
                              int siteID,
                              SchBiddingParams params)

      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`

    - #### getBiddingParams

          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.
      Parameters:
        `scheduleID` - Scenario ID
        `siteID` - Site ID
      Returns:
        `SchBiddingParams`

    - #### autoAssignProfileAgents

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

      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

    - #### getScenarioAgentInfo

          java.util.List<SchScenarioAgent> getScenarioAgentInfo(int scheduleID,
                                                              CfgAgentFilter agentFilter)

      Returns additional information related to scenario agents. `SchScenarioAgent`
      Parameters:
        `scheduleID` - Scenario ID
        `agentFilter` - `CfgAgentFilter`
      Returns:
        `List`<`SchScenarioAgent`>

    - #### setAgentBids

          void setAgentBids(int scheduleID,
                          int siteID,
                          java.util.List<java.lang.Integer> agentIDArray,
                          java.util.List<SchBid> bids)

      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`

    - #### getAgentBids

          java.util.List<SchBid> getAgentBids(int scheduleID,
                                            int siteID,
                                            java.util.List<java.lang.Integer> agentIDArray)

      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:
        returns `List`<`SchBid`>

    - #### validateScheduleAsync

          java.lang.String validateScheduleAsync(SchSource source,
                                               int scheduleID,
                                               double startDate,
                                               double endDate,
                                               CfgAgentFilter agentFilter,
                                               CfgActivityFilter activityFilter,
                                               SchStateFilter stateFilter)

      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
        `startDate` - Schedule range start date. `OleDateTime`
        `endDate` - Schedule range end date. `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
      Returns:
        Async-request ID

    - #### applyCalendarItemsAsync

          java.lang.String applyCalendarItemsAsync(int scheduleID,
                                                 double startDate,
                                                 double endDate,
                                                 CfgAgentFilter agentFilter,
                                                 CfgActivityFilter activityFilter,
                                                 SchStateFilter stateFilter,
                                                 boolean autoCommit)

      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
        `startDate` - Schedule range start date. `OleDateTime`
        `endDate` - Schedule range end date. `OleDateTime`
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `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

    - #### getStateGroupCoverage

          SchStateGroupCoverageHolder getStateGroupCoverage(SchSource source,
                                                          int scheduleID,
                                                          double startDate,
                                                          double endDate,
                                                          int timezoneId,
                                                          CfgAgentFilter agentFilter,
                                                          CfgActivityFilter activityFilter,
                                                          SchStateFilter stateFilter,
                                                          CfgStateGroupFilter stateGroupFilter,
                                                          int granularity)

      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)
        `startDate` - Period start date `OleDateTime`
        `endDate` - Period end date `OleDateTime`
        `timezoneId` - Time zone ID (can be zero)
        `agentFilter` - Agent filter `CfgAgentFilter`
        `activityFilter` - Activity filter `CfgActivityFilter`
        `stateFilter` - Schedule state filter `SchStateFilter`
        `stateGroupFilter` - State group filter `CfgStateGroupFilter`
        `granularity` - The granularity of the returned coverage `ESchGranularity`
      Returns:
        `SchStateGroupCoverageHolder`

    - #### getStateGroupCoverageFromSnapshot

          SchStateGroupCoverageHolder getStateGroupCoverageFromSnapshot(java.lang.String schSnapshotID,
                                                                      CfgStateGroupFilter stateGroupFilter,
                                                                      int granularity,
                                                                      java.util.List<SchAgentDay> modifiedSchedule)

      Calculates schedule state group coverage for every specified state group, taking schedules from the existing schedule snapshot.
      Parameters:
        `schSnapshotID` - Schedule snapshot ID
        `stateGroupFilter` - State Group filter
        `granularity` - The granularity of the returned coverage `ESchGranularity`
        `modifiedSchedule` - An array of agent schedule days that are not saved yet
      Returns:
        `SchStateGroupCoverageHolder`

    - #### assignProfileTeams

          void assignProfileTeams(int scheduleID,
                                int siteID,
                                java.util.List<SchTeamAssignment> assignments)

      Associates profile agents in a profile team with a real team
      Parameters:
        `scheduleID` - Schedule scenario ID
        `siteID` - Site ID
        `assignments` - `List`<`SchTeamAssignment`>

    - #### clearProfileTeamAssignments

          void clearProfileTeamAssignments(int scheduleID,
                                         int siteID,
                                         java.util.List<java.lang.Integer> teamIDArray)

      Disassociates profile agents associated a real team and returns them to the original profile team.
      Parameters:
        `scheduleID` - Schedule scenario ID
        `siteID` - Site ID
        `teamIDArray` - An array of real team IDs.

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