Zum Hauptinhalt springen

CreateZipArchiveNodeConfiguration

Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform

Configuration for CreateZipArchive@1. Bundles a set of files into a single ZIP archive written as base64 to .

The value at must be a JSON array of entries of the shape

{ "fileName": "AP/RE-2025-001.pdf", "contentBase64": "JVBERi0..." }

. A fileName may contain forward slashes to create folders inside the archive (e.g. group by AP/AR). Keys are matched case-insensitively.

Instead of a pre-composed fileName, an entry may carry pathSegments — an array of folder names ending with the file name (incl. extension), e.g. ["FY 2026", "2026-01", "2026-01-15_ACME.pdf"]. Each segment is sanitized for file-system use (path separators and other invalid characters are replaced), so data-derived values such as vendor names cannot create unintended folders or invalid entry names.

public record CreateZipArchiveNodeConfiguration : SourceTargetPathNodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<CreateZipArchiveNodeConfiguration>

Inheritance Object → NodeConfiguration → TargetPathNodeConfiguration → SourceTargetPathNodeConfiguration → CreateZipArchiveNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<CreateZipArchiveNodeConfiguration>

Properties​

Identity​

Identity this node runs as: Caller (default), ServiceAccount (the pipeline's service account with its full roles, even when a caller is present), or System (unfiltered, bypasses data permissions). A missing value resolves to Caller so existing pipelines are unchanged (AB#5127).

public NodeExecutionIdentity Identity { get; set; }

Property Value​

NodeExecutionIdentity

ContentLengthTargetPath​

Optional path to write the archive's byte length to (as a long). Handy for feeding a following CreateFileSystemUpdate@1, which requires the content length explicitly. Ignored in CreateZipArchiveNodeConfiguration.PersistAsFileSystemItem mode (the node persists the archive itself).

public string ContentLengthTargetPath { get; set; }

Property Value​

String

PersistAsFileSystemItem​

When true, the archive is streamed to the per-execution scratch space and persisted directly as a System.Reporting/FileSystemItem — the node writes the resulting item's RtId (as a string) to instead of a base64 archive. This avoids the three large-object-heap copies of the whole ZIP (MemoryStream + ToArray + base64) and a separate CreateFileSystemUpdate@1 round-trip that otherwise OOM a big fiscal-year handover export (AB#4642). Requires CreateZipArchiveNodeConfiguration.RootFolderWellKnownName. Entries may carry their content as contentBase64 or as a scratch reference (scratchFileToken).

public bool PersistAsFileSystemItem { get; set; }

Property Value​

Boolean

RootFolderWellKnownName​

RtWellKnownName of the file-system root folder to place the item under (persist mode).

public string RootFolderWellKnownName { get; set; }

Property Value​

String

FileName​

Static file name for the persisted archive (persist mode).

public string FileName { get; set; }

Property Value​

String

FileNamePath​

Path to the file name for the persisted archive (persist mode).

public string FileNamePath { get; set; }

Property Value​

String

ContentType​

Content type of the persisted archive (persist mode). Defaults to application/zip.

public string ContentType { get; set; }

Property Value​

String

GenerateRtId​

When true, generates the item's RtId (persist mode).

public bool GenerateRtId { get; set; }

Property Value​

Boolean

AppendSequenceNumber​

When true, a running number (_001, _002, …) is inserted before the extension of every content entry's file name, guaranteeing unique entry names even when several entries would otherwise resolve to the same name (e.g. two invoices of the same vendor on the same day).

public bool AppendSequenceNumber { get; set; }

Property Value​

Boolean

ManifestFileName​

When set (e.g. belege.csv), a CSV manifest with this name is written as the first archive entry. Each content entry may carry a manifest object whose fields become the CSV columns (ordered union across entries); the entry's final archive path (after sanitizing and sequence numbering) is prepended as the CreateZipArchiveNodeConfiguration.ManifestFileNameColumn column. Semicolon-separated, UTF-8 with BOM.

public string ManifestFileName { get; set; }

Property Value​

String

ManifestFileNameColumn​

Column name for the entry path column of the manifest. Defaults to FileName.

public string ManifestFileNameColumn { get; set; }

Property Value​

String

ManifestDelimiter​

Value delimiter of the manifest CSV. Defaults to ; (BMD/Excel-friendly).

public string ManifestDelimiter { get; set; }

Property Value​

String

Path​

public string Path { get; set; }

Property Value​

String

TargetPath​

public string TargetPath { get; set; }

Property Value​

String

TargetValueWriteMode​

public TargetValueWriteModes TargetValueWriteMode { get; set; }

Property Value​

TargetValueWriteModes

TargetValueKind​

public ValueKinds TargetValueKind { get; set; }

Property Value​

ValueKinds

DocumentMode​

public DocumentModes DocumentMode { get; set; }

Property Value​

DocumentModes

Description​

public string Description { get; set; }

Property Value​

String

Constructors​

CreateZipArchiveNodeConfiguration()​

public CreateZipArchiveNodeConfiguration()