@magic-xpa/engine 4.1000.0-dev4100.36 → 4.1000.0-dev4100.361

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2020/src/ClientManager.mjs +12 -12
  2. package/esm2020/src/ConstInterface.mjs +3 -1
  3. package/esm2020/src/CurrentClientVersion.mjs +2 -2
  4. package/esm2020/src/commands/ClientToServer/DataviewCommand.mjs +6 -6
  5. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +4 -4
  6. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +8 -8
  7. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +4 -4
  8. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +5 -5
  9. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +7 -7
  10. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +6 -6
  11. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +8 -8
  12. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +7 -7
  13. package/esm2020/src/data/DataView.mjs +34 -34
  14. package/esm2020/src/data/DataviewManager.mjs +7 -7
  15. package/esm2020/src/data/Record.mjs +10 -10
  16. package/esm2020/src/data/TaskTransactionManager.mjs +4 -4
  17. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +5 -5
  18. package/esm2020/src/env/Environment.mjs +14 -7
  19. package/esm2020/src/env/MirrorString.mjs +2 -3
  20. package/esm2020/src/event/Event.mjs +4 -1
  21. package/esm2020/src/event/EventHandler.mjs +8 -3
  22. package/esm2020/src/event/EventHandlerPosition.mjs +5 -1
  23. package/esm2020/src/event/EventsManager.mjs +10 -1
  24. package/esm2020/src/event/IEventsManager.mjs +1 -1
  25. package/esm2020/src/event/RunTimeEvent.mjs +16 -16
  26. package/esm2020/src/exp/ExpressionDict.mjs +8 -8
  27. package/esm2020/src/exp/ExpressionEvaluator.mjs +2 -176
  28. package/esm2020/src/gui/FormsTable.mjs +8 -8
  29. package/esm2020/src/gui/MgControl.mjs +10 -13
  30. package/esm2020/src/gui/MgForm.mjs +11 -28
  31. package/esm2020/src/http/HttpManager.mjs +8 -8
  32. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +47 -27
  33. package/esm2020/src/rt/DataviewHeaderBase.mjs +16 -16
  34. package/esm2020/src/security/UserDetails.mjs +12 -12
  35. package/esm2020/src/tasks/MGData.mjs +4 -4
  36. package/esm2020/src/tasks/RCTimer.mjs +10 -10
  37. package/esm2020/src/tasks/Task.mjs +43 -42
  38. package/esm2020/src/util/FlowMonitorQueue.mjs +107 -2
  39. package/esm2020/src/util/PrmMap.mjs +6 -6
  40. package/esm2020/src/util/ReturnResult.mjs +7 -7
  41. package/fesm2015/magic-xpa-engine.mjs +490 -566
  42. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  43. package/fesm2020/magic-xpa-engine.mjs +513 -553
  44. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  45. package/package.json +6 -6
  46. package/src/ConstInterface.d.ts +2 -0
  47. package/src/env/Environment.d.ts +2 -0
  48. package/src/event/EventsManager.d.ts +3 -0
  49. package/src/event/IEventsManager.d.ts +2 -0
  50. package/src/exp/ExpressionEvaluator.d.ts +0 -9
  51. package/src/gui/MgControl.d.ts +0 -1
  52. package/src/gui/MgForm.d.ts +1 -3
  53. package/src/remote/RemoteCommandsProcessor.d.ts +1 -0
  54. package/src/util/FlowMonitorQueue.d.ts +8 -0
  55. package/src/util/PrmMap.d.ts +1 -1
  56. package/magic-xpa-engine.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { StringBuilder, Int32, NString, ApplicationException, NNumber, List, Debug, Char, RefParam, NumberStyles, HashUtils, DateTime, Dictionary, Stack, NChar, isNullOrUndefined, WebException, Thread, Encoding, Exception, isUndefined, Hashtable, NotImplementedException, Array_Enumerator, ISO_8859_1_Encoding, Int64 } from '@magic-xpa/mscorelib';
3
3
  import { XMLConstants, StorageAttribute, ViewRefreshMode, InternalInterface, Logger, StorageAttributeCheck, StrUtil, SubformType, TableBehaviour, MgControlType, ScrollBarThumbType, ForceExit, XmlParser, Misc, Base64, Priority, SyncExecutionHelper, Queue, Constants, DateTimeUtils, Logger_LogLevels, Logger_MessageDirection, MsgInterface, RequestInfo, OSEnvironment, JSON_Utils, UtilDateJpn, UtilStrByteMode, PICInterface, WindowType, BrkScope, RaiseAt, CtrlButtonTypeGui } from '@magic-xpa/utils';
4
- import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, VectorType, GuiExpressionEvaluator, ExpressionInterface, PIC, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
4
+ import { RecordUtils, GuiFieldBase, ExpVal, BlobType, FieldDef, GuiTaskBase, MgControlBase, PropInterface, GuiDataCollection, CommandType, Commands, HtmlProperties, ControlTable, Modifiers, KeyboardItem, TaskDefinitionIdTableSaxHandler, DisplayConvertor, VectorType, PIC, MgTimer, GuiConstants, RuntimeContextBase, UsernamePasswordCredentials, Styles, Manager, NUM_TYPE, GuiExpressionEvaluator, ExpressionInterface, DataModificationTypes, GuiDataViewBase, ObjectReferencesCollection, EMPTY_DCREF, ObjectReferenceBase, PropTable, FieldsTable as FieldsTable$1, DcValuesBuilderBase, MgFormBase, GuiEnvironment, TaskDefinitionId, Events, Helps, FocusManager, EventsProcessor, UIBridge } from '@magic-xpa/gui';
5
5
  import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
6
6
  import { timer, Subject } from 'rxjs';
7
7
 
@@ -272,6 +272,7 @@ ConstInterface.MG_ATTR_LOCAL_AS400SET = "local_as400set";
272
272
  ConstInterface.MG_ATTR_LOCAL_EXTRA_GENGO = "local_extraGengo";
273
273
  ConstInterface.MG_ATTR_LOCAL_FLAGS = "local_flags";
274
274
  ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP = "SpecialAnsiExpression";
275
+ ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END = "SpecialImmediateHandlerEnd";
275
276
  ConstInterface.MG_ATTR_SPECIAL_SHOW_STATUSBAR_PANES = "SpecialShowStatusBarPanes";
276
277
  ConstInterface.MG_ATTR_SPECIAL_ROUTE_TO_ROOT_PROG_ON_CONTEXT_RECREATION = "SpecialRouteToRootProgramOnContextRecreation";
277
278
  ConstInterface.MG_ATTR_SPECIAL_SPECIAL_EDIT_LEFT_ALIGN = "SpecialEditLeftAlign";
@@ -476,6 +477,7 @@ ConstInterface.RC_TOKEN_DATA = "DATA=";
476
477
  ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
477
478
  ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
478
479
  ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
480
+ ConstInterface.ENV_VAR_LIST = "EnvVarList";
479
481
  ConstInterface.LAST_EXCEPTION = "LastException";
480
482
  ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
481
483
  ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
@@ -641,13 +643,6 @@ class CommandSerializationHelper {
641
643
  }
642
644
 
643
645
  class EventCommand extends ClientOriginatedCommandTaskTag {
644
- constructor(magicEvent) {
645
- super();
646
- this.TaskTag = null;
647
- this.MagicEvent = 0;
648
- this.ClientRecId = 0;
649
- this.MagicEvent = magicEvent;
650
- }
651
646
  get CommandTypeAttribute() {
652
647
  return ConstInterface.MG_ATTR_VAL_EVENT;
653
648
  }
@@ -663,6 +658,13 @@ class EventCommand extends ClientOriginatedCommandTaskTag {
663
658
  return false;
664
659
  return true;
665
660
  }
661
+ constructor(magicEvent) {
662
+ super();
663
+ this.TaskTag = null;
664
+ this.MagicEvent = 0;
665
+ this.ClientRecId = 0;
666
+ this.MagicEvent = magicEvent;
667
+ }
666
668
  SerializeCommandData() {
667
669
  let helper = new CommandSerializationHelper();
668
670
  helper.SerializeTaskTag(this.TaskTag);
@@ -1202,15 +1204,6 @@ class OpeningTaskDetails {
1202
1204
  }
1203
1205
 
1204
1206
  class MgControl extends MgControlBase {
1205
- constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1206
- if (arguments.length === 0)
1207
- super();
1208
- else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1209
- super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1210
- else
1211
- super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1212
- this.initialize();
1213
- }
1214
1207
  initialize() {
1215
1208
  this._focusedStopExecution = false;
1216
1209
  this._inControlSuffix = false;
@@ -1223,6 +1216,15 @@ class MgControl extends MgControlBase {
1223
1216
  this.HasZoomHandler = false;
1224
1217
  this.ArgList = null;
1225
1218
  }
1219
+ constructor(type, taskOrParentMgForm, parentControlOrParentControlIdx) {
1220
+ if (arguments.length === 0)
1221
+ super();
1222
+ else if (arguments.length === 3 && (type === null || type.constructor === Number) && (taskOrParentMgForm === null || taskOrParentMgForm instanceof TaskBase) && (parentControlOrParentControlIdx === null || parentControlOrParentControlIdx.constructor === Number))
1223
+ super(type, taskOrParentMgForm.getForm(), parentControlOrParentControlIdx);
1224
+ else
1225
+ super(type, taskOrParentMgForm, parentControlOrParentControlIdx);
1226
+ this.initialize();
1227
+ }
1226
1228
  GetVarIndex() {
1227
1229
  return super.getForm().getTask().DataView.Dvcount + this.veeIndx;
1228
1230
  }
@@ -1547,14 +1549,6 @@ class MgControl extends MgControlBase {
1547
1549
  }
1548
1550
  });
1549
1551
  }
1550
- refreshAndSetItemsListForRadioButton(line, execComputeChoice) {
1551
- const _super = Object.create(null, {
1552
- refreshAndSetItemsListForRadioButton: { get: () => super.refreshAndSetItemsListForRadioButton }
1553
- });
1554
- return __awaiter(this, void 0, void 0, function* () {
1555
- yield _super.refreshAndSetItemsListForRadioButton.call(this, line, execComputeChoice);
1556
- });
1557
- }
1558
1552
  getSubformTask() {
1559
1553
  return this._subformTask;
1560
1554
  }
