Question

Open case from agent desktop

Hi community,

 

I would like it when opening a case from the agent's desktop, it opens the case page and not a case edit page.

Is it possible to do that?

 

Thanks in advance.

 

Best regards,

Andreia

Like 0

Like

3 comments

Hello Andreia,

 

Could you please elaborate on your business task?

Would you like to open the section wizard page? 
 

Hello Bogdan,

 

Regarding the question I asked initially, what I did to open the case page when I open a case from the working area in the Agent Desktop section was to override the onActiveRowLogic method in the QueuePage. Then I show the code I wrote.

 

 

As when configuring a queue it is mandatory to associate a process, I created one where what I do is just read the case.

 

 

But with that, when I try to open a case for the first time in the queue, it opens the case page correctly. Now if I close and try to open the same case, it gives the following error, but the case page still opens, as it is parameterized by code.

 

 

 

In my case, in this queue that I'm configuring, it doesn't make sense for the process to be triggered, because what I need is just to open the case page.

 

That said, I would like to know if there is any way to disable the method that triggers this process. Or else another way to fix this error?

 

 

Thank you!

 

Best regards,

Andreia

Hello Andreia,

 

This part is the one that calls the business process:

if (buttonTag === "runProcess") {
						this.mixins.QueueProcessUtilities.executeQueueItemProcess.call(this, primaryColumnValue, false,
							function(canRunQueueItemProcess) {
								if (!canRunQueueItemProcess) {
									this.set("ActiveRow", null);
									this.reloadGridData();
								}
							}.bind(this)

Notice that the condition is the button tag being called "runProcess". So you could in theory add a new button, used to open your cases, and leave this one to run the business process.

 

To add a new button you can use this example from the "QueuePage" itself:

	{
					"operation": "insert",
					"name": "DataGrid",
					"parentName": "queueContainer",
					"propertyName": "items",
					"values": {
						"type": ConfigurationEnums.GridType.LISTED,
						"itemType": Terrasoft.ViewItemType.GRID,
						"listedZebra": true,
						"collection": {"bindTo": "Collection"},
						"activeRow": {"bindTo": "ActiveRow"},
						"primaryColumnName": "Id",
						"isEmpty": {"bindTo": "IsGridEmpty"},
						"isLoading": {"bindTo": "IsGridLoading"},
						"multiSelect": {"bindTo": "MultiSelect"},
						"selectedRows": {"bindTo": "SelectedRows"},
						"linkClick": {"bindTo": "linkClicked"},
						"sortColumn": {"bindTo": "sortColumn"},
						"sortColumnDirection": {"bindTo": "GridSortDirection"},
						"sortColumnIndex": {"bindTo": "SortColumnIndex"},
						"needLoadData": {"bindTo": "onNeedLoadData"},
						"activeRowAction": {"bindTo": "onActiveRowAction"},
						"canChangeMultiSelectWithGridClick": false,
						"activeRowActions": []
					}
				},
				{
					"operation": "insert",
					"name": "ProcessRunButton",
					"parentName": "DataGrid",
					"propertyName": "activeRowActions",
					"values": {
						"className": "Terrasoft.Button",
						"style": Terrasoft.controls.ButtonEnums.style.BLUE,
						"caption": resources.localizableStrings.RunProcessButtonCaption,
						"tag": "runProcess",
						"visible": {"bindTo": "getIsProcessRunButtonVisible"}
					}
				},

And then in the "onActiveRowAction" method you can make a condition like this:

if (buttonTag === "runProcess") {
                        this.mixins.QueueProcessUtilities.executeQueueItemProcess.call(this, primaryColumnValue, false,
                            function(canRunQueueItemProcess) {
                                if (!canRunQueueItemProcess) {
                                    this.set("ActiveRow", null);
                                    this.reloadGridData();
                                } else if (buttonTag === "yourCustomButtonTag") {
 
...open case
}

Best regards,

Dariy

Show all comments