Skip to main content

i4scada Knowledge Base

WCF Unsecured Operations Documentation

Abstract

The WCF Unsecured Operations web service handles all the Unsecured Operations. This article describes all the available methods.

This WCF web service handles all the Unsecured Operations. The following methods are available:

GetProjectAuthorizations

Syntax

GetProjectAuthorizations();

Description

Retrieves all available project authorizations

Parameters

None

Return Value

A list of ProjectAuthorizationDTO objects, each containing:

  • Name (string) - the name of the project authorization

  • Description (string) - the description of the project authorization

GetCurrentUserAuthorizations

Syntax

GetCurrentUserAuthorizations(string userName, bool isDomainUser);

Description

Retrieves all authorizations (both system and project authorizations) for the supplied user

Parameters

  • userName (string) - the user for which to retrieve all the available authorizations

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

Return Value

The UserAuthorizationInfo object, containing the following:

  • ProjectAuthorizations (IEnumerable<ProjectAuthorizationDTO>) - the list of project authorization data transfer objects, each containing:

    • Name (string) - the name of the project authorization

    • Description (string) - the description of the project authorization

  • SystemAuthorizations (IEnumerable<SystemAuthorizationDTO>) - the list of system authorization data transfer objects, each containing:

    • Name (string) - the name of the system authorization

    • Description (string) - the description of the system authorization

  • AuthorizationGroups (IEnumerable<AuthorizationGroupDTO>) - the list of authorization groups data transfer objects, each containing:

    • Name (string) - the name of the authorization group

    • Description (string) - the description of the authorization group

    • CheckAccessGroups (bool) -

    • Version () -

GetUserSystemAuthorizations

Syntax

GetUserSystemAuthorizations(string userName, bool isDomainUser);

Description

Retrieves the system authorizations for the specified user

Parameters

  • userName (string) - the user for which to retrieve the authorizations

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

Return Value

A list of SystemAuthorizationDTO objects, each containing:

  • Name (string) - the name of the system authorization

  • Description (string) - the description of the system authorization

GetUserProjectAuthorizations

Syntax

GetUserProjectAuthorizations(string userName, bool isDomainUser);

Description

Retrieves the project authorizations for the specified user

Parameters

  • userName (string) - the user for which to retrieve the authorizations

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

Return Value

A list of SystemAuthorizationDTO objects, each containing:

  • Name (string) - the name of the project authorization

  • Description (string) - the description of the project authorization

GetUserAuthorizationGroups

Syntax

GetUserAuthorizationGroups(string userName, bool isDomainUser);

Description

Retrieves the authorization groups for the specified user

Parameters

  • userName (string) - the user for which to retrieve the authorization groups

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

Return Value

A list of AuthorizationGroupDTO objects, each containing:

  • Name (string) - the name of the authorization group

  • Description (string) - the description of the authorization group

  • CheckAccessGroups (bool) -

  • Version () -

CheckProjectAuthorizations

Syntax

CheckProjectAuthorizations(string userName, bool isDomainUser, string[] projectAuthorizations);

Description

Checks if the current user has some specific project authorizations

Parameters

  • userName (string) - the user for which to check for authorizations

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

  • projectAuthorizations (string[]) - the project authorizations to be checked

Return Value

A dictionary which has for each requested authorization a flag which indicates if the user has (or not) that authorization

CheckSystemAuthorizations

Syntax

CheckSystemAuthorizations(string userName, bool isDomainUser, string[] systemAuthorizations);

Description

Checks if the current user has some specific system authorizations

Parameters

  • userName (string) - the user for which to check for authorizations

  • isDomainUser (bool) - the flag that indicates if the user is a domain user or not

  • systemAuthorizations (string[]) - the system authorizations to be checked

Return Value

A dictionary which has for each requested authorization a flag which indicates if the user has (or not) that authorization

GetAllUsers

Syntax

GetAllUsers();

Description

Retrieves all users in an unsecured manner

Parameters

None

Return Value

A list of UserDTO objects, each containing:

  • UserName (string) - the name of the user

  • IsDomainUser (bool) - the flag that indicates if the user is a domain user or not

GetAlarmGroups

Syntax

GetAlarmGroups(int languageID);

Description

Retrieves all alarm groups in an unsecured manner

Parameters

  • languageID (int ) - the language id in which the data is retrieved

Return Value

A list of AlarmGroupDTOs, each containing:

  • id (guid) - the unique id of the alarm group

  • symbolicTextName (string) - the symbolic name of the alarm group

  • symbolicTextTranslation (string) - the translation of the alarm group

GetAlarmTypes

Syntax

GetAlarmTypes(int languageID);

Description

Retrieves all alarm types in an unsecured manner

Parameters

  • languageID (int ) - the language id in which the data is retrieved

Return Value

A list of AlarmTypeDTO objects, each containing:

  • id (guid) - the unique id of the alarm type

  • symbolicTextName (string) - the symbolic name (language independent) of the alarm type

  • symbolicTextTranslation (string) - the translated name of the alarm type

GetExtendedAlarmProperties

Syntax

GetExtendedAlarmProperties();

Description

Retrieves all alarm extended properties in an unsecured manner

Parameters

None

Return Value

