com.genesyslab.wfm7.API.service.calendar720

## Interface WFMCalendarService720Soap

- All Superinterfaces:
    java.rmi.Remote

      public interface WFMCalendarService720Soap
      extends java.rmi.Remote

  WFM Calendar service provides functionality to view, create and modify calendar items for any loaded agent-day. Major feature of Calendar service is priority resolution between calendar items. After Calendar rules are applied each item for a day has resolved status and can be correctly passed to WFM scheduling engine. The Calendar provides additional information about agent's Time Offs like accrued, bonus, advance hours, reports granted, preferred, scheduled and declined Time Off days (in hours) for each Time Off type. It also calculates Time Off hours balance for a day and 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 also can 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, CalItemShortInformation[] items)`
    `java.lang.String` | `asyncEditSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, CalItemShortInformation[] items)`
    `java.lang.String` | `asyncGetTimeOffLimits(int siteID, int target, int targetID, int[] types, double start, double end, int granularity)`
    `CalLimitInformation[]` | `asyncGetTimeOffLimitsRequestInformation(java.lang.String asyncRequestID)`
    `java.lang.String` | `asyncInsertSnapshotCalendarItem(java.lang.String snapshotID, int accessLevel, int siteID, int[] teams, int[] agents, double[] dates, int itemType, int itemTypeID, double startTime, double endTime, int savedStatus, java.lang.String comment)`
    `java.lang.String` | `asyncInsertSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, CalItemShortInformation[] items)`
    `java.lang.String` | `asyncQueryCalendarItems(ECalAccessLevels accessLevel, int[] sites, int[] teams, int[] agents, double start, double end, CalFilter filter, CalSort sort, int request)`
    `java.lang.String` | `asyncSetTimeOffLimits(CalLimitInformation[] information)`
    `CalDateTimeOffBalanceInformation[]` | `calculateTimeOffBalanceToDate(int accessLevel, int siteID, int[] teams, int[] agents, double date, int[] timeOffTypes)` Calculates Time Off balance hours for the selected target for given date.
    `CalDateTimeOffBalanceInformation[]` | `calculateTimeOffCarryOverInformation(int accessLevel, int siteID, int[] teams, int[] agents, double date, int[] 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, int[] patternIds)`
    `CalItemError[]` | `deleteCalendarItems(int accessLevel, int siteID, CalItemShortInformation[] items)` Deletes existing calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `deleteSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, CalItemShortInformation[] items)`
    `CalItemError[]` | `editCalendarItems(int accessLevel, int siteID, CalItemShortInformation[] items)` Edits existing calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `editSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, CalItemShortInformation[] items)`
    `int` | `findAgentInSnapshot(java.lang.String snapshotID, int field, java.lang.String value, int startIndex)`
    `void` | `generateAgentAvailabilityItems(int accessLevel, int siteId, int agentId, int patternId, double start, int numberOfDays, int status)`
    `CalAgentPatterns[]` | `getAgentAvailabilityPatterns(int accessLevel, int siteId, int agentId)`
    `CalDateShift[]` | `getAllShiftByAgentAndDateEx(int siteID, int[] teamIDArray, int[] agentIDArray, double[] dateArray, int sortMode, boolean sortAscending)`
    `CalData` | `getAsyncCalendarItemsData(java.lang.String asyncRequestID)`
    `CalUpdatedSnapshot` | `getAsyncCalendarSnapshotUpdate(java.lang.String asyncRequestID)`
    `CalData` | `getCalendarItemsFromSnapshot(java.lang.String snapshotId, int startItem, int endItem, int request)`
    `CalSnapshot` | `getCalendarSnapshotResult(java.lang.String requestID)`
    `ShiftHolder` | `getShiftByAgentAndDateEx(int siteID, int[] teamIDArray, int[] agentIDArray, double[] dateArray, int sortMode, boolean sortAscending)`
    `CalTimeOffConfiguration[]` | `getTimeOffConfiguration(int accessLevel, int siteID, int[] teams, int[] agents, int[] timeOffIDs)`
    `CalTimeOffInformation[]` | `getTimeOffInformation(int accessLevel, int siteID, int[] teams, int[] agents, double date, int[] timeOffTypes)` Calculates and returns values of Agent Time Off balance information.
    `CalItemError[]` | `insertCalendarItems(int accessLevel, int siteID, CalItemShortInformation[] items)` Inserts new calendar items for specified agents and dates.
    `CalUpdatedSnapshot` | `insertSnapshotCalendarItem(java.lang.String snapshotID, int accessLevel, int siteID, int[] teams, int[] agents, double[] dates, int itemType, int itemTypeID, double startTime, double endTime, int savedStatus, java.lang.String comment)`
    `CalUpdatedSnapshot` | `insertSnapshotCalendarItems(java.lang.String snapshotID, int accessLevel, int siteID, CalItemShortInformation[] items)`
    `CalSnapshot` | `openCalendarSnapshot(int accessLevel, int[] sites, int[] teams, int[] agents, double start, double end, CalFilter filter, CalSort sort)`
    `java.lang.String` | `openCalendarSnapshotAsync(int accessLevel, int[] sites, int[] teams, int[] agents, double start, double end, CalFilter filter, CalSort sort)`
    `CalSnapshot` | `openCalendarSnapshotForDates(int accessLevel, int[] sites, int[] teams, int[] agents, double[] dates, CalFilter filter, CalSort sort)`
    `java.lang.String` | `openCalendarSnapshotForDatesAsync(int accessLevel, int[] sites, int[] teams, int[] agents, double[] dates, CalFilter filter, CalSort sort)`
    `CalNotification` | `pollNotification(long timestamp, int siteID, int itemType, int[] teamIDArray, int[] agentIDArray, double calStartDate, double calEndDate, int detailsLevel, boolean provideAgentInfo)` Polls calendar data change notifications
    `CalData` | `queryCalendarItems(int accessLevel, int[] sites, int[] teams, int[] agents, double start, double end, CalFilter filter, CalSort sort, int request)` Returns sorted and filtered array of Calendar items for the specified target, and date range.
    `void` | `setAgentAvailabilityPatterns(int accessLevel, int siteId, int agentId, CalAgentPatterns[] patterns)`
    `void` | `updateCalendarSnapshot(java.lang.String snapshotId, CalSort sort)`

- - ### Method Detail

    - #### getShiftByAgentAndDateEx

          ShiftHolder getShiftByAgentAndDateEx(int siteID,
                                             int[] teamIDArray,
                                             int[] agentIDArray,
                                             double[] dateArray,
                                             int sortMode,
                                             boolean sortAscending)
                                               throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getAllShiftByAgentAndDateEx

          CalDateShift[] getAllShiftByAgentAndDateEx(int siteID,
                                                   int[] teamIDArray,
                                                   int[] agentIDArray,
                                                   double[] dateArray,
                                                   int sortMode,
                                                   boolean sortAscending)
                                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### asyncQueryCalendarItems

          java.lang.String asyncQueryCalendarItems(ECalAccessLevels accessLevel,
                                                 int[] sites,
                                                 int[] teams,
                                                 int[] agents,
                                                 double start,
                                                 double end,
                                                 CalFilter filter,
                                                 CalSort sort,
                                                 int request)
                                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### getCalendarSnapshotResult

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

      Throws:
        `java.rmi.RemoteException`

    - #### getAsyncCalendarItemsData

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

      Throws:
        `java.rmi.RemoteException`

    - #### getAsyncCalendarSnapshotUpdate

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

      Throws:
        `java.rmi.RemoteException`

    - #### asyncInsertSnapshotCalendarItem

          java.lang.String asyncInsertSnapshotCalendarItem(java.lang.String snapshotID,
                                                         int accessLevel,
                                                         int siteID,
                                                         int[] teams,
                                                         int[] agents,
                                                         double[] dates,
                                                         int itemType,
                                                         int itemTypeID,
                                                         double startTime,
                                                         double endTime,
                                                         int savedStatus,
                                                         java.lang.String comment)
                                                           throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### insertSnapshotCalendarItem

          CalUpdatedSnapshot insertSnapshotCalendarItem(java.lang.String snapshotID,
                                                      int accessLevel,
                                                      int siteID,
                                                      int[] teams,
                                                      int[] agents,
                                                      double[] dates,
                                                      int itemType,
                                                      int itemTypeID,
                                                      double startTime,
                                                      double endTime,
                                                      int savedStatus,
                                                      java.lang.String comment)
                                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### insertCalendarItems

          CalItemError[] insertCalendarItems(int accessLevel,
                                           int siteID,
                                           CalItemShortInformation[] items)
                                             throws java.rmi.RemoteException

      Inserts new calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `items` - Array of item information. Agent and date information is provided here.
      Returns:
        Array of error information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncInsertSnapshotCalendarItems

          java.lang.String asyncInsertSnapshotCalendarItems(java.lang.String snapshotID,
                                                          int accessLevel,
                                                          int siteID,
                                                          CalItemShortInformation[] items)
                                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### insertSnapshotCalendarItems

          CalUpdatedSnapshot insertSnapshotCalendarItems(java.lang.String snapshotID,
                                                       int accessLevel,
                                                       int siteID,
                                                       CalItemShortInformation[] items)
                                                         throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### editCalendarItems

          CalItemError[] editCalendarItems(int accessLevel,
                                         int siteID,
                                         CalItemShortInformation[] items)
                                           throws java.rmi.RemoteException

      Edits existing calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `items` - Array of item information. Agent and date information is provided here. In order to modify Exception or Time Off items, you may need to set the itemID.
      Returns:
        Array of error information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncEditSnapshotCalendarItems

          java.lang.String asyncEditSnapshotCalendarItems(java.lang.String snapshotID,
                                                        int accessLevel,
                                                        int siteID,
                                                        CalItemShortInformation[] items)
                                                          throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### editSnapshotCalendarItems

          CalUpdatedSnapshot editSnapshotCalendarItems(java.lang.String snapshotID,
                                                     int accessLevel,
                                                     int siteID,
                                                     CalItemShortInformation[] items)
                                                       throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### deleteCalendarItems

          CalItemError[] deleteCalendarItems(int accessLevel,
                                           int siteID,
                                           CalItemShortInformation[] items)
                                             throws java.rmi.RemoteException

      Deletes existing calendar items for specified agents and dates.
      Parameters:
        `accessLevel` - User access level
        `siteID` - Site ID
        `items` - Array of item information. Agent and date information is provided here. In order to modify Exception or Time Off items, you may need to set the itemID.
      Returns:
        Array of error information
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### asyncDeleteSnapshotCalendarItems

          java.lang.String asyncDeleteSnapshotCalendarItems(java.lang.String snapshotID,
                                                          int accessLevel,
                                                          int siteID,
                                                          CalItemShortInformation[] items)
                                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### deleteSnapshotCalendarItems

          CalUpdatedSnapshot deleteSnapshotCalendarItems(java.lang.String snapshotID,
                                                       int accessLevel,
                                                       int siteID,
                                                       CalItemShortInformation[] items)
                                                         throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### queryCalendarItems

          CalData queryCalendarItems(int accessLevel,
                                   int[] sites,
                                   int[] teams,
                                   int[] agents,
                                   double start,
                                   double end,
                                   CalFilter filter,
                                   CalSort sort,
                                   int request)
                                     throws java.rmi.RemoteException

      Returns sorted and filtered array of Calendar items for the specified target, and date range.
      Parameters:
        `accessLevel` - User access level
        `sites` - Array of Site IDs (only 1 Site supported in version 7.x), at least one site should always be present (related to teams and agents)
        `teams` - Array of Team IDs. Only teams from the same Site are supported. The value here works as a filter to include agents with specified team identifiers. A value of Null here returns all applicable agents, regardless of their team assignment.
        `agents` - Array of Agent IDs
        `start` - Period start date and time
        `end` - Period end date and time
        `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,
                                                 int[] sites,
                                                 int[] teams,
                                                 int[] agents,
                                                 double[] dates,
                                                 CalFilter filter,
                                                 CalSort sort)
                                                   throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openCalendarSnapshotForDatesAsync

          java.lang.String openCalendarSnapshotForDatesAsync(int accessLevel,
                                                           int[] sites,
                                                           int[] teams,
                                                           int[] agents,
                                                           double[] dates,
                                                           CalFilter filter,
                                                           CalSort sort)
                                                             throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openCalendarSnapshot

          CalSnapshot openCalendarSnapshot(int accessLevel,
                                         int[] sites,
                                         int[] teams,
                                         int[] agents,
                                         double start,
                                         double end,
                                         CalFilter filter,
                                         CalSort sort)
                                           throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### openCalendarSnapshotAsync

          java.lang.String openCalendarSnapshotAsync(int accessLevel,
                                                   int[] sites,
                                                   int[] teams,
                                                   int[] agents,
                                                   double start,
                                                   double end,
                                                   CalFilter filter,
                                                   CalSort sort)
                                                     throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### updateCalendarSnapshot

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

      Throws:
        `java.rmi.RemoteException`

    - #### findAgentInSnapshot

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

      Throws:
        `java.rmi.RemoteException`

    - #### getCalendarItemsFromSnapshot

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

      Throws:
        `java.rmi.RemoteException`

    - #### getTimeOffConfiguration

          CalTimeOffConfiguration[] getTimeOffConfiguration(int accessLevel,
                                                          int siteID,
                                                          int[] teams,
                                                          int[] agents,
                                                          int[] timeOffIDs)
                                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### calculateTimeOffBalanceToDate

          CalDateTimeOffBalanceInformation[] calculateTimeOffBalanceToDate(int accessLevel,
                                                                         int siteID,
                                                                         int[] teams,
                                                                         int[] agents,
                                                                         double date,
                                                                         int[] timeOffTypes)
                                                                           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
        `timeOffTypes` - Time Off types array - filter, empty = all types
      Returns:
        Calculated balance for date
      Throws:
        `java.rmi.RemoteException`
      See Also:
        `ECalAccessLevels`

    - #### getTimeOffInformation

          CalTimeOffInformation[] getTimeOffInformation(int accessLevel,
                                                      int siteID,
                                                      int[] teams,
                                                      int[] agents,
                                                      double date,
                                                      int[] 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

          CalDateTimeOffBalanceInformation[] calculateTimeOffCarryOverInformation(int accessLevel,
                                                                                int siteID,
                                                                                int[] teams,
                                                                                int[] agents,
                                                                                double date,
                                                                                int[] 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

          CalAgentPatterns[] getAgentAvailabilityPatterns(int accessLevel,
                                                        int siteId,
                                                        int agentId)
                                                          throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### setAgentAvailabilityPatterns

          void setAgentAvailabilityPatterns(int accessLevel,
                                          int siteId,
                                          int agentId,
                                          CalAgentPatterns[] patterns)
                                            throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### deleteAgentAvailabilityPatterns

          void deleteAgentAvailabilityPatterns(int accessLevel,
                                             int siteId,
                                             int agentId,
                                             int[] patternIds)
                                               throws java.rmi.RemoteException

      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

      Throws:
        `java.rmi.RemoteException`

    - #### asyncGetTimeOffLimits

          java.lang.String asyncGetTimeOffLimits(int siteID,
                                               int target,
                                               int targetID,
                                               int[] types,
                                               double start,
                                               double end,
                                               int granularity)
                                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### asyncSetTimeOffLimits

          java.lang.String asyncSetTimeOffLimits(CalLimitInformation[] information)
                                                 throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### asyncGetTimeOffLimitsRequestInformation

          CalLimitInformation[] asyncGetTimeOffLimitsRequestInformation(java.lang.String asyncRequestID)
                                                                        throws java.rmi.RemoteException

      Throws:
        `java.rmi.RemoteException`

    - #### pollNotification

          CalNotification pollNotification(long timestamp,
                                         int siteID,
                                         int itemType,
                                         int[] teamIDArray,
                                         int[] 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` - ells 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, int[], int[], double, double, int, boolean)`.
      Parameters:
        `siteID` - Site ID
        `itemType` -
        `timestamp` - A timestamp value from `CalNotification` returned by `pollNotification(long, int, int, int[], int[], double, double, int, boolean)`
      Throws:
        `java.rmi.RemoteException`

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