Hello,
I am in the process to port our solution from WinCC_OA 3.16 to 3.17 (P003) and I am running into an issue with the AlertRow not working. When the alert row is initialized the following errors are displayed in the log viewer (some information removed for brevity):
WCCOAui (1), 2020.05.15 14:40:20.632, CTRL, WARNING, 77, Expression is not an array,
...
Library: C:\Siemens\Automation\WinCC_OA\3.17\scripts\libs\aes.ctl
Line: 19109, dynlen
WCCOAui (1), 2020.05.15 14:40:20.646, CTRL, SEVERE, 176, Uncaught exception in thread started at aes_workCB:
WCCOAui (1), 2020.05.15 14:40:20.631, CTRL, SEVERE, 79, Index out of range,
...
Library: C:\Siemens\Automation\WinCC_OA\3.17\scripts\libs\aes.ctl
Line: 19109, xtab, 2
Stacktrace:
1: aes_formatPriorityToInt(dyn_dyn_anytype & xtab = ({ 0 items })) at aes.ctl:19109
2: aes_workCB(string ident = "1_0_1_1_FA ...", dyn_dyn_anytype tab = ({ 1 items }), bool fromDpQuery = FALSE) at aes.ctl:3793
Near as I can tell is that the res=convertAlertTabEx2( tab, g_configSettings, g_configMatrix, xtab, xtab2, diFontAttr ); call on line 3699 returns an empty xtab and xtab2 which screws up things.
Any idea of what can be wrong? Am I missing something obvious here? It works perfectly in 3.16 an below.
P.S. I have moved the bin folder reference to the top of the PATH environment variable (I have multiple versions installed) because I have had issues before when an older version than I was using was referenced first here. This does not help anything.
Regards,
Jan
Alertrow WinCC_OA 3.17
- jcbaar
- Posts:34
- Joined: Fri Sep 02, 2011 12:20 pm
Re: Alertrow WinCC_OA 3.17
I have managed to track down the issue myself. We use a "TabUtilEx.dll" to perform some formatting for an alert row column. Issue was that the getAt() method of the DynVar type expects a 1-based index in 3.16 and lower. For whatever reason this is now a 0-based index in 3.17. This is a breaking change which caused our formatting function to crash accessing the last expected parameter resulting in a non-functional alert row.
This change may be documented somewhere but if it is I missed it.
B.T.W. The sample code shown in the 3.17 online help for TabUtilEx is still incorrect, the sample code in the API of 3.17 is correct.
Regards,
Jan
This change may be documented somewhere but if it is I missed it.
B.T.W. The sample code shown in the 3.17 online help for TabUtilEx is still incorrect, the sample code in the API of 3.17 is correct.
Regards,
Jan
- jcbaar
- Posts:34
- Joined: Fri Sep 02, 2011 12:20 pm
Re: Alertrow WinCC_OA 3.17
Some more issues encountered:
aes.ctl
The declaration:
dyn_int g_counterConnectId;
should be:
dyn_string g_counterConnectId;
the call to aes_formatPriorityToInt() in aes_workCB() will completely destroy the contents of the column that was formatted with a TabUtilEx.dll function. Before this function is called the data contains nicely formatted HTML text. After the call the HTML is replaced by 0...
Regards,
Jan
aes.ctl
The declaration:
dyn_int g_counterConnectId;
should be:
dyn_string g_counterConnectId;
the call to aes_formatPriorityToInt() in aes_workCB() will completely destroy the contents of the column that was formatted with a TabUtilEx.dll function. Before this function is called the data contains nicely formatted HTML text. After the call the HTML is replaced by 0...
Regards,
Jan
- fmulder
- Posts:330
- Joined: Wed Feb 03, 2010 9:46 am
Re: Alertrow WinCC_OA 3.17
We also noticed that the getAt() method now is 0-based. It is described in the help file (but they could have used a bigger font) !
share the fun
Frenk Mulder
share the fun
Frenk Mulder