%ARMUPDT Macro

Updates a transaction instance that was previously started.

Category: ARM Macro

Syntax

Required Argument

DATA='variable'

is a SAS character variable or a quoted literal from the user-supplied data buffer that contains text to pass to the ARM_UPDATE function call. DATA= is not required, but it is highly recommended. This information is mutually exclusive of user-defined metric values.

Restriction The data value has a 1,020-character limit.

Optional Arguments

LEVEL=numeric constant or variable

is a variable that specifies the execution level. The value must be a numeric constant or variable.

MACONLY=NO | YES

enables the %ARMUPDT macro to be issued in open code. You set the value to YES if the macro can be issued in open code and NO if it can be issued only in a DATA step.

Default NO

METRVAL1–7='name'

is the value of the user-defined metric. The value must be a SAS character variable or a quoted literal. The value can be up to eight characters in length. The value is ignored if the DATA= option is used.

Requirement The value of the user-defined metric must correspond to the user metric defined in the %ARMGTID macro.

SCL=NO | YES

is used only in SCL programs and specifies whether the macro is in an SCL environment. Set the value to YES if the macro is in an SCL environment and NO if it is not.

Default NO

SHANDLE=numeric or constant

is the start handle to use on the ARM_UPDATE function call. The value must be a numeric or constant.

Note Use SHDLVAR= instead of SHANDLE= in new applications. SHANDLE= is obsolete.

SHDLVAR=numeric variable

is a numeric variable that contains the value of the start handle.

Details

The %ARMUPDT macro can be executed multiple times after the %ARMSTRT macro and before the %ARMSTOP macro. It enables you to get information about the transaction instance that is in progress. The %ARMUPDT macro provides a snapshot of information for the transaction instance.
The input is a start handle that is generated by a previous %ARMSTRT macro. If the SHANDLE= or SHDLVAR= option is specified, the value is used as the start handle. Otherwise, the value of the global macro variable _ARMSHDL is used.
Note: User-metric values and user-supplied data buffers are mutually exclusive parameters. Each requires its own update call to get both types of data into the update records.
The output is the _ARMRC variable, which contains the error status code that was returned from the ARM_UPDATE function call.

Examples

Example 1: Basic Usage

data _null_;
  updtdata='Txn still running at' || put (time(),time.);
  %armupdt(data=updtdata);
run;

Example 2: Supplying a Start Handle Using SHDLVAR=

%let _armexec=1;
%let _armacro=1;
data _null_;
  %arminit(appname=application-name, appuser='sasxyz');
  %armgtid(txnname='txn OE', txndet='Order Entry txn class');
  %armstrt(shdlvar=sh1);
run;
data _null_;
  %armupdt(data='OE txn pre-processing complete', shdlvar=sh1 );
run;