Top Method Summary
Options Name Purpose
CHARACTER CreateTemporaryFolder () Creates the temporary folder receiving the JSON dump
EnsureSecurityProtocol () Ensures that the .NET security protocol includes TLS 1.2
CHARACTER GetTemporaryDirectory () Returns the directory the temporary upload folders are created in
HideBlobFields (handle) Excludes the BLOB fields of the ProDataset from the JSON dump
ReadConfiguration () Reads the Elasticsearch connection settings from the application settings
System.Collections.Generic.List <character> ToStringList (character) Converts a comma delimited list of field names into the .NET string list expected by the SmartIndexer
UploadDataset (handle) Dumps the given ProDataset to a JSON file and uploads it into the Elasticsearch index
UploadJsonFile (character) Uploads an existing JSON dump into the Elasticsearch index

Top Constructor Summary
Options Name Purpose
ElasticSearchUploader (character, character) Constructor for the ElasticSearchUploader class

Top Property Summary
Options Name Purpose
LOGICAL DeleteIndex
CHARACTER Endpoint
CHARACTER IndexName
CHARACTER KeyColumns
CHARACTER KeywordColumns
CHARACTER Password
CHARACTER PhoneticColumns
CHARACTER PhoneticEncoder
CHARACTER User


Method Detail
Top

CHARACTER CreateTemporaryFolder ()

Purpose: Creates the temporary folder receiving the JSON dump
Notes: The folder is unique per upload, so parallel uploads do not
interfere. The .NET indexer writes its bulk files next to the
JSON dump and picks them up with a "*.bulk*" file mask, so the
folder must not be shared with anything else.
SESSION:TEMP-DIRECTORY TEMP-DIRECTORY is deliberately not used as the parent:
in a batch session started without -T it is the working
directory, which would litter the project folder with dumps

Returns CHARACTER
The full path of the temporary folder
Top

EnsureSecurityProtocol ()

Purpose: Ensures that the .NET security protocol includes TLS 1.2
Notes: The .NET Framework hosted by the AVM defaults
ServicePointManager:SecurityProtocol SecurityProtocol to SSL 3.0 / TLS 1.0, while
an Elasticsearch cluster typically accepts TLS 1.2 and above
only. Without this the indexer fails inside the .NET assembly
with "The request was aborted: Could not create SSL/TLS secure
channel." - which reads like a certificate trust problem but is
a protocol mismatch.
TLS 1.3 is deliberately not requested: SecurityProtocolType:Tls13
only exists from .NET Framework 4.8 onwards and every cluster
accepting TLS 1.3 accepts TLS 1.2 as well.
ServicePointManager is a process wide setting - override this
method to take control of the protocol selection

Top

CHARACTER GetTemporaryDirectory ()

Purpose: Returns the directory the temporary upload folders are created in
Notes: The TEMP / TMP environment variables are preferred over
SESSION:TEMP-DIRECTORY, TEMP-DIRECTORY, which points at the working directory in
a batch session started without -T. Falls back to
SESSION:TEMP-DIRECTORY TEMP-DIRECTORY when neither variable is set (PASOE
configures it properly)

Returns CHARACTER
The full path of the directory, without a trailing separator
Top

HideBlobFields (handle)

Purpose: Excludes the BLOB fields of the ProDataset from the JSON dump
Notes: Binary large objects carry no meaning in an Elasticsearch
document and would only inflate the dump, so they are hidden
from the serialization.
SERIALIZE-HIDDEN is an attribute of the temp-table buffer field
that is only evaluated when the ProDataset is serialized, so the
data in the ProDataset itself is left untouched. CLOB fields are
deliberately not hidden - their text is searchable

Parameters:
phDataset HANDLE
The handle of the ProDataset to hide the BLOB fields of
Top

ReadConfiguration ()

Purpose: Reads the Elasticsearch connection settings from the application settings
Notes: The settings are stored in the "elasticsearch" sub structure of
the .applicationsettings file and are exposed by the
IConfigurationProvider using dot separated names.
The default implementation is supplied so that the uploader can
also be used from a standalone session (the upload-data.cmd
command line utility), where no configuration provider has been
registered by a framework startup routine. The settings file is
resolved through the PROPATH rather than relative to the working
directory, so the uploader also works when it is called from a
project that has no settings file of its own (the unit tests)

Top

System.Collections.Generic.List <character> ToStringList (character)

Purpose: Converts a comma delimited list of field names into the .NET
string list expected by the SmartIndexer
Notes: An empty or unknown list results in an empty .NET list rather
than an invalid object reference

Parameters:
pcFieldNames CHARACTER
Comma delimited list of field names
Returns System.Collections.Generic.List <character>
The .NET list with the field names
Top

UploadDataset (handle)

Purpose: Dumps the given ProDataset to a JSON file and uploads it into
the Elasticsearch index
Notes: The JSON dump is written into a temporary folder which is
removed again after a successful upload. When the upload fails
the dump is retained for diagnosis

Parameters:
phDataset HANDLE
The handle of the ProDataset to upload
Top

UploadJsonFile (character)

Purpose: Uploads an existing JSON dump into the Elasticsearch index
Notes: The file is left in place - use UploadDataset to have the dump
created and removed by the uploader

Parameters:
pcJsonFileName CHARACTER
The full path of the JSON file to upload


Constructor Detail
Top

ElasticSearchUploader (character, character)

Purpose: Constructor for the ElasticSearchUploader class
Notes: The connection to the Elasticsearch cluster is read from the
application settings by the constructor, so an incomplete
configuration is reported before any data is fetched

Parameters:
pcIndexName CHARACTER
The name of the Elasticsearch index to load the documents into
pcKeyColumns CHARACTER
Comma delimited list of the fields forming the document ID


Property Detail
Top

LOGICAL DeleteIndex


Returns LOGICAL
Top

CHARACTER Endpoint


Returns CHARACTER
Top

CHARACTER IndexName


Returns CHARACTER
Top

CHARACTER KeyColumns


Returns CHARACTER
Top

CHARACTER KeywordColumns


Returns CHARACTER
Top

CHARACTER Password


Returns CHARACTER
Top

CHARACTER PhoneticColumns


Returns CHARACTER
Top

CHARACTER PhoneticEncoder


Returns CHARACTER
Top

CHARACTER User


Returns CHARACTER


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:17:19