Class RunResult
Encapsulates everything returned by a Workspace.XBR.Xperiflow.Routines.Runs.Run in a stopping criteria state: execution details, run metadata, and every artifact (both in-memory and file-backed) produced by the routine method.
Namespace: Workspace.XBR.Xperiflow.Routines.Runs
Assembly: Xperiflow.dll
public class RunResult
Examples
Typical pattern – read an in-memory JSON artifact and a stored CSV:
// Run has already completed successfully and returned a RunResult
RunResult rr = run.StartAndWaitForSuccessfulCompletionResultAsync().Result;
// ---------- In-memory JSON ----------
ArtifactInfo aiJs = rr.GetArtifactInfo("concat_str"); // JSON-serialisable
if (aiJs?.HasInMemoryArtifact == true)
{
InMemoryJsonArtifact jsArtifact = aiJs.GetInMemoryJsonArtifactAsync().Result;
JObject j = jsArtifact.GetArtifactData();
}
// ---------- Stored CSV on disk ----------
ArtifactInfo aiCsv = rr.GetArtifactInfo("predictions"); // Stored on file system
if (aiCsv?.HasArtifactStored == true)
{
Artifact art = aiCsv.GetArtifactAsync().Result;
string csv = art.GetDataAsObjectAsync().Result;
}
Remarks
A RunResult instance is produced by the “_AndWaitForSuccessfulCompletion_” helpers on Workspace.XBR.Xperiflow.Routines.Runs.Run—for example Workspace.XBR.Xperiflow.Routines.Runs.Run.StartAndWaitForSuccessfulCompletionResultAsync(System.Threading.CancellationToken). It is a read-only snapshot; changing the underlying run on the server will not mutate an existing RunResult.
What the object delivers
-
Workspace.XBR.Xperiflow.Routines.Runs.RunResult.RunMetadata – Parameters, labels, times, user info…
-
Workspace.XBR.Xperiflow.Routines.Runs.RunResult.ExecutionMetadata – Queued / running / completed timestamps, percent complete, final status.
-
Workspace.XBR.Xperiflow.Routines.Runs.RunResult.ArtifactInfos – One entry per artifact produced. Each Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactInfo tells you whether the artifact is already in memory (
HasInMemoryArtifact) and/or stored in the MetaFileSystem (HasArtifactStored).
Choosing an access path
-
For JSON-serialisable, string, or tabular artifacts use
Workspace.XBR.Xperiflow.Routines.Artifacts.Artifact.GetDataAsObjectAsync%60%601(System.Threading.CancellationToken)– the SDK deserialises directly into aDataTable,string,JObject… -
Call Workspace.XBR.Xperiflow.Routines.Artifacts.Artifact.GetDataFilePathsAsync(System.Threading.CancellationToken) when you need raw file control (MetaDB queries, streaming large parquet files, images, model binaries, etc.).
Synchronous consumption
All asynchronous helpers can be used synchronously via
.Result or .Wait(). For example:
// Run synchronously and capture the full result
RunResult rr = run.StartAndWaitForSuccessfulCompletionResultAsync().Result;
// ----- CSV artifact retrieved from the MetaFileSystem -----
ArtifactInfo ai = rr.GetArtifactInfo("predictions");
Artifact a = ai.GetArtifactAsync().Result; // materialise Artifact
string csv = a.GetDataAsObjectAsync().Result; // read file content
Properties
ExecutionMetadata
The execution metadata associated with the Run that is in a completed state.
public ExecutionMetadata ExecutionMetadata { get; }
RunMetadata
The run metadata associated with the Run.
public RunMetadata RunMetadata { get; }
ArtifactInfos
The list of ArtifactInfos for the run.
public List<ArtifactInfo> ArtifactInfos { get; }
Methods
GetArtifactInfo(string)
Retrieve an Artifact Info object by its qualified key.
public ArtifactInfo? GetArtifactInfo(string qualifiedKey)
Returns
Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactInfo
Parameters
| Type | Name |
|---|---|
System.String | qualifiedKey |
Inherited Members
System.Object.Equals(System.Object)System.Object.Equals(System.Object,System.Object)System.Object.GetHashCodeSystem.Object.GetTypeSystem.Object.MemberwiseCloneSystem.Object.ReferenceEquals(System.Object,System.Object)System.Object.ToString