@@ -2923,6 +2917,9 @@ class Event {
2923
2917
  case InternalInterface.MG_ACT_INDEX_CHANGE:
2924
2918
  description = 'Index Change';
2925
2919
  break;
2920
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
2921
+ description = 'Dump Environment';
2922
+ break;
2926
2923
  default:
2927
2924
  description = '';
2928
2925
  break;
@@ -3232,6 +3229,21 @@ class MgPriorityBlockingQueue {
3232
3229
  }
3233
3230
 
3234
3231
  class RunTimeEvent extends RunTimeEventBase {
3232
+ set Control(value) {
3233
+ this._ctrl = value;
3234
+ }
3235
+ set DisplayLine(value) {
3236
+ this._displayLine = value;
3237
+ }
3238
+ get Control() {
3239
+ return this._ctrl;
3240
+ }
3241
+ get ControlsList() {
3242
+ return this._controlsList;
3243
+ }
3244
+ get Direction() {
3245
+ return this._direction;
3246
+ }
3235
3247
  constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
3236
3248
  super();
3237
3249
  this._controlsList = null;
@@ -3293,21 +3305,6 @@ class RunTimeEvent extends RunTimeEventBase {
3293
3305
  else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
3294
3306
  Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
3295
3307
  }
3296
- set Control(value) {
3297
- this._ctrl = value;
3298
- }
3299
- set DisplayLine(value) {
3300
- this._displayLine = value;
3301
- }
3302
- get Control() {
3303
- return this._ctrl;
3304
- }
3305
- get ControlsList() {
3306
- return this._controlsList;
3307
- }
3308
- get Direction() {
3309
- return this._direction;
3310
- }
3311
3308
  constructor_5(taskRef) {
3312
3309
  this.init(taskRef);
3313
3310
  }
@@ -3637,7 +3634,17 @@ class FlowMonitorQueue {
3637
3634
  this._isRecompute = false;
3638
3635
  this._isTask = false;
3639
3636
  this._isTaskFlow = false;
3637
+ this._isDataView = false;
3640
3638
  this.ShouldSerialize = false;
3639
+ this.padRight = (string, length, character = ' ') => {
3640
+ let result = "";
3641
+ let totalLength = length - string.length;
3642
+ for (let i = 0; i < totalLength; i++) {
3643
+ result = character + result;
3644
+ }
3645
+ result = result + string;
3646
+ return result;
3647
+ };
3641
3648
  }
3642
3649
  static get Instance() {
3643
3650
  if (FlowMonitorQueue._instance === null)
@@ -3695,6 +3702,9 @@ class FlowMonitorQueue {
3695
3702
  case ConstInterface.MG_ATTR_TASKFLW:
3696
3703
  this._isTaskFlow = XmlParser.getBoolean(valueStr);
3697
3704
  break;
3705
+ case ConstInterface.MG_TAG_DATAVIEW:
3706
+ this._isDataView = XmlParser.getBoolean(valueStr);
3707
+ break;
3698
3708
  case ConstInterface.MG_ATTR_RECOMP:
3699
3709
  this._isRecompute = XmlParser.getBoolean(valueStr);
3700
3710
  break;
@@ -3752,6 +3762,96 @@ class FlowMonitorQueue {
3752
3762
  Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
3753
3763
  }
3754
3764
  }
3765
+ appendVirtualsAndParameters(currentValues) {
3766
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, InternalInterface.MG_ACT_REC_PREFIX);
3767
+ act.setInfo(currentValues);
3768
+ this._queue.put(act);
3769
+ }
3770
+ addDataViewFlow(task) {
3771
+ if (this._isDataView) {
3772
+ let fldTab = task.DataView.GetFieldsTab();
3773
+ let preparedDisplayString = "";
3774
+ let finaldisplayData = "\n";
3775
+ let fldValue;
3776
+ let data = "";
3777
+ for (let i = 0; i < fldTab.getSize(); i++) {
3778
+ let fldDef = fldTab.getField(i);
3779
+ if (!fldDef.IsEventHandlerField && (fldDef.IsVirtual && !fldDef.VirAsReal) || fldDef.isParam()) {
3780
+ fldValue = fldDef.isNull() ? fldDef.getNullValue() : fldDef.getValue(true);
3781
+ data = this.getFieldData(fldDef.getType(), fldValue, fldDef.getPicture(), fldDef.getCellsType(), task);
3782
+ preparedDisplayString = this.PrepareDisplayString(fldDef.isParam(), fldDef.getVarName(), data, true);
3783
+ finaldisplayData = finaldisplayData + preparedDisplayString + "\n";
3784
+ }
3785
+ }
3786
+ this.appendVirtualsAndParameters(finaldisplayData);
3787
+ }
3788
+ }
3789
+ getFieldData(Storagetype, data, picture, vecCellType, task) {
3790
+ switch (Storagetype) {
3791
+ case StorageAttribute.DOTNET:
3792
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3793
+ break;
3794
+ case StorageAttribute.BLOB:
3795
+ {
3796
+ if (BlobType.isValidBlob(data)) {
3797
+ let contentType = BlobType.getContentType(data);
3798
+ if (contentType == BlobType.CONTENT_TYPE_ANSI || contentType == BlobType.CONTENT_TYPE_UNICODE)
3799
+ data = data != null ? BlobType.getString(data) : "";
3800
+ else
3801
+ data = FlowMonitorQueue.UNPRINTABLE_STR_LOG;
3802
+ }
3803
+ else
3804
+ data = "";
3805
+ }
3806
+ break;
3807
+ case StorageAttribute.NUMERIC:
3808
+ case StorageAttribute.DATE:
3809
+ case StorageAttribute.TIME:
3810
+ let conv = DisplayConvertor.Instance;
3811
+ data = conv.mg2disp(data, " ", new PIC(picture, Storagetype, task.getCompIdx()), false, task.getCompIdx(), false);
3812
+ break;
3813
+ case StorageAttribute.BLOB_VECTOR:
3814
+ let vecOutData;
3815
+ if (data == null) {
3816
+ vecOutData = "[]";
3817
+ }
3818
+ else {
3819
+ let cellAtt = vecCellType;
3820
+ let vector = new VectorType(data);
3821
+ if (cellAtt == StorageAttribute.BLOB && !VectorType.validateBlobContents(data))
3822
+ vecOutData = "[]";
3823
+ else {
3824
+ let vecSize = VectorType.getVecSize(data);
3825
+ let cellPicture = (cellAtt == StorageAttribute.NUMERIC || cellAtt == StorageAttribute.DATE || cellAtt == StorageAttribute.TIME) ? PIC.buildPicture(cellAtt, vector.getVecCell(1), task.getCompIdx(), true).getFormat() : picture;
3826
+ vecOutData = "[";
3827
+ for (let i = 0; i < vecSize; i++) {
3828
+ vecOutData += this.getFieldData(cellAtt, vector.getVecCell(i + 1), cellPicture, vecCellType, task);
3829
+ vecOutData += i < vecSize - 1 ? "," : "]";
3830
+ }
3831
+ }
3832
+ }
3833
+ data = vecOutData;
3834
+ break;
3835
+ case StorageAttribute.BOOLEAN:
3836
+ data = data == "1" ? "TRUE" : "FALSE";
3837
+ break;
3838
+ }
3839
+ return data;
3840
+ }
3841
+ PrepareDisplayString(mode, name, valueContent, addDoubleQuotes) {
3842
+ let str = "";
3843
+ let finalStringToDisplay = "";
3844
+ if (addDoubleQuotes)
3845
+ finalStringToDisplay = finalStringToDisplay + "\"";
3846
+ finalStringToDisplay = finalStringToDisplay + name;
3847
+ if (addDoubleQuotes)
3848
+ finalStringToDisplay = finalStringToDisplay + "\"";
3849
+ let paddedName = this.padRight(name, 34);
3850
+ let formatOfStringVirtual = `Virtual`;
3851
+ let formatOfStringParameter = `Parameter`;
3852
+ str = (mode ? formatOfStringParameter : formatOfStringVirtual) + " : " + `${paddedName}` + " : " + `${valueContent.trim()}`;
3853
+ return str;
3854
+ }
3755
3855
  addTaskFlowRec(id, state, taskInfo) {
3756
3856
  if (this._enabled && this._isTaskFlow) {
3757
3857
  let info;
@@ -3918,6 +4018,7 @@ class FlowMonitorQueue {
3918
4018
  }
3919
4019
  }
3920
4020
  FlowMonitorQueue._instance = null;
4021
+ FlowMonitorQueue.UNPRINTABLE_STR_LOG = "#UNPRINTABLE#";
3921
4022
  FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
3922
4023
  FlowMonitorQueue.S_EVENT_STR2 = " Event";
3923
4024
  FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
@@ -3979,6 +4080,15 @@ class TimerObjectCollection {
3979
4080
  }
3980
4081
  TimerObjectCollection.MgDataToTimerObjList = new Dictionary();
3981
4082
  class RCTimer extends MgTimer {
4083
+ get TimerIntervalMiliSeconds() {
4084
+ return this._timerIntervalMilliSeconds;
4085
+ }
4086
+ set IsIdleTimer(value) {
4087
+ this._isIdle = value;
4088
+ }
4089
+ get IsIdleTimer() {
4090
+ return this._isIdle;
4091
+ }
3982
4092
  constructor(mgData, milliseconds, isIdle) {
3983
4093
  super(milliseconds);
3984
4094
  this._mgData = null;
@@ -3990,15 +4100,6 @@ class RCTimer extends MgTimer {
3990
4100
  TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
3991
4101
  TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
3992
4102
  }
3993
- get TimerIntervalMiliSeconds() {
3994
- return this._timerIntervalMilliSeconds;
3995
- }
3996
- set IsIdleTimer(value) {
3997
- this._isIdle = value;
3998
- }
3999
- get IsIdleTimer() {
4000
- return this._isIdle;
4001
- }
4002
4103
  GetMgdata() {
4003
4104
  return this._mgData;
4004
4105
  }
@@ -4144,6 +4245,9 @@ class ExecutionStack {
4144
4245
  }
4145
4246
 
4146
4247
  class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4248
+ get CommandTypeAttribute() {
4249
+ return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4250
+ }
4147
4251
  constructor() {
4148
4252
  super();
4149
4253
  this.ExecutionStack = null;
@@ -4157,9 +4261,6 @@ class ExecOperCommand extends ClientOriginatedCommandTaskTag {
4157
4261
  this.CheckOnly = false;
4158
4262
  this.DitIdx = Int32.MinValue;
4159
4263
  }
4160
- get CommandTypeAttribute() {
4161
- return ConstInterface.MG_ATTR_VAL_EXEC_OPER;
4162
- }
4163
4264
  SerializeCommandData() {
4164
4265
  let helper = new CommandSerializationHelper();
4165
4266
  let execStackExists = this.ExecutionStack !== null && !this.ExecutionStack.empty();
@@ -4640,13 +4741,6 @@ class HttpClientAsync extends HttpClientBase {
4640
4741
  }
4641
4742
 
4642
4743
  class HttpManager {
4643
- constructor() {
4644
- this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4645
- this._httpClientAsync = null;
4646
- this._isAbortingMagicEngine = false;
4647
- this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4648
- this.RegisterBasicDelegates();
4649
- }
4650
4744
  getHttpClient() {
4651
4745
  if (this.IsAbortingMagicEngine)
4652
4746
  return new HttpClientSync();
@@ -4666,6 +4760,13 @@ class HttpManager {
4666
4760
  }
4667
4761
  get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
4668
4762
  set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
4763
+ constructor() {
4764
+ this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
4765
+ this._httpClientAsync = null;
4766
+ this._isAbortingMagicEngine = false;
4767
+ this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
4768
+ this.RegisterBasicDelegates();
4769
+ }
4669
4770
  RegisterBasicDelegates() {
4670
4771
  HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
4671
4772
  }
@@ -5223,6 +5324,12 @@ var RequestStatus;
5223
5324
  RequestStatus[RequestStatus["Abort"] = 2] = "Abort";
5224
5325
  })(RequestStatus || (RequestStatus = {}));
5225
5326
  class RemoteCommandsProcessor extends CommandsProcessorBase {
5327
+ static GetInstance() {
5328
+ if (RemoteCommandsProcessor._instance === null) {
5329
+ RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5330
+ }
5331
+ return RemoteCommandsProcessor._instance;
5332
+ }
5226
5333
  constructor() {
5227
5334
  super();
5228
5335
  this._lastRequestTime = 0;
@@ -5233,12 +5340,6 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5233
5340
  HttpManager.GetInstance();
5234
5341
  this.RegisterDelegates();
5235
5342
  }
5236
- static GetInstance() {
5237
- if (RemoteCommandsProcessor._instance === null) {
5238
- RemoteCommandsProcessor._instance = new RemoteCommandsProcessor();
5239
- }
5240
- return RemoteCommandsProcessor._instance;
5241
- }
5242
5343
  CheckAndSetSessionCounter(newSessionCounter) {
5243
5344
  if (newSessionCounter === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION) {
5244
5345
  Debug.Assert(this.GetSessionCounter() === ConstInterface.SESSION_COUNTER_CLOSE_CTX_INDICATION);
@@ -5274,10 +5375,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5274
5375
  return __awaiter(this, void 0, void 0, function* () {
5275
5376
  let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
5276
5377
  let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
5378
+ let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
5277
5379
  let dataStorage = window.localStorage;
5278
5380
  dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
5279
5381
  dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
5280
5382
  dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
5383
+ dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
5281
5384
  dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
5282
5385
  if (RuntimeContextBase.Instance.RemovedContextFromServer)
5283
5386
  dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
@@ -5514,6 +5617,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5514
5617
  let reqBuf;
5515
5618
  let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
5516
5619
  let globalParamsString = null;
5620
+ let envVarsString = null;
5517
5621
  if (this.DelayCommandExecution)
5518
5622
  return;
5519
5623
  if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
@@ -5539,12 +5643,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5539
5643
  let buffer = new StringBuilder();
5540
5644
  if (!RemoteCommandsProcessor.IsSessionReInitializing)
5541
5645
  buffer.Append(reqBuf);
5542
- if (RemoteCommandsProcessor.IsSessionReInitializing)
5646
+ if (RemoteCommandsProcessor.IsSessionReInitializing) {
5543
5647
  globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
5544
- else
5648
+ envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
5649
+ }
5650
+ else {
5545
5651
  globalParamsString = AccessHelper.globalParams.mirrorToXML();
5652
+ envVarsString = AccessHelper.envParamsTable.mirrorToXML();
5653
+ }
5546
5654
  changes.Append(globalParamsString);
5547
- changes.Append(AccessHelper.envParamsTable.mirrorToXML());
5655
+ changes.Append(envVarsString);
5548
5656
  if (changes.Length > 0) {
5549
5657
  changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
5550
5658
  changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
@@ -5583,13 +5691,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5583
5691
  dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5584
5692
  dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5585
5693
  dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5694
+ dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5586
5695
  dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5587
5696
  }
5588
5697
  }
5589
5698
  FlowMonitorQueue.Instance.enable(false);
5590
5699
  yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
5591
5700
  if (RemoteCommandsProcessor.IsSessionReInitializing) {
5592
- AccessHelper.globalParams.RestoreGlobalParams(globalParamsString);
5701
+ AccessHelper.globalParams.RestoreParams(globalParamsString);
5702
+ AccessHelper.envParamsTable.RestoreParams(envVarsString);
5593
5703
  let dataStorage = window.localStorage;
5594
5704
  let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5595
5705
  if (ctxRemoved === "1") {
@@ -5687,12 +5797,23 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
5687
5797
  }
5688
5798
  }
5689
5799
  }
5690
- window.localStorage.clear();
5800
+ this.clearLocalStorage();
5691
5801
  throw ex;
5692
5802
  }
5693
5803
  return response;
5694
5804
  });
5695
5805
  }
5806
+ clearLocalStorage() {
5807
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT);
5808
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_SRC_TSK);
5809
+ window.localStorage.removeItem(ConstInterface.LAST_ROUTE_EVENT_ARG_LIST);
5810
+ window.localStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
5811
+ window.localStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
5812
+ window.localStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
5813
+ window.localStorage.removeItem(ConstInterface.ENV_VAR_LIST);
5814
+ window.localStorage.removeItem(ConstInterface.LAST_EXCEPTION);
5815
+ window.localStorage.removeItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
5816
+ }
5696
5817
  HandleErrorResponse(response) {
5697
5818
  try {
5698
5819
  Logger.Instance.WriteServerMessagesToLog("MESSAGE FROM SERVER: " + response);
@@ -5906,21 +6027,6 @@ RemoteCommandsProcessor.InitialUrl = null;
5906
6027
  RemoteCommandsProcessor.WEB_COMMUNICATION_PROTOCOL_VERSION = "14002";
5907
6028
  RemoteCommandsProcessor._shouldScrambleAndUnscrambleMessages = false;
5908
6029
  class HandshakeResponse {
5909
- constructor(responseXML) {
5910
- this._scrambleMessages = true;
5911
- this._contextId = null;
5912
- this._privateSessionId = null;
5913
- this._inputPassword = false;
5914
- this._httpTimeout = 0;
5915
- this._systemLogin = null;
5916
- this._maxInternalLogLevel = null;
5917
- try {
5918
- JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
5919
- }
5920
- catch (ex) {
5921
- Logger.Instance.WriteExceptionToLog(ex, responseXML);
5922
- }
5923
- }
5924
6030
  get ScrambleMessages() {
5925
6031
  return this._scrambleMessages;
5926
6032
  }
@@ -5942,6 +6048,21 @@ class HandshakeResponse {
5942
6048
  get MaxInternalLogLevel() {
5943
6049
  return this._maxInternalLogLevel;
5944
6050
  }
6051
+ constructor(responseXML) {
6052
+ this._scrambleMessages = true;
6053
+ this._contextId = null;
6054
+ this._privateSessionId = null;
6055
+ this._inputPassword = false;
6056
+ this._httpTimeout = 0;
6057
+ this._systemLogin = null;
6058
+ this._maxInternalLogLevel = null;
6059
+ try {
6060
+ JSON_Utils.JSONFromXML(responseXML, this.FillFromJSON.bind(this));
6061
+ }
6062
+ catch (ex) {
6063
+ Logger.Instance.WriteExceptionToLog(ex, responseXML);
6064
+ }
6065
+ }
5945
6066
  FillFromJSON(error, result) {
5946
6067
  if (error != null) {
5947
6068
  throw error;
@@ -6918,7 +7039,7 @@ ExpressionDict.expDesc = [
6918
7039
  null,
6919
7040
  new ExpDesc('N', 0, 0, 0, "", false),
6920
7041
  null,
6921
- new ExpDesc('B', 0, 2, 2, "BN", false),
7042
+ null,
6922
7043
  new ExpDesc('B', 0, 2, 2, "V ", false),
6923
7044
  null,
6924
7045
  null,
@@ -7367,12 +7488,12 @@ ExpressionDict.expDesc = [
7367
7488
  null,
7368
7489
  new ExpDesc('A', 0, 1, 1, "A", false),
7369
7490
  new ExpDesc('N', 0, 2, 2, "AA", false),
7370
- new ExpDesc('B', 0, -2, -2, "V ", false),
7371
- new ExpDesc('B', 0, 1, 1, "N", false),
7372
- new ExpDesc('B', 0, -2, -2, "V ", false),
7373
- new ExpDesc('B', 0, 1, 1, "N", false),
7374
- new ExpDesc('B', 0, 2, 2, "VB", false),
7375
- new ExpDesc('B', 0, 1, 1, "N", false),
7491
+ null,
7492
+ null,
7493
+ null,
7494
+ null,
7495
+ null,
7496
+ null,
7376
7497
  new ExpDesc('N', 0, 1, 1, "N", false),
7377
7498
  null,
7378
7499
  null,
@@ -7459,48 +7580,6 @@ ExpressionDict.expDesc = [
7459
7580
  new ExpDesc('U', 0, 0, 0, '', false),
7460
7581
  ];
7461
7582
 
7462
- var DataViewCommandType;
7463
- (function (DataViewCommandType) {
7464
- DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7465
- DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7466
- DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7467
- DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7468
- DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7469
- DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7470
- DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7471
- DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7472
- DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7473
- DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7474
- DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7475
- DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7476
- DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7477
- DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7478
- DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7479
- DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7480
- DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7481
- DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7482
- DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7483
- DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7484
- DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7485
- })(DataViewCommandType || (DataViewCommandType = {}));
7486
- class DataviewCommand extends ClientOriginatedCommandTaskTag {
7487
- constructor() {
7488
- super();
7489
- this.CommandType = 0;
7490
- this.TaskTag = null;
7491
- }
7492
- get CommandTypeAttribute() {
7493
- throw new NotImplementedException();
7494
- }
7495
- SerializeCommandData() {
7496
- Debug.Assert(false, "Dataview commands need not be serialized");
7497
- return null;
7498
- }
7499
- get ShouldSerialize() {
7500
- return false;
7501
- }
7502
- }
7503
-
7504
7583
  class EventHandlerPosition {
7505
7584
  constructor() {
7506
7585
  this._handlerIdx = 0;
@@ -7557,6 +7636,9 @@ class EventHandlerPosition {
7557
7636
  case InternalInterface.MG_ACT_REC_SUFFIX:
7558
7637
  case InternalInterface.MG_ACT_CTRL_PREFIX:
7559
7638
  case InternalInterface.MG_ACT_CTRL_SUFFIX: {
7639
+ if (this._rtEvt.getInternalCode() == InternalInterface.MG_ACT_REC_PREFIX) {
7640
+ FlowMonitorQueue.Instance.addDataViewFlow(this._task);
7641
+ }
7560
7642
  if (this._handlerIdx === -1) {
7561
7643
  for (this._handlerIdx = this._handlersTab.getSize() - 1; this._handlerIdx >= 0; this._handlerIdx--) {
7562
7644
  let handler = this._handlersTab.getHandler(this._handlerIdx);
@@ -7697,6 +7779,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
7697
7779
  EventHandlerPosition.PHASE_GLOBAL = 3;
7698
7780
  EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
7699
7781
 
7782
+ var DataViewCommandType;
7783
+ (function (DataViewCommandType) {
7784
+ DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
7785
+ DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
7786
+ DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
7787
+ DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
7788
+ DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
7789
+ DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
7790
+ DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
7791
+ DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
7792
+ DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
7793
+ DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
7794
+ DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
7795
+ DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
7796
+ DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
7797
+ DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
7798
+ DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
7799
+ DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
7800
+ DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
7801
+ DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
7802
+ DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
7803
+ DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
7804
+ DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
7805
+ })(DataViewCommandType || (DataViewCommandType = {}));
7806
+ class DataviewCommand extends ClientOriginatedCommandTaskTag {
7807
+ get CommandTypeAttribute() {
7808
+ throw new NotImplementedException();
7809
+ }
7810
+ SerializeCommandData() {
7811
+ Debug.Assert(false, "Dataview commands need not be serialized");
7812
+ return null;
7813
+ }
7814
+ get ShouldSerialize() {
7815
+ return false;
7816
+ }
7817
+ constructor() {
7818
+ super();
7819
+ this.CommandType = 0;
7820
+ this.TaskTag = null;
7821
+ }
7822
+ }
7823
+
7700
7824
  class AddUserRangeDataviewCommand extends DataviewCommand {
7701
7825
  constructor() {
7702
7826
  super();
@@ -7916,12 +8040,6 @@ class NonReversibleExitEventCommand extends EventCommand {
7916
8040
  }
7917
8041
 
7918
8042
  class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7919
- constructor() {
7920
- super();
7921
- this.TaskTag = null;
7922
- this.FldId = 0;
7923
- this.IgnoreSubformRecompute = false;
7924
- }
7925
8043
  get CommandTypeAttribute() {
7926
8044
  return ConstInterface.MG_ATTR_VAL_RECOMP;
7927
8045
  }
@@ -7933,17 +8051,18 @@ class RecomputeCommand extends ClientOriginatedCommandTaskTag {
7933
8051
  helper.SerializeAttribute(ConstInterface.MG_ATTR_IGNORE_SUBFORM_RECOMPUTE, '1');
7934
8052
  return helper.GetString();
7935
8053
  }
8054
+ constructor() {
8055
+ super();
8056
+ this.TaskTag = null;
8057
+ this.FldId = 0;
8058
+ this.IgnoreSubformRecompute = false;
8059
+ }
7936
8060
  getCommandInfo() {
7937
8061
  return NString.Format('[{0} in {1} for Field {2}]', this.CommandTypeAttribute.charAt(0).toUpperCase() + this.CommandTypeAttribute.substr(1, this.CommandTypeAttribute.length), this.Task.getTaskInfo(), this.Task.getFieldDef(this.FldId).getName());
7938
8062
  }
7939
8063
  }
7940
8064
 
7941
8065
  class TransactionCommand extends ClientOriginatedCommandTaskTag {
7942
- constructor() {
7943
- super();
7944
- this.TaskTag = null;
7945
- this.ReversibleExit = false;
7946
- }
7947
8066
  get CommandTypeAttribute() {
7948
8067
  return ConstInterface.MG_ATTR_VAL_TRANS;
7949
8068
  }
@@ -7957,6 +8076,11 @@ class TransactionCommand extends ClientOriginatedCommandTaskTag {
7957
8076
  helper.SerializeAttribute(ConstInterface.MG_ATTR_TRANS_LEVEL, this.Level);
7958
8077
  return helper.GetString();
7959
8078
  }
8079
+ constructor() {
8080
+ super();
8081
+ this.TaskTag = null;
8082
+ this.ReversibleExit = false;
8083
+ }
7960
8084
  getCommandInfo() {
7961
8085
  return NString.Format('[{0} in {1}]', this.Oper === 'C' ? 'Commit Transaction' : 'Abort Transaction', this.Task.getTaskInfo());
7962
8086
  }
@@ -7975,6 +8099,9 @@ class UnloadCommand extends ClientOriginatedCommand {
7975
8099
  }
7976
8100
 
7977
8101
  class EvaluateCommand extends ClientOriginatedCommandTaskTag {
8102
+ get CommandTypeAttribute() {
8103
+ return ConstInterface.MG_ATTR_VAL_EVAL;
8104
+ }
7978
8105
  constructor() {
7979
8106
  super();
7980
8107
  this.TaskTag = null;
@@ -7983,9 +8110,6 @@ class EvaluateCommand extends ClientOriginatedCommandTaskTag {
7983
8110
  this.MprgCreator = null;
7984
8111
  this.LengthExpVal = Int32.MinValue;
7985
8112
  }
7986
- get CommandTypeAttribute() {
7987
- return ConstInterface.MG_ATTR_VAL_EVAL;
7988
- }
7989
8113
  SerializeCommandData() {
7990
8114
  let helper = new CommandSerializationHelper();
7991
8115
  helper.SerializeTaskTag(this.TaskTag);
@@ -8033,10 +8157,6 @@ class GlobalParamsQueryCommand extends QueryCommand {
8033
8157
  }
8034
8158
 
8035
8159
  class IniputForceWriteCommand extends ClientOriginatedCommand {
8036
- constructor() {
8037
- super();
8038
- this.Text = null;
8039
- }
8040
8160
  get CommandTypeAttribute() {
8041
8161
  return ConstInterface.MG_ATTR_VAL_INIPUT_FORCE_WRITE;
8042
8162
  }
@@ -8046,6 +8166,10 @@ class IniputForceWriteCommand extends ClientOriginatedCommand {
8046
8166
  SerializeCommandData() {
8047
8167
  return " " + ConstInterface.MG_ATTR_VAL_INIPUT_PARAM + "=\"" + XmlParser.escape(this.Text) + "\"";
8048
8168
  }
8169
+ constructor() {
8170
+ super();
8171
+ this.Text = null;
8172
+ }
8049
8173
  getCommandInfo() {
8050
8174
  return NString.Format('[{0} with {1}] ', this.CommandTypeAttribute, this.Text);
8051
8175
  }
@@ -8336,13 +8460,6 @@ class CommandFactory {
8336
8460
  }
8337
8461
  }
8338
8462
 
8339
- class Sort {
8340
- constructor() {
8341
- this.fldIdx = 0;
8342
- this.dir = false;
8343
- }
8344
- }
8345
-
8346
8463
  var ParamParseResult;
8347
8464
  (function (ParamParseResult) {
8348
8465
  ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
@@ -8352,10 +8469,6 @@ var ParamParseResult;
8352
8469
  })(ParamParseResult || (ParamParseResult = {}));
8353
8470
 
8354
8471
  class PrmMap {
8355
- constructor() {
8356
- this.values = null;
8357
- this.values = new Dictionary();
8358
- }
8359
8472
  getvalue(s) {
8360
8473
  if (this.values.ContainsKey(s))
8361
8474
  return this.values.get_Item(s);
@@ -8368,6 +8481,10 @@ class PrmMap {
8368
8481
  remove(s) {
8369
8482
  this.values.Remove(s);
8370
8483
  }
8484
+ constructor() {
8485
+ this.values = null;
8486
+ this.values = new Dictionary();
8487
+ }
8371
8488
  }
8372
8489
  class MirrorPrmMap extends PrmMap {
8373
8490
  constructor(type) {
@@ -8448,7 +8565,7 @@ class MirrorPrmMap extends PrmMap {
8448
8565
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8449
8566
  }
8450
8567
  }
8451
- RestoreGlobalParams(xml) {
8568
+ RestoreParams(xml) {
8452
8569
  let parser = new XmlParser(xml);
8453
8570
  while (this.mirrorFromXML(parser.getNextTag(), parser)) {
8454
8571
  }
@@ -8523,6 +8640,7 @@ class Environment {
8523
8640
  this._debugMode = 0;
8524
8641
  this._significantNumSize = 0;
8525
8642
  this._specialAnsiExpression = false;
8643
+ this._specialImmediatehandlerEnd = false;
8526
8644
  this._specialShowStatusBarPanes = false;
8527
8645
  this._specialRouteToRootProgOnContextRecreation = false;
8528
8646
  this._specialCancelOnCreate = false;
@@ -8676,6 +8794,9 @@ class Environment {
8676
8794
  case ConstInterface.MG_ATTR_LOCAL_FLAGS:
8677
8795
  this._localFlags = valueStr;
8678
8796
  break;
8797
+ case ConstInterface.MG_ATTR_SPECIAL_IMMEDIATE_HANDLER_END:
8798
+ this._specialImmediatehandlerEnd = XmlParser.getBoolean(valueStr);
8799
+ break;
8679
8800
  case ConstInterface.MG_ATTR_SPEACIAL_ANSI_EXP:
8680
8801
  this._specialAnsiExpression = XmlParser.getBoolean(valueStr);
8681
8802
  break;
@@ -8882,6 +9003,9 @@ class Environment {
8882
9003
  GetLocalFlag(f) {
8883
9004
  return this._localFlags !== null && this._localFlags.indexOf(f) >= 0;
8884
9005
  }
9006
+ getSpecialImmediateHandlerEnd() {
9007
+ return this._specialImmediatehandlerEnd;
9008
+ }
8885
9009
  getSpecialAnsiExpression() {
8886
9010
  return this._specialAnsiExpression;
8887
9011
  }
@@ -8951,6 +9075,12 @@ class Environment {
8951
9075
  }
8952
9076
  Environment.Instance = new Environment();
8953
9077
  class EnvironmentDetails {
9078
+ set UpdateInQueryMode(value) {
9079
+ this._updateInQueryMode = value;
9080
+ }
9081
+ set CreateInModifyMode(value) {
9082
+ this._createInModifyMode = value;
9083
+ }
8954
9084
  constructor() {
8955
9085
  this._createInModifyMode = false;
8956
9086
  this._updateInQueryMode = false;
@@ -8961,12 +9091,6 @@ class EnvironmentDetails {
8961
9091
  this.ProjDir = null;
8962
9092
  this.CompIdx = 0;
8963
9093
  }
8964
- set UpdateInQueryMode(value) {
8965
- this._updateInQueryMode = value;
8966
- }
8967
- set CreateInModifyMode(value) {
8968
- this._createInModifyMode = value;
8969
- }
8970
9094
  allowUpdateInQueryMode() {
8971
9095
  return this._updateInQueryMode;
8972
9096
  }
@@ -9054,17 +9178,6 @@ class GlobalParams extends MirrorPrmMap {
9054
9178
  GlobalParams.Instance = new GlobalParams();
9055
9179
 
9056
9180
  class UserDetails {
9057
- constructor() {
9058
- this.UserName = null;
9059
- this.UserID = null;
9060
- this.UserInfo = null;
9061
- this.Password = null;
9062
- this.IsLoggedIn = false;
9063
- this.UserName = NString.Empty;
9064
- this.UserInfo = NString.Empty;
9065
- this.IsLoggedIn = false;
9066
- this.setUserID(NString.Empty);
9067
- }
9068
9181
  setIsLoggedIn(value) {
9069
9182
  this.IsLoggedIn = value;
9070
9183
  }
@@ -9084,6 +9197,17 @@ class UserDetails {
9084
9197
  UserDetails._instance = new UserDetails();
9085
9198
  return UserDetails._instance;
9086
9199
  }
9200
+ constructor() {
9201
+ this.UserName = null;
9202
+ this.UserID = null;
9203
+ this.UserInfo = null;
9204
+ this.Password = null;
9205
+ this.IsLoggedIn = false;
9206
+ this.UserName = NString.Empty;
9207
+ this.UserInfo = NString.Empty;
9208
+ this.IsLoggedIn = false;
9209
+ this.setUserID(NString.Empty);
9210
+ }
9087
9211
  fillData(parser) {
9088
9212
  let tokensVector;
9089
9213
  let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
@@ -9920,8 +10044,7 @@ class MirrorString {
9920
10044
  this._reserved = false;
9921
10045
  }
9922
10046
  mirrorToXML() {
9923
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
9924
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
10047
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
9925
10048
  }
9926
10049
  init(name, xmlParser) {
9927
10050
  let valueStart, valueEnd, reserveStart, paramEnd;
@@ -11497,11 +11620,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11497
11620
  val1 = valStack.pop();
11498
11621
  this.eval_op_eoy(resVal, val1);
11499
11622
  break;
11500
- case ExpressionInterface.EXP_OP_ROLLBACK:
11501
- val2 = valStack.pop();
11502
- val1 = valStack.pop();
11503
- yield this.eval_op_rollback(resVal);
11504
- break;
11505
11623
  case ExpressionInterface.EXP_OP_VARSET:
11506
11624
  val2 = valStack.pop();
11507
11625
  val1 = valStack.pop();
@@ -11866,41 +11984,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11866
11984
  val1 = valStack.pop();
11867
11985
  this.eval_op_taskType(resVal, val1);
11868
11986
  break;
11869
- case ExpressionInterface.EXP_OP_RANGE_ADD:
11870
- nArgs = valStack.pop();
11871
- if (nArgs > 0) {
11872
- Exp_params = new Array(nArgs);
11873
- for (j = 0; j < nArgs; j++)
11874
- Exp_params[nArgs - 1 - j] = valStack.pop();
11875
- yield this.eval_op_range_add(resVal, Exp_params);
11876
- }
11877
- break;
11878
- case ExpressionInterface.EXP_OP_RANGE_RESET:
11879
- val1 = valStack.pop();
11880
- yield this.eval_op_range_reset(resVal, val1);
11881
- break;
11882
- case ExpressionInterface.EXP_OP_LOCATE_ADD:
11883
- nArgs = valStack.pop();
11884
- if (nArgs > 0) {
11885
- Exp_params = new Array(nArgs);
11886
- for (j = 0; j < nArgs; j++)
11887
- Exp_params[nArgs - 1 - j] = valStack.pop();
11888
- yield this.eval_op_locate_add(resVal, Exp_params);
11889
- }
11890
- break;
11891
- case ExpressionInterface.EXP_OP_LOCATE_RESET:
11892
- val1 = valStack.pop();
11893
- yield this.eval_op_locate_reset(resVal, val1);
11894
- break;
11895
- case ExpressionInterface.EXP_OP_SORT_ADD:
11896
- val2 = valStack.pop();
11897
- val1 = valStack.pop();
11898
- yield this.eval_op_sort_add(resVal, val1, val2);
11899
- break;
11900
- case ExpressionInterface.EXP_OP_SORT_RESET:
11901
- val1 = valStack.pop();
11902
- yield this.eval_op_sort_reset(resVal, val1);
11903
- break;
11904
11987
  case ExpressionInterface.EXP_OP_TSK_INSTANCE:
11905
11988
  val1 = valStack.pop();
11906
11989
  this.eval_op_tsk_instance(resVal, val1);
@@ -13569,14 +13652,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13569
13652
  yield fld.updateDisplay();
13570
13653
  });
13571
13654
  }
13572
- eval_op_rollback(resVal) {
13573
- return __awaiter(this, void 0, void 0, function* () {
13574
- let task = this.ExpTask.GetContextTask() || this.ExpTask;
13575
- yield AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_ROLLBACK);
13576
- resVal.Attr = StorageAttribute.BOOLEAN;
13577
- resVal.BoolVal = true;
13578
- });
13579
- }
13580
13655
  eval_op_like(source, maskOrg, resVal) {
13581
13656
  let i;
13582
13657
  let j;
@@ -14137,75 +14212,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14137
14212
  resultStr.Replace('\\@', '@');
14138
14213
  resVal.StrVal = resultStr.ToString();
14139
14214
  }
14140
- eval_op_range_add(resVal, Exp_params) {
14141
- return __awaiter(this, void 0, void 0, function* () {
14142
- resVal.Attr = StorageAttribute.BOOLEAN;
14143
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, false);
14144
- });
14145
- }
14146
- eval_op_range_reset(resVal, parent) {
14147
- const _super = Object.create(null, {
14148
- GetContextTask: { get: () => super.GetContextTask }
14149
- });
14150
- return __awaiter(this, void 0, void 0, function* () {
14151
- resVal.Attr = StorageAttribute.BOOLEAN;
14152
- let iParent = parent.MgNumVal.NUM_2_LONG();
14153
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14154
- let task = _super.GetContextTask.call(this, iParent);
14155
- if (task !== null) {
14156
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserRange);
14157
- yield task.DataviewManager.Execute(command);
14158
- resVal.BoolVal = true;
14159
- }
14160
- }
14161
- });
14162
- }
14163
- eval_op_locate_add(resVal, Exp_params) {
14164
- return __awaiter(this, void 0, void 0, function* () {
14165
- resVal.Attr = StorageAttribute.BOOLEAN;
14166
- resVal.BoolVal = yield this.add_rt_ranges(Exp_params, true);
14167
- });
14168
- }
14169
- eval_op_locate_reset(resVal, parent) {
14170
- const _super = Object.create(null, {
14171
- GetContextTask: { get: () => super.GetContextTask }
14172
- });
14173
- return __awaiter(this, void 0, void 0, function* () {
14174
- resVal.Attr = StorageAttribute.BOOLEAN;
14175
- let iParent = parent.MgNumVal.NUM_2_LONG();
14176
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14177
- let task = _super.GetContextTask.call(this, iParent);
14178
- if (task !== null) {
14179
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserLocate);
14180
- yield task.DataviewManager.Execute(command);
14181
- resVal.BoolVal = true;
14182
- }
14183
- }
14184
- });
14185
- }
14186
- eval_op_sort_add(resVal, varnum, dir) {
14187
- return __awaiter(this, void 0, void 0, function* () {
14188
- resVal.Attr = StorageAttribute.BOOLEAN;
14189
- resVal.BoolVal = yield this.add_sort(varnum, dir);
14190
- });
14191
- }
14192
- eval_op_sort_reset(resVal, parent) {
14193
- const _super = Object.create(null, {
14194
- GetContextTask: { get: () => super.GetContextTask }
14195
- });
14196
- return __awaiter(this, void 0, void 0, function* () {
14197
- resVal.Attr = StorageAttribute.BOOLEAN;
14198
- let iParent = parent.MgNumVal.NUM_2_LONG();
14199
- if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
14200
- let task = _super.GetContextTask.call(this, iParent);
14201
- if (task !== null) {
14202
- let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserSort);
14203
- yield task.DataviewManager.Execute(command);
14204
- resVal.BoolVal = true;
14205
- }
14206
- }
14207
- });
14208
- }
14209
14215
  eval_op_tsk_instance(resVal, Parent) {
14210
14216
  let tag = 0;
14211
14217
  let iParent = Parent.MgNumVal.NUM_2_LONG();
@@ -14219,88 +14225,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14219
14225
  resVal.MgNumVal = new NUM_TYPE();
14220
14226
  resVal.MgNumVal.NUM_4_LONG(tag);
14221
14227
  }
14222
- add_sort(varnum, dir) {
14223
- return __awaiter(this, void 0, void 0, function* () {
14224
- if (varnum.MgNumVal === null)
14225
- return false;
14226
- let itm = varnum.MgNumVal.NUM_2_LONG();
14227
- if (itm === 0)
14228
- return false;
14229
- let fld = this.GetFieldOfContextTask(itm);
14230
- if (fld === null)
14231
- return false;
14232
- let task = fld.getTask();
14233
- let vee_idx = fld.getId() + 1;
14234
- let expr_64 = new Sort();
14235
- expr_64.fldIdx = vee_idx;
14236
- expr_64.dir = dir.BoolVal;
14237
- let sort = expr_64;
14238
- let command = CommandFactory.CreateAddUserSortDataviewCommand(task.getTaskTag(), sort);
14239
- yield task.DataviewManager.Execute(command);
14240
- return true;
14241
- });
14242
- }
14243
- add_rt_ranges(Exp_params, locate) {
14244
- return __awaiter(this, void 0, void 0, function* () {
14245
- let varnum = Exp_params[0];
14246
- let min = Exp_params[1];
14247
- if (varnum.MgNumVal === null)
14248
- return false;
14249
- let itm = varnum.MgNumVal.NUM_2_LONG();
14250
- if (itm === 0)
14251
- return false;
14252
- let fld = this.GetFieldOfContextTask(itm);
14253
- if (fld === null)
14254
- return false;
14255
- let task = fld.getTask();
14256
- let vee_idx = fld.getId() + 1;
14257
- let expr_78 = new UserRange();
14258
- expr_78.veeIdx = vee_idx;
14259
- let rng = expr_78;
14260
- if (min.IsNull)
14261
- rng.nullMin = true;
14262
- if (!rng.nullMin && (min.Attr === StorageAttribute.ALPHA || min.Attr === StorageAttribute.UNICODE) && min.StrVal.length === 0)
14263
- rng.discardMin = true;
14264
- else {
14265
- if (!rng.nullMin) {
14266
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), min.Attr))
14267
- return false;
14268
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), min.Attr))
14269
- this.ConvertExpVal(min, fld.getType());
14270
- rng.min = min.ToMgVal();
14271
- }
14272
- }
14273
- if (Exp_params.length === 3) {
14274
- let max = Exp_params[2];
14275
- if (max.IsNull)
14276
- rng.nullMax = true;
14277
- if (!rng.nullMax && (max.Attr === StorageAttribute.ALPHA || max.Attr === StorageAttribute.UNICODE) && max.StrVal.length === 0)
14278
- rng.discardMax = true;
14279
- else {
14280
- if (!rng.nullMax) {
14281
- if (!StorageAttributeCheck.isTheSameType(fld.getType(), max.Attr))
14282
- return false;
14283
- if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), max.Attr))
14284
- this.ConvertExpVal(max, fld.getType());
14285
- rng.max = max.ToMgVal();
14286
- }
14287
- }
14288
- }
14289
- else
14290
- rng.discardMax = true;
14291
- if (!rng.discardMin || !rng.discardMax) {
14292
- if (locate) {
14293
- let command = CommandFactory.CreateAddUserLocateDataviewCommand(task.getTaskTag(), rng);
14294
- yield task.DataviewManager.Execute(command);
14295
- }
14296
- else {
14297
- let command2 = CommandFactory.CreateAddUserRangeDataviewCommand(task.getTaskTag(), rng);
14298
- yield task.DataviewManager.Execute(command2);
14299
- }
14300
- }
14301
- return true;
14302
- });
14303
- }
14304
14228
  eval_op_getParam(resVal, name) {
14305
14229
  Debug.Assert(!name.IsNull && name.StrVal !== null);
14306
14230
  let expVal = GlobalParams.Instance.get(name.StrVal);
@@ -14824,6 +14748,12 @@ class DataViewBase extends GuiDataViewBase {
14824
14748
  }
14825
14749
 
14826
14750
  class Record {
14751
+ get InCompute() {
14752
+ return this._inCompute;
14753
+ }
14754
+ get InRecompute() {
14755
+ return this._inRecompute;
14756
+ }
14827
14757
  constructor(dvOrTableCacheOrCIdOrRecord, dataview) {
14828
14758
  this._id = Int32.MinValue;
14829
14759
  this.dbViewRowIdx = 0;
@@ -14841,12 +14771,6 @@ class Record {
14841
14771
  else
14842
14772
  this.constructor_1(dvOrTableCacheOrCIdOrRecord, dataview);
14843
14773
  }
14844
- get InCompute() {
14845
- return this._inCompute;
14846
- }
14847
- get InRecompute() {
14848
- return this._inRecompute;
14849
- }
14850
14774
  constructor_0(dvOrTableCache) {
14851
14775
  if (dvOrTableCache instanceof DataViewBase)
14852
14776
  this._dataview = dvOrTableCache;
@@ -15642,14 +15566,14 @@ Record.FLAG_MODIFIED_ATLEAST_ONCE = (0x40);
15642
15566
  Record.INCREASE = true;
15643
15567
  Record.DECREASE = false;
15644
15568
  class DcValuesReference extends ObjectReferenceBase {
15569
+ get DcValues() {
15570
+ return this.Referent;
15571
+ }
15645
15572
  constructor(controlId, referencedDcValues) {
15646
15573
  super(referencedDcValues);
15647
15574
  this.ditIdx = 0;
15648
15575
  this.ditIdx = controlId;
15649
15576
  }
15650
- get DcValues() {
15651
- return this.Referent;
15652
- }
15653
15577
  Clone() {
15654
15578
  return new DcValuesReference(this.ditIdx, this.Referent);
15655
15579
  }
@@ -15925,21 +15849,6 @@ class RecordsTable {
15925
15849
  RecordsTable.REC_NOT_FOUND = -1;
15926
15850
 
15927
15851
  class DataviewHeaderBase {
15928
- constructor(task) {
15929
- this._cond = null;
15930
- this._task = null;
15931
- this.Loc = null;
15932
- this._dir = '\0';
15933
- this._id = 0;
15934
- this._keyIdx = 0;
15935
- this._retVal = null;
15936
- this.returnfield = null;
15937
- this.LinkStartAfterField = 0;
15938
- this.KeyExpression = 0;
15939
- this._task = task;
15940
- this._keyIdx = -1;
15941
- this._cond = new YesNoExp(true);
15942
- }
15943
15852
  get ReturnField() {
15944
15853
  if (this.returnfield === null && this._retVal !== null)
15945
15854
  this.returnfield = this.Task.getFieldByValueStr(this._retVal);
@@ -15960,6 +15869,21 @@ class DataviewHeaderBase {
15960
15869
  get LinkEvaluateCondition() {
15961
15870
  return this._linkEvalCondition;
15962
15871
  }
15872
+ constructor(task) {
15873
+ this._cond = null;
15874
+ this._task = null;
15875
+ this.Loc = null;
15876
+ this._dir = '\0';
15877
+ this._id = 0;
15878
+ this._keyIdx = 0;
15879
+ this._retVal = null;
15880
+ this.returnfield = null;
15881
+ this.LinkStartAfterField = 0;
15882
+ this.KeyExpression = 0;
15883
+ this._task = task;
15884
+ this._keyIdx = -1;
15885
+ this._cond = new YesNoExp(true);
15886
+ }
15963
15887
  SetAttributes(attributes) {
15964
15888
  let keys = attributes.Keys;
15965
15889
  keys.forEach((text) => {
@@ -17297,16 +17221,16 @@ class RecordOutOfDataViewException extends ApplicationException {
17297
17221
  }
17298
17222
 
17299
17223
  class XMLBasedDcValuesBuilder extends DcValuesBuilderBase {
17224
+ set SerializedDCVals(value) {
17225
+ this.parser.setXMLdata(value);
17226
+ this.parser.setCurrIndex(0);
17227
+ }
17300
17228
  constructor() {
17301
17229
  super();
17302
17230
  this.dcv = null;
17303
17231
  this.parser = null;
17304
17232
  this.parser = new XmlParser();
17305
17233
  }
17306
- set SerializedDCVals(value) {
17307
- this.parser.setXMLdata(value);
17308
- this.parser.setCurrIndex(0);
17309
- }
17310
17234
  Build() {
17311
17235
  this.dcv = null;
17312
17236
  let endContext = this.parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.parser.getCurrIndex());
@@ -17386,6 +17310,39 @@ const RECOVERY_ACT_NONE = 'N';
17386
17310
  const TRANS_STAT_CLOSED = 'C';
17387
17311
  const TRANS_STAT_OPENED = 'O';
17388
17312
  class DataView extends DataViewBase {
17313
+ set InsertAt(value) {
17314
+ this._insertAt = value;
17315
+ }
17316
+ get InsertAt() {
17317
+ return this._insertAt;
17318
+ }
17319
+ get CurrRec() {
17320
+ return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17321
+ }
17322
+ set CurrRec(value) {
17323
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17324
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17325
+ }
17326
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17327
+ if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17328
+ this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17329
+ }
17330
+ }
17331
+ get FlushUpdates() {
17332
+ return this._flushUpdates;
17333
+ }
17334
+ get HasMainTable() {
17335
+ return this._hasMainTable;
17336
+ }
17337
+ get CurrentRecId() {
17338
+ return this._currRecId;
17339
+ }
17340
+ get FirstRecord() {
17341
+ return this._recordsTab.getRecByIdx(0);
17342
+ }
17343
+ get LastRecord() {
17344
+ return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17345
+ }
17389
17346
  constructor(taskOrDataView) {
17390
17347
  super();
17391
17348
  this._cacheLruTimeStamp = 0;
@@ -17437,39 +17394,6 @@ class DataView extends DataViewBase {
17437
17394
  Object.assign(this, taskOrDataView);
17438
17395
  }
17439
17396
  }
17440
- set InsertAt(value) {
17441
- this._insertAt = value;
17442
- }
17443
- get InsertAt() {
17444
- return this._insertAt;
17445
- }
17446
- get CurrRec() {
17447
- return this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER;
17448
- }
17449
- set CurrRec(value) {
17450
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null && value === null) {
17451
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.resetDcValueId();
17452
- }
17453
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER = value;
17454
- if (this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER !== null) {
17455
- this._currRec_DO_NOT_USE_DIRECTLY_USE_SETTER_GETTER.SetDcValueId();
17456
- }
17457
- }
17458
- get FlushUpdates() {
17459
- return this._flushUpdates;
17460
- }
17461
- get HasMainTable() {
17462
- return this._hasMainTable;
17463
- }
17464
- get CurrentRecId() {
17465
- return this._currRecId;
17466
- }
17467
- get FirstRecord() {
17468
- return this._recordsTab.getRecByIdx(0);
17469
- }
17470
- get LastRecord() {
17471
- return this._recordsTab.getRecByIdx(this._recordsTab.getSize() - 1);
17472
- }
17473
17397
  Init() {
17474
17398
  this.init();
17475
17399
  }
@@ -19099,6 +19023,12 @@ class ReturnResultBase {
19099
19023
  }
19100
19024
 
19101
19025
  class ReturnResult extends ReturnResultBase {
19026
+ get Success() {
19027
+ return this.success;
19028
+ }
19029
+ get ErrorDescription() {
19030
+ return this.errorDescription;
19031
+ }
19102
19032
  constructor(errorDescriptionCodeOrErrorDescriptionOrInnerResult, innerResult) {
19103
19033
  super();
19104
19034
  this.errorDescription = null;
@@ -19113,12 +19043,6 @@ class ReturnResult extends ReturnResultBase {
19113
19043
  else
19114
19044
  this.constructor_03(errorDescriptionCodeOrErrorDescriptionOrInnerResult);
19115
19045
  }
19116
- get Success() {
19117
- return this.success;
19118
- }
19119
- get ErrorDescription() {
19120
- return this.errorDescription;
19121
- }
19122
19046
  constructor_00(errorDescriptionCode) {
19123
19047
  this.success = false;
19124
19048
  this.ErrorId = errorDescriptionCode;
@@ -19222,13 +19146,13 @@ class Transaction {
19222
19146
  }
19223
19147
 
19224
19148
  class TaskTransactionManager {
19149
+ get isClosingTopmostTask() {
19150
+ return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19151
+ }
19225
19152
  constructor(task) {
19226
19153
  this.task = null;
19227
19154
  this.task = task;
19228
19155
  }
19229
- get isClosingTopmostTask() {
19230
- return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
19231
- }
19232
19156
  AllowTransaction(transBegin, forLocal) {
19233
19157
  let result;
19234
19158
  if (forLocal)
@@ -19609,12 +19533,6 @@ class RemoteDataviewManager extends DataviewManagerBase {
19609
19533
  }
19610
19534
 
19611
19535
  class DataviewManager extends DataviewManagerBase {
19612
- constructor(task) {
19613
- super(task);
19614
- this.RemoteDataviewManager = null;
19615
- this.HasRemoteData = true;
19616
- this.RemoteDataviewManager = new RemoteDataviewManager(task);
19617
- }
19618
19536
  get TaskService() {
19619
19537
  return this.Task.TaskService;
19620
19538
  }
@@ -19629,6 +19547,12 @@ class DataviewManager extends DataviewManagerBase {
19629
19547
  get VirtualDataviewManager() {
19630
19548
  return this.TaskService.GetDataviewManagerForVirtuals(this.Task);
19631
19549
  }
19550
+ constructor(task) {
19551
+ super(task);
19552
+ this.RemoteDataviewManager = null;
19553
+ this.HasRemoteData = true;
19554
+ this.RemoteDataviewManager = new RemoteDataviewManager(task);
19555
+ }
19632
19556
  Execute(command) {
19633
19557
  return __awaiter(this, void 0, void 0, function* () {
19634
19558
  return yield this.CurrentDataviewManager.Execute(command);
@@ -19636,6 +19560,13 @@ class DataviewManager extends DataviewManagerBase {
19636
19560
  }
19637
19561
  }
19638
19562
 
19563
+ class Sort {
19564
+ constructor() {
19565
+ this.fldIdx = 0;
19566
+ this.dir = false;
19567
+ }
19568
+ }
19569
+
19639
19570
  class SortCollection {
19640
19571
  constructor() {
19641
19572
  this._sortTab = null;
@@ -19764,23 +19695,9 @@ class MgForm extends MgFormBase {
19764
19695
  dv = this._task.DataView;
19765
19696
  return (dv);
19766
19697
  }
19767
- moveInView(unit, direction, returnToCtrl) {
19768
- return __awaiter(this, void 0, void 0, function* () {
19769
- if (isNullOrUndefined(returnToCtrl))
19770
- yield this.moveInView_0(unit, direction);
19771
- else
19772
- yield this.moveInView_1(unit, direction, returnToCtrl);
19773
- });
19774
- }
19775
- moveInView_0(unit, direction) {
19776
- return __awaiter(this, void 0, void 0, function* () {
19777
- yield this.moveInView(unit, direction, true);
19778
- });
19779
- }
19780
- moveInView_1(unit, direction, returnToCtrl) {
19698
+ moveInView(unit, direction) {
19781
19699
  return __awaiter(this, void 0, void 0, function* () {
19782
19700
  let oldRecId = Int32.MinValue;
19783
- let lastParkedCtrl;
19784
19701
  let currRec = this.GetDataview().getCurrRec();
19785
19702
  let oldTaskMode = ' ';
19786
19703
  let returnToVisibleLine = false;
@@ -19871,11 +19788,7 @@ class MgForm extends MgFormBase {
19871
19788
  this.GetDataview().setTopRecIdxModified(true);
19872
19789
  try {
19873
19790
  this._suffixDone = false;
19874
- let newDisplayLine = this.GetDataview().getCurrRecIdx() + size;
19875
- if (unit === Constants.MOVE_UNIT_PAGE && this.isLineMode())
19876
- if (newDisplayLine > this.GetDataview().getSize() - 1)
19877
- visibleLine -= newDisplayLine - (this.GetDataview().getSize() - 1);
19878
- yield this.setCurrRowByDisplayLine(newDisplayLine, true, false);
19791
+ yield this.setCurrRowByDisplayLine(this.GetDataview().getCurrRecIdx() + size, true, false);
19879
19792
  this.GetDataview().setTopRecIdxModified(false);
19880
19793
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19881
19794
  }
@@ -19915,6 +19828,7 @@ class MgForm extends MgFormBase {
19915
19828
  try {
19916
19829
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19917
19830
  yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
19831
+ visibleLine = this.getLastValidRow();
19918
19832
  }
19919
19833
  catch (Exception) {
19920
19834
  }
@@ -20038,15 +19952,6 @@ class MgForm extends MgFormBase {
20038
19952
  else
20039
19953
  this.SetTableTopIndex();
20040
19954
  yield AccessHelper.eventsManager.handleInternalEventWithTask(this._task, InternalInterface.MG_ACT_REC_PREFIX);
20041
- if (returnToCtrl) {
20042
- lastParkedCtrl = this._task.getLastParkedCtrl();
20043
- if (lastParkedCtrl != null) {
20044
- let cursorMoved = yield lastParkedCtrl.invoke();
20045
- if (!cursorMoved) {
20046
- yield AccessHelper.eventsManager.HandleNonParkableControls(this._task);
20047
- }
20048
- }
20049
- }
20050
19955
  }
20051
19956
  catch (e) {
20052
19957
  if (e instanceof RecordOutOfDataViewException) {
@@ -20635,8 +20540,13 @@ class MgForm extends MgFormBase {
20635
20540
  finally {
20636
20541
  this._inRefreshDisp = false;
20637
20542
  }
20638
- if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed))
20543
+ if (refreshType === Constants.TASK_REFRESH_CURR_REC && (!_super.isLineMode.call(this) || this._tableRefreshed)) {
20639
20544
  this.FormRefreshed = true;
20545
+ if (this._task.isFirstRecordCycle() || AccessHelper.eventsManager.getIsInViewRefresh()) {
20546
+ Commands.addNoParameters(CommandType.SET_WC_IDLE, this);
20547
+ AccessHelper.eventsManager.setIsInViewRefresh(false);
20548
+ }
20549
+ }
20640
20550
  return true;
20641
20551
  });
20642
20552
  }
@@ -22094,8 +22004,12 @@ class EventHandler {
22094
22004
  continue;
22095
22005
  else if (this._operationTab.getOperation(oper.getBlockEnd()).getServerId() < nextOperIdx)
22096
22006
  continue;
22097
- if (!taskEnd)
22098
- yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE);
22007
+ if (!taskEnd) {
22008
+ let mainLevel = this._task.getMainLevel().toLowerCase();
22009
+ if ((yield this._task.evalEndCond(ConstInterface.END_COND_EVAL_IMMIDIATE)) && Environment.Instance.getSpecialImmediateHandlerEnd() &&
22010
+ mainLevel != "RP".toLowerCase() && mainLevel != "TP".toLowerCase() && mainLevel != "RS".toLowerCase() && mainLevel != "TS".toLowerCase())
22011
+ break;
22012
+ }
22099
22013
  if (this._taskMgdID !== mgdID)
22100
22014
  isChangedCurrWndRef.value = true;
22101
22015
  if (!this._task.isMainProg() && this._task.isOpenWin())
@@ -22906,13 +22820,6 @@ class UserEventsTable {
22906
22820
  }
22907
22821
 
22908
22822
  class FormsTable {
22909
- constructor(task, parentForm) {
22910
- this._task = null;
22911
- this._parentForm = null;
22912
- this._formsStringXml = null;
22913
- this._task = task;
22914
- this._parentForm = parentForm;
22915
- }
22916
22823
  get Count() {
22917
22824
  return this._formsStringXml.length;
22918
22825
  }
@@ -22921,6 +22828,13 @@ class FormsTable {
22921
22828
  return this._formsStringXml.get_Item(formDisplayIndex - 1);
22922
22829
  return null;
22923
22830
  }
22831
+ constructor(task, parentForm) {
22832
+ this._task = null;
22833
+ this._parentForm = null;
22834
+ this._formsStringXml = null;
22835
+ this._task = task;
22836
+ this._parentForm = parentForm;
22837
+ }
22924
22838
  fillData() {
22925
22839
  return __awaiter(this, void 0, void 0, function* () {
22926
22840
  this._formsStringXml = new List();
@@ -23116,6 +23030,47 @@ var Task_Direction;
23116
23030
  Task_Direction[Task_Direction["FORE"] = 1] = "FORE";
23117
23031
  })(Task_Direction || (Task_Direction = {}));
23118
23032
  class Task extends TaskBase {
23033
+ get ParentTask() {
23034
+ return this._parentTask;
23035
+ }
23036
+ set TryingToCommit(value) {
23037
+ this._tryingToCommit = value;
23038
+ }
23039
+ get TryingToCommit() {
23040
+ return this._tryingToCommit;
23041
+ }
23042
+ get TaskService() {
23043
+ if (this._taskService == null)
23044
+ this._taskService = new RemoteTaskService();
23045
+ return this._taskService;
23046
+ }
23047
+ static get CommandsProcessor() {
23048
+ return CommandsProcessorManager.GetCommandsProcessor();
23049
+ }
23050
+ get LogicalStudioParentTask() {
23051
+ if (this.StudioParentTask === null && !super.isMainProg()) {
23052
+ return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23053
+ }
23054
+ return this.StudioParentTask;
23055
+ }
23056
+ get KnownToServer() {
23057
+ return this._knownToServer;
23058
+ }
23059
+ set Transaction(value) {
23060
+ this.DataviewManager.CurrentDataviewManager.Transaction = value;
23061
+ }
23062
+ get Transaction() {
23063
+ return this.DataviewManager.CurrentDataviewManager.Transaction;
23064
+ }
23065
+ get TaskDefinitionId() {
23066
+ if (this.taskDefinitionId === null) {
23067
+ this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23068
+ }
23069
+ return this.taskDefinitionId;
23070
+ }
23071
+ static get IsBlockingBatch() {
23072
+ return false;
23073
+ }
23119
23074
  constructor(parent) {
23120
23075
  super();
23121
23076
  this._dvCache = null;
@@ -23184,47 +23139,6 @@ class Task extends TaskBase {
23184
23139
  }
23185
23140
  this.constructor_1(parent);
23186
23141
  }
23187
- get ParentTask() {
23188
- return this._parentTask;
23189
- }
23190
- set TryingToCommit(value) {
23191
- this._tryingToCommit = value;
23192
- }
23193
- get TryingToCommit() {
23194
- return this._tryingToCommit;
23195
- }
23196
- get TaskService() {
23197
- if (this._taskService == null)
23198
- this._taskService = new RemoteTaskService();
23199
- return this._taskService;
23200
- }
23201
- static get CommandsProcessor() {
23202
- return CommandsProcessorManager.GetCommandsProcessor();
23203
- }
23204
- get LogicalStudioParentTask() {
23205
- if (this.StudioParentTask === null && !super.isMainProg()) {
23206
- return GuiDataCollection.MGDataTable.GetMainProgByCtlIdx(this.ContextID, this._ctlIdx);
23207
- }
23208
- return this.StudioParentTask;
23209
- }
23210
- get KnownToServer() {
23211
- return this._knownToServer;
23212
- }
23213
- set Transaction(value) {
23214
- this.DataviewManager.CurrentDataviewManager.Transaction = value;
23215
- }
23216
- get Transaction() {
23217
- return this.DataviewManager.CurrentDataviewManager.Transaction;
23218
- }
23219
- get TaskDefinitionId() {
23220
- if (this.taskDefinitionId === null) {
23221
- this.taskDefinitionId = new TaskDefinitionId(this._ctlIdx, this.ProgramIsn, this.TaskIsn, this._isPrg);
23222
- }
23223
- return this.taskDefinitionId;
23224
- }
23225
- static get IsBlockingBatch() {
23226
- return false;
23227
- }
23228
23142
  constructor_0() {
23229
23143
  this.ActionManager = new ActionManager();
23230
23144
  this.DataView = new DataView(this);
@@ -25103,6 +25017,7 @@ class Task extends TaskBase {
25103
25017
  this.ActionManager.enable(InternalInterface.MG_ACT_SORT_RECORDS, enable);
25104
25018
  enable = yield this.checkProp(PropInterface.PROP_TYPE_TASK_PROPERTIES_ALLOW_INDEX, true);
25105
25019
  this.ActionManager.enable(InternalInterface.MG_ACT_VIEW_BY_KEY, enable);
25020
+ this.ActionManager.enable(InternalInterface.MG_ACT_DUMP_ENVIRONMENT, true);
25106
25021
  });
25107
25022
  }
25108
25023
  setEnableZoomHandler() {
@@ -25722,6 +25637,9 @@ class CompMainPrgTable {
25722
25637
  }
25723
25638
 
25724
25639
  class MGData {
25640
+ get ForceModal() {
25641
+ return this.forceModal;
25642
+ }
25725
25643
  constructor(toClient, toServer, id, parent, isModal, forceModal) {
25726
25644
  this._expHandlers = null;
25727
25645
  this._id = 0;
@@ -25742,9 +25660,6 @@ class MGData {
25742
25660
  else
25743
25661
  this.constructor_1(id, parent, isModal, forceModal);
25744
25662
  }
25745
- get ForceModal() {
25746
- return this.forceModal;
25747
- }
25748
25663
  constructor_0(id, parent, isModal) {
25749
25664
  this._timerHandlers = new HandlersTable();
25750
25665
  this._expHandlers = new HandlersTable();
@@ -26357,6 +26272,7 @@ class EventsManager {
26357
26272
  this.confirmationDialogTitle = 'Session is about to be terminated!';
26358
26273
  this._lastFailedFocusedControl = null;
26359
26274
  this.isSpinnerShown = false;
26275
+ this.isInViewRefresh = false;
26360
26276
  this.SpinnerStopped = new Subject();
26361
26277
  this._rtEvents = new Stack();
26362
26278
  this._eventsQueue = new MgPriorityBlockingQueue();
@@ -28275,6 +28191,7 @@ class EventsManager {
28275
28191
  }
28276
28192
  break;
28277
28193
  case InternalInterface.MG_ACT_SERVER_TERMINATION:
28194
+ case InternalInterface.MG_ACT_DUMP_ENVIRONMENT:
28278
28195
  cmd = CommandFactory.CreateEventCommand(task.getTaskTag(), intEvtCode);
28279
28196
  cmdsToServer.Add(cmd);
28280
28197
  yield CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
@@ -28610,6 +28527,7 @@ class EventsManager {
28610
28527
  else if (intEvtCode === InternalInterface.MG_ACT_RT_REFRESH_SCREEN && task.getMode() !== Constants.TASK_MODE_QUERY && !task.getAfterRetry()) {
28611
28528
  yield dv.currRecCompute(true);
28612
28529
  }
28530
+ this.setIsInViewRefresh(true);
28613
28531
  yield this.handleInternalEventWithTask(task, InternalInterface.MG_ACT_REC_PREFIX);
28614
28532
  if (!this.GetStopExecutionFlag() && !task.getPreventControlChange()) {
28615
28533
  if (!(task === LastFocusedManager.Instance.getLastFocusedTask() || !task.pathContains(LastFocusedManager.Instance.getLastFocusedTask())))
@@ -29364,6 +29282,12 @@ class EventsManager {
29364
29282
  return false;
29365
29283
  return true;
29366
29284
  }
29285
+ getIsInViewRefresh() {
29286
+ return this.isInViewRefresh;
29287
+ }
29288
+ setIsInViewRefresh(inViewRefresh) {
29289
+ this.isInViewRefresh = inViewRefresh;
29290
+ }
29367
29291
  }
29368
29292
  EventsManager.REAL_ONLY = true;
29369
29293
  EventsManager.MAX_OPER = 9999;
@@ -29886,13 +29810,6 @@ class VerifyCommand extends ClientTargetedCommandBase {
29886
29810
  }
29887
29811
 
29888
29812
  class EnhancedVerifyCommand extends VerifyCommand {
29889
- constructor() {
29890
- super();
29891
- this._buttonsID = '\0';
29892
- this._image = '\0';
29893
- this._returnValStr = null;
29894
- this._returnVal = null;
29895
- }
29896
29813
  ProcessMessageBoxResponse(task, returnValue) {
29897
29814
  return __awaiter(this, void 0, void 0, function* () {
29898
29815
  if (task !== null)
@@ -29925,6 +29842,13 @@ class EnhancedVerifyCommand extends VerifyCommand {
29925
29842
  break;
29926
29843
  }
29927
29844
  }
29845
+ constructor() {
29846
+ super();
29847
+ this._buttonsID = '\0';
29848
+ this._image = '\0';
29849
+ this._returnValStr = null;
29850
+ this._returnVal = null;
29851
+ }
29928
29852
  }
29929
29853
 
29930
29854
  class ResetRangeCommand extends ClientTargetedCommandBase {
@@ -30029,12 +29953,6 @@ class ResetLocateCommand extends ClientTargetedCommandBase {
30029
29953
  }
30030
29954
 
30031
29955
  class ResultCommand extends ClientTargetedCommandBase {
30032
- constructor() {
30033
- super();
30034
- this._isNull = false;
30035
- this._attr = StorageAttribute.NONE;
30036
- this._val = null;
30037
- }
30038
29956
  Execute(res) {
30039
29957
  return __awaiter(this, void 0, void 0, function* () {
30040
29958
  if (this._isNull)
@@ -30062,6 +29980,12 @@ class ResultCommand extends ClientTargetedCommandBase {
30062
29980
  break;
30063
29981
  }
30064
29982
  }
29983
+ constructor() {
29984
+ super();
29985
+ this._isNull = false;
29986
+ this._attr = StorageAttribute.NONE;
29987
+ this._val = null;
29988
+ }
30065
29989
  }
30066
29990
 
30067
29991
  class AddSortCommand extends ClientTargetedCommandBase {
@@ -30432,19 +30356,9 @@ class CommandsTable {
30432
30356
  }
30433
30357
  }
30434
30358
 
30435
- let CurrentClientVersion = '4.1000.0-dev4100.36';
30359
+ let CurrentClientVersion = '4.1000.0-dev4100.361';
30436
30360
 
30437
30361
  class ClientManager {
30438
- constructor() {
30439
- this._globalUniqueSessionId = null;
30440
- this._buttonIsClicked = false;
30441
- RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30442
- LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30443
- LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30444
- RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30445
- this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30446
- this.RegisterDelegates();
30447
- }
30448
30362
  static get Instance() {
30449
30363
  if (ClientManager._instance === null)
30450
30364
  ClientManager._instance = new ClientManager();
@@ -30646,6 +30560,16 @@ class ClientManager {
30646
30560
  Logger.Instance.WriteToLog("-----------------------------------------------------------------------------", true);
30647
30561
  }
30648
30562
  }
30563
+ constructor() {
30564
+ this._globalUniqueSessionId = null;
30565
+ this._buttonIsClicked = false;
30566
+ RuntimeContextBase.Instance.Init(RemoteCommandsProcessor.RC_NO_CONTEXT_ID);
30567
+ LastFocusedManager.Instance.Init(MGDataCollection.Instance);
30568
+ LastFocusedManager.Instance.LastActionTime = Misc.getSystemMilliseconds();
30569
+ RemoteCommandsProcessor.ShouldScrambleAndUnscrambleMessages = true;
30570
+ this._globalUniqueSessionId = UniqueIDUtils.GetUniqueMachineID() + "_";
30571
+ this.RegisterDelegates();
30572
+ }
30649
30573
  InitGuiManager() {
30650
30574
  Manager.EventsManager = EventsManager.Instance;
30651
30575
  Manager.DefaultServerName = ServerConfig.Instance.getServer();
@@ -30701,7 +30625,7 @@ class ClientManager {
30701
30625
  yield MGDataCollection.Instance.addMGData(mgd, 0, true);
30702
30626
  yield ClientManager.Instance.WorkThreadExecution();
30703
30627
  if (Logger.Instance.ShouldLog()) {
30704
- Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, "dd/MM/yyyy", Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
30628
+ Logger.Instance.WriteToLog(OSEnvironment.EolSeq + "Ended on " + DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_DATE_FORMAT, Logger.Instance) + OSEnvironment.EolSeq + OSEnvironment.EolSeq, false);
30705
30629
  }
30706
30630
  }
30707
30631
  else {