Installation and personalization > Operation of the Sage X3 People Portal 

The Sage X3 People Portal is a Web application of Ajax type. It offers the employees of a company a set of functions related to the Human Resources and available for access via a Web browser.

Sage X3 People Portal provides access to part of the HR functions to the employees and the managers. For example, employees can manage themselves the update of their personal data (change of civil status, birth, etc.), paid leave requests, expense claims, etc.

Managers validate these requests via the workflows and have full visibility on the planning of their teams.

Previous identification is required via the login page to be able to access the functions. The portal users are managed like Sage X3 users (login, password) but they do not necessarily have the rights to log into the application with a standard client.

Portal components

The various components that are part of the Sage X3 People Portal are the following:

  • The Web browser
  • The http server (Apache)
  • The Web server (TomCat)
  • The X3WEB sever
1. The Web browser

The Web browser loads and runs the Ajax client application. This application is composed of a set of HTML, JavaScript, Css files and images.

The Sage X3 People Portal application is developed in JavaScript and is run in the Web browser. This application communicates with Sage X3 People by calling Web services (REST-type http requests).
Like all the AJAX applications, Sage X3 People portal uses a cookie session to identify the issuer of the http requests. It is therefore mandatory to authorize at least the session-type cookies for the Sage X3 People Portal site.

2. The http server (Apache)

The http server receives and processes http requests originating from the Web browser by redirecting them to the Web Sage X3 WAS application. The login page uses the secure mode (https) to encrypt the parameters when the LOGIN service is called. The HTTPS options (all.apache.apacheportssl et all.apache.apacheportssl) must be activated in the console parameters.

3. The Web application server (TomCat)

The portal is composed of the two following ‘Web applications’:

The Web ‘Safe X3 WAS' application or XTEND

The ‘Safe X3 WAS' application manages the user session. It understands and runs requests originating from the browser, delivers the files ((html, JavaScript, Css, etc.) and manages personalization.

The Web server application of the Web services

The Web server application of the Web services publishes X3 sub-programs or objects like services available to third-party applications via the SOAP protocol. The Sage X3 WAS application communicates with the X3 back-office exclusively through the call to Web services.

The Sage X3 People Portal application only operates if the Web services are operational. In other words, they need to be published and available using a ‘pool of Web services” pointing to the X3 folder. We recommend to test the operation of the Web services server apart from the portal before implementing Sage X3 People Portal.

4. The X3WEB server

The X3WEB server hosts the HTTP server and the Web applications.

Hosting in a single X3WEB server

In that case, the ‘Sage X3 WAS’ and ‘Server of Web services’ applications can communicate via an optimized ‘Internal bus’ which makes it possible not to use the SOAP/HTTP protocol (refer to the ‘Internal bus’ parameter of the ‘X3 WAS site”). This is the simplest configuration to manage. It is recommended when using the portal as in Intranet (using the company's LAN).

Hosting in two X3WEB servers

This configuration contains a ‘FrontOffice’ X3WEB server that hosts the ‘Sage X3 WAS’ application and a X3WEB server dedicated to the publication of the Web services. These two applications communicate via HTPP/SOAP.

This configuration is recommended when using the portal as in Extranet, when users access the portal via the Internet or outside of the LAN. It makes it possible not to expose the Web services directly on the Internet and it optimizes the communication between the Web services server and the X3 back-office. It is recommended to install the X3WEB server that hosts the Web services application on the same LAN network as the X3 server. This is generally more stable than a WAN-type communication.


1. Application


2. Client


3. Inter-component communication


Sage X3 People Portal/X3 communication

1. Connection pools

Each employee logged into the portal has their own Web user session managed by the X3WEB server (Apache + TomCat + X3 WAS). On the other hand, they do not have a dedicated X3 session (Adonix process). The reason is that the creation of as many X3 sessions as there are employees in the company cannot be envisaged to manage the communication between Sage X3 People Portal and the Sage X3 People portal.

The communication between the portal and the X3 server is based on a set of X3 connections mutualized for all the employees. This set of X3 connections is called a ‘Connection pool’ or ‘Web services pool’. It is composed of a number of X3 clients (that can be set up via the console) that are awaiting process execution.

When a user invokes an X3 service, for example a paid leave balance request:

1. The Web browser issues a request (http) towards the X3 WAS server (XTEND).
2. XTEND specifies the X3 service(s) (sub-program) to be invoked and talks to the Web services server to run them.
3. The Web services server retrieves the parameters (JSON) and turns them into X3 parameters. Then it talks to the ‘connection pool’ to request the execution of the processing. To perform the processing request, the server stacks the request in a stack (First In First Out - FIFO).
4. The ‘connexion pool’ reads (peeks) the requests and looks for a free connection (X3 client) for the pending request.
5. If a connection is free, it reserves it to run the X3 processing (CALLIU). It frees the connection and unstacks the request when the processing is finally run.
Concerning the Sage X3 People portal, the Web services server changes user before running the processing. The X3 login and password are turned into parameters when the service is called by XTEND.
6. If no free connection could be found, the request is not unstacked and it will be managed when a connection is freed.

2. Sizing

The sizing of the connection pool is a key aspect to reach optimum responses times. It is very difficult to estimate the required number of connections to enable smooth browsing in the portal

Web service licenses are considered as being full X3 clients. It is therefore necessary to size (configure) the machine(s) hosting the X3 server and the database server accordingly. The X3WEB server and the X3 server should be installed on the same LAN to optimize response times. The load designates the number and types of users, the rolled-out functional scope and the number of simultaneous requests to manage. The load of an application of the Sage HR Portal type can be calculated using the following parameters:

  • The potential users: number of users likely to log into the application
  • The active simultaneous users: number of users who are logged into the application at the same time and who interact with the system These interactions cover functionalities such as the validation of expense claims, the validation of leave, the leave balance inquiry, etc.
  • The simultaneous requests: number of requests generated at the same time by the simultaneous active users. The number of simultaneous requests is set by the type of use based on the nature of functionalities that are used use and the frequency with which these users interact with the system.

Among these parameters, the number of simultaneous active users and the number of simultaneous requests are crucial to determine the required resources (size of the connection pool) and the sizing of the machines to implement to meet the load requirements.

The Sage X3 People Portal application

Sage X3 People Portal contains the following elements:

  • a X3 WAS site (Xtend),
  • an HTML project,
  • a set of X3 Web services.
1. The X3 WAS site (Xtend)

The XTEND site is a set of X3 functions which describe the elements used by the Web application.
By default, the identifier of the site is SHRMPORTAL. For the modifications of the 'site' records to be taken into account, click the [Validate] button to generate an XML file for the X3WEB server.

Parameters of the site

Use the Web sites function (GESAYS) to enter the general and advanced parameters of the site.

Interfaces (Web services)

The Interface function (GESAYI) describes all the interfaces (Web services) between the site (web application) and the X3 back-office. See the Web services section below.

Value list

The List of values function (GESAYC) describes the lists of values (menus, list-boxes, radio button group) used by the portal application and makes it possible to customize titles.

Validation button

The Validate web site function (AYTFCYGEN) validates and generates the XTEND dictionary for the X3WEB server. It is recommended to perform this operation every time the parameters of the site are modified.


The Web site profile function (GESAYD) lists the user profiles of the portal application (ADMIN, MANAGER, USER). The administrator must create a 'Safe X3 WAS profile' by XTEND profile, and then associate a 'Safe X3 WAS profile' for every X3 user of the portal.
2. HTML project

A set of html files, javascripts, css, images, are loaded by the Web browser. They form the Ajax Sage X3 People Portal client application, which is loaded and executed by the browser. Those files are stored in the folder SOLUTION/FolderX3/X_TEND/SITEX3WAS.


All the files of the HTML project must have at least the read permission for the account used to set up the X3 server.

File loading

The loading of those files by the browser (url) passes through the X3WEB server (XTEND
application) which acts as a 'Proxy'.

The XTEND server decodes the url, identifies the Solution/Folder/Site, reads the X3 file in X3_PUB (url) and returns the content to the browser.

Example of url :


Every X3WEB server on which the payroll folder is published can be used as a 'Web front-office' for the portal.

3. Web services

Open the Web services function (GESAWE) to publish the service.

All the Web services of 'Sub-program' type must be declared beforehand in the Subprograms function (GESASU).