Setup and specific development 

Introduction

During the installation of products in Sage X3 technology, two levels of intervention on the product are possible.

Firstly, there is the level of the setups, which play an important role for the ergonomics of the software and its functionalities; secondly, there is the level of specific developments. Since the products developed in Safe X3 technology contain an AGL and an execution engine, it is possible to perform developments.

The characterization of functions according to each one of the two levels is therefore not linked to their level of complexity, but determined in the following way:

  • The setup is characterized by the fact that it is generally not impacted in case of a minor version change or a patch application.  This means that it is not necessary to perform any protective action to safeguard it (make it perennial). The setup operations can be accessed, for a user having an ADMIN (administrator) profile, in the menus named Setup, Usage, and the related submenus.
  • The development must be safeguarded by the use of peculiar measures (naming rules, use of dedicated activity codes) that need additional actions. The rules that must be respected in order to safeguard the developments are defined in an annex document. The development operations can be accessed, for a user that has the ADMIN (administrator) profile, in the Development menus, and in the related submenus.

Thus, the setup solutions are generally less constraining (in what concerns the maintenance) and should be preferred when possible to the specific developments.

Furthermore, a classification of the setup operations can be made, according to their degree of difficulty and their accessibility by advanced users. This is true as well for development operations. This classification is carried out later in this document.

The setup can lead to the automatic generation of the code, but this is transparent for the user. The setup operations require in some cases a limited knowledge of the language, because calculation formulas can be used (relatively similar to Excel™ formulas); but an assistant can simplify their creation. In fact, it can be said that there is a simple level of setup and another more complex level. Indeed, some setup operations require development skills.

The development can include or not the writing of code using the Adonix AGL. It is possible to delegate certain development operations that do no require code writing to consultants who are not programmers, but it is necessary to make sure that care is taken to protect these developments from version changes and patches.

The writing of Crystal Reports™ can be similar to the setup operations, but it requires a thorough knowledge of the application database. The online helps on the database structure (conceptual data model, online dictionary) help to simplify the understanding of this structure. Nevertheless, some reports (those that update print flags) require the writing of Adonix code, and the update of the report dictionary is also a development operation (albeit a quite simple one).

Operations related to the setup

Functional submenus belonging to the software in X3 technology are found in the Setup menu. These menus generally correspond to relatively simple setup. The Users, General parameters, Usage submenus require a characterization of the functions included in them. The Organizational structure menu corresponds to a simple setup. This is also the case for the Workflow menu, whose only complex setup is the setup for the Workflow rules.

Update of the simple parameters

These functions simply update parameters or data in the database. If they are not correctly used, there can be functional consequences, but nothing that cannot be reversed (normally). These functions are the following :

Function

Definition

GESAUS

User management

GESACS

Definition of access codes

GESADI2

Miscellaneous tables

GESANM

Document sequence number counters

GESTCA

Sequence number assignments

APARHIS

Purge parameters

GIMPEXPPAR

Import/export parameters

GESAEN

Import/export sequence

ABATPAR

Batch server parameters

The general parameter update function (ADPVAL) is a particular case: it is clearly a setup function, but an incorrect modification of certain supervisor (chapter SUP) and especially engine (chapter ADX) parameters can be very dangerous.

Second level of setup

These setup operations can be considered to be more complex for several reasons:

They can include a validation phase or a code generation phase. This implies that a revalidation is required in case of a folder-to-folder copy. Even if validity controls are performed in these setups, an incorrect setup can still trigger errors during the software execution in some cases.

The following functions are included in this category:

Function

Definition

GESGTC

Inquiry screens

GESAFT

Function profile

GESAFP

Functional authorization

GESAPM

Menu profile

All the entry transaction setups (in all modules) are also included in this category (screens and processing sources are created from this setup).

Another reason why these setups can be complex is that some of them can require a knowledge of the database, because some of the fields from the database will be defined as criteria. This category, which can be a bit more complex to set up, can also require an associated code generation.

The following functions are included in this category:

Function

Definition

GESARL

Role management

GESCDE

Setup of the default dimensions

Finally, certain setup functions can require the use of calculation formulas (setup assistants can be used), or the knowledge of a context (name of the screen to be set up). Generally speaking, knowledge of the database structure, of calculation formulas and of the technical context is often useful or even mandatory to perform these types of setup.

The following functions are included in this category:

Function

Definition

GESAWA

Workflow rules

GESACL

Control tables

CODCTL

Control assignment

CODACC

Access code assignment

GESAOP

Object properties

GESAOC

Object personalization

GESPS1

Statistical triggers

GESPS2

Statistical parameters

GESAOE

Import/export templates

GESAEV

V3 import setup

GESALH

Query creation

GESANX

Database optimization

It is important to note that an incorrect manipulation of some of these setup operations can trigger anomalies and errors on the target objects:

  • The object personalization can cause a malfunction of the object, for instance if the user does not place all the fields that compose the main key of this object in the object left list.
  • An incorrect statistics definition, especially when defined in real time, can trigger errors upon execution of creations and updates, which prevents the functioning of the starting object.
  • The creation of queries, which creates both a screen and processings, can lead to incorrect queries in some cases, when the links are given in an explicit form.

Moreover, the database optimization (GESANX) requires a good technical knowledge in database management; an incorrect setup can lead to the opposite of the desired result (which is to improve the performances).

Specific setup

Two series of functions make up particular cases, but are included in the setup:

Folder management (GESADS), which has an important impact on the exploitation of the software and requires a certain level of expertise, at least for the creation of the live folder.

Automatic journals management (GESGAU), which requires a good knowledge of both the language and the context, requires the generation of code and can, if not correctly set up, lead to the creation of unbalanced automatic journals that cannot be integrated.

Specific developments

Simply put, the specific development corresponds to what is included in the Development menu entries, in the standard menus of the ADMIN profile. Another manner of characterizing the specific development is to say that it requires the use of at least one activity code starting with X, Y or Z to be safeguarded. Two levels of difficulty can be distinguished, according to whether the use of the development language is necessary or not.

Simple specific/customization

These specific developments do not require a greater level of expertise than the previous functions (in certain cases, they are even simpler than some of the more complex functions above). It does not necessarily mean functions, but in certain cases the limited use of certain functions.

The Toolbox setup assistant describes these simple specific developments and the way to perform them.

In any case, the first rule to be observed is the protection of these developments. If this is not done, any revalidation of the folder will lead to them being lost. This requires the definition and activation of at least one activity code starting with X, Y or Z, and the adoption of a standard naming scheme for the created elements.

The operations that are considered to be part of this category include the following:

Function

Definition

GESACV

Activity codes

GESATB (*)

Table management

COMBOS

Local menus

GESATY

Data types

GESAMK (*)

Screens

GESAWI (*)

Windows

GESAOB (*)

Objects

GESAFC (*)

Functions

GESAHI

Purging/archiving formulas

The functions marked with an asterisk can be considered to be easy to implement under certain conditions. The addition of fields to existing tables and screens, the creation of simple objects, simple screens, windows and functions by creation of objects are conditions that simplify the implementation.

Certain development functions can resemble the setup, because of their ease of implementation, but they can be extremely dangerous, because they update the data with a minimum number of controls and sometimes as a mass action. This is the following information:

Function

Definition

GESAMI

System transactions

GMAINT

Maintenance

GSTDCOL

Maintenance in columns

Indeed, the definition of system transactions (GESAMI), to mass-update fields, is very dangerous if made on calculated fields or fields that have integrity constraints that can be disturbed by this function. The maintenance functions can also ignore the integrity constraints.

Furthermore, it can be considered that the functions present in the utilities require a "light specific" knowledge, even if certain functions are potentially dangerous and need to be correctly understood before use. These include:

The verification utilities (UTIBASE, ETAFIC, VERSYMB, AVERSION)

The validation utilities (VALDICO, ACOPDIC, ACOPTRS, ACOMPOBJ, AVALAFC, VALMENU, GENMSKTRT, COPTRT, GENMENULOC)

The folder maintenance utilities (CHDOS, DEVERROU, RAZDOS, IMPDOS)

The search utilities (RECHACT, RECHTYP, RECHACI, RECHMESS, RECHTXT)

The backup utilities (DOSEXTRA, DOSINTEG)

The patch management utilities (PATCH, APATCH, GESAPT, APATCHA)

The miscellaneous utilities (AMIEXE, SYSTEME, LECTRACE, EXETRTVISULIC, PSADX, ADXD, GENTXTTRA, MODCPT, ADELETE, RECUPLNK, ACTIVLNK).

Complex specific/customizations

These specific developments require a thorough knowledge of the development language and therefore an assigned developer profile. The concerned functions are especially all the previous development functions, when they take place on generated screens, all the functions in which an entry point is used, all functions in which it is necessary to write L4G Adonix code (for example in a complex screen). The operations that can be complex are:

  • The definition of the data types (GESATY), the screens (GESAMK), the windows (GESAWI), the functions (GESAFC), the objects (GESAOB), when these functions are used in complex cases.
  • The inquiries (GESACN), the actions and linked functions (GESACT, GESASU, ADOTRT) because the use of Adonix code is required in all cases.
  • The reports if preliminary processings must be carried out.