Naming Conventions
Deciding upon and consistently applying naming conventions for your Automation Engine objects will help you in your daily work as well as in maintenance tasks, easy recognition and understanding of alerts, security issues, transporting objects and processes from one system to another, etc.
This topic includes the following:
- Introduction
- Character Conventions
- Naming Conventions for Clients
- Naming Conventions for Agents
- Naming Conventions for Agent Groups
- Naming Conventions for Objects - General Considerations
- Naming Conventions for Global Objects
- Naming Conventions for Executable Objects
Renaming objects is always possible. However, giving objects consistent names from scratch helps you in many ways:
- Maintaining your systems
- Producing, understanding and reacting to alerts
- Defining a security concept
- Transporting objects and processes from one Client to another
- Transporting objects and processes from one system to another
- Training new staff
Tip: Use different servers and databases to separate production environments from testing and development environments. This way, production will not be affected by test runs or updates to the testing environment. If needed, however, all three environments can be run within a single Automation Engine system. To be able to smoothly transport objects and processes from one environment to another, using consistent object names is extremely important.
Object names may consist of up to 200 characters. The following characters are allowed:
- A-Z
- 0-9
- _
- -
- .
- $
- @
- #
The following object-specific restrictions must be taken into account:
- Client: 4 numeric digits between 0001 and 9999
- Agent: 32 characters
- Agent Group: 32 characters
- Time Zone: 8 characters
Naming Conventions for Clients
Clients act as self-contained environments. They are represented by Client objects.
If there are no dependencies between tasks in individual subject areas, departments or customers, you may want to run separate Clients for each area. This has the advantage that setting up a user authorization concept is easy. On the other hand, merging clients later on can be a very time-consuming process.
The table below is an example of how to divide up the number ranges for your different areas. The client numbers used for each department or customer are uniformly different in the testing, the development, and in the production systems. This type of numeric allocation is useful when it comes to defining tasks, as tasks are able to determine on which Client (that is, in which system) they are running. Given a logical numbering concept, tasks can therefore configure the required parameters automatically. This can eliminate the need for manually configuring the tasks for each separate environment.
Test system | Development system |
Production system |
---|---|---|
0001 training | ||
0100 internal maintenance |
0200 internal maintenance | 0300 internal maintenance |
1000 FA Finance | 1100 FA Finance | 1200 FA Finance |
2000 FA Insurance | 2100 FA Insurance | 2200 FA Insurance |
3000 FA Warehousing | 3100 FA Warehousing | 3200 FA Warehousing |
When it comes to define a naming concept for Agents, take into account that there are two types: Agents for Operating Systems and Agents for Applications.
Agents for Operating Systems
Using the name of the system on which the Agent is installed is a good choice here. Alternatively, you can use the primary DNS name of the system, in case this is not the same as the system name
This way, you can immediately recognize on which Operating System a client is running; this helps a lot when allocation creating and allocating Operating System jobs.
One potential disadvantage of this approach is that should the system be migrated to a new hardware system, the system name may also change. If the naming concept is to be preserved, this would require all the affected Agent names to be updated, and with them the Job object names.
For dynamically generated Jobs where the Agent is only determined at runtime and then set by a script, renaming the Agent object later on can also be time-consuming. To prevent this from becoming a major issue, the Agent names should be stored centrally for each Client or Process (in Automation Engine variables or Include objects). This approach makes sense if you want to transport objects from one Client to another later on.
Agents for Applications
To better distinguish Agents for applications from Agents for Operating Systems, these should be named with a prefix that uniquely identifies the application, followed by the name of the application instance. The structure of such Agent names would be as follows:
<APP-PREFIX>_<APP_INSTANCE>
For example:
SAP_P01
Naming Conventions for Agent Groups
Agent Groups encapsulate Agents that use the same Operating System or application. In Jobs, Agents Groups can be specified instead of individual Agents for the purposes of load balancing, process parallelization or to ensure high availability. In consequence, their naming should be based on the shared traits of the Agents encapsulated by the group. To help distinguish them and to aid searches of Agent Groups, you may wish to use a prefix such as 'AG_'. For example:
Object name |
Description |
---|---|
AG_UNX_ALL | Group consisting of all UNIX Agents. |
AG_UNX_ORA |
Group consisting of all UNIX Agents running on Oracle database servers. |
AG_WIN_SQL | Group consisting of all Windows Agents running on MS SQL database servers. |
AG_SAP_BASIS |
Group consisting of all SAP Agents to be used for running SAP Basis jobs |
Clustered Agents
If Agents are being run as part of a cluster, we recommend to use a prefix or suffix to distinguish these from non-cluster Agents. For example:
Object name |
Description |
---|---|
P01_UNX_CLUSTER_A | UNIX Agent for SAP P01 instance in cluster "A". |
P02_WIN_CLUSTER_X |
Windows Agent for SAP P02 instance in cluster "X". |
Naming Conventions for Objects - General Considerations
Objects used for designing processes are either executable or global objects. Login, Include, Variable, Notification, and Calendar objects are examples of global objects. These can be used by all the processes within a Client. On the other hand, Jobs, File Transfers and Workflows are examples of executable objects.
When choosing object names, it is very important to have your access authorization concept in mind. An authorizations concept that is both effective and easy to maintain relies on a logically structured naming concept. When assigning names, make sure that you take into consideration the transport paths that will be used. For example, should two Clients be merged into a single Client in the future, objects with identical names will cause issues.
If you intend to transport Processes between Automation Engine Clients, such as between the testing and the production Client, all of the Client-dependent parameters for each self-enclosed process (transport unit) should be stored at a central process location (for example in an Automation Engine Variable object). This includes Agents and paths for processing that may vary between testing and production.
This central configuration object contains either the configuration for all the Clients running the process, in which case it is always included in the transport, or only the configuration of the Client currently running the process, in which case it may not be part of the transport. The first of these two approaches is more time-consuming in terms of maintenance, but it is also more reliable for operation.
In the Automation Engine, authorizations can only be controlled via object names and object types; they cannot be controlled via user-defined folder structures. Because of this, global objects that are only accessible for modification by a restricted User Group should be identified accordingly in their names.
Therefore, object names should consist of the following:
-
A static part that can consist of one or more chunks. They could be:
- Branch
- Department
- Special identifier for a Client's global objects
- Automation Engine object type
The individual identifiers of the static part of the name should have a uniform structure and length for each object type. This improves readability and makes it easier for you to find objects. It also simplifies the automatic evaluation of object names in the case of dynamic objects. Make sure that the static part of the name is not too long; this also improves readability, for example, in process schedules that only display the start of the object names.
- A dynamic part that describes the task.
-
Unique separators consistently used to identify the different parts of the object name.
Example
Naming Concept for Individual Objects
The following convention lets names consist of 6 chunks of information, and defines which separators are consistently used:
Chunk of information in the object name |
Description |
---|---|
SYS |
Prefix that identifies objects that can be used globally across the Client. Modifying them is restricted to a specific User Group |
AA | Country code consisting of two digits, ISO 3166-compliant. |
BBBB | Department (four digits). |
CCCC | Standard object type abbreviation (OBP, JOBS, JSCH, etc.). |
DDD | Platform (three digits). |
DESCRIPTION | User-defined text that describes the task |
. _ # |
Separators. |
According to the schema, you could have the following object names:
Object name |
Description |
---|---|
SYS.LOGIN#WINDOWS |
Global Login object for all Windows Agents |
SYS.CALE#PRODUCTION | Global calendar for production |
UK.FIAC.JOBS_UNX#MONTH_END_CLOSE$STEP1 | Unix job step 1 for monthly settlement of the Financial Accounting Department in the UK |
UK.FIAC.JOBP#MONTH_END_CLOSE$MASTER | Master Workflow for monthly settlement of the Financial Accounting Department in the UK |
UK.FIAC.SCRI#MONTH_END_CLOSE$CHECK_FILES | File checking script for monthly settlement of the Financial Accounting Department in the UK |
Naming Conventions for Global Objects
To simplify the maintenance of processes, the use of global objects should be instated right at the beginning, that is, before any of the processes are transferred to the production system. Central objects, for example, can already be planned for as part of the object templates when creating new processes.
Examples for this are global Includes (script components) for all the objects' available script cards, which later on permit fast updating multiple objects, or the definition of at least one central Notification object for terminations within a process. Both examples would require not only the corresponding objects to be defined but also for the object template(s) to be updated in order for the central objects to be available for all new processes. Any existing process tasks still based on the old templates would need to be adapted manually. As a result, it makes sense to plan out the use of global objects as early as possible.
This table provides examples of how to name and use global objects:
Object name |
Description |
---|---|
SYS.INC#JOBS_UNX.PRE |
Include for the pre-script card of the UNIX Job template |
SYS.INC#JOBS_UNX.SCRI | Include for the script card of the UNIX Job template |
SYS.INC#JOBS_UNX.POST | Include for the post-script card of the UNIX Job template |
SYS.CALL#OPERATING | Include for the attribute card of the Workflow template (‚Result evaluation per single task‘) |
Naming Conventions for Executable Objects
Executable objects can determine their name when launched. Any useful information contained in their names can then be used to configure the object parameters.
Example: The following naming conventions let users include the name of the SAP report and its associated variant in the object name, and distinguishes SAP jobs from other jobs.
Object name (syntax) |
Description |
---|---|
<AA>.<BBBB.CCCC_DDD>#DESCRIPTION |
General jobs |
<AA>.<BBBB.CCCC>_DDD>#<report>@<variant>#DESCRIPTION | SAP jobs |
The Automation Engine script commands for dissecting the name are again stored in central Include objects. These Includes are added to the (SAP) Job templates right at the beginning of constructing the Automation Engine system. This way, every newly created Job already has the Include required for it.
Useful Links
This topic contains references to a number of functions you might want to know more about.