diff --git a/.cursor/rules/project-context.mdc b/.cursor/rules/project-context.mdc new file mode 100644 index 00000000..1e5e06cd --- /dev/null +++ b/.cursor/rules/project-context.mdc @@ -0,0 +1,49 @@ +--- +description: Project context for the OutSystems DataGrid extension (.NET server-side code) +globs: extension/**/*.cs +alwaysApply: false +--- + +# DataGridUtils .NET Extension + +OutSystems Integration Studio extension (assembly `OutSystems.NssDataGridUtils`) that converts OutSystems platform objects (entities, structures, records, lists) into JSON for the front-end Data Grid component. + +## Directory Layout + +- `extension/DataGridUtils/Templates/NET/` — Auto-generated stubs from Integration Studio (do not edit). +- `extension/DataGridUtils/Source/NET/` — Actual implementation (edit here). +- `extension/tests/` — Standalone test project (`DataGridUtils.Tests.csproj`). + +## Key Files (under `Source/NET/`) + +| File | Role | +|---|---| +| `Interface.cs` | `IssDataGridUtils` — public API with `MssConvertData2JSON` and deprecated `MssConvertData2JSON_deprecated` | +| `DataGridUtils.cs` | `CssDataGridUtils` — implementation; bundles data + metadata into `{"data": ..., "metadata": ...}` | +| `ObtainMetadata.cs` | Reflection-based schema extractor; walks fields/properties prefixed with `ss` to produce a JSON type map | +| `temp_ardoJSON.cs` | Forked `ardoJSON` serializer; reflection + caching (`recCache`), smart ISO 8601 dates, list flattening, `Byte[]` exclusion | +| `Structures.cs`, `Records.cs`, `RecordLists.cs`, `Entities.cs` | Empty namespace placeholders from Integration Studio | + +## Test Project (`extension/tests/`) + +A .NET Framework 4.7.2 console app that tests the extension without the OutSystems platform. + +| File | Role | +|---|---| +| `DataGridUtils.Tests.csproj` | Project file; references the compiled extension DLL and platform DLLs from `Source/NET/Bin/` | +| `ConvertData2JSONTests.cs` | Tests for `MssConvertData2JSON`; contains mock OutSystems types (`ISimpleRecord`, `IRecord`, `IOSList`) and a lightweight pass/fail console runner | + +- **Mock types** — `STCenasListStructure`, `RCCenasListRecord`, `RLCenasListRecordList` replicate the OutSystems record-list hierarchy so `CssDataGridUtils` can be exercised in isolation. +- **Runner pattern** — `RunTest(name, Action)` catches exceptions; `AssertEqual` provides positional diff on failure. Exit code 1 on any failure. + +## Conventions + +- OutSystems runtime objects prefix fields/properties with `ss` (simple), `ssEN` (entity), `ssST` (structure). The code strips these prefixes when writing JSON keys. +- `Byte[]` fields are excluded from both data and metadata (ticket RGRIDT-364). +- DateTime handling (format `3` — smart ISO 8601): `1900-01-01 00:00:00` → `""`, date-only → `yyyy-MM-dd`, time-only → `HH:mm:ss`, full → UTC `yyyy-MM-dd'T'HH:mm:ssZ`. + +## Dependencies + +- .NET Framework 4.7.2 +- Newtonsoft.Json 6.0 (from OutSystems Dev Environment) +- OutSystems.HubEdition.RuntimePlatform (`IRecord`, `ISimpleRecord`, `IOSList`) diff --git a/.gitignore b/.gitignore index 3e91b5a2..f2b5e798 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,13 @@ new-version-artf.txt # Distribution files folder dist/** + +# Extension compiled files +/**/Bin/** +/**/obj/** + +# Ignoring .vs folder +/**/.vs/** + +# Ignoring DataGridUtils backups +/extension/DataGridUtils/Backups/** diff --git a/docs/adr/ADR-0000-Title-of-ADR.md b/docs/adr/ADR-0000-Title-of-ADR.md new file mode 100644 index 00000000..a253dfc8 --- /dev/null +++ b/docs/adr/ADR-0000-Title-of-ADR.md @@ -0,0 +1,46 @@ + + +# ADR-0000: Title of ADR + +## Status + +Proposed/Accepted/Rejected/Superseded by ADR-XXXX + +## Context + +What is the issue that we're seeing that is motivating this decision or change? +What is the current architectural state relevant to this decision? +What are the constraints (technical, business, etc.)? + +## Decision Drivers + +- Driver 1 +- Driver 2 +- ... + +## Considered Options + +- Option 1 + - Pros: + - Cons: +- Option 2 + - Pros: + - Cons: +- ... + +## Decision Outcome + +Chosen option: "Option X", because [justification. e.g., only option that meets k.o. criteria decision driver | satisfies critical requirement | ... | comes out best (see below)]. +Positive consequences: + +- ... + Negative consequences: +- ... + +## Links + +- Link to related issues, discussions, or documents. + +## Date + +YYYY-MM-DD \ No newline at end of file diff --git a/docs/adr/ADR-0001-Extension-Dotnet-Upgrade-And-Improvements.md b/docs/adr/ADR-0001-Extension-Dotnet-Upgrade-And-Improvements.md new file mode 100644 index 00000000..0358c51e --- /dev/null +++ b/docs/adr/ADR-0001-Extension-Dotnet-Upgrade-And-Improvements.md @@ -0,0 +1,52 @@ +# ADR-0001: Extension .NET Upgrade and Improvements + +## Status + +Accepted + +## Context + +The DataGridUtils extension (`OutSystems.NssDataGridUtils`) was targeting an older .NET Framework version. The reflection-based JSON serializer (`temp_ardoJSON`) used a non-thread-safe `Dictionary` for its type cache (`recCache`), which could cause thread deadlocks under concurrent access on the OutSystems platform. Additionally, the extension had no automated tests, making it difficult to validate changes without deploying to the platform. + +## Decision Drivers + +- The OutSystems platform runtime uses .NET Framework 4.7.2, so updating from the outdated and unsupported 4.6.1 can be done safely. +- The `recCache` static dictionary was susceptible to deadlocks when accessed concurrently by multiple threads handling parallel requests, potentially causing data corruption and high usage of CPU - but the occurence of this is minimal. +- There was no way to test the extension logic in isolation without the OutSystems platform, slowing down development and increasing the risk of regressions. + +## Considered Options + +- Option 1: Upgrade .NET version only + - Pros: Minimal change, low risk. + - Cons: Does not address thread safety or testability. +- Option 2: Upgrade .NET version + fix thread safety + add test project + - Pros: Addresses all the concerns of the RPM-6484. + - Cons: Larger changeset, but changes are isolated to the extension layer. +- Option 3: Upgrade .NET version + fix thread safety + add test project + - Pros: Addresses all three concerns in a single effort; the test project enables validating the thread-safety fix and future changes without the platform. + - Cons: Larger changeset, but changes are isolated to the extension layer. + +## Decision Outcome + +Chosen option: "Option 3", because it addresses all identified issues together, and the test project provides confidence that the thread-safety and serialization fixes work correctly. + +Positive consequences: + +- Extension now targets .NET Framework 4.7.2, aligning with the OutSystems platform runtime. +- Replaced `Dictionary>` with `ConcurrentDictionary` in `temp_ardoJSON.recCache`, eliminating the thread deadlock risk during concurrent serialization calls. +- A standalone .NET Framework 4.7.2 test project (`extension/tests/DataGridUtils.Tests.csproj`) enables testing `MssConvertData2JSON` in isolation using mock OutSystems types (`ISimpleRecord`, `IRecord`, `IOSList`), without requiring the OutSystems platform. + +Negative consequences: + +- The test project references compiled DLLs from the extension's `Bin/` directory, so tests must be run after building the extension. + +## Links + +- `extension/DataGridUtils/Source/NET/DataGridUtils.csproj` — updated target framework. +- `extension/DataGridUtils/Source/NET/temp_ardoJSON.cs` — `ConcurrentDictionary` change. +- `extension/tests/DataGridUtils.Tests.csproj` — new test project. +- `extension/tests/ConvertData2JSONTests.cs` — test implementation with mock types. + +## Date + +2026-02-24 diff --git a/docs/adr/Readme.md b/docs/adr/Readme.md new file mode 100644 index 00000000..fa648be5 --- /dev/null +++ b/docs/adr/Readme.md @@ -0,0 +1,30 @@ +# Architecture Decision Records (ADRs) + +This directory contains Architecture Decision Records (ADRs) for this project. +ADRs are short documents that capture important architectural decisions, along with their context and consequences. + +## Purpose + +- To document significant architectural decisions. +- To provide context for why decisions were made. +- To help onboard new team members. +- To facilitate future architectural discussions and evolution. +- To provide context to AI-powered development assistants. + +## Format + +Each ADR should follow the template in `ADR-0000-Title-of-ADR.md`. + +## Process + +1. **Propose:** Copy `ADR-0000-Title-of-ADR.md` to a new file named `NNNN-title-of-adr.md`, where `NNNN` is the next sequential number and the rest is a dash-separated, lowercase version of the title. +2. **Discuss:** Fill out the ADR and discuss it with the team. +3. **Decide:** Once a decision is reached, update the status in the ADR (e.g., "Accepted", "Rejected", "Superseded"). +4. **Commit:** Commit the ADR to the repository. + +## ADR Log + +| ADR Number | Title | Status | Date | +| :--------- | :---------------------------------------------------------------- | :------- | :---------------------------------- | +| ADR-0000 | Template for ADRs | Meta | 2026-02-04 | +| ADR-0001 | Extension .NET Upgrade and Improvements | Accepted | 2026-02-24 | diff --git a/extension/DataGridUtils.xif b/extension/DataGridUtils.xif index 9578da20..c0c1428c 100644 Binary files a/extension/DataGridUtils.xif and b/extension/DataGridUtils.xif differ diff --git a/extension/DataGridUtils/Source/NET/AssemblyInfo.cs b/extension/DataGridUtils/Source/NET/AssemblyInfo.cs index 4ebb0e84..5075e220 100644 --- a/extension/DataGridUtils/Source/NET/AssemblyInfo.cs +++ b/extension/DataGridUtils/Source/NET/AssemblyInfo.cs @@ -16,8 +16,8 @@ [assembly: ComVisible(false)] [assembly: CLSCompliantAttribute(false)] -[assembly: AssemblyVersion("11.14.0.33133")] -[assembly: AssemblyFileVersion("11.14.0.33133")] +[assembly: AssemblyVersion("11.40.1.46624")] +[assembly: AssemblyFileVersion("11.40.1.46624")] [assembly: NeutralResourcesLanguage("")] diff --git a/extension/DataGridUtils/Source/NET/Bin/Newtonsoft.Json.dll b/extension/DataGridUtils/Source/NET/Bin/Newtonsoft.Json.dll deleted file mode 100644 index e4a63399..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/Newtonsoft.Json.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll deleted file mode 100644 index 309ecbb5..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml deleted file mode 100644 index 4ec3ab64..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml +++ /dev/null @@ -1,6355 +0,0 @@ - - - - OutSystems.HubEdition.DatabaseAbstractionLayer - - - - - Returns a unique identifier of the database provider, used to identify it as a plugin - - - - - Gets the instance associated with this database provider. - - The provider properties. - - - - Returns an empty . - - - - - Returns the services provided by the DBMS. - - The database configuration. - - - - Returns true if the of both providers is equal - - - - - Base implementation of a class to represent a set of properties that are specific to a database provider. - - - - - Fills the database provider information. - - The database provider. - - - - This property represents the associated instance. - - - - - Gets the friendly name of the database provider. - - - - - Gets the friendly name of the database provider, when used to run the OutSystems Platform. - - - - - Gets the friendly name of the database container (e.g. database, catalog, schema, ...), used - for UI generation and messages displayed to the end-user. - This implementation return "Database" - - - - - Indicates if the provider's driver supports more than one active result set for a single connection. - This implementation returns true. - - - - - Returns true if connection string advanced parameters are set. - - True if the advanced parameters are set, False otherwise. - - - - This property represents the field that will store connection string advanced parameters. - This field is displayed when defining an advanced database connection. - - - The advanced connection string. - - - - - Help text that is displayed next to the advanced connection string parameters field in the user interface. - This text should provide information regarding the format of the configuration parameters and examples on how to define them. - - - A help message to display in the user interface. - - - - - Gets the label text to display in the user interface for the connection string advanced parameters field. - - - The label to display in the user interface. - - - - - Gets an expression that assists on creating a preview of the resulting connection string in the user interface. - This expression should be a string that contains tokens that match the name of the AdvancedConnectionStringField property - as well as additional configuration parameters that belong to the 'UserSpecific' region. - A typical use for this expression is to hide sensitive information like passwords. - In the following example, the value for the 'Username' and the 'AdvancedConnectionStringField' - parameters, set by the user, will replace the corresponding tokens. - This allows the user interface to be updated with these values without disclosing - the value of the password field showing an hard-coded value, in this case '<hidden>'. - Example: [user id=$Username;password=<hidden>;]$AdvancedConnectionStringField" - - - An expression that creates a preview of the resulting connection string. - - - - - Values that represent the authentication type to be used to access the database. - - - - - Base implementation of the interface, that - encapsulates a connection string and other configuration information required - to connect to a database. - Extend this class to create a specific database configuration. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - - - Gets the connection string that allows connecting to a database. - If the is defined, returns it, - if an advanced connection string is defined returns the result of . - Otherwise returns the result of . - - - - - Returns a basic connection string with attributes such as username and password. - - A basic connection string. - - - - Returns an advanced connection string with attributes that might be specific for a particular database. - - An advanced connection string. - - - - This property represents the connection string that overrides specified configuration parameter values. - - - - - This property represents the advanced configuration object. - - The advanced configuration object. - - - - This property represents the database identifier to be used in the configuration. - - - - - Concatenates the connection string with the supplied extra parameters. - - Connection string without any extra parameters. - Extra parameters to be added to the connection string. - A string representation of the new connection string after joining the extra parameters. - - - - Determines whether the current object is equal to the specified . - - The to compare with. - True if the instance is equal to the specified , False otherwise. - - - - Returns the hash code for this object. - - The hash code for this object. - - - - Returns the hash code of a list of objects. - - A list of objects. - An hash code. - - - - Compares two lists of objects. - - A list of objects. - Another list of objects. - True if the two lists are equal, False otherwise. - - - - Attribute used to identify configuration parameters. - This attribute should be used in a database configuration objects. - - - - - Defines if the attribute should be encrypted - - - - - Defines if this parameter should be persisted - - - - - Defines the full name of Setting. - Optional field. - Note: The setting will need to be saved in the .config file outside of the DAL - - - - - Exception for signalling configuration serialization errors. - - - - - Encapsulates a connection string and other configuration information required to connect - to a database. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - The database provider. - - - - - Gets the connection string that allows connecting to a database. - - - The connection string. - - - - - Gets the database identifier to be used in the configuration. - - - The database identifier. - - - - - Gets the advanced configuration object that allows users to set connection parameters in an advanced way. - - - The advanced configuration object. - - - - - Gets the connection string that overrides specified configuration parameter values. - - - The connection string. - - - - - Gets the object that compacts all the needed configuration parameters to be used in runtime. - - - The runtime database configuration. - - - - The configuration object used to create services and open connections to the - database. We have other configuration interfaces like that are used to specify the UI of a - configuration screen. - - - - The user that this configuration uses to connect to the database. - - - The username. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - The database provider. - - - - - Gets the connection string that allows connecting to a database. - - - The connection string. - - - - - Gets the database identifier to be used in the configuration. - - - The database identifier. - - - - - Interface for annotated parameter. - - - - - Represents the meta-information about a database configuration. - - - - - Returns a parameter with the given name. - - - The parameter's name. - - A parameter with the given name. - - - - Gets a list of visible parameters. - - - The list of visible parameters. - - - - Represents a parameter defined by a specific implementation of a database provider tagged accordingly. (Wrapper to IUserDefinedPluginParameter) - - - - Constructor to create a new parameter. - - The wrapped IUserDefinedPluginParameter. - The annotation. - - - - Invokes the visibilityChecker method to check whether this parameter is visible or not. - - - True if the parameter is visible or False if not. - - - - Gets the label that represents the parameter. - - - The label representing the parameter. - - - - Returns information about the parameter. - - - The information to be shown. - - - - Gets a value indicating whether the parameter is mandatory or not. - - - True if the parameter is mandatory or False if not. - - - - Gets the order of the parameter inside the region. - - - An integer that represents the parameter's order inside the region. - - - - Gets the UI region of the parameter. - - - Object that represents the region where the parameter will be. - - - - Gets a value indicating whether this object is password. - - - True if this parameter is representing password or False if not. - - - This property indicates whether this object uses a multiline text. - True if this object has multiline text, false if not. - - - Gets the autocomplete expression. - An expression that controls how autocomplete will react for read-only fields. - - - - Areas in the user interface used to display configuration parameters that relate to the same concept (e.g. server location, user credentials) - - - - - Attribute used to identify a configuration parameter and to describe the way it is presented in the user interface allowing users to manipulate it. - This attribute should be used in a database configuration objects. - - - - - Identifies the UI region where the parameter will be placed. - - - The region where the parameter will be present. - - - - Defines the text of the label that is placed next to the parameter in the user interface. - - - The label that will represent the parameter. - - - - Defines the text of the message used to ask the user for a value to the parameter. - - A string with the prompt to be displayed about the parameter's value. - - - - Defines a detailed message that clearly explains the purpose of the parameter and/or applicable restrictions to its values. - - - The information to be shown about the parameter. - - - - Establishes the order of the parameter inside its region. - - An integer that represents the order of the parameter inside the defined region. - - - - Indicates whether the parameter should be treated as a password. - - True if this parameter is a password, or False otherwise. - - - - Indicates whether this parameter should be treated as mandatory. - - True if this parameter is mandatory, or False otherwise. - - - - Specifies the boolean property responsible for dictating if the parameter should be displayed in the user interface or not. - - The boolean property name. - - - - Specifies that the Property is expected if another Property has Value: Property.Value. The Property must be an Enum. - The validation that is required or not, it is defined by the IsMandatory attribute. - - Property.Value, e.g., Region.UserSpecific - - - - Attribute used to place an hyperlink next to a configuration parameter whose type is an enumeration, when a specific value is selected. - Multiple uses are possible allowing to place an help link for each value of the enumeration. - - - - - Defines the string value the help information relates to. - - - The string value the help information relates to. - - - - Defines the text of the link that is placed next to the enum parameter in the user interface. - - - The link text that will represent the parameter. - - - - Defines the URL where the help link will point to. - - The URL the help link will point to - - - - Name that identifies the database - - - - - Returns true if both objects represent exactly the same database, or false otherwise. - The base implementation checks if both objects are the same or if they have the same . - - Other database object to compare with - true if the current object is equal to the other parameter; otherwise, false. - - - - Database where the table source is located. - - - - - Name that identifies the table source inside the database - - - - - Fully qualified identifier of the table source, including the database information - - - - - Human-readable name that unambiguously identifies the table source inside a database. - This implementation returns the . - - - - - Returns true if both objects represent exactly the same table source, or false otherwise. - This implementation returns true if both objects are the same instance or if the - , and are equal. - - Other table source object to compare with - true if the current object is equal to the other parameter; otherwise, false. - - - - Contains information about a database. - - - - - Name that identifies the database - - - The identifier of the database. - - - - - Returns true if both objects represent exactly the same database, or false otherwise. - - Other database object to compare with - true if the current object is equal to the other parameter; otherwise, false. - - - - Creates introspection objects from qualified names, inspecting the database only if needed. - - - - - Returns an object that contains information about the current database - - Database-specific object that implements the IDatabaseInfo interface - - - - Returns an object that contains information about a database, inferring it from a database identifier. - If the does not contain all the required information, the remaining - should be inferred from the current . - - Unique identifier of the database - Database-specific object that implements the IDatabaseInfo interface - If the databaseIdentifier is invalid - - - - Returns an object that contains information about a table source (data source in tabular format), like a database table or view, - inferring both the database and table source information from a qualifiedName. If the does not contain - all the required information, the remaining should be inferred from the current . - - Qualified identifier of the table source, including the database information - Database-specific object that implements the ITableSourceInfo interface - if the qualifiedName is invalid - - - - Contains information about a data type. - - - - - Database type that can be mapped to the data types available in the platform. - - - The Database type. - - - - - Original database-specific type, used for auditing. - - - The type of the SQL data. - - - - - Size of the data type, when applicable (e.g. text of decimal numbers). - - - The length of the data type. - - - - - Number of decimal places of the data type, when applicable (e.g. decimal numbers). - - - Number of decimal plates. - - - - - Contains information about a table source column. - - - - - Table source that owns the column. - - - The table source. - - - - - Name that identifies the column. - - - The name of the column. - - - - - Data type of the values stored in the column. - - - The type of the data. - - - - - Returns true if the column must have a value assigned to it (NOT NULL), or false if it is nullable. - - - True if this column is mandatory, False otherwise. - - - - - Returns true if the column is part of the table source's primary key, or false otherwise. - - - True if this column is primary key, False otherwise. - - - - - Returns true if the column value is generated automatically when a row is inserted (e.g. sequential numbers). - - - True if this column is automatic generated, False otherwise. - - - - - Contains information about a table source foreign key. - - - - - Table source that owns the foreign key. - - - The table source. - - - - - Name that identifies the foreign key constraint. - - - The name of the foreign key. - - - - - Name of the column. - - - The name of the column. - - - - - Table source that owns the referenced column. - - - The referenced table source. - - - - - Name of the referenced column. - - - The name of the referenced column. - - - - - Returns True if the delete rule of the foreign key is CASCADE DELETE. - - - True if the cascade delete is set, False otherwise. - - - - - Contains information about a table source (data source in tabular format), like a database table or view. - - - - - Database where the table source is located. - - - The database where the table is located. - - - - - Name that identifies the table source inside the database - - - The name. - - - - - Fully qualified identifier of the table source, including the database information - - - The fully qualified identifier. - - - - - Human-readable name that unambiguously identifies the table source inside a database - - - The display name. - - - - - Returns true if both objects represent exactly the same table source, or false otherwise. - - Other table source object to compare with - true if the current object is equal to the other parameter; otherwise, false. - - - - Specifies the data type to use in the database. - - - - - Base implementation for generating the DML aggregate functions required by the applications to perform DataSet queries - - - - - This property represents the associated DML service. - - - - - Returns a DML expression that computes the maximum value of 'v' in the current group's rows. - Ignores rows for which the value of 'v' is NULL. - This implementation returns Max(v). - - A DML expression that evaluates to an Integer, Decimal or DateTime. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the minimum value of 'v' in the current group's rows. - Ignores rows for which the value of 'v' is NULL. - This implementation returns Min(v). - - A DML expression that evaluates to an Integer, Decimal or DateTime. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the average value of 'n' in the current group's rows. - Ignores rows for which the value of 'n' is NULL. - This implementation returns Avg(n). - - A DML expression that evaluates to an Integer or Decimal. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the sum of 'n' in the current group's rows. - Ignores rows for which the value of 'n' is NULL. - This implementation returns Sum(n). - - A DML expression that evaluates to an Integer or Decimal. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the number of rows in the current group. - This implementation returns Count(*). - - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the number of rows in the current group. - Ignores rows for which the value of 'v' is NULL. - This implementation returns Count(v). - - A DML expression that evaluates to a basic type. - A DML expression that evaluates to a Integer. - - - - Base implementation of a contract for generating default values for simple queries. - - - - - This property represents the associated DML service. - - - - - Gets a DML expression that returns the NULL value. - This implementation always returns NULL. - - DML expression - - - - Gets a DML expression that returns the default value for Text elements. - This implementation always returns ''. - - DML expression of type Text - - - - Gets a DML expression that returns the default value for Boolean elements. - This implementation always returns zero. - - DML expression of type Boolean - - - - Gets a DML expression that returns the default value for Integer elements. - This implementation always returns zero. - - DML expression of type Integer - - - - Gets a DML expression that returns the default value for Long elements. - This implementation always returns zero. - - DML expression of type Long - - - - Gets a DML expression that returns the default value for Decimal elements. - This implementation always returns zero. - - DML expression of type Decimal - - - - Gets a DML expression that returns the default value for Date elements. - This implementation uses the with the value '1900-01-01' - - DML expression of type Date - - - - Gets a DML expression that returns the default value for Time elements. - This implementation uses the with the value '00:00:00' - - DML expression of type Time - - - - Gets a DML expression that returns the default value for DateTime elements. - This implementation uses the with the value '1900-01-01 00:00:00' - - DML expression of type DateTime - - - - Gets a DML expression that returns the default value for BinaryData elements. - This implementation always returns NULL. - - DML expression of type BinaryData - - - - Base implementation of an interface that represents the different kinds of entity actions supported by the platform. - - - - - This property represents the associated DML service. - - - - - This property represents information about this entity's underlying table source, needed by the platform for DML generation purposes. - - - - - Returns True if this entity requires the parameter values to be dumped inline for a given entity action kind. - This implementation returns False. - - Entity action whose requirement for inline parameter values is to be tested. - A boolean indicating whether this entity requires inline parameter values or not. - - - - Returns True if this entity requires the table names to be dumped inline for a given entity action kind. - This implementation returns False; - - Entity action whose requirement for inline table names is to be tested. - A boolean indicating whether this entity requires inline table names or not. - - - - Returns the table name of this entity to be used in the entity action specified. - This implementation returns null; - - Entity action to be considered for table name overriding. - The table name of this entity if it needs to be overridden, otherwise returns Null. - - - - Returns additional DML expressions to be inserted in the SELECT statement - generated by the platform for the Get entity action. - - An with the DML expression. - - - - Returns additional DML expression to be inserted in the SELECT statement - generated by the platform for the GetForUpdate entity action. - - An with the DML expression. - - - - Returns additional DML expressions to be inserted in the SELECT statement - generated by the platform for the Create entity action. - - An with the DML expression. - - - - Returns additional DML expression to be inserted in the SELECT statement - generated by the platform for the Create entity action, when it's necessary - to retrieve the Id of the record created. - This implementation returns Null and sets retrieveIdMethod to ReturnValue. - - Column that stores the identifiers. - If the retrieveIdMethod is OutputParameter, this is the name of the parameter that will hold the value stored - in idColumnName, otherwise it should be ignored. - Method used by the platform to retrieve the identifier. - An with the DML expressions. - - - - Returns additional DML expressions to be inserted in the UPDATE statement - generated by the platform for the Update entity action. - - An with the DML expressions. - - - - Returns additional DML expressions to be inserted in the DELETE statement - generated by the platform for the Delete entity action. - - An with the DML expressions. - - - - Base implementation for generating the DML functions required by the applications to perform simple queries - - - - - This property represents the associated DML service. - - - - - Returns a DML expression that computes the absolute value (unsigned magnitude) of a decimal number. - This implementation returns Abs(n). - - A string representing a decimal number. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the decimal number 'n' rounded to the zero fractional digits. - This implementation returns Round(n,0). - - DML expression of type Decimal that evaluates to the decimal number to round - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the square root of the decimal number 'n'. - This implementation returns Sqrt(n). - - DML expression of type Decimal that evaluates to a decimal number - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the decimal number 'n' truncated to integer removing the decimal part of 'n'. - - DML expression of type Decimal that evaluates to the decimal number to truncate - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that concatenates two strings: 't1' and 't2'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that coalesce two arguments: 't1' and 't2' (returning the first non null one). - - A DML expression with no specific type. - A DML expression with no specific type. - A DML expression with no specific type. - - - - Returns a DML expression that searches an expression for another expression and returns its starting position if found. - Returns -1 if the expression is empty or cannot be found. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the number of characters in a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that replaces all occurrences of a specified string value with another string value. - The base implementation returns 'Replace(t, search, replace)'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text, to search for. - A DML expression that evaluates to Text, to replace all occurrences with. - A DML expression that evaluates to Text. - - - - Returns a DML expression that computes a substring beginning at start zero-based position - and with length characters. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer, containing the start index. - A DML expression that evaluates to an Integer, containing the length of the text to return. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a string to lowercase. - The base implementation returns 'Lower(t)'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a string to uppercase. - The base implementation returns 'Upper(t)'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all leading and trailing white spaces from a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all trailing white spaces from a string. - The base implementation returns 'RTrim(t)'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all leading white spaces from a string. - The base implementation returns 'LTrim(t)'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that adds days to a DateTime and returns a valid DataTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds days to a DateTime and returns a valid DataTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds minutes to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds months to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds seconds to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds years to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that creates a new DateTime given a Date and a Time. - - A DML expression that evaluates to a Date. - A DML expression that evaluates to a Time. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that computes the day of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the week day of a DateTime, ranging from 0 (Sunday) to 6 (Saturday). - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many days have passed between two DateTimes. - Returns zero if the two dates are the same, a positive integer if is smaller than , and - a negative number otherwise. - - First DML expression that evaluates to a DateTime. - Second DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many hours have passed between two DateTimes. - Returns zero if the two dates and hours are the same, a positive integer if is smaller than , and - a negative number otherwise. - - First DML expression that evaluates to a DateTime. - Second DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many minutes have passed between two DateTimes. - Returns zero if the two dates, hours and minutes are the same, a positive integer if is smaller than , and - a negative number otherwise. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many seconds have passed between two DateTimes. - Returns zero if the two dates, hours, minutes, and seconds are the same, a positive integer if is smaller than - , and a negative number otherwise. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the hour part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the minute part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the month part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes a new date from a year, month, and day. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a Date. - - - - Returns a DML expression that computes a new DateTime from a year, month, day, hour, minute, and second. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to DateTime. - - - - Returns a DML expression that computes a new Time from an hour, minute, and second. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Time. - - - - Returns a DML expression that computes the seconds part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the year part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Boolean expression to an Integer. The expression evaluates into - 1 if the boolean is True, or 0 if False. - - A DML expression that evaluates to a Boolean. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Boolean in its textual representation: True or False. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a DateTime to a Date, by dropping the Time component. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Date. - - - - Returns a DML expression that converts a DateTime to its textual representation, using a specified format. - - A DML expression that evaluates to a DateTime. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a DateTime to a Time, by dropping the Date component. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Time. - - - - Returns a DML expression that converts a Date to a DateTime, by adding an empty Time component (00:00:00). - - A DML expression that evaluates to a Date. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that converts a Date to its textual representation, using a specified format. - - A DML expression that evaluates to a Date. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to Text. - - - - Returns an SQL expression that converts a Decimal to a Boolean. A Decimal value of 0.0 is False, all other values are True. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that converts a Decimal to an Integer. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Integer. - - - - Returns a DML expression that converts a Decimal to a Long Integer. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Long Integer. - - - - Returns a DML expression that converts a Decimal to its textual representation. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to a Decimal. - - - - Provides a DML expression that converts Identifier 'id' to an Integer value. - - DML expression that evaluates to an integer value - DML expression of type Integer - - - - Provides a DML expression that converts Identifier 'id' to a Long Integer value. - - DML expression that evaluates to a Long Integer value - DML expression of type Long Integer - - - - Returns a DML expression that converts an Identifier to its textual representation. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts an Integer to a Boolean. - A Decimal value of 0 is False, all other values are True. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that converts an Integer to a Decimal. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a decimal. - - - - Returns a DML expression that converts an Integer to an (untyped) Identifier. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Long Integer to an (untyped) Identifier. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to a Long Integer. - - - - Returns a DML expression that converts a Long Integer to an Integer. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Integer. - - - - Returns a DML expression that converts a Long Integer to a Decimal. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Decimal. - - - - Returns a DML expression that converts an Integer to a Long Integer. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Long Integer. - - - - Returns a DML expression that converts a Long Integer to its textual representation. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts an Integer to its textual representation. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Text. - - - - Returns a DML expression that computes a Null Date (1900-01-01). - - A DML expression that evaluates to a Date. - - - - Returns a DML expression that returns a Null Numeric Identifier. - This implementation always returns zero. - - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes a Null Text Identifier. - This implementation always returns ''. - - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts Text to a Date. - - A DML expression that evaluates to Text. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to a Date. - - - - Provides a DML expression that converts Text 't' to a DateTime value. - - DML expression that evaluates to a text value - date format used to serialize the date component of the text value (e.g. YYYY-MM-DD) - DML expression of type DateTime - - - - Returns a DML expression that converts Text to a DateTime. - - A DML expression that evaluates to Text. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that converts Text to an (untyped) Identifier. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts Text to an Integer. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts Text to a Long Integer. - - A DML expression that evaluates to Text. - A DML expression that evaluates to a Long Integer. - - - - Returns a DML expression that converts Text to Time. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Time. - - - - Returns a DML expression that converts a Time to a DateTime, by adding an empty Date component (1900-01-01). - - A DML expression that evaluates to Time. - A DML expression that evaluates to DateTime. - - - - Returns a DML expression that converts a Time to its text value in the format hh:mm:ss. - - A DML expression that evaluates to Time. - A DML expression that evaluates to Text. - - - - Returns a DML expression that returns if is True, otherwise, it returns . - The base implementation returns 'CASE WHEN THEN ELSE END' - - A DML expression that evaluates to Boolean - A DML expression that evaluates to a specific type - A DML expression that evaluates to the same type as - A DML expression that evaluates to the same type of and - - - - Implementation of the IDMLIdentifiers interface that defines methods - that help build DML Identifiers for columns, tables, and others. - - - - - This property represents the associated . - - - - - Gets the maximum length of a simple (not compound) identifier. This value should be the minimum valid - length for any kind of identifier (e.g. table name, parameter name) - - - - - Escapes a simple (not compound) identifier to prevent name clashing with reserved words. - The base implementation escapes the identifier using quotation marks, if it isn't already escaped. - - Name that identifies a database object. - An escaped identifier. - - - - Returns a name that can be used as a valid identifier (e.g. parameter name, constraint name). - It should contain only valid characters and its length should not exceed the maximum defined in MaxLength. - This implementation escapes the baseName to contain only alphanumeric and '_' characters. - If the baseName exceeds the maximum length, the baseName is truncated - and the last five characters are replaced by random numbers. - - An identifier name. - - Indicates if the identifier should be truncated if its length exceeds the . In this case, - random digits should be used as a suffix to prevent name clashing. - - A string representing a valid identifier. - - - - This property represents the associated . - - - - - Returns a DML expression that computes the numeric negation of a number. - This implementation returns -n. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that computes the logical negation. - This implementation returns 'NOT b'. - - A DML expression that evaluates to a Boolean. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that checks if the value is NULL. - This implementation returns v IS NULL. - - A DML expression that evaluates to a value of any database type. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that checks if a is not NULL. - This implementation returns v IS NULL. - - A DML expression that evaluates to a value of any database type. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that concatenates two values. - This implementation returns v1 || v2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Text. - - - - Returns a DML expression that adds two numbers. - This implementation returns v1 + v2. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that subtracts two numbers. - This implementation returns n1 - n2. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that multiplies two numbers. - This implementation returns n1 * n2. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that divides two numbers. - This implementation returns n1 / n2. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that checks if two values are equal. - This implementation returns n1 = n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if two values are different. - This implementation returns n1 <> n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less than another. - This implementation returns n1 < n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less than or equal to another. - This implementation returns n1 <= n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is greater than another. - This implementation returns n1 > n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less or equals to another. - This implementation returns n1 >= n2. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that performs the logical AND. - This implementation returns b1 AND b2. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that performs the logical OR. - This implementation returns b1 OR b2. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - - - - Provides a DML expression that checks whether a string matches a pattern. - This implementation returns t1 LIKE t2. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - This property represents the associated . - - - - - Returns the DML expressions to be inserted in a query statement, - to make it count the number of records returned by the original query. - - An with the DML expressions. - - - - Returns the DML expressions to be inserted in the SELECT statement of a query - to limit the number of records returned. - This implementation adds placeholders to wrap the query in a select count statement: - SELECT COUNT(1) FROM (Query). - - - - - Determines if the given join type is supported. - - The join type - True if the join type is supported, false otherwise - - - - This property represents the instance associated with this service. - - - - - Gets an object that generates the SQL fragments required to perform specific queries (e.g. count query). - - - - - Gets an object that generates the SQL fragments required to perform entity actions. - - Information about the entity's underlying table source - - - - Gets an object that generates and manipulates SQL identifiers. - - - - - Gets an object that generates the SQL operators required to execute simple queries. - - - - - Gets an object that generates the SQL functions required to execute simple queries - - - - - Gets an object that generates the SQL aggregate functions required to execute simple queries - - - - - Gets an object that generates the SQL default values for each database type. - - - - - Gets an object that defines a set of fragments (e.g. keywords, operators) of the database-specific dialect - that can be used to provide syntax highlighting in SQL statements - - - - - Returns an SQL expression that transforms a value of a specified type, so that it can be used in a query condition. - This implementation returns the value without making any modification to it. - - - - - Returns an SQL expression that transforms a value of a specified type, to be used in conditions and calculated columns. - This implementation returns the value without making any modification to it. - - - - - Escapes special characters in a text value to be used in SQL statements (e.g replace ' by ''). - This implementation replaces the null string by the empty string and the character ' by ''. - - text value to be escaped - The escaped text - - - - Represents the possible placeholders for the delete SQL statement produced for the Delete entity action. - {BeforeStatement} DELETE FROM Entity {BeforeWhereKeyword} WHERE conditions {AfterStatement} - - - - - Gets the placeholder value and removes all leading white spaces. - - The type of the key. - The placeholder. - The placeholder key in the dictionary. - - The placeholder value. - - - - - Gets the placeholder value and removes all trailing white spaces. - - The type of the key. - The placeholder. - The placeholder key in the dictionary. - - The placeholder value. - - - - - Gets the placeholder value and removes all leading and trailing white spaces. - - The type of the key. - placeholders - The placeholder key in the dictionary. - - The placeholder value. - - - - - Gets the placeholder value and removes all leading and trailing white spaces depending on - the values of trimStart and trimEnd. - - The type of the key. - placeholders - placeholder's key - if set to true removes all leading white spaces from the placeholder value. - if set to true removes all trailing white spaces from the placeholder value - - The placeholder value. - - - - - Represents the possible placeholders for the insert SQL statement produced for the Create entity action. - {BeforeStatement} INSERT INTO Entity {BeforeValuesKeyword} VALUES (val, ... , val) {AfterStatement} - - - - - Represents the possible placeholders for the select SQL statement produced for simple queries, DataSets and the Get and GetForUpdate entity actions. - {BeforeStatement} SELECT {AfterSelectKeyword} column, ..., column - {BeforeFromKeyword} FROM {AfterFromKeyword} Entity - {BeforeWhereKeyword} WHERE {AfterWhereKeyword} conditions - {BeforeGroupByKeyword} GROUP BY {AfterGroupByKeyword} column, ..., column - {BeforeHavingKeyword} HAVING {AfterHavingKeyword} conditions - {BeforeOrderByKeyword} ORDER BY {AfterOrderByKeyword} column, ..., column - {AfterStatement} - - - - - Represents the possible placeholders for an SQL statement. - {BeforeStatement} SELECT * FROM Entity WHERE conditions {AfterStatement} - - - - - Represents the possible placeholders for the update SQL statement produced for the Update entity action. - {BeforeStatement} UPDATE Entity SET column = val {BeforeWhereKeyword} WHERE conditions {AfterStatement} - - - - - Defines a set of fragments (e.g. keywords, operators) of Generic (ANSI) SQL - that can be used to provide syntax highlighting in SQL statements. This is based on the book - "SQL in a nutshell - A Desktop Quick Reference", from Kevin Kline and Daniel Kline (2001) - - - Defines a set of fragments (e.g. keywords, operators) of Generic (ANSI) SQL - that can be used to provide syntax highlighting in SQL statements. This is based on the book - "SQL in a nutshell - A Desktop Quick Reference", from Kevin Kline and Daniel Kline (2001) - - - - - Initializes a new instance of the class. - - The DML service. - - - - This property represents the associated . - - - The DML service associated. - - - - - Returns a set of reserved keywords (e.g. SELECT, FROM, JOIN) - This implementation returns the Ansi SQL 99 keywords - - - - - Returns a set of function names (e.g. MAX, ROUND, UPPER)) - This implementation returns the Ansi SQL 99 functions - - - - - Returns a set of operators (e.g. +, LIKE, EXISTS) - This implementation returns the Ansi SQL 99 operators - - - - - Returns a set of data types (e.g. INTEGER, CHAR, NVARCHAR) - This implementation returns the Ansi SQL 99 data types - - - - - Generates the SQL aggregate functions required by the applications to perform DataSet queries. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - Returns a DML expression that computes the maximum value of 'v' in the current group's rows. - Ignores rows for which the value of 'v' is NULL. - - A DML expression that evaluates to an Integer, Decimal or DateTime. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the minimum value of 'v' in the current group's rows. - Ignores rows for which the value of 'v' is NULL. - - A DML expression that evaluates to an Integer, Decimal or DateTime. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the average value of 'n' in the current group's rows. - Ignores rows for which the value of 'n' is NULL. - - A DML expression that evaluates to an Integer or Decimal. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the sum of 'n' in the current group's rows. - Ignores rows for which the value of 'n' is NULL. - - A DML expression that evaluates to an Integer or Decimal. - A DML expression that evaluates to a value of the same type as the argument. - - - - Returns a DML expression that computes the number of rows in the current group. - - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the number of rows in the current group. - Ignores rows for which the value of 'v' is NULL. - - A DML expression that evaluates to a basic type. - A DML expression that evaluates to an Integer. - - - - Defines a contract for generating default values for simple queries. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - Gets a DML expression that returns the NULL value. - - DML expression - - - - Gets a DML expression that returns the default value for Text elements. - - DML expression of type Text - - - - Gets a DML expression that returns the default value for Boolean elements. - - DML expression of type Boolean - - - - Gets a DML expression that returns the default value for Integer elements. - - DML expression of type Integer - - - - Gets a DML expression that returns the default value for Long Integer elements. - - DML expression of type Integer - - - - Gets a DML expression that returns the default value for Decimal elements. - - DML expression of type Decimal - - - - Gets a DML expression that returns the default value for Date elements. - - DML expression of type Date - - - - Gets a DML expression that returns the default value for Time elements. - - DML expression of type Time - - - - Gets a DML expression that returns the default value for DateTime elements. - - DML expression of type DateTime - - - - Gets a DML expression that returns the default value for BinaryData elements. - - DML expression of type BinaryData - - - - Represents the different kinds of entity actions supported by the platform. - - - - - Represents the supported methods to retrieve an entity identifier after the correspondent record is inserted. - - - - - Retrieve the identifier using an output parameter associated to the command. - - - - - Retrieve the identifier by reading the first column of the first row in the resultset returned by the command. - - - - - Defines a contract for generating DML fragments required by applications to execute entity actions. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - Gets information about this entity's underlying table source, needed by the platform for DML generation purposes. - This information should be passed to the object's constructor in . - - - Information about this entity's underlying table source. - - - - - Returns the table name of this entity to be used in the entity action specified. - - Entity action to be considered for table name overriding. - The table name of this entity if it needs to be overridden, otherwise returns Null. - - - - Returns True if this entity requires the parameter values to be dumped inline for a given entity action kind. - - Entity action whose requirement for inline parameter values is to be tested. - A boolean indicating whether this entity requires inline parameter values or not. - - - - Returns True if this entity requires the table names to be dumped inline for a given entity action kind. - - Entity action whose requirement for inline table names is to be tested. - A boolean indicating whether this entity requires inline table names or not. - - - - Returns additional DML expressions to be inserted in the SELECT statement - generated by the platform for the Get entity action. - - An with the DML expression. - - - - Returns additional DML expression to be inserted in the SELECT statement - generated by the platform for the GetForUpdate entity action. - - An with the DML expression. - - - - Returns additional DML expressions to be inserted in the SELECT statement - generated by the platform for the Create entity action. - - An with the DML expression. - - - - Returns additional DML expression to be inserted in the SELECT statement - generated by the platform for the Create entity action, when it's necessary - to retrieve the Id of the record created. - - Column that stores the identifiers. - If the retrieveIdMethod is OutputParameter, this is the name of the parameter that will hold the value stored - in idColumnName, including the parameter prefix, otherwise it should be ignored. - Method used by the platform to retrieve the identifier. - An with the DML expressions. - - - - Returns additional DML expressions to be inserted in the UPDATE statement - generated by the platform for the Update entity action. - - An with the DML expressions. - - - - Returns additional DML expressions to be inserted in the DELETE statement - generated by the platform for the Delete entity action. - - An with the DML expressions. - - - - Generates the SQL functions required by the applications to perform simple queries. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - Returns a DML expression that computes the absolute value (unsigned magnitude) of a decimal number. - - A string representing a decimal number. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the decimal number 'n' rounded to the zero fractional digits. - - DML expression of type Decimal that evaluates to the decimal number to round - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the square root of the decimal number 'n'. - - DML expression of type Decimal that evaluates to a decimal number - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that computes the decimal number 'n' truncated to integer removing the decimal part of 'n'. - - DML expression of type Decimal that evaluates to the decimal number to truncate - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that concatenates two strings: 't1' and 't2'. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that coalesce two arguments: 't1' and 't2' (returning the first non null one). - - A DML expression with no specific type. - A DML expression with no specific type. - A DML expression with no specific type. - - - - Returns a DML expression that searches an expression for another expression and returns its starting position if found. - Returns -1 if the expression is empty or cannot be found. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the number of characters in a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that replaces all occurrences of a specified string value with another string value. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text, to search for. - A DML expression that evaluates to Text, to replace all occurrences with. - A DML expression that evaluates to Text. - - - - Returns a DML expression that computes a substring beginning at start zero-based position - and with length characters. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer, containing the start index. - A DML expression that evaluates to an Integer, containing the length of the text to return. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a string to lowercase. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a string to uppercase. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all leading and trailing white spaces from a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all trailing white spaces from a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that removes all leading white spaces from a string. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that adds days to a DateTime and returns a valid DataTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds days to a DateTime and returns a valid DataTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds minutes to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds months to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds seconds to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that adds years to a DateTime and returns a valid DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that creates a new DateTime given a Date and a Time. - - A DML expression that evaluates to a Date. - A DML expression that evaluates to a Time. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that computes the day of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the week day of a DateTime, ranging from 0 (Sunday) to 6 (Saturday). - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many days have passed between two DateTimes. - Returns zero if the two dates are the same, a positive integer if is smaller than , and - a negative number otherwise. - - First DML expression that evaluates to a DateTime. - Second DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many hours have passed between two DateTimes. - Returns zero if the two dates and hours are the same, a positive integer if is smaller than , and - a negative number otherwise. - - First DML expression that evaluates to a DateTime. - Second DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many minutes have passed between two DateTimes. - Returns zero if the two dates, hours and minutes are the same, a positive integer if is smaller than , and - a negative number otherwise. - - A DML expression that evaluates to a DateTime. - /// A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes how many seconds have passed between two DateTimes. - Returns zero if the two dates, hours, minutes, and seconds are the same, a positive integer if is smaller than - , and a negative number otherwise. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the hour part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the minute part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the month part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes a new date from a year, month, and day. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a Date. - - - - Returns a DML expression that computes a new DateTime from a year, month, day, hour, minute, and second. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to DateTime. - - - - Returns a DML expression that computes a new Time from an hour, minute, and second. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Time. - - - - Returns a DML expression that computes the seconds part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes the year part of a DateTime. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Boolean expression to an Integer. The expression evaluates into - 1 if the boolean is True, or 0 if False. - - A DML expression that evaluates to a Boolean. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Boolean in its textual representation: True or False. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a DateTime to a Date, by dropping the Time component. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Date. - - - - Returns a DML expression that converts a DateTime to its textual representation, using a specified format. - - A DML expression that evaluates to a DateTime. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts a DateTime to a Time, by dropping the Date component. - - A DML expression that evaluates to a DateTime. - A DML expression that evaluates to a Time. - - - - Returns a DML expression that converts a Date to a DateTime, by adding an empty Time component (00:00:00). - - A DML expression that evaluates to a Date. - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that converts a Date to its textual representation, using a specified format. - - A DML expression that evaluates to a Date. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to Text. - - - - Returns an SQL expression that converts a Decimal to a Boolean. A Decimal value of 0.0 is False, all other values are True. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that converts a Decimal to an Integer. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Integer. - - - - Returns a DML expression that converts a Decimal to a Long Integer. - - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Long Integer. - - - - Returns a DML expression that converts a Decimal to its textual representation. - Big - A DML expression that evaluates to a Decimal. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts an Identifier to an Integer. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Integer. - - - - Returns a DML expression that converts an Identifier to a Long Integer. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to a Long Integer. - - - - Returns a DML expression that converts an Identifier to its textual representation. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts an Integer to a Boolean. - A Decimal value of 0 is False, all other values are True. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that converts an Integer to a Decimal. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to a decimal. - - - - Returns a DML expression that converts an Integer to an (untyped) Identifier. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts a Long Integer to an (untyped) Identifier. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to a Long Integer. - - - - Returns a DML expression that converts a Long Integer to an Integer. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Integer. - - - - Returns a DML expression that converts a Long Integer to a Decimal. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Decimal. - - - - Returns a DML expression that converts an Integer to a Long Integer. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Long Integer. - - - - Returns a DML expression that converts a Long Integer to its textual representation. - - A DML expression that evaluates to a Long Integer. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts an Integer to its textual representation. - - A DML expression that evaluates to an Integer. - A DML expression that evaluates to Text. - - - - Returns a DML expression that computes a Null Date (1900-01-01). - - A DML expression that evaluates to a Date. - - - - Returns a DML expression that returns a Null Numeric Identifier. - - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that computes a Null Text Identifier. - - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts Text to a Date. - - A DML expression that evaluates to Text. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to a Date. - - - - Returns a DML expression that converts Text to a DateTime. - - A DML expression that evaluates to Text. - Date format used to serialize the date component of the text value (e.g. YYYY-MM-DD). - A DML expression that evaluates to a DateTime. - - - - Returns a DML expression that converts Text to a Decimal. - - A DML expression that evaluates to Text. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that converts Text to an (untyped) Identifier. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Returns a DML expression that converts Text to an Integer. - - A DML expression that evaluates to Text. - A DML expression that evaluates to an Integer. - - - - Returns a DML expression that converts Text to a Long Integer. - - A DML expression that evaluates to Text. - A DML expression that evaluates to a Long Integer. - - - - Returns a DML expression that converts Text to Time. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Time. - - - - Returns a DML expression that converts a Time to a DateTime, by adding an empty Date component (1900-01-01). - - A DML expression that evaluates to Time. - A DML expression that evaluates to DateTime. - - - - Returns a DML expression that converts a Time to its text value in the format hh:mm:ss. - - A DML expression that evaluates to Time. - A DML expression that evaluates to Text. - - - - Returns a DML expression that returns if is True, otherwise, it returns . - - A DML expression that evaluates to Boolean - A DML expression that evaluates to a specific type - A DML expression that evaluates to the same type as - A DML expression that evaluates to the same type of and - - - - This interface defines methods that help build DML Identifiers for columns, tables, and others. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - Gets the maximum length of a simple (not compound) identifier. This value should be the minimum valid - length for any kind of identifier (e.g. table name, parameter name) - - - The maximum length. - - - - - Escapes a simple (not compound) identifier to prevent name clashing with reserved words. - - Name that identifies a database object. - An escaped identifier. - - - - Returns a name that can be used as a valid identifier (e.g. parameter name, constraint name). - It should contain only valid characters and its length should not exceed the maximum defined in MaxLength. - - An identifier name. - - Indicates if the identifier should be truncated if its length exceeds the . In this case, - random digits should be used as a suffix to prevent name clashing. - - A string representing a valid identifier. - - - - Generates the DML operators required by the applications to perform simple queries. - - - - - Gets the associated . - - - The DML service associated. - - - - - Returns a DML expression that computes the numeric negation of a number. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that computes the logical negation. - - A DML expression that evaluates to a Boolean. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that checks if the value is NULL. - - A DML expression that evaluates to a value of any database type. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that checks if a is not NULL. - - A DML expression that evaluates to a value of any database type. - A DML expression that evaluates to a Boolean. - - - - Returns a DML expression that concatenates two values. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Text. - - - - Returns a DML expression that adds two numbers. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that subtracts two numbers. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that multiplies two numbers. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - - - - Returns a DML expression that divides two numbers. - - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal or Integer. - A DML expression that evaluates to a Decimal. - - - - Returns a DML expression that checks if two values are equal. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if two values are different. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less than another. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less than or equal to another. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is greater than another. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that checks if a value is less or equals to another. - - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to a value of any type except binary data. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that performs the logical AND. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - - - - Returns a DML expression that performs the logical OR. - - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - A DML expression that evaluates to Boolean. - - - - Provides a DML expression that checks whether a string matches a pattern. - - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - A DML expression that evaluates to Text. - - - - Defines a contract for generating DML fragments required by applications to perform specific queries (e.g. count query) - - - - - Gets the associated . - - - The DML service associated. - - - - - Returns the DML expressions to be inserted in a query statement, - to make it count the number of records returned by the original query. - - An with the DML expressions. - - - - Returns the DML expressions to be inserted in the SELECT statement of a query - to limit the number of records returned. - - Number of records to return. - An with the DML expressions. - - - - Determines if the given join type is supported. - - The join type - True if the join type is supported, false otherwise - - - - Defines a contract for generating SQL fragments to interact with a database. - - - - - Gets the instance associated with this service. - - - The database services associated. - - - - - Gets an object that generates the SQL fragments required to perform specific queries (e.g. count query). - - - The queries. - - - - - Gets an object that generates the SQL fragments required to perform entity actions. - - Information about the entity's underlying table source - An object that generates the SQL fragments required to perform entity actions - - - - Gets an object that generates and manipulates SQL identifiers. - - - An object that generates and manipulates SQL identifiers. - - - - - Gets an object that generates the SQL operators required to execute simple queries. - - - An object that generates the SQL operators required to execute simple queries. - - - - - Gets an object that generates the SQL functions required to execute simple queries. - - - An object that generates the SQL functions required to execute simple queries - - - - - Gets an object that generates the SQL aggregate functions required to execute DataSet queries. - - - An object that generates the SQL aggregate functions required to execute DataSet queries - - - - - Gets an object that generates the SQL default values for each database type. - - - An object that generates the SQL default values for each database type. - - - - - Gets an object that defines a set of fragments (e.g. keywords, operators) of the database-specific dialect - that can be used to provide syntax highlighting in SQL statements - - - The syntax highlight definitions. - - - - - Returns an SQL expression that transforms a value of a specified type, so that it can be used in a query condition. - - DML expression that evaluates to a specific type. - Database type of the literal. - DML expression that transforms the value. - - - - Returns an SQL expression that transforms a value of a specified type, so that it can be used in a query condition or calculated column. - - DML expression that evaluates to a specific type. - Database type of the literal. - DML expression that transforms the value. - - - - Escapes special characters in a text value to be used in SQL statements (e.g replace ' by ''). - - text value to be escaped - The escaped text - - - - Defines a set of fragments (e.g. keywords, operators) of the database-specific dialect - that can be used to provide syntax highlighting in SQL statements - - - - - Gets the associated . - - - The DML service associated. - - - - - Returns a set of reserved keywords (e.g. SELECT, FROM, JOIN) - - - The keywords. - - - - - Returns a set of function names (e.g. MAX, ROUND, UPPER)) - - - The functions. - - - - - Returns a set of operators (e.g. +, LIKE, EXISTS) - - - The operators. - - - - - Returns a set of data types (e.g. INTEGER, CHAR, NVARCHAR) - - - The data types. - - - - - Base implementation of a database service that handles the execution of statements made while connected to a database. - - - - - Gets the prefix used to qualify command parameters (e.g. @) - - - - - Method called by the consumers of this service when an execution exception occurs. - It is used to handle edge cases where cleaning up is required. - NOTE: This method should handle the exception and not rethrow it. - - Exception thrown during execution. - Command that was running when the exception was raised. - Reader created from executing the command, if applicable. - Connection that creates the transaction where the exception occurred, if applicable. - Transaction where the exception was produced, if applicable. - Transaction manager associated with this command, if applicable. - - - - Checks if a type is String or AnsiString. - - Database type. - True if it is String or AnsiString, False otherwise. - - - - Sets a parameter with a database type. - - Database Type. - Parameter to change. - - - - Set a parameter with a value. - - Parameter to set the value with. - Database type of the parameter. - Value to set. - - - - Checks if an exception was raised due to a connection error. - - Exception raised. - True if the exception was due to a connection problem, False otherwise. - - - - Gets the instance associated with this service. - - - - - Initializes a new instance of the class. - - The database services to be used with this execution service. - - - - Gets the database configuration used by this service. - - The database configuration. - - - - Executes a command and returns the number of affected rows. - This implementation does not use the isApplication flag, and logs exceptions. - - The command to execute. - The number of rows affected. - - - - Executes a command and returns the resulting . - This implementation logs exceptions. - - The command to execute. - A reader with the results of executing the query command. - - - - Executes a command and returns the value of the first column of the first row in the resultset returned by the query. - This implementation logs exceptions. - - The command to execute. - An object with the resulting first row and first column of the query defined in the query command. - - - - Sets the parameter direction (Input, Output, InputOutput or ReturnValue). - - Parameter to set the direction. - Direction to be set. - - - - Creates an empty SQL command to be executed in a connection. - - The connection to create the command. - A an empty command. - - - - Creates an SQL command to be executed in a transaction. - This implementation replaces \r\n by \n. - - The transaction to execute the command. - The SQL statement to be executed. - An SQL command. - - - - Creates a transactionless command associated with the connection. - This implementation does not transform the SQL statement. - - The connection where the command is going to be executed. - The SQL statement to be executed. - An SQL command. - - - - Creates and associates a new parameter to a command. - If the command already has a parameter with the same name, that parameter is returned - and the command parameters are not changed. - - The command to associate the parameter. - Parameter name. - Parameter type. - Parameter value. - The parameter already associated to the command. - - - - Converts a type to its equivalent type in the database. - This implementation matches:string to DbType.String;Int32 to DbType.Int32;DateTime to DbType.DateTime; - decimal to DbType.Decimal;bool to DbType.Boolean;otherwise throws a NotSupportedException. - - The type to be converted. - A supported type by the database. - When no suitable type is found. - - - - Converts a type to its equivalent type in the target framework. - - The type to be converted. - The name of the type used by the provider. - A supported type by the database. - When no suitable type is found. - - - - Checks if an exception was raised due to a timeout. - This implementation checks if the exception is a , and its error code is -2. - - Exception raised. - True if the exception was due to a timeout, False otherwise. - - - - Transforms a database value to the equivalent runtime value. - This implementation returns the value without changing it. - - Value to transform. - The transformed object. - - - - Transforms a runtime value to the equivalent database value. - This implementation returns the value without changing it. - - Database type. - Value to transform. - The transformed object. - - - - Bulk inserts data into the database. - In this base implementation, the data is inserted individually. - - A datatable with all information to transfer. - - - - Class with extension methods to . - - - - - Checks if a type is a date or time. - .NET: Returns True if a type is a DateTime, Date, or Time. - - The execution service to use to check if a type is a date or time. - Type to be checked. - A boolean indicating if the type is a date or time. - - - - Checks if a type is a unicode string. - .NET: Returns True if a type is a String or StringFixedLength. - - The execution service to use to check if a type is a unicode string. - Type to be checked. - A boolean indicating if the type is a unicode string. - - - - Database service that handles the execution of statements made while connected to a database. - - - - - Gets the instance associated with this service. - - - The database services associated. - - - - - Gets the prefix used to qualify command parameters (e.g. @) - - - The parameter prefix. - - - - - Creates and associates a new parameter to a command. - - The command to associate the parameter. - Parameter name. - Parameter type. - Parameter value. - The parameter associated to the command. - - - - Checks if an exception was raised due to a connection error. - - Exception raised. - True if the exception was due to a connection problem, False otherwise. - - - - Method called by the consumers of this service when an execution exception occurs. - It is used to handle edge cases where cleaning up is required. - NOTE: This method should handle the exception and not rethrow it. - - Exception thrown during execution. - Command that was running when the exception was raised. - Reader created from executing the command, if applicable. - Connection that creates the transaction where the exception occurred, if applicable. - Transaction where the exception was produced, if applicable. - Transaction manager associated with this command, if applicable. - - - - Executes a command and returns the number of affected rows. - - The command to execute. - The number of rows affected. - - - - Executes a command and returns the resulting . - - The command to execute. - A reader with the results of executing the query command. - - - - Executes a command and returns the value of the first column of the first row in the resultset returned by the query. - - The command to execute. - An object with the resulting first row and first column of the query defined in the query command. - - - - Creates a transactionless command associated with the connection. - - The connection where the command is going to be executed. - The SQL statement to be executed. - An SQL command. - - - - Creates an SQL command to be executed in a transaction. - - The transaction to execute the command. - The SQL statement to be executed. - An SQL command. - - - - Transforms a database value to the equivalent runtime value. - - Value to transform. - The transformed object. - - - - Transforms a runtime value to the equivalent database value. - - Database type. - Value to be transform. - The transformed object. - - - - Sets the parameter direction (Input, Output, InputOutput or ReturnValue). - - Parameter to set the direction. - Direction to be set. - - - - Set a parameter with a value. - - Parameter to set the value with. - Database type of the parameter. - Value to set. - - - - Converts a type to its equivalent type in the database. - - The type to be converted. - A database type. - - - - Converts a type to its equivalent type in the database. - - The type to be converted. - The database specific original type name. - A database type. - - - - Checks if an exception was raised due to a timeout. - - Exception raised. - True if the exception was caused by a timeout, False otherwise. - - - - Bulk inserts data into the database - - A datatable with all information to transfer - - - - Represents a database management system. - - - - - Returns a unique identifier of the database provider, used to identify it as a plugin - - - A unique identifier of the provider. - - - - - Gets the instance associated with this database provider. - - The provider properties. - - - - Returns an empty . - - An empty configuration. - - - - Returns the services provided by the DBMS. - - The database configuration. - The Integration Database Service provided from DBMS. - - - - Validates that the plugin provider is the same - - The provider to compare with - - - - Represents the set of services that needs to be implemented to add support for a new database. - - - - - Gets the object associated with a database. - It encapsulates the necessary information to connect to a database instance. - - - The database configuration. - - - - - Returns a factory capable of creating database information objects from qualified names. If required, this object might access the database. - - - The object factory. - - - - - Gets the object associated with a database. - Represents a specific database connection or transaction. - - - The transaction service. - - - - - Gets the associated with the database. - Represents an execution context to run SQL commands on a database. - - - The execution service. - - - - - Gets the object associated with the database. - Represents a service that generates SQL statements. - - - The DML service. - - - - - Gets the object associated with the database. - Represents a service that provides information about meta-data of the database. - - - The introspection service. - - - - - Represents a database management system that is only used internally by the platform. - - - - - Represents a database management system that is only used internally by the platform. - - - - - Inspects a database server to retrieve information about its data model. - - - - - Sets the command timeout value to use in introspection queries. - - - The query timeout. - - - - - Gets the database services. - - - The database services associated. - - - - - Returns the list of databases that can be accessed from the current configuration. A database is a logical group of data objects (e.g. tables, views) - that the plugin maps to a db-specific concept (e.g. SQL Server catalog or Oracle schema). - - List of available databases in the given server - If an error occurs while accessing the database - - - - Returns a list of table sources (e.g. tables, views) that belong to a given database. - The returned table sources must have different display names. - - Database from which we want to fetch the list of tables - The delegate to call to see if the table source should be ignored and excluded from the returned list - List of available table sources in the given database - if an error occurs while accessing the database - - - - Returns the list of foreign keys of the table source (e.g. table, view) - - Table source from which we want to fetch the list of foreign keys - The list of foreign keys of the table - if an error occurs while accessing the database - - - - Returns the list of columns of the table source (e.g. table, view) - - Table source from which we want to fetch the list of columns - The columns of the table - if an error occurs while accessing the database - - - - Returns a list of table sources (e.g. tables, views) that belong to a given database. This extension method doesn't filter any table source. - - IIntrospectionService to use - Database from which we want to fetch the list of tables - List of available table sources in the given database - if an error occurs while accessing the database - - - - Defines the delegate to call to see if a table source should be ignored. - - Name of the table source - True if the table source should be ignored. False otherwise - - - - Represents a set of properties that are specific to a database provider. - - - - - Gets the associated instance. - - - The database provider associated. - - - - - Gets the friendly name of the database provider. - - - The display name. - - - - - Gets the friendly name of the database provider, when used to run the OutSystems Platform. - - - The display name. - - - - - Gets the friendly name of the object used to represent a database container (e.g. database, catalog, schema, ...), used - for UI generation and messages displayed to the end-user. - - - The name of the database container. - - - - - Indicates if the provider's driver supports more than one active result set for a single connection. - - - True if it supports multiple active result sets for a single connection, False otherwise. - - - - - This interface identifies a database configurations, i.e., an implementation of or , - that handle operations that require elevated privileges user. - The credentials for this user will be set whenever the execution of operations that require elevated user is necessary. - - - - - This property returns the credentials for the elevated user. - Changes to this property must be reflected by the RuntimeDatabaseConfigurations - returned by the method . - - - The elevated user credentials. - - - - - Gets the object that compacts all the needed configuration parameters to be used in runtime. - - The configuration that allows accessing the database as an elevated user. - - - - The authentication mode used by the elevated user. - - - The elevated user authentication mode. - - - - - Gets the object that compacts all the needed configuration parameters to be used in runtime. - - Specifies the component that will use the configuration (e.g. service or application). - Specifies to what user the configuration will refer to. - The configuration that allows services or applications to access the database as the specified user. - - - - This property returns the credentials for the log user. - - - The log authentication credentials. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - - - Sets the command timeout value to use in configuration queries. - - - The query timeout. - - - - - This property will obtain all the statements necessary to recreate the session model. - It has all the opportunities to do changes in templates that depend on configuration information. - - - Statements to recreate the session model. - - - - - Validates if elevated privileges are actually required - If plugin has ImplementsElevatedPrivilegesOperations=false, this method should return false. - This ensures pre create or upgrade logic can be ran by hand to avoid elevated privileges during setup - Elevated privileges operations still need to run for setup to be complete - - - - - Allows the plugin to run instructions before the create/upgrade is done. - This operation requires an elevated user privilege. - If plugin has ImplementsElevatedPrivilegesOperations=false, this method should not be implemented. (the caller wouldn’t have a proper config to pass anyway) - This would allow logic such as - create the database if it doesn’t exist. - - - - - Validates that the configuration for the user ‘User’ are valid and it can reach the db. - It will return false if it cannot reach the db, and will have a non null errorMessage in that case. - - The friendly message to be show as output. - Returns True if the connection to the database was successfully. Otherwise it returns False. - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - The platform database provider. - - - - - This property indicates if the plugin has operations that require elevated privileges user. - If this is set to true, the caller (Configuration Tool) will prompt a form to ask for credentials, and use them in operations that require elevated user - - - True if it implements elevated privileges operations, False otherwise. - - - - - Indicates the current state of the Configuration, if the property is true, then IntegratedAuthenticationMode is set - - - The authentication type. - - - - - Gets the object that compacts all the needed configuration parameters to be used in runtime. - - The configuration that allows accessing the database as the session user. - - - - Indicates the current state of the Configuration, if the property is true, then Advanced Configuration mode is set is set - - - True if advanced configuration mode is set, False otherwise. - - - - - Contextual text to help the user understand what does the Advanced configuration consist of. - - - The contextual help for advanced mode. - - - - - Contextual text to help the user understand what does the Basic configuration consist of. - - - The contextual help for basic mode. - - - - - This property returns the credentials for the session user. - - - The session authentication credentials. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - - - Indicates the current state of the Configuration, if the property is true, then IntegratedAuthenticationMode is set - - - The authentication type of the configuration. - - - - - This property returns the credentials for the admin user. - - - The admin authentication credentials. - - - - - This property returns the credentials for the runtime user. - - - The runtime authentication credentials. - - - - - Gets the database provider. It provides information about the database, - and access to its services. - - - The database provider. - - - - - Gets the object that compacts all the needed configuration parameters to be used in runtime for a specific user type. - - The configuration that allows services or applications to access the database as the specified user. - - - - This property indicates if the plugin implements the IElevatedUserConfiguration interface, - meaning that it has operations that require elevated privileges user. - When true, the caller (e.g. Configuration Tool) will ask the user for credentials, and use them in operations that require elevated user permissions. - - - True if it implements elevated privileges operations, False otherwise. - - - - - Indicates the current state of the Configuration, if the property is true, then IntegratedAuthenticationMode is set - - - The authentication type of the configuration. - - - - - Indicates the current state of the Configuration, if the property is true, then Advanced Configuration mode is set. - - - True if Advanced Configuration mode is set. False otherwise. - - - - - Contextual text to help the user understand what does the Advanced configuration consist of. - - - The contextual help for advanced mode. - - - - - Contextual text to help the user understand what does the Basic configuration consist of. - - - The contextual help for basic mode. - - - - - This property returns the credentials for the admin user. - - - The admin authentication credentials. - - - - - This property returns the credentials for the runtime user. - - - The runtime authentication credentials. - - - - - Sets the command timeout value to use in configuration queries. - - - The query timeout. - - - - - This property indicates if this database should recommend a Database backup. - If the DB doesn’t allow rollback of all statements and does implicit commits, it should have this property set to true. - when set to true, indicates that its statements can do autocommit. - - - True if a Database backup is recommended, False otherwise. - - - - - Creates an object capable of parsing OutSystems' .sql files, obtaining all the statements necessary to upgrade - from currentModelVersion to the version that is being installed. - - - - - - This method will obtain the version that is being installed. - - The version number to upgrade. - - - - This method will obtain all the statements necessary to upgrade from currentModelVersion to the version that is being installed. - This method will process a well known source file upgrade script. - It will do some pre-processing based in internal plugin configurations. - - this parameter indicates the version from which we need to upgrade - Set of statements to execute. This includes tagged statements (--%TAG%) - - - - This method will obtain all the statements necessary to upgrade from currentModelVersion to the version that is being installed. - This method will process a well known source file upgrade script. - It will do some pre-processing based in internal plugin configurations. - - this parameter indicates the version from which we need to upgrade - this parameter indicates the database script files to process and get the statements from - Set of statements to execute. This includes tagged statements (--%TAG%) - - - - Validates if elevated privileges are actually required - If plugin has ImplementsElevatedPrivilegesOperations=false, this method should return false. - This ensures pre create or upgrade logic can be ran by hand to avoid elevated privileges during setup - Elevated privileges operations still need to run for setup to be complete - - - - - Allows the plugin to run instructions before the create/upgrade is done. - This operation requires an elevated user privilege. - If plugin has ImplementsElevatedPrivilegesOperations=false, this method should not be implemented. (the caller wouldn’t have a proper config to pass anyway) - This would allow logic such as - create the database if it doesn’t exist. - - - - - Validates that the configuration for the user ‘User’ are valid and it can reach the db. - It will return false if it cannot reach the db, and will have a non null errorMessage in that case. - - Specifies the component that will use the configuration (e.g. service or application). - Message with information regarding the result of the test. - True if connection was successfully established. - - - - Validates that the configuration for the user ‘User’ are valid and it can reach the db. - It will return false if it cannot reach the db, and will have a non null errorMessage in that case. - - Specifies the component that will use the configuration (e.g. service or application). - Message with information regarding the result of the test. - True if connection was successfully established - - - - Creates introspection objects from qualified names, inspecting the database only if needed. - - - - - Returns an object that contains information about a local table source (data source in tabular format), like a database table or view, - inferring the database information from the current configuration - - Unqualified identifier of the table source - Database-specific object that implements the ITableSourceInfo interface - - - - Returns an object that contains information about a data type, inferring the correct from the values - of the other fields. - - Database type that can be mapped to the data types available in the platform - Size of the data type, when applicable (e.g. text of decimal numbers) - Number of decimal places of the data type, when applicable (e.g. decimal numbers) - Database-specific object that implements the IDataTypeInfo interface - - - - Returns an object that contains information about a table source column. - - Table source that owns the column. - Name that identifies the column. - Data type of the values stored in the column. - True if the column must have a value assigned to it (NOT NULL), or false if it is nullable. - True if the column is part of the table source's primary key, or false otherwise. - true if the column value is generated automatically when a row is inserted (e.g. sequential numbers). - Database-specific object that implements the ITableSourceColumnInfo interface - - - - Returns an object that contains information about a table source foreign key. - - Table source that owns the foreign key. - Name of the foreign key. If null, a generated name will be assigned. - Name of the column. - Table source that owns the referenced column. - Name of the referenced column. - True if the delete rule of the foreign key is CASCADE DELETE. - Database-specific object that implements the ITableSourceForeignKeyInfo interface - - - - Returns an object that contains information about a table source index. - - Table source that owns the index. - Name of the index. If null, a generated name will be assigned. - Columns used in the index. - Foreign keys that use the indexed columns - True if the index is a unique index, false otherwise. - True if the index is a primary key index, false otherwise. - Database-specific object that implements the ITableSourceIndexInfo interface - - - - Returns an object that contains information about a table source trigger. - - Table source that owns the trigger. - Database-specific object that implements the ITableSourceTriggerInfo interface - - - - Contains information about a data type. - - - - - Returns true if both objects represent an equivalent database data type. - Note that this "equivalent database type" refers to the underlying database type; - For TEXT and DECIMAL types, "equivalent database type" ALSO refers to the length(precision) of the field. - This method is used, among other things, to determine if an ALTER COLUMN statement should be issued - - Example: TEXT(200) is not equivalent to TEXT(400) - TEXT(500) is not equivalent to TEXT(x, x>2000) - change of underlying (DB) DataType occurs here - TEXT(x, x>2000) is equivalent to TEXT(y, y>2000) - both lengths above MAX_VARCHAR_LENGTH cause underlying (DB) DataType to be the same - - Other datatype object to compare with - true if the current object is equivalent to the other parameter; otherwise, false. - - - - Data type of the values stored in the column. - - - - - Contains information about a table source trigger. - - - - - Table source that owns the trigger. - - - The table source. - - - - - Name that identifies the trigger. - - - The name of the trigger. - - - - - Contains information about a table source index. - - - - - Table source that owns the index. - - - The table source. - - - - - Name that identifies the index. - - - The name of the index. - - - - - Columns used in the index. - - - The columns affected by the index. - - - - - Returns true if the index is a unique index, false otherwise. - - - True if this index is unique, False otherwise. - - - - - Returns true if the index is a primary key index, false otherwise. - - - True if this index is for primary key, False otherwise. - - - - - Contains detailed information about a table source (data source in tabular format), like a database table or view. - - - - - List of columns of the table source - - - The list of columns. - - - - - List of foreign keys of the table source - - - The foreign keys. - - - - - List of indexes of the table source - - - The indexes. - - - - - Event trigger associated with the table source, if one exists. Otherwise, returns null; - - - The event trigger associated. - - - - - Returns a name that can be used as a valid object name (e.g. constraint), using - - The introspection object factory - The database services - An identifier name. - A string representing a valid sql identifier. - - - - Returns a name that can be used as an event trigger identifier name. - - The introspection object factory - The database services - Name of the table for which we want to create a trigger - A name that can be used as a sql identifier name - - - - Returns a name that can be used as an index identifier name. - - The introspection object factory - The database services - Name of the table for which we want to create a trigger - Columns that will compose the index - A name that can be used as a sql identifier name - - - - Returns a name that can be used as a foreign key identifier name. - - The introspection object factory - The database services - Name of the table for which we want to create a foreign key - Name of the referenced table - Name of the column - A name that can be used as a sql identifier name - - - - Returns a name that can be used as a primary key identifier name. - - The introspection object factory - The database services - Name of the table for which we want to create a primary key - A name that can be used as a sql identifier name - - - - Checks whether a table is a systems table or not. - - Table name to check - True if the table is a system table. Otherwise, false. - - - - Returns an object that contains information about a table source foreign key. - - The introspection object factory - Table source that owns the foreign key. - Name of the column. - Table source that owns the referenced column. - Name of the referenced column. - True if the delete rule of the foreign key is CASCADE DELETE. - Database-specific object that implements the ITableSourceForeignKeyInfo interface - - - - Returns an object that contains information about a table source index. - - The introspection object factory - Table source that owns the index. - Columns used in the index. - Foreign keys that use the indexed columns - True if the index is a unique index, false otherwise. - True if the index is a primary key index, false otherwise. - Database-specific object that implements the ITableSourceIndexInfo interface - - - - Creates an instance of a type that inherits from , from a list of possible - Types (). Matching is performed using the attribute . - - Base type to return - Database provider used to filter the - Specific types inherit from - An object that inherits from - - - - Creates an instance of a type that inherits from , from a list of possible - Types (). If none is found, returns an instance of . - - Base type to return - Database provider used to filter the - Specific types that inherit from - An object that is or inherits from - - - - This method returns the SQL for the column definition to be used inside the create table and create column statements. - This implementation returns "escapedColumnName columnSQLDataType DEFAULT defaultValue NOT NULL" - - The column information for the column to create. - The default value for the column to create. - SQL for the column definition. - - - - Returns true if we can use the default value passed as argument in the column definition. - - The column to use. - The default value for the column that we want to change to (tentatively). - True if we can use the default value, false otherwise. - - - - Returns the final mandatory value to use for the column definition. This can change depending on the column, - and depending on the default value. - - The column information. - The default value for the column. - The mandatory value that we want to change to (tentatively). - The final mandatory value that we want to change. - - - - This method returns the SQL for the primary key table constraint to be used inside the create table and create column statements. - This implementation returns "CONSTRAINT escapedConstraintName PRIMARY KEY (escapedColumnNames)" - - Name of the primary key constrain - The primary key column - SQL for the primary key table constraint. - - - - This method returns the previously generated primary key constraint for a table. - - Info about the table to which we want to return the previously generated primary key constraint name. - The primary key constraint name previously generated. Or a new valid name if none was previously generated - - - - Returns the Tenant_Id column from the list of columns - - columns to search for - The Tenant_Id column - - - - Returns a name that can be used as a primary key identifier name. - - Name of the table for which we want to create a primary key - A name that can be used as a SQL identifier name - - - - This method generates the query that will be used in the event trigger. - This assumes that the underlying database has the NULLIF and COALESCE functions. - - StringBuilder that will receive the query SQL. - Primary key column of the table associated with the trigger. - Columns of the table associated with the trigger that fire events. - Foreign keys of the table associated with the trigger. - Table source that stores the events for the table associated with the trigger. This table resides in the same database as the table where the trigger is defined. - Table source that stores the events to be fired by the platform. - Table source that stores the light events to be fired by the platform. - SQL snippet to access the newly triggered data (new or updated line in trigger table). - True if we need to include the in a from clause to access it in a query. - SQL snippet to access the variable that is true if this trigger is an update. - - - - This method generates the SQL to create a new table. - This implementation returns the statement "CREATE TABLE FullyQualifiedTableName (columnsDefinitionStatements, primaryKeyStatement)" - - Info about the table to create. - The columns information for the table to create along with the default values. - Note that some of them may be primary keys, as indicated on the IsPrimaryKey property. - This will lead to the creation of Primary Key Constraints. - Also note that a column could be an autonumber column, there's no need to call the AlterColumnChangeAutoNumber after. - SQL statements to create the table. - - - - This method generates the SQL to create a new index. - This implementation returns the statement "CREATE UNIQUE INDEX FullyQualifiedIndexName ON FullyQualifiedTableName (escapedColumnNames)" - - Info about the index to create. - SQL statements to create the index. - - - - This method generates the SQL to drop an index previously obtained through the IIntrospectionService API. - This implementation returns "DROP INDEX FullyQualifiedIndexName" - - Info about the index to drop. - SQL statements to drop the index. - - - - This method generates the SQL to create a new foreign key. - This implementation returns - ALTER TABLE FullyQualifiedTableName ADD CONSTRAINT escapedConstraintName FOREIGN KEY (escapedForeignKeyColumnNames) REFERENCES FullyQualifiedForeignTableName (escapedForeignColumnNames) ON DELETE CASCADE - - Info about the foreign key to create. - SQL statements to create the foreign key. - - - - This method generates the SQL to create a new primary key. - This implementation returns "ALTER TABLE FullyQualifiedTableName ADD primaryKeyStatement" - - Info about the table to create a new primary key. This info is obtained through the IIntrospectionServiceAPI - Info about the column that composes the primary key. - SQL statements to create the primary key. - - - - This method generates the SQL to create a new column. - This implementation returns "ALTER TABLE FullyQualifiedTableName ADD columnsDefinitionStatement" - and adds the SQL of the CreatePrimaryKey if the column is primary key. - - Info about the column to create. - Column default value. It could be empty. - SQL statements to create the column. - - - - This method generates the SQL to drop a table previously obtained through the IIntrospectionService API. - This implementation always returns "DROP TABLE FullyQualifiedTableName" - - Info about the table to drop. - SQL statements to drop the table. - - - - This method generates the SQL to drop a foreign key previously obtained through the IIntrospectionService API. - This implementation returns "ALTER TABLE FullyQualifiedTableName DROP CONSTRAINT escapedConstraintName" - - Info about the foreign key to drop. - SQL statements to drop the foreign key. - - - - This method generates the SQL to drop a trigger previously obtained through the IIntrospectionService API. - This implementation returns "DROP TRIGGER FullyQualifiedTriggerName" - - Info about the trigger to drop. - SQL statements to drop the trigger. - - - - This method generates the SQL to drop a column previously obtained through the IIntrospectionService API. - This implementation returns "ALTER TABLE FullyQualifiedTableName DROP COLUMN escapedColumnName" - - Info about the column to drop. - SQL statements to drop the column. - - - - Generates a message stating that a given column () cannot be changed to another type, defined by the . - - Existing column to be changed - New version of the column, based on the model - True if the existing column cannot be changed into any other type, False if some conversions are allowed - A user-friendly error message - - - - Generates a message stating that a given column () cannot be changed to another type () - - Name of the existing table that owns the column - Name of the existing column to be changed - Database type of the existing column (e.g. VARCHAR) - Model type of the existing column (e.g. Text) - New database type for the column (e.g. VARCHAR) - New model type for the column - True if the existing column cannot be changed into any other type, False if some conversions are allowed - A user-friendly error message - - - - This method generates the SQL to create a new view. If already exists a view with the same name it should be replaced by the new one. - This implementation returns "CREATE OR REPLACE VIEW FullyQualifiedViewName AS viewSQL" - - Info about the view we want to create. - SQL query that defines the view contents. - true if the INSERT and UPDATE operations performed over the view should be constrained only to the rows referenced by the view - SQL statements to create the view. - - - - This method generates the SQL to grant permissions on a table source to a user. - This implementation returns "GRANT permissions ON FullyQualifiedTableName TO userName" - - Info about the table or view which we want to grant permissions on. - User to grant permissions. - Permissions to grant to the user. - SQL statements to grant permissions. - - - - This method generates the SQL to enable all the triggers for an existing table source. - This implementation returns "ALTER TABLE TableQualifiedName ENABLE ALL TRIGGERS" - - Info about the table source which we want to enable the triggers. - SQL statements to enable the triggers. - - - - This method generates the SQL to disable all the triggers for an existing table source. - This implementation returns "ALTER TABLE TableQualifiedName DISABLE ALL TRIGGERS" - - Info about the table source which we want to disable the triggers. - SQL statements to disable the triggers. - - - - This method generates the SQL to enable the auto-number behavior for an existing table source. - This implementation returns an empty statement. - - Info about the table source which we want to enable the auto-number. - SQL statements to enable the auto-number. - - - - This method generates the SQL to disable the auto-number behavior for an existing table source. - This implementation returns an empty statement. - - Info about the table source which we want to disable the auto-number. - SQL statements to disable the auto-number. - - - - Returns true if the can be converted in the database, - (via one of the AlterColumn* operations) to become equivalent to the . - If the column cannot be converted, an is also returned. - - Existing column, inspected from the database model - New column, inspected from the application model - Reason - True if an alter column operation can be performed, false otherwise - - - - Returns true if the can be created in the database, - If the column cannot be created, an is also returned. - - New column, inspected from the application model - Reason - True if a create column operation can be performed, false otherwise - - - - Returns true if the can be created in the database, - If the table cannot be created, an is also returned. - - New table, inspected from the application model - Columns, inspected from the application model - Reason - True if a create table operation can be performed, false otherwise - - - - This method generates the SQL to create a new table. - - Info about the table to create. - The columns information for the table to create along with the default values. - Note that some of them may be primary keys, as indicated on the IsPrimaryKey property. - This will lead to the creation of Primary Key Constraints. - Also note that a column could be an autonumber column, there's no need to call the AlterColumnChangeAutoNumber after. - SQL statements to create the table. - - - - This method generates the SQL to drop a table previously obtained through the IIntrospectionService API. - - Info about the table to drop. - SQL statements to drop the table. - - - - This method generates the SQL to create a new index. - - Info about the index to create. - SQL statements to create the index. - - - - This method generates the SQL to drop an index previously obtained through the IIntrospectionService API. - - Info about the index to drop. - SQL statements to drop the index. - - - - This method generates the SQL to create a new foreign key. - - Info about the foreign key to create. - SQL statements to create the foreign key. - - - - This method generates the SQL to drop a foreign key previously obtained through the IIntrospectionService API. - - Info about the foreign key to drop. - SQL statements to drop the foreign key. - - - - This method generates the SQL to create an after insert or update event trigger. - For each affected row in the trigger table, it validates if it needs to fire an event by crossing the values in the - with the contents of the table . - For each event that must be fired the trigger must insert an entry in the table . - - Info about the trigger to create. - Primary key column of the table associated with the trigger. - Columns of the table associated with the trigger that fire events. - Foreign keys of the table associated with the trigger. - Table source that stores the events for the table associated with the trigger. - Table source that stores the events to be fired by the platform. - Table source that stores the light events to be fired by the platform. - SQL statements to create the event trigger. - - - - This method generates the SQL to drop a trigger previously obtained through the IIntrospectionService API. - - Info about the trigger to drop. - SQL statements to drop the trigger. - - - - This method generates the SQL to create a new column. - - Info about the column to create. - Column default value. It could be empty. - SQL statements to create the column. - - - - This method generates the SQL to drop a column previously obtained through the IIntrospectionService API. - - Info about the column to drop. - SQL statements to drop the column. - - - - This method generates the SQL to change a column previously obtained through the IIntrospectionService API. - - Info about the column to change. - New Info about the column. - The new column default value. It could be null. - SQL statements to change the column. - - - - #RPD-2648 This method validates if the DB Foreign Keys require indexes - In MySQL Foreign Keys require an index for the column with the Foreign Key, we cannot drop the index without dropinng the foreign key first. - - True when one needs to take that case into account, False otherwise - - - - This method generates the SQL to create a new view. If already exists a view with the same name it should be replaced by the new one. - - Info about the view we want to create. - SQL query that defines the view contents. - true if the INSERT and UPDATE operations performed over the view should be constrained only to the rows referenced by the view - SQL statements to create the view. - - - - This method generates the SQL to grant permissions on a table source to a user. - - Info about the table or view which we want to grant permissions on. - User to grant permissions. - Permissions to grant to the user. - SQL statements to grant permissions. - - - - This method generates the SQL to enable all the triggers for an existing table source. - - Info about the table source which we want to enable the triggers. - SQL statements to enable the triggers. - - - - This method generates the SQL to disable all the triggers for an existing table source. - - Info about the table source which we want to disable the triggers. - SQL statements to disable the triggers. - - - - This method generates the SQL to enable the auto-number behavior for an existing table source. - - Info about the table source which we want to enable the auto-number. - SQL statements to enable the auto-number. - - - - This method generates the SQL to disable the auto-number behavior for an existing table source. - - Info about the table source which we want to disable the auto-number. - SQL statements to disable the auto-number. - - - - Set of permissions that can be granted. - - - - - This property represents the associated . - - - - - This method generates SQL that starts a programmatic SQL Block. - - SQL that starts a programmatic SQL Block. - - - - This method generates SQL that ends a programmatic SQL Block. - This implementation returns "END;". - - SQL that ends a programmatic SQL Block. - - - - This method generates the SQL to execute a DDL statement inside a block. - This implementation simply returns the DDL statement terminated with ";". - - The DDL statement to execute. - SQL statement to execute the given DDL statement. - - - - Returns an escaped identifier representing an object (e.g. table or view) that is qualified using - the information provided by the associated with the . - NOTE: This method uses the for qualification. - - IPlatformDMLIdentifiers to use for qualification - Name of the database object (e.g. table, view, stored procedure). - A string representing the escaped and qualified identifier. - - - - Splits a collection into collections of 900 elements - - Type of the collection - - Collection to split - - - - - This method takes a string collection split is into smaller groups of 900 elements - and generates a string with multiple IN clauses for the column - - - The collection that will be used to generate the in statements - the column which will filtered by the collection - - - - - Generates the SQL functions required by the applications to perform simple queries. - - - - - Provides a DML expression that returns true when the given user has the specific role. - - DML expression that evaluates to an integer role identifier - DML expression that evaluates to an integer user identifier - DML Expression of type Boolean - - - - This interface defines methods that help build DML Identifiers for columns, tables, and others. - - - - - Returns an escaped identifier representing an object (e.g. table or view) that is qualified using - the information provided by the associated with the . - - DatabaseInfo used for qualification - Name of the database object (e.g. table, view, stored procedure). - The escaped and qualified identifier - - - - Returns the given identifier in its unescaped (unquoted form). If the identifier is not escaped returns the identifier as is. - - The identifier to unescape - is null. - The unescaped identifier - - - - Checks if the specified column name is valid. - - Name of the column. - True if the column name is valid, false otherwise - - - - Defines a contract for generating Programmatic SQL fragments to interact with a database. - - - - - Gets the associated DML service. - - - The DML service associated. - - - - - This method generates SQL that represents the if else statement. - - Condition to test. - SQL to execute if the condition is true. - SQL to execute if the condition is false. This can be null if there is no else body. - SQL that represents the if else statement. - - - - This method generates a valid variable name based on the given name. - - Name of the variable. - SQL that represents the name of the variable. - - - - This method generates SQL that sets a variable value. - - Name of the variable. - Value to assign to the variable. - SQL that sets the variable value. - - - - This method generates SQL fragments to insert in specific points of the query to set the variable value with the output of a query. - - Name of the variable to assign the value. - SQL fragments to insert in specific points of the query to set the variable value. - - - - This method generates SQL that sets a variable value with the last identifier inserted in the current scope. - - Name of the variable to assign the value. - SQL that sets the variable value. - - - - This method wraps the specified query with SQL code for pagination. The specified query must end with Order By clause - - SQL query - number of the elements to return - index of first element to return - SQL with pagination. - - - - This method generates SQL that starts a programmatic SQL Block and optionally declares variables to use inside the block. - - Names and types of the variables. - SQL that starts a programmatic SQL Block and declares variables. - - - - This method generates SQL that ends a programmatic SQL Block. - - SQL that ends a programmatic SQL Block. - - - - This method generates the SQL to execute a DDL statement inside a block. - - The DDL statement to execute. - SQL statement to execute the given DDL statement. - - - - Defines a contract for generating SQL fragments to interact with a database. - - - - - Gets an object that generates and manipulates SQL identifiers. - - - An object that generates and manipulates SQL identifiers. - - - - - Gets an object that generates the SQL functions required to execute simple queries. - - - An object that generates the SQL functions required to execute simple queries - - - - - Gets an object that generates Programmatic SQL fragments to interact with a database. - - - An object that generates Programmatic SQL fragments to interact with a database. - - - - - Represents the possible placeholders to use in the PlatformDMLService.SetVariableFromQuery method. - {BeforeStatement} SELECT {AfterSelectKeyword} column, ..., column - {BeforeFromKeyword} FROM Entity - WHERE conditions - {AfterStatement} - - - - - Platform Database service that handles the execution of statements made while connected to a database. - - - - - Executes a stored procedure using a command. - That store procedure should return a cursor. - - The stored procedure command. - Name of the output parameter, without the prefix, to associate the reader with, if the procedure returns one (e.g. a cursor) - A reader with the results of the stored procedure. - - - - Inspects a database server to retrieve information about its data model. - - - - - Returns information about the size of database tables - - Table sources from which we want to fetch size information - Table sources information along with the information about its size - if an error occurs while accessing the database - - - - Returns detailed information about database table sources indexes - - Table sources from which we want to fetch index information - Table sources information along with the information about its indexes - if an error occurs while accessing the database - - - - Returns detailed information about database table sources (e.g. foreign keys, indexes) - - Table sources from which we want to fetch the details - Table sources information along with the details - if an error occurs while accessing the database - - - - Checks if the table sources exist in the database. - - Table sources names which we want to check - Table sources names along with a boolean value indicating if the table source exists or not in the database - if an error occurs while accessing the database - - - - Returns an aggregated hash code of the definition of all database schema meta-model elements that are related to a particular application's entity model definition (user tables, views, indexes and triggers). This method is to be used as a "fast" mechanism for detecting if the schema definition of 2 versions of the database are distinct, while avoiding the need to carry out a full introspection. - - A string present in the names of all (user-level) database schema elements that are associated to a particular application. This sequence of characters is subsequently used to filter schema elements that do not belong to the target application. - The aggregated hash code of database schema elements associated to a particular target application, as indicated by the input parameter. - if an error occurs while accessing the database - - - - Represents an instance that allows full usage of the database. - - - - - Gets the instance associated with this database provider. - - - - - Creates a new Empty IRuntimeDatabaseConfiguration. - - An empty runtime database configuration. - - - - Creates a new Empty IPlatformDatabaseConfiguration - - An empty platform database configuration. - - - - Creates a new Empty ILoggingDatabaseConfiguration - - An empty logging database configuration. - - - - Creates a new Empty IDatabaseConfiguration - - An empty database configuration. - - - - Creates a new Empty ISessionDatabaseConfiguration - - An empty session database configuration. - - - - Creates a new Empty ITwoUserDatabaseConfiguration for isolated databases - - An empty database configuration. - - - - Creates a new LoggingDatabaseConfigurationManager ITwoUserDatabaseConfigurationManager - - The UI configuration. - A configuration manager. - - - - Creates a new PlatformConfigurationManager IPlatformConfigurationManager - - The UI configuration. - A configuration manager. - - - - Creates a new SessionConfigurationManager ISessionConfigurationManager - - The UI configuration. - The Platform configuration. - A configuration manager. - - - - Returns an instance of ITwoUserDatabaseConfigurationManager - - An isolated configuration manager - - - - Returns an instance of IPlatformDatabaseServices that uses the supplied configuration to access the database. - - The database configuration. - A platform database configuration. - - - - Returns an instance of DatabaseScriptParser that can be used to parse an handed coded script for the provided database flavor - - A runtime configuration for admin user. - A runtime configuration for runtime user. - A parser that can be used to parse an handcoded script. - - - - Check whether two database configurations share the same database. Both configurations must share the same specific type with current plugin. - - A runtime configuration. - Another runtime configuration.. - true if both configs have the same database, false otherwise. - - - - Represents the set of services that added with the ones specified in the IDatabaseServices object enable complete database usage. - - - - - Returns a factory capable of creating platform introspection objects. - - - A factory capable of creating platform introspection objects. - - - - - Gets the IPlatformIntrospectionService associated with the platform database - - - The introspection service. - - - - - Gets the object associated with the database. - Represents a service that generates SQL statements. - - - The DML service. - - - - - Gets the IPlatformExecutionService associated with the platform database - - - The execution service. - - - - - Gets the IDDLService associated with the platform database - - - The DDL service. - - - - - Gets the IPlatformSessionService associated with the platform database - - - The session service. - - - - - Gets the object that compacts all the needed configuration parameters to be used for integration purposes. - - - The integration database configuration. - - - - - Represents a set of properties that are specific to a platform database provider. - - - - - Returns true if the Multiple Database feature is supported for this provider. - - - True if Multiple Database feature is supported, False otherwise. - - - - - Returns true if Aggregates/SQL can have their Iteration Multiplicity optimized. - Setting this as FALSE is the safest way of working around Database Drivers/Engines that do not support Multiple Active Result Sets. - - - True if Aggregates/SQL can have their Iteration Multiplicity optimized to IterationMultiplicity.Single (e.g. Lazy Loaded), False if it needs to be forced as IterationMultiplicity.Multiple (e.g. Eager Loaded). - - - - - In some Database stacks, adding a Foreign Key (DDL) adds an exclusive lock on both the parent and child tables. - Some database stacks support a "No validation" mode for the Foreign key creation which avoids the exclusive lock. - When this is True, the "No validation" mode should be used in the FK ddl generation. - By default this is False to maintain retrocompatibility with previous versions of the Platform. - - - - - Returns an instance of a that can be used - to execute platform queries against a specific - - - The instance to execute the queries. - - - - - Returns always a new instance of a that can be used - to execute platform queries against a specific - Internal use only - - - The instance to execute the queries. - - - - - Used to override the singleton (), for mocking purposes - - instance of , or null to use the original singleton - - - - Indicates that the annotated method should not be discovered for automatic sql syntax tests - - - - - Maps a set of test values to the parameters of a method when calling it in automatic tests - - - - - Use this constant in the to automatically generate the value for the given parameter - - - - - Use this constant in the to use a null value for the given parameter - - - - - Use this constant in the to automatically fetch a valid entity identifier (column "ID") for a given entity. Example: ENTITYIDENTIFIER_FOR + "OSSYS_ESPACE" - - - - - Use this constant in the to automatically create an object of a custom type that has a constructor which takes a string as input. Example: NEW_OBJECT_FROM_STRING + "1.2.3" - - - - - Use this constant in the to automatically create an object of a custom type that can be deserialized from JSON. Example: NEW_OBJECT_FROM_JSON + "{"Id":"lol", "Name":"crap"}" - - - - - Values to map to the method's parameters, using the order defined in the method signature. If the method - has more parameters than the number of provider values, the remaining values are auto-generated. - NOTE: use to indicate that the respective parameter should auto-generated - - - - - Similar to , used to test additional sets of values - - - - - Similar to , used to test additional sets of values - - - - - Similar to , used to test additional sets of values - - - - - Indicates that the annotated method should not be discovered for automatic sql syntax tests - - - - - Checks if the InMemory provider is working. - Returns always true. Override this method to implement appropriate check. - - - - - - Specify methods related to the storage of sessions information. - - - - - Releases the lock from the given session. - - The session identifier. - The lock identifier. - - Thrown when it's not possible to complete the operation. - - - - - Gets the session with the specified session's ID. - This method don't lock the required session. - - The session identifier. - The lock identifier. - True, if the required session is locked. False, otherwise. - How long is the session locked. - The state. - The requested session data stored. - - Thrown when it's not possible to complete the operation. - - - - - Gets the session with the specified session's ID and lock it. - - The session identifier. - The lock identifier. - True, if the required session is locked. False, otherwise. - How long is the session locked. - The state. - The requested session data stored. - - Thrown when it's not possible to complete the operation. - - - - - Inserts the specified session and it's data. The timeout for the inserted is also stored. - - The session identifier. - The session's data. - The session's expiration timeout. - - Thrown when we try to insert a session when a session with the same sessionId already exists. - - - Thrown when it's not possible to complete the operation. - - - - - Inserts an uninitialized session with the given identifier. - - The session identifier. - The session's data. - The session's expiration timeout. - - Thrown when we try to insert a session when a session with the same sessionId already exists. - - - Thrown when it's not possible to complete the operation. - - - - - Updates the specified session information that has the given identifier. - - The session identifier. - The lock identifier. - The session's data. - Size of the previous data. - The session's expiration timeout. - - Thrown when it's not possible to complete the operation. - - - - - Deletes the specified session that has the given identifier. - - The session identifier. - The lock identifier. - - Thrown when it's not possible to complete the operation. - - - - - Specify methods to allow the management of existing sessions. - - - - - Deletes the session with the given identifier. - - The session identifier. - - Thrown when it's not possible to complete the operation. - - - - - Deletes Top "X" expired sessions also deleting related module sessions. - "X" is set by ConfigurationTool - - Number of sessions eliminated. - - - - Deletes Top "X" expired sessions also deleting related module sessions. - "X" is set by ConfigurationTool - - Number of session vars eliminated. - - - - Checks if the stored procedure necessary to delete session variables exists. - - True if the stored procedure necessary to delete session variables exists, False otherwise. - - - - Changes the session identifier. - - The old session identifier. - The new session identifier. - - Thrown when it's not possible to complete the operation. - - - - - Resets the session timeout. - - The session identifier. - The new timeout. - - Thrown when it's not possible to complete the operation. - - - - - Checks if the session state model is correctly created. - - True if the model is alright, false otherwise. - - - - Specify methods related to the storage of sessions information associated to a module (application). - - - - - Gets the data of a module's item identified by the given item's id and associated to the referred session. - - The session identifier. - The item identifier. - The data stored for the given item in the requested session. - - Thrown when it's not possible to complete the operation. - - - - - Inserts the data from a module's item identified by the given item's id and associate it to a session. - - The session identifier. - The item identifier. - The data to be stored. - The user identifier. - The cookie identifier. - - Thrown when it's not possible to complete the operation. - - - - - Updates the information stored about a module's item identified by the given item's id and associated to the referred session. - - The session identifier. - The item identifier. - The data to be stored. - The user identifier. - The cookie identifier. - - Thrown when it's not possible to complete the operation. - - - - - Store the association of a module's item identified by the given item's id to a user. - The item's data isn't stored in this method. - - The session identifier. - The item identifier. - The user identifier. - The cookie identifier. - - Thrown when it's not possible to complete the operation. - - - - - Updates the association related to a module's item identified by the given item's id. - The item's data isn't changed in this method. - - The session identifier. - The item identifier. - The user identifier. - The cookie identifier. - - Thrown when it's not possible to complete the operation. - - - - - Deletes all the items associated to the session identified by the referred session's id. - - The session identifier. - - Thrown when it's not possible to complete the operation. - - - - - Returns the userID associated to the session identified by the referred session's id. - - The session identifier. - The Id of the user currently logged in or 0 if no user is logged in - - Thrown when it's not possible to complete the operation. - - - - - Resets the timeout for the items associated to the session identified by the referred session's id. - - The session identifier. - - Thrown when it's not possible to complete the operation. - - - - - Specify methods related to licensing - - - - - Counts the number of concurrent users using the platform. - - The reference date. - The ids of the modules to be excluded from the count. - Number of anon users. - Number of registered users. - The time when the evaluation was done. - - Thrown when it's not possible to complete the operation. - - - - - Represents an instance that allows the management of the sessions. - - - - - Sets the command timeout value in seconds to use in session queries. - - - The query timeout. - - - A default value for this property must exist. The platform might not set its value before - calling a method of the API. - - - - - Gets the instance associated with this service. - - - The database services associated. - - - - - Represents a service to manage transactions. - Extend this class to create a transaction manager. - - - - - This property represents the transaction pool used by this manager. - - - The transaction pool. - - - - - This property represents information about the request transaction. - - The request transaction information. - - - - Stores information about transaction state providing methods that allow its manipulation. - - - - - Returns true if the transaction is free. - - - True if the transaction is free, False otherwise. - - - - - Gets the transaction creation time. - - - The creation time. - - - - - Gets the time of the last modification to the transaction - - - The time when the transaction was change for last. - - - - - Gets the number of readers associated with the transaction. - - - The number of readers associated. - - - - - This property informs if the transaction can be released. - - - true if this instance is releasable; otherwise, false. - - - - - This property informs if the transaction can be returned to the pool. - - - true if this instance is poolable; otherwise, false. - - - - - Returns the object being wrapped. - - - The transaction. - - - - - Returns the object being wrapped. - - - The connection. - - - - - constructor. - Whenever possible pass in the original connection variable that created the transaction instead of just (trans, trans.Connection) - It appears there is a bug in ADO.NET that makes the GC delete connections that are just referenced by a transaction, - causing the later to appear as Zombie and making trans.Connection == null. - Because of that, an explicit reference is kept both to the connection and the transaction. - - The transaction to be used. - The connection to be used. - - - - Marks the transaction as busy and changes its time. - - - - - Releases the transaction by marking it as free, changing its time - time and closing all associated readers. - - - - - Sets the last changed time to now. - - - - - Associates a reader with the transaction. - Before associating the reader, cleans-up closed readers. - - The reader to associate - - - - Closes all readers associated with the transaction. - - - - - Closes the connection associated with the transaction. - - - - - Returns a instance built with a connection and a transaction created by the associated TransactionService. - - A new instance. - - - - This property represents the associated with this transaction manager. - When setting this property, all resources are released and transactions are rolled back. - - - - - Gets the created by the associated DatabaseService. - - - The execution service associated. - - - - - Gets the number of busy transactions. - - - - - Returns a transaction to be used during a web request. - This transaction is only committed or rolled back by invoking . - - A transaction to be used in the applications. - - - - Returns a transaction that is managed by extension developers. - Extension developers explicitly commit or rollback this transaction. - - A committable transaction managed by the user. - - - - Returns a transaction with read only access suitable to iterate results. - - A Transaction only for read purposes. - - - - Returns a database connection created by the associated . - - A new connection to the database - - - - Releases a transaction to the pool. - If the transaction is poolable, it is released and put back into the pool, otherwise it is removed. - Throws an if the transaction is not releasable. - - Occurs if the transaction is not releasable. - Transaction to be released. - - - - Commits a transaction. - The transaction is committed, the connection is closed and put back into the pool. - - The transaction to be committed. - - - - Rolls back a transaction. - The transaction is rolled back, the connection is closed and put back into the pool. - - Transaction to be rolled back. - - - - Commits all Request transactions. - - - - - Rolls back all Request transactions. - - - - - Ends a transaction by committing or rolling back. - - Transaction to commit. - If True, the transaction is committed, otherwise is rolled back. - - - - Ends a pooled transaction, performing additional cleanup code if necessary. - An error if an exception is raised. - - Object containing information about the transaction. - If True, all transaction are committed. Otherwise, they are rolled back. - If True, all resources are released and connections returned to the pool. - - - - Releases all database resources being used. - All transactions are committed or rolled back, and connections are returned to the pool. - This implementation calls the method to end the transactions - and sets the to Null. - - If True, all transaction are committed. Otherwise, they are rolled back. - - - - Associates a reader to a transaction. - - The transaction that will be associated with the reader. - The reader to associate. - Returns True if the reader was successfully associated, False otherwise. - - - - Logs an error with information about the exception, the stack trace and a message. - - Exception to log. - Stack trace to add to the log. - Message to add to the log. - - - - Checks if this manager is managing a given transaction. - This implementation, checks if the - returned by the is not null. - - The transaction. - Returns True if the transaction belongs to this transaction manager, False otherwise. - - - - Creates a new instance of the class. - - The transaction service to be used. - - - - Frees all resources and rolls back existing transactions. - - - - - Aborts a transaction and releases it. - - Transaction to be aborted. - - - - Database service that handles connection and transaction management to a access a database. - This is a base implementation of an abstract transaction service. - - - - - Gets the isolation level to be used in the transactions. - - - The isolation level of the transactions. - - - - - Releases all connections in the pool. - - - - - Returns a new transaction manager. - - The transaction manager. - - - - Checks if a separate connection is needed to connect to another catalog. - - - True if is needed a separate admin connection. False otherwise. - - - - - Creates a new instance of the class. - - The database services to be used by this service. - - - - This property represents the instance associated with this service. - - - The database services associated. - - - - - Returns a new connection to the database. - This implementation calls - with the number of retries equals to . - - The database connection. - - - - Returns a new connection to the database. - This implementation calls , opens the connection - and returns it. - - The number retries for establish the connection. - an open database connection. - - - - Checks if an exception thrown while trying to connect to the database is non-transient. If so, no retry is attempted. - - The exception to test. - True if it the exception is non-transient, False otherwise. - - - - Checks if it is possible to establish a connection. - - Error message that occurred during the test connection. - - True if it was established a connection successfully, False otherwise. - - - - - Returns a new transaction for the connection provided. - This implementation creates a new transaction with the - of the current service. - - Connection where the transaction will be created. - A transaction using the connection provided. - - - - Releases all connections in the connection pool. - This implementation releases all connections in the connection pool and - logs a warning with the reason. - - Reason why the connections will be released. - - - - Checks if the connection is closed. - - A database connection. - True if the connection is already closed, False otherwise. - - - - Closes the provided database transaction. - This implementation safely closes a transaction. If the transaction or its connection - are Null it does nothing. - - Transaction to be closed. - - - - Represents a service to manage transactions. - - - - - This property represents the associated with this transaction manager. - - - The transaction service associated. - - - - - Gets the number of busy transactions. - - - The number of busy transactions. - - - - - Returns a transaction to be used during a web request. - This transaction is only committed or rolled back by invoking . - - A transaction to be used in the applications. - - - - Returns a transaction that is managed by extension developers. - Extension developers explicitly commit or rollback this transaction. - - A private transaction managed by the user. - - - - Returns a transaction with read only access suitable to iterate results. - - A Transaction only for read purposes. - - - - Releases a transaction to the pool. - - Transaction to be released. - - - - Commits a transaction. - - The transaction to be committed. - - - - Rolls back a transaction. - - The transaction to be rolled back - - - - Commits all transactions. - - - - - Rolls back all transactions. - - - - - Releases all database resources being used. - All transactions are committed or rolled back, and connections are returned to the pool. - - If True, all transaction are committed. Otherwise, are rolled back. - - - - Associates a reader to a transaction. - - The transaction that will be associated with the reader. - The reader to associate. - Returns True if the reader was successfully associated, False otherwise. - - - - Checks if this manager is managing a given transaction. - - A transaction. - Returns True if the transaction belongs to this transaction manager, False otherwise. - - - - Aborts a transaction and releases it. - - Transaction to be aborted. - - - - Database service that handles connection and transaction management to a access a database. - - - - - Gets the instance associated with this service. - - - The database services associated. - - - - - Returns a new transaction manager. - - The transaction manager. - - - - Returns a new connection to the database. - - The database connection. - - - - Returns a new connection to the database. - - The number of retries for establishing the connection. - The database connection. - - - - Checks if it is possible to establish a connection. - - Error message raised during the creation of the connection. - - True if it was established a connection successfully, False otherwise. - - - - - Returns a new transaction for the connection provided. - - Connection from which the transaction is created. - A transaction created from the given connection. - - - - Releases all connections in the connection pool. - - Reason why the connections will be released. - - - - Checks if the connection is closed. - - A database connection. - True if the connection is already closed, False otherwise. - - - - Closes the provided database transaction. - - Transaction to be closed. - - - - General exception raised by a transaction. - Check the message to see the reason of the exception. - - - - - Exception raised when it's not possible to commit or rollback a transaction. - Check the message to see the reason of the exception. - - - - - Exception raised when it's not possible to release a transaction. - Check the message to see the reason of the exception. - - - - - Exception raised when a database transaction is in an invalid state. - Check the message to see the reason of the exception. - - - - - Class with constants to be used by . - - - - - Time, in milliseconds, to wait for a connection retry. - - - - - Maximum number of retries for a connection pool cleanup operation. - - - - - Maximum number of times to try establishing a connection. - - - - - Retrieves the creation scripts from the file system - - Returns a IDatabaseScriptFile which handles basic file system operations for each setup script - - - - Retrieves the database model scripts from the file system - - Returns a IDatabaseScriptFile which handles basic file system operations for each database script - - - - Retrieves the database async indexes scripts from the file system - - Returns a IDatabaseScriptFile which handles basic file system operations for each database script - - - - Returns the setup scripts with their token replaced, so it can be ran - - Return the setups scripts with their token replaced - - - - Class that represents an exception that occurs during deserialization of a configuration. - - - - - Returns a FileStream disposable object. - - Uses the enum FileMode to specify how the file should be open - Uses the enum FileAccess to specify how the file will be accessed - - - - - Replaces the parameters prefix '@' with the one defined in - in both the command text and the command parameters. Nothing is done if the defined prefix is '@'. - - - - - Extended implementation of a ManagedTransaction that have a TransactionManager associated - and that is responsible to perform the operations about the transaction. - The difference is related to the dispose of this object. - - - - - Flag that indicates if this instance was already commit or rolled back. - - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll deleted file mode 100644 index 3b65b467..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml deleted file mode 100644 index a66594d8..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml +++ /dev/null @@ -1,3100 +0,0 @@ - - - - OutSystems.HubEdition.RuntimePlatform - - - - - Gets the weak symmetric key used to cypher the platform settings - - - - - Gets the symmetric key used to cypher the platform settings - - - - - List of algorithms by order of security. - IMPORTANT: don't remove or change the order of the algorithms. If you need to add a more secure algorithm it must be added to the end of this list. - Otherwise you will break the platform encryption mechanism. - - - - - Gets a cached value that is calculated with a specific key and it's invalidation is bound to the eSpace. - - - - - Gets a cached value that is calculated with a specific key and it's invalidation is bound to the tenant. - - - - - Gets a cached value that it's invalidation is bound to the eSpace. - - - - - Gets a cached value that it's invalidation is bound to the tenant. - - - - - Gets a cached value that depends on the eSpaceId, and it's invalidation is also bound to the eSpace. - - - - - Gets a cached value that depends on the eSpaceId, and it's invalidation is also bound to the eSpace. - - - - - Gets a cached value that depends on the tenantId, and it's invalidation is also bound to the tenant. - - - - - This class creates a typeloader proxy, so we can execute logic from other vdirs - This is used for QA ISAPI tests, and is referenced in OsISAPITestsAPI.xif extension - - - - - Get the hostname that will be rendered on links in the email - - - The hostname or null if not specified or screen is null - - - - Summary description for JavaScriptManager. - - - - - Method to create the script that creates the elements arrays - - A string with the script. - - - - Method to create the script that associates the validators (button and links) to the elements arrays - - A string with the script. - - - - Gets the javascript to refresh the button's elementsToValidate array - (This is used in Ajax Refreshes for buttons that have a ParentEditRecord set) - - - - A string with the javascript. - - - - Method used to get the Parent Edit Record Validators script, based on the previous calls to - addIdToParentEditRecord and addValidatorToParentEditRecord - - - - - Get relative path to be used in the javascript location - - Javascript relative path - - - - Checks request relative path, to be used in the javascript location - - base application path - - - - Sets the OnChange timer delay for the inputs in the current page - - - - - - Due to differences in url escape between xhtml and wml (adapters related). Returns true or false - - current Request - True if the URL must be encodes, false otherwise. - - - - Contains the definitions for all the builtin functions - - - When a function is added, it is necessary to include it in the compiler. - See the "FillFunctionInfo" function in the "Language" class. - - NOTE : TRY/CATCH added to all functions even if we think/know they - throw no exception (just in case). Exception: fn returning the argument received. - - - - - Thread save cache with clear method. - - - - - - Calling this method makes sure every event listener is bound to the same callback object - - - - - Returns the Html code that will be injected in each Web Page request through the runtime callback engine - - - - - - A String with the the Html code to be used in the Web Page request. - - - - Platform Runtime Context with info to be used in current request processing. - - - - - Will dispose pending objects that have been added for later disposable - - - - - This method provide a way to obtain multiple values into the activation table - - transaction to use for the database commands - parameters list to obtain from the activation table - values stored in the activation table for each parameter, if the parameter does not exist in the table the default is defined - - - - Return an entity configuration, based on its Service Studio key by loading its definition from appSettings.config. - - The Service Studio key of the eSpace or extension that own the entity. - The Service Studio key of the entity. - Entity name to use in fallback scenarios where we cannot resolve the name from the appSetting.config - Entity physical table name to use in fallback scenarios where we cannot resolve it from the appSetting.config - The corresponding EntityConfiguration. - - - - Represents a record from the database. - - - - - Abstract class that implements basic list behavior and - from which all other lists must derive. - - - - - Contains the records when operating as an - in-memory list. Always points to an arraylist in case of an in - memory list. - - - Set to null when not being used. - - - - - Contains the records when operating as an - in-memory list. - - - - - The IDataReader used by the list when reading data - from the database. - - - Set to null when not being used. - - - - - Property that only sets internal field _reader - - - - - Maximum number of records in the record list. - - - If set to 0, means infinity (read all records). - - - - - Zero based number of the row. - - - If set to -1 then we are not positioned. - Otherwise it is the zero based number of the row. - - - - - Zero based number of the row. - - - If set to -1 then we are before the the first record. - Otherwise it is the zero based number of the row. - - - - - The number of records stored in the list. - - - Database lists always return -1 while in-memory - records return the current number of records stored. - - - - - Specifies if we are currently at the beggining of the - list. - - - - - Specifies if we are currently at the beggining of the - list. - - - Set to true the list has reached BOF, otherwise BOF has not - been reached. - - - - - Specifies if we are currently at the end of the - list. - - - - - Specifies if we are currently at the end of the - list. - - - Set to true the list has reached EOF, otherwise EOF has not - been reached. - - - - - Specifies if the Editable Table has the hidden row in - the list - - - - - Specifies if the Editable Table has the hidden row in - the list - - - Set to true if the list has the hidden row of the Editable Table. - This is not needed for the other widgets. - - - - - Specifies if the record list is empty - - - - - Specifies if the record list is empty - - - Set to true if the list is empty, otherwise the list is not empty. - - - - - Specifies if this is the first time the list is read. - - - - - Specifies if the list is being iterated or not. - - - - - Contains the list of fields that were not retrieved from the database - - - - - Create the object from serialized data. - - - - - Saves the object data for serialization. - - - - - Close the datareader and, maybe, disposes conn object. - - - Set disposeObject to true, unless this method is being called by - the "disposer" (eg: DbConnManager.CloseConn()) - - - - - Saves the current record to the list buffer. - - - This should be called to save the current record before - operating on the record list (advancing, serializing, etc). - - - - - Reads the current record from the source. - - - - - Resets the list to its initial position. - - Cannot be used more than once when using a - database list. - - - - - Advances the current record to the next record in the list. - - - After an enumerator is created or after a call to - Reset, an enumerator is positioned before the first element - of the collection, and the first call to MoveNext moves the - enumerator over the first element of the collection. - After the end of the collection is passed, subsequent - calls to MoveNext return false until Reset is called. - - - - - Advances count records in the list. - - Number of records to skip. - - After an enumerator is created or after a call to - Reset, an enumerator is positioned before the first element - of the collection, and the first call to MoveNext moves the - enumerator over the first element of the collection. - After the end of the collection is passed, subsequent - calls to MoveNext return false until Reset is called. - - - - - For internal use only. - - - This function is for internal use only. - Performs a reset on the list and progates the - reset to the record. - - - - - For internal use only. - - - This function is for internal use only. - Sets the position of the list thus moving CurrentRec to the new position - - - - - Current Record variable - - - - - Gets the object of a given index - - Intex of item to get - The object of required index - - - - Duplicates the record List - - The duplicated record list - - - - Distinct the record List - - The distincted record list - - - - Class that implements basic recordlist behavior and - from which all other recordlists must derive. - - - - - Create the object from serialized data. - - - - - Performs a recursive reset - - - - - Class for lists of basic type. - - - - - Create the object from serialized data. - - - - - Performs a recursive reset - - - - - - - - - - This variable is used to monitor if there are active threads. It is pulsed when there are no threads active. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - Clean up any resources being used. - - - - - - - - - - - - - - Abstract class for debug events. These are generated by the server and sent - to all listening Service Studios. - All events include the following data: - - - eventId: this is a serial number that is used to keep track of which events - Service Studio has already received, so that we can gracefuly recover from - connection errors; - - - threadId: the thread that generated the event. This is used by Service Studio - to identify the target of continue/step commands - - - - - This event is generated whenever a breakpoint is reached. This event has - the following data: - - - breakpointId: id of the breakpointable object where the thread has been - suspended. - - stack: thread's stack at the moment it was suspended. The stack includes - only breakpoint ids, not the local state (which must be obtained via - the debugger's Evaluate method) - - - - - This event is generated when an exception is thrown - - - - - When a request gets suspended in a debug session, this event is sent to all of the - other debug sessions so that the users are aware of concurrent debug activity. - - - - - This event is generated whenever a thread exits from its suspended state. - It is used by Service Studio to update the thread's state and debugger - buttons status. - - - - - This event is generated whenever a thread receives a request to be suspended - but before it reaches a breakpoint. - - - - - This is event is generated when a thread ends. It is used by Service Studio - to remove the thread from the threads list. - - - - - This is event is generated when a thread is handled by an user and sent to all - other connected users. It is used by Service Studio to remove the thread from the threads list. - - - - - This event is generated whenever the list of logged in users changes. It is used by Service Studio - to update the list of concurrent debug sessions - - - - - This event is not specific to a given thread. It is used to signal that - the debug session has been stopped by Service Studio. It is used to notify - all attached Service Studios that they must update their UI in order to - show that the session is closed. - - - - - This event is sent when the debug session is being stopped by the server - because the app is being redeployed. SS will then try to reconnect. - - - - - This event is sent when the debug session is has been successfully started. - - - - - This class is used to collect data about a suspended thread. It provides - methods to command the thread and also to obtain data about it. - - - - - This class is used to store info on a request that must be available for - long-lived requests. E.g., when debugging a process we're actually running - in different requests over time, but we want it to work as if it was a single - request, namely wrt the StepOver/Out/etc behavior. - - Note that the data here is not specific to long-lived requests - for regular - requests we also need this data, but the difference is that we won't store - it to reuse for later requests - - - - - Token sent by client (browser) to identify this request - - - - - CallContextId used to identify the client thread associated - - - - - This class is used to keep track of the call stack of a given thread. - - - - - This class contains information about a given element in the thread's call - stack. This info includes: - - - eSpaceName: the name of the eSpace we're in. This is useful when debugging - Producer/Consumer eSpaces, since different elements in the stack may correspond - to different eSpaces. It is used by Service Studio to provide feedback on - the breakpoints that are not in the currently open eSpace. - - - functionId: id of the function we're in. This is a BreakpointId. - - - functionName: name of the function. See comment on eSpaceName. - - - breakpointId: id of the breakpointable object where the thread is suspended - - - vars: value of the local variables by the time the thread was suspended. This - enables us to evaluate expressions. - - - - - Types of debug commands - - - - - This class is used to represent commands sent to suspended threads. - - - - - HttpHandler used to send debug events to Service Studio. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CLass to perform the deletion of processes. - - - - - Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. - The information that is deleted is all the logging of: process instances, activities instances, input parameters values, output parameters values, processes instances executed within other process instances, etc. - - True if the operation deleted all the processes that fit the criteria. - - - - Determines whether there are processes to delete. - - true if there are processes to delete, false otherwise. - - - - String for RuntimePlatform to use as UserAgent on HTTP Requests - - - - - Initializes the production of an email message, creating its headers and main body. Note that this - action does not immediately send the message, as you may want to add futher parts (attachments) to - it (using ). To finalize message and send it you should then call RichMailSend - - - Older emails clients (such as some versions of Lotus and Outlook 2000) do not correctly support the MIME encoding used to send HTML emails. To enable HTML emails to be delivered correctly to these clients you can add "lotus/compatible" (without the quotes) to the ContentType. This will change how the whole email is created and allows those clients to shows the message properly at the expense of more recent email clients (such as Yahoo! Mail) that will not display the message correctly. - - Pre-process the email addresses? - Email address of the sender - Email addresses to send the email to (comma separated) - Email header information - Email addresses to carbon-copy the email to (comma separated) - Email addresses to blind carbon-copy the email to (comma separated) - MIME type of the message. - Character used in the message text - Subject of the message - Text content of the message - TRUE if content of the message is HTML rather than plain text - Base URL to use in case the Body is HTML. This allows any relative paths that may exist in the Body to be expanded to full blown URL's - If TRUE, any images referenced via an URL in the Body are attached to the message - Alternate reply-to email address - User agent to use to request the email messages. - The hostname to use when building links in the email body. - Deploymentzoneadress of the running espace - System marker that should be passed in to any further parts that are added to this message (see ). - The full message text produced by the call - The created email id. - List of BinaryImageInfo. This list contains the information required to add extra image parts at the end of the email. When using this parameter make sure your ssBody already contains the cid:guid information. - - - - Encode the body as in quoted-printable format. - Adapted from PJ Naughter's quoted-printable encoding code. - For more information see RFC 2045. - - The encoded body. - - - - Downloads Text content from the specified URL - - URL to get the content from - The request method. - The request contentType header - The request userAgent. - Cookie to use in the request. - Query parameters for the request. - HTTP headers for the request. - Actual text content downloaded from URL - The Content enconding. - - - - Downloads Binary content from the specified URL - - URL to get the content from - The request userAgent. - MIME type of downloaded content - Actual binary content downloaded from URL - - - - Removes tags from an HTML string, producing a clean text version of the input - - The HTML text to be converted - The resulting text - - - - Delegate that decodes HTML when matches are found by HtmlToText - - Match found by the regexps - Decoded text - - - - This resource manager is used to look for language resources in the assembly manifest - (that is, as embedded resources). - This is in contrast with the default ResourceManager, which expects language resources - to be placed in satellite assemblies. - - - - - Contains all the information about the tenant. - - - - - Contains all the information about a tenant on a single eSpace scope. - - - - - Provides a mechanism to listen por Page LifeCycle events - - - - - Called when Application Start is executed - - - - - Provides methods for plugins to register in Page LifeCycle events - - - - - Notify all plugins registered in the OnApplicationStart event - - - - - Register a new LifecycleListener - - The full class name - The asssembly name - - - - When changing this class, also change OutSystems.RuntimeCommon.FormatInfoLogic - This one exists only for backward compatibility - - - - - This is necessary to because the ZLibNative implementation does not allow partial flush operations - - - - - Summary description for IBookmarkableURL. - - - - - Summary description for INegotiateTabIndexes. - - - - - Contains all the information about the tenant. - - - - - This class is used to store information about the Ajax event triggered by the client - - - - - Builds an empty AjaxEventContextInfo - - - - - Builds the AjaxEventContentInfo based on the ajax request value - - - - - - The document element width property - - - - - The document element heigth property - - - - - The id of the element that triggered the event - - - - - The absolute vertical position of the element that triggered the event - - - - - The absolute horizontal position of the element that triggered the event - - - - - The vertical viewport position - - - - - The horizontal viewport position - - - - - The absolute horizontal mouse position - - - - - The absolute vertical mouse position - - - - - The text message used while invoking the notify method. - - - - - Gets the Ajax event context info of a given context - - A new instance of an AjaxEventContextInfo. - - - - Class that is used to store the information about the application. - THIS CLASS IS USED EXTERNALLY. WE CANNOT BREAK THIS INTERFACE. - - - - - This method handles all licesing exceptions. - NOTE: This method have a generic name and receives a generic exception because of stack display purposes. - We don't want to give any information to the client that a licesing exception have ocurred... - - - - - - Computes the signature for a set of objects. - This method is private and cannot be inlined because - we want to obfuscate the method call that retrieves the key. - - The set of objects. - The signature for the set of objects. - - - - This method validate if the espace is consistent and not damaged - - - - - Internal class to allow abstracting interactions to System.Web classes related to Http. - This class is NOT a supported public API. - - - - - Sets a cookie, removing any existing cookie with the same name. - It does not make any distinction about cookies with different Options. - - - - - Validates autorization token string - - settings provider to be used in the validation - token string to be validated - validated token object - - - Source code from https://github.com/jsakamoto/ipaddressrange, forked by us in https://github.com/OutSystems/ipaddressrange - If you are thinking in changing this file, please update the code on GitHub - - - - - Counts the number of leading 1's in a bitmask. - Returns null if value is invalid as a bitmask. - - - - - - Source code from https://github.com/jsakamoto/ipaddressrange, forked by us in https://github.com/OutSystems/ipaddressrange - If you are thinking in changing this file, please update the code on GitHub - - - - - Creates a new range with the same start/end address (range of one) - - - - - - Create a new range from a begin and end address. - Throws an exception if Begin comes after End, or the - addresses are not in the same family. - - - - - Creates a range from a base address and mask bits. - This can also be used with to create a - range based on a subnet mask. - - - - - - - Takes a subnetmask (eg, "255.255.254.0") and returns the CIDR bit length of that - address. Throws an exception if the passed address is not valid as a subnet mask. - - The subnet mask to use - - - - - Returns the range in the format "begin-end", or - as a single address if End is the same as Begin. - - - - - - Returns a Cidr String if this matches exactly a Cidr subnet - - - - - this method centralizes the logic to obtain the property value - - the generic type - the delegate function to return the property value - the variable updated - - - - Invalidates the runtime license properties cache - - - - - This method refresh the runtime license parameters cache - - - - - Method to obtain the User Limitation information from the database - - the name of the parameter limit - the variable to hold the limit value - the parameters value in the repository - if parameter is setted in the repository - - - - - Summary description for serverlog. - - - - It should be ok to truncate the hash to a shorter length since we are not worried about collisions here, - just trying to force different hashes when the content is updated. - - FIPS 180-4 (http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf) specifies that: - "Some application may require a hash function with a message digest length different than those provided - by the hash functions in this Standard. In such cases, a truncated message digest may be used, whereby a - hash function with a larger message digest length is applied to the data to be hashed, and the resulting - message digest is truncated by selecting an appropriate number of the leftmost bits". - - - - - This class is to be used in all interactions with Headers that are set in the OsISAPI Filter. - If the feature is disabled ("IIS.OsISAPIFilterEnabled" setting) all headers are ignored for security reasons. - - - - - This class holds and serialize, in JSON format, the AJAX response with the snippets to replace in the page - - - - - - Returns the "javascript" snippets to add to the page - - - - - Adds a javascript snippet to the response - - - - - - Inserts a javascript snippet to the response at a given index - - - - - - - Clears all javscript snippets in this response - - - - - Adds a filename to the block js filenames to include in the response - - js filename list - - - - Serialize to a string in JSON format the snippets to replace in the page - - - - - Construct the select that gather which are the actual processes that will be deleted - - - - - Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. - The information that is deleted is all the logging of: process instances, activities instances, input parameters values, output parameters values, processes instances executed within other process instances, etc. - - Transaction to use - True if the operation deleted all the processes that fit the criteria. - - - - Dummys are precendent activities that did execute in the current flow. - Mostly they are caused by changes in the process with running instances - - Returns true if the activity is dummy, false otherwise - - - - An activity is set as running if is creeated to be executed, - either on the ActivitiesHandler or after a precedent activity finishes - - Returns true if the activity is running, false otherwise - - - - Action executed before an activity can be open - - - - - Action executed to release a human activity before an activity can be closed - - - - - Action executed to schedule an human activity to a later date - - - - - Action executed before an activity can be closed - - - - - Method to set the event filters from a listening activity - - - - - Method to remove the event filters from a listening activity - Can only be used internally or by the BPMRuntime - - - - - Completes the close of an activity. - It is also responsible for the activation of next activities - - - - - Start executing this activity - - - - - - The next activity ids - - - - This delegate is used to retrieve outputs from the database - - - - - A reader with the attributes "SS_Key", "Value" and "Data_Type" - - - - - - The url for the module where the activity is defined - The tenantId to use in context of the activity - The userId to use in context of the activity - The key of the module requesting the execution of the activity - The key of the module where the activity is defined - - - The settings provider for the execution context - The url for the module where the activity is defined - The tenantId to use in context of the activity - The userId to use in context of the activity - The key of the module requesting the execution of the activity - The key of the module where the activity is defined - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents the Activity Kind Identifiers in the database - - - - - Represents the Activity Status Identifiers in the database - - - - - Closes a process, all its activities and sets the parent activity (if any) to execute - - - Instance of the process to close, can be a dummy instance - Id of the process, cannot be dummy - - - - - Closes a process, all its activities and sets the parent activity (if any) to execute - - - Instance of the process to close, can be a dummy instance - Id of the process, cannot be dummy - - - - - Changes the status of an activity and commits the transaction. - Should not be used inside the BPMRuntime - - - - - - - - Used to get a generic activity instance using a intance of a process definition - - - - - Method to get the last activity instance in current activity flow - Note: the activity must belong to the same eSpace and Process - - - The last activity instance in the current flow - - - - Action executed before an activity can be open - - - - - - - - - success or failure - - - - Action executed to reset the openning and user assignment of an activity - - - - - - success or failure - - - - Action executed to reset the openning and user assignment of an activity - - - - - - success or failure - - - - Action executed before an activity can be closed - - - - - - - - - success or failure - - - - Method to execute when and event is triggered - - - - - - - - Method to set prepare the event filters associated with the activity - If the filters are already set, then nothing will be changed. - This is necessary to recover lost filters for activities that are already waiting - - - - - - Method to remove the event filters associated with the activity - If there are no filters set, then nothing will be changed. - This is necessary to remove filters for activities that are no longer waiting - - - - - - Method to execute the activity - - - - - - The next activity ids - - - - Represents the Process Status Identifiers in the database - - - - - Represents a Process Variable Kind - - - - - Retrieves information about Queries - - Context - The type of the screen. - A Xml Document with the information - - - - Remoting Provider Factory - - - - - - Returns current provider - - - - - Remoting Provider Interface /// - - - - - - Default implementation - - - - - - Summary description for RunningInfo. - - - - - This is the extesion for the cache control files... those used by the tenant invalidate cache, etc... - - - - - Convert an object to string - To be used for saving values in a database string field - - Object to be converted into a String. - A String representing the given object - - - - Convert an string to object. - To be used for retrieve values from a database string field - - String to be converted - The runtime string representation of the desired datatype. - An object created from the given String based on the data type. - - - - List of hashes by order of security. A more secure hash should always be added to the end of this list. - - - - - Creates a salted password hash using a strong one-way hashing algorithm. - - The password being hashed - The hash of the given password - - - - Creates a salted password hash using a strong one-way hashing algorithm. - - The password being hashed - Algorithm to use to generate the hash - The hash of the given password - - - - Creates a salted password hash using a strong one-way hashing algorithm. - - The password being hashed - Index of the algorithm to use to generate the hash - The hash of the given password - - - - Checks if the given password corresponds to the given hash. - - The password being validated. - The hash the password corresponds to. - True if the password is valid for the given hash. - - - - Checks if the given hash was generated using the given algorithm. - - The hash being validated. - The algorithm to check - True if the hash was generated using the given hash algorithm. - - - - Gets the state DB connection string. This method also takes care of creating - the extra table needed by the session management module, and will fail with - an exception if it can't do that or if the session DB has not been initialized yet. - - The state DB connection string - - - - Global settings are indexed by instance name in machine.config. Use this to obtain their full key name. - - - - - Collection of settings that are specific to a node (in a farm environment) and stored in the DB - - - - - Collection of settings that are specific to a node (in a farm environment) and stored in service .config files - - - - - Collection of settings that are written in machine.config instead of being on the database - - - - - This method only sets the parameter temporarily. - If you want to set the configuration in a persistent fashion, use the SetPersistent method. - - - - - Throws an exception if key does not exists in the config. - - - - - Throws an exception if key does not exists in the config. - - - - - Return nullValue if key does not exists in the config. - - - - - Return nullValue if key does not exists in the config. - - - - - Returns the int value for a setting. - Throws an exception if key does not exists in the config. - - - - - Returns the int value for a setting. - Throws an exception if key does not exists in the config. - Uses the Transaction passed by argument. - - - - - Returns the decimal value for a setting. - Throws an exception if key does not exists in the config. - - - - - Return nullValue if key does not exists in the config. - - - - - Gets a global setting from the machine.config, indexing by instance name that should be in the local .config. - - - - - Gets a global setting from the machine.config, indexing by instance name that should be in the local .config. - - - - - This function returns the value for the specified Site Property. If it doesn't exist, it will return 'null' - - Site Property Name - The value for the Site Property with the given name, or 'null' if it doens't exist. - - - - This function returns the value for the specified Site Property. - If it doesn't exist, it will return 'null'. - This is meant to be used only by the runtime debugger. - - Site Property Name - The value for the Site Property with the given name, or 'null' if it doens't exist. - - - - This property returns the value for the specified Site Property. - If it doesn't exist, an exception is thrown. - If you want to check and handle 'null' yourself, call getSafe() instead! - - Site Property Name - - - - Sets the new Value of the site property and returns the correspondent Database Value string. - - New value for the property - - - - - Site Property constructor used for Integer System properties only - - - - - Site Property constructor used for Text System properties only - - - - - Site Property constructor used by runtime settings. - - - - - Read a record from database - - Data base reader - - - - This interface defines a Timer signature - - - - - Return a previously defined SOAP API Configuration, based on its Service Studio key and eSpace Id. - - The Service Studio key of the SOAP API source. - The eSpace Id. - The eSpace Key. - The corresponding WebReferenceConfiguration. - - - - NOTE: Don't use ref or out parameters here because the Java Remoting doesn't support them... - - - - - Reference compatibility algorithm that compares two producer signatures. - Doesn't have information about usage, so it shoud only be used for backward compatibility scenarios (i.e. LifeTime). - - - - - Thread name - - - - - Status name - - - - - How long the thread is in this status - - - - - How much time is it supposed to be in this status: - "0" means it is not supposed to be in this status (it is an error situation) - "-1" means the time in this status is not limited. - - - - - Other details to appear in the monitoring user interface - - - - - NOTE: Don't use ref or out parameters here because the Java Remoting doesn't support them... - - - - - EXIFextractor Class - - - - - - Get the individual property value by supplying property name - These are the valid property names : - - "Exif IFD" - "Gps IFD" - "New Subfile Type" - "Subfile Type" - "Image Width" - "Image Height" - "Bits Per Sample" - "Compression" - "Photometric Interp" - "Thresh Holding" - "Cell Width" - "Cell Height" - "Fill Order" - "Document Name" - "Image Description" - "Equip Make" - "Equip Model" - "Strip Offsets" - "Orientation" - "Samples PerPixel" - "Rows Per Strip" - "Strip Bytes Count" - "Min Sample Value" - "Max Sample Value" - "X Resolution" - "Y Resolution" - "Planar Config" - "Page Name" - "X Position" - "Y Position" - "Free Offset" - "Free Byte Counts" - "Gray Response Unit" - "Gray Response Curve" - "T4 Option" - "T6 Option" - "Resolution Unit" - "Page Number" - "Transfer Funcition" - "Software Used" - "Date Time" - "Artist" - "Host Computer" - "Predictor" - "White Point" - "Primary Chromaticities" - "ColorMap" - "Halftone Hints" - "Tile Width" - "Tile Length" - "Tile Offset" - "Tile ByteCounts" - "InkSet" - "Ink Names" - "Number Of Inks" - "Dot Range" - "Target Printer" - "Extra Samples" - "Sample Format" - "S Min Sample Value" - "S Max Sample Value" - "Transfer Range" - "JPEG Proc" - "JPEG InterFormat" - "JPEG InterLength" - "JPEG RestartInterval" - "JPEG LosslessPredictors" - "JPEG PointTransforms" - "JPEG QTables" - "JPEG DCTables" - "JPEG ACTables" - "YCbCr Coefficients" - "YCbCr Subsampling" - "YCbCr Positioning" - "REF Black White" - "ICC Profile" - "Gamma" - "ICC Profile Descriptor" - "SRGB RenderingIntent" - "Image Title" - "Copyright" - "Resolution X Unit" - "Resolution Y Unit" - "Resolution X LengthUnit" - "Resolution Y LengthUnit" - "Print Flags" - "Print Flags Version" - "Print Flags Crop" - "Print Flags Bleed Width" - "Print Flags Bleed Width Scale" - "Halftone LPI" - "Halftone LPIUnit" - "Halftone Degree" - "Halftone Shape" - "Halftone Misc" - "Halftone Screen" - "JPEG Quality" - "Grid Size" - "Thumbnail Format" - "Thumbnail Width" - "Thumbnail Height" - "Thumbnail ColorDepth" - "Thumbnail Planes" - "Thumbnail RawBytes" - "Thumbnail Size" - "Thumbnail CompressedSize" - "Color Transfer Function" - "Thumbnail Data" - "Thumbnail ImageWidth" - "Thumbnail ImageHeight" - "Thumbnail BitsPerSample" - "Thumbnail Compression" - "Thumbnail PhotometricInterp" - "Thumbnail ImageDescription" - "Thumbnail EquipMake" - "Thumbnail EquipModel" - "Thumbnail StripOffsets" - "Thumbnail Orientation" - "Thumbnail SamplesPerPixel" - "Thumbnail RowsPerStrip" - "Thumbnail StripBytesCount" - "Thumbnail ResolutionX" - "Thumbnail ResolutionY" - "Thumbnail PlanarConfig" - "Thumbnail ResolutionUnit" - "Thumbnail TransferFunction" - "Thumbnail SoftwareUsed" - "Thumbnail DateTime" - "Thumbnail Artist" - "Thumbnail WhitePoint" - "Thumbnail PrimaryChromaticities" - "Thumbnail YCbCrCoefficients" - "Thumbnail YCbCrSubsampling" - "Thumbnail YCbCrPositioning" - "Thumbnail RefBlackWhite" - "Thumbnail CopyRight" - "Luminance Table" - "Chrominance Table" - "Frame Delay" - "Loop Count" - "Pixel Unit" - "Pixel PerUnit X" - "Pixel PerUnit Y" - "Palette Histogram" - "Exposure Time" - "F-Number" - "Exposure Prog" - "Spectral Sense" - "ISO Speed" - "OECF" - "Ver" - "DTOrig" - "DTDigitized" - "CompConfig" - "CompBPP" - "Shutter Speed" - "Aperture" - "Brightness" - "Exposure Bias" - "MaxAperture" - "SubjectDist" - "Metering Mode" - "LightSource" - "Flash" - "FocalLength" - "Maker Note" - "User Comment" - "DTSubsec" - "DTOrigSS" - "DTDigSS" - "FPXVer" - "ColorSpace" - "PixXDim" - "PixYDim" - "RelatedWav" - "Interop" - "FlashEnergy" - "SpatialFR" - "FocalXRes" - "FocalYRes" - "FocalResUnit" - "Subject Loc" - "Exposure Index" - "Sensing Method" - "FileSource" - "SceneType" - "CfaPattern" - "Gps Ver" - "Gps LatitudeRef" - "Gps Latitude" - "Gps LongitudeRef" - "Gps Longitude" - "Gps AltitudeRef" - "Gps Altitude" - "Gps GpsTime" - "Gps GpsSatellites" - "Gps GpsStatus" - "Gps GpsMeasureMode" - "Gps GpsDop" - "Gps SpeedRef" - "Gps Speed" - "Gps TrackRef" - "Gps Track" - "Gps ImgDirRef" - "Gps ImgDir" - "Gps MapDatum" - "Gps DestLatRef" - "Gps DestLat" - "Gps DestLongRef" - "Gps DestLong" - "Gps DestBearRef" - "Gps DestBear" - "Gps DestDistRef" - "Gps DestDist" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Summary description for translation. - - - - - - - - - - private class - - - - - Class intended for OutSystems use only! Provides easy access to the database for different runtime configurations (CurrentEspace, DBConnection, System Database and Particular Database) - - - - - The systemProvider is the one used by the application to access the OutSystems database - - - - - The DatabaseProviders dictionary stores all connections that are used to access different databases - - - - - The dbConnectionProviders dictionary stores all external database connections - - - - - Create a new instance of the class using the given IDatabaseServices. - - True to initialize the providers, false otherwise - True to initialize the providers, false otherwise - - - - Gets the current DatabaseAccess. - If inside a web application, fetches it from the request. Otherwise, it returns a static one. - - - - - Indicates if the underlying database access objects are initialized and this class is ready to be used - - true if it is initialized, otherwise false. - - - - Gets a provider for the main database associated with the currently running application. - This should be used to access data that is managed by this or other applications that share the same database. - - The IDatabaseAccessProvider used to acces the main database. - - - - Gets a provider for the system database. - This should be used to access data that is managed by the platform. - - The IDatabaseAccessProvider used to acces the system database. - - - - Gets a provider for a specific eSpace database. - This should be used to access data that is managed by that specific eSpace. - - eSpace key. - The IDatabaseAccessProvider to access the given database. - - - - Gets a provider for a specific database. - This should be used to access data that is managed by applications that are configured to use this database. - - Name of the database. - The IDatabaseAccessProvider to access the given database. - - - - Gets a provider for a specific external database connection. - This should be used to access data that is managed by external systems that use this connection. - - Name of the external database connection. - The IDatabaseAccessProvider based on the given connection. - - - - Creates a new unmanaged connection using a custom configuration. - - Database configuration. - An instance of a DatabaseConnection using the given configuration. - - - - Commits all transactions (main transactions only). - - - - - Rolls back all transactions (main transactions only). - - - - - Releases all transactions (pooled and main), commiting or rollingback depending on the - the value of "commit". - - True to commit the transactions, false to rollback. - - - - Finds the correct DatabaseAccessProvider for an unmanaged transaction object. - - Unmanaged transaction. - The IDatabaseAccessProvider based on the given trasaction. - - - - Finds the correct DatabaseAccessProvider for an unmanaged transaction object, belonging to a particular database. - - The unmanaged transaction. - - The IDatabaseAccessProvider based on the given trasaction to access the given database. - - - - Disable transaction commits for the remaining duration of the current request - NOTE: Leaving this setting set to true will affect all future commit. It should only be changed - inside a 'try .. finally' block, making sure it is set to false in the end. - - true if commits are disabled otherwise, false. - - - - Blocks all access to the database while the value is true - NOTE: Leaving this setting set to true will affect all future commit. It should only be changed - inside a 'try .. finally' block, making sure it is set to false in the end - - true if the access to the batabase is blocked otherwise, false. - - - - The DatabaseAccessProvider responsible for connecting to the OutSystems system database. - - The IDatabaseAccessProvider to the system database. - - - - The DatabaseAccessProvider responsible for connecting to the current main database (that can be the system database) in the the OutSystems database server - - The IDatabaseAccessProvider to the main database. - - - - The DatabaseAccessProvider responsible for connecting to a specific database in the the OutSystems database server - - Name of the database. - An object to access the database - - - - The DatabaseAccessProvider responsible for connecting to a specific external database connection - - Name of the connection. - An object to access the database - - - - Gets the transaction manager. - - Name of the connection. - An instance of a ITransactionManager for the given connection. - - - - Gets database services for the given connection - - Name of the connection. - An instance of a IDatabaseServices to the given connection. - - - - - Commit all transactions. - - - - - Roll back all transactions. - - - - - Freeup resources. - - If set to true the transactions will be committed. - Exception launched to when an error occurs trying to close the transaction. - - - - Tries to get a database access based on the given transaction. - - The transaction. - The object to access the database. - true if the IDatabaseAccessProvider could be created, false otherwise. - - - - Tries to get a database access based on the given transaction. - - The transaction. - Name of database to connect to. - The object to access the database. - true if the IDatabaseAccessProvider could be created, false otherwise. - - - - Tries to get a database access based on the given transaction for the database identifier. - - The transaction. - Name of database to connect to. - A database access to the given database identifier. - - - - Checks the access to the DatabaseAccess. - - The element name. - Blocked access when trying to access 'DatabaseAccess. + name + '. - - - - Gets or sets the query timeout, in seconds. - - The query timeout, in seconds. - - - - Class that represents an exception that occurs due to an invalid access to a database. - - - - - Exception that represents an error that occurs due to an external database connection configuration not found in the database. - - - - - Initializes a new instance of the class. - This constructor can be used to create a provider with a shared transaction manager, - while keeping its own database services. - - The database services associated with the provider - The transaction manager used to obtain transactions. - - - - Gets the transaction manager used by the provider. - - The transaction manager. - - - - Gets the database services used by the provider. - - The database services. - - - - Gets the main transaction from this provider that is automatically commited in the end of the request. - This should be used mostly for inserts and updates, but it can also be used for readers that are closed immediatelly. - - - - - Creates a new private transaction from this provider that can be explicitly commited and rolledback. - This should be used for inserts and updates that require an immediate commit or rollback. - - - - - Gets a transaction from this provider that is automatically closed in the end of the request. - This should be used mostly for long living readers or readers that are used at the same time as other readers. - NOTE: this can be the main or a pooled transaction depending on the SGBD. - - - - - Creates a new unmanaged connection using this provider's configuration - - - - - Executes a query using this provider's transaction manager and associates it to a given record list. - This should be used for fetching results in batches to a record list (e.g. simple and advanced queries). - - The command to execute - Record list to associate with the data reader - Brief description of the query, for audit - - - - Commits all transactions managed by this provider - - - - - Rollsback all transactions managed by this provider - - - - - Releases all transactions (pooled and main) from this provider, commiting or rollingback - depending on the value of "commit". - - True to commit the transactions, false to rollback. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Determines whether the specified , is equal to this instance. - This method will compare the database configurations of each object. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - Creates an audit log record in a secure auditing storage. This action waits until the audit log is successfully stored, otherwise an exception is raised. - If the secure auditing storage is unsupported or not configured in the current environment, the creation of the audit log record is skipped. - - Name of the operation being logged. - Message of the audit log. - String in JSON format including extra information relevant to the audit log. - - - - API used to control the use of External Database Connections - - - - - Set the Connection String for a specific Database Connection to be applied in the current Session. - - - This method will not affect queries in the current request if the connection was already used. - - The target database must have the same type as configured in Service Center (e.g. Oracle, SQL Server, MySQL). - - Requires the Platform Extensibility APIs Feature. - - Name of the Database Connection - Connection String to use - The initial database to use (effective only for Oracle databases, indicating the schema to be initialy used) - - - - Represents a command to execute queries. - - - - - Initializes a new instance of the class. - - The command. - - - - Returns the native command object used by the stack in which the application - is running. - - The native command object. - - - - Gets or sets the SQL statements to execute. - - - The command's text. - - - - - Gets or sets the command execution timeout (in seconds). - - - The command timeout. - - - - - Executes the command and returns the number of rows affected. - - The number of rows affected. - - - - Executes the query, and returns the first column of the first row in the resultset - returned by the query. Extra columns or rows are ignored. - - An object with the command resultset. - - - - Executes the command text returning the resulting . - - A reader with the command resultset. - - - - Returns the database connection associated to this command. - - A associated with this command. - - - - Adds a parameter to the command. - The parameter value is modified to a compatible database value. - - The parameter name. - The parameter associated with this command. - - - - Adds a parameter to the command with a given type and value. - The parameter value is modified to a compatible database value. - - The parameter name. - The parameter type. - The parameter value. - The parameter associated with this command. - - - - Gets the parameter with the specified name. - - Name of the parameter. - A parameter associated with this command. - - - - Frees the resources used by this object. - - - - - Represents a transaction that needs to be explicitly managed using commit and roll back - operations. - Can be used for selecting, inserting, updating, and deleting data. - - - - - Returns the native transaction object used by the stack in which the application is running. - It allows to reuse existing code that receives a native transaction object as parameter. - - The native transaction object. - - - - Commits the transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending state and closes the transaction. - - - - - Creates an empty command to be executed in this transaction. - - A with no SQL associated. - - - - Creates a command to be executed in this transaction. - - The SQL to be associated to the command. - A with SQL associated. - - - - Gets the database connection associated with this transaction. - - A based on this transaction, or Null if the connection is Null. - - - - Releases the transaction and frees the resources used by this object. - - - - - Represents a connection to a database. - - - - - Returns the native connection object used by the stack in which the application is running. - It allows to reuse existing code that receives a native connection object as parameter. - - The native connection object. - - - - Creates an empty command that does not have an associated transaction. - - A with no SQL associated. - - - - Creates a command that does not have an associated transaction. - - The SQL Statement to be executed - A with SQL associated. - - - - Closes the connection to the database. - - - - - Checks if the connection is closed. - - True if the connection is closed, False otherwise. - - - - Closes the connection and frees the resources used by this object. - - - - - Creates instances to access a database. - - - - - Returns a database provider to access the system database. - Use it to query the platform metamodel. - - A to access the system database. - - - - Returns a database provider to access the database of the currently running application. - Use it to access data managed by the currently running application, or other applications - sharing the same database. - - A to access the currently running application database. - - - - Returns a database provider for a given database catalog or schema. - Use it to access data managed by applications that are configured to use this database. - - The database name. - A to access the specified database. - - - - Returns a database provider for a specific external database connection. - Use it to access data managed by external systems. - - The external database connection name. - A to access the external database connection. - - - - Provides access to a specific database. - - - - - Returns the transaction that starts at the beginning of the web request and is - committed when the response is sent to the client. - This transaction cannot be committed or rolled back inside extensions. - - The transaction associated with the web request. - - - - Returns a new transaction that needs to be managed explicitly using a commit or - roll back. - - A - - - - Returns an SqlHelper instance targeted at the manipulation of SQL statements members - - - An SqlHelper instance - - - - - Represents the query parameters associated with a command. - - - - - Returns the native parameter object used by the stack in which the application is running. - - The native parameter object. - - - - Gets or sets the parameter value. - - - The parameter's value. - - - - - Gets or sets the database type. - - - The database type of the parameter. - - - - - Sets the size of the parameter. - - - The size of the parameter. - - - - - Represents the transaction that is automatically managed by the platform. - The transaction starts at the beginning of the web request, and is committed - when the response is sent to the client. - Can be used for selecting, inserting, updating, and deleting data. - - - - - Returns the native transaction object used by the stack in which the application is running. - It allows to reuse existing code that receives a native data object as parameter. - - The native transaction object. - - - - Checks if the transaction exists, and frees the resources associated with it. - Since this transaction is automatically managed by the platform, no commit or rollback - operations are performed when releasing the transaction. - - - - - Creates an empty command to be executed in this transaction. - - A with no SQL associated. - - - - Creates a command to be executed in this transaction. - - The SQL to be associated to the command. - A with SQL associated. - - - - Gets the database connection associated with this transaction. - - A based on this transaction, or Null if the connection is Null. - - - - Releases the transaction and frees the resources used by this object. - - - - - Functions to assist on the manipulation of SQL statements members - - - - - Escapes an identifier so it can be used in an query. - - The identifier to escape. - The identifier escaped. - - - - Prefixes a parameter name in order to be used as a placeholder in a query or to be used as the - defacto parameter name when creating command parameters. - - The parameter name to prefix. - The prefixed parameter name. - - - - Class to perform the deletion of processes. - - - - - Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. - The information that is deleted is all the logging of: process instances, activities instances, input parameters values, output parameters values, processes instances executed within other process instances, etc. - - True if the operation deleted all the processes that fit the criteria. - - - - Determines whether there are processes to delete. - - true if there are processes to delete, false otherwise. - - - - API used to obtain data from RequestEvents - - - - - Returns the current RequestKey, consistent with RequestEvents being logged in the database for the current request. - If there is no RequestKey available in the current context, an empty string is returned. - - A string containing the request key. - - - - API used to access information about the current session - - - - - Based on the session cookie from the current HTTP request, this method will look - in the session database for the UserId of the user currently logged in the user - provider of the application that calls this method. - Will return 0 if: - There is no session cookie on the HTTP request. - There is no user logged in with the same session cookie. - There is a user logged in, but only in a different user provider. - - The UserId of the user currently logged in. - - - - Gets User information of the authenticated user for a Mobile Application - This method is designed for interoperability scenarios where you need to embed a Responsive screen in your mobile application - - Returns the user identifier, or NullIdentifier() (userId = 0) if user is not logged in - True if the login is persistent - - - - Gets the token that uniquely identifies the authenticated session for a Mobile Application - This method can be used in when managing server side session stores where you need to uniquely identify a user authenticated session - - Returns the session identifier or NullTextIdentifier() if no user is logged in - - - Class responsible for manipulating Users and Groups database cache for an OutSystems Application - - - Gets a representation of the User identified by parameter. - The User identifier. - The User representation. - If is equals or bellow 0 - - - Creates a User based on the record. - The User record. - Created User Identifier. - In case the caller is an Isolated Application and the Record doesn't have a valid Id defined. - - - Creates or Updates a User based on the record. - The User record. - Created User Identifier. - In case the caller is an Isolated Application the User will be created with the provided record identifier, otherwise a new identifier will be generated. - - - Deletes the User identified by the paramenter. - The User identifier. - - true if the User was successfully found and deleted, false otherwise. - If is equals or bellow 0 - - - Updates the User identified by the record identifier. - The User record. - If identifier is equals or bellow 0 - - - Adds the User identified by to all Groups identified by removing - the User from all remaining Groups. - The User identifier. - The Groups identifiers. - If is equals or bellow 0 - - - Gets a representation of the Group identified by parameter. - The Group identifier. - The Group representation. - If is equals or bellow 0 - - - Creates a Group based on the record. - The Group record. - Created Group Identifier. - In case the caller is an Isolated Application and the Record doesn't have a valid Id defined. - - - Creates or Updates a Group based on the record. - The Group record. - Created Group Identifier. - In case the caller is an Isolated Application the Group will be created with the provided record identifier, otherwise a new identifier will be generated. - - - Creates or Updates all Groups based on the records enumerable with the option to delete existing Groups. - The Group records enumerable. - Controls whenever the existing Groups should be cleaned up. - In case the caller is an Isolated Application the Groups will be created with the provided record identifier, otherwise a new identifier will be generated. - In case the caller is not an Isolated Application existing Groups won't be deleted even if is true - - - Deletes the Group identified by the paramenter. - The Group identifier. - - true if the Group was successfully found and deleted, false otherwise. - If is equals or bellow 0 - - - Updates the Group identified by the record identifier. - The Group record. - If identifier is equals or bellow 0 - - - Adds the User identified by to the Group identified by . - The Group identifier. - The User identifier. - - - Removes the User identified by from the Group identified by . - The Group identifier. - The User identifier. - - - Checks if the Group identified by has the User identified by associated. - The Group identifier. - The User identifier. - - true if the Group has the User, false otherwise - - - Adds all Users identified by to the Group identified by removing - all remaining Users from the Group. - The Group identifier. - The Users identifiers. - If is equals or bellow 0 - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataConvert.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataConvert.xml deleted file mode 100644 index b7a52cee..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataConvert.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - OutSystems.NssDataGridDataConvert - - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - - - - DEPRECATED - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data and metadata for the data grid - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataDigest.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataDigest.xml deleted file mode 100644 index 71c4079c..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridDataDigest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - OutSystems.NssDataGridDataDigest - - - - - Given a generic object, returns a JSON containing the meta information of the object, namely fields name and data type. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Given a generic object, returns a JSON containing the meta information of the object, namely fields name and data type. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.dll deleted file mode 100644 index 8c2ef633..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.pdb b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.pdb deleted file mode 100644 index 90482a1c..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.pdb and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.xml deleted file mode 100644 index a474b955..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataGridUtils.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - OutSystems.NssDataGridUtils - - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - - - - DEPRECATED - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Prepares your data to be used in the Data Grid. - - List or record to get meta data from. - JSON with the data and metadata for the data grid - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataStructure.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataStructure.xml deleted file mode 100644 index 50eb0dcd..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.NssDataStructure.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - OutSystems.NssDataStructure - - - - - Given a generic object, returns a JSON containing the meta information of the object, namely fields name and data type. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - - Given a generic object, returns a JSON containing the meta information of the object, namely fields name and data type. - - List or record to get meta data from. - JSON with the data for the data grid - JSON with the structure of the object passed. - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.dll deleted file mode 100644 index ef8c230e..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.xml deleted file mode 100644 index dba8b3b0..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.REST.API.xml +++ /dev/null @@ -1,483 +0,0 @@ - - - - OutSystems.REST.API - - - - - Utility class containing converters used to map between JSON and native data types. - - - - - - This converter is necessary to ensure that decimals without any decimal places are not sent with a trailing .0 - - See http://stackoverflow.com/questions/21153381/json-net-serializing-float-double-with-minimal-decimal-places-i-e-no-redundant for details. - - - - - Test whether the received type can be converted to and from JSON by this converter. - - the type to check. - true if objectType is the (optionally nullable) decimal type, false otherwise. - - - - Reads the JSON representation of the object. - - The JsonReader from where to read. - Type of the object to be read. - The existing value of object being read. - The calling serializer. - The read object. - - - - Writes the representation of the received object to the serializer. - - JsonWriter where to write to. - Object to serialize. - The calling serializer. - - - - Converter capable of transforming to Unix timestamps and the other way around. - - This representation is also known as POSIX or Epoch time and is defined as the number of seconds that have elapsed since 00:00:00 UTC, 1 January 1970. - - - - - - Reads the JSON representation of a DateTime. - - The JsonReader from where to read. - Type of the object to be read. - The existing value of object being read. - The calling serializer. - The read DateTime object. - - - - Writes the representation of the received date to the serializer. - - JsonWriter where to write to. - DateTime to serialize. - The calling serializer. - - - - A JSON converter which parses and writes in the WCF format. - - It is especially useful for applications using the Windows Communication Foundation. - - - - - Reads the JSON representation of a DateTime. - - The JsonReader from where to read. - Type of the object to be read. - The existing value of object being read. - The calling serializer. - The read DateTime object. - - - - Writes the representation of the received date to the serializer. - - JsonWriter where to write to. - DateTime to serialize. - The calling serializer. - - - - Stores configuration parameters on how to connect to a REST API. Each Consume REST API has the corresponding associated configuration. - - - - - The URL of the REST web service. - - - - - The username to use on requests. - - - - - User's password for the service. - - - - - Controls whether errors should be traced or not. - - - - - Controls whether a request should be traced, even if finishes normally. - - - - - Controls whether a request should be traced. - - - - - Constructs a new Configuration object with the given parameters. - - URL to connect to. - Username to use. - The user's password. - bool indicating wether errors should be traced at runtime. - bool indicating wether tracing should enable at runtime, even when errors do not occurr. - - - - Return a previously defined REST API Configuration, based on its Service Studio key and eSpace Id. - - The Service Studio key of the REST API source. - The eSpace Id. - The eSpace Key. - - - - The corresponding Configuration. - - - - Helper class with methods related to HTTP and URL handling. - - - - - On the passed HTTP Request, set an header field to some value. - - Request to update. - Header field to set. - Value for the header field. - - - - Encode the URL received, escaping illegal characters. - - The URL. - urlToEncode, appropriately encoded. - - - - Encode URL query parameters, escaping prohibited characters. - - Text to encode. - urlToEncode, appropriately encoded. - - - - Utility class containing methods to parse and write dates in the WCF format. - - It is especially useful for applications using the Windows Communication Foundation. - - - - Parse the received input string as a WCF datetime and return an object representing it. - - Text to parse. - The read datetime. - - - - Return the textual representation of the input datetime. - - Datetime to convert to string. - a string of date in the WCF format. - - - - Provides access to the HTTP response object received when consuming a REST API method. - - - - - Returns the response object used by a REST API. - This method should only be used inside the OnBeforeResponseAdvanced callback of a REST API. - - The REST API response, or null when used outside the OnBeforeResponseAdvanced callback. - - - - Returns the name of the REST API Method that invoked the extension. - - - - - Returns the native HttpWebResponse object that resulted from the web request. - - - - - Returns the message body of the web response as binary content. - - - - - Returns the message body of the web response as a string, respecting the encoding specified in the Content-Type header. - - - - - Sets the message body of the web response. - - The body of the web request. - - - - Sets the message body of the web response. - If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made - to the message body. - - The body of the web request. - - - - Returns the status code of the web response. - - - - - Sets the status code of the web response with statusCode. - - The status code of the web response. - - - - Returns the status line of the web response. - - - - - Sets the status line of the web response with statusLine. - - The status line of the web response. - - - - Returns the headers of the web response. It's possible to add, change or remove headers. - - - - - Provides access to the HTTP request object used for consuming a REST API method. - - - - - Returns the request object used by a REST API. - This method should only be used inside the OnBeforeRequestAdvanced callback of a REST API. - - The REST API request, or null when used outside the OnBeforeRequestAdvanced callback. - - - - Returns the name of the REST API Method that invoked the extension. - - - - - Returns the native HttpWebRequest object used to perform the web request. - - - - - Returns the message body of the web request as binary content. - - - - - Returns the message body of the web request as a string. - - - - - Sets the message body of the web request with binary content. - - The body of the web request. - - - - Sets the message body of the web request. - If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made - to the message body. - - The body of the web request. - - - - Returns the URL of the web request. - - - - - Sets the URL of the web request with url. If an HttpWebRequest has been previously obtained through the GetHttpWebRequest() method, it will become invalid and will have to be obtained again. - - - - - Returns the headers of the web request. It's possible to add, change or remove headers. - - - - - Internal class used to store the context of a Rest Response. - This class is for internal use only. Use the OutSystems.RuntimePublic.REST.RestResponse class instead. - - - - - Constructor for ResponseContext. - This class is for internal use only. Use the OutSystems.RuntimePublic.REST.RestResponse class instead. - - - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Returns the name of the REST API Method that invoked the extension. - - - - - Returns the native HttpWebResponse object that resulted from the web request. - - - - - Returns the message body of the web response as a string. - - - - - Sets the message body of the web response. - If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made - to the message body. - - - - - Returns the message body of the web response as binary content. - - - - - Sets the message body of the web response. - - - - - Returns the status code of the web response. - - - - - Sets the status code of the web response. - - The statuscode of the web request. - - - - Returns the status line of the web response. - - - - - Sets the status line of the web response. - - The status line of the web request. - - - - Returns the headers of the web response. - - - - - Internal class used to store the context of a Rest Request. - Should never be used directly. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. - - - - - Constructor for RequestContext. - This class is for internal use only. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. - - - - - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Returns the name of the REST API Method that invoked the extension. - - - - - Returns the HttpWebRequest object with the currently parameters. - - - - - Returns the message body of the web request as a UTF-8 string. - - - - - Sets the message body of the web request. - If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made - to the message body. - - The body of the web request. - - - - Returns the message body of the web request as binary content. - - - - - Sets the message body of the web request with binary content. - - The body of the web request. - - - - Gets the request url of web request. - - - - - Sets the request url and rebuild the HttpWebRequest object with the new URL. - - - - - Returns the headers of the web request. - - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.RuntimeCommon.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.RuntimeCommon.dll deleted file mode 100644 index ebd24b64..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.RuntimeCommon.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.dll deleted file mode 100644 index eb65620d..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.xml deleted file mode 100644 index c9a0e5be..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SAP.API.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - OutSystems.SAP.API - - - - - Internal class used to store the context of a Rest Request. - Should never be used directly. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. - - - - - Constructor for SapContext. - This class is for internal use only. Use the OutSystems.RuntimePublic.Sap.SapInvoke class instead. - - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Returns the name of the REST API Method that invoked the extension. - - - - - Returns the RfcConfigParameters. - - - - - Sets the RfcConfigParameters. - - - - - Returns the current IRfcFunction being called. - - The IRfcFunction being called. - - - - Sets the IRfcFunction. - - The IRfcFunction to be set. - - - - Provides access to the SAP Connection used for consuming a SAP Remote Function. - - - - - Returns the invoke object used by a SAP API. - This method should only be used inside the OnBeforeConnection, OnBeforeInvoke or OnAfterInvoke callbacks of a SAP API. - - The SAP API invoke, or null when used outside the OnBeforeConnection, OnBeforeInvoke or OnAfterInvoke callbacks. - - - - Returns the RfcConfigParameters that will be used to gather a RfcDestination - - The RfcConfigParameters to be used. - - - - Sets the RfcConfigParameters to be used to gather a RfcDestination. - - The rfcConfigParameters to be set. - - - - Provides access to the SAP Transactional context for SAP Remote Functions - - - - - Marks the connection's context as manually controlled allowing the user to orchestrate 2 or more function calls in the same context. - - The name of the SAP connection which context is to be manually controlled. - - - - Marks any connections' context as manually controlled allowing the user to orchestrate 2 or more function calls in the same context. - - - - - Ends a manually controlled context. - - The name of the SAP connection which context is to be terminated. - - - - Ends a manually controlled context. - - - - - Commit the work performed so far in a manually controlled context. - - The name of the SAP connection. - - - - Commit the work performed so far in a manually controlled context. - - - - - Rollback any changes made so far in a manually controlled context. - - The name of the SAP connection. - - - - Rollback any changes made so far in a manually controlled context. - - - - - Marks the connection's context as Stateless allowing the user to invoke BAPIs with implicit commits without the overhead of a stateful connection. - - The name of the SAP connection which should be Stateless. - - - - Marks any connection's context as Stateless allowing the user to invoke BAPIs with implicit commits without the overhead of a stateful connection. - - - - - Ends a Stateless region. - - The name of the SAP connection which context is to be terminated. - - - - Ends a Stateless region. - - - - - Provides access to the SAP request object used for consuming a SAP Remote Function. - - - - - Returns the invoke object used by a SAP API. - This method should only be used inside the OnBeforeConnection, OnBeforeInvoke or OnAfterInvoke callbacks of a SAP API. - - The SAP API invoke, or null when used outside the OnBeforeConnection, OnBeforeInvoke or OnAfterInvoke callbacks. - - - - Returns the current IRfcFunction being called. - This method should only be used inside the OnBeforeInvoke or OnAfterInvoke callbacks of a SAP API. - - The RfcFunction to be used. - - - diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.dll b/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.dll deleted file mode 100644 index ae600e0a..00000000 Binary files a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.dll and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.xml b/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.xml deleted file mode 100644 index 1b01f749..00000000 --- a/extension/DataGridUtils/Source/NET/Bin/OutSystems.SOAP.API.xml +++ /dev/null @@ -1,420 +0,0 @@ - - - - OutSystems.SOAP.API - - - - - Stores configuration parameters on how to connect to a SOAP API. Each Consume SOAP API has the corresponding associated configuration. - - - - - The URL of the SOAP web service. - - - - - The username to use on requests. - - - - - User's password for the service. - - - - - Controls whether errors should be traced or not. - - - - - Controls whether a request should be traced, even if finishes normally. - - - - - Controls whether a request should be traced. - - - - - Constructs a new Configuration object with the given parameters. - - URL to connect to. - Username to use. - The user's password. - bool indicating wether errors should be traced at runtime. - bool indicating wether tracing should enable at runtime, even when errors do not occurr. - - - - Return a previously defined SOAP API Configuration, based on its Service Studio key and eSpace Id. - - The Service Studio key of the SOAP API source. - The eSpace Id. - The eSpace Key. - The corresponding Configuration. - - - - Internal class used as an aid during the logging process. - This implementation can be changed without notice. - - - - - Default constructor, invoked internally - - - - - Flag to indicate whether runtime validations were performed or not - - - - - Logging endpoint behavior to save the request message and http headers sent - This implementation can be changed without notice. - - - - - The reply message of the SOAP web service call. - - - - - The reply headers of the SOAP web service call. - - - - - The status code of the SOAP web service call. - - - - - Implement to pass data at runtime to bindings to support custom behavior. - - - - - Implements a modification or extension of the client across an endpoint. - - - - - Implements a modification or extension of the service across an endpoint. - - - - - Implement to confirm that the endpoint meets some intended criteria. - In this situation, it's ensuring the order of the endpoint behaviors so that the AfterResponseLoggingBehavior runs always as the first behavior after receiving the response - - - - - Logging endpoint behavior to save the response message, http headers received and the status code - This implementation can be changed without notice. - - - - - The request message of the SOAP web service call. - - - - - The request headers of the SOAP web service call. - - - - - The status code of the SOAP web service call. - - - - - Implement to pass data at runtime to bindings to support custom behavior. - - - - - Implements a modification or extension of the client across an endpoint. - - - - - Implements a modification or extension of the service across an endpoint. - - - - - Implement to confirm that the endpoint meets some intended criteria. - In this situation, it's ensuring the order of the endpoint behaviors so that the BeforeRequestLoggingBehavior runs always as the last behavior before sending the request - - - - - Internal class used to store the context of a Soap Request. - Should never be used directly. Use the OutSystems.SOAP.API.SoapRequest class instead. - - - - - Constructor for RequestContext. - This class is for internal use only. Use the OutSystems.SOAP.API.SoapRequest class instead. - - - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Utility class containing methods to convert types. - - - - - Save the contents of a Stream to a byte array and dispose of the Stream. - This implementation can be changed without notice. - - - - - - - Compute the date time in the local time considering the "Unspecified" scenario. - This implementation can be changed without notice. - - - - - - - Returns the time in the local timezone. - - - - - - - Compute the time string. - This implementation can be changed without notice. - - - - - - - Compute the datetime for time string - This implementation can be changed without notice. - - - - - - - Convert a string to date. - - - - - - - Compute the date string. - This implementation can be changed without notice. - - - - - - - Provides an abstraction over Windows Communication Foundation (WCF) client implementations, which can be used to call services. - - - - - Gets the client credentials used to call an operation. - - Returns a System.ServiceModel.Description.ClientCredentials that represents the proof of identity presented by the client. - - - - Gets the target endpoint for the service to which the WCF client can connect. - - The target endpoint. - - - - Gets the underlying System.ServiceModel.IClientChannel implementation. - - The client channel for the WCF client object. - - - - Gets the current state of the System.ServiceModel.ClientBase`1 object. - - The value of the System.ServiceModel.CommunicationState of the object. - - - - Gets the inner channel used to send messages to variously configured service endpoints. - - A channel of a specified type. - - - - Provides access to the SOAP request object used for consuming a SOAP method. - - - - - Register a method that can be used to extend run-time behavior for an endpoint. - Check here for more information. - - Behavior to be registered - - - - Returns the request object used to issue a SOAP request. - This method should only be used inside the OnRequest callback of a SOAP client. - - - The SOAP request client, or null when used outside the OnRequest callback. - - - - - Returns the name of the SOAP Method that invoked the extension. - - Name of the SOAP Method that invoked the extension. - - - - Class with useful methods related to SOAP. - - - Class with useful methods related to SOAP. - - - - - Class with useful methods related to XML elements (any, anyAttribute, etc.). Internal. - - - - - Internal method - - - - - - - Internal method - - - - - - - Internal method - - - - - - - - Internal method - - - - - - - Internal method - - - - - - - Internal method - - - - - - - Internal method - - - - - - - Internal method - - - - - - - Internal method - - - - - - - Class with useful methods related to enumerations. - - - - - Method to get the original enumeration value - - - - - - - - Method to get the original enumeration value - - - - - - - Method to get the original enumeration values - - - - - - - Method to get a value from a enumeration - - - - - - - Method to get the list of names from a flag enumeration - - - - - - diff --git a/extension/DataGridUtils/Source/NET/DataGridUtils.cs b/extension/DataGridUtils/Source/NET/DataGridUtils.cs index 2d5fad98..e12e78dd 100644 --- a/extension/DataGridUtils/Source/NET/DataGridUtils.cs +++ b/extension/DataGridUtils/Source/NET/DataGridUtils.cs @@ -3,6 +3,17 @@ namespace OutSystems.NssDataGridUtils { public class CssDataGridUtils: IssDataGridUtils { + /// + /// Converts the data to JSON. + /// + /// The data to convert. + /// The JSON representation of the data. + /// The metadata of the data. + private void ConvertDataToJSON(object ssData, out string ssDataJSON, out string ssDataMetadata) { + ObtainMetadata.fromObject(ssData, out ssDataMetadata); + temp_ardoJSON.OutSystemsObjToJSON(ssData, 3, out ssDataJSON); + } + /// /// Prepares your data to be used in the Data Grid. /// @@ -10,8 +21,7 @@ public class CssDataGridUtils: IssDataGridUtils { /// JSON with the data for the data grid /// JSON with the structure of the object passed. public void MssConvertData2JSON_deprecated(object ssData, out string ssDataJSON, out string ssDataMetadata) { - ObtainMetadata.fromObject(ssData, out ssDataMetadata); - temp_ardoJSON.OutSystemsObjToJSON(ssData, 3, out ssDataJSON); + ConvertDataToJSON(ssData, out ssDataJSON, out ssDataMetadata); } // MssConvertData2JSON_deprecated /// @@ -20,20 +30,17 @@ public void MssConvertData2JSON_deprecated(object ssData, out string ssDataJSON, /// List or record to get meta data from. /// JSON with the data for the data grid public void MssConvertData2JSON(object ssData, out string ssDataJSON) { - System.Text.StringBuilder strbuilder = new System.Text.StringBuilder(); - System.IO.StringWriter sw = new System.IO.StringWriter(strbuilder); - - MssConvertData2JSON_deprecated(ssData, out string dataJSONtemp, out string dataMetadata); - + var sb = new System.Text.StringBuilder(); + using (var sw = new System.IO.StringWriter(sb)) using (Newtonsoft.Json.JsonWriter json = new Newtonsoft.Json.JsonTextWriter(sw)) { json.WriteStartObject(); json.WritePropertyName("data"); - json.WriteRawValue(dataJSONtemp); + temp_ardoJSON.writeData(json, ssData, 3); json.WritePropertyName("metadata"); - json.WriteRawValue(dataMetadata); + ObtainMetadata.writeMetadata(json, ssData); json.WriteEndObject(); } - ssDataJSON = strbuilder.ToString(); + ssDataJSON = sb.ToString(); } // MssConvertData2JSON } // CssDataGridUtils diff --git a/extension/DataGridUtils/Source/NET/DataGridUtils.csproj b/extension/DataGridUtils/Source/NET/DataGridUtils.csproj index 1c4f574a..6180542e 100644 --- a/extension/DataGridUtils/Source/NET/DataGridUtils.csproj +++ b/extension/DataGridUtils/Source/NET/DataGridUtils.csproj @@ -8,7 +8,7 @@ Library OutSystems.NssDataGridUtils OutSystems.NssDataGridUtils - v4.6.1 + v4.7.2 bin\ diff --git a/extension/DataGridUtils/Source/NET/ObtainMetadata.cs b/extension/DataGridUtils/Source/NET/ObtainMetadata.cs index 05488682..0376a0cc 100644 --- a/extension/DataGridUtils/Source/NET/ObtainMetadata.cs +++ b/extension/DataGridUtils/Source/NET/ObtainMetadata.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Data; using System.IO; using System.Linq; using System.Text; @@ -101,7 +100,8 @@ private static void getDataMetadata(JsonWriter json, object rec) { } else { //RGRIDT-364 - removing columns of the type BinaryData. if (typeof(Byte[]).IsAssignableFrom(field.FieldType) == false) { - addSimpleField(json, cleanAttrName(field.Name), cleanTypeName(field.FieldType), field.GetValue(rec)); + // If the time column is created in low-code, the third parameter should be: field.GetValue(rec) + addSimpleField(json, cleanAttrName(field.Name), cleanTypeName(field.FieldType), null); } } } @@ -125,23 +125,23 @@ private static void getDataMetadata(JsonWriter json, object rec) { } public static void fromObject(object data, out string dataMetadata) { - StringBuilder strbuilder = new StringBuilder(); - StringWriter sw = new StringWriter(strbuilder); - object singleItem; + var sb = new StringBuilder(); + using (var sw = new StringWriter(sb)) + using (JsonWriter json = new JsonTextWriter(sw)) { + writeMetadata(json, data); + } + dataMetadata = sb.ToString(); + } + public static void writeMetadata(JsonWriter json, object data) { Type type = data.GetType(); - - + object singleItem; if (typeof(IOSList).IsAssignableFrom(type)) { - IOSList list = (IOSList)data; - singleItem = list.Current; + singleItem = ((IOSList)data).Current; } else { singleItem = data; } - using (JsonWriter json = new JsonTextWriter(sw)) { - getDataMetadata(json, singleItem); - } - dataMetadata = strbuilder.ToString(); + getDataMetadata(json, singleItem); } } } diff --git a/extension/DataGridUtils/Source/NET/OutSystems.NssDataGridUtils.xml b/extension/DataGridUtils/Source/NET/OutSystems.NssDataGridUtils.xml index a474b955..a8323d7b 100644 --- a/extension/DataGridUtils/Source/NET/OutSystems.NssDataGridUtils.xml +++ b/extension/DataGridUtils/Source/NET/OutSystems.NssDataGridUtils.xml @@ -4,6 +4,14 @@ OutSystems.NssDataGridUtils + + + Converts the data to JSON. + + The data to convert. + The JSON representation of the data. + The metadata of the data. + Prepares your data to be used in the Data Grid. diff --git a/extension/DataGridUtils/Source/NET/obj/Release/DataGridUtils.csproj.AssemblyReference.cache b/extension/DataGridUtils/Source/NET/obj/Release/DataGridUtils.csproj.AssemblyReference.cache deleted file mode 100644 index 136ecc8d..00000000 Binary files a/extension/DataGridUtils/Source/NET/obj/Release/DataGridUtils.csproj.AssemblyReference.cache and /dev/null differ diff --git a/extension/DataGridUtils/Source/NET/temp_ardoJSON.cs b/extension/DataGridUtils/Source/NET/temp_ardoJSON.cs index ddec1b8a..ceb5ae5b 100644 --- a/extension/DataGridUtils/Source/NET/temp_ardoJSON.cs +++ b/extension/DataGridUtils/Source/NET/temp_ardoJSON.cs @@ -6,12 +6,13 @@ using System.Text; using Newtonsoft.Json; using OutSystems.HubEdition.RuntimePlatform; +using System.Collections.Concurrent; using OutSystems.HubEdition.RuntimePlatform.Db; namespace OutSystems.NssDataGridUtils { public class temp_ardoJSON { private static DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); - private static Dictionary> recCache = new Dictionary>(); + private static ConcurrentDictionary> recCache = new ConcurrentDictionary>(); private abstract class FieldHolder { abstract public void set(object rec, object value); @@ -72,21 +73,16 @@ override public Type type() { } private static Dictionary getFields(Type leClass) { - if (recCache.ContainsKey(leClass)) - return recCache[leClass]; - - Dictionary fields = new Dictionary(); - foreach (var field in leClass.GetFields().Where(f => f.Name.StartsWith("ss"))) { - fields.Add(field.Name.Substring(2).ToLower(), new FieldField(field)); - } - - foreach (var prop in leClass.GetProperties().Where(p => p.Name.StartsWith("ss"))) { - fields.Add(prop.Name.Substring(2).ToLower(), new PropField(prop)); - } - - recCache[leClass] = fields; - - return fields; + return recCache.GetOrAdd(leClass, t => { + var fields = new Dictionary(); + foreach (var field in t.GetFields().Where(f => f.Name.StartsWith("ss"))) { + fields.Add(field.Name.Substring(2).ToLower(), new FieldField(field)); + } + foreach (var prop in t.GetProperties().Where(p => p.Name.StartsWith("ss"))) { + fields.Add(prop.Name.Substring(2).ToLower(), new PropField(prop)); + } + return fields; + }); } private static void writeRecord(JsonWriter json, object rec, int dateFormat) { @@ -113,12 +109,17 @@ private static void writeRecord(JsonWriter json, object rec, int dateFormat) { } } catch { } - // structures and its attributes foreach (var field in leClass.GetFields().Where(f => f.Name.StartsWith("ss"))) { - // we must check if field is Record or RecordList, if they are, we remove ssEN (ssEntity) or ssST (ssStructure); - clearStart = typeof(IRecord).IsAssignableFrom(field.FieldType) || typeof(ISimpleRecord).IsAssignableFrom(field.FieldType) ? - field.Name.StartsWith("ssEN") || field.Name.StartsWith("ssST") : - false; + // we must check if field is Record or RecordList, if they are, we remove ssEN(ssEntity) or ssST(ssStructure); + clearStart = + ( + typeof(IRecord).IsAssignableFrom(field.FieldType) || + typeof(ISimpleRecord).IsAssignableFrom(field.FieldType) + ) && ( + field.Name.StartsWith("ssEN") || + field.Name.StartsWith("ssST") + ); + //RGRIDT-364 - removing columns of the type BinaryData. if (typeof(Byte[]).IsAssignableFrom(field.FieldType) == false) { json.WritePropertyName(field.Name.Substring(clearStart ? 4 : 2)); @@ -126,7 +127,6 @@ private static void writeRecord(JsonWriter json, object rec, int dateFormat) { } } - // entities and its attributes foreach (var property in leClass.GetProperties().Where(p => p.Name.StartsWith("ss"))) { //RGRIDT-364 - removing columns of the type BinaryData. if (typeof(Byte[]).IsAssignableFrom(property.PropertyType) == false) { @@ -168,14 +168,14 @@ private static void writeValue(JsonWriter json, Type type, object val, int dateF } else { + //Add dates from the ArrangeData action should be returned in UTC + dv = dv.ToUniversalTime(); if (dv.Hour == 0 && dv.Minute == 0 && dv.Second == 0) // extra milisecond check ? { json.WriteValue(dv.ToString("yyyy-MM-dd")); } else { - //Add dates from the ArrangeData action should be returned in UTC - dv = dv.ToUniversalTime(); json.WriteValue(dv.ToString("yyyy-MM-dd'T'HH:mm:ssZ")); } } @@ -214,24 +214,27 @@ private static void writeValue(JsonWriter json, Type type, object val, int dateF } l.StartIteration(); - json.WriteStartArray(); - while (!l.Eof) - { - if (!isRecord) - { - writeValue(json, elementType, l.Current, dateFormat); - } - else if (flatten) + try { + json.WriteStartArray(); + while (!l.Eof) { - writeValue(json, f1.type(), f1.get(f.GetValue(l.Current)), dateFormat); - } - else - { - writeRecord(json, l.Current, dateFormat); + if (!isRecord) + { + writeValue(json, elementType, l.Current, dateFormat); + } + else if (flatten) + { + writeValue(json, f1.type(), f1.get(f.GetValue(l.Current)), dateFormat); + } + else + { + writeRecord(json, l.Current, dateFormat); + } + l.Advance(); } - l.Advance(); + } finally { + l.EndIteration(); } - l.EndIteration(); json.WriteEndArray(); } else // default does a good job for most of the cases @@ -242,8 +245,8 @@ private static void writeValue(JsonWriter json, Type type, object val, int dateF public static void OutSystemsObjToJSON(object ssValue, int ssDateFormat, out string ssJSON) { ssJSON = string.Empty; StringBuilder sb = new StringBuilder(); - StringWriter sw = new StringWriter(sb); + using(StringWriter sw = new StringWriter(sb)) using (JsonWriter json = new JsonTextWriter(sw)) { writeValue(json, ssValue.GetType(), ssValue, ssDateFormat); } @@ -251,5 +254,9 @@ public static void OutSystemsObjToJSON(object ssValue, int ssDateFormat, out str ssJSON = sb.ToString(); } // MssOutSystems2JSON + public static void writeData(JsonWriter json, object ssValue, int ssDateFormat) { + writeValue(json, ssValue.GetType(), ssValue, ssDateFormat); + } + } } diff --git a/extension/DataGridUtils/Templates/NET/AssemblyInfo.cs b/extension/DataGridUtils/Templates/NET/AssemblyInfo.cs index ed1aeb2c..250c3fa7 100644 --- a/extension/DataGridUtils/Templates/NET/AssemblyInfo.cs +++ b/extension/DataGridUtils/Templates/NET/AssemblyInfo.cs @@ -16,8 +16,8 @@ [assembly: ComVisible(false)] [assembly: CLSCompliantAttribute(false)] -[assembly: AssemblyVersion("11.14.0.33133")] -[assembly: AssemblyFileVersion("11.14.0.33133")] +[assembly: AssemblyVersion("11.40.1.46624")] +[assembly: AssemblyFileVersion("11.40.1.46624")] [assembly: NeutralResourcesLanguage("")] diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll index 309ecbb5..84d8c2c5 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml index 4ec3ab64..2b71fafa 100644 --- a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml +++ b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.DatabaseAbstractionLayer.xml @@ -4,6 +4,69 @@ OutSystems.HubEdition.DatabaseAbstractionLayer + + + Gets the value associated with the specified key. + Similar behavior of the TryGetValue, the only difference being that no information is returned about the key existence. + + + The key of the value to get. + The default value to return when the key is not found or if it was not possible to convert to the T type + + + + + Adds the specified key and value to the settings storage. + + + The key of the element to set. + The value of the element to set. The value cannot be null, even for reference types. + + + + Gets the value associated with the specified key. + + + The key of the value to get. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the defaultValue value. + The default value to return when the key is not found or if it was not possible to convert to the T type + + + + + Represents the storage of additional settings that a database provider can consider. + This is can be used to stored configurations that are not being provided via the normal DatabaseConfiguration. + When possible DatabaseConfiguration should be used instead. + + + + + Gets the value associated with the specified key. + Similar behavior of the TryGetValue, the only difference being that no information is returned about the key existence. + + + The key of the value to get. + The default value to return when the key is not found or if it was not possible to convert to the T type + + + + + Adds the specified key and value to the settings storage. + + + The key of the element to set. + The value of the element to set. The value cannot be null, even for reference types. + + + + Gets the value associated with the specified key. + + + The key of the value to get. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the defaultValue value. + The default value to return when the key is not found or if it was not possible to convert to the T type + + Returns a unique identifier of the database provider, used to identify it as a plugin @@ -3208,6 +3271,226 @@ The data types. + + + Helper class to ensure we can use nullable structs/enums with generics.

