Knowledge Base > Message Number Change

Message Number Changes

The following pages contain detailed information on the impact of the change of message number digits introduced in Automation Engine v10.0.5 and the available solutions or workarounds.

Message Number changed from 7 to 8 digits

What was changed

The length of message numbers has changed with Version 11.1 from 7 to 8 digits.
For example:   
V10.0:  U0003488 Server 'WP' was started as instance '1'.
V11.1:  U00003488 Server 'WP' was started as instance '1'. 

Why this change

The change was introduced with an enhancement to enable an independent release cycle for API.

The enhancement deals with custom contents which is presumably not developed by Automic. Such objects contain messages and captions.
All language dependent texts (messages and captions) are maintained at a central location.
In order
to be able to distinguish between custom and Automic messages and captions the number of digits was increased to 8. 

Details

Table: Possible impact on customers and solutions

No.

What

Solution

1

Filter objects

Filter objects are intended to scan for string patterns and might break.


Filter example:

Filter objects must be adapted. The objects can be found by simply searching them with the GUI search feature or
on databaseA database is an organized collection of data including relevant data structures. level, by submitting a query such as:

 

select OH_Client, OH_Name, OFC_SrcName, OFC_FilterText
from OH, OFC
where OH_Idnr = OFC_OH_Idnr
and OH_DeleteFlag = 0
and OFC_FilterText like '%U[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%'

The SQL above queries exactly for the pattern "Unnnnnnn". If there are other patterns such as "Unn*", the query
must be changed accordingly.

Example result of the query:

OH_Client

OH_Name

OFC_SrcName

OFC_FilterText

50

FILTER.OUTPUT.NEW.1

LOG

U0003488

The query found the filter object shown left.

2

Pre-Process/Process/Post-Process tabs of executable objects:

:SET &hnd = PREP_PROCESS_REPORT(,,ACT)
:PROCESS &hnd
:  SET &line GET_PROCESS_LINE(&HND)
:  IF STR_FIND(&line,"U2004943"<> 0
:   MODIFY_STATE RETCODE 50
:  ENDIF
:ENDPROCESS

The script on the left contains an STR_FIND() function to find a message number with pattern "Unnnnnnn".

To find all scripts with the same pattern, the following SQL can be used:

select OH_Client, OH_Name, OT_Lnr, OT_Content
from OH, OT
where OH_Idnr = OT_OH_Idnr
and OT_Content like '%U[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%'
and OH_DeleteFlag = 0

The SQL above queries exactly for the pattern "Unnnnnnn". If there are other patterns such as "Unn*", the query
must be changed accordingly.

Example result of the query:

OH_Client

OH_Name

OT_Lnr

OT_Content

50

SAP.06.20.JOBS.DISTRIBUTE

1

:SET &hnd PREP_PROCESS_REPORT(,,ACT,'*U2004943*','Col=delimiter',"delimiter=@;@")

50

R3_GET_JOBS

5

:  IF STR_FIND(&line,"U2004943"<> 0

50

JS.SAP.BDC.CHECK

1

:SET &hnd PREP_PROCESS_REPORT(,,ACT,'*U2004943*','Col=delimiter',"delimiter=@;@")

50

INCLUDE_JOB_SAP_ALL_POST_SCRIPT

67

:     IF &MSGID# 'U2004005'

50

UC4TST.INC0314902.SCRIPT.GAR_##STATUS_1900##.SCRI

9

:SET &hnd# PREP_PROCESS_REPORT(,&RUNID_EVENT#,"ACT","*U0020206*Test string*")

The query found the object shown on the left.

 

3

Custom Application Programs

Custom application programs, which parse log files of Automic components, must be adopted.
Although the uc4.jar is not affected by any incompatible change, application programs must be checked for report scans. 

4

Call API for SAP ABAP
The ABAP call API returns the message in a String:

  call function 'UC4' destination 'UC4DSP'
        exporting client = p_clint
                 trcflg = '0'
                 userabtl = p_abtei
                 username = p_usern
                 userpass = p_passw
                 queue = p_queue
        importing msg = o_msg
                  run = o_run
       tables    script = uc4_script
        exceptions
                  logon_failed = 1
                  others = 99.

o_msg would contain "Unnnnnnnn ..." (new format)

If an ABAP program uses the call API, they must be checked on how they deal with the returned string.

5

Call API for Java 
The Java Call API returns the message number as String

String msg = uc4.activateScript(":stop msg,50,\"Hello World\"");
System.out.println(msg);

Output:

U00000050 Hello World (new format)

If such client programs are in place, they must be checked on how they deal with the returned string.

Additional impact on customers running components of different Versions

Be aware that to change everything to the new message format "Unnnnnnnn" requires all components to be from Version 11.1.
Although the old message format and the new message format never can be mixed within one report or within one log file, it might happen that old components are in place and create output in the former format.


Example:  

Running an SAP agent V10 against Automation Engine V11.1 would cause 2 different logs:

Activation Log (NEW format - created from the Engine)
2015-08-19 10:42:29 - U00020206 Variable 'LINK#' was stored with value 'http://www.uc4.com'.

 

Agent Log (OLD format - created from the agent)

2015-08-19 10:42:29 - U2000005 Job 'JOBS.SAP.01' with RunID '5124035' started.
2015-08-19 10:42:29 - U2004018 The job was successfully interpreted.
2015-08-19 10:42:29 R3_ACTIVATE_REPORT REPORT="RSPO0041",COVERPAGE="YES",VARIANT="STANDARD",ABORTED="NO"
2015-08-19 10:42:29 - U2004024 SAP job 'XBP_TEST_1' with number '10422000' was created successfully.
2015-08-19 10:42:29 - U2004020 ABAP Program 'RSPO0041' was scheduled with variant 'STANDARD' .
2015-08-19 10:42:29 - U2004005 SAP job 'XBP_TEST_1' with number '10422000' was released.
2015-08-19 10:42:29 - U2004073 SAP job 'XBP_TEST_1' with number '10422000' is now active.
2015-08-19 10:42:30 - U2004027 SAP job 'XBP_TEST_1' with number '10422000' ended normally.
2015-08-19 10:42:30 - U2004026 Job script ended normally.

 

Hence in such cases please consider the following procedures:

If old and new versions are in place at the same time, the sripts/filters need to be changed, so that they distinguish between versions of the data source.

  1. Distinguish in a Filter object (Filter tab): Apply an OR combination such as


  1. Distinguish in scripts: Based on the agent version
  1. Pull the agent list with a query such as this:
  1. Push the list of agents to a static Variable object with a script such as:
  1. Grab the version of an agent with GET_VAR in order to be able to distinguish: