Linkar TESTER was created to help you to familiarize with how to connect and work with Linkar SERVER from client applications.
TESTER allows you to graphically test the library functions through an application.
Execution time and other metadata is displayed as an example of the data available from query operations.
TESTER is not an end user application. Its function is educational, allowing you to explore all the options and possibilities of the Linkar SERVER library functions.
If you are doing diagnostics and suspect an issue with Linkar, run a few tests through TESTER.
All the functions that can be used in Linkar CLIENTS libraries are included here.
String Functions contain examples of several functions for string management with MV delimiters.
The other tabs contain examples of different functions that work with the database.
All functions can be executed in a synchronous or asynchronous manner. In each tab there are two buttons for execution, the default is synchronous, the other is async. In synchronous mode, the form is locked until the operation finishes. In the async mode, during execution, form is unlocked, you can interact with it, and even run other operations from the window. When an asynchronous operation finishes, the result displays in the corresponding window.
The screenshot below shows the TESTER tab for Read operations:
All database operations have a section to indicate whether a persistent or direct (volatile) function should be performed. In the image above, the persistent function is used (Using Session ID" is activated).
To execute a direct operation, Using Credentials must be activated. All data must be provided the one-time connection, including EntryPoint details, username, and password.
Direct functions do not create a Client Session or a related ID. They are intended for singular operations. To execute several operations with a number of lines of code, persistent functions are recommended.
For further information about these functions types see the Linkar CLIENTS section
In each operation, controls are available to specify function parameters. In this "Read" tab there is a textbox for the database file, a multi-line text field for the record IDs to read
The functions also have several options: ReadOptions for Read functions, UpdateOptions for Update functions, etc. In each tab, there is a section for function-specific options.
A textbox called Custom Vars can be found in all windows. This is free text that will travel to the database to allow the admin to be able to manage additional behaviours in the standard routine SUB.LK.MAIN.CONTROL.CUSTOM. This routine will be called on if the argument has content.
Operation results are shown in the lower half of each tab/window. The results are separated into a local group of tabs:
• | A box shows the Operation Run Time. This is the time (expressed in seconds) of the last operation (from client request until the client receives data). |
• | When the amount of data in the operations is very large, the screen display process can be slow, and depends on many factors. Rendering time is not included in the Operation Run Time. |
• | A section named Format Options for Output is available to show different ways results in different formats: |
oLkObject. In this format the information is displayed in windows. These windows correspond with each property from the LkData class, including the total number of records read, the list of the records codes, the record textfield content, the data calculated in each record, etc.. Other format options depend on the function executed, as well as on its options.
oMV : The internally delimited Linkar format is used.
oXML, XML_DICT, XML_SCH. Details are in XML format.
oJSON, JSON_DICT, JSON_SCH. Details are in JSON format.
Update and New tabs need input data, whether data to be modified (Update) or new data to write into a record (New). This input information can also be provided in several formats: LkObject, MV, XML, or JSON
In the Update and New windows there is a button to copy the result of the last Read operation into the input data information. This is very helpful as it allows for reading data in the Read tab and then quickly manipulating it in another tab.
The input formats LkObject and MV are identical: they require the input information to be expressed as a pure MV delimited string.
To create or update more than one record, separate them with the ASCII 30 character. Use the \u01e representation, which is also seen in code.
To create or update records with the XML or JSON input format, read from a file with the same XML and JSON structure, and use that as a model for writing.
The other operations including Select, Subroutine, Conversions, Format, Dictionaries and Execute, are configured as above and operate in the same way.
The Send Command tab is quite special. Use that tab to execute any Linkar CLIENT function, expressing it in XML or JSON format.