+ Note that we can't force to be (which would be the ideal) as enums don't implement it. + This forces uses to override without any enforcement from the type system to ensure that uses of work as intended. +
+ A struct/enum. +
+ + + The main objective of this class is to standardise access and storage of Version and Engine Database Properties.

+ These properties are ensured to be cached, avoiding unnecessary accesses to the Database (or to whichever other datasource these properties will be obtained from).

+ Additionally, error messages are also uniformised, aiming to provide simple but helpful explanations of why a Version or Engine is not supported.

+ Although this class is currently locked to only two Database Properties, it could easily be modified to support more. +
+ Represents the Server Version Property. Must be a class and implement IComparable. + Represents the Server Engine Property. Must be a class and implement IComparable. +
+ + + The instance associated with this service. + + + + + The lock object that will be used to protect the Server Version property. + + + + + The lock object that will be used to protect the Server Engine property. + + + + + Single construtor entrypoint for the class. Requires a as it may need to create s. + + A reference to a specific Database Provider's Database Services. Cannot be null. + Thrown if is null. + + + + Gets the Database's display name based on the 's Key. Used to prettify the various error messages. + + The Database's display name. + + + + Defines an "Unidentifiable Version". This is for scenarios where, for some reason, we were unable to retrieve the Database's version and want to store it as such. + For instance, for the type it would make sense for it to be new Version(0,0,0,0) + + The value of type that represents an "Unidentifiable Version". + + + + Defines an "Unidentifiable Engine". This is for scenarios where, for some reason, we were unable to retrieve the Database's engine and want to store it as such. + For instance, for a type it would make sense for it to be "N/A". + + The value of type that represents an "Unidentifiable Engine". + + + + The minimum Version that should be supported/required by the Database Provider. + + The value of type that represents the "Minimum Required Version". + + + + The maximum Version that should be supported by the Database Provider. + + The value of type that represents the "Maximum Supported Version". + + + + The set of Engines that are supported by the Database Provider. A "null" represents that all Engines are supported. + + An of type with the Engines that should be supported. + + + + Get end-user friendly message warning that the Database's Version was unidentifiable. + + The message. + + + + Get end-user friendly message warning that the Database's Engine was unidentifiable. + + The message. + + + + Get end-user friendly message warning that the Database's Version is unsupported. + + The obtained Database Version for the currently configured Database. + The message. If is overriden (with something different from "null") the message will clearly state the "Maximum Supported Version". + + + + Get end-user friendly message warning that the Database's Engine is unsupported. + + The obtained Database Engine for the currently configured Database. + The message.> + + + + Overridable function to define which s thrown by should be ignored, logged and transformed into an "Unidentifiable Version" (as defined by ).

+ Note that we can't enforce at compile time that all Types in this ISet actually inherit from Exception. +
+ An containing the Exceptions that should be transformed into an "Unidentifiable Version". +
+ + + Overridable function to define which s thrown by should be ignored, logged and transformed into an "Unidentifiable Engine" (as defined by ).

+ Note that we can't enforce at compile time that all Types in this ISet actually inherit from Exception. +
+ An containing the Exceptions that should be transformed into an "Unidentifiable Engine". +
+ + + Private function to safely obtain the value of a given Database Property - .

+ It abstracts: + + Lock over to ensure thread safety (avoiding unecessary executions of ). + Obtaining a connection if none is given. + Transforming configured exceptions () into an "unidentifiable property" (either or ). + +
+ The type of one the Properties associated with this class. + The instance associated with the service. + The object used to lock the code execution of . Each property must have its own lock object. + A reference to the property we want to obtain. If it is "null" it means it is not cached and we need to use , otherwise we simply return it. + The function reference that will do the actual work to obtain the Database property.

Either or . + The function that returns the "unsupported error message" for the property - - we are checking (e.g. ). + The set of Exception types that the function will catch and transform into .

This is will be a runtime check.

Either or . + The function that returns the "unidentifiable property" associated with the property - - we are checking (e.g. ). + An optional that will be passed to .

