The XTEND server does not have a direct access to the X3 database via a a database connector (type JDBC), but by calling up specialized Web services of type 'Access' (for 'access to data').
These Web services of 'Access' type work like the SQL request call, i.e. they have the same parameters in entry used to pass the selection and setup criteria in issue to send the result of the request again.
These web services are the result of the publication of L4G sub-programs that all present the same interfaces (or parameters). The L4G processings associated to them carry out the following operations:
The web services of 'Access' type are used to access in read-only mode all the X3 tables and views.
It is possible to customize the L4G processings to add that they recover calculated data as stock or the price of a product.
Implementing web services 'Generated access table' and 'Generated access view' is entirely automatic via the XTEND function XTEND Interface.
The posting of the L4G processing and the publication of the sub-program are generated after the developer has selected the X3 table or view he/she wants to access and after having selected the fields to read.
An 'Access' sub-program always needs to check the following interface:
Subprog ACCTAB( AXPARCOD,AXPARVAL,AXWHRLFTBRK,AXWHRCOD,AXWHROPE,
AXWHRCODVAL,AXWHRRGTBRK,AXWHRANDOR,AXORDCOD,AXORDTYP,
FIELD1,FIELD2,FIELD2...
)
#Parameters of the SQL request
Value Char AXPARCOD()(1..20)
Variable Char AXPARVAL()(1..20)
Value Integer AXWHRLFTBRK(1..14)
Value Char AXWHRCOD()(1..14)
Value Integer AXWHROPE(1..14)
Value Char AXWHRCODVAL()(1..14)
Value Integer AXWHRRGTBRK(1..14)
Value Integer AXWHRANDOR(1..14)
Value Char AXORDCOD()(1..10)
Value Integer AXORDTYP(1..10)
# Data sent
Variable Char FIELD1()(1..)
Variable Char FIELD2()(1..)
Variable ClbFile FIELD3()(1..)
...
$LOADLINE
#This label is called for each recording and in order to value the return parameters
#It is used in personalization mode to add (calculated) specific fields
FIELD1(WROWPOS) = [F]FIELD1
FIELD2(WROWPOS) = [F]FIELD2
FIELD3(WROWPOS) = [F]FIELD3
Return
The sub-program describes the sub-program parameters, their size and assigns publication groups.
The publication groups for the parameters and the result are fixed:
Parameter | Group | Description |
AXPARCOD | AX_PAR | X3 context variable code |
AXPARVAL | AX_PAR | X3 context variable value |
AXWHRLFTBRK | AX_WHR | Level of opening brackets |
AXWHRCOD | AX_WHR | Name of the selection criteria |
AXWHROPE | AX_WHR | Comparison operator |
AXWHRCODVAL | AX_WHR | Value of the selection criteria |
AXWHRRGTBRK | AX_WHR | Level of closing brackets |
AXWHRANDOR | AX_WHR | Sequence logical operator |
AXORDCOD | AX_ORD | Name of the sort criteria |
AXORDTYP | AX_ORD | Value of the sort criteria |
FIELD1 | RES | Fields for the recordings returned by the web service |
FIELD2 | RES | Fields for the recordings returned by the web service |
FIELD3 | RES | Fields for the recordings returned by the web service |
This interface is used to see the left list web service of a X3 object as a XTEND data supplier.
In that case, the selection criteria to enter are those used for the left lists.
Customizing interfaces of 'Access' type is necessary, as soon as the user wants to return calculated data such as the price and the availability of a product.
The method to carry out this type of web service is the following:
Interface that points on the selected table/view.
The following steps are automatically carried out:
1. Generation of processing and sub-program
2. Generation of web service + publication
1. Copy the processing and sub-program generated and rename them as wanted
2. Add the parameters to calculate
3. Value the parameters in the $LOADLINE label
!!Respect the names of the publication groups