Case Collaboration

From AgileApps Support Wiki

This feature enables seamless collaboration on the same case with another user within your organization. To collaborate in real-time, both users must have the specific case record actively open in separate tabs.

How does Case Collaboration work?

Whenever two users are viewing the same case, a popup dialog alerts them that someone else may be modifying the record they are looking at. This warning does not appear for other objects, as this feature is currently supported only for case records, hence the functionality is called Case Collaboration.
When this feature is enabled, a chat window appears along with a participant list whenever two users are viewing the same record in any object.

  • The Case Collaboration capability option is enabled by your Service Provider.
  • The default setting on the on-premises installation is Off.
  • The default setting on the cloud is Off. (Contact Support to make changes.)

Notepad.png

Note: This is a compute-intensive option that affects all tenants. It should be enabled only when necessary.

How to enable Case Collaboration feature?

1. Download messaging-server.zip.

Notepad.png

Note: The recommended Java version on the server is Java 17.

2. Create a folder /opt/messaging.

$ mkdir /opt/messaging

3. Move the messaging-server.zip file to /opt/messaging

$ mv messaging-server.zip /opt/messaging/
$ cd /opt/messaging

4. Extract file messaging-server.zip

$ unzip messaging-server.zip

5. Copy es.jar from installation directory to /opt/messaging/messaging-server/lib

$ yes | cp /opt/softwareag/AgileApps/lib/es.jar /opt/messaging/messaging-server/lib/es.jar

6. Create JavaKeyStore File from SSL Certs
For example: ssl-keystore.jks

Notepad.png

Note: Create an SSL Keystore
The Messaging Server accepts only SSL-encrypted connections. It needs a valid SSL certificate to perform a Handshake and data exchange with client systems.  The same Java keystore, SSL certificate, and private key used for the application server can be used for the Messaging Server. So once that has been set up, nothing else needs to be done. Learn more: Managing SSL Certificates

7. Copy ssl-keystore.jks to /opt/messaging/messaging-server/conf/ssl

$ cp ssl-keystore.jks /opt/messaging/messaging-server/conf/ssl/

8. Update conf/server.properties

user_name=<MYSQL_USERNAME> 
db_password=<MYSQL_PASSWORD> 

ssl_keystore = /opt/messaging/messaging-server/ssl/ssl-keystore.jks 
ssl_keystore_password=<SSL_CERT_PASSWORD> 

9. Update zeroDateTimeBehavior value based on MySQL Version in conf/server.properties for jdbc url.
For MySQL5: zeroDateTimeBehavior=convertToNull
For MySQL8: zeroDateTimeBehavior=CONVERT_TO_NULL
10. Copy appropriate Mysql connector to lib based on your mysql version

$ cp -rf /opt/mysql-connector-java-5.1.24-bin2.jar /opt/messaging/messaging-server/lib/

11. Update Java home path in /opt/messaging/messaging-server/startService.sh

JAVA_HOME="/opt/zulu17"

12. Create a service file and add the configuration

$ vi /etc/systemd/system/messaging.service 
[Unit] 
Description=Messaging-Server 
[Service] 
User=root 
WorkingDirectory=/opt/messaging/messaging-server 
ExecStart=/bin/bash /opt/messaging/messaging-server/startService.sh 
Restart=always 
[Install] 
WantedBy=multi-user.target 
$ systemctl daemon-reload 

13. Import the below db in mysql messagingdb.sql

$ mysql -u<MYSQL_USER> -p<MYSQL_PASSWORD> -f < messagingdb.sql

14. Verify whether it is imported or not

$ mysql -u<MYSQL_USER> -p<MYSQL_PASSWORD> -e "SHOW DATABASES LIKE 'messaging';"

15. Start the services in order

$ systemctl start artemis 

$ systemctl start messaging 

$ systemctl enable messaging 

16. Verify messaging server by checking ports used by messaging server process

$ ss -tnlp | grep <PID> 

For example:
[root@vmaalind05 messaging-server]# ss -tnlp | grep 27325
LISTEN     0      1      127.0.0.1:8998                     *:*                   users:(("java",pid=27325,fd=4))
LISTEN     0      50        [::]:7777                  [::]:*                   users:(("java",pid=27325,fd=258))
LISTEN     0      128       [::]:7443                  [::]:*                   users:(("java",pid=27325,fd=360))

17. Ensure that the following ports appear after entering the above command: {8998,7777,7443}.
18. Start the AgileApps server

$ /opt/softwareag/profiles/IS_default/bin/startup.sh

Configuring in LongJump

1. Log in to your LongJump account.
2. Navigate to Settings > Service Provider Settings > Service Configuration.
3. Click the Edit button at the top.
4. Under HornetQ configuration, update the following fields:

  • HornetQ Host: Enter the value as localhost or 127.0.0.1.
  • HornetQ Port: Enter the value as 61616.
  • HornetQ User: Enter your Artemis username.
  • HornetQ Password: Enter your Artemis password.
  • HornetQ QoS: Enter the value as 2
  • Messaging server configuration: Enter your server name with Port number e.g – localhost:7443

5. Restart the LongJump application.
6. Navigate to Tenant Management System > Tenants.
7. Select the desired tenant.
8. Click Quick Links > Manage Tenant Capabilities.
9. Click the Edit button at the bottom.
10. Under Capabilities, check the Case Collaboration checkbox.
11. Click the Save button at the bottom.

Finding the Server Logs

  • messaging-server/logs/server.log contains the runtime log records for the Messaging Server.
  • messaging-server/logs/startup.log contains startup and class loading errors.

Use Case

1. If you and someone else work on the same record, a collision would occur if you were allowed to overwrite their changes (effectively erasing them). The platform prevents such collisions for all records and provides an additional warning for potential collisions on cases. The platform prevents update collisions by generating an error if someone else has saved ahead of you. (The message tells you that your version of the record is out of date and tells you who modified it.) You can then refresh your copy of the record to make your intended changes.

2. For Cases, an additional warning helps to prevent potential collisions. A popup appears that tells you when someone else is viewing the same case you're looking at, so you have a chance to collaborate and communicate before making changes. You can also chat with the participants in the record using the Group Chat option on the right sidebar. The list of users who are currently viewing the specific case will appear in this window.