Applies To:
  • CitectSCADA 3.xx, 4.xx, 5.xx, 6.00
  • CitectHMI 3.xx, 4.xx, 5.xx, 6.00

Creating a user at runtime via the UserCreate() function works successfully, however if you then view the newly created user in Citect Explorer you will see that the Type field is blank.

While this has no detrimental effect, it does make ascertaining which type a user belongs to difficult. Is this a bug?


The Type field is used in configuration only to specify a class of user that can then be used as the basis for creating new users in runtime via the UserCreate() cicode function. When this function is run, it displays a form where you can select the user Type. When you do this, your new user will inherit the properties of the chosen user class (or Type) record that you have already created. In doing this it uses the first user record with a matching Type value.

In configuration, you should decide what user classes you will need. Each class (or Type) would contain any specific Global Privilege, Viewable Areas, Areas for Privilege and Entry and Exit Command values. You therefore maintain just one user record for each class and then base other individual users on this.

If you create new users in configuration in the usual way by using Add, Replace technique, then you will generate multiple user records with the same Type value. Whilst this will not directly cause a problem for indiviual records it could confuse development or provide scope for inconsistencies and unexpected behaviour if field values are changed. Therefore when adding records in configuration, you can also remove duplicate Type values from the newly added user records.

Citect has confirmed this to be an issue in CitectHMI/SCADA version 3.00 to 6.00. We are researching this issue and will post new information here as it becomes available.