Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA Pipeline Operations for Liquids

ValveDependencyList Business Logic Tier (BLT)

  • Last UpdatedApr 24, 2025
  • 4 minute read

You can use the ValveDependencyList Business Logic Tier (BLT) to retrieve a list of dependent pumps for the specified valve. Executing this BLT will return a data table where each row specifies the pump, the pump station, and the associated Flow Network. This BLT is used on the baseline Valve Control display to show the list of dependent pumps for a given valve.

The ValveDependencyList BLT uses the raw data available in the valve.appFlags.DependencyArray RealTime database (RTDB) field to retrieve the list of dependent pumps. The valve.appFlags.DependencyArray RTDB field stores the dependent pump point numbers (ptnum of the pump records in the RTDB) up to 2000 pumps. In the very unlikely scenario that the number of dependent pumps exceeds the limit of 2000, pumps in the middle will be excluded from the array. The array of dependent pumps is persisted in such a way that pump stations are ordered from the most upstream station to the most downstream station affected by the valve closure. For interconnected scenarios where multiple flow paths are concurrently active, pump stations within upstream interconnected Flow Networks will appear first, followed by pump stations in the Flow Network containing the valve of interest, and followed by pump stations within downstream interconnected Flow Networks. The ValveDependencyList BLT parses the pump record numbers and retrieves the pump name, station name, and Flow Network name for each dependent pump.

Refer to the following example for a comparison between the information stored in the valve.appFlags.dependencies RTDB field, the information stored in the valve.appFlags.DependencyArray RTDB field, and the information returned as a result of the ValveDependencyList BLT call. The example shows two scenarios:

  • Single Flow Network: All stations are within a single Flow Network and a total of 7 pumps are dependent on the valve of interest.

  • Multiple Interconnected Flow Networks: Stations are distributed across three interconnected Flow Networks and a total of 9 pumps are dependent on the valve of interest.

    Single Flow Network

    Multiple Interconnected Flow Networks

    Valve.appFlags.dependencies

     

     

    Note the following limitations in this scenario:

    • It is not clear what the last affected pump/pump station is in Flow Network A.

    • It is not clear what the first affected pump/pump station is in Flow Network C.

    • There is no information on whether there are other Flow Networks between A and C that have dependencies on the valve.

    Valve.appFlags.DependencyArray

    Numbers in the second column (for example, 452, 123, 258 .... and so on) are the ptnums of the pump records in the RTDB.

    The dependencies are valid until the first 0 value is encountered. In this example, only the records highlighted in yellow are valid dependencies.

    Numbers in the second column (for example, 452, 123, 258 .... and so on) are the ptnums of the pump records in the RTDB.

    The dependencies are valid until the first 0 value is encountered. In this example, only the records highlighted in yellow are valid dependencies.

    ValveDependencyList

Parameters

The following table describes the parameters for the ValveDependencyList BLT.

Name

Type

Optional

Output

Description

ValveName

String

False

False

This input parameter specifies the name of the valve to gather dependencies from.

Result

Int

False

True

This parameter indicates the execution result. It will return a zero (0) for success and a non-zero value if an error occurs.

Message

String

True

True

This output parameter will provide a result message after execution.

Results

The BLT will return a DataTable object, which will contain rows with the following information:

Name

Type

Description

Pump

String

The name of the pump that a valve is critical for.

Station

String

The name of the station the pump belongs to.

FlowNetwork

String

The name of the Flow Network the pump belongs to.

The rows in the DataTable object will be ordered such that pumps that belong to the same Flow Network appear contiguously.

ValveDependencyList BLT Programming Example

The following is an example of how you can program using the ValveDependencyList Business Logic Tier (BLT):

BLTParameterValueAccessor result = default;

BLTParameterValueAccessor message = default;

var bltClientFactory = new BLTClientFactory();

using (var client = bltClientFactory.Create("ValveDependencyList"))

{

client.AddParameter(valveName);

client.AddParameter(out message); // Message is an out param

client.AddParameter(out result); // Result is an out param

client.Execute();

if (Int32.TryParse(result.Value.ToString(), out int r) && r != 0)

{

Console.WriteLine("ValveDependencyList failed, error:" + message.Value.ToString());

}

else

{

var output = client.GetResults();

if (output.Count > 0)

{

var resultset = output.GetRecords("Valve Dependency List");

foreach (var row in resultset)

{

// Do something with the dependencies

Console.WriteLine($"[{row["Pump"]}, {row["Station"]}, {row["Flow Network"]}]");

}

}

}

}

In This Topic