com.genesyslab.wfm8.API.service.calendar800

## Interface WFMCalendarService800Soap

- All Superinterfaces:
    java.rmi.Remote

      public interface WFMCalendarService800Soap
      extends java.rmi.Remote

  The WFM Calendar service provides the functionality to view, create, and modify calendar items for any loaded agent-day. A Major feature of the Calendar service is its ability to resolve priorities among calendar items. After Calendar rules are applied, each item for a given day takes on resolved status and can be correctly passed to the WFM scheduling engine. The Calendar service also provides information about agents' Time Off, including time off accrued, bonus, advance hours, reports granted, preferred, scheduled, and declined Time Off days (in hours) for each Time Off type. The service also calculates the Time Off hours balance for a day, or for a selected period. The Calendar works with agent availability patterns and availability preferences. Availability patterns provide functionality to create recurred availability preferences. Besides methods to create and modify availability patterns, the Calendar can also generate availability preferences based on created patterns.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `acknowledgeNotification(int siteID, int itemType, long timestamp)` Acknowledges to the server that notification was received and processed.
    `java.lang.String` | `asyncDeleteSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items)` Request to delete existing Calendar items.
    `java.lang.String` | `asyncEditSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Request to update Calendar items.
    `java.lang.String` | `asyncGetTimeOffLimits(int siteID, int target, int targetID, java.util.List<java.lang.Integer> types, double start, double end, int granularity)` Requests retrieval of Time Off limit values for specified target and date range.
    `java.util.List<CalLimitInformation>` | `asyncGetTimeOffLimitsRequestInformation(java.lang.String asyncRequestID)` Gets result of previous Time Off limit request.
    `java.lang.String` | `asyncInsertSnapshotCalendarItem(java.lang.String snapshotID, int accessLevel, CfgAgentFilter agentFilter, int timezoneID, java.util.List<java.lang.Double> dates, CalItemShortInformation newItem, boolean ignoreLimits)` Request insert of the same Calendar item for specified agents and dates to Calendar snapshot.
    `java.lang.String` | `asyncInsertSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Request insert of the same Calendar item for specified agents and dates to Calendar snapshot.
    `java.lang.String` | `asyncSetTimeOffLimits(java.util.List<CalLimitInformation> information)` Requests update of Time Off limits.
    `java.util.List<CalAgentDateTimeOffBalance>` | `calculateTimeOffBalance(int accessLevel, int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, java.util.List<java.lang.Double> dateArray, java.util.List<java.lang.Integer> timeOffIDArray, boolean adjustDateToLastCarryOverDate)` Calculates Time Off balance hours for the selected agents for given dates.
    `java.util.List<CalDateTimeOffBalanceInformation>` | `calculateTimeOffBalanceToDate(int accessLevel, int siteID, java.util.List<java.lang.Integer> teams, java.util.List<java.lang.Integer> agents, double date, java.util.List<java.lang.Integer> timeOffs)` Calculates Time Off balance hours for the selected target for given date.
    `java.util.List<CalDateTimeOffBalanceInformation>` | `calculateTimeOffCarryOverInformation(int accessLevel, int siteID, java.util.List<java.lang.Integer> teams, java.util.List<java.lang.Integer> agents, double date, java.util.List<java.lang.Integer> timeOffs)` Calculates Time Off carry-over date and carry-over hours for the specified target for given date (current date).
    `void` | `deleteAgentAvailabilityPatterns(int accessLevel, int siteId, int agentId, java.util.List<java.lang.Integer> patternIds)` Deletes specified Agent Availability Patterns.
    `void` | `deleteAgentTimeOffBonus(java.util.List<java.lang.Integer> agentTimeBonusIDArray)` Deletes existing agent Time off bonus
    `void` | `deleteAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)` Deletes existing Agent Time Off Rule record
    `void` | `deleteAgentUsedBonus(java.util.List<AgentUsedBonus> usedBonusArray)` Deletes existing used bonus record
    `CalValidationHolder` | `deleteCalendarItems(int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items)` Deletes existing calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `deleteSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items)` Delete specified Calendar items from snapshot.
    `void` | `editAgentTimeOffBonus(java.util.List<AgentTimeoffBonus> agentTimeBonusArray)` Edits existing agent Time off bonus
    `void` | `editAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)` Edits existing Agent Time Off Rule record
    `CalValidationHolder` | `editCalendarItems(int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Edits existing Calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `editSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Updates specified Calendar items in snapshot.
    `int` | `findAgentInSnapshot(java.lang.String snapshotID, int field, java.lang.String value, int startIndex)` Find first index of matching agent in Calendar snapshot.
    `void` | `generateAgentAvailabilityItems(int accessLevel, int siteId, int agentId, int patternId, double start, int numberOfDays, int status)` Generates Availability items from specified pattern starting from requested date.
    `java.util.List<CalAgentPatterns>` | `getAgentAvailabilityPatterns(int accessLevel, int siteId, int agentId)` Gets Availability Patterns configured for specified Agent.
    `java.util.List<AgentTimeoffBonus>` | `getAgentTimeOffBonus(CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, double start, double end, java.util.List<java.lang.Integer> timeOffIDArray, int sortMode, boolean sortAscending)` Retrieves agent time off bonuses for selected agents, time off types and date range.
    `java.util.List<AgentTimeOffIndicators>` | `getAgentTimeOffIndicators(CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, java.util.List<java.lang.Double> dates)` Returns Agent Time Off indicators/openings for requested dates.
    `java.util.List<AgentTimeoffRules>` | `getAgentTimeOffRules(CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, java.util.List<java.lang.Integer> timeOffIDArray, double start, double end, int sortMode, boolean sortAscending)` Retrieves agent time off rules for selected agents, time off types and date range.
    `java.util.List<SchAgentTotals>` | `getAgentTotals(SchSource source, int scheduleID, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, java.util.List<SchTotalsRequest> totalsRequest)`
    `java.util.List<AgentUsedBonus>` | `getAgentUsedBonus(java.util.List<java.lang.Integer> bonusIDArray)` Retrieves used bonus records for specified bonus IDs.
    `java.util.List<CalDateShift>` | `getAllShiftByAgentAndDateEx(int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, java.util.List<java.lang.Double> dateArray, int sortMode, boolean sortAscending)` Returns all configured shifts for specified agents.
    `CalData` | `getAsyncCalendarItemsData(java.lang.String asyncRequestID, CfgAgentDetails agentDetails)` Gets result of previous asynchronous request for Calendar data.
    `CalUpdatedSnapshot` | `getAsyncCalendarSnapshotUpdate(java.lang.String asyncRequestID)` Gets result of previous asynchronous request for Calendar snapshot update.
    `CalData` | `getCalendarItemsFromSnapshot(java.lang.String snapshotID, int startItem, int endItem, int request, CfgAgentDetails agentDetails)` Retrieve Calendar items from snapshot from index startItem to index endItem.
    `CalSnapshot` | `getCalendarSnapshotResult(java.lang.String requestID)` Gets result of previous asynchronous request for Calendar snapshot.
    `ShiftHolder` | `getShiftByAgentAndDateEx(int siteID, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, java.util.List<java.lang.Double> dateArray, int sortMode, boolean sortAscending)` Returns only shifts available for all specified agents.
    `java.util.List<CalTimeOffConfiguration>` | `getTimeOffConfiguration(int accessLevel, int siteID, java.util.List<java.lang.Integer> teams, java.util.List<java.lang.Integer> agents, java.util.List<java.lang.Integer> timeOffIDs)` Returns Time Off rule configuration for specified Time Off types and agents.
    `java.util.List<CalTimeOffInformation>` | `getTimeOffInformation(int accessLevel, int siteID, java.util.List<java.lang.Integer> teams, java.util.List<java.lang.Integer> agents, double date, java.util.List<java.lang.Integer> timeOffTypes)` Calculates and returns values of Agent Time Off balance information.
    `void` | `insertAgentTimeOffBonus(java.util.List<AgentTimeoffBonus> agentTimeBonusArray)` Inserts new agent Time off bonus
    `void` | `insertAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)` Inserts new Agent Time Off Rule record
    `void` | `insertAgentUsedBonus(java.util.List<AgentUsedBonus> usedBonusArray)` Inserts new used bonus record
    `CalValidationHolder` | `insertCalendarItems(int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Inserts new Calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `insertSnapshotCalendarItem(java.lang.String snapshotID, int accessLevel, CfgAgentFilter agentFilter, int timezoneID, java.util.List<java.lang.Double> dates, CalItemShortInformation newItem, boolean ignoreLimits)` Insert the same Calendar item for specified agents and dates to Calendar snapshot.
    `CalUpdatedSnapshot` | `insertSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, int timezoneID, java.util.List<CalItemShortInformation> items, boolean ignoreLimits)` Insert new Calendar items for specified agents and dates to Calendar snapshot.
    `CalSnapshot` | `openCalendarSnapshotForDates(int accessLevel, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, CfgAgentDetails agentDetails, int timezoneID, java.util.List<java.lang.Double> dates, int schScenarioID, CalFilter filter, CalSort sort)` Opens sorted and filtered snapshot of Calendar items for the specified agents and dates
    `java.lang.String` | `openCalendarSnapshotForDatesAsync(int accessLevel, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, int timezoneID, java.util.List<java.lang.Double> dates, int schScenarioID, CalFilter filter, CalSort sort)` Request to open sorted and filtered snapshot of Calendar items for the specified agents and dates
    `CalNotification` | `pollNotification(long timestamp, int siteID, int itemType, java.util.List<java.lang.Integer> teamIDArray, java.util.List<java.lang.Integer> agentIDArray, double calStartDate, double calEndDate, int detailsLevel, boolean provideAgentInfo)` Polls calendar data change notifications
    `CalData` | `queryCalendarItemsForDates(int accessLevel, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, CfgAgentDetails agentDetails, int timezoneID, java.util.List<java.lang.Double> dates, int schScenarioID, CalFilter filter, CalSort sort, int request)` Returns sorted and filtered array of Calendar items for the specified agents and dates.
    `java.lang.String` | `queryCalendarItemsForDatesAsync(int accessLevel, CfgAgentFilter agentFilter, CfgActivityFilter activityFilter, int timezoneID, java.util.List<java.lang.Double> dates, int schScenarioID, CalFilter filter, CalSort sort, int request)` Requests sorted and filtered array of Calendar items for the specified agents and dates.
    `void` | `setAgentAvailabilityPatterns(int accessLevel, int siteId, int agentId, java.util.List<CalAgentPatterns> patterns)` Modifies (creates new, updates existing) Agent Availability Patterns.
    `void` | `updateCalendarSnapshot(java.lang.String snapshotID, CalSort sort)` Updates existing Calendar snapshot (used to change sort order)

- - ### Method Detail

    - #### getShiftByAgentAndDateEx

          ShiftHolder getShiftByAgentAndDateEx(int siteID,
                                             java.util.List<java.lang.Integer> teamIDArray,
                                             java.util.List<java.lang.Integer> agentIDArray,
                                             java.util.List<java.lang.Double> dateArray,
                                             int sortMode,
                                             boolean sortAscending)
                                               throws java.rmi.RemoteException

      Returns only shifts available for all specified agents.
      Parameters:
        `siteID` - Site ID
        `teamIDArray` - Team ID array
        `agentIDArray` - Agent ID array
        `dateArray` - Requested dates
        `sortMode` - Sort criteria
        `sortAscending` - Ascending/Descending
      Returns:
        Shift information
      Throws:
        `java.rmi.RemoteException`

    - #### getAllShiftByAgentAndDateEx

          java.util.List<CalDateShift> getAllShiftByAgentAndDateEx(int siteID,
                                                                 java.util.List<java.lang.Integer> teamIDArray,
                                                                 java.util.List<java.lang.Integer> agentIDArray,
                                                                 java.util.List<java.lang.Double> dateArray,
                                                                 int sortMode,
                                                                 boolean sortAscending)
                                                                   throws java.rmi.RemoteException

      Returns all configured shifts for specified agents.
      Parameters:
        `siteID` - Site ID
        `teamIDArray` - Team ID array
        `agentIDArray` - Agent ID array
        `dateArray` - Requested dates
        `sortMode` - Sort criteria
        `sortAscending` - Ascending/Descending
      Returns:
        Shift information
      Throws:
        `java.rmi.RemoteException`

    - #### queryCalendarItemsForDatesAsync

          java.lang.String queryCalendarItemsForDatesAsync(int accessLevel,
                                                         CfgAgentFilter agentFilter,
                                                         CfgActivityFilter activityFilter,
                                                         int timezoneID,
                                                         java.util.List<java.lang.Double> dates,
                                                         int schScenarioID,
                                                         CalFilter filter,
                                                         CalSort sort,
                                                         int request)
                                                           throws java.rmi.RemoteException

      Requests sorted and filtered array of Calendar items for the specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Date array
        `schScenarioID` - Schedule scenario ID, 0 - Master (required for actual status resolution)
        `filter` - Filter options
        `sort` - Sort parameters
        `request` - Request flag to indicate required information.
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### getCalendarSnapshotResult

          CalSnapshot getCalendarSnapshotResult(java.lang.String requestID)
                                                throws java.rmi.RemoteException

      Gets result of previous asynchronous request for Calendar snapshot.
      Parameters:
        `requestID` - Async request ID
      Returns:
        Calendar snapshot information
      Throws:
        `java.rmi.RemoteException`

    - #### getAsyncCalendarItemsData

          CalData getAsyncCalendarItemsData(java.lang.String asyncRequestID,
                                          CfgAgentDetails agentDetails)
                                            throws java.rmi.RemoteException

      Gets result of previous asynchronous request for Calendar data.
      Parameters:
        `asyncRequestID` - Async request ID
        `agentDetails` - Configuration information detail level `CfgAgentDetails`
      Returns:
        Calendar items information
      Throws:
        `java.rmi.RemoteException`

    - #### getAsyncCalendarSnapshotUpdate

          CalUpdatedSnapshot getAsyncCalendarSnapshotUpdate(java.lang.String asyncRequestID)
                                                            throws java.rmi.RemoteException

      Gets result of previous asynchronous request for Calendar snapshot update.
      Parameters:
        `asyncRequestID` - Async request ID
      Returns:
        Updated Calendar snapshot information
      Throws:
        `java.rmi.RemoteException`

    - #### asyncInsertSnapshotCalendarItem

          java.lang.String asyncInsertSnapshotCalendarItem(java.lang.String snapshotID,
                                                         int accessLevel,
                                                         CfgAgentFilter agentFilter,
                                                         int timezoneID,
                                                         java.util.List<java.lang.Double> dates,
                                                         CalItemShortInformation newItem,
                                                         boolean ignoreLimits)
                                                           throws java.rmi.RemoteException

      Request insert of the same Calendar item for specified agents and dates to Calendar snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Requested dates
        `newItem` - New Calendar item (agent and date information ignored and taken from agents and dates parameters)
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### insertSnapshotCalendarItem

          CalUpdatedSnapshot insertSnapshotCalendarItem(java.lang.String snapshotID,
                                                      int accessLevel,
                                                      CfgAgentFilter agentFilter,
                                                      int timezoneID,
                                                      java.util.List<java.lang.Double> dates,
                                                      CalItemShortInformation newItem,
                                                      boolean ignoreLimits)
                                                        throws java.rmi.RemoteException

      Insert the same Calendar item for specified agents and dates to Calendar snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Requested dates
        `newItem` - New Calendar item (agent and date information ignored and taken from agents and dates parameters)
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Snapshot update information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### insertCalendarItems

          CalValidationHolder insertCalendarItems(int accessLevel,
                                                int siteID,
                                                int timezoneID,
                                                java.util.List<CalItemShortInformation> items,
                                                boolean ignoreLimits)
                                                  throws java.rmi.RemoteException

      Inserts new Calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agent and date information is provided here.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Arrays of error and warning information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncInsertSnapshotCalendarItems

          java.lang.String asyncInsertSnapshotCalendarItems(java.lang.String snapshotID,
                                                          int accessLevel,
                                                          int siteID,
                                                          int timezoneID,
                                                          java.util.List<CalItemShortInformation> items,
                                                          boolean ignoreLimits)
                                                            throws java.rmi.RemoteException

      Request insert of the same Calendar item for specified agents and dates to Calendar snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### insertSnapshotCalendarItems

          CalUpdatedSnapshot insertSnapshotCalendarItems(java.lang.String snapshotID,
                                                       int accessLevel,
                                                       int siteID,
                                                       int timezoneID,
                                                       java.util.List<CalItemShortInformation> items,
                                                       boolean ignoreLimits)
                                                         throws java.rmi.RemoteException

      Insert new Calendar items for specified agents and dates to Calendar snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Updated snapshot information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### editCalendarItems

          CalValidationHolder editCalendarItems(int accessLevel,
                                              int siteID,
                                              int timezoneID,
                                              java.util.List<CalItemShortInformation> items,
                                              boolean ignoreLimits)
                                                throws java.rmi.RemoteException

      Edits existing Calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Arrays of error and warnings information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncEditSnapshotCalendarItems

          java.lang.String asyncEditSnapshotCalendarItems(java.lang.String snapshotID,
                                                        int accessLevel,
                                                        int siteID,
                                                        int timezoneID,
                                                        java.util.List<CalItemShortInformation> items,
                                                        boolean ignoreLimits)
                                                          throws java.rmi.RemoteException

      Request to update Calendar items.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`

    - #### editSnapshotCalendarItems

          CalUpdatedSnapshot editSnapshotCalendarItems(java.lang.String snapshotID,
                                                     int accessLevel,
                                                     int siteID,
                                                     int timezoneID,
                                                     java.util.List<CalItemShortInformation> items,
                                                     boolean ignoreLimits)
                                                       throws java.rmi.RemoteException

      Updates specified Calendar items in snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
        `ignoreLimits` - true/false and specifies weather to ignore limit if limit is violated
      Returns:
        Updated Calendar snapshot information
      Throws:
        `java.rmi.RemoteException`

    - #### deleteCalendarItems

          CalValidationHolder deleteCalendarItems(int accessLevel,
                                                int siteID,
                                                int timezoneID,
                                                java.util.List<CalItemShortInformation> items)
                                                  throws java.rmi.RemoteException

      Deletes existing calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
      Returns:
        Arrays of error and warnings information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncDeleteSnapshotCalendarItems

          java.lang.String asyncDeleteSnapshotCalendarItems(java.lang.String snapshotID,
                                                          int accessLevel,
                                                          int siteID,
                                                          int timezoneID,
                                                          java.util.List<CalItemShortInformation> items)
                                                            throws java.rmi.RemoteException

      Request to delete existing Calendar items.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`

    - #### deleteSnapshotCalendarItems

          CalUpdatedSnapshot deleteSnapshotCalendarItems(java.lang.String snapshotID,
                                                       int accessLevel,
                                                       int siteID,
                                                       int timezoneID,
                                                       java.util.List<CalItemShortInformation> items)
                                                         throws java.rmi.RemoteException

      Delete specified Calendar items from snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `accessLevel` - Agent/Supervisor
        `siteID` - Site ID
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `items` - Array of item information. Agents and dates information are provided here. In order to modify Exception or Time Off items, you need to set the itemID.
      Returns:
        Updated Calendar snapshot information
      Throws:
        `java.rmi.RemoteException`

    - #### queryCalendarItemsForDates

          CalData queryCalendarItemsForDates(int accessLevel,
                                           CfgAgentFilter agentFilter,
                                           CfgActivityFilter activityFilter,
                                           CfgAgentDetails agentDetails,
                                           int timezoneID,
                                           java.util.List<java.lang.Double> dates,
                                           int schScenarioID,
                                           CalFilter filter,
                                           CalSort sort,
                                           int request)
                                             throws java.rmi.RemoteException

      Returns sorted and filtered array of Calendar items for the specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `agentDetails` - Configuration information detail level `CfgAgentDetails`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Date array
        `schScenarioID` - Schedule scenario ID, 0 - Master (required for actual status resolution)
        `filter` - Filter options
        `sort` - Sort parameters
        `request` - Request flag to indicate required information.
      Returns:
        Calendar items information and data indicators for each date in requested period and for specified target. Includes basic related agent information.
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### openCalendarSnapshotForDates

          CalSnapshot openCalendarSnapshotForDates(int accessLevel,
                                                 CfgAgentFilter agentFilter,
                                                 CfgActivityFilter activityFilter,
                                                 CfgAgentDetails agentDetails,
                                                 int timezoneID,
                                                 java.util.List<java.lang.Double> dates,
                                                 int schScenarioID,
                                                 CalFilter filter,
                                                 CalSort sort)
                                                   throws java.rmi.RemoteException

      Opens sorted and filtered snapshot of Calendar items for the specified agents and dates
      Parameters:
        `accessLevel` - User access level
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `agentDetails` - Configuration information detail level `CfgAgentDetails`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Date array
        `schScenarioID` - Schedule scenario ID, 0 - Master (required for actual status resolution)
        `filter` - Filter options
        `sort` - Sort parameters
      Returns:
        Calendar snapshot information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### openCalendarSnapshotForDatesAsync

          java.lang.String openCalendarSnapshotForDatesAsync(int accessLevel,
                                                           CfgAgentFilter agentFilter,
                                                           CfgActivityFilter activityFilter,
                                                           int timezoneID,
                                                           java.util.List<java.lang.Double> dates,
                                                           int schScenarioID,
                                                           CalFilter filter,
                                                           CalSort sort)
                                                             throws java.rmi.RemoteException

      Request to open sorted and filtered snapshot of Calendar items for the specified agents and dates
      Parameters:
        `accessLevel` - User access level
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `timezoneID` - Required timezone ID, 0 - local (item) timezone
        `dates` - Date array
        `schScenarioID` - Schedule scenario ID, 0 - Master (required for actual status resolution)
        `filter` - Filter options
        `sort` - Sort parameters
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### updateCalendarSnapshot

          void updateCalendarSnapshot(java.lang.String snapshotID,
                                    CalSort sort)
                                      throws java.rmi.RemoteException

      Updates existing Calendar snapshot (used to change sort order)
      Parameters:
        `snapshotID` - Snapshot ID
        `sort` - Sort criteria
      Throws:
        `java.rmi.RemoteException`

    - #### findAgentInSnapshot

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

      Find first index of matching agent in Calendar snapshot.
      Parameters:
        `snapshotID` - Snapshot ID
        `field` - Agent properties indicator (ECfgAgentField)
        `value` - Property value
        `startIndex` - Search start index
      Returns:
        Index in snapshot, -1 not found
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECfgAgentField`

    - #### getCalendarItemsFromSnapshot

          CalData getCalendarItemsFromSnapshot(java.lang.String snapshotID,
                                             int startItem,
                                             int endItem,
                                             int request,
                                             CfgAgentDetails agentDetails)
                                               throws java.rmi.RemoteException

      Retrieve Calendar items from snapshot from index startItem to index endItem.
      Parameters:
        `snapshotID` - Snapshot ID
        `startItem` - Start index
        `endItem` - End index
        `request` - Request flag to indicate required information.
        `agentDetails` - Configuration information detail level `CfgAgentDetails`
      Returns:
        Calendar items information
      Throws:
        `java.rmi.RemoteException`

    - #### getTimeOffConfiguration

          java.util.List<CalTimeOffConfiguration> getTimeOffConfiguration(int accessLevel,
                                                                        int siteID,
                                                                        java.util.List<java.lang.Integer> teams,
                                                                        java.util.List<java.lang.Integer> agents,
                                                                        java.util.List<java.lang.Integer> timeOffIDs)
                                                                          throws java.rmi.RemoteException

      Returns Time Off rule configuration for specified Time Off types and agents.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `teams` - Team ID(s)
        `agents` - Agent ID(s)
        `timeOffIDs` - Time Off type ID(s)
      Returns:
        Time Off rule configuration
      Throws:
        `java.rmi.RemoteException`

    - #### calculateTimeOffBalanceToDate

          java.util.List<CalDateTimeOffBalanceInformation> calculateTimeOffBalanceToDate(int accessLevel,
                                                                                       int siteID,
                                                                                       java.util.List<java.lang.Integer> teams,
                                                                                       java.util.List<java.lang.Integer> agents,
                                                                                       double date,
                                                                                       java.util.List<java.lang.Integer> timeOffs)
                                                                                         throws java.rmi.RemoteException

      Calculates Time Off balance hours for the selected target for given date.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `teams` - Team ID(s)
        `agents` - Agent ID(s)
        `date` - Requested date
        `timeOffs` - Time Off types array - filter, empty = all types
      Returns:
        Calculated balance for date
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### getTimeOffInformation

          java.util.List<CalTimeOffInformation> getTimeOffInformation(int accessLevel,
                                                                    int siteID,
                                                                    java.util.List<java.lang.Integer> teams,
                                                                    java.util.List<java.lang.Integer> agents,
                                                                    double date,
                                                                    java.util.List<java.lang.Integer> timeOffTypes)
                                                                      throws java.rmi.RemoteException

      Calculates and returns values of Agent Time Off balance information. Balance hours, granted, preferred, declined, and scheduled Time Off hours, partial-day vacation hours, accrued hours, bonus hours, carried-over hours, and advance hours are all parts of the Time Off balance and will be returned too.
      Parameters:
        `accessLevel` - - User access level
        `siteID` - Site ID
        `teams` - Team ID(s)
        `agents` - Agent ID(s)
        `timeOffTypes` - Time Off types array - filter, empty = all types
      Returns:
        Time Off information for the date
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### calculateTimeOffCarryOverInformation

          java.util.List<CalDateTimeOffBalanceInformation> calculateTimeOffCarryOverInformation(int accessLevel,
                                                                                              int siteID,
                                                                                              java.util.List<java.lang.Integer> teams,
                                                                                              java.util.List<java.lang.Integer> agents,
                                                                                              double date,
                                                                                              java.util.List<java.lang.Integer> timeOffs)
                                                                                                throws java.rmi.RemoteException

      Calculates Time Off carry-over date and carry-over hours for the specified target for given date (current date).
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `teams` - Team ID(s)
        `agents` - Agent ID(s)
        `timeOffs` - Time Off types array - filter, empty = all types
      Returns:
        Array of calculated carry-over dates and hours for each agent in specified target.
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### getAgentAvailabilityPatterns

          java.util.List<CalAgentPatterns> getAgentAvailabilityPatterns(int accessLevel,
                                                                      int siteId,
                                                                      int agentId)
                                                                        throws java.rmi.RemoteException

      Gets Availability Patterns configured for specified Agent.
      Parameters:
        `accessLevel` - User access level
        `siteId` - Site ID
        `agentId` - Agent ID
      Returns:
        Availability Pattern information
      Throws:
        `java.rmi.RemoteException`

    - #### setAgentAvailabilityPatterns

          void setAgentAvailabilityPatterns(int accessLevel,
                                          int siteId,
                                          int agentId,
                                          java.util.List<CalAgentPatterns> patterns)
                                            throws java.rmi.RemoteException

      Modifies (creates new, updates existing) Agent Availability Patterns.
      Parameters:
        `accessLevel` - User access level
        `siteId` - Site ID
        `agentId` - Agent ID
        `patterns` - New/Updated Agent Availability Patterns
      Throws:
        `java.rmi.RemoteException`

    - #### deleteAgentAvailabilityPatterns

          void deleteAgentAvailabilityPatterns(int accessLevel,
                                             int siteId,
                                             int agentId,
                                             java.util.List<java.lang.Integer> patternIds)
                                               throws java.rmi.RemoteException

      Deletes specified Agent Availability Patterns.
      Parameters:
        `accessLevel` - User access level
        `siteId` - Site ID
        `agentId` - Agent ID
        `patternIds` - Pattern ID(s)
      Throws:
        `java.rmi.RemoteException`

    - #### generateAgentAvailabilityItems

          void generateAgentAvailabilityItems(int accessLevel,
                                            int siteId,
                                            int agentId,
                                            int patternId,
                                            double start,
                                            int numberOfDays,
                                            int status)
                                              throws java.rmi.RemoteException

      Generates Availability items from specified pattern starting from requested date.
      Parameters:
        `accessLevel` - User access level
        `siteId` - Site ID
        `agentId` - Agent ID
        `patternId` - Pattern ID
        `start` - Start Date
        `numberOfDays` - Number of days
        `status` - Initial generated Availability status
      Throws:
        `java.rmi.RemoteException`

    - #### asyncGetTimeOffLimits

          java.lang.String asyncGetTimeOffLimits(int siteID,
                                               int target,
                                               int targetID,
                                               java.util.List<java.lang.Integer> types,
                                               double start,
                                               double end,
                                               int granularity)
                                                 throws java.rmi.RemoteException

      Requests retrieval of Time Off limit values for specified target and date range. Time Off limits can be daily and timestep (granularity)
      Parameters:
        `siteID` - Site ID
        `target` - Target level (ECalLimitTarget)
        `targetID` - Target ID
        `types` - Limit types (ECalLimitType)
        `start` - Start Date
        `end` - Start Date
        `granularity` - Daily/Timestep
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalLimitTarget`, `ECalLimitType`

    - #### asyncSetTimeOffLimits

          java.lang.String asyncSetTimeOffLimits(java.util.List<CalLimitInformation> information)
                                                 throws java.rmi.RemoteException

      Requests update of Time Off limits.
      Parameters:
        `information` - Limit information
      Returns:
        Async request ID
      Throws:
        `java.rmi.RemoteException`

    - #### asyncGetTimeOffLimitsRequestInformation

          java.util.List<CalLimitInformation> asyncGetTimeOffLimitsRequestInformation(java.lang.String asyncRequestID)
                                                                                      throws java.rmi.RemoteException

      Gets result of previous Time Off limit request.
      Parameters:
        `asyncRequestID` - Async request ID
      Returns:
        Limit information
      Throws:
        `java.rmi.RemoteException`

    - #### pollNotification

          CalNotification pollNotification(long timestamp,
                                         int siteID,
                                         int itemType,
                                         java.util.List<java.lang.Integer> teamIDArray,
                                         java.util.List<java.lang.Integer> agentIDArray,
                                         double calStartDate,
                                         double calEndDate,
                                         int detailsLevel,
                                         boolean provideAgentInfo)
                                           throws java.rmi.RemoteException

      Polls calendar data change notifications
      Parameters:
        `timestamp` - A timestamp value to use as a baseline for notifications. A timestamp value to use as a baseline for notifications. A zero value implies current moment and negative value tells server to use last acknowledged timestamp as a baseline.
        `siteID` - Site ID. A negative ID can be used to track changes for all sites.
        `itemType` - A calendar item type `ECalItems` to track changes for. Use CAL_ITEM_UNKNOWN type value to request notification for all item types.
        `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".
        `calStartDate` - Start date of calendar data range that needs to be tracked for changes. `OleDateTime`
        `calEndDate` - End date of calendar data range that needs to be tracked for changes. `OleDateTime`
        `detailsLevel` - Notification details level `ECalAuditLevel`
        `provideAgentInfo` - Tells whether to provide short agent information about every unique agent in response.
      Returns:
        `CalNotification`
      Throws:
        `java.rmi.RemoteException`

    - #### acknowledgeNotification

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

      Acknowledges to the server that notification was received and processed. See also `pollNotification(long, int, int, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, double, double, int, boolean)`.
      Parameters:
        `siteID` - Site ID
        `itemType` - An item type from `CalNotification` returned by `pollNotification(long, int, int, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, double, double, int, boolean)`
        `timestamp` - A timestamp value from `CalNotification` returned by `pollNotification(long, int, int, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, double, double, int, boolean)`
      Throws:
        `java.rmi.RemoteException`

    - #### getAgentTotals

          java.util.List<SchAgentTotals> getAgentTotals(SchSource source,
                                                      int scheduleID,
                                                      CfgAgentFilter agentFilter,
                                                      CfgActivityFilter activityFilter,
                                                      java.util.List<SchTotalsRequest> totalsRequest)
                                                        throws java.rmi.RemoteException

      Parameters:
        `source` -
        `scheduleID` -
        `agentFilter` -
        `activityFilter` -
        `totalsRequest` -
      Returns:
        Schedule agent totals info
      Throws:
        `java.rmi.RemoteException`

    - #### getAgentTimeOffIndicators

          java.util.List<AgentTimeOffIndicators> getAgentTimeOffIndicators(CfgAgentFilter agentFilter,
                                                                         CfgActivityFilter activityFilter,
                                                                         java.util.List<java.lang.Double> dates)
                                                                           throws java.rmi.RemoteException

      Returns Agent Time Off indicators/openings for requested dates.
      Parameters:
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `dates` - Date array
      Returns:
        Agent Time Off indicators for dates
      Throws:
        `java.rmi.RemoteException`

    - #### calculateTimeOffBalance

          java.util.List<CalAgentDateTimeOffBalance> calculateTimeOffBalance(int accessLevel,
                                                                           int siteID,
                                                                           java.util.List<java.lang.Integer> teamIDArray,
                                                                           java.util.List<java.lang.Integer> agentIDArray,
                                                                           java.util.List<java.lang.Double> dateArray,
                                                                           java.util.List<java.lang.Integer> timeOffIDArray,
                                                                           boolean adjustDateToLastCarryOverDate)
                                                                             throws java.rmi.RemoteException

      Calculates Time Off balance hours for the selected agents for given dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `teamIDArray` - Team ID(s)
        `agentIDArray` - Agent ID(s)
        `dateArray` - Requested dates
        `timeOffIDArray` - Time Off types array
        `adjustDateToLastCarryOverDate` - Specifies whether date should be adjusted to last carry-over date
      Returns:
        Calculated balance(s)
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### getAgentTimeOffBonus

          java.util.List<AgentTimeoffBonus> getAgentTimeOffBonus(CfgAgentFilter agentFilter,
                                                               CfgActivityFilter activityFilter,
                                                               double start,
                                                               double end,
                                                               java.util.List<java.lang.Integer> timeOffIDArray,
                                                               int sortMode,
                                                               boolean sortAscending)

      Retrieves agent time off bonuses for selected agents, time off types and date range.
      Parameters:
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `sortMode` - Sort mode
        `start` - Range start date
        `end` - Range end date
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `sortAscending` - Ascending/Descending
        `timeOffIDArray` - Time Off type IDs
      Returns:
        Agent Time Off Bonus array `AgentTimeoffBonus`

    - #### insertAgentTimeOffBonus

          void insertAgentTimeOffBonus(java.util.List<AgentTimeoffBonus> agentTimeBonusArray)

      Inserts new agent Time off bonus
      Parameters:
        `agentTimeBonusArray` - Agent Time Off Bonus array `AgentTimeoffBonus`

    - #### editAgentTimeOffBonus

          void editAgentTimeOffBonus(java.util.List<AgentTimeoffBonus> agentTimeBonusArray)

      Edits existing agent Time off bonus
      Parameters:
        `agentTimeBonusArray` - Agent Time Off Bonus array

    - #### deleteAgentTimeOffBonus

          void deleteAgentTimeOffBonus(java.util.List<java.lang.Integer> agentTimeBonusIDArray)

      Deletes existing agent Time off bonus
      Parameters:
        `agentTimeBonusIDArray` - Bonus ID array

    - #### getAgentTimeOffRules

          java.util.List<AgentTimeoffRules> getAgentTimeOffRules(CfgAgentFilter agentFilter,
                                                               CfgActivityFilter activityFilter,
                                                               java.util.List<java.lang.Integer> timeOffIDArray,
                                                               double start,
                                                               double end,
                                                               int sortMode,
                                                               boolean sortAscending)

      Retrieves agent time off rules for selected agents, time off types and date range.
      Parameters:
        `agentFilter` - Agent Filter `CfgAgentFilter`
        `sortMode` - Sort mode
        `start` - Range start date
        `end` - Range end date
        `activityFilter` - Activity Filter `CfgActivityFilter`
        `sortAscending` - Ascending/Descending
        `timeOffIDArray` - Time Off type IDs
      Returns:
        Agent Time Off Rules array `AgentTimeoffRules`

    - #### insertAgentTimeOffRules

          void insertAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)

      Inserts new Agent Time Off Rule record
      Parameters:
        `agentTimeOffRulesArray` - Agent Time Off Rules array `AgentTimeoffRules`

    - #### editAgentTimeOffRules

          void editAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)

      Edits existing Agent Time Off Rule record
      Parameters:
        `agentTimeOffRulesArray` - Agent Time Off Rules array

    - #### deleteAgentTimeOffRules

          void deleteAgentTimeOffRules(java.util.List<AgentTimeoffRules> agentTimeOffRulesArray)

      Deletes existing Agent Time Off Rule record
      Parameters:
        `agentTimeOffRulesArray` - Agent Time Off Rules array

    - #### getAgentUsedBonus

          java.util.List<AgentUsedBonus> getAgentUsedBonus(java.util.List<java.lang.Integer> bonusIDArray)

      Retrieves used bonus records for specified bonus IDs.
      Parameters:
        `bonusIDArray` - Bonus ID array
      Returns:
        Used Bonus array `AgentUsedBonus`

    - #### insertAgentUsedBonus

          void insertAgentUsedBonus(java.util.List<AgentUsedBonus> usedBonusArray)

      Inserts new used bonus record
      Parameters:
        `usedBonusArray` - Used Bonus array `AgentUsedBonus`

    - #### deleteAgentUsedBonus

          void deleteAgentUsedBonus(java.util.List<AgentUsedBonus> usedBonusArray)

      Deletes existing used bonus record
      Parameters:
        `usedBonusArray` - Used Bonus array

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