### FileName Property Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Core Gets or sets the name of the log file. ```APIDOC ## FileName Property ### Description Gets or sets the name of the file where logs are written. ### Method Property Access ### Endpoint N/A (Property access on an object instance) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example (To set the property) ```json { "FileName": "application.log" } ``` ### Response #### Success Response (200) Returns the current file name string. #### Response Example (To get the property) ```json { "FileName": "application.log" } ``` ``` -------------------------------- ### ClientLibraryBuilder Build and Initialization Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net.HTTP.Lib Methods for building the HTTP client and initializing the registry. ```APIDOC ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder Build ### Description Builder director method to construct the HTTP client. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "Build" } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - The built client instance #### Response Example ```json { "clientBuilder": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder InitializeRegistry ### Description Adds initial values into the builder registry. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "InitializeRegistry", "parameters": { "poRegistry": "" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ``` -------------------------------- ### ABLUnit - Runner Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net.HTTP.Trace.Rule Documentation for the ABLUnit runner, including configuration and execution of tests. ```APIDOC ## POST /api/ablunit/runner/run ### Description Executes ABLUnit tests based on the provided configuration. ### Method POST ### Endpoint /api/ablunit/runner/run ### Parameters #### Request Body - **config** (object) - Required - Configuration for running the tests. - **testPath** (string) - Required - Path to the test files or directories. - **runnerType** (string) - Optional - Type of runner to use (e.g., 'ABLRunner'). - **outputFormat** (string) - Optional - Desired output format (e.g., 'XML', 'JSON'). ### Request Example ```json { "config": { "testPath": "/path/to/tests", "runnerType": "ABLRunner", "outputFormat": "XML" } } ``` ### Response #### Success Response (200) - **results** (object) - The test execution results. - **summary** (object) - Summary of the test run. - **passed** (integer) - Number of tests passed. - **failed** (integer) - Number of tests failed. - **errors** (integer) - Number of errors encountered. - **details** (array) - Detailed results for each test. - **testName** (string) - Name of the test. - **status** (string) - Status of the test (e.g., 'Passed', 'Failed'). - **message** (string) - Any associated message or error details. #### Response Example ```json { "results": { "summary": { "passed": 10, "failed": 2, "errors": 0 }, "details": [ { "testName": "TestMyFeature", "status": "Passed", "message": "" }, { "testName": "TestAnotherFeature", "status": "Failed", "message": "Assertion failed: Expected value X, but got Y." } ] } } ``` ``` -------------------------------- ### DateFormat Property Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Core Gets or sets the date format for log entries. ```APIDOC ## DateFormat Property ### Description Gets or sets the date format used for log entries. ### Method Property Access ### Endpoint N/A (Property access on an object instance) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example (To set the property) ```json { "DateFormat": "yyyy-MM-dd HH:mm:ss" } ``` ### Response #### Success Response (200) Returns the current date format string. #### Response Example (To get the property) ```json { "DateFormat": "yyyy-MM-dd HH:mm:ss" } ``` ``` -------------------------------- ### TaskName Property Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Core Gets or sets the name of the task associated with the log entries. ```APIDOC ## TaskName Property ### Description Gets or sets the name of the task associated with the log entries. ### Method Property Access ### Endpoint N/A (Property access on an object instance) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example (To set the property) ```json { "TaskName": "DataAdmin" } ``` ### Response #### Success Response (200) Returns the current task name string. #### Response Example (To get the property) ```json { "TaskName": "DataAdmin" } ``` ``` -------------------------------- ### Core - Collections and Server Connections Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Logging.Format APIs for managing collections, handling server connections, and core system utilities. ```APIDOC ## Core Utilities API ### Description This API provides essential utilities for managing data collections, establishing server connections, and handling core system functionalities. It includes various collection types and connection parameter configurations. ### Method Various methods for collection manipulation and connection management. ### Endpoint /core/** ### Parameters #### Path Parameters None specific to this general description. #### Query Parameters None specific to this general description. #### Request Body **ConnectionParameters** (object) - Base object for connection parameters. - **host** (string) - Required - The server host name or IP address. - **port** (integer) - Required - The server port number. **UrlConnectionParameters** (object) - Specific parameters for URL-based connections. - **url** (string) - Required - The full URL for the connection. **WebServiceConnectionParameters** (object) - Parameters for web service connections. - **url** (string) - Required - The web service endpoint URL. - **username** (string) - Optional - Username for authentication. - **password** (string) - Optional - Password for authentication. ### Request Example ```json { "WebServiceConnectionParameters": { "url": "http://example.com/api/service", "username": "user", "password": "secret" } } ``` ### Response #### Success Response (200) **IServerConnection** (interface) - Represents an established server connection. **IConnectionParameters** (interface) - Represents the parameters used for a connection. #### Response Example No specific JSON response example for these interfaces as they represent connection objects rather than data payloads. ``` -------------------------------- ### UtilityTableContext - Property: Count Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Binding Gets the count of items within the UtilityTableContext. This property provides a numerical count of elements managed by the context. ```APIDOC ## Count ### Description Gets the number of items currently managed or represented by this UtilityTableContext. This property is of type INTEGER. ### Method Getter for property ### Endpoint *Not applicable for properties* ### Parameters *None* ### Request Example *Not applicable for properties* ### Response #### Success Response (200) - **Value** (INTEGER) - The count of items. #### Response Example *Not applicable for properties* ``` -------------------------------- ### Business Logic - Core Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net.HTTP.Trace.Rule Documentation for the Business Logic Core module, including data handling, query building, and server connections. ```APIDOC ## GET /api/businesslogic/core/assertions ### Description Retrieves information about assertion types available in the Business Logic Core module. ### Method GET ### Endpoint /api/businesslogic/core/assertions ### Parameters #### Query Parameters - **type** (string) - Optional - Filter assertions by type (e.g., 'array', 'json'). ### Response #### Success Response (200) - **assertions** (array) - A list of available assertion types. - **name** (string) - The name of the assertion type. - **description** (string) - A brief description of the assertion type. #### Response Example { "assertions": [ { "name": "AssertArray", "description": "Assertions for array manipulation and validation." }, { "name": "AssertJson", "description": "Assertions for JSON data validation." } ] } ## GET /api/businesslogic/core/collections ### Description Lists available collection types within the Business Logic Core module. ### Method GET ### Endpoint /api/businesslogic/core/collections ### Parameters None ### Response #### Success Response (200) - **collections** (array) - A list of collection types. - **name** (string) - The name of the collection type. - **description** (string) - A brief description. #### Response Example { "collections": [ { "name": "ArrayList", "description": "An implementation of a dynamic array." }, { "name": "HashMap", "description": "A hash map implementation." } ] } ## GET /api/businesslogic/core/json/serializers ### Description Retrieves information about JSON serializer implementations. ### Method GET ### Endpoint /api/businesslogic/core/json/serializers ### Parameters None ### Response #### Success Response (200) - **serializers** (array) - A list of available JSON serializers. - **name** (string) - The name of the serializer. - **description** (string) - Description of the serializer. #### Response Example { "serializers": [ { "name": "JsonSerializer", "description": "Standard JSON serialization and deserialization." } ] } ## GET /api/businesslogic/core/serverconnections ### Description Lists available server connection types and their parameters. ### Method GET ### Endpoint /api/businesslogic/core/serverconnections ### Parameters None ### Response #### Success Response (200) - **connections** (array) - A list of server connection types. - **name** (string) - The name of the connection type. - **description** (string) - Description of the connection type. - **parameters** (array) - List of required and optional parameters for the connection. - **name** (string) - Parameter name. - **type** (string) - Parameter data type. - **required** (boolean) - Whether the parameter is required. #### Response Example { "connections": [ { "name": "WebServiceConnection", "description": "Connection to a web service.", "parameters": [ { "name": "url", "type": "string", "required": true }, { "name": "timeout", "type": "integer", "required": false } ] } ] } ## GET /api/businesslogic/core/system/errors ### Description Retrieves information about system error types. ### Method GET ### Endpoint /api/businesslogic/core/system/errors ### Parameters None ### Response #### Success Response (200) - **errors** (array) - A list of system error types. - **name** (string) - The name of the error type. - **severity** (string) - The severity level of the error. #### Response Example { "errors": [ { "name": "ApplicationError", "severity": "High" }, { "name": "ArgumentError", "severity": "Medium" } ] } ``` -------------------------------- ### OpenEdge ABL ABLUnit - Testing Framework Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Binding APIs for running and managing ABLUnit tests, including configuration and result writing. ```APIDOC ## POST /api/ablunit/run ### Description Runs ABLUnit tests based on the provided configuration. ### Method POST ### Endpoint /api/ablunit/run ### Parameters #### Request Body - **testConfig** (object) - Required - Configuration for running tests. - **testRoot** (string) - Required - The root directory for tests. - **writer** (string) - Optional - The type of results writer to use (e.g., 'XmlWriter'). ### Request Example ```json { "testConfig": { "testRoot": "/path/to/tests", "writer": "XmlWriter" } } ``` ### Response #### Success Response (200) - **runId** (string) - A unique identifier for this test run. - **status** (string) - The overall status of the test run (e.g., 'Success', 'Failure'). #### Response Example ```json { "runId": "run-12345", "status": "Success" } ``` ``` ```APIDOC ## GET /api/ablunit/results/{runId} ### Description Retrieves the results of a specific ABLUnit test run. ### Method GET ### Endpoint /api/ablunit/results/{runId} ### Parameters #### Path Parameters - **runId** (string) - Required - The ID of the test run to retrieve results for. ### Response #### Success Response (200) - **results** (object) - Detailed test results. - **passed** (integer) - Number of tests passed. - **failed** (integer) - Number of tests failed. - **errors** (array) - List of errors encountered. #### Response Example ```json { "results": { "passed": 10, "failed": 1, "errors": [ { "testName": "MyFailingTest", "message": "Assertion failed" } ] } } ``` ``` -------------------------------- ### Get User Salt - OpenEdge ABL Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Security.Provider Retrieves a per-user salt used for hashing passwords. This method is part of the UserTablePasswordProvider class and expects a handle to the _User buffer as input. It returns a RAW data type representing the salt. ```ABL /* Returns a per-user salt used for hashing (typically) passwords @param handle The _User buffer to use @return raw A salt to use for hashing */ RAW GetUserSalt (handle) ``` -------------------------------- ### ABLUnit - Testing Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net.HTTP.Filter.Auth APIs for running and managing ABLUnit tests. ```APIDOC ## POST /api/ablunit/run ### Description Executes ABLUnit tests based on provided configuration. ### Method POST ### Endpoint /api/ablunit/run ### Parameters #### Request Body - **config** (object) - Required - Configuration for test execution (e.g., test suites, procedures). ### Request Example { "config": { "testSuites": ["TestSuite1"], "testProcedures": ["ProcedureA.p"] } } ### Response #### Success Response (200) - **results** (object) - Contains the results of the executed tests. #### Response Example { "results": { "totalTests": 10, "passed": 8, "failed": 2 } } ``` -------------------------------- ### Parse Filter Expressions with FilterParser Source: https://context7.com/context7/progress_bundle_openedge-abl-api-reference-128/llms.txt The FilterParser converts filter expressions from formats like JFP and Kendo UI into ABL query definitions. It utilizes a registry to get specific parsers and can then build ABL WHERE clauses. ```abl /* Parse different filter formats */ DEFINE VARIABLE oFilterParser AS OpenEdge.BusinessLogic.Filter.FilterParser NO-UNDO. DEFINE VARIABLE oQueryDefinition AS Ccs.BusinessLogic.IQueryDefinition NO-UNDO. DEFINE VARIABLE cJfpFilter AS CHARACTER NO-UNDO. DEFINE VARIABLE cKendoFilter AS LONGCHAR NO-UNDO. /* JSON Filter Protocol (JFP) format */ cJfpFilter = '{"and":[{"field":"CustomerName","operator":"contains","value":"Acme"},{"field":"CreditLimit","operator":"gt","value":10000}]}'. /* Get JFP parser from registry */ oFilterParser = OpenEdge.BusinessLogic.Filter.FilterParserRegistry:Registry:GetParser("JFP"). /* Parse filter into query definition */ oQueryDefinition = oFilterParser:Parse(cJfpFilter). MESSAGE "Parsed filter with" oQueryDefinition:NumPredicates "predicates". /* Kendo UI filter format */ cKendoFilter = '{"logic":"and","filters":[{"field":"Status","operator":"eq","value":"Active"},{"field":"OrderDate","operator":"gte","value":"2024-01-01"}]}'. oFilterParser = OpenEdge.BusinessLogic.Filter.FilterParserRegistry:Registry:GetParser("KendoUI"). oQueryDefinition = oFilterParser:Parse(cKendoFilter). /* Convert to ABL WHERE clause */ DEFINE VARIABLE cWhereClause AS CHARACTER NO-UNDO. cWhereClause = OpenEdge.BusinessLogic.QueryOperatorHelper:BuildWhereClause(oQueryDefinition). MESSAGE "WHERE clause:" cWhereClause. /* Output: Status = 'Active' AND OrderDate >= '2024-01-01' */ DELETE OBJECT oFilterParser NO-ERROR. DELETE OBJECT oQueryDefinition NO-ERROR. ``` -------------------------------- ### Perform HTTP Requests with OpenEdge.Net.HTTP.HttpClient (ABL) Source: https://context7.com/context7/progress_bundle_openedge-abl-api-reference-128/llms.txt Enables comprehensive HTTP communication, including GET and POST requests, with support for headers, authentication, and JSON request bodies. It handles request building, execution, and response parsing. Dependencies include OpenEdge.Net.HTTP namespaces. ```abl /* Create HTTP client and execute requests */ DEFINE VARIABLE oHttpClient AS OpenEdge.Net.HTTP.IHttpClient NO-UNDO. DEFINE VARIABLE oRequest AS OpenEdge.Net.HTTP.IHttpRequest NO-UNDO. DEFINE VARIABLE oResponse AS OpenEdge.Net.HTTP.IHttpResponse NO-UNDO. DEFINE VARIABLE oCredentials AS OpenEdge.Net.HTTP.Credentials NO-UNDO. DEFINE VARIABLE oRequestBody AS Progress.Json.ObjectModel.JsonObject NO-UNDO. /* Create client with default configuration */ oHttpClient = OpenEdge.Net.HTTP.ClientBuilder:Build():Client. /* Create GET request */ oRequest = OpenEdge.Net.HTTP.RequestBuilder:Get("https://api.example.com/customers/12345") :Request. /* Add headers */ oRequest:SetHeader("Accept", "application/json"). oRequest:SetHeader("User-Agent", "OpenEdge-ABL/12.8"). /* Execute request */ oResponse = oHttpClient:Execute(oRequest). /* Check response status */ IF oResponse:StatusCode = 200 THEN DO: MESSAGE "Success:" oResponse:ContentType. /* Parse JSON response */ IF TYPE-OF(oResponse:Entity, Progress.Json.ObjectModel.JsonObject) THEN oJsonResponse = CAST(oResponse:Entity, Progress.Json.ObjectModel.JsonObject). END. ELSE MESSAGE "Error:" oResponse:StatusCode oResponse:StatusReason. /* POST request with JSON body */ oRequestBody = NEW Progress.Json.ObjectModel.JsonObject(). oRequestBody:Add("name", "New Customer"). oRequestBody:Add("email", "customer@example.com"). oRequest = OpenEdge.Net.HTTP.RequestBuilder:Post("https://api.example.com/customers", oRequestBody) :ContentType("application/json") :Request. /* Add authentication */ oCredentials = NEW OpenEdge.Net.HTTP.Credentials("api-user", "api-password"). oRequest = CAST(oRequest, OpenEdge.Net.HTTP.IAuthenticatedRequest). CAST(oRequest, OpenEdge.Net.HTTP.IAuthenticatedRequest):Credentials = oCredentials. oResponse = oHttpClient:Execute(oRequest). MESSAGE "Created:" oResponse:StatusCode. /* Cleanup */ DELETE OBJECT oHttpClient NO-ERROR. DELETE OBJECT oRequest NO-ERROR. DELETE OBJECT oResponse NO-ERROR. ``` -------------------------------- ### ABLUnit Testing Framework Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/Ccs.BusinessLogic APIs for running, configuring, and managing ABLUnit tests. ```APIDOC ## POST /api/ablunit/run ### Description Executes ABLUnit tests based on the provided configuration. ### Method POST ### Endpoint /api/ablunit/run ### Parameters #### Request Body - **testConfig** (object) - Required - Configuration for test execution. - **testSuites** (array) - Optional - List of test suites to run. - **testCases** (array) - Optional - List of test cases to run. - **outputWriter** (object) - Optional - Configuration for the results writer. ### Request Example ```json { "testConfig": { "testSuites": ["TestSuite1"], "outputWriter": { "type": "XmlWriter" } } } ``` ### Response #### Success Response (200) - **testResults** (object) - The results of the test execution. #### Response Example ```json { "testResults": { "summary": { "totalTests": 5, "passed": 4, "failed": 1 }, "results": [ { "testName": "Test1", "status": "Passed" }, { "testName": "Test2", "status": "Failed", "errorMessage": "Assertion failed" } ] } } ``` ``` -------------------------------- ### Get AppServer Status - OpenEdge ABL Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Rest.Admin The ServerStatus method returns a CHARACTER string indicating the AppServer's status. Developers can customize the returned string. The default behavior is to return an empty CHARACTER string, which is sufficient for the REST adapter's ping feature. ```ABL DEFINE VARIABLE lcStatus AS CHARACTER NO-UNDO. pcStatus = ServerStatus(). /* Example of customizing the return value: IF SomeCondition THEN lcStatus = "AppServer is healthy.". ELSE lcStatus = "AppServer encountered an issue.". RETURN lcStatus. */ RETURN "A developer can customize this". ``` -------------------------------- ### OpenEdge.Web Package Overview Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Web This section provides an overview of the OpenEdge.Web package, listing its subpackages, interfaces, and classes. ```APIDOC ## OpenEdge.Web Package ### Description This package contains classes and interfaces for handling web requests and responses within the OpenEdge environment, including web handlers, request objects, and response writers. ### Subpackages - OpenEdge.Web.DataObject - OpenEdge.Web.Dynamic - OpenEdge.Web.Logging ### Interfaces - **IWebRequest**: Standard interface for PASOE/Web requests. ### Classes - **CompatibilityHandler** - **DefaultWebHandler**: Returns 501 Not Implemented or 405 Method Not Allowed for all HTTP Methods. - **InternalWebRouter**: Keep a list of customer specified handlers and invoke. - **PingWebHandler** - **SendExceptionError** - **WebHandler**: Abstract class to use as a basis for building WebSpeed for PASOE request handlers. - **WebRequest**: An HttpRequest that adds request context information. - **WebResponse** - **WebResponseWriter**: Writes data to a (web) stream from either a response object or from "Write" calls made by a caller. ``` -------------------------------- ### Core System Utilities Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.DataAccess APIs for core system functionalities, including error handling and server connections. ```APIDOC ## POST /api/core/serverconnection/connect ### Description Establishes a connection to a server. ### Method POST ### Endpoint /api/core/serverconnection/connect ### Parameters #### Request Body - **parameters** (IConnectionParameters) - Required - Connection parameters for the server. ### Request Example ```json { "parameters": { "url": "http://example.com/api", "timeout": 30000 } } ``` ### Response #### Success Response (200) - **connectionId** (string) - An identifier for the established connection. #### Response Example ```json { "connectionId": "conn_12345" } ``` ## POST /api/core/assertion/assertobject ### Description Performs an assertion on an object, useful for testing. ### Method POST ### Endpoint /api/core/assertion/assertobject ### Parameters #### Request Body - **expected** (object) - Required - The expected object. - **actual** (object) - Required - The actual object to compare. - **message** (string) - Optional - A message to display if the assertion fails. ### Request Example ```json { "expected": {"field": "value"}, "actual": {"field": "value"}, "message": "Objects match." } ``` ### Response #### Success Response (200) - **result** (boolean) - True if the assertion passed, false otherwise. #### Response Example ```json { "result": true } ``` ``` -------------------------------- ### Configure OpenEdge Log Filters Source: https://context7.com/context7/progress_bundle_openedge-abl-api-reference-128/llms.txt Illustrates how to use the LogFilterBuilder to create and manage custom log message filters. This includes setting minimum and maximum log levels for specific loggers, registering these filters with the LoggerFilterRegistry, and demonstrating how filters affect which messages are actually logged. The example also shows how to create compound filters with multiple criteria. ```abl /* Configure logging filters */ DEFINE VARIABLE oFilterBuilder AS OpenEdge.Logging.Filter.LogFilterBuilder NO-UNDO. DEFINE VARIABLE oLoggerFilter AS OpenEdge.Logging.Filter.ILoggerFilter NO-UNDO. DEFINE VARIABLE oLoggerBuilder AS OpenEdge.Logging.LoggerBuilder NO-UNDO. DEFINE VARIABLE oLogger AS OpenEdge.Logging.Logger NO-UNDO. /* Build filter - only log errors and above for specific loggers */ oFilterBuilder = NEW OpenEdge.Logging.Filter.LogFilterBuilder(). oLoggerFilter = oFilterBuilder :Logger("CustomerService") :MinLevel(OpenEdge.Logging.LogLevelEnum:ERROR) :Build(). /* Register filter */ OpenEdge.Logging.LoggerFilterRegistry:Registry:AddFilter(oLoggerFilter). /* Build filtered logger */ oLogger = NEW OpenEdge.Logging.LoggerBuilder() :Name("CustomerService") :Build(). /* These will be logged (ERROR and above) */ oLogger:Error("Critical error in customer service"). oLogger:Fatal("System failure"). /* These will be filtered out (below ERROR level) */ oLogger:Info("This message won't be logged"). oLogger:Debug("This debug message is filtered"). /* Create compound filters with multiple criteria */ oFilterBuilder = NEW OpenEdge.Logging.Filter.LogFilterBuilder(). oLoggerFilter = oFilterBuilder :Logger("OrderService") :MinLevel(OpenEdge.Logging.LogLevelEnum:WARN) :MaxLevel(OpenEdge.Logging.LogLevelEnum:ERROR) :Build(). OpenEdge.Logging.LoggerFilterRegistry:Registry:AddFilter(oLoggerFilter). DELETE OBJECT oLogger NO-ERROR. ``` -------------------------------- ### ClientLibraryBuilder Configuration Methods Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net.HTTP.Lib This section covers methods for configuring SSL/TLS, logging, and general options for the HTTP client builder. ```APIDOC ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder AddSslCipher ### Description Adds (appends) a single SSL cipher to the configuration. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "AddSslCipher", "parameters": { "pcCipher": "TLS_AES_128_GCM_SHA256" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder AddSslProtocol ### Description Adds (appends) a single SSL protocol to the configuration. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "AddSslProtocol", "parameters": { "pcProtocol": "TLSv1.3" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder AddTlsSupportedGroup ### Description Adds a TLS supported group to the configuration. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "AddTlsSupportedGroup", "parameters": { "pcGroup": "secp256r1" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder UsingLogger ### Description Overrides the default log writer to be used with this HTTP client. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "UsingLogger", "parameters": { "logWriter": "" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder Option ### Description Adds or overwrites an option for the client library. Overloaded for different data types. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example (character, character) ```json { "method": "Option", "parameters": { "pcName": "Timeout", "pcValue": "60" } } ``` ### Request Example (character, decimal) ```json { "method": "Option", "parameters": { "pcName": "MaxRedirects", "pdValue": 5.0 } } ``` ### Request Example (character, int64) ```json { "method": "Option", "parameters": { "pcName": "BufferSize", "piValue": 8192 } } ``` ### Request Example (character, logical) ```json { "method": "Option", "parameters": { "pcName": "EnableCompression", "plValue": true } } ``` ### Request Example (character, Object) ```json { "method": "Option", "parameters": { "pcName": "CustomHeader", "poValue": "" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder ReuseSession ### Description Determines whether SSL sessions should be reused. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "ReuseSession", "parameters": { "pReuse": true } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ## OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder ServerNameIndicator ### Description Sets the server name indicator for TLS. ### Method POST (conceptual, typically used within a builder pattern) ### Endpoint N/A (Method within a builder class) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json { "method": "ServerNameIndicator", "parameters": { "pServerName": "example.com" } } ``` ### Response #### Success Response (200) - **OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder** (object) - This builder instance #### Response Example ```json { "builderInstance": "" } ``` ``` -------------------------------- ### Core Module Utilities Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Lang Documentation for the Core module, encompassing fundamental utilities like assertions, collection management, JSON serialization, server connections, and system error handling. ```APIDOC ## Core Module Utilities ### Description The Core module provides essential utilities and base classes used across various parts of the Progress OpenEdge ABL API. ### Key Components: * **Assertions:** The `Assertion` package offers classes like `AssertArray`, `AssertObject`, and `AssertJson` for validating data and conditions. * **Collections:** A rich set of collection types including `List`, `HashMap`, `Set`, and various `TTCollection` implementations, along with iterators. * **JSON Serialization:** Interfaces and classes like `IJsonSerializer`, `JsonConverter`, and `JsonSerializer` for handling JSON data. * **Server Connections:** Classes for managing server connections, including `IServerConnection`, `ConnectionParameters`, and specific implementations like `WebServiceConnection`. * **System Errors:** Exception classes such as `ApplicationError`, `ArgumentError`, and `InvalidCallError` for robust error handling. ``` -------------------------------- ### ABLUnit - Test Execution Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Core.Json This section covers the API for executing ABLUnit tests, including configuration and result handling. ```APIDOC ## POST /api/ablunit/run ### Description Executes ABLUnit tests based on the provided configuration. ### Method POST ### Endpoint `/api/ablunit/run` ### Request Body - **testConfig** (TestConfig) - Required - Configuration for test execution, including test suites and runner options. ### Request Example ```json { "testConfig": { "testSuites": [ "TestSuite1", "TestSuite2" ], "runnerOptions": { "failOnError": true } } } ``` ### Response #### Success Response (200) - **results** (TestResultList) - A list containing the results of the executed tests. #### Response Example ```json { "results": { "passed": 10, "failed": 2, "errors": 0 } } ``` ``` -------------------------------- ### Core - Server Connection Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net This section details the configuration and usage of server connections. ```APIDOC ## POST /api/core/connect ### Description Establishes a connection to a server. ### Method POST ### Endpoint /api/core/connect ### Parameters #### Request Body - **parameters** (IConnectionParameters) - Required - The parameters for establishing the connection. ### Request Example ```json { "parameters": { "type": "WebServiceConnectionParameters", "url": "http://example.com/api", "userName": "admin", "password": "secret" } } ``` ### Response #### Success Response (200) - **connectionId** (string) - A unique identifier for the established connection. #### Response Example ```json { "connectionId": "conn_12345abcde" } ``` ## POST /api/core/disconnect ### Description Closes an existing server connection. ### Method POST ### Endpoint /api/core/disconnect ### Parameters #### Request Body - **connectionId** (string) - Required - The ID of the connection to close. ### Request Example ```json { "connectionId": "conn_12345abcde" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message indicating the connection was closed. #### Response Example ```json { "message": "Connection conn_12345abcde closed successfully." } ``` ``` -------------------------------- ### ABLUnit - Testing Framework Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Net This section covers the ABLUnit testing framework, including test execution and result handling. ```APIDOC ## POST /api/ablunit/runtests ### Description Executes a set of ABL unit tests. ### Method POST ### Endpoint /api/ablunit/runtests ### Parameters #### Request Body - **config** (TestConfig) - Required - Configuration for test execution. ### Request Example ```json { "config": { "testSuites": ["TestSuite1", "TestSuite2"], "runnableEntities": ["Model.File", "Model.TestCase"] } } ``` ### Response #### Success Response (200) - **results** (TestResultList) - A list of test results. #### Response Example ```json { "results": { "passed": 5, "failed": 0, "errors": [], "tests": [ { "testName": "Test1.Method1", "status": "PASSED" }, { "testName": "Test2.MethodA", "status": "PASSED" } ] } } ``` ## POST /api/ablunit/writereport ### Description Writes test results to a specified format. ### Method POST ### Endpoint /api/ablunit/writereport ### Parameters #### Request Body - **results** (TestResultList) - Required - The test results to write. - **writerType** (string) - Required - The type of writer (e.g., "XmlResultsWriter"). ### Request Example ```json { "results": { "passed": 5, "failed": 0, "tests": [ { "testName": "Test1.Method1", "status": "PASSED" } ] }, "writerType": "XmlResultsWriter" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message indicating the report was written. #### Response Example ```json { "message": "Test results written successfully to XML." } ``` ``` -------------------------------- ### ApplicationServer Module Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.DataAdmin.Lang Details regarding the ApplicationServer module, focusing on agent management, connection utilities, and helper classes for interacting with the server. ```APIDOC ## ApplicationServer Module ### Description This module provides utilities and management classes for the Progress Application Server, enabling interaction with agents and server configurations. ### Key Components: * **Agent Management:** Classes like `AgentInfo` and `AgentManager` are used for managing application server agents. * **Connection Utilities:** Includes classes for establishing connections, such as `OEManagerConnection` and `OEManagerEndpoint`. ``` -------------------------------- ### Core - Server Connection Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Core.Json Details the API for establishing and managing connections to a server. ```APIDOC ## POST /api/server/connect ### Description Establishes a connection to the server using the provided connection parameters. ### Method POST ### Endpoint `/api/server/connect` ### Request Body - **connectionParameters** (IConnectionParameters) - Required - Specifies the details for establishing the server connection. ### Request Example ```json { "connectionParameters": { "host": "localhost", "port": 8080, "protocol": "http" } } ``` ### Response #### Success Response (200) - **connectionId** (string) - A unique identifier for the established connection. #### Response Example ```json { "connectionId": "conn-12345abc" } ``` ``` -------------------------------- ### Service Management Source: https://docs.progress.com/bundle/openedge-abl-api-reference-128/page/OpenEdge.Web.DataObject APIs for registering a service with detailed configurations and checking service availability. ```APIDOC ## RegisterService ### Description Registers a service in this handler. ### Method Not specified (likely a method of OpenEdge.Web.DataObject.DataObjectService) ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **pcServiceName** (CHARACTER) - The name of the service. - **pcVersion** (CHARACTER) - The version of the service. - **poOperations** (JsonObject) - JSON object defining service operations. - **poCatalog** (JsonObject) - JSON object defining the service catalog. - **poSchemas** (JsonObject) - JSON object defining service schemas. ### Request Example ```json { "pcServiceName": "string", "pcVersion": "string", "poOperations": {}, "poCatalog": {}, "poSchemas": {} } ``` ### Response #### Success Response (200) - **Returns** (OpenEdge.Web.DataObject.DataObjectService) - The DataObjectService instance. #### Response Example ```json { "": "..." } ``` ``` ```APIDOC ## TryFindService (character, character) ### Description Indicates whether a named service is available. Will attempt to locate a service map if it is not yet registered, and will register it if one can be found. The search path for finding the service mapping files is: 1. Look in the webapp's WEB-INF/openedge folder first. 2. Look in the instance's /openedge folder next. 3. Look in the rest of PROPATH. ### Method Not specified (likely a static method or part of a class) ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **pcServiceName** (CHARACTER) - The name of the service to find. - **pcWebAppPath** (CHARACTER) - The path to the web application. ### Request Example ```json { "pcServiceName": "MyService", "pcWebAppPath": "/webapp" } ``` ### Response #### Success Response (200) - **Returns** (LOGICAL) - logical TRUE if the service exists, FALSE otherwise. #### Response Example ```json { "return": true } ``` ``` ```APIDOC ## TryFindService (character, character, character) ### Description Indicates whether a named service is available. Will attempt to locate a service map if it is not yet registered, and will register it if one can be found. The search path for finding the service mapping files is: 1. Look in the webapp's WEB-INF/openedge folder first. 2. Look in the instance's /openedge folder next. 3. Look in the rest of PROPATH. ### Method Not specified (likely a static method or part of a class) ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **pServiceName** (CHARACTER) - The name of the service to find. - **pVersion** (CHARACTER) - The version of the service. - **pWebAppPath** (CHARACTER) - The path to the web application. ### Request Example ```json { "pServiceName": "MyService", "pVersion": "1.0", "pWebAppPath": "/webapp" } ``` ### Response #### Success Response (200) - **Returns** (LOGICAL) - logical TRUE if the service exists, FALSE otherwise. #### Response Example ```json { "return": true } ``` ```