Glossary R-Z

Previous entries

Representation

A representation is an entity in the dictionary that defines a set of properties intended for the user interface. It includes and extends the information previously described by the screen and window dictionary in version 6 of Sage X3.
A representation is associated with an underlying class. It frequently includes additional properties that are only useful for the user interface.

A representation associated with a persistent class defines the user interface associated with a Sage X3 “object” in the version 6 terminology.

When the underlying class is linked to child classes, the corresponding classes can be present in the representation either as a set of properties, optionally an array of properties as a linked representation, or as an array of linked representations.

The version 7 UI differentiates the inquiry mode (see Display mode) from the update mode. To implement this distinction and to generalize the use of representations, different facets can exist for a representation. This makes it possible to refine the behavior of the user interface according to the use cases. These facets are named '$query' (list of records), '$details' (details of a record), '$edit' (edition mode), '$summary' (summarized list of elements), and so forth.

REST

REST (Representational State Transfer) is a way of building an application for distributed systems like the World Wide Web. This term was invented by Roy Fielding in 2000 and is neither a format nor a protocol, but an original Web architecture style.

In this architecture, a component reads or modifies a resource by using a representation of this resource. A resource is an artifact that can be named and can evolve in time. It is a byte sequence, optionally including metadata (sequence of fields and associated values). A component is an actor, linked to other components and resources through channels, making stateless interactions possible.

The application for this architecture to the Web is based on the following principles:

  • The URI is important: knowing the URI must be sufficient to name and identify a resource.
  • HTTP supplies all the operations needed (GET, POST, PUT, and DELETE).
  • Every operation is self-sufficient: there is no state.
  • Use of the hypermedia standards: HTML or XML, which defines links to other resources and manages the navigation in a REST application, are frequently used. Other formats like Json or others are equally possible.

Role

A role corresponds to a code defining the activities of a user performing his/her usual business. A role defines authorizations on activities
by facet, and on the service operations including the Creation, Reading, Update, and Deletion operations. It also defines the list of representations which can be accessed and the possible redirections from a representation to a more adapted one. Thus, by using roles, the most pertinent view of the application is given to every role (the accountant, CFO, warehouse manager, salesman, and so forth) according to their preoccupations.
Upon connection, a user connects to an Endpoint with an identity and security profile. The security profile associates a set of roles to companies, group of companies, sites, group of sites.

The notion of role, which existed in Sage X3 version 6 and in the previous versions is not compliant with this new definition that is more compatible with the generally accepted meaning of role in the IT industry. This is the reason the former Sage X3 roles have been renamed in version 7 as data access rules based on filtering fields. The data access rules are used to create strict filters on data and also manage access codes.

Rule

A rule is a specific method called by the engine during the access to properties in a class instance.

Sage X3 defines three rules:

  • Getvalue called when a value is read.
  • Control used to control the value of a property.
  • Propagate used to trigger updates when a property has been modified.

Script module

The term Script module should replace the term Program in the new terminology. This term is not consistent with the state-of-the-art vocabulary: a Sage X3 Program, in version 6, is a separated file where the Sage X3 source code or engine executable code is stored.

SData

SData (Sage Data) is an open and public format described in XML with a Json version that will be formalized soon. This format performs open data exchanges with other applications.

SData is becoming the interoperability standard between Sage applications. Contracts can be defined to formalize exchanges between applications.

There is a format describing exchanges between ERP and CRM; contracts are already partially used between Sage X3 and Saleslogix.

SData also proposes synchronization services based on algorithms used to perform multi-points synchronizations.

Section

A section is a set of blocks in the user interface. It is an intermediate organization level between the page and the block. The characteristics of a section (available blocks, color, and also type of positioning – presentation in fixed section, in a foldable section, and in a tab) can be modified in personalization mode.

Security profile

A security profile is an association between a role and a set of companies, groups of companies, sites, and groups of sites. A security profile is associated with a user. For example, the user MARTIN can be an accountant in companies A, B, and C, and the CFO of site E.

Snapshot

A snapshot is a new Sage X3 engine function used to work by difference when the data of a class instance is modified.

The principle is as follows:

  • An engine instruction starts the snapshot on the class instance.
  • When this is done, the development partner will,
    • Know if a property of the instance has been modified.
    • Have access to the initial value.

An engine function is intended for the following tasks:

  • Free the snapshot and consider the new values as the initial state of a new snapshot.
  • Return to the initial values.
  • Delete the snapshot and deactivate this mode.

The snapshot management is used by the framework to optimize the updates in CRUD mode. The development partner has access to the snapshot values, especially upon control of the properties.

Storage space

The version 7 platform can be used to define storage spaces that can be associated with a given Endpoint that is usually a Sage X3 folder. A storage space can also be associated with the global Endpoint 'Syracuse' 'collaboration'.

Storage spaces can be private or shared by a group of users. They are defined by a name, an access protocol (http, ftp, webdav, sadfsq protocol from the Sage X3 engine, UNC path, access to the mongoDB database, and so forth), and a Read-only property. Their purpose is to store files by managing their access in a unified manner. For this reason, the version 7 platform uses upload and download functions.

The linked documents used in Sage X3 will be in the near future all managed in storage spaces.

Streamline.js

Streamline.js is an open source tool that was developed to write the asynchronous JavaScript programs.

The main purpose of this library is to transform JavaScript code in order to create a new JavaScript code including callbacks. This process is very astute because standard JavaScript code is managed in both cases (the base JavaScript code uses underscores to identify the asynchronous functions). This transformation can be performed either in a static way or dynamically on the fly. Additional extensions are available for managing parallel branches and Classic of parallel branches at a given time (the “futures”).

Tab

In the Version 7 interface, tabs can be defined inside a page, for example, when non critical information is not needed, use sections that can be folded by default. When a user needs to call several pages simultaneously, several browser tabs can be opened in the version 7 interface. Using tabs in a page for this purpose is consequently not necessary as it would give the user less space on the page.

Table

A table is a database object including columns and indexes for structured data storage. The term 'file' which is still used (originating from an ISAM history) is deprecated and must be forgotten.

Timestamp

Exactly as the UUID, this is a generic property present in tables. Unlike the UUID, it can be absent on some tables. It stores time-stamped information; number of milliseconds elapsed since the 1st of January 1970.

Updtick

In Sage X3 version 7 mode, the optimistic management of access concurrency is now based on a database column named UPDTICK. This field is updated through a database trigger with an initial value of '1' upon record creation, and is automatically incremented every time a modification is made.

When a user session starts a modification on a dataset, the record is no longer locked; but when the update is performed in the database, the record is rewritten with a selection on the previous UPDTICK value. If this record no longer exists, then someone made a modification such as between the reading of the record and the modification attempt.

URL

The URL acronym (Uniform Resource Locator), frequently replaced by “web address”, corresponds to a character string used to address the resources of the World Wide Web: HTML documents, pictures, sounds, Usenet forums, electronic mailboxes, and so forth. URLs are a subset of the Uniform Resource Identifiers (URI). The format (syntax) of a URL is described in the RFC 3986 norm.

Any service supplied by the platform and any activity that can be accessed from this platform has its own URL. This URL is based on a root that defines the address of the server, the protocol used, and the Endpoint (for example, the folder and the Sage X3 solution).

An example of a URL can be:
http://my_server/syracuse/x3/$$prod/DEMO/customer

Use of the browser

Version 7 is an application that takes advantage of all browser resources. It is based on http, HTML 5, javascript, and CSS3. All the inquiries are RESTful, and SData allows using all standard mechanisms of the Web.

The client design is based on the following principles:

  • Management of pages with a single level of scroll.
  • Use of the browser tabs.
  • Management of the browser history (back button).
  • Ability to create favorite shortcuts on activities as they can be accessed through URLs.

Users

The version 7 administration platform includes a user repository. Each user is identified by a code that the authentication mode can manage such as the LDAP folder and the Sage SSO. Once this user is known, the version 7 platform enables the transfer of the identity to the Sage X3 platform using an encrypted token. The Sage X3 platform will then use the filtering options according to the user identity.

A user can have one or several roles corresponding to a set of activities performed in a company with the corresponding authorizations. On the Sage X3 platform, a role is mapped to a function profile.
Several Sage X3 environments can be accessed by a user who can have several roles. For each user, a list of available Endpoints is defined with the corresponding role.

UUID

In the database tables used by version 7, each line is identified by a unique identifier named UUID.

This identifier is stored on 16 bytes and presented in hexadecimal mode as a string of digits and letters. The format is: 110E8560-E19B-11D4-A716-4689655440330.

It is generated using an algorithm that makes it unique in the whole digital universe with a defect probability less than 10 power minus 88. In the Sage X3 tables managed by the version 7 technology, the name of the column storing the UUID is AUUID.

This unique identifier is used by:

  • The Sage X3 engine.
  • The classes.
  • The web client for all the exchanges with the engine.

It identifies a unique data and makes a clear distinction between the new information and the modified information.

Version 7 architecture for Sage X3

In version 6, the web server is on Apache and acting as a proxy with the X3 engine. The protocol between the client and Apache is http based, and the protocol between Apache and the X3 engine is a proprietary protocol based on different nodes with binary data attached.

The version 7 protocol defines how a web client and a version 7 node.js server communicate. It is based on SData with JSON flows and additional extensions. The version 7 protocol is not completely RESTful since a context is managed when a user modifies a resource. Nevertheless, the protocol makes a clear distinction between the stateful sub-protocol and the stateless sub-protocol (used for browsing). This protocol is used from X3 engine to the node.js server, and from node.js server to the web client.

Vignette

A vignette 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, but the term portlet should be preferably used.

Widget

A widget is a graphical component included on a page, and able to manage simple or complex user interactions used to:

  • Browse through the information
  • Display it
  • Update it

These widgets can be configured and placed on a page during the personalization phase. They can be linked to the data on the page unlike the vignettes, gadgets, and portlets which are autonomous components linked to an Endpoint.

To sum up, a widget can be included in a vignette, a gadget, or a portlet; (these three terms being synonyms); however, the opposite is not true.

Working copy

A working copy corresponds to the necessary context for executing a version 7 native function when it is a stateful function as seen on the Sage X3 server side.

A working copy is identified by a unique identifier (UUID).

It corresponds only to a memory instance:

  • If the server stops, the working copy disappears.
  • When the Sage X3 server restarts, the version 7 node.js server is able to resubmit the contents of a draft to recreate a working copy with the context that has been defined by the server session.

X3Script

X3Script is the language used by Sage X3 development partners to define the business logic associated with Sage X3. Formerly called Adonix, this language has been designed to ease the functional development.

X3script is frequently generated from meta data dictionaries, and development partners contribute to the creation of X3Scripts libraries.