Adding local environment entries from a .NETInput node

Add information into the local environment by using the connector code for a .NETInput node.

About this task

When developing for a .NETInput node, the content of the local environment can be populated from within the connector code for the .NETInput node as each message is created. The updated local environment allows metadata about the specific Event or PollingResult to be stored for use by later nodes in the flow.

The data is put in a section of the local environment that is called DotNet by default. Under DotNet in the folder structure is an Input folder. You can create further folders and elements under the Input folder.

You can change the top-level DotNet folder name by setting the Name property of the factory from within the connectors Constructor(), Initialize() or Start() methods.

You cannot change the Input folder name.

To create folders and elements below the Input folder, override the BuildProperties method on a subclass of NBPollingResult or NBByteArrayPollingResult. In this method, return a Dictionary that is populated with keys and values that become Name or NameValue elements under the Input folder. If the key has multiple parts that are separated by / characters, then a local environment tree is created, as shown by the following code examples.

This code snippet is from a user-defined NBPollingResult subclass:

public override Dictionary<string, string> BuildProperties()
    {
      var result = new Dictionary<string, string>();
      result.Add("a/b/c/d", "Hello");
      result.Add("a/e/f", "World!");
      return result;
    }

The previous code results in a Local Environment tree that looks like this:

  (0x01000000:Name):DotNet = (
    (0x01000000:Name):Input = (
      (0x01000000:Name):a = (
        (0x01000000:Name):b = (
          (0x01000000:Name):c = (
            (0x03000000:NameValue):d = 'Hello' (CHARACTER)
          )
        )
        (0x01000000:Name):e = (
          (0x03000000:NameValue):f = 'World!' (CHARACTER)
        )
      )
    )
  ) 

The next code snippet shows how to change the name of the top-level DotNet folder to the example name MyConnectorFactory:

    public override void Initialize()
    {
      NBConnectorFactory factory = ConnectorFactory;
      factory.Name = "MyConnectorFactory";
      //Other code here.    }