If it is not "null" it should be used and never disposed. If it is "null", a fresh connection will be obtained from the connection pool (with from ) and disposed after use. + +
+ + + Helper function that simplifies getting the Database's version value as a object, a common use-case. If no regex is given, a default will be used. + + Connection to the currently configured database. It is not guaranteed that the connection will be usable.

It should be used and never disposed. + The SQL statement that returns the relevant Database Engine Version information. + Is optional. If not given or null, will default to a regex that captures version numbers with the format A.B(.C)?(.D)? - e.g. 10.1 | 10.1.2 | 10.1.2.3 are all valid versions; 10.1.2.3.4 | 10.1.2.3.4.5 are valid, but .4 / .4.5 would be ignored. Anything else will be considered unidentifiable. Note that always requires the format A.B at the very least. + The version number captured from the Database as a object. +
+ + + Overridable function to define the Database Provider specific logic which obtains the Database's Version. + + Connection to the currently configured database. It is not guaranteed that the connection will be usable.

It should be used and never disposed. + A value of type that contains either: the actual Database Version of the currently configured Database or a representation of an "Unidentifiable Version" (as defined by ). +
+ + + Internal override of . Needs an explicit as it can be called from different flows ( vs. ) with different semantics depending if it is null or not.

+ It should take the value obtained from and save it to . +
+ Will be used further down by (inside ).

If it is not "null" it should be used and never disposed. If it is "null", a fresh connection will be obtained from the connection pool (with from ) and disposed after use. + A value of type that contains either: the actual Database Version of the currently configured Database or a representation of an "Unidentifiable Version" (as defined by ). +
+ + + Returns the value of the Database Version. Value will be cached after being obtained. + + A value of type that contains either: the actual Database Version of the currently configured Database or a representation of an "Unidentifiable Version" (as defined by ) + + + + Overridable function to define the Database Provider specific logic which obtains the Database's Engine. + + Connection to the currently configured database. It is not guaranteed that the connection will be usable.

It should be used and never disposed. + A value of type that contains either: the actual Database Engine of the currently configured Database or a representation of an "Unidentifiable Engine" (as defined by ). +
+ + + Internal override of . Needs an explicit as it can be called from different flows ( vs. ) with different semanticss depending if it is null or not.

+ It should take the value obtained from and save it to . +
+ Will be used further down by (inside ).

If it is not "null" it should be used and never disposed. If it is "null", a fresh connection will be obtained from the connection pool (with from ) and disposed after use. + A value of type that contains either: the actual Database Engine of the currently configured Database or a representation of an "Unidentifiable Engine" (as defined by ). +
+ + + Returns the value of the Database Engine. Value will be cached after being obtained. + + A value of type that contains either: the actual Database Engine of the currently configured Database or a representation of an "Unidentifiable Engine" (as defined by ). + + + + Function to abstract the actual code that evaluates if a property is supported or not. Function references are received as arguments to avoid executing unecessary code. + + The type of one the Properties associated with this class. + Reference to the Getter function for the Property we are evaluating (e.g. ). + Reference to the function that will validate the Property we are checking. + The function that returns the "unidentifiable property" associated with the property we are checking (e.g. ). + The function that returns the "unidentifiable error message" for the property (e.g. ). + The function that returns the "unsupported error message" for the property (e.g. ). + The end-user facing message. Empty if the check is successful. If the check is unsuccessful, and depending on the error, it will be constructed with either the or the functions. + Is optional.

If given, connection will be used and should be left undisposed, the caller of this function should handle it accordingly.

If null/not given, a fresh connection will be obtained from the connection pool (with from , via the ) and disposed after use. + True if check is successful. False if not. +
+ + + Checks support for the Version of the Database that the Database Provider is configured for. + + The end-user facing friendly message detailling why the Version is not supported. + Is optional.

If given, connection will be used and should be left undisposed, the caller of this function should handle it accordingly.

If null/not given, a fresh connection will be obtained from the connection pool (with from ) and disposed after use. + True if Version of currently configured Database is supported (>= and <= ). False if not supported. +
+ + + Checks support for the Engine of the Database that the Database Provider is configured for. + + The end-user facing friendly message detailling why the Engine is not supported. + Is optional.

If given, connection will be used and should be left undisposed, the caller of this function should handle it accordingly. If null/not given, a fresh connection will be obtained from the connection pool (with from ) and disposed after use. + True if Engine of currently configured Database is supported (either the Engine is present in or is empty). False if not supported. +
Base implementation of a database service that handles the execution of statements made while connected to a database. @@ -3419,6 +3702,22 @@ Type to be checked. A boolean indicating if the type is a unicode string. + + + Checks support for the Version of the Database that the Database Provider is configured for. + + The end-user facing friendly message detailling why the Version is not supported. + Is optional. If given, connection will be used and should be left undisposed, the caller of this function should handle it accordingly. If null/not given, a fresh connection should be obtained from the connection pool and disposed after being used. + True if Version of currently configured Database is supported. False if not supported. + + + + Checks support for the Engine of the Database that the Database Provider is configured for. + + The end-user facing friendly message detailing why the Engine is not supported. + Is optional. If given, connection will be used and should be left undisposed, the caller of this function should handle it accordingly. If null/not given, a fresh connection should be obtained from the connection pool and disposed after being used. + True if Engine of currently configured Database is supported. False if not supported. + Database service that handles the execution of statements made while connected to a database. @@ -3661,6 +3960,14 @@ The introspection service. + + + Gets the IAdditionalSettings object responsable for storing any additional settings that are not being provided via the DatabaseConfiguration. + + + The additional settings storage. + + Represents a database management system that is only used internally by the platform. @@ -3726,6 +4033,23 @@ The columns of the table if an error occurs while accessing the database + + + Inspects a database server to retrieve information about its data model. + Allows pagination of the list of table sources. + + + + + Returns a list of table sources starting at specified offset with a max number of results less or equal than limit (e.g. tables, views) that belong to a given database. + + Database from which we want to fetch the list of tables + The delegate to call to see if the table source should be ignored and excluded from the returned list + Limit of results that we want to retrieve + Starting index of the results + Total number of tables + List of table sources paginated, in the given database + Returns a list of table sources (e.g. tables, views) that belong to a given database. This extension method doesn't filter any table source. @@ -5296,14 +5620,6 @@ True if Aggregates/SQL can have their Iteration Multiplicity optimized to IterationMultiplicity.Single (e.g. Lazy Loaded), False if it needs to be forced as IterationMultiplicity.Multiple (e.g. Eager Loaded). - - - In some Database stacks, adding a Foreign Key (DDL) adds an exclusive lock on both the parent and child tables. - Some database stacks support a "No validation" mode for the Foreign key creation which avoids the exclusive lock. - When this is True, the "No validation" mode should be used in the FK ddl generation. - By default this is False to maintain retrocompatibility with previous versions of the Platform. - - Returns an instance of a that can be used diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll index 3b65b467..8e1ac499 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml index a66594d8..f0a53cc9 100644 --- a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml +++ b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.HubEdition.RuntimePlatform.xml @@ -159,6 +159,89 @@ A String with the the Html code to be used in the Web Page request. + + + Create a Tenant + + + Sample request: +
+
PUT /create-tenant +
+ Username to be used in the operation + Input parameters needed for the operation + Output content coming from the CreateTenant function + A server side error occurred. +
+ + + Create a Tenant + + + Sample request: +
+
PUT /create-tenant +
+ Username to be used in the operation + Input parameters needed for the operation + Output content coming from the CreateTenant function + A server side error occurred. +
+ + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + Create a Tenant + + + Sample request: +
+
PUT /create-tenant +
+ Username to be used in the operation + Input parameters needed for the operation + Output content coming from the CreateTenant function + A server side error occurred. +
+ + + Update the tenant views + + + Sample request: +
+
POST /update-tenant-views +
+ Input parameters needed for the operation + Output content coming from the UpdateTenantViews function + A server side error occurred. +
+ + + Update the tenant views + + + Sample request: +
+
POST /update-tenant-views +
+ Input parameters needed for the operation + Output content coming from the UpdateTenantViews function + A server side error occurred. +
+ + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + Update the tenant views + + + Sample request: +
+
POST /update-tenant-views +
+ Input parameters needed for the operation + Output content coming from the UpdateTenantViews function + A server side error occurred. +
Platform Runtime Context with info to be used in current request processing. @@ -169,6 +252,79 @@ Will dispose pending objects that have been added for later disposable + + + Encrypts the text string using the specified symmetric algorithm. + + Key to use, as a byte array. + Clear text to encrypt. + Instance of the algorithm to be used. It must implement the ICryptographySymmetricAlgorithm and be registered on to be used on this helper class. + Optional options of the specific algorithm. See if the algorithm implementation provides a CreateOptions method. + The result encrypting the value with the specified . + + + + Encrypts the text string using the best symmetric algorithm available. + + Key to use, as a byte array. + Clear text to encrypt. + The result encrypting the value with the best symmetric algorithm available. + + + + Decrypt method that checks the ciphered text value to determine what algoritm to use. + This method should be used when the content has been encrypted with any of the symmetric encryption methods of this class. + + Key to use, as a byte array. + Encrypted string to decrypt. + The value decrypted. + + + + Decrypt method that uses AES256 algorithm with the Salt retrieved from the cipherText value. + This method should be used when the content has been encrypted with the EncryptWithAES256 method. + + Password to use, encoded in Base64. + Encrypted string to decrypt. + The value decrypted. + + + + Encrypt method that uses AES256 algorithm with a random Salt. + + Password to use, encoded in Base64. + Clear text to encrypt. + The result encrypting the value with an AES 256 algorithm. + + + + Encrypt method that uses AES256 algorithm with a random Salt. + + Key to use, as a byte array. + Clear text to encrypt. + The result encrypting the value with an AES 256 algorithm. + + + + Decrypt method that uses AES256 algorithm with the Salt retrieved from the cipherText value or with a fixed Salt. + This method decrypts content that has been encrypted with EncryptWithAES256, which uses a random Salt. + It also ensures retrocompatibility when the existing content was encrypted with the SymmCryptHelper.EncryptWithAES256FixedIV method, which uses a fixed Salt. + + The parameter is mandatory, the caller should check if it's not null or empty and decide if it doesn't want an exception. + Password to use. When the encrypted value is not using the fallback algorithm, it must be a Base64 valid string. + Encrypted string to decrypt. + The value decrypted. + + + + Create a new VersionedAlgorithm class + + + List of algorithms by order of security. + A more secure algorithms should always be added to the end of this list. + The first algorithm is the default to use when processing the result and the result isn't in the correct format. + + This method provide a way to obtain multiple values into the activation table @@ -665,182 +821,117 @@ HttpHandler used to send debug events to Service Studio. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + CLass to perform the deletion of processes. + - - + + + Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. + The information that is deleted is all the logging of: process instances, activities instances, input parameters values, output parameters values, processes instances executed within other process instances, etc. + + True if the operation deleted all the processes that fit the criteria. - - + + + Determines whether there are processes to delete. + + true if there are processes to delete, false otherwise. - - + + + Main method of the Processes Delete where it's define the SQL Server flow + + + + + + - - + + + Check if the process id provided is valid to delete + + + - - + + + Checks if there is more Processes to delete older than the date in olderThan parameter + + + + + The count of processes that are still to delete - - + + + Drop the temporary table if exists + + - - + + + Create a table with the ID of all processes to be deleted + + + + + + - - + + + Remove circular references for all processes to be removed + + - - + + + Delete the processes + + + + + - - + + + Execute the provided Procedure + + + + - + - CLass to perform the deletion of processes. + Main method of the Processes Delete where it's define the ORACLE SQL flow + + + + + - + - Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. - The information that is deleted is all the logging of: process instances, activities instances, input parameters values, output parameters values, processes instances executed within other process instances, etc. + Fills the global temporary table ProcIds with the ID of all processes to be deleted - True if the operation deleted all the processes that fit the criteria. + + + + + - + - Determines whether there are processes to delete. + Delete the processes - true if there are processes to delete, false otherwise. + + + + @@ -1106,13 +1197,15 @@ It does not make any distinction about cookies with different Options. - + - Validates autorization token string + It adds the application and connection into a ConcurrentDictionary to make sure + we don't send the same telemetry many times. + It returns true if the application-connection was added, false if not. - settings provider to be used in the validation - token string to be validated - validated token object + Name of the application currently executed + Name of the database connection being cached + Returns true if the application-connection was added to the cache, false if it already exists Source code from https://github.com/jsakamoto/ipaddressrange, forked by us in https://github.com/OutSystems/ipaddressrange @@ -1264,11 +1357,6 @@ Serialize to a string in JSON format the snippets to replace in the page
- - - Construct the select that gather which are the actual processes that will be deleted - - Deletes all the logged information of the instances of Processes that fit the criteria specified in the constructor. @@ -1277,6 +1365,13 @@ Transaction to use True if the operation deleted all the processes that fit the criteria. + + + Determines whether there are processes to delete. + + + + Dummys are precendent activities that did execute in the current flow. @@ -1491,7 +1586,7 @@ Closes a process, all its activities and sets the parent activity (if any) to execute - Instance of the process to close, can be a dummy instance + Instance of the process to close, can be a dummy instance Id of the process, cannot be dummy @@ -1500,7 +1595,7 @@ Closes a process, all its activities and sets the parent activity (if any) to execute - Instance of the process to close, can be a dummy instance + Instance of the process to close, can be a dummy instance Id of the process, cannot be dummy @@ -1674,6 +1769,16 @@ The runtime string representation of the desired datatype. An object created from the given String based on the data type. + + + Convert an string to object. + To be used for retrieve values from a database string field + + String to be converted + The runtime string representation of the desired datatype. + Indicates if the value needs to be hidden + An object created from the given String based on the data type. + List of hashes by order of security. A more secure hash should always be added to the end of this list. @@ -1847,11 +1952,22 @@ Site Property constructor used for Text System properties only - + Site Property constructor used by runtime settings. + + + R11BRT-764 If the site property is secret and inactive we are not going to throw an exception if we failed + to load the value since the encryption method may be different + + site property value + site property type + true if site property is secret + optional parameter, true if the site property is active + Retrieves the value of site properties + Read a record from database @@ -2249,12 +2365,13 @@ The dbConnectionProviders dictionary stores all external database connections - + Create a new instance of the class using the given IDatabaseServices. True to initialize the providers, false otherwise True to initialize the providers, false otherwise + Telemetry service for DB Provider @@ -2559,6 +2676,17 @@ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Creates new IRuntimeDatabaseConfiguration based on an IIntegrationDatabaseConfiguration but with a new connection string and database identifier if applicable. + + This method does not change the original configuration to avoid modifying an object that can be in use on other threads. A copy is created instead. + + base configurations to use + + + + Creates an audit log record in a secure auditing storage. This action waits until the audit log is successfully stored, otherwise an exception is raised. diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.dll index ef8c230e..443487bb 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.xml b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.xml index dba8b3b0..cb0ceff2 100644 --- a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.xml +++ b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.REST.API.xml @@ -4,6 +4,111 @@ OutSystems.REST.API + + + Stores configuration parameters on how to connect to a REST API. Each Consume REST API has the corresponding associated configuration. + + + + + The URL of the REST web service. + + + + + The username to use on requests. + + + + + User's password for the service. + + + + + Controls whether errors should be traced or not. + + + + + Controls whether a request should be traced, even if finishes normally. + + + + + Controls whether a request should be traced. + + + + + The clientId used for token requests when OAuth2.0 is defined. + + + + + The clientSecret used for token requests when OAuth2.0 is defined. + + + + + The endpoint to perform token requests when OAuth2.0 is defined. + + + + + Constructs a new Configuration object with the given parameters. + + URL to connect to. + Username to use. + The user's password. + bool indicating wether errors should be traced at runtime. + bool indicating wether tracing should enable at runtime, even when errors do not occurr. + clientId used for token requests when OAuth2.0 is defined. + clientSecret used for token request when OAuth2.0 is defined. + endpoint to make token requests when OAuth2.0 is defined. + + + + Return a previously defined REST API Configuration, based on its Service Studio key and eSpace Id. + + The Service Studio key of the REST API source. + The eSpace Id. + The eSpace Key. + Base URL defined in Service Studio + Username defined in Service Studio + Password defined in Service Studio + ClientId defined in Service Studio + ClientSecret defined in Service Studio + Token Url defined in Service Studio + The corresponding Configuration. + + + + Helper class with methods related to HTTP and URL handling. + + + + + On the passed HTTP Request, set an header field to some value. + + Request to update. + Header field to set. + Value for the header field. + + + + Encode the URL received, escaping illegal characters. + + The URL. + urlToEncode, appropriately encoded. + + + + Encode URL query parameters, escaping prohibited characters. + + Text to encode. + urlToEncode, appropriately encoded. + Utility class containing converters used to map between JSON and native data types. @@ -93,222 +198,331 @@ DateTime to serialize. The calling serializer. - + - Stores configuration parameters on how to connect to a REST API. Each Consume REST API has the corresponding associated configuration. + Utility class containing methods to parse and write dates in the WCF format. + It is especially useful for applications using the Windows Communication Foundation. - + - The URL of the REST web service. + Parse the received input string as a WCF datetime and return an object representing it. + Text to parse. + The read datetime. - + - The username to use on requests. + Return the textual representation of the input datetime. + Datetime to convert to string. + a string of date in the WCF format. - + - User's password for the service. + This class is intended to be used when there is an error encountered during the token request to the Authorization Server. - + - Controls whether errors should be traced or not. + Status code returned by the Authorization server. - + - Controls whether a request should be traced, even if finishes normally. + Payload of the response returned by the Authorization server. - + - Controls whether a request should be traced. + Constructs a new AuthorizationServerException object with the given parameters. - + - Constructs a new Configuration object with the given parameters. + Constructs a new AuthorizationServerException object with the given parameters when an unexpected format is returned. - URL to connect to. - Username to use. - The user's password. - bool indicating wether errors should be traced at runtime. - bool indicating wether tracing should enable at runtime, even when errors do not occurr. - + - Return a previously defined REST API Configuration, based on its Service Studio key and eSpace Id. + Constructs a new AuthorizationServerException object with the given parameters. - The Service Studio key of the REST API source. - The eSpace Id. - The eSpace Key. - - - - The corresponding Configuration. - + - Helper class with methods related to HTTP and URL handling. + Represents a contract for classes that interact with an OAuth2 authorization server. - + - On the passed HTTP Request, set an header field to some value. + Property that returns an instance with the OAuth2 configurations that are used in the token request. - Request to update. - Header field to set. - Value for the header field. - + - Encode the URL received, escaping illegal characters. + Method that sets the isForcing variable to true. + This allows us to perform a new request to the authorization server, even if the token is not expired. - The URL. - urlToEncode, appropriately encoded. - + - Encode URL query parameters, escaping prohibited characters. + Method that returns the Authorization header (token_type + access_token). + It retrieves the access_token from the authorization server. - Text to encode. - urlToEncode, appropriately encoded. - + - Utility class containing methods to parse and write dates in the WCF format. + Represents a contract for classes responsible for creating instances of IOAuth2Client implementations. - It is especially useful for applications using the Windows Communication Foundation. - + - Parse the received input string as a WCF datetime and return an object representing it. + The CreateOAuth2Client method is used to create an instance of IOAuth2Client based on the specified grant type and OAuth2Configs. + Implementing classes should provide the logic for creating the appropriate IOAuth2Client implementation based on the grant type and configuration provided. - Text to parse. - The read datetime. - + - Return the textual representation of the input datetime. + This class is intended to be used for logging HTTP requests and responses during OAuth2 access token acquisition. - Datetime to convert to string. - a string of date in the WCF format. - + - Provides access to the HTTP response object received when consuming a REST API method. + Property that holds the logged details of an HTTP request and response made during the OAuth2 access token acquisition process. - + - Returns the response object used by a REST API. - This method should only be used inside the OnBeforeResponseAdvanced callback of a REST API. + Logs the details of an HTTP request made during the OAuth2 access token acquisition process. - The REST API response, or null when used outside the OnBeforeResponseAdvanced callback. - + - Returns the name of the REST API Method that invoked the extension. + Logs the details of an HTTP response received during the OAuth2 access token acquisition process. - + - Returns the native HttpWebResponse object that resulted from the web request. + Internal class used to perform multipart-related methods. - + - Returns the message body of the web response as binary content. + Converts a Stream to byte array + - + - Returns the message body of the web response as a string, respecting the encoding specified in the Content-Type header. + Compares two multipart payloads excluding boundaries + + + - + - Sets the message body of the web response. + Get media type header value from the content-type property - The body of the web request. + - + - Sets the message body of the web response. - If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made - to the message body. + Get media type header value from the content-type property - The body of the web request. + - + - Returns the status code of the web response. + The OAuth2ClientCreator class is an implementation of the IOAuth2ClientCreator interface. + It provides the logic for creating IOAuth2Client instances based on the grant type and OAuth2Configs. - + - Sets the status code of the web response with statusCode. + It uses a switch statement to determine the grant type and create the corresponding IOAuth2Client implementation. + Currently, it handles the grant_type=client_credentials case by creating an instance of the OAuth2ClientCredentials class. - The status code of the web response. - + - Returns the status line of the web response. + Class that implements the IOAuth2Client interface, + providing the necessary functionality for interacting with an OAuth2 authorization server using the client credentials grant type. + It encapsulates the logic and operations required to manage the access_token. - + - Sets the status line of the web response with statusLine. + Public getter that returns the OAuth2Configs object associated with the OAuth2ClientCredentials instance. + It contains the OAuth2 configurations that are used in the token request. - The status line of the web response. - + - Returns the headers of the web response. It's possible to add, change or remove headers. + The internal constructor of the OAuth2ClientCredentials class is used to create an instance of the class with the provided OAuth2Configs object. - + - Provides access to the HTTP request object used for consuming a REST API method. + Method that returns the Authorization header (token_type + access_token). + It retrieves the access_token from the authorization server. - + - Returns the request object used by a REST API. - This method should only be used inside the OnBeforeRequestAdvanced callback of a REST API. + Class for logging HTTP requests and responses during client credentials grant type access token acquisition. - The REST API request, or null when used outside the OnBeforeRequestAdvanced callback. - + - Returns the name of the REST API Method that invoked the extension. + Property that holds the logged details of an HTTP request and response made during the client credentials grant type access token acquisition process. + The property is reset after each request/response. - + - Returns the native HttpWebRequest object used to perform the web request. + The internal constructor of the OAuth2ClientCredentialsLogger class is used to create an instance of the class. - + - Returns the message body of the web request as binary content. + Logs the details of an HTTP request made during the client credentials grant type access token acquisition process. + The Authorization header is redacted. - + - Returns the message body of the web request as a string. + Logs the details of an HTTP response received during the client credentials grant type access token acquisition process. + The response body is redacted. - + - Sets the message body of the web request with binary content. + Class that contains the properties used in the token request to obtain an access_token. - The body of the web request. - + + + Authorization Server's endpoint used to perform the token request. + + + + + App identifier issued by the third-party during the app registration. + + + + + Secret issued by the third-party during the app registration. + + + + + The scopes of the access request. + + + + + How to send the clientId and clientSecret for authorization. + + + + + Constructs a new OAuth2Configs object with the given parameters. + + + + + Constructs a new OAuth2Configs object with the given parameters. + + + + + Used to determine whether the current instance of the OAuth2Configs object is equal to another object. + + + + + Used to compute a hash code value for the current instance of the OAuth2Configs object. + + + + + Validates the pre-conditions of the OAuth2Configs object to ensure its properties are valid. + + + + + The access_token issued by the authorization server. + + + + + The lifetime in seconds of the access_token. + + + + + How to send the clientId and clientSecret for authorization. + + + + + Send in the header in base64. + + + + + Send in body. + + + + + OAuth2 grant types. + + + + + grant_type=client_credentials. + + + + + Internal class used to store the context of a Rest Request. + Should never be used directly. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. + + + + + Constructor for RequestContext. + This class is for internal use only. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. + + + + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Returns the name of the REST API Method that invoked the extension. + + + + + Returns the HttpWebRequest object with the currently parameters. + + + + + Returns the message body of the web request as a UTF-8 string. + + + Sets the message body of the web request. If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made @@ -316,19 +530,30 @@ The body of the web request. - + - Returns the URL of the web request. + Returns the message body of the web request as binary content. - + - Sets the URL of the web request with url. If an HttpWebRequest has been previously obtained through the GetHttpWebRequest() method, it will become invalid and will have to be obtained again. + Sets the message body of the web request with binary content. + The body of the web request. - + - Returns the headers of the web request. It's possible to add, change or remove headers. + Gets the request url of web request. + + + + + Sets the request url and rebuild the HttpWebRequest object with the new URL. + + + + + Returns the headers of the web request. @@ -409,43 +634,45 @@ Returns the headers of the web response. - + - Internal class used to store the context of a Rest Request. - Should never be used directly. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. + Provides access to the HTTP request object used for consuming a REST API method. - + - Constructor for RequestContext. - This class is for internal use only. Use the OutSystems.RuntimePublic.REST.RestRequest class instead. + Returns the request object used by a REST API. + This method should only be used inside the OnBeforeRequestAdvanced callback of a REST API. - - - - + The REST API request, or null when used outside the OnBeforeRequestAdvanced callback. - + - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + Returns the name of the REST API Method that invoked the extension. - + - Returns the name of the REST API Method that invoked the extension. + Returns the native HttpWebRequest object used to perform the web request. - + - Returns the HttpWebRequest object with the currently parameters. + Returns the message body of the web request as binary content. - + - Returns the message body of the web request as a UTF-8 string. + Returns the message body of the web request as a string. - + + + Sets the message body of the web request with binary content. + + The body of the web request. + + Sets the message body of the web request. If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made @@ -453,30 +680,92 @@ The body of the web request. - + - Returns the message body of the web request as binary content. + Returns the URL of the web request. - + - Sets the message body of the web request with binary content. + Sets the URL of the web request with url. If an HttpWebRequest has been previously obtained through the GetHttpWebRequest() method, it will become invalid and will have to be obtained again. - The body of the web request. - + - Gets the request url of web request. + Returns the headers of the web request. It's possible to add, change or remove headers. - + - Sets the request url and rebuild the HttpWebRequest object with the new URL. + Provides access to the HTTP response object received when consuming a REST API method. - + - Returns the headers of the web request. + Returns the response object used by a REST API. + This method should only be used inside the OnBeforeResponseAdvanced callback of a REST API. + + The REST API response, or null when used outside the OnBeforeResponseAdvanced callback. + + + + Returns the name of the REST API Method that invoked the extension. + + + + + Returns the native HttpWebResponse object that resulted from the web request. + + + + + Returns the message body of the web response as binary content. + + + + + Returns the message body of the web response as a string, respecting the encoding specified in the Content-Type header. + + + + + Sets the message body of the web response. + + The body of the web request. + + + + Sets the message body of the web response. + If the REST API Method has its 'Request Format' property set to 'Binary', no changes are made + to the message body. + + The body of the web request. + + + + Returns the status code of the web response. + + + + + Sets the status code of the web response with statusCode. + + The status code of the web response. + + + + Returns the status line of the web response. + + + + + Sets the status line of the web response with statusLine. + + The status line of the web response. + + + + Returns the headers of the web response. It's possible to add, change or remove headers. diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.RuntimeCommon.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.RuntimeCommon.dll index ebd24b64..bbf3acea 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.RuntimeCommon.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.RuntimeCommon.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SAP.API.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SAP.API.dll index eb65620d..d12fc179 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SAP.API.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SAP.API.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.dll b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.dll index ae600e0a..20ca56bf 100644 Binary files a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.dll and b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.dll differ diff --git a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.xml b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.xml index 1b01f749..4d7b3151 100644 --- a/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.xml +++ b/extension/DataGridUtils/Templates/NET/Bin/OutSystems.SOAP.API.xml @@ -58,22 +58,6 @@ The eSpace Key. The corresponding Configuration. - - - Internal class used as an aid during the logging process. - This implementation can be changed without notice. - - - - - Default constructor, invoked internally - - - - - Flag to indicate whether runtime validations were performed or not - - Logging endpoint behavior to save the request message and http headers sent @@ -158,6 +142,22 @@ In this situation, it's ensuring the order of the endpoint behaviors so that the BeforeRequestLoggingBehavior runs always as the last behavior before sending the request + + + Internal class used as an aid during the logging process. + This implementation can be changed without notice. + + + + + Default constructor, invoked internally + + + + + Flag to indicate whether runtime validations were performed or not + + Internal class used to store the context of a Soap Request. @@ -190,6 +190,15 @@ + + + Save the contents of a Stream to string, based on a given encoding, and dispose of the Stream. + This implementation can be changed without notice. + + + + + Compute the date time in the local time considering the "Unspecified" scenario. @@ -306,6 +315,47 @@ Class with useful methods related to SOAP. + + + Class with useful methods related to enumerations. + + + + + Method to get the original enumeration value + + + + + + + + Method to get the original enumeration value + + + + + + + Method to get the original enumeration values + + + + + + + Method to get a value from a enumeration + + + + + + + Method to get the list of names from a flag enumeration + + + + Class with useful methods related to XML elements (any, anyAttribute, etc.). Internal. @@ -375,46 +425,5 @@ - - - Class with useful methods related to enumerations. - - - - - Method to get the original enumeration value - - - - - - - - Method to get the original enumeration value - - - - - - - Method to get the original enumeration values - - - - - - - Method to get a value from a enumeration - - - - - - - Method to get the list of names from a flag enumeration - - - - diff --git a/extension/tests/ConvertData2JSONTests.cs b/extension/tests/ConvertData2JSONTests.cs new file mode 100644 index 00000000..6be4313e --- /dev/null +++ b/extension/tests/ConvertData2JSONTests.cs @@ -0,0 +1,207 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Runtime.Serialization; +using System.Xml; +using OutSystems.HubEdition.RuntimePlatform; +using OutSystems.HubEdition.RuntimePlatform.Db; +using OutSystems.NssDataGridUtils; +using OutSystems.ObjectKeys; + +namespace DataGridUtils.Tests +{ + #region Mock OutSystems Types + + public class STComplexListStructure : ISimpleRecord + { + public DateTime ssSTARTDate { get; set; } + public DateTime ssENDDate { get; set; } + public string ssProduct { get; set; } + + public STComplexListStructure() + { + ssSTARTDate = new DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc); + ssENDDate = new DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc); + ssProduct = ""; + } + } + + public class RCComplexListRecord : IRecord + { + public STComplexListStructure ssComplexList; + + public RCComplexListRecord() + { + ssComplexList = new STComplexListStructure(); + } + + #region IRecord stubs + public object AttributeGet(GlobalObjectKey key) => throw new NotImplementedException(); + public void FillFromOther(IRecord other) => throw new NotImplementedException(); + public bool ChangedAttributeGet(GlobalObjectKey key) => throw new NotImplementedException(); + public bool OptimizedAttributeGet(GlobalObjectKey key) => throw new NotImplementedException(); + public void ReadDB(IDataReader reader) => throw new NotImplementedException(); + public BitArray[] AllOptimizedAttributes { get; set; } + public IRecord Duplicate() => throw new NotImplementedException(); + public void RecursiveReset() { } + public void InternalRecursiveSave() { } + #endregion + } + + public class RLComplexListRecordList : IOSList + { + private readonly List _items = new List(); + private int _index = -1; + private bool _iterating; + + public void Add(RCComplexListRecord item) => _items.Add(item); + + public object Current => _index >= 0 && _index < _items.Count ? _items[_index] : _items.Count > 0 ? _items[0] : null; + public int CurrentRowNumber { get => _index; set => _index = value; } + public bool Empty => _items.Count == 0; + public int Length => _items.Count; + public int ReturnedRowCount => _items.Count; + public int MaxRecords { get; set; } + public bool Iterating => _iterating; + public bool Bof => _index <= 0; + public bool Eof => _index >= _items.Count; + public bool HasHiddenRow { get; set; } + public OutSystems.Internal.Db.Transaction Transaction { set { } } + public IDataReader Reader { set { } } + + public void StartIteration() { _index = 0; _iterating = true; } + public void EndIteration() { _iterating = false; } + public bool Advance() { _index++; return !Eof; } + public bool Advance(int count) { _index += count; return !Eof; } + public void SetPosition(int pos) { _index = pos; } + public void Set(int index, object value) => _items[index] = (RCComplexListRecord)value; + public void Insert(object value, int index) => _items.Insert(index, (RCComplexListRecord)value); + public void Remove(int index) => _items.RemoveAt(index); + public void FillFromOther(IOSList other) => throw new NotImplementedException(); + public void RestoreRecordListEmptyState(bool b) { } + public void RestoreRecordListState(int i, bool b) { } + public void ToXml(object o, XmlElement el, string s, int i) => throw new NotImplementedException(); + public void EvaluateFields(VarValue v, object o, string s1, string s2) => throw new NotImplementedException(); + public void Sort(IComparer comparer) => _items.Sort((a, b) => comparer.Compare(a, b)); + public void Clear() => _items.Clear(); + public void CloseDataReader() { } + public void InternalRecursiveSave() { } + public void RecursiveReset() { } + public void Read() { } + public bool MoveNext() { _index++; return !Eof; } + public void Reset() { _index = -1; } + public IEnumerator GetEnumerator() => _items.GetEnumerator(); + public void GetObjectData(SerializationInfo info, StreamingContext context) => throw new NotImplementedException(); + public void Dispose() { } + } + + #endregion + + class Program + { + private static int _passed; + private static int _failed; + + static void Main(string[] args) + { + Console.WriteLine("=== DataGridUtils Tests ==="); + Console.WriteLine(); + + RunTest(nameof(MssConvertData2JSON_WithComplexListData_ReturnsExpectedJSON), + MssConvertData2JSON_WithComplexListData_ReturnsExpectedJSON); + + Console.WriteLine(); + Console.WriteLine($"Results: {_passed} passed, {_failed} failed, {_passed + _failed} total"); + + if (_failed > 0) + Environment.Exit(1); + } + + static void RunTest(string name, Action test) + { + try + { + test(); + _passed++; + Console.WriteLine($" PASS: {name}"); + } + catch (Exception ex) + { + _failed++; + Console.WriteLine($" FAIL: {name}"); + Console.WriteLine($" {ex.Message}"); + } + } + + static RCComplexListRecord MakeRecord(string startDate, string endDate, string Product) + { + var rec = new RCComplexListRecord(); + + if (TimeSpan.TryParse(startDate, out var ts)) + rec.ssComplexList.ssSTARTDate = new DateTime(1900, 1, 1, ts.Hours, ts.Minutes, ts.Seconds, DateTimeKind.Utc); + else + rec.ssComplexList.ssSTARTDate = DateTime.Parse(startDate).ToUniversalTime(); + + rec.ssComplexList.ssENDDate = new DateTime( + DateTime.Parse(endDate).Year, + DateTime.Parse(endDate).Month, + DateTime.Parse(endDate).Day, + 0, 0, 0, DateTimeKind.Utc); + rec.ssComplexList.ssProduct = Product; + + return rec; + } + + static void AssertEqual(string expected, string actual) + { + if (expected != actual) + { + int diffPos = 0; + int minLen = Math.Min(expected.Length, actual.Length); + while (diffPos < minLen && expected[diffPos] == actual[diffPos]) + diffPos++; + + string context = actual.Substring(Math.Max(0, diffPos - 30), Math.Min(60, actual.Length - Math.Max(0, diffPos - 30))); + throw new Exception( + $"Strings differ at position {diffPos}.\n" + + $" Expected length: {expected.Length}, Actual length: {actual.Length}\n" + + $" Near: ...{context}..."); + } + } + + static void MssConvertData2JSON_WithComplexListData_ReturnsExpectedJSON() + { + var list = new RLComplexListRecordList(); + + string[] ProductValues = new[] + { + "Black and Grey", "Black and Grey", "Black and Grey Pro", + "Black and Silver", "Black and Silver", "Black and Silver", + "Black and White", "Black and White" + }; + + foreach (var Product in ProductValues) + { + list.Add(MakeRecord("09:08:30", "2026-02-24", Product)); + } + + var sut = new CssDataGridUtils(); + sut.MssConvertData2JSON(list, out string result); + + string expected = + @"{""data"":[" + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Grey""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Grey""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Grey Pro""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Silver""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Silver""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and Silver""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and White""}}," + + @"{""ComplexList"":{""STARTDate"":""09:08:30"",""ENDDate"":""2026-02-24"",""Product"":""Black and White""}}]," + + @"""metadata"":{""ComplexList"":{""STARTDate"":""DateTime"",""ENDDate"":""DateTime"",""Product"":""String""}}}"; + + AssertEqual(expected, result); + } + } +} diff --git a/extension/tests/DataGridUtils.Tests.csproj b/extension/tests/DataGridUtils.Tests.csproj new file mode 100644 index 00000000..2827b6cf --- /dev/null +++ b/extension/tests/DataGridUtils.Tests.csproj @@ -0,0 +1,30 @@ + + + + net472 + Exe + + + + + ..\DataGridUtils\Source\NET\Bin\OutSystems.HubEdition.RuntimePlatform.dll + true + + + ..\DataGridUtils\Source\NET\Bin\OutSystems.HubEdition.DatabaseAbstractionLayer.dll + true + + + ..\..\..\..\Users\rgo\Desktop\DataGridUtils\Source\NET\obj\Debug\OutSystems.NssDataGridUtils.dll + + + ..\DataGridUtils\Source\NET\Bin\OutSystems.RuntimeCommon.dll + true + + + ..\DataGridUtils\Source\NET\Bin\Newtonsoft.Json.dll + true + + + +