Remedy Definition - RMDY Chat

Version 1
    Share:|

    Summary

    This is a simple chat application build on Remedy ARS. There is a profile table on the right that shows who is Online, Away and Offline.

     

    • Double click a line in the chat history to reply to that person and line. Indicated with a @ sign followed by their username, “RE:”, the first part of the history line being replied to and purple text.
    • Double click a name in the profile table to mention the user and direct a message to them. Indicated with a @ sign followed by their username, “-”, and blue text.
    • There are two hidden Date/Time fields on the console; Last Activity and Last Keep Alive. Each time a user enters a message or performs some kind of activity on the console it updates the Last Activity field on the console and pushes to the profile record. There is an active link that fires every 2 minutes and if it has been 20 minutes since the Last Activity it pushes to the profile record and sets the status as Away.
    • There is another active link that fires on 10 minute interval that is meant to keep the session alive (this was build on 7.1 so some of the session timeout rules may have changed). The keep alive AL keeps a session alive for 3 hours, after that the keep alive Date/Time is no longer updated.
    • Last there is an escalation that fires every hour and if the keep alive time is over 30 minutes old it sets the profile status to Offline.

    Build Information

    The original definition was built on version 7.1 ARS.  It has most recently been updated in version ARS 9.1, placed in a deployable application as Custom objects and adding panels to allow the table fields to automatically resize. It should still be compatible with earlier versions of ARS back to at least 7.5.

     

    The provided definition works as-is however it is using active links on an interval timer to refresh the table fields. This could put excessive load on the database with a large number of chat users. Originally when the app was built it was utilizing RED (REM Event Drive) by REM Solutions SA (now part of Devoteam SA). RED was used as a mechanism to push events from the AR Server to each user or group’s browser. This alerted each person's browser via event to refresh the table fields and RED removed the need to have active links refreshing the table fields at a regular interval. All of those event objects are still present but without RED there is nothing to send the events. A few new active links were recently added to refresh the table fields in the absence of the server-side events.

     

    Some discussion about RED can be found here: https://mailman.rrr.se/arslist/1007/msg00113.html

     

    It might be possible to still obtain RED. A snippet from BMC Communities (https://communities.bmc.com/ideas/3406):

     

    “... if anyone is interested in knowing more I

    am more than happy to share it with you all. If you want you can get me

    directly at mark.gemmell@devoteam.com.”

     

    All of the objects supplied as part of REM Event Drive have been removed with the exception of form RED:Notifications form. When integrated with RED, pushing data to this form would invoke the process that triggered client-side active links to refresh the table fields from the AR Server.

    Archiving

    Archiving is not enabled by default.  You may want to enabled archiving to manage the number of records stored in the ‘CHT:ChatHistory’ form to maintain and avoid performance implications. Since the application was built prior to introduction of form archiving the CHT:Hist:DeleteOldHistory escalation is provided to delete records but is disabled by default.

     

    What’s Included

    Name

    Object Type

    RMDY Chat

    Deployable Application

    CHT:ChatConsole

    Form

    CHT:ChatHistory

    Form

    CHT:Profiles

    Form

    RED:Notifications

    Form

    CHT:Con:StatusDonNotAllowClear

    Active Link

    CHT:Con:ClearAll

    Active Link

    CHT:Con:RefreshTables--ShoudBeReplacedWithEventMechanism

    Active Link

    CHT:Con:ReplyTo-From_tblChatHistory

    Active Link

    SHR:SetGF_DefaultWebPath

    Active Link

    CHT:Con:ChatHistory-CreateRecord`!

    Active Link

    CHT:Con:KeepAlive

    Active Link

    CHT:Con:UpdateProfileStatus-OnLoad

    Active Link

    SHR:Close

    Active Link

    CHT:Con:ShowDateColumn

    Active Link

    CHT:Con:HotIssuePopupMessage

    Active Link

    CHT:Con:UpdateProfileStatus

    Active Link

    CHT:Con:ChatHistory-RefreshTable

    Active Link

    CHT:Con:SendMessageEvent-old--DELETE

    Active Link

    CHT:Con:ClearChatText

    Active Link

    CHT:Con:GUIDE_Status-UpdateLastActivity`!

    Active Link

    CHT:Con:ReceiveMessageEvent

    Active Link

    CHT:Con:ReplyTo-From_tblProfiles

    Active Link

    CHT:Con:ReceiveMessageBringToFront

    Active Link

    CHT:Con:Logout

    Active Link

    CHT:Con:ChatHistory-AddAutoText

    Active Link

    CHT:Con:SetCurrentHistText

    Active Link

    SHR:Logout

    Active Link

    CHT:Con:SetAway

    Active Link

    CHT:Hist:SetTimeAndDateFields

    Filter

    CHT:Prof:ChatHistory-CreateRecord

    Filter

    CHT:Hist:CreateRED_Notification

    Filter

    RED:CreateHistory-Chat`!

    Filter

    CHT:Hist:DeleteOldHistory

    Escalation

    CHT:Prof:SetStatus-Offline

    Escalation

    CHT:Con:GUIDE_StatusUpdate

    Active Link Guide

    Chat Admin

    Role

    Chat User

    Role

     

    Documentation Updates

    This document can be found online at https://goo.gl/a9Ksn9.  Refer to the online documentation for the most up-to-date version.

    Disclaimer of Warranty,

    THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

     

    Limitation of Liability,

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.