Before starting XTEND
Introduction
What is XTEND?
XTEND is a workshop dedicated to the development of Web applications and is integrated in the technical platform SAFE X3. XTEND works in tight combination with the SAFE X3 solutions (applications Sage X3, Sage Warehousing, Sage HRM).
It was designed to make it possible for the X3 developers to:
- Conceive Web application with as few knowledge as possible of the Internet technologies
- Monitor all the application's processes (management, processings, data access...) using the X3 functions
It makes it possible to create new Web interfaces replacing the standardized interfaces of the SAFE X3 solutions.
It makes it possible to conceive any cross-browser Web application:
- Institutional Web sites
- E-business sites in B2B and B2C
- Intranet sites dedicated to the entry or inquiry of ERP data
Concept overview
XTEND is based on the insertion of tokens in the HTML source code in order to 'dynamize' the HTML pages and thus be able to modify dynamically the properties of HTML tags (a, input,span, td, div...).
All the elements involved in the conception of a Web site (tokens, pages, iteration sections, data access, user actions...) are modeled in the form of X3 objects that can be set u^p thanks to a set of X3 functions. These elements form a reference base called dictionary or repository on which the XTEND engine bases on to "dynamize" the HTML pages.
An XTEND site is attached to an X3 folder. It includes following elements:
- a dictionary or reference base
- a set of HTML pages and graphic resources
- a set of Web services for data access and user action processing.
Although it is defined at the level of an X3 folder, an XTEND site can access to data and processings of other solutions/folders thanks to the Web service call.
Prerequisites
In order to develop standard Web sites with XTEND, it is necessary to have following skills:
- X3 development (essential)
- XTEND setup (essential)
- X3 Web services
- Structure and publication (essential)
- No programming skills needed
- HTML design
- HTML (standard)
- Web creation software like Dreamweaver (basics)
- Knowledge of css styles is a plus
- JavaScript (basics)
- Used for entry controls
Functional architecture
HYML page management
XTEND does not depend on the the software used to create HTML pages. The choice of the software is left to the developer.
In most cases, the site design is managed by a specialized agency delivering an HTML project formed of a set of (static) pages and graphic components complying with the graphic charter .
HTML page dynamization
A Web site has more chances to reach its goal if the information published is customized and updated in real time.
In traditional Web development environments (PHP, ASP.NET, JSP...), the access and display of "dynamic" data and of user action processings involves programming on the Web server and thus presupposes a good command of these technologies.
XTEND proposes a Web development mode by setup and token insertion, which is easy to use and can even be managed by non specialist developers.
For instance
<table><tr><td>Ref</td><td>Price</td><td>Stock</td></tr>
<!adx='blocIteration'>
<tr>
<td><a adx="gotoDetail"><span adx'REFNUM'></span></a></td>
<td adx="PRICE"></td>
<td adx="STOCK"></td>
</tr>
<!adx='blocIteration'>
</table>
Ref | Price | Stock |
PUZ001 | 13.78 | 10 |
PUZ002 | 2.30 | 5 |
PUZ003 | 6.52 | 0 |
Processings and data access
The access to data and the processings triggered by the user actions are managed in X3 via web service call.
No functional processing is carried out on the Web server, which makes it possible for the X3 developer to fully monitor the programs involved.
Security
The user identification (login) occurs in X3 by calling a specific sub-program.
The X3 setups manage access to resources (pages or Web services) and data encryption (forms, confidential data inquiry).
Administration
The Web sites developed with XTEND are fully integrated in a SAFE X3 solution, which means that the site components (HTML design, processings, data) are part of the X3 folder to which they are attached.
XTEND makes available a set of X3 functions for the webmaster, namely a function to copy a Web site from a development to a production folder.
Technical architecture
XTEND bases on a multi-BP structure formed of:
- A front-end HTTP server of the X3WEB server (front-office HTTP server)
- An XTEND server of the X3WEB server (HTML page publication engine also called XTEND engine)
- An X3 application server
- One (or several) Web service server
The XTEND server is hosted in the X3WEB server in the form of a new Web application.
The XTEND server configuration is carried out via the X3 administration console, just like other Web applications (Web services, VT...)
The publication of an XTEND site on a server occurs automatically. It is carried out via an X3 function and does not require the X3WEB server to re-launch.
Front-end HTTP server
This is the Apache HTTP server installed along with the X3WEB server. It is configured so as to redirect the XTEND queries to the XTEND engine.
XTEND server
The XTEND server manages the user sessions, carries out the HTTP query processing and provides the HTML pages:
The X3 application server
The X3 server is considered by the XTEND engine as a resource server but also as a processing server.
Resource server
XTEND gets access to the file resources through the HTTP server of the main X3 server (differing from the front-end HTTP server). These files are stored by X3 folder in the X3_PUB directory of the solution.
List of the files used by XTEND:
- the site dictionary
- X3_PUB/NOMDOSSIER/X_TEND/X_GEN/NOMDOSSIER
- the dictionary is formed of XML files generated upon validation of X3 setups
- elements of the HTML design
- X3_PUB/NOMDOSSIER/X_TEND/X_HTML/NOMDOSSIER/LANG
- as a general rule, this directory contains the copy (FTP) of the HTML project
- X3 local menus
- X3_PUB/NOMDOSSIER/GEN/LANG/MENL
- the user data files whose location can be set up
- /X3_PUB/NOMDOSSIER/X_TEND/X_FILAPP
- /X3_PUB/NOMDOSSIER/X_TEND/X_FILES
Process servers
All the functional processings used by the XTEND server are 4GL sub-programs or X3 objects that were published in the form of Web services.
The call to the X3 processing is carried out via one or several Web service server(s) defined by setup.
There is no direct link between the XTEND engine and the X3 processing servers. All the service calls (access to data and user action processing) use Web service servers. XTEND does not have access to X3 database.Web services
As explained above, the XTEND engine communicates with X3 only via web service calls. No XTEND site can work without using Web services.
XTEND brings a major benefit : it hides fully the complex functioning method of a Web service call like the use of stub or proxy classes (in JAVA, ASP.NET or PHP) and the creation/processing of XML setups/data.
All publication, call and processing operations of the XML result and the application messages are carried out by X3 setup.
The XTEND setup functions make it possible to:
- declare "Web service pools" used by the sites
- Address/Port of a Web service server and alias of the 'connection pool'
- define a "Web service pool" by default for each site
- define if needed a "Web service pool" by user action
General
Start
Before getting into detail, it is necessary to verify first whether the XTEND server works normally.
Only then come the instructions to create easily and quick an XTEND site by duplication of the delivered example.
Here is the Start page.
Repair and advice
If the XTEND server does not work normally, here are some hints to fix it.
ASAMPLE site example
The site
The ASAMPLE site works on all SAFE X3 applications without depending on the functions specific to the different applications. This site bases only on Supervisor data.
This site is an example used to test easily whether the XTEND server works well in a client environment and provide a few basic use information.
This page describes the elements supplied for this site.
Content management
How to search html content set up in an XTEND function? Here is the page explaining how to manage the content.
Login
How is managed the login in XTEND for the ASAMPLE site? Here comes the explanation.
Form
How to manage the entry in a contact form? Here comes the explanation.
Country list
The page "Country list" of the ASAMPLE site illustrates the data access concept proposed by XTEND.
How to recover easily the result of a table in X3? Here comes the explanation.
Concepts
Functioning
How does the XTEND server work?
How are the setups entered in X3 recovered?
How does the XTEND server interpret the html pages?
Here is the description of the functioning of XTEND.
Tokens
How to insert the back office elements in the html pages? X3 controls or any functional element of a SAFE X3 application.
How do the tokens work, that is the html elements inserted in pages?
Actions
How is a user action set up on a site page? For instance by clicking on a field in an html page. Here comes the explanation.
Data access
How to recover the data of a SAFE X3 application in a Web page?
Tools
X3 utilities
Here are a few X3 functions used to customize the Web site.
Development help
How to use thetools and reports generated in the Web page to help development.
Activity follow-up
How to use the log files that are generated directly on the XTEND server?
Advanced
Standard library
Here is the description of the supplied XTEND JavaScript library.
REST Web services
How to call aREST Web service only in an XTEND site?
AJAX Library
How is the XTEND AJAX library built?
Scripting server
How to have JavaScript at server level?
Configuration
Here are a few configuration information aside from the X3 setups.