A list of ExtendedAlarmPropertyDTO objects, each containing:

  • Index (int) - the index of the extended alarm property

  • IsActive (bool) - the status of the extended alarm property

  • DataType (ExtendedAlarmDataType) - the object defining the data type of the extended alarm property. It's members are:

    • String

    • Integer

    • Double

  • SymbolicTextName (string) - the symbolic name (language independent) of the extended alarm property

GetSignalDefinitions

Syntax

GetSignalDefinitions(GetSignalDefinitionsFilterDTO filter, int languageId, int startIndex, int count);

Description

Gets the signal definitions that respect the filter in a paged manner

Parameters

  • filter (GetSignalDefinitionsFilterDTO) - the filtering object. With this you can specify a certain server or signal (alias) names and log tags to filter out the list. In this filter you can also specify the amount of data that is retrieved:

    • ServerNames (IEnumerable<string>) - the list of server names

    • AliasNames (IEnumerable<string>) - the list of signal aliases

    • LogTags (IEnumerable<string>) - the list of log tags

    • ResultsFilter (SignalDefinitionResultsFilter) - the enumeration of flags for specifying the amount of data:

      • Basic

      • Extended

      • Connector

      • Group

      • WriteGroup

      • Server

      • Logs

      • DiscreteValues

      • All

  • languageId (int ) - the language id in which the data is retrieved

  • startIndex (int ) - the start index of the page

  • count (int ) - the count of the current page

Return Value

An enumeration of SignalDefinitionDTO objects that contain details about the requested signals:

  • Name (string) - the name of the signal

  • AliasName (string) - the friendly name of the signal

  • Description (string) - the signal's description

  • DescriptionSymbolicText (string) - the symbolic text of the signal description

  • Active (bool) - true if the signal is active, false if not

  • Unit (string) - the signal value unit

  • Status (int) -

  • OPCEnabled (bool) - when this is true, the signal value will be sent to the WCS OPC server, so other OPC clients can access the value from the Server like from an OPC server

  • OPCQuality (int) - the quality of the signal

  • FactorX1 (double) - a real value of the PLC used to transform the signal value using a mathematical formula into a SCADA readable value Y1. The transformation is based on a XOY coordinate system and needs 4 values (X1, X2, Y1, Y1) to be applied.

  • FactorX2 (double) - a real value of the PLC used to transform the signal value using a mathematical formula into a SCADA readable value Y2. The transformation is based on a XOY coordinate system and needs 4 values (X1, X2, Y1, Y1) to be applied.

  • FactorY1 (double) - the SCADA value of the X1 PLC value. The transformation is based on a XOY coordinate system and needs 4 values (X1, X2, Y1, Y1) to be applied.

  • FactorY2 (double) - the SCADA value of the X2 PLC value. The transformation is based on a XOY coordinate system and needs 4 values (X1, X2, Y1, Y1) to be applied.

  • LogUserActivity (bool) - if true, the user's activity on this signal is logged

  • Hysterese (double) - the absolute hysteresis value for signal visualization. Hysteresis refers to the difference between consecutive signal values of a signal. Only field-level signal values are taken into account.

  • HystereseLog (double) - the absolute hysteresis value for logs

  • HystereseAlarm (double) - the absolute hysteresis value for alarms

  • Hysterese_2 (double) - the relative hysteresis value for signal visualization

  • HystereseLog_2 (double) - the relative hysteresis value for logs

  • HystereseAlarm_2 (double) - the relative hysteresis value for alarms

  • Maximum (double) - the maximum signal value for writing

  • Minimum (double) - the minimum signal value for writing

  • VChannel (bool) - if true, the signal is a virtual channel

  • VChannelTypeID (int) - the virtual channel type, script or collective alarm

  • VChannelInitValue (string) - the initialization value of the virtual channel

  • AltValue (bool) - if true, the substitute values are used

  • AltValue_1 (double) - the value used when the minimum value is not reached or the maximum value is exceeded

  • AltValue_2 (double) -

  • AltValue_3 (double) -

  • AltValue_4 (double) -

  • DataTypeID (int) -

  • OfflineValue (string) - the value when the signal is offline

  • DiscreteValues (IEnumerable<DiscreteValueDTO>) - a list of discrete value data transfer objects, each containing:

    • Name (string) - the name of the discrete value

    • Value (double) - the value of the discrete value

    • Description (string) - the description of the discrete value

  • Logs (IEnumerable<LogDTO>) - the list of log data transfer objects, each containing:

    • LogTag (string) - the name of the log

    • Description (string) - the description of the log

    • Active (bool) - if true, the log is active for this signal

  • Server (ServerDTO) - the server data transfer object, containing:

    • id (guid) - the unique id of the server

    • name (string) - the name of the server

    • description (string) - the description of the server

  • Connector (ConnectorDTO) - the connector data transfer object, containing:

    • name (string) - the name of the connector

    • description (string) - the description of the connector

  • Group (SignalGroupDTO) - the signal group data transfer object, containing:

    • name (string) - the name of the signal group

    • description (string) - the description of the signal group

  • WriteGroup (WriteGroupDTO) - the write group data transfer object, containing:

    • name (string) - the name of the write group

    • description (string) - the description of the write group

The results have exactly the same order as the supplied list. If a signal name is invalid (corresponding signal does not exist) the results will contain a null value on that position.