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.

SEEINFOAlthough 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:

  • access right management
  • call to Web services to process the user actions
  • call to Web services for data access
  • parsing of the HTML page and interpretation of tokens
  • dynamic building of the result page
  • 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.

    SEEINFO 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?

    Here comes the explanation.

    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.