Top Method Summary
Options Name Purpose
Progress.Json.ObjectModel.JsonArray BuildPathArray (character, character) Builds the buildPath JSON array from the PDSOE .propath file
Progress.Json.ObjectModel.JsonObject BuildProjectJson (character, character, character, character, character) Builds the JSON object for the openedge-project.json file
Convert (character, character, logical) Converts the PDSOE project at the given folder into an openedge-project.json file using an explicit .metadata folder
Convert (character, logical) Converts the PDSOE project at the given folder into an openedge-project.json file
CHARACTER CurrentOeVersion () Returns the current OpenEdge version in the major.minor form consumed by the vscode-abl extension
Progress.Json.ObjectModel.JsonArray DbConnectionsArray (character, character, character) Builds the dbConnections JSON array
CHARACTER ExtractQuotedValue (longchar, character) Extracts the quoted value following an assignment in a build.config file
CHARACTER FindCpInternalInPfFile (character, integer) Loads a pf file and searches it for the -cpinternal value
CHARACTER FindCpInternalInText (character, integer) Searches for the -cpinternal value in a startup-parameter style string, descending into any referenced -pf file
CHARACTER GetAttribute (handle, handle, character) Returns an attribute value from an XML element node
LookupDbConnection (character, character, character, character, character, character, character, character) Looks up the connection details for a single identifier in databaseConnection.xml
CHARACTER MergeAssembliesParameter (character, character) Merges the assembliesDir value from build.config into the startupParameters string when an explicit -assemblies switch is not yet present
CHARACTER NormalizeExcludes (character) Normalizes a PDSOE "excluding" attribute value into the glob-style "excludes" value expected by vscode-abl
CHARACTER NormalizePfContent (character) Normalizes pf file or startup parameter text into a single space-separated string of tokens
CHARACTER NormalizePropathEntry (character) Normalizes a PDSOE propath entry to a relative path
ReadBuildConfig (character, character, character, logical) Reads the relevant settings from the PDSOE build.config file
CHARACTER ResolveCharset (character) Resolves the charset for openedge-project.json based on the -cpinternal startup parameter
CHARACTER ResolveMetadataFolder (character, character) Determines the Eclipse .metadata folder to use for the conversion
CHARACTER ResolvePlatformResourcePath (character) Resolves an Eclipse "platform:/resource/<project>/<path>" URL into a path that VS Code can use
UnescapeForwardSlashes (character) Rewrites the openedge-project.json file replacing the JSON forward-slash escape sequence "\/" with the unescaped "/"

Top Property Summary
Options Name Purpose
CHARACTER BuildConfigFileName
CHARACTER DatabaseConnectionXmlRelativePath
CHARACTER DbConnectionFileName
CHARACTER OutputFileName
CHARACTER PropathFileName


Method Detail
Top

Progress.Json.ObjectModel.JsonArray BuildPathArray (character, character)

Purpose: Builds the buildPath JSON array from the PDSOE .propath file
Notes: Each propathentry whose kind is "src" or "dir" becomes one
buildPath entry. Eclipse "con" entries (DLC and Studio
libraries) are intentionally skipped.
The first entry is emitted with type "source" and includes
the xref property pointing to "../<projectName>-pct" so the
vscode-abl extension stores cross-reference XML next to the
project folder. Remaining entries use type "propath".

Parameters:
pcPropath CHARACTER
The full path of .propath
pcProjectName CHARACTER
The project folder name, used to build the xref directory
Returns Progress.Json.ObjectModel.JsonArray
The JsonArray of buildPath entries
Top

Progress.Json.ObjectModel.JsonObject BuildProjectJson (character, character, character, character, character)

Purpose: Builds the JSON object for the openedge-project.json file
Notes:

Parameters:
pcProjectFolder CHARACTER
The PDSOE project folder
pcBuildConfig CHARACTER
The full path of build.config
pcPropath CHARACTER
The full path of .propath
pcDbConnection CHARACTER
The full path of .dbconnection
pcDatabaseConnXml CHARACTER
The full path of databaseConnection.xml
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject that will be written to disk
Top

Convert (character, character, logical)

Purpose: Converts the PDSOE project at the given folder into an
openedge-project.json file using an explicit .metadata folder
Notes: When pcMetadataFolder is empty or unknown, the .metadata
folder is searched in the parent of pcProjectFolder.
Throws MetadataFolderNotFoundException when the folder
cannot be located. Throws OpenEdgeProjectFileExistsException
when the output file already exists and plOverwrite = FALSE.

Parameters:
pcProjectFolder CHARACTER
The PDSOE project folder
pcMetadataFolder CHARACTER
The Eclipse .metadata folder (may be empty)
plOverwrite LOGICAL
TRUE to overwrite an existing openedge-project.json
Top

Convert (character, logical)

Purpose: Converts the PDSOE project at the given folder into an
openedge-project.json file
Notes: Locates the Eclipse .metadata folder in the parent of
pcProjectFolder. If no .metadata folder is found there a
MetadataFolderNotFoundException is thrown.
Throws OpenEdgeProjectFileExistsException when the output
file already exists and plOverwrite = FALSE.

Parameters:
pcProjectFolder CHARACTER
The PDSOE project folder containing build.config, .propath and .dbconnection
plOverwrite LOGICAL
TRUE to overwrite an existing openedge-project.json
Top

CHARACTER CurrentOeVersion ()

Purpose: Returns the current OpenEdge version in the major.minor form
consumed by the vscode-abl extension
Notes: PROVERSION returns the runtime version of the running AVM.
openedge-project.json identifies a configured runtime by its
major.minor name (for example "12.8" or "13.0"), so only the
first two dot-separated segments of PROVERSION are used.

Returns CHARACTER
The current OpenEdge version (e.g. "12.8" or "13.0")
Top

Progress.Json.ObjectModel.JsonArray DbConnectionsArray (character, character, character)

Purpose: Builds the dbConnections JSON array
Notes: For every identifier listed in .dbconnection, the corresponding
databaseconnection element in databaseConnection.xml is read
for the connect details. The schemaFile value is delegated to
the registered IPdsoeSchemaFileResolver service implementation
(default: "<dbName>.df"; the launcher registers the interactive
implementation that prompts the user with system-dialog get-file).
The connect string is built as "-db <physicalname>" with optional
"-ld <logicalname>" and "-H <host> -S <service>" (the latter only
when both host and service are populated).

Parameters:
pcProjectFolder CHARACTER
The PDSOE project folder, forwarded to the schema file resolver to compute relative paths
pcDbConnection CHARACTER
The full path of .dbconnection
pcDatabaseConnXml CHARACTER
The full path of databaseConnection.xml
Returns Progress.Json.ObjectModel.JsonArray
The JsonArray of dbConnections entries
Top

CHARACTER ExtractQuotedValue (longchar, character)

Purpose: Extracts the quoted value following an assignment in a build.config file
Notes: Returns the first match of <pcKey>="<value>"

Parameters:
pcContent LONGCHAR
The build.config content
pcKey CHARACTER
The key to look up
Returns CHARACTER
The value associated with the key, or empty string when not found
Top

CHARACTER FindCpInternalInPfFile (character, integer)

Purpose: Loads a pf file and searches it for the -cpinternal value
Notes:

Parameters:
pcPfFile CHARACTER
The full path of the pf file
piDepth INTEGER
Current recursion depth
Returns CHARACTER
The resolved -cpinternal value, or empty string when not found
Top

CHARACTER FindCpInternalInText (character, integer)

Purpose: Searches for the -cpinternal value in a startup-parameter style
string, descending into any referenced -pf file
Notes: Returns empty string when no -cpinternal is found in this text
or any referenced pf file. Recursion is guarded by a depth
limit to avoid infinite loops on circular pf file references.

Parameters:
pcContent CHARACTER
The startup-parameter text to search
piDepth INTEGER
Current recursion depth
Returns CHARACTER
The resolved -cpinternal value, or empty string when not found
Top

CHARACTER GetAttribute (handle, handle, character)

Purpose: Returns an attribute value from an XML element node
Notes:

Parameters:
phElement HANDLE
The element X-NODEREF
phAttr HANDLE
A reusable X-NODEREF used as scratch buffer (currently unused; kept for API compatibility)
pcName CHARACTER
The attribute name
Returns CHARACTER
The attribute value, or empty string when the attribute is not present
Top

LookupDbConnection (character, character, character, character, character, character, character, character)

Purpose: Looks up the connection details for a single identifier in
databaseConnection.xml
Notes: When the file or identifier is not found, the output values
are left at their default ("" / pcIdentifier for name).

Parameters:
pcDatabaseConnXml CHARACTER
The full path of databaseConnection.xml
pcIdentifier CHARACTER
The identifier as listed in .dbconnection
pcName CHARACTER
The <name> child element value of the matching databaseconnection (defaults to pcIdentifier when empty)
pcPhysicalName CHARACTER
The <physicalname> child element value (the absolute path of the .db file)
pcLogicalName CHARACTER
The <logicalname> child element value (used as the -ld parameter when non-empty)
pcHost CHARACTER
The <host> child element value of the matching databaseconnection
pcService CHARACTER
The <service> child element value of the matching databaseconnection
pcAliases CHARACTER
The <aliases> child element value (PDSOE comma-separated alias list)
Top

CHARACTER MergeAssembliesParameter (character, character)

Purpose: Merges the assembliesDir value from build.config into the
startupParameters string when an explicit -assemblies switch
is not yet present
Notes: The Eclipse "platform:/resource/<project>/<path>" form is
resolved to "../<project>/<path>" so the resulting path is
usable from VS Code (which has no concept of the Eclipse
platform: scheme). When the user already passes -assemblies
in startupParameters, the assembliesDir value is ignored.

Parameters:
pcStartupParameters CHARACTER
The startupParameters value from build.config
pcAssembliesDir CHARACTER
The assembliesDir value from build.config
Returns CHARACTER
The merged startup parameters string
Top

CHARACTER NormalizeExcludes (character)

Purpose: Normalizes a PDSOE "excluding" attribute value into the
glob-style "excludes" value expected by vscode-abl
Notes: PDSOE stores excluding values as workspace-rooted paths
starting with /<projectName>/<path within project>/.
vscode-abl expects values relative to the source folder,
appended with the folder glob suffix (slash, two stars).
This method strips the leading workspace project segment,
trims the trailing slash and appends the glob suffix.
Multiple values separated by | are translated and joined
with comma.

Parameters:
pcEclipseExcludes CHARACTER
The raw "excluding" attribute value from .propath
Returns CHARACTER
The normalized excludes value
Top

CHARACTER NormalizePfContent (character)

Purpose: Normalizes pf file or startup parameter text into a single
space-separated string of tokens
Notes: Strips line comments (anything from # to end of line),
replaces tabs and newlines with spaces, and collapses runs
of whitespace to a single space character.

Parameters:
pcContent CHARACTER
The raw text content
Returns CHARACTER
The normalized, space-delimited token string
Top

CHARACTER NormalizePropathEntry (character)

Purpose: Normalizes a PDSOE propath entry to a relative path
Notes: Replaces the @{ROOT} variable with the project folder marker
(".") and converts backslashes to forward slashes.
Returns empty string for entries that cannot be expressed as
a relative path inside the project (e.g. @{WORK}).

Parameters:
pcEntry CHARACTER
The raw PDSOE propath entry value
Returns CHARACTER
The relative path used by openedge-project.json
Top

ReadBuildConfig (character, character, character, logical)

Purpose: Reads the relevant settings from the PDSOE build.config file
Notes: The PDSOE build.config file uses a HOCON-like syntax. Only the
startupParameters, assembliesDir and tty.enabled values from
the avmOptions block are extracted.

Parameters:
pcBuildConfig CHARACTER
The full path of build.config
pcStartupParameters CHARACTER
The startupParameters value from build.config
pcAssembliesDir CHARACTER
The assembliesDir value from build.config (raw, may be a "platform:/resource/..." URL)
plTtyEnabled LOGICAL
The tty.enabled value from build.config
Top

CHARACTER ResolveCharset (character)

Purpose: Resolves the charset for openedge-project.json based on the
-cpinternal startup parameter
Notes: The lookup order is:
1. -cpinternal in the supplied startupParameters
2. -cpinternal in any -pf file referenced from the
startupParameters (recursively, since pf files may
nest -pf references; cycles are guarded by a depth
limit)
3. -cpinternal in <DLC>/startup.pf
When none of the above produces a value, "utf-8" is used as
a final fallback so the field is always populated.
The resolved value is returned in lower case, matching the
casing used by the vscode-abl extension.

Parameters:
pcStartupParameters CHARACTER
The startupParameters value from build.config
Returns CHARACTER
The resolved charset
Top

CHARACTER ResolveMetadataFolder (character, character)

Purpose: Determines the Eclipse .metadata folder to use for the conversion
Notes:

Parameters:
pcProjectFolder CHARACTER
The PDSOE project folder
pcMetadataFolder CHARACTER
The explicit .metadata folder, or empty string to auto-detect
Returns CHARACTER
The full path of the .metadata folder
Top

CHARACTER ResolvePlatformResourcePath (character)

Purpose: Resolves an Eclipse "platform:/resource/<project>/<path>"
URL into a path that VS Code can use
Notes: The translation is done by stripping the "platform:/resource/"
prefix and prepending "../" so the resulting path resolves
correctly when interpreted relative to the openedge-project.json
location regardless of whether the project being converted is
the same Eclipse project referenced by the URL or a sibling
(the "../" form works in both cases on a typical Eclipse
workspace layout).
Backslashes are normalized to forward slashes.
Values that do not begin with the platform:/resource/ prefix
are returned with backslashes normalized but otherwise
unchanged.

Parameters:
pcRaw CHARACTER
The raw assembliesDir value from build.config
Returns CHARACTER
The resolved relative path
Top

UnescapeForwardSlashes (character)

Purpose: Rewrites the openedge-project.json file replacing the JSON
forward-slash escape sequence "\/" with the unescaped "/"
Notes: The JSON specification allows "\/" as an alternate form for
"/", and Progress's JsonObject:WriteFile emits the escaped
form. The vscode-abl extension and human readers both
prefer the unescaped form, so we post-process the file once.

Parameters:
pcOutputFile CHARACTER
The full path of the openedge-project.json file


Property Detail
Top

CHARACTER BuildConfigFileName


Returns CHARACTER
Top

CHARACTER DatabaseConnectionXmlRelativePath


Returns CHARACTER
Top

CHARACTER DbConnectionFileName


Returns CHARACTER
Top

CHARACTER OutputFileName


Returns CHARACTER
Top

CHARACTER PropathFileName


Returns CHARACTER


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       11.05.2026 06:37:53