Connection Methods

Connection Methods

The Eriksson Beam API provides several ways to connect to Eriksson Beam, each suited to different use cases. This guide helps you choose the right approach.

Overview

ClassUse CaseManages Process
ErikssonBeamLauncherStart fresh instance with specific filesYes
ErikssonBeamFinderFind and connect to any running instanceNo
ErikssonBeamClientConnect to specific process by IDNo
ErikssonBeamFileManagerBatch file operations with auto-relaunchYes

Decision Guide

ScenarioUse This Class
Launch Eriksson Beam for batch file processingErikssonBeamFileManager
Launch Eriksson Beam for single/few filesErikssonBeamLauncher
Connect to running instance (known Process ID)ErikssonBeamClient.AttemptConnection
Connect to running instance (unknown Process ID)ErikssonBeamFinder

Quick Comparison

ErikssonBeamLauncher

Best for: Starting automation from scratch, guaranteed clean state.

var args = new ErikssonBeamLauncherArgs
{
    LicenseKey = licenseKey,
    ExecutablePath = @"C:\...\ErikssonBeam.exe",
    FilesToOpen = new[] { @"C:\Projects\beam.ebf" },
    CloseErikssonBeamOnClientDisconnect = true
};

using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
var client = launcher.Client;

ErikssonBeamFinder

Best for: Connecting to user-launched Eriksson Beam instance.

var args = new ErikssonBeamConnectionAttemptArgs
{
    LicenseKey = licenseKey
};

var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
// or
var client = await ErikssonBeamFinder.GetFirstClientWithFile("project.ebf", args);

ErikssonBeamClient

Best for: Connecting to a specific known process.

var args = new ErikssonBeamConnectionAttemptArgs
{
    LicenseKey = licenseKey,
    ProcessID = 12345  // Known process ID
};

var client = await ErikssonBeamClient.AttemptConnection(args);

ErikssonBeamFileManager

Best for: Processing many files with automatic handling of Eriksson Beam lifecycle.

var args = new ErikssonBeamLauncherArgs
{
    LicenseKey = licenseKey,
    ExecutablePath = @"C:\...\ErikssonBeam.exe"
};

using var fileManager = await ErikssonBeamFileManager.Initialize(args);
await fileManager.OpenFiles(new[] { "file1.ebf", "file2.ebf" });
var client = fileManager.Launcher.Client;

Important Notes

10-Minute Idle Timeout

Eriksson Beam only listens for API connections for 10 minutes after launch. This timeout:

  • Is not reset by manually interacting with the UI
  • Requires restarting Eriksson Beam to reset

If connections fail, restart Eriksson Beam and try again.

Disposal

Always dispose of connection objects properly:

// Using statement (recommended)
using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);

// Or explicit disposal
var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
try
{
    // Work with client...
}
finally
{
    client.Dispose();
}

Launcher vs Client Disposal

  • ErikssonBeamLauncher.Dispose(): Closes client AND optionally closes Eriksson Beam
  • ErikssonBeamClient.Dispose(): Only closes the client connection

Next Steps