Glossary F-P
Facet
A representation contains a set of properties intended for the user interface. To refine the use of a representation, different representation views can be designed and are named facets.
A facet is a filter applied on the fields of the representation and on the available operations and links, to use only the subset of required fields and links depending on the context. For a representation, the list of available facets are listed. On every property and link, a list of check boxes defines in which facets the elements are available.
A representation associated with a persistent class has the largest choice of facets, with a name corresponding to the use case:
- $query is the facet defining the properties used to select a record. It corresponds, in version 6 terminology, to the fields in the left list.
- $edit is the facet associated with the creation or modification of a record.
- detail is the facet used when a user inquires on the detail of a record.
- summary is the facet that summarizes at a glance the main properties of a record. It corresponds to the File / Property function in version 6 of Sage X3.
- $lookup is the facet used to select a record in lookup mode (selection from a reference from another record). In version 6, the fields in the selection windows are the same as the ones in the left list. However in version 7, they might be different.
Gadget
A gadget is an autonomous component included in a home page. Its behavior is exactly the same as an independent page that can be connected to its own Endpoint or to an external resource. The terms gadget, vignette, and portlet are synonyms, but the term used in the software is gadget.
Grid widget
A grid widget is a set of fields in a block in the form of an array of lines. Line addition, insertion, deletion, or modification operations are available on a grid block. A complete display or a display per page are possible as well as a presentation of the lines unfolded like repeated card shaped forms or card view mode.
Grid
A grid is a component of the user interface used to enter or display a set of lines. A line can be physically represented by a line and by a data block in card view mode. A grid can be displayed by pages (in this case, links exists to navigate from a page to the other pages). Insertion, Deletion, Modification, and Sort operations can be done on lines.
Home page
A home page is a particular page made up of gadgets, which is used to present a set of composite information also called a mashup. When login in Sage X3 version 7, users have access by default to a home page. However, additional home pages can be created such as a page called landing page.
Hooks
This terminology has been introduced to name the systematic call performed by the Sage X3 supervisor to predefined labels for a development partner to connect a specific code executed on standard events. This corresponds to the '$ACTION' labels with the traditional 'Case ACTION' associated with it.
There are two labels, '$PROPERTIES' that are dedicated to the rules associated with properties, and '$METHODS' for general methods of the class.
This term is slightly different from entry point, which refers to non systematic calls to specific code defined on a case by case basis in the Sage X3 software components. It is usually seen as black boxes to change the standard behavior of this component (usually for complex algorithm variants).
HTML 5
HTML5 (HyperText Markup Language 5) is the next major revision of HTML, a data conceived to represent web pages. This version is still under development. It specifies two syntaxes of an abstract model defined as a DOM: HTML5 and XHTML5. The language also includes an application layer containing many APIs and algorithm managing documents with a non conformant syntax. This definition has been endorsed by the W3C in March 2007. The W3C expects the closing of the addition of functionalities to be on the 22 of May, 2011 and a finalization of the specifications in 2014. Development partners are encouraging to use HTML5.
HTML5 brings a large set of APIs easing the development of rich applications, and is already supported by the recent versions of browsers.
The version 7 web client is based on HTML5.
HTTP
The HyperText Transfer Protocol, best known as HTTP, is a client-server communication protocol developed for the World Wide Web. HTTPS, is the variant of HTTP secured by the use of SSL or TLS protocols.
HTTP is a protocol of the application layer. It can work on any reliable connection, yet TCP is used as transportation layer. An HTTP server uses, by default, the port number 80 (443 for HTTPS).
The best known HTTP clients are web browsers that access a server containing data. Other clients are for instance systems able to automatically retrieve all the content of a site such as indexing robots or crawlers.
These clients connect to HTTP servers such as Apache, HTTP Server, IIS, or node.js.
Hypertext link
In the version 7 user interface, the navigation is done through hypertext links. These links are visible in the interface when the mouse hovers over an area, or when a section is unfolded. A link can lead to another page that replaces the current page or opens a new browser tab.
A link in a screen linked to an activity can trigger:
- A method: in a stateful operation, thus associated with an execution context. In this case, the user remains in the current activity.
- An operation: in a stateless operation, a new screen replaces the previous one or a new tab opens. This corresponds to the tunnel notion as it was named in version 6 of Sage X3. With the version 7, this type of operation used to display the detail of a record from the referencing field, does not need any other context than the user’s identity.
Inquiry mode
This is the default stateless mode of the version 7 interface. In this mode, the information is displayed to the user who can freely navigate in Display mode. If users want to modify the information, they will switch to the update mode by clicking a dedicated link (update) or use a new link to create a new record. They will then switch to a stateful mode by creating a draft storing the information being entered in the UI.
Internet browser
An Internet browser is a piece of software designed to browse information over the World Wide Web. Technically, it is at least an HTTP client able to display HTML pages with CSS style sheets, able to execute JavaScript code and to display picture, movies, and emit sounds. Many web browsers exist for all types of hardware (PC, tablets, and mobile phones) and for different operating systems (Linux, Windows, Mac OS, and Android). The most frequently used browsers are Mozilla Firefox, Internet Explorer, Google Chrome, and Safari.
The version 7 platform is available on all these browsers.
Javascript
JavaScript is a programming language primarily used in interactive web pages. It is also used on the server side since the apparition of some powerful execution engines such as the Google V8 engine included in node.js.
It is an object with oriented language prototypes. This means that the base of the language and the main interfaces are supplied by objects that are not class instances. They are all equipped with constructors which can generate their properties and prototyping property used to generate inherited customized objects.
The version 7 platform uses JavaScript on the client side (the version 7 client, with its shell, the personalization tools, the local storage of drafts, and the page entry) as well as on the server side (dialog with the Sage X3 engine and management of the referential on MongoDB).
Join
A join is defined as a property of a table that references another table. The access is done in a relational database through a join. The word 'Join' replaces the word 'Link' used in versions 6 of Sage X3.
jQuery
jQuery is a free JavaScript library managing the interaction between JavaScript (including AJAX) and HTML. Its purpose is to simplify the common commands of JavaScript. The first version was delivered in January 2006.
The framework contains the following features:
- Navigation within the DOM and modification including the support of CSS 1 to 3 selectors and a basic support of XPath.
- Events
- Effects and animations
- Manipulations of cascaded style sheets such as addition/deletion of classes and attributes
- AJAX
- Plugins
- Utilities such as management of browser versions.
Json
JSON (JavaScript Object Notation) is a format using the JavaScript object notation to transmit structured data, which is more compact and closer to the programming languages than XML.
Despite the existence of the DOM, JSON remains the simplest method to access data because every JSON feed is a serialized Javascript object. Additionally, in spite of its historical and technological link with JavaScript, JSON remains a structured data format that can be easily used by all the programming languages.
The Sage X3 platform has used JSON (the graphical processes are described in this format). The version 7 platform uses this format intensively for all the exchanges with a JSON format (version 7 protocol) inspired from SData. It is in fact a JSON translation of the SData protocol, originally specified in XML with additional extensions.
Landing page
A landing page is a particular page made up of gadgets, which can be alternatively be used as a home page.
Layout
A layout is a user interface customization carried out on a representation by a user or a designer to adapt the page to a given activity or to a dedicated operation used by a vertical solution. This layout can be created on the fly by users for their own use, or shared and delivered as a standard component.
Locales
This word defines a set of parameters associated by default with a language code.
This language code is sent to the http header in the following format: Accept-Language:code where code is the ISO 639 code of the language, optionally followed by a hyphen and a country code using ISO3166-1 code.
For example, the language code 'fr', for the French language, can be defined as 'fr-FR' (French from France), 'fr-CA' (Canadian French), 'fr-BE' (Belgian French), and so forth.
Localization parameters such as date and hour format, decimal separators, and three-digit separators are associated with a language code.
A user may be associated with one or several locale codes. If only one association is done, it will be used for the user interface. If several locale codes exist, the latest used will be denoted as the default, but the user can switch to another code.
Mashup
A composite application (also named mash-up) is an application combining contents or services coming from different and heterogeneous applications.
For a web site, using mash ups consist of aggregating contents issued from other sites to create a new site.
To do this, the objects 'XMLHttpRequest', 'RSS', and 'AJAX' are frequently used on the client side associated with APIs (or web services) of the sites which contents are mixed.
More and more vendors provide APIs free of charge to encourage the development partner's community to develop mash ups using their contents. The composite applications are made up with event based programming.
This is the case for Google, Yahoo!, Amazon, eBay, or FedEx. They allow a merchant to display on its own site the information about the status of a pending delivery subcontracted to the carrier. Their interest is to encourage the development partners to broadcast their contents.
The mash up is a technology that is becoming very popular in the enterprise area because it is based on software taking into account security and governance issues. The purpose of these mashups is to assemble in a synchronized way, both internal and external business applications to create value.
Method
A method is a function attached to a class or a property that can be used to manipulate the property of a class instance. Some methods, named rules, are directly called by the Sage X3 engine or the Sage X3 supervisor. Unlike an operation that can be called without any preliminary context definition (for example, a web service), a method requires an instantiated class (in stateful mode).
Mongodb
MongoDB (from English word humongous) is a free document oriented database that does not need a predefined data schema. It is very scalable with good performances and written in C++.
The version 7 platform uses mongodb to store the information related to the user referential:
- User’s definition
- User roles per Sage X3 folder (also named Endpoint)
- Page customization done by the users
- Drafts in progress
- Preferences
Navigation page
A navigation page is a page containing links to access to the different pages defined by the menu items available to a given user.
Node.js
Node.js is a framework (including a web server) based on Google V8 JavaScript engine, which is the one used in Chrome. It is used to execute JavaScript on a server. It works in asynchronous mode. Once it is launched, an asynchronous function will execute, and then give the hand back to the 'node.js' engine if an event such as an IO is expected to continue. The 'node.js' server can then execute another function waiting for execution in an event loop. When an asynchronous function is finished, it places the function named call-back in the event loop to resume the pending process.
An asynchronous development allows the parallelization of functions in a simple and elegant manner with a limited consumption of memory and CPU, and without having to use system resource costly threads that are complex to synchronize.
The counterpart is that the programming in call-backs is more complex to write for programmers. In order to ease the asynchronous programming, an open source tool called streamline.js has been created to develop asynchronous code in the same manner as synchronous code.
Operation
An operation is a function associated with a class that can be persistent working in stateless mode. An operation can be called in any screen with the corresponding parameters.
Optimistic lock
In Sage X3 version 6, the selection of a record in an object creates a logical lock in a database table. Once this is done, any user attempting to modify the record will fail and a message will appear even if the user is only viewing the record. This is named pessimistic lock.
With version 7, the visualization of a record is done in the '$details' facet. Any other user can view the same record without any restriction.
A modification can be made by a user who will switch to the '$edit' facet. This modification can last a long time, especially if the user working on a mobile device is temporarily disconnected and resumes his job later. As the data being modified is stored in a local cache named working copy, it will be reused when the modification resumes. For these reasons, there is no more locking of information when a user switches to the edit mode.
However, when the modification is sent to the database, a check will be performed to verify that no modification has been made during the time a user is working on the record. This is possible because every record stores a time tick incremented every time a modification is made. It is a relative time-stamp (the property being implemented is named updtick). Upon update, the query sent to the database includes the previous value of the updtick property; if the update fails, it means that a previous modification has been made. The user will then receive a message regarding the conflict.
Page
Unlike a desktop user interface where the user is constrained by the size of the screen, thus making mandatory the use of artifacts such as scrolling bars, paging, fixed position for fields, the version 7 user interface is based on HTML pages. The result is a great freedom of page layout and use:
- A unique vertical scrolling bar is used.
- The grids are enlarged as soon as they are filled.
- Sections can appear completely or be folded.
Page entry
When the version 7 interface is working in entry mode, the user enters information on a page. The information is transmitted to the node.js server and controlled by the ERP in an asynchronous and differential mode. This means that the version 7 client sends to the server the data that has been modified since the last transmission (delta mode), enabling the user to continue the entry without waiting for an answer from the server. The answer will finally arrive with a possible list of errors associated with the controlled properties and possible modifications made by the server (default values originating from previous entries), still in delta mode. These modifications are applied to the user interface, errors are displayed without blocking the entry, and the user can then return to the erroneous fields in order to correct them or continue with their entry. When the link between the client and the server is fast and the business logic layers answer quickly, the user benefits from an interactive entry with a good level of interaction. However, if the conditions become worse (line interruptions or bad response time from the ERP), the user benefits nevertheless from an operational page entry – without any blocking – and finally receives returned answers.
Note that this functioning delta mode is very efficient because it limits the bandwidth, and can also be disabled: the client keeps the possibility of requesting a complete transmission of the pending draft. This is the case when the application session has been stopped and needs to resume from a previously entered draft.
Upon display, the same asynchronism notions apply. Thus, some page properties can be tagged as lazy loaded. Then in inquiry mode the user takes control and immediately sees some information being displayed, the remaining information being sent asynchronously. This is usually the case for properties having a huge size (for example, pictures).
In any case, a global control is performed before the data is stored in the database.
Pending draft
It corresponds to a draft that has been interrupted and can be resumed at any time by its owner. The owner is the user that created it or the latest user to whom the draft has been transmitted. A link present in the version 7 shell can be used to access the list of pending drafts.
Personalization mode
The personalization mode corresponds to an operating mode of the user interface that allows a user to modify the user interface layout. Entering the interface layout in personalization mode is triggered by an icon on the shell. The actions in personalization mode are the following:
- Deletion or addition of a field if the field exists in the underlying representation.
- Reorganization of the order of fields, sections, or blocks with restrictions imposed by the application logic.
- Switch from a section mode to a tab mode, and from a line mode to a card view mode.
- Modification of the properties of blocks, fields, actions, sections,and pages (a CSS style sheet, location or presence of links, and so forth).
Once the modification is made, the updated representation is saved in the user’s referential to be used by default. It can also be shared with other users, or named in order to have different representations available for the same activity.
Any updated representation is stored in differential mode, which means that an automatic adaptation is performed when the default representation is updated such as when a software update is installed. If a new field is created in a representation, this will not change the customizations carried out by a user in personalization mode.
Updating a representation in personalization mode does not change the functional behavior of the software program. Thus, a field will be controlled even if it is not present in the user interface.
Portlet
A portlet is an autonomous component included in a dashboard. It behaves as an autonomous page that can be connected to its own Endpoint or to an external resource. The words gadget, vignette, and portlet are synonyms.
Property
A property is a set of information defined in a class or representation. It has a defined type in the dictionary. This type can be simple (integer, decimal, date, or string), or a type referencing another class (customer or product category), or a complex type such as a picture, a movie, a sound, or an HTML page.