You are on page 1of 123

GuiXT

with InputAssistant und Viewer

Keywords A-Z

Synactive
Copyright © 2003 by Synactive GmbH,
Raiffeisenstraße 2, D 64572 Büttelborn
www.synactive.com
1st edition – revised version august 2004

All rights reserved.

Synactive is registered trademark of Synactive GmbH.


SAP and R/3 are registered trademarks of SAP AG.
Internet Explorer is registered trademark of Microsoft Corporation
All other trademarks are property of the respective owners and are herewith
acknowledged.
For orders please use the order page in www.synactive.com
or send an email to office@synactive.com.
Contents

AppendFile 5 NoInput 69
ApplyGuiScript 6 NoLeadingZeros 71
Box 7 Numerical 72
BoxSize 8 Offset 73
ButtonSize 9 On 74
Call 10 OpenFile 75
CheckBox 15 Parameter 76
CloseFile 16 Pos 77
ColumnHeader 17 ProcessingOption 79
ColumnOrder 18 Pushbutton 81
ColumnSize 19 Radiobutton 83
ColumnWidth 20 Radiobutton (IA) 85
Comment 21 ReadFile 86
Compress 22 RemoveFile 88
CopyText 24 Retry on error 89
Decimalseparator 26 Return 90
Default 27 Returnvalues 91
Del 28 Set 94
Enter 30 SetCursor 97
FieldSize 33 StatusMessage 98
File 34 Stop 100
GetTableAttribute 35 Tab 101
GlobalTextReplace 36 TableWidth 102
Goto/Label 37 Text 103
HistoryUpdate 38 TextBox 104
Icon 39 TextReplace 105
If 40 Tip 106
Image 45 Title 107
Include 51 TitlePrefix 108
InputField 52 Uppercase 109
Leave 60 Using 110
Link 61 VersionNumber 111
ListImage 62 View 112
Mark 64 ViewHelp 118
Message 67 WindowSize 120
NoDropDownList 68 GuiXT system variables 121
AppendFile
Purpose
With AppendFile you can append a new record to a file, e.g. in
order to fill a table with R/3 data for later use in Excel.
It is also possible to specify a second file. This file is copied to the
first one, and all GuiXT variables in each line are replaced with their
current values.

Example
AppendFile "X:GuiXTFiles\MatDes.txt" s_matnr
s_text s_unit s_price
The value of the variables &[s_matnr] &[s_text]
&[s_unit] &[s_price] is concatenated to a single record.
The values are separated by the delimiter specified in the OpenFile
command (Delimiter=, default delimiter is the tab).
Looking at the example, assume that &[s_matnr]= 10000120
&[s_text]= Bolt &[s_unit]= ST &[s_price]= 0.02 and
that the delimiter is ';'. Then the new file record is
1000001;20;Bolt;ST;0.02

Format
AppendFile "filename" var1 var2 var3 ...
Currently up to 14 variables are possible.
AppendFile "filename" template="templatefile"
The template file is copied and all GuiXT variables &[...] are
replaced with their current values.

Tips&Tricks
See "Special Topics" for a detailed example File handling in
inputscripts.

GuiXT Keywords
5
ApplyGuiScript
Function
With ApplyGuiScript you can use VBScript in order to access the
screen object model (requires SAP GUI 6.20, "SAP GUI Scripting
API for Windows" ) . For example, you can handle special controls
like the "grid" control.

Example
ApplyGuiScript "activate_document_link.vbs"

Format
ApplyGuiScript "filename"
"filename" is the name of a .vbs file. If you do not specify the full
path for the file, GuiXT takes the current script directory. It is also
possible to use files from SAP Web Repository.
ApplyGuiScript template="templatefilename"
"templatefilename" is the name of a .vbs file. GuiXT copies
the template file into a temporary file, replaces the variables, e.g.
"&V[varname]", and executes the script.

Tips &Tricks
For further information and examples, please see the article "SAP GUI
Scripting and GuiXT" in our "Special Topics" .

6 Synactive Documentation
Box
Purpose
With Box you can draw a rectangular box around a group of other
screen elements.

Example
Box (10,20) (16,44) "Invoice data"
A rectangular box will appear with its top left hand corner at
(10,20) and its bottom right hand corner at (16,44). The
heading "Invoice data" will also appear.

Format
Box (row1,column1) (row2,column2)
Box (row1,column1) (row2,column2) "Heading"

Tips&Tricks
• You may use screen variables within the heading text, e.g.
Box (10,20) (16,44) "Invoice data for
&[Ref number]"
• When you place an Image within a Box, we suggest, for
esthetic reasons, that you use somewhat larger coordinates for the
top left hand corner of the image, e.g.
Box (10,20) (16,44) "Heading"
Image (10.2,20.5) (16,44) "Image file"

GuiXT Keywords
7
BoxSize
Function
With BoxSize you can resize a group box

Example
BoxSize G[General data] (5,40)

Format
BoxSize G[Box] (rows,columns)
rows is the height and columns the width of the group box. If one
of the two values, i.e. for rows or columns, is entered as 0, then its
previous value will be retained.

8 Synactive Documentation
ButtonSize
Function
With ButtonSize you can resize a pushbutton

Example
ButtonSize P[Anzeige] (3,20)

Format
ButtonSize P[Pushbutton] (rows,columns)
rows is the height and columns the width of the pushbutton.

GuiXT Keywords
9
Call
Purpose
With Call you can call a function from a GuiXT script or from an
InputScript.
The function can either be a local dll-function (on the frontend PC),
implemented in VC++ or a similar language, or an R/3 function
module on the R/3 application server, implemented in ABAP. In this
case SAP's RFC (Remote Function Call) technology is used.

Examples
Call "ImgName" dll="guiexits" In="&[Material]"
Out="Matfilename"
Call "ImgName" In="&[Material]"
Out="Matfilename"
In the first case the dll-function ImgName is called locally. In the
second case the R/3 function module ImgName is called via RFC.

Format
RFC call*
old format (positional parameters):
Call "funcname" In="par1" In="par2" ...
Out="par1" Out="par2" ...

new format (named parameters):


Call "funcname" In.Name1="par1"
In.Name2="par2" ... Out.Name1="par1"
Out.Name2="par2" ... Table.Name1="tab1"
Table.Name2="tab2" ...
Call "funcname" Destination="dest"
In.Name1="par1" In.Name2="par2" ...
Out.Name1="par1" Out.Name2="par2" ... ...
Table.Name1="tab1" Table.Name2="tab2" ...

*Please see Calling a R/3 function module -Passing parameters


on next page.

10 Synactive Documentation
dll call
Call "funcname" dll="dllname" In="par1"
In="par2" ... Out="par1" Out="par2" ...
Please observe that only up to 20 parameters (In+Out+Tables) are
currently possible.

Option
In case of RFC. Please specify the option immediately after the
function name.
If the function ends with an "exception", no error message is
shown to the user. Instead, the system variable V[_exception]
obtains the name of the exception. With if Q[ok] you can query,
after Call, if the function ended normally.
-try
Example:
Call "RPY_TABLE_READ" -try
in.TABLE_NAME="&V[structid]" ..
if not Q[OK]
Return "E: Structure &V[structid] not
found in data dictionary" –statusline
endif

How to use the output parameters in your script


The output parameters of a Call can be used in the format &[name]
in all subsequent script lines.

Example:
Call "ImgName" In="&[Material]"
Out="MatFileName"
Image (16,81) (24,100) "&[MatFileName]"
Start="&[MatFileName]" "-NoStretch"

Calling a dll function


The function declaration is as follows (example with 2 IN parameters
and 3 OUT parameters):
__declspec(dllexport) int funcname(char* p1, char*p2, char* p3,
char* p4, char* p5)
All parameters (IN and OUT) are passed in the order specified in the
script. The maximum length of each string is 255 characters. Please

GuiXT Keywords
11
specify all parameters in your script, otherwise the dll-function gets an
address exception.
You can download some useful examples from the dll-download-page
in www.synactive.com.

Calling a R/3 function module


Passing parameters
There are 2 variants for parameter passing.
You can either use positional parameters, without specifying a
name:
Call "funcname" In="par1" In="par2" ...
Out="par1" Out="par2" ...
In this case the importing parameters of the function must be named
In1, In2, .., the exporting parameter Out1, Out2,... (R/3 function
library, transaction SE37).

12 Synactive Documentation
Or you use named parameters:
Call "funcname" In.Name1="par1" In.Name2="par2"
... Out.Name1="par1" Out.Name2="par2" ...
Table.Name1="tab1" Table.Name2="tab2" ...
In this case there is no restriction on parameter names.

Restrictions
• All parameters must be of type C (Character), maximum length
255. For example, you could use the reference field SY-LISEL
• EXCEPTIONS are not supported. If any exception occurs, the
user gets a message and the next script line is executed
• Dialogs within the function require a "Call Function
SYSTEM_ATTACH_GUI." in the called function.
• Tables must consist of character-type fields as well.
• The maximum table witdth is 255. No restriction on the number
of lines. If necessary, you can specify a different width
between 1 und 32000 for each table in the call statement:
Table.Name1(width:4000)="tab1"
It is possible to call other function modules from your function
module.

Handling of tables
• Tables are handled in InputScripts like texts.
For example, you can use the TextBox and CopyText statements.
• They are transferred in both directions
• It is not possible to use data dictionary based structures in
InputScripts; you have to use substring notation in order to divide
a table line into single fields

Example: Calling a BAPI


We use the method "Get_Detail" of the R/3 business object "User" to
read the user group (User master record).
Call "BAPI_USER_GET_DETAIL"
In.Username="&[_user]"
Out.LogonData="UserLogonData"
Set V[UserGroup] "&[UserLogonData](18-29)"
Now the variable &[UserGroup] contains the R/3 user group.

GuiXT Keywords
13
Explanation
(see also the interface definition in transaction SE37):
• The system variable &[_user] is passed as importing
parameter Username
• The variable &[UserLogonData] obtains the value of the
exporting parameter LogonData
• According to structure definition BapiLogonE you find the user
group as substring 18-29

Calling other systems


You can call functions in other systems (R/3 or R/2) as well, using the
parameter Destination=...
The destination must be described in the file saprfc.ini; please see the
SAP RFC documentation for details. The file saprfc.ini is either in the
sapgui working directory "...\SAPworkdir", or you use the
environment RFC_INI to name the saprfc.ini file.
Using this technique you can easily integrate information from other
systems into the R/3 screens.

Tips&Tricks
• If you want to implement the dll in some other language, e.g.
Visual Basic, you might need additional tools in order to build the
dll. Please ask the supplier of the corresponding programming
language if you have any problems here.
• It is a good idea to use the test environment of the ABAP
workbench in order to test your function module before you use it
in a GuiXT script.
• It is possible to switch into the R/3 debugging mode if you call
the function module from the script, if you issue a "Call Function
SYSTEM_ATTACH_GUI." before the first Break-Point.
• You can specify the RFC user and password in the GuiXT profile.
As default, GuiXT uses "SAPCPIC" and the corresponding
standard password. The password is stored in the GuiXT profile
in encrypted format.

14 Synactive Documentation
CheckBox
Purpose
With CheckBox you can create additional checkboxes. Its value
("X"=checked, " " otherwise) can be used in an InputScript.

Example
CheckBox (10,1)"Environmentally relevant"
Name="EnvRel"
This defines a checkbox at position (10,1). The internal field name
is EnvRel, i.e. in the InputScript its value is written in the symbolic
form &[EnvRel]

Format
CheckBox (row,col) "text" Name="..."

Options:
Default="..." Specification of a default value, only "X" or "
" are possible

Tips&Tricks
You can also specify a quickinfo for the checkbox, observing the SAP
standard convention for a text with a quickinfo. Example:
"@0L\QAttention: Material safety sheets
required@Environmentally relevant"

GuiXT Keywords
15
CloseFile
Purpose
With CloseFile you can close a file.

Example
CloseFile "X:GuiXTFiles\MatDes.txt"
The file is closed. The next ReadFile command starts at the
beginning of the file with the first record.

Format
CloseFile "filename"

Tips&Tricks
Opening and closing a file is valid for each R/3 mode separately
See "Special Topics" for a detailed example File handling in
InputScripts

16 Synactive Documentation
ColumnHeader
Purpose
With ColumnHeader you can change the column headers in a table
control

Examples
ColumnHeader [Material] "Product"
ColumnHeader [Table.2,Material] "Product"

Format
ColumnHeader [column] "text"
ColumnHeader [table,column] "text"
The table name should be specified if there are 2 or more tables on the
screen and the column name is not unique. You name the table by its
title, if a table title is shown, or otherwise as Table, Table.2, ... If you
click on View àScreen elements in GuiXT you see the correct name
of the table.

Icon and quickinfo


You can also display an icon and a quickinfo. Use the following SAP
notation:
ColumnHeader [column] "@id\Qquickinfo@text"
Here id is the short name of an SAP icon, quickinfo is the
quickinfo string and text is the column header. You will find a list
of all R/3 icons in transaction ICON, and a list of all icon short names
in the ABAP program <ICON> (Transaction SE38, enter the program
name <ICON> and press the Display button).

Example:
ColumnHeader [Description] "@8O\QEnter a
description please@Description"

Tips&Tricks
You can use the icon and the quickinfo to mark a column in a table.

GuiXT Keywords
17
ColumnOrder
Purpose
With ColumnOrder you can change the column order in a table
control.

Examples
ColumnOrder [Material] 2
ColumnOrder [Table.2,Material] 2

Format
ColumnOrder [column] n
ColumnOrder [table,column] n
n is the the new column number, i.e. n=1 means that the column
should be the first column that is displayed, n=2 the second.
The table name should be specified if there are 2 or more tables on the
screen and the column name is not unique. You name the table by its
title, if a table title is shown, or otherwise as Table, Table.2, ... If you
click on ViewàScreen elements in GuiXT you see the correct name
of the table.
The position of all other columns is unchanged.
If the table is already customized by normal R/3 means, and you use
GuiXT in addition, then the GuiXT script overrides.

18 Synactive Documentation
ColumnSize
Purpose
With ColumnSize you can change the column width in a table
control.

Examples
ColumnSize [Material] 8
ColumnSize [Table.2,Material] 8

Format
ColumnSize [column] n
ColumnSize [table,column] n
n is the new column width in the table display (number of
characters).
The table name should be specified if there are 2 or more tables on the
screen and the column name is not unique. You name the table by its
title, if a table title is shown, or otherwise as Table, Table.2, ... If you
click on ViewàScreen elements in GuiXT you see the correct name
of the table.

Columnwidth 0: If you specify width 0, then the column is not


displayed.
If the table is already customized by normal R/3 means, and you use
GuiXT in addition, then the GuiXT script overrides.

Tips&Tricks
• ColumnWidth changes only the visual width of the column.
ColumnSize changes the field size of the column fields both for
data entry and display.
• When using Sapgui 4.6D it is not possible to create additional
GuiXT elements on some R/3 screens that contain large tables; you
get an error message in the GUiXT script window. Use
ColumnSize to delete some of the unused columns, or to
choose a smaller size for some columns, so that you have enough
space left for your additional elements.
From Sapgui 6.20 onwards you won't have this problem.

GuiXT Keywords
19
ColumnWidth
Purpose
With ColumnWidth you can change the column width in a table
control.

Examples
ColumnWidth [Material] 8
ColumnWidth [Table.2,Material] 8

Format
ColumnWidth [column] n
ColumnWidth [table,column] n
n is the new column width in the table display (number of
characters). If the column contains cells that contain more than n
characters, the cell can be scrolled.
The table name should be specified if there are 2 or more tables on the
screen and the column name is not unique. You name the table by its
title, if a table title is shown, or otherwise as Table, Table.2, ... If you
click on ViewàScreen elements in GuiXT you see the correct name
of the table.

Columnwidth 0: If you specify width 0, then the column is not


displayed.
If the table is already customized by normal R/3 means, and you use
GuiXT in addition, then the GuiXT script overrides.

20 Synactive Documentation
Comment
Purpose
With Comment you can display any given comment text on the R/3
screen

Examples
Comment (10,50) "Please use form M10A"
Comment (11,50) "for printout"

Format
Comment (position) "text"

Tips&Tricks
If you want to display a text in a more esthetic way, you can use the
Image command or you can use the View command for the display
of an html file or an rtf text (e.g. as produced in Microsoft Word) .

GuiXT Keywords
21
Compress
Purpose
With the Compress comand you can get rid of empty lines within a
frame or within an entire screen. Lines from below will be moved
upwards to fill the empty ones, thus reducing the area and perimeter of
the frame. This is particularly useful when you have deleted numerous
fields in a screen and you would like to have a compact layout without
necessitating a lot of rearranging and fiddling about.
The frame is compressed vertically, not horizontally; i.e. there is a
reduction in the number of lines but not in the number of columns.

Example
Compress G[further data]

Format
Compress G[frame]
Empty lines (rows) within the given frame will be deleted, the frame
compacted and its size thereby reduced.
Compress
Empty lines (rows) within the given screen will be deleted and the
entire screen compacted.

Tips&Tricks
• Delete the supefluous fields in your script before compressing the
screen.
• In doing so you may have to use the "-triple" option in order
to make sure you also delete the text fields behind input fields;
otherwise the lines won't be able to be compressed.
• You can shift frames or fields before or after compressing.
Usually it makes sense to do so before compressing in order to
have a better overview of the general effect and avoid clutter.
• "Blank line" applies only to the area within a frame if you are
compressing a frame, otherwise it applies to the entire area. It
therefore sometimes makes sense to compress individual frames
before proceeding to compress the entire screen.

22 Synactive Documentation
• If you add your own elements (texts, pushbuttons, inputfields...),
please remember to do it before compressing, otherwise there will
be no available space left to do so afterwards.
• You may find that your own elements are also shifted and your
frames reduced in the compressing process.

GuiXT Keywords
23
CopyText
Purpose
With CopyText you can copy texts between files, screen areas and
text variables.

Examples
CopyText fromText="t1" toScreen="X[LONGTEXT]"
The text in text variable "t1" is copied into the text area
X[LONGTEXT] on the screen.

Format
CopyText from...="name1" to...="name2"

The following are supported:


fromText, fromScreen, fromFile, fromTemplate,
fromString, -fromClipboard, toText, toScreen,
toFile, toString, -toClipboard.
In each case, please specify at least one of fromText or toText.

fromText="t1" toText="t2" Text t1 is copied into text 2


Text t1 is copied into screen area
X[Area].

toScreen= Please observe:


fromText="t1"
"X[area]" The text is actually copied when
the screen is displayed, or with the
next "Enter" in an InputScript
(asynchronous processing).

fromText="t1" toFile="dsn" Text t1 is copied into


file dsn.
toString= The beginning of text t1 is copied
fromText="t1"
"varname" into the variable varname.
Text t1 is copied into Windows
fromText="t1" -toClipboard
clipboard.

24 Synactive Documentation
The text in screen area X[Area]
is copied into text t1.
Please observe:
fromScreen= The text is actually copied when
toText="t1"
"X[area]" the screen is displayed,
or with the next "Enter" in an
InputScript (asynchronous
processing).
File dsn is copied into text t1.
You can also copy files on http
toText="t1" fromFile="dsn" or ftp servers or in the SAP
Webrepository (Notation:
http://..., ftp://..., SAPWR:...).
fromTemplate= File dsn is copied into text t1; all
toText="t1"
"dsn" &-Variables will be replaced.
fromString= The content of variable varname
toText="t1"
"varname" is copied into text t1.
The content of Windows
toText="t1" -fromClipboard
clipboard is copied into text t1.

Options
-append The source text is appended to the target text.

-appendline The source text is appended to the target text as a new


line.
Only in combination with toString=. You specify
the number of the desired line, starting with 1.
line=
After CopyText you can use if Q[ok] in order
to query whether the desired line has been found.
Only in combination with toString= and line=.
delimiter= Instead of "line feed" the specified character is
considered as delimiter.

Tips&Tricks
For examples, see the article Text handling in InputScripts
in "Special Topics" .

GuiXT Keywords
25
Decimalseparator
Purpose
With the Decimalseparator-command you can define the
decimal separator sign (point or comma) that is used in calculations
with Set. As default, the point is taken if the user selected logon
language English, and the comma otherwise.

Example
Decimalseparator "."

Format
Decimalseparator "."
Decimalseparator ","

26 Synactive Documentation
Default
Purpose
With Default you can assign a default value for an input field. In
other words, if the field is blank when the screen is displayed, this
default value will be assigned to it.

Example
Default [Order type] "CS"
If the field Order type is blank, the value "CS" is assigned to it.

Format
Default [Input field] "Value"

Tips&Tricks
• You can assign a Default even for fields which are not
displayed using del.
• When you represent a field by means of a series of radiobuttons
using the Radiobutton command, the assigned default value
leads to the activation of the corresponding radiobutton.

GuiXT Keywords
27
Del
Purpose
With del you can delete fields, field groups, pushbuttons,
radiobuttons, checkboxes, tables and menu items .

Examples
del [Business area.]
del G[Client specific configuration]
del #[12,60]
del [Business area.]+(1,3)
del M[Change]
del M[UPD]
del M[1,4,2]

Format
del [screen element]
In the case of fields both the field name and the value or the input
field that follows are deleted. In the case of field groups all elements
within the group and the group box itself are deleted.

Delete a menu item.


del M[menu item]
del M[fcode]
del M[i,j,k,l]
You can use either the menu item text or the internal function code
(press F1 on the menu item to display the function code). In special
cases you can also work with the hierarchical position of the menu
item, starting with position 1. GuiXT deletes the following elements:
• the menu item itself
• the corresponding push button in the toolbar, if it exists
• the function key assignment
• if the menu item is a submenu, all items of the submenu are
deleted as well
GuiXT also disables the direct input of the function code in the OK
code field.
For further documentation see the article Deleting menu items in
"Special topics".

28 Synactive Documentation
Options
-Triple Applicable for input/output fields with an additional text
field behind the entry field. All 3 fields are deleted.

-Value Applicable for input/output fields.


Only the field value (entry field) is deleted.

-Text Applicable for input/output fields.


Only the field text is deleted.
Applicable if the screen element is a group box.
-Box
Only the box around the fields is deleted.

Tips&Tricks
• If you wish to delete all fields of a field group except one, you
can first shift this field outside the box using pos and then delete
the rest.
• Pushbuttons within the application toolbar can be deleted as well.
With icon pushbuttons you name them using their quickinfo text.
• You can delete several screen elements at once:
del [screen element 1] [screen element 2]
First screen element at the top left corner and the bottom right
element have to be specified. All elements between those two will
be deleted.

GuiXT Keywords
29
Enter
Purpose
With Enter you can simulate a user action within an InputScript. If
you use Enter without specifying anything else, the InputAssistant
simulates pressing the Enter button. You can also specify an internal
function code which corresponds to a menu entry or a pushbutton.

Examples
Enter
Enter "BU"
The internal function code "BU" is activated.
Enter "/nSE38" process="ShowABAPSource.txt"
The transaction SE38 is started and InputScript
ShowABAPSource.txt is executed

Format
Enter
Enter "Value"
Enter "Value" process="InputScript.txt"

Options
OnError=
A function code that is executed in case of an error message, as
response to the first function code.
See Special Topics File Handling in InputScripts, Example 2 for an
example.
Typically, the OnError= function code is "/N" (Cancel transaction)
or "/12" (Cancel). The Script is continued with the Screen command
that is active after executing the OnError function code. The variable
V[_lasterror] contains the error text.
OnError="Continue" This is the most flexible way to handle
error messages, but you have to program all further actions in your
InputScript. In the case of an error message, the script is continued
with the statement after the Enter statement. The variable
V[_lasterror] contains the error text. Among other things you
can now correct certain values with "Set", and then enter a new
function code.

30 Synactive Documentation
Please observe:
• Some of the normal entry fields might be read-only in the case of
an error.
• All statements between Enter ... OnError="Continue"
and the next Screen command are executed only if an error
message is produced by Enter. Otherwise they are skipped.
• It is also possible to use Enter ...
OnError="Continue" several times within one Screen
block, e.g. to try several input values.

Example:
Screen ...
Set [Material] "abc"
Enter "/5" OnError="Continue"
// The following statements are executed in
the case of an error message
Message "Material abc not found"
Set [Material] "xyz"
Enter "/5" OnError="Continue"
// The following statements are executed in
the case of a 2nd error message
Message "Material xyz not found"
Set [Material] "M-01"
Enter "/5"

Wait=
Parameter in milliseconds between 0 and 5000. The Enter is
performed after the specified number of milliseconds.
Enter "/ScrollToLine=..." Table=
Scrolling in a table on the screen. Specify the table name and a line
number, starting with 1.
In list output, scrolling is possible as well; no table name needs to be
specified in this case.

Tips&Tricks
• If no Enter is specified for the current screen, the processing of
the InputScript is terminated. The user can then continue with the
transaction himself.
• See Pushbutton for a description of how to get the internal
code.

GuiXT Keywords
31
• If you activate OptionsàVisible Auto Processing for a test of
your InputScript, you only press the Enter button in each screen in
order to simulate the function code that you specified in the
InputScript.
• Note: if Enter is always executed, the system will loop. In this
case you can stop it by selecting OptionsàVisible Auto
Processing.

32 Synactive Documentation
FieldSize
Purpose
With FieldSize you can change the size of an input or output field.

Example
FieldSize [Material] 10

Format
FieldSize [Screen element] n
The new field size is n characters; n is a value between 1 and the
current field size.

Options
Only that part of the input field which is visible is
-Scrollable reduced; the field becomes scrollable and can still be
made the same length as it originally was.

Tips&Tricks
If the value to be used has more than n characters, the field becomes
scrollable automatically, so that the user can display the increased
value. But normally FieldSize should be used only if you are sure
that the field value will not be more than n characters long, or if its
use is combined with the -Scrollable option.

GuiXT Keywords
33
File
Purpose
With File you can assign an alias name to SAPWR (SAP Web
Repository)scripts with long names (reason: 30 character name length
restriction in SAPWR).

Example
File "saplsmtr_navigation.e0100.txt"
Alias="menu.txt"

Format
File "long_filename" Alias="short_filename"

Tips&Tricks
The File command should be put in session script ESession.txt,
DSession.txt.

34 Synactive Documentation
GetTableAttribute
Purpose
With GetTableAttribute you can read attributes of a table
displayed on screen (table control).

Example
GetTableAttribute T[Table]
FirstVisibleRow=FVisRow
LastVisibleRow=LVisRow LastRow=LastRow
The specified attributes of the table are read into the variables
V[FVisRow], V[LVisRow], V[LastRow].

Format
GetTableAttribute tabid ... attribute=varname
...

Following attributes are available:


FirstVisibleRow= Number of the first row that is visible on
screen (starting with 1)
LastVisibleRow= Number of the last row that is visible on
screen
LastRow= Number of the last row of the table (independent of its
visualization)
For example, at the beginning of a table display you could have
FirstVisibleRow=1, LastVisibleRow=12, LastRow=115; i.e. rows 1 to
12 are currently displayed, and the table has 115 rows in total.

Tips&Tricks
See www.synactive.com "Tips&Tricks" and "Special topics" for a
detailed example

GuiXT Keywords
35
GlobalTextReplace
Purpose
With GlobalTextReplace you can replace a text in the display
of all R/3 screens.

Example
GlobalTextReplace "company code" "regional
office"

Format
GlobalTextReplace "old" "new"
The string is replaced in the following screen elements:
• Field labels
• Screen title
• Group box title
• Push button title and quickinfo
• Message line
• Menu texts
• Column headers in tables
• Table title
The following rules apply for the text replacement:
1. It is not case-sensitive, but the first character remains in upper case
or lower case
2. Longer texts are replaced before shorter ones

The command GlobalTextReplace should be put into the script


ESession.txt (E=English; ISession.txt for Italian). This script is
performed exactly once for each R/3 session, after the logon screen.

Tips&Tricks
The command TextReplace has the same effect, but for a single
screen only.

36 Synactive Documentation
Goto/Label
Purpose
With Goto you can control the InputScript processing.

Example
Goto NextPosition
Label NextPosition
Screen SAPMVCF66G.0400

Format
Goto labelname
Label labelname
The InputScript processing is continued with the line following the
specified label.

Tips&Tricks
• Backward Gotos are possible. They are dangerous since you
could run into an infinite loop. If you produce an infinite loop,
you can activate the "Visible auto processing" option in GuiXT in
order to stop it, and then use a /N-command in order to start a
new transaction.
• If you place the Label statement before a Screen statement,
the processing of the current screen is terminated after the Goto.
If you place it after the Screen statement, the processing
continues even if the screen names are different.
• It is possible to use if/else/endif within a Screen
processing block, but it is not possible to put Screen commands
inside of if/else/endif. Use Goto instead.

GuiXT Keywords
37
HistoryUpdate
Purpose
With HistoryUpdate you deactivate or activate the history update,
either for the whole screen or for a single field (e.g. a date field).

Example
HistoryUpdate [posting date] off

Format
HistoryUpdate off / on
HistoryUpdate [field] off / on
Deactivates or activates the history update for the whole screen or for
a single field.

38 Synactive Documentation
Icon
Purpose
With the Icon-command you can change the icon in the R/3 title line.
By doing this, you are able to differenciate between two applications
at a glance, even if they are only in the taskbar.

Example
Icon "C:\Icones\guixt.ico"

Format
Icon "Name of file.ico"
The icon appears instead of the R/3 icon in the top left corner of
R/3 screens or in the taskbar before the name of the program.
You can define icons in 16x16 or 32x32 format.

Tips&Tricks
• If you put the Icon-command in the script of the R/3 logon
screen, it will appear on all following screens.
• If you want to have client specific icons, you can include
the Icon-command in the script of the system menu S000.
• You can define the icons as "transparent". In this case,
the background colour of the icon will be the colour of the
taskbar.
• Programs helping you in designing or editing icons are either
available as shareware in the internet or included in various
development systems.

GuiXT Keywords
39
If
Purpose
With if you can make script commands dependent on conditions.
For example, on the current GUI-Status or on whether certain fields
exist in the R/3 screen.

Example
if Q[Status=ADD1] or Q[Status=UPD1]
Image (1,50) (10,90) "imgupd.gif"
else
Image (1,50) (10,90) "imgdis.gif"
endif
If the GUI Status is ADD1 or UPD1, the image file "imgupd.gif"
will appear, otherwise "imgdis.gif" will appear.

Conditions
What conditions are available with if ?
Existence of screen elements
Firstly, you can look for the existence of screen elements by simply
naming the corresponding screen element in the if command.
For example:
means: "if there is a field Amount on the
if F[Amount]
screen".
means: "if there is an input field Amount
if I[Amount]
on the screen".
means: "if there is a Cancel pushbutton
if P[Cancel]
on the screen".

Status data
Secondly, you can inquire about certain status data:
if Q[Status=xxxx] If the GUI-Status is xxxx
If the language key is x
(1 character, E=English,
if Q[Language=x]
D=German, F=French,
I=Italian,...)

40 Synactive Documentation
if Q[Database=xxx] if the system (database
server) id is xxx
if Q[Client=xxx] if the client is xxx

if Q[User=xxx] if the user is xxx (see Role


specific user screens )
if the role is xxx (see Role
if Q[Role=xxx]
specific user screens )
if Q[Profile=xxx] if the profile is xxx
If the transaction code is
if Q[Transaction=xxxx] xxxx (N.B. only possible with
R/3 Rel.4 and upwards)
if an R/3 screen variant xxx is
if Q[ScreenVariant=xxxx] active
(with a central GuiXT script)
if the GuiXT Version is equal
if Q[GuiXTVersion=yyyy to yyyy Qx x.
Qx x] You can use <, = or >. See
also Tips & Tricks below.
if the user has provoked a
if Q[StopRequest] StopRequest in an InputScript
(see StatusMessage)
if the current page of a tabbed
if Q[Page=xxxx] dialog is xxxxx (xxxxx is the
text displayed on the tab)
if the variable vname has the
if V[vname=value] value value (only possible
with InputAssistant)
if the using parameter uname
if U[uname=value] has the value value (only
possible with InputAssistant)

User options
Thirdly you can inquire about user options set in guixt.ini:
Option opt1
Option opt2
with if Q[Option0xxxx]. For example, you could offer an
option HelpDisplay. When the user activates this option in
guixt.ini, you could display a help text for certain transactions, either

GuiXT Keywords
41
as image file using Image or as rtf or html file using View. Each
user can then decide individually whether or not to use the help text.
You can define up to 50 different options in guixt.ini, each Option
string containing up to 30 characters.

Is it possible to use nested if else endif ?


Are logical expressions permitted?
Yes, both are possible.

Example:
if not Q[Status=UPD1]
Image (1,50) (10,90) "imgdis.gif"
else
if ([Company code] or [Business area]) and
not [Order number]
Image (1,50) (10,90) "imgupd1.gif"
else
Image (1,50) (10,90) "imgupd2.gif"
Pushbutton (Toolbar) "Cancel" "/OZC27"
endif
endif
You can use normal brackets, "and", "or" and "not" within logical
expressions. Normal rules of logic apply for priority and bracketing.
Inquiring about field values is not possible.
With InputAssistant you can inquire about global variables that can be
set in GuiXT Scripts and InputScripts.

Tips&Tricks
• A field, e.g. F[Company code], cannot be specified directly in an
if statement, please use a variable. Example:
Set V[buk] "&F[Company code] "
if V[buk=0001]
...
endif
• In order to compare two variables V[x1] and V[x2], you have to
use the value &V[x2] in "if V[x1=value]":
if V[x1=&V[x2]]
...
endif

42 Synactive Documentation
• For details concerning if Q[Role=xxx] and
if Q[Profile=xxx] see Role specific user screens at
www.synactive.com.
• "if Q[GuiXTVersion..." is supported in GuiXT version
2002 Q4 3 and upwards. If you want to ensure that in your script
(probably the logon script) the installed GuiXT version is at least
2002 Q4 5, you can use the following coding:
if Q[GuiXTVersion<2002 Q4 5]
Message "Please install new GuiXT versions
\nFor questions contact S. Bauer ext.
2649" Title="Update necessary"
endif

But in this case no message would appear in the versions prior to


2002 Q4 3, since the condition if Q[GuiXTVersion<....] didn't yet
pertain, and the indication "false" is returned. In order to cover
such cases as well, use "not ... >" with the previous GuiXT
version id:

if not Q[GuiXTVersion>2002 Q4 4]
Message "Please install new GuiXT versions
\nFor questions contact S. Bauer ext.
2649" Title="Update necessary"
endif
• You should not use Screen commands within if ... endif,
since this makes the script hard to understand, and sometimes the
behavior will be quite unexpected.
Bad example:
Screen S1
Set V[x] "a"
Enter
if V[x=b]
Screen S2
Enter "xx"
else
Screen S2
Enter "yy"
endif

Assume that we have Screen S1 and then Screen S2. Does GuiXT
now process Enter "xx" or Enter "yy"? In fact, in this example,

GuiXT Keywords
43
Enter "xx" is executed, since GuiXT looks for the next matching
Screen command for Screen S2, without considering open if
statements of previous screen blocks.
Instead , please close all open "if" statements
in each screen block:

Screen S1
Set V[x] "a"
Enter
Screen S2
if V[x=b]
Enter "xx"
else
Enter "yy"
endif
In some cases it makes sense to use goto/label:

Screen S1
Set V[x] "a"
Enter

if V[x=b]
goto l_b
endif

Screen S2
Enter "xx"
goto l_continue

label l_b
Screen S2
Enter "yy"
label l_continue

44 Synactive Documentation
Image
Purpose
With Image you can display image files in the R/3 screens. What is
the point of having images and graphics in R/3 screens?
Four principal reasons spring to mind.
• Firstly, to create a recognizable context.
• Secondly, to orientate us within a screen.
• Thirdly, to give the screen a personal, friendly touch.
• Fourthly, images can carry a mass of vital information,
in particular if the choice of image is data dependent.

Example
Image (10,40) "C:\Images\logo.jpg"
The image file C:\Images\logo.jpg is displayed as of position
(10,40), i.e. the upper left corner of the image is in row 10,
column 40.

Image standards
The following image standards are supported:
• bmp
• gif
• jpg
As a rule it makes sense to use bmp for smaller images (like icons)
and to use gif and jpg for larger ones.

Format
• Image (row,column) "Name of image file"
The coordinates (row,column) are the upper left corner of the
image. They can be specified as decimal numbers in order to position
the image exactly. The image is displayed in its original size.
The image is searched in the current script directory unless a full path
is specified, e.g. "E:\pictures\logo1.bmp". The image files are
internally buffered.
Instead of (row,column) the position (toolbar)is
supported as well. In this case the image size should be

GuiXT Keywords
45
18x18 pixels. The image is displayed at the right hand side of the
toolbar.

• Image (row1,column1) (row2,column2)


"Name of image file"
Here (row1,column1) is the upper left corner and
(row2,column2) is the right lower corner. The image is stretched
to fit into the given rectangular screen area, without keeping its
original proportions (but see -NoStretch option).

Options
-NoStretch Keeps the height/width ratio of the original image.
-Plain No 3D-frame is displayed around the image.
The image is read from the file system each time it is
displayed. Without this option GuiXT keeps the
image in memory in order to avoid reading it from
-NoBuffer the file system each time.
This option is useful if new versions of the image are
provided by external programs (e.g. from R/3 or
timer controlled).
Applicable for .gif and 8-bit .bmp images. The image
is displayed in a transparent way.
-Transparent Technically, the color of the upper left corner of the
image is replaced with the background color of the
R/3 screen.

Multiple Images
It is also possible to display multiple images using the Image
command in a way such that the user can click through the images.
In order to do this you name the images using a sequence number,
e.g. "img01.gif", "img02.gif", "img03.gif".
You then put the special character combination &# (or &##, &###)
into the image filename:

Example
Image (10,40) (16,65) "img&##.gif"
The system substitutes 1, 2, 3... (or 01, 02, 03... or 001,
002, 003...) in the place of &# (&##, &###), increasing the
number each time the user clicks on the image, and decreasing the

46 Synactive Documentation
number with each right mouse click. The mouse cursor shows the
image number.

Data dependent images


The image file name can contain variables that are replaced by their
values before the image is loaded.

Example
Image (4,80) "C:\products\img&[Material].jpg"
If the user enters the material 00500187, the image
C:\products\img00500187.jpg will appear.

Dynamic image construction


Sometimes it is not possible or does not make sense to store all images
in the local file system. In this case you can specify an exe- or bat-File
in the Image command which copies the image file into the local
directory from another source:
Image (row,column) "Name of image file"
exe="program name"
If the system does not find the image file, it carries out the given exe-
or bat-program with the name of the image file as first parameter.
After the program has finished, the image file is displayed. Example
of an Image command:

Example
Image (10,40) (18,74)
"C:\tempimg\chart&[Account]\&[Date].gif"
exe="C:\prog\getchart.exe"

Interaction with R/3 through images


By clicking on the image, you can call optional user inputs which will
be simulated within R/3. This is obtained by using the additional
parameter Input="string":
Image (row,column) "Name of image file"
Input="string"
• You can put values into R/3 input fields
• You can call up menu functions
The notations is as follows:
Input="field1:value1;field2:value2;
field3:value3;OK:fcode"

GuiXT Keywords
47
The function code fcode can either be an internal code taken from the
screen menu, e.g. SCMP, or a transaction code as for example
/NFB01 or /OMM02.
You will find the internal menu codes as follows: choose the desired
function in the transaction menu and press F1 while the mouse cursor
points to this function. Now the R/3 system displays the internal
function code in a pop-up window.
The Enter button, without any special function code, can be called up
with OK at the end of the SAP URL:
Input="field1:value1;field2:value2;
field3:value3;OK"

Starting an InputScript
In conjunction with InputAssistant you can also start an InputScript.
You have to add the process= attribute to the OK:fcode.

Example
Input="field1:value1;field2:value2;
field3:value3;OK:fcode,
process=displaymaterial.txt"
"Using" parameters can be passed to the InputScript with the
notation U[name]:value. You can also set internal GuiXT
variables with V[name]:value and use this value in your
InputScript or in GuiXT scripts.

Example 1
"Input=OK:PR03"
Clicking on the image calls up the function PR03 in R/3.

Example 2
Input="Material:00012345;Plant:0021;OK"
Clicking on the image completes the fields "Material" and
"Plant" and then automatically activates the Enter button.

Start of PC-applications through images


By clicking on the image, you can start PC applications. This is
obtained by using the additional parameter Start="string":
Image (row.column) "Name of image file"
Start="string"
• You can display documents of all registered file types
• You can start .exe or .bat files with parameters

48 Synactive Documentation
Example
Start="\\P00800\Doc12\me21.html"
Clicking on the image displays the html file
\\P00800\Doc12\me21.html in your standard browser.

Telephony
You can pass a phone number to the TAPI component ("Telephony
Application Programming Interface", outgoing calls), using the
parameter dial=.

Example
Image (10,24) "phone.gif"
dial="&F[Phone number]"
If TAPI is installed and configured on this PC, clicking on the image
initiates a phone call to the specified number.

Displaying help files in html format


Component "Viewer" is required for this option
When the user clicks on the image, the help file ViewHelp="..."
is displayed at the right hand side of the R/3 screen.
Interactions with R/3 can be specified in the html file, as described for
the View-command (Setting values, calling functions).
The help display disappears as soon as the user clicks on an R/3 field.
Image (row,column) "Name of image file"
ViewHelp="filename.html"

Example
Image [toolbar] "help.gif"
ViewHelp="doc_intorder.htm"

Options for ViewHelp


Width of the help display (in pixel).
If no width is specified, 40% of the total
ViewHelpWidth= window width is taken.
It is also possible to specify the width in
percentage, e.g. ViewHelpWidth=60%

GuiXT Keywords
49
Height of the help display (in pixel). If no
height is specified, 40% of the total window
ViewHelpHeight= height is taken.
It is also possible to specify the height in
percentage, e.g. ViewHelpHeight=50%
Position (upper left corner) of the help display
in the form (row,column), e.g.
ViewHelpPosition=(10,50).
Or relative to other screen elements, e.g.
ViewHelpPosition= ViewHelpPosition="[Material]+(1,30)".
If you specify a position without specifying
width and height, the whole window is used,
starting at the specified position (lower right
part of the window).

Example
Image (toolbar) "help.gif"
ViewHelp="doc_intorder.htm"
ViewHelpWidth="200"

50 Synactive Documentation
Include
Purpose
With Include you can include a further script file.

Example
Include "radiobuttons_company.txt"
The file "radiobuttons_company.txt" is searched in the current script
directory. It is then interpreted in the same manner as if its content
were part of the original script.

Format
Include "includename"
The file "includename" is searched in the current script directory.
If it is not found, a syntax error message is displayed in the GuiXT
script window, and the main script is continued.
If it is found, first the lines of the include file are interpreted, and then
the original script is continued.
You can also specify the full path, e.g.
Include "\\server12\guixt\inlcudes\r105.txt"
Files in the SAP Web Repository or on http/ftp servers can also be
used, e.g.
Include "http://www.synactive.com/incl/r15.txt"
A nested Include is possible up to level 10.
Please note that it is not possible to use Include in an InputScript.

Tips&Tricks
• You may use variables in the include file name, e.g.
Include "inc&V[company].txt"
• With if...endif you can work with a conditional include, e.g.
if Q[Transaction=IW33]
Include "IW33mainscript.txt"
endif

GuiXT Keywords
51
InputField
Purpose
With InputField you can create additional input fields. The value
entered into a new input field can be used in an InputScript.

Example
InputField (10,1) "Reference number" (10,20)
Size="10" Name="Refnr"
This defines an input field with up to 10 characters. The field label is
displayed at (10,1), the field itself at position (10,20). The
internal field name is Refnr, i.e. in the InputScript its value is written
in the symbolic form &[Refnr] .

Format
InputField (row1,col1) "field text" (row2,col2)
Size="..." Name="..."

Options
-Numerical Only numerical input
-Uppercase Only uppercase input
Input field without label. Both (row1,col1) and
-NoLabel
"field text" are omitted in this case.
-Invisible Invisible input (password)
The field is displayed like a standard required (i.e.
compulsory) input field. In the InputScript you can
-required
check that the user has entered a value. The checking
is not done automatically.
The field value is displayed with a different color
-intensified
(standard: red).
-alignright The field value is aligned right.
-readonly No input possibility
Default= Specification of a default value

MaxLength= Maximum input length.


With this, a greater length than in Size= can be

52 Synactive Documentation
specified; the field will then automatically become
scrollbar.
Specification of a field name that refers to a field in
the R/3 repository,
e.g. TechName="BSEG-GSBER".
When the user presses F4 or clicks on the matchcode
icon, GuiXT processes the standard R/3 matchcode
for this field.
Alternatively, the name of a search-help from R/3
TechName= can be given directly by means of
SearchHelp= SearchHelp="...".
shname= If more than one field is exported by the matchcode
module, GuiXT takes the first one. You can also
specify the name of the desired field with the
shname= option.

This function requires the installation of the ABAP


program ZGUIXTF4 (available on the download
page of www.synactive.com).
You can specify up to 9 selection criteria for the
matchcode display. The names that you specify with
shname, shname2, shname3,... must be
exactly the same as in the definition of the search
help (transaction SE11). The values
shselvalue1, shselvalue2,
shselvalue3,... can either be constants or
other entry fields [...] .
shselname1=
shselvalue1= Examples
shselname2= InputField .... searchhelp="COCAN"
shselvalue2= shselname1="GJAHR"
shselname3= shselvalue1="2002"
shselvalue3= Only cost centers for the year 2002 are displayed.
InputField .... searchhelp="COCAN"
shselname1="GJAHR"
shselvalue1="[Year]"
The content of the entry field [Year] is set as
selection for the year.
InputField .... searchhelp="COCAN"
shselname1="GJAHR"

GuiXT Keywords
53
shselvalue1="[varname]"

The content of variable [varname] is set as


selection for the year.
Please note: For this function you need the ABAP
program ZGUIXTF4 in version 2002 Q3 8 or
upwards.
Please note: For R/3 Rel. 4.0 a special handling is
needed, since the SAP matchcode function did not
yet support the parameterization that GuiXT uses
here.
• In the data dictionary SE11, copy the search
help where you need additional value
selection, using your own name. For
example, copy "BETRA" into "ZZBETRA".
• If you need constant values as additional
selection, enter them as default value, e.g.
R/3 '0001' (including the ' ') .
Rel. 4.0 only • If you need variable values, use a parameter
id, e.g. enter BUK . Use a valid parameter
id according to table TPARA.
• Do not forget to activate the search help
before testing
• In the script, use the notation shselname1=
"$ xxx " shselvalue1= "..." where xxx is the
parameter id. For example: shselname1=
"$BUK "
You need ZGUIXTF4 version 2003 Q4 1 and
upwards.
You can specify up to 9 additional fields; they are
filled when the user selects a matchcode entry. The
shname1= names that you specify with shname1,
shdest1= shname2, shname3,... must be exactly the
same as in the definition of the search help
shname2= (transaction SE11). The target fields shdest1,
shdest2=
shdest2, shdest3,... can either be entry fields
shname2= [fieldname] or variables V[varname].
shdest2= Examples:
InputField .... searchhelp="COCAN"
shname1="LSTAR"

54 Synactive Documentation
shdest1=[Activity type]
When the user selects a cost center, the cost center
key is put into the InputField. In addition,
the activity type contained in the selected matchcode
line is put into the entry field Activity type.
InputField .... searchhelp="COCAN"
shname1="LSTAR"
shdest1=[Activity type]
shname2="KTEXT_KOSTL"
shdest2=V[CC_text]
The variable V[CC_text] is filled with the cost
center text, to be used in further processing.
Please note: For this function you need the ABAP
program ZGUIXTF4 in version 2002 Q3 6 or
upwards.
You can specify an InputScript that is
processed after the user has selected a value
in the search help display.
Some typical applications:
• Display a text in addition to the
selected value
Specify SearchHelpProcess=
"return.txt" , where the InputScript
return.txt consists of the statement
" Return " only. This forces the
SearchHelpProcess= screen to be displayed again, and
the variables set by the matchcode
(like V[CC_text] in the section
above ) are shown to the user.
• Display further data that depends
on the selected value
The specified InputScript reads
additional data (e.g. with a Call
statement) and then uses " Return "
to display the screen again. The
newly read data can be displayed
in the GuiXT script.

GuiXT Keywords
55
Programmed matchcode help
You can also program a special matchcode function in ABAP and
assign it to the InputField.
Notation:
searchhelp= "exit.progname.formname"
Here progname is the ABAP program name and formname is the
subroutine name The form routine has a standardized interface (see
below). It returns the selected value. The special options
shselname1=, shselvalue1=, ..., shname1=,
shdest1= can be handled as well (see "Special Topics" for details).

Example 1
Inputfield (18,1) "Bk" (18,20) name="buk"
size="4" searchhelp="exit.zguixtmc1.mcbuk"

ABAP program:
Program ZGUIXTMC1.

* Value table
data: begin of t1 occurs 100,
bukrs like t001-bukrs,
butxt like t001-butxt,
land1 like t001-land1,
ort01 like t001-ort01,
end of t1.

* Returned value
data: begin of r1 occurs 1.
include structure DDSHRETVAL.
data: end of r1.

Form mcbuk
tables
sel "table with shselname1=,
shselvalue1=,
dest "table with shname1=, shdest1
using invalue
changing selvalue.

56 Synactive Documentation
* Select data
Select bukrs butxt land1 ort01 from t001
into corresponding fields of table t1.

* SAP standard function to display table as


matchcode selection
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'BUKRS'
WINDOW_TITLE = 'Please select a company
code'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = T1
RETURN_TAB = R1
EXCEPTIONS
OTHERS = 1.

* Return selected value


if sy-subrc = 0.
selvalue = r1-fieldval.
endif.

endform.

GuiXT Keywords
57
Example 2: Local file name
Inputfield (6,1) "Filename" (6,20)
name="filename" size="50"
searchhelp="exit.zguixtmc1.mcfile"

ABAP-Program:
Program ZGUIXTMC1.

Data: tmp_filename(80).

Form mcfile
tables
sel "table with shselname1=, shselvalue1=,
dest "table with shname1=, shdest1
using invalue
changing selvalue.

Call Function 'WS_FILENAME_GET'


Exporting
DEF_FILENAME = invalue
DEF_PATH = 'C:\GuiXT'
MASK = ',*.*,*.*.'
MODE = 'O'
TITLE = 'Please select a file '
Importing
FILENAME = TMP_FILENAME
Exceptions
others = 1.

* Return selected value


If sy-subrc = 0.
selvalue = tmp_filename.
Endif.

Endform.

58 Synactive Documentation
Tips&Tricks
• You can also specify a quickinfo for the new field, observing the
SAP standard convention for a text with a quickinfo. Example:
"@0L\QPlease use the external document
number as reference number@Reference
number"
• The InputAssistant displays the history for your new input fields
as well.
• The technical field name required for the matchcode functionality
can be found in standard R/3 help F1, "Technical information".

• Special search help modules


The following special search help modules can also be specified
in SearchHelp="...":
• ... searchhelp="GuiXT.ORGEH"
Hierarchical view of organization
• ... searchhelp="GuiXT.ZTERM"
Payment terms
• ... searchhelp="GuiXT.ZTERM.D"
Payment terms, debitors only
• ... searchhelp="GuiXT.ZTERM.K"
Payment terms, creditors only
• ... searchhelp="GuiXT.DATE"
Calendar
• ... searchhelp="GuiXT.AKONT.D"
shselname1="BUKRS"
shselvalue1="&F[::Company code]"
Control account debitor.
The company code must be specified (constant or variable).
• ... searchhelp="GuiXT.AKONT.K"
shselname1="BUKRS"
shselvalue1="&F[::Company code]"
Control account creditor.
The company code must be specified (constant or variable).

GuiXT Keywords
59
Leave
Purpose
With Leave you can stop the flow of an InputScript. The current
screen is the one displayed. In contrast to Return, there is no return
to the initial (start) transaction.

Example
Leave

Format
Leave

Tips&Tricks
In general it only makes sense to use Leave if you have used Enter.
If you use Leave to stop an InputScript, following a Screen-
command without Enter, the current screen will be displayed
without GuiXT Script execution, and this is not usually what you
want.

60 Synactive Documentation
Link
Purpose
With Link you can link variables to entry fields. In contrast to Set,
the variable is updated automatically with the value entered by the
user. For example, you can use it when you fill fields automatically,
and assume that the user might enter some of the fields manually as
well. In particular, when you simplify transactions using your own
InputFields, it makes sense to use Link on the hidden screens, if the
user can call them up.
There are 2 different formats, indicating 2 different directions of value
setting when the screen is displayed: With one format the entry field is
changed, with the other format the variable is changed.

Example
Link [Date] V[myDate]
The entry field "Date" gets the value of the variable "myDate",
identical to Set [Date] "&V[myDate]".
In addition, after the user has entered a new date, the variable
"myDate" is set to this value.

Link V[myDate] [Date]


The variable "myDate" gets the value of the entry field "Date",
identical to Set V[myDate] "&[Date]".
In addition, after the user has entered a new date, the variable
"myDate" is set to this value.

Format
Link [entry field] V[varname]
The variable sets the entry field and receives newly entered values.
Link V[varname] [entry field]
The variable gets the entry field value and receives newly entered
values.
Link cell[table,column,row] V[varname]
The variable sets the table cell and receives newly entered values.
Link V[varname] cell[table,column,row]
The variable gets the table cell value and receives newly entered
values.

GuiXT Keywords
61
ListImage
Purpose
With Listimage you can display image files in R/3 ABAP lists.
All features of the Image command are available. You specify the
position of the image within the list via a suitable string that you can
choose in the Listimage command.

Restrictions:
• The images are not included if you print the list
• An image is only shown when the corresponding image string is
on the currently displayed part of the list. This means that if you
scroll down the image vanishes completely as soon as the line
containing the image string is no longer visible. On the other
hand, at the bottom of the page the upper part of an image
remains visible.

Please note:
Attribute an interface status to your report by means of the ABAP
command "Set PF-Status ...". The GuiXT script can then be called up
under the report name you have chosen, e.g. "ZIMGR000.D0120.txt".
The Dynpronumber in lists is always 120.
Failing the attribution of such a status the list will appear under the
program name "SAPMSSY0" and the script would then be processed
for all reports which have no attributed interface status.

Example
Listimage "@Cs" (0,0) (20,50)
"C:\GuiXT\Images\ffm.gif"
The image file C:\GuiXT\Images\ffm.gif is displayed in the
list instead of each occurence of the string @Cs. The image
cooordinates are evaluated relative to the position of the string.

Variable images
If you want to display variable images, depending on the value of a
certain field within a list section, you specify the value immediately to
the right of the search string and within normal brackets, e.g.
@Cs(12345678)

62 Synactive Documentation
In this case the name of the image file is modified: the string &par
is replaced with the given value.

Example
Listimage "@Cs" (0,0) (20,50)
"\\p800\products\&par.gif"
The image file \\p800\products\12345678.gif is
displayed. Both the search string @Cs and the value (12345678) are
deleted in the list.

Format
Listmage "string" (row,column) "name of the
image file"
The coordinates (row,column) define the position of the top left
hand corner of the image relative to the "string" in question.

Listmage "string" (row1,column1) (row2,column2)


"name of the image file"
Analagous to the Image command.

Options
Same options as in the Image command; multiple images and
interactions are also possible.

Tips&Tricks
• You should choose a unique search string, otherwise the image is
displayed at other positions as well. Use special character
combinations, e.g. @%.
• Images can also be display at TOP-OF-PAGE or within the
column heading lines of the list.

GuiXT Keywords
63
Mark
Purpose
With Mark you can mark entry fields with a small red cross.
For example, you can mark all fields that should be entered by the
user.

Examples
Mark [Base unit of measure]
Mark [Base unit of measure] "-green"
Mark [Base unit of measure] Image="C:\help.gif"

Format
Mark [entry field]
A small red cross is displayed in front of the entry field

Options
-red Color red (Default)
-green Color green
-blue Color blue
-yellow Color yellow
-black Color black
-white Color white
Instead of a small cross the specified imagefile
Image=filename (e.g., .bmp, .gif) is displayed.
The image size should be 8x8 pixels.

-Text The mark is displayed in front of the field


designation text

64 Synactive Documentation
Displaying help files in html format
Component "Viewer" is required for this option.
When the user clicks on the small red cross, the help file
ViewHelp="..." is displayed at the right hand side of the R/3
screen. Interactions with R/3 can be specified in the html file, as
described for the View-command (Setting values, calling functions).
The help display disappears as soon as the user clicks on an R/3 field.

Example
Mark [Base unit of measure] Image="help.gif"
ViewHelp="doc_unit.htm"

Format
Mark [entry field] ViewHelp="filename.html"

Options for ViewHelp


Width of the help display (in pixel).
ViewHelpWidth= If no width is specified, 40% of the total
window width is taken.
Height of the help display (in pixel).
ViewHelpHeight= If no height is specified, 40% of the total
window height is taken.
Position (upper left corner) of the help
display in the form (row,column),
e.g.: ViewHelpPosition=(10,50).
Or relative to other screen elements,
ViewHelpPosition= e.g. ViewHelpPosition="[Material]+(1,30)".
If you specify a position without specifying
width and height, the whole window is
used, starting at the specified position
(lower right part of the window).

Example
Mark [Base unit of measure] Image="help.gif"
ViewHelp="doc_unit.htm" ViewHelpWidth="200"

GuiXT Keywords
65
Tips&Tricks
If you need the small cross icons separately, for example in order
to display a short explanation of the signs, you can use the Image
command and the filenames
• "mark_red.res"
• "mark_green.res"
• "mark.blue.res"
• ...

66 Synactive Documentation
Message
Purpose
With Message you can display a special message in a separate
popup screen from a GuiXT script or an InputScript.

Example
Message "Price change starting &[AEDAT]"
Title="Please note new prices"

Format
Message "message text"
Message "message text" Title="Title"
The message "message text" which can be one or several lines
long will be shown with title "Title".

Options
The message is displayed in the status line. An already
existing SAP standard message is not shown in this
case.
If the message text starts with "S: " or "E: " or "W: ",
the message is shown as information or error message
or warning message.

-StatusLine Example
Message "E: Amount &V[amount]
exceeds the limit of 50,000" -
StatusLine
• A title parameter is ignored in this case.
• The -statusline option is always assumed in
"Sapgui for HTML" environment (ITS).

Tips&Tricks
• As always you can use variables in the message text and title.
• By inserting \n in your message you can create a carriage return
in your message, by inserting \t a tab.

GuiXT Keywords
67
NoDropDownList
Purpose
With NoDropDownList you change a drop down list into a normal
entry field

Example
NoDropDownList [Order type]

Format
NoDropDownList [Order type]
Changes a drop down list into a normal entry field

Tips&Tricks
This makes sense if the displayed value list contains many or
frequently used entries, so that the users prefer a direct input.

68 Synactive Documentation
NoInput
Purpose
With NoInput you can cancel a field group or field's possibility for
input.

Example
NoInput [Company code]

Format
NoInput [Screen element]
NoInput [Table,columnname]
NoInput [Table,*, rownumber ]
The input possibility is cancelled for fields, check boxes and
radiobuttons. In the case of field groups the cancellation applies for all
elements within them.
You can also specify a table, a table column or a table row.

Options
-SearchHelp F4 search help remains possible.

Example
The following script cancels the input possibility for the column
"Description", and for all already existing table rows (component
InputAssistant required for variable handling):

GuiXT Keywords
69
if Q[Transaction=VA02] and Q[Page=Sales]
NoInput [All items,Description]
// Row index
Set V[i] 1
label NextItem
// Position filled? Then no input
Set V[VA02_item] "&cell[All
items,Item,&V[i]]"
if V[VA02_item]
NoInput [All items,*,&V[i]]
Set V[i] &V[i] + 1
goto NextItem
endif
endif

Tips&Tricks
• It is possible to combine NoInput and Default.
• Row numbers always refer to the visible part of the table, starting
with 1.

70 Synactive Documentation
NoLeadingZeros
Purpose
With NoLeadingZeros you can suppress leading zeros in the field
display. Example: instead of "000123" the number "123" is displayed,
instead of "000000" a single "0".

Example
NoLeadingZeros [House number]

Format
NoLeadingZeros [Screen element]
NoLeadingZeros [Table,columnname]
You can specify a single field or a table column.

GuiXT Keywords
71
Numerical
Purpose
With Numerical you can restrict a field input to digits only.

Example
Numerical [House number]

Format
Numerical [Screen element]
Numerical [Table,columnname]
You can specify a single field or a table column.

72 Synactive Documentation
Offset
Purpose
In order to shift a group of screen elements en bloc, e.g. radiobuttons,
you can use the Offset command. The given offset is then added to
all subsequently specified numerical coordinates.

Example
The following possibilities are equivalent:
Offset (10,21)
Radiobutton (0,0) "..."
Radiobutton (1,0) "..."
Radiobutton (2,0) "..."
and
Radiobutton (10,21) "..."
Radiobutton (11,21) "..."
Radiobutton (12,21) "..."

Format
Offset (row,column)

Tips&Tricks
With Offset (0,0) you can cancel the effect of a previous
Offset .

GuiXT Keywords
73
On
Purpose
With On an input script can be processed if the user presses Enter or
a function key. On is used in a GuiXT script.

Examples
On "Enter" Process="nextproduct.txt"
On "/11" Process="update.txt"

Format
On "fc" Process="script"
On "fc" Process="script" Fcode="newfc"
"fc" can be one of the following strings:
• "Enter"
• "/n" where n is the number of a function key
• "/Menu=i,j,k,l" where i,j,k,l represent a menu entry. Please
use the Input Recording option in order to generate the correct
menu path
Fcode="newfc" the code newfc is invoked. This can be a code
from the menu, e.g. SCMP, or a transaction code like /NFB01 or
/OMM02.

Tips&Tricks
A combination of function keys with the Ctrl and Shift keys can
be represented by a number between 13 and 48:
Shift = +12
Ctrl = +24
The Enter key can be represented by /0.

Example
On "/39" Fcode="/0" Process="warning.txt"

Result
When the user presses Ctrl+Shift+F3, the Enter key is simulated and
the script warning.txt is processed.

74 Synactive Documentation
OpenFile
Purpose
With OpenFile you can open a file and then read the file with
ReadFile or write records to file with AppendFile.

Example
OpenFile "X:GuiXTFiles\MatDes.txt"
The file is opened in read-only mode.
OpenFile "X:GuiXTFiles\MatDes.txt" -Output
Delimiter=";"

Format
OpenFile "filename"

Options
The file is deleted, if it exists, and you can now
-Output
insert new records into the file with AppendFile.
The file is not deleted and you can append new
-Append
records with AppendFile.
The delimiter that you specify here, e.g. ';', will be
used in ReadFile and AppendFile in order
Delimiter="x"
to separate the fields from each other in a record.
Default delimiter is the tab.

Tips&Tricks
• Opening and closing a file is valid for each R/3 mode separately.
• It is not necessary to open a file explicitly with OpenFile, since
ReadFile or AppendFile contain an implicit open. But it is
good practice to do it explicitly, since otherwise a missing
CloseFile means that a ReadFile will read nothing at all
the next time.
See "Special Topics" for a detailed example.

GuiXT Keywords
75
Parameter
Purpose
With Parameter you can define a parameter for an InputScript.
When you activate the InputScript you can specify a value for each of
its parameters.

Examples
Parameter Amount
Parameter Curr "USD"
This defines two parameters: Amount and Curr. The parameter
Curr obtains the value "USD" if no value is specified in the
InputScript call.
You can use a parameter in any of the InputScript lines with its
symbolic name &[Name], e.g. &[Amount] and &[Curr] .

Format
Parameter Name
Parameter Name "Defaultvalue"

Tips&Tricks
• You can query whether a parameter has a value different from
space, resulting either from using or from its default value:
if U[Name]
• It is also possible to compare it with a fixed value:
if U[Name=Value]

Example:
if not U[Curr=USD] and not U[Curr=SFR]
Return "Currency &[Curr] is not supported
here"
endif

76 Synactive Documentation
Pos
Purpose
With pos you can shift fields, field groups, pushbuttons, radiobuttons,
check boxes and tables to new positions.

Examples
pos [Business area.] (10,50)
pos [Client specific configuration] [Client
specific configuration]+(10,0)
pos #[12,60](12,50)
pos T[ORDERS](10,20)

Format
pos [screen element] (position)
In the case of fields both the field name and the value or the input
field are shifted. In the case of field groups all elements within the
group and the group box itself are shifted.

Options
-Triple Applicable for input/output fields with an additional
text field behind the entry field. All 3 fields are shifted.

-Value Applicable for input/output fields.


Only the field value (entry field) is shifted.

-Text Applicable for input/output fields.


Only the field text is shifted.

Tips&Tricks
• If you wish to move all fields of a field group except one, you can
first remove this field from the box using pos and then move
the rest.
• If you specify the position within a script command symbolically
by another screen element and shift this screen element to a new
position using pos, then its old position is valid f/r all script
lines before the pos command, and the new position for all
following script lines.

GuiXT Keywords
77
Example
text [Account]+(0,50) "Text 1"
pos [Account] [Account]+(1,0)
text [Account]+(0,50) "Text 2"
The two text strings "Text 1" and "Text 2" appear in
two lines one under the other.
• If you want to swap over the position of two fields, it is not
correct to do it in the following way:
pos [Account] [Currency]
pos [Currency] [Account]
Instead you must use absolute coordinates in the 2nd pos
command, or refer to a fixed screen element.

78 Synactive Documentation
ProcessingOption
Purpose
With ProcessingOption you can set special processing options.

Example
ProcessingOption ReturnOnError=Off
ContinueOnPopup=Off

Format
ProcessingOption option=On/Off
The option is switched on or off or a certain value is set. The
default for each option is shown below as an example.
All options that control the processing of an InputScript are reset to
their default value when the InputScript is started. The other options
remain valid for the whole session; they should be set in the session
script esession.txt.

Options
On: If a popup screen is not found
in the InputScript, it is displayed
and the InputScript is continued.

ContinueOnPopup=On Off: If a popup screen is not


found in the InputScript, the
InputScript is terminated with the
display of the popup.
Use in: InputScript
On: If the SAP application issues
an error message, the start
transaction is called again, all input
values are filled set again, and the
error message is displayed.
ReturnOnError=On
Off: If the SAP application issues
an error message, the InputScript is
terminated and the error message is
shown on the current screen.
Use in: InputScript

GuiXT Keywords
79
On: Warning messages are treated
as error messages .

TreatWarningAsErrors=Off Off: Warning messages are


skipped, but inserted in the status
window (see StatusMessage).
Use in: InputScript
Number of warning messages to be
processed automatically for each
MaxWarnings=20 screen. A further warning message
is treated like an error message.
Use in: InputScript
On: In commands like Set V[x]
"F[element]", leading space in the
field value is kept.
LeadingSpace=Off Off: In commands like Set V[x]
"F[element]", leading space in the
field value is deleted.
Use in: session script
Transaction code used for the
SearchHelpTransaction= search help function (F4) for your
"ZXF4" own input fields.
Use in: session script

80 Synactive Documentation
Pushbutton
Purpose
With Pushbutton you can create your own pushbuttons within an
R/3 screen or within the toolbar. You can make both the menu
functions and the navigation to other transactions directly accessible
with your own pushbuttons.

Example
Pushbutton (10,50) "Split Screen Editor"
"SCMP"
You create a pushbutton at row 10, column 50 with text
Split Screen Editor. Clicking on the button invokes the
internal code SCMP which then starts the Split Screen Editor.

Internal codes
How do I find the internal codes?
Choose the desired function in the transaction menu and press F1
while the mouse cursor points to this function. Now the R/3 system
displays the internal function code in a pop-up window

Format
• Pushbutton (row,column) "Pushbutton text"
"FCode" Process="..."
Adds a pushbutton on position (row,column). The pushbutton
invokes the internal code FCode. This can be a code from the
menu, e.g. SCMP, or a transaction code like /NFB01 or
/OMM02.
"Process=..." relates to the InputScript file. You can omit
the "fcode" parameter if only "Enter" is needed in order to
continue with the transaction.
• Pushbutton (Toolbar) "Pushbutton text"
"FCode"
Adds a pushbutton in the application toolbar. A free funtion key
is assigned automatically and displayed in the quickinfo.

GuiXT Keywords
81
• Pushbutton (Toolbar) "Pushbutton text"
"FCode" "Fkey"
Optionally you can specify a function key of your choice as an
additional parameter Fkey using the format
F1,..F12, Shift+F1,...,Shift+F12,
Ctrl+F1,...,Ctrl+F12,
Shift+Ctrl+F1,...,Shift+Ctrl+F12.
If this function key is already in use the system chooses the next
available number.
example: Shift+F5 à F17, F3 à F3

Icon and quickinfo


You can also display an icon and a quickinfo. Use the following SAP
notation:
Pushbutton (position) "@id\Qquickinfo@text"
Here id is the short name of an SAP icon, quickinfo is the
quickinfo string and text is the pushbutton text. You will find a list of
all R/3 icons in transaction ICON, and a list of all icon short names in
the ABAP program <ICON> (Transaction SE38, enter the program
name <ICON> and press the Display button). Example:
Pushbutton (10,50) "@3G\QInvoke the Split
Screen Editor@Split Screen" "SCMP"

Options
The pushbutton is displayed in a larger size (x rows).
Size="x"
The default size is 1, maximum 99.

Size=(x,y) The pushbutton is displayed in a larger size (x rows and


y columns).
In conjunction with (Toolbar) . The pushbutton is
-separator
separated from the existing ones by a small vertical line.

Tips&Tricks
• You can delete pushbuttons from the toolbar using
del [Pushbutton text]
• You can add a quickinfo to an existing pushbutton using
Tip [Pushbutton text] "Quickinfo".
• New pushbuttons in the toolbar are added on the right hand side.
They are also displayed in the function key overview window
(right mouse button); here the order corresponds to the assigned
function keys.

82 Synactive Documentation
Radiobutton
Purpose
With Radiobutton you can replace an input field with a series of
radiobuttons. Instead of having to enter a certain code, the user can
simply click on one of the radiobuttons. This will make the operation
much easier for the untrained user and save time for the trained user.
Instead of a single field you can also specify up to 6 fields and values
for one radiobutton. In this case clicking on the radiobutton means that
each of these fields gets the corresponding value when you press the
Enter button.
Please note: In addition, there is a RadioButton syntax if you
work with InputScripts and internal variables, see InputAssistant
Documentation Radiobutton next pages.

Examples
Radiobutton (10,1) "Cash sale"
[Order type] "CS"
Radiobutton (11,1) "Internet order"
[Order type] "IO"
Radiobutton (12,1) "Returns"
[Order type] "RE"
del [Order type]
A radiobutton with text "Cash sale" will appear at row 10,
column 1. Clicking on the text or button is equivalent to entering
the value "CS" in the field [Order type]. Similarly, when
the system displays the screen with a value "CS" in the field
[Order type], the radiobutton "Cash sale" is activated.

Radiobutton (10,50) "Foods" [Division] "05"


[Sales office] "0001"
Radiobutton (11,50) "Cosmetics" [Division] "14"
[Sales office] "0002"
del [Division]
del [Sales office]

GuiXT Keywords
83
Format
Radiobutton (position) "Text next to
radiobutton" [Input field] "Value"
Radiobutton (position) "Text next to
radiobutton" [F1] "V1" [F2] "V2" ...

Tips&Tricks
• It is also possible to display both radiobuttons and the input field.
This can be of value if you cannot foresee all possible values,
but you know that a small subset of values is used in most cases.
If the user then clicks on a radiobutton, the corresponding value
will be substituted, but if he chooses to directly enter a value,
he may do so. Should both actions be performed, the radiobutton
choice takes precedence.
• If the referenced field ([Order type] in our example)
contains a value which does not correspond to any radiobutton,
no radiobutton will be activated. As a rule, you should not delete
the reference field if you are not sure that you have covered all
possible values within the radiobutton group.
• Radiobuttons treat " " and "00" the same way. Capital/small letter
writing is also ignored. The reason for that is that "00" is shown
as " " in several R/3 screens (variable between edit/show screens)
and small letters are transformed into capital letters.
By using option "==" in front of the value you can switch off this
automatic feature, i.e.:
Radiobutton (7,10) "Standard"
[Abschlagszyklen] "== "
Radiobutton (7,35) "Keine Abschläge"
[Abschlagszyklen] "==00"
• After an error message it might be that a certain subset of the
input fields that you specified is changed to read-only by the R/3
system. In this case some of your radiobuttons are changed to
read-only too.
The exact condition is: The radiobutton state is changed to read-
only if at least one of its fields is both read-only and its value is
different from the value that you specified.

84 Synactive Documentation
Radiobutton (IA)
Purpose
With RadioButton you can create radio buttons that correspond to
the value of a variable. All radiobuttons with the same variable name
are considered to be a group, i.e. when the user clicks on one of them,
the others are turned off.
Please note: In addition, there is a RadioButton syntax for
replacing an input field with a series of radiobuttons.
See GuiXT Documentation Radionbutton on previous pages.

Example
// Set default office: Boston
if not V[SelOffice]
Set V[SelOffice] "60"
endif
// Office selection
Offset (8,0)
Box (0,0) (4,30) "Select Office"
RadioButton (1,1) "Boston" Name="SelOffice"
Value="60"
RadioButton (2,1) "Paris" Name="SelOffice"
Value="62"
RadioButton (3,1) "Roma" Name="SelOffice"
Value="80"
This defines 3 radiobuttons.
The internal variable V[SelOffice] is set to one of the values
"60", "62", "80", according to the selected radiobutton.

Format
RadioButton (row,col) "text" Name="..."
Value="..."

GuiXT Keywords
85
ReadFile
Purpose
With ReadFile you can read a record from a file into GuiXT
variables. You can then use the values in an InputScript.

Example
ReadFile "X:GuiXTFiles\MatDes.txt" s_matnr
s_text s_unit s_price
A new record is read from the file. Using the delimiter given in the
OpenFile command (Delimiter=, default delimiter is the tab),
the record fields are separated from each other and the variables are
filled with the field values.
For example, if you read the record
1000001;20;Bolt;ST;0.02
then the variable values are
&[s_matnr]= 10000120 &[s_text]= Bolt &[s_unit]= ST
&[s_price]= 0.02

Format
ReadFile "filename" var1 var2 var3 ...
Currently up to 14 variables are possible.
If you specify more variables than contained in the file record, then all
remaining variables are cleared.
If there are no more records in the file (end of file), then all variables
are cleared.

Options
Removes the quotation marks around field
values.

-StripQuotationMarks Example:
ReadFile -stripQuotationMarks
"X:GuiXTFiles\MatDes.txt"
s_matnr s_text s_unit s_price

86 Synactive Documentation
Tips&Tricks
You can handle the "end of file" condition in an InputScript in the
following manner (example):
if not V[s_matnr]
goto script_end
endif

See "Special Topics" for a detailed example

GuiXT Keywords
87
RemoveFile
Purpose
With RemoveFile you can remove a file.

Example
RemoveFile "X:GuiXTFiles\temp.txt"
The file is removed.

Format
RemoveFile "filename"

Tips& Tricks
With OpenFile and option -output you can delete the file content
without deleting the directory entry. RemoveFile deletes the
directory entry as well.

88 Synactive Documentation
Retry on error
Purpose
Retry on error repeatedly activates the "Enter" button
(following the appearance of an error message) until the error message
disappears from the current screen. This is particularly useful in an
InputScript following a modifying or complementary transaction,
when you call up a further transaction for which the completion of the
current transaction is a necessary condition. The system displays an
error message until the required modification has been confirmed. If
you are using Retry on error for the Screen in question, the
"Enter" button will be automatically activated after a certain time.
This automatic activating of "Enter" occurs up to 20 times in
increasing time intervals: 0.3, 0.6, 0.9, 1.2, ... seconds. If the error
message still appears, the processing continues as if the error message
had occurred without "Retry on error" applying.
When using "Retry on error" you don't need any additional
Screen commands.

Example
Retry on error

Format
Retry on error

Tips&Tricks
If you execute the InputScript in "Visible auto processing" mode, the
option "Retry on error" will be ignored.

GuiXT Keywords
89
Return
Purpose
With Return you can terminate the processing of an InputScript,
and return to the calling screen

Example
Return "Only currency USD is supported for the
fast posting mode"

Format
Return
Return "message text"
Return "message text" "title"
After returning the message "message text" is displayed with
title "Title".

Options
The message is displayed in the status line. An already
existing SAP standard message is not shown in this
case.
If the message text starts with "S: " or "E: " or "W: ",
the message is shown as information or error message
or warning message.
-StatusLine
Example
Return "E: Amount &V[amount] exceeds
the limit of 50,000" -StatusLine
• A title parameter is ignored in this case
• The -statusline option is always assumed in
"Sapgui for HTML" environment (ITS)

Tips&Tricks
• As always you can use variables in the message text and title
• By inserting \n in your message you can create a carriage return in
your message, by inserting \t a tab

90 Synactive Documentation
Returnvalues
Purpose
With Returnvalues you can return values from a new mode,
opened with "/O...,process=... ", to the old mode. As target fields, both
entry fields and variables can be used. It is also possible to invoke a
function code and to start an InputScript.

Examples
Returnvalues "Material:&V[mat];Amount:&V[amnt]"
The content of the variable V[mat] (new mode) is set into the entry
field Material (old mode), and the content of the variable V[amnt]
(new mode) is set into the entry field Amount (old mode).
Returnvalues "V[mat]:&V[matnr]"
The content of V[matnr] (new mode) is set into variable V[mat]
(old mode).
Returnvalues
"U[MATNR]:&V[matnr];OK:/8,process=next.txt"
In the old mode, function key F8 is invoked and the InputScript
"next.txt" is started. Parameter U[MATNR] of the InputScript
gets the value of variable V[matnr] (old mode).

Format
Returnvalues string
The string syntax is the same as documented in Image for the
parameter Input="...".

GuiXT Keywords
91
Screen
Purpose
With Screen you initiate the automatic processing of a screen in an
InputScript.
When the InputAssistant processes a transaction internally, the next
matching Screen command in the InputScript is searched and the
corresponding script commands are performed. If no matching
Screen command can be found, the screen is displayed and the user
can complete the transaction.

Example
Screen SAPMF05A.0300
This initiates the processing of screen 0300 of program SAPMF05A.

Format
Screen program.screennumber

Tips&Tricks
• For nested screens only the top screen is specified, i.e. the screen
where the user fills in the values.
• Specify the screen number with 4 digits
• You should not use Screen commands within if ...
endif, since this makes the script hard to understand, and
sometimes the behavior will be quite unexpected.
Bad example
Screen S1
Set V[x] "a"
Enter
if V[x=b]
Screen S2
Enter "xx"
else
Screen S2
Enter "yy"
endif

92 Synactive Documentation
Assume that we have Screen S1 and then Screen S2. Does GuiXT
now process Enter "xx" or Enter "yy"? In fact, in this example,
Enter "xx" is executed, since GuiXT looks for the next matching
Screen command for Screen S2, without considering open if
statements of previous screen blocks.
Instead
please close all open "if" statements in each screen block:

Screen S1
Set V[x] "a"
Enter

Screen S2
if V[x=b]
Enter "xx"
else
Enter "yy"
endif

In some cases
it makes sense to use goto/label

Screen S1
Set V[x] "a"
Enter

if V[x=b]
goto l_b
endif

Screen S2
Enter "xx"
goto l_next
label l_b

Screen S2
Enter "yy"

label l_next

GuiXT Keywords
93
Set
Purpose
With Set you can assign a value to an input field. The Set
command is useful in the definition of an InputScript. In contrast to
Default, the Set command ignores any previous field value. It
does not make much sense to use Set in normal GuiXT scripts.
You can also use set in order to assign a value to a global variable. Be
careful to use unique names for your global variables.

Example
Set [Order type] "CS"
The value "CS" is assigned to the field [Order type].
Often the value is specified as a parameter of the InputScript, or as a
previously defined input field, e.g.
Parameter OType
...
Set [Order Type] "&[OType]"
The following line sets the value of a global variable
MM01_current_material:
Set V[MM01_current_material] "&[Material]"

Format
Set [Input field] "Value"
Sets an input field value
Set V[vname] "Value"
Sets a global variable
Set V[gnm*] "Value"
Sets all global variables where the name starts with "gnm*"
Set * V[vname](x-y) * "Value"
Sets a substring of a global variable. If the former length of the
variable is less than x, it is filled with "Space" until position x.

94 Synactive Documentation
Options
The specified string is searched in the given text
(ignoring upper/lower case). If the string is
found, the following word is set into the
variable.

Example
Search= Set V[docno] "&V[_message]"
Search="document"
Assume that the system variable
V[_message] has the value "Document
10004003 was posted".
The variable V[docno] then gets the value
"10004003".
-uppercase The value is put into upper case
-lowercase The value is put into lower case

Computations
Set allows computing with the operators +, -, *, /, using 2 operands
in each case. The result is put into a variable in edited format.
Both operands can be either values (e.g. 1 or 5830), or can be
referenced by variable names ("&V[...]").

Examples
Set V[value] 5830 / 365
Set V[value] "&V[total]" / 365
Set V[value] "&V[total]" / "&V[days]"
Set V[total] "&V[amount1]" + "&V[amount2]"
Set V[index] "&V[index]" + 1
The result is rounded to 2 decimal places.
For logon language English a decimal point is used, otherwise a
comma. See also the Options and the DecimalSeparator
command.
If the result is an integer value, no decimal places are shown, e.g.
"12" instead of "12.00".

GuiXT Keywords
95
Specifies the number of decimals places in the
decimals= result (0,1,2,3,...). Integer values are then also
displayed with decimal places, e.g. "12.00".
You can specify "." or ",".
decimalseparator= The decimal separator is used both for
interpreting the operands and for editing the
result.
You can specify "," or ".".
groupseparator= Groups of 3 digits are separated by the specified
character.

Example
Set V[x] 24682471 / 7 Decimals=3
DecimalSeparator="." GroupSeparator=","
The variable V[x] obtains the value "3,526,067.286".
The exact result is "3526067.285714...". It is rounded to 3 decimal
places, and then edited according to the specified options.

Tips&Tricks
• You can mark a checkbox with Set: use the values "X" or " ",
or a parameter which has one of these values.
• In a similar way you can use Set for radiobuttons.
If you activate one radiobutton it is not necessary to deactivate
the other radiobuttons in this group; this is done automatically.
For example
Set [Documentation] "X"
in transaction SE38 would deactivate the other radiobuttons
[Source], [Variants], [Attributs],
[Text elements].

96 Synactive Documentation
SetCursor
Purpose
With SetCursor you can set the cursor into a certain input field,
into a table cell or on a position in a list.

Examples
SetCursor [Name]
SetCursor cell[Table,Material,5]
SetCursor (4,1)

Format
SetCursor [fieldname]
Sets the cursor into the field.
SetCursor cell[table,column,row]
Sets the cursor into a table cell.
SetCursor (row,col)
List display: Sets the cursor on a certain position in the list.

Options
Offset=x The cursor will be positioned x spaces from the left border
within the field (or table cell).

GuiXT Keywords
97
StatusMessage
Purpose
With StatusMessage you can display status messages during the
processing of an InputScript. With the first StatusMessage
command, all system messages (including warnings and error
messages) are also automatically included in the status message
listbox.

Examples
StatusMessage Title="Creating material"
A listbox with the title "Creating material" is displayed. All system
messages and your own status messages are displayed during the
processing of your InputScript.
StatusMessage AddString="creating sales data.."
Adds a new line "creating sales data..." to the listbox.

Format
StatusMessage

Options
A title should be given in the first
Title= StatusMessage command.
You can change it later if necessary.
AddString= A new text to be added to the listbox
Display of a text e.g. "Processing aborted".
The text is shown in the system menu of the
listbox. As soon as the user clicks on the menu
item, an internal status "StopRequest" is set
which can be questioned within the inputscript
StopRequest= by
if Q[StopRequest],
for example after Enter or within data processing
before reading a new line. The inputscript can
process different ending procedures (e.g. close
files) and finally stop processing.

98 Synactive Documentation
Size of the listbox in lines and columns.
Size=
(Lines,Columns) If one of the values is given as 0, the previous
value will be retained.
Position of the listbox in lines and columns, or in
symbolic form. Examples:
Position=
... Position=(10,40)
... Position=[Company code]+(2,10)
-ResetContent Resets the content of the listbox
-Remove Removes the listbox from screen
Controls the inclusion of system messages into
the status message window. You select the
message types E (Error), W (Warning), or I
(Information) , or On / Off.
Examples:
SystemMessages=On
All system messages (default)
SystemMessages= SystemMessages="E,W,I"
same: all system messages (default)
SystemMessages=Off
No system messages
SystemMessages=""
same: no system messages
SystemMessages="W"
Warnings only

Tips&Tricks
You can include variables in the AddString= parameter.
Example: with
StatusMessage Title="&V[_title]"
you can display the title of the screen that you are processing.

GuiXT Keywords
99
Stop
Purpose
With Stop you can stop the interpretation of the remaining part of the
script.

Example
Stop

Format
Stop

Tips&Tricks
This command is useful for testing. You can leave a second version of
the script in the same file and put a Stop before it.

100 Synactive Documentation


Tab
Purpose
With Tab you can define the tab order of fields and table columns.
For each field and each table column you can specify the cursor
position after pressing the tab key.

Example
Tab [Company code] [Booking date]

Format
Tab [Screen element1] [Screen element2]
Tab [Table,columnname1] [Table,columnname2]
When you specify columns, and the new column is not on the right
hand side of the previous one, the cursor is put into the next table row.
Tab performs automatic "Enter" if a new row is required at the end of
the table.

Tips&Tricks
When you specify the same column twice (origin and destination),
the user can easily fill in this column for several table rows.
Similarly, if you want to facilitate data entry into the first 3 columns,
without using the mouse, you can jump from column 3 to column 1
(next row).

GuiXT Keywords
101
TableWidth
Purpose
With TableWidth you can change the table width in a table
control.

Example
TableWidth [All positions] 64

Format
TableWidth [tablename] n
n is the new table width in the table display (number of characters).

102 Synactive Documentation


Text
Purpose
With Text you can
• display any given text on the R/3 screen
• change a field name
• change the name of a pushbutton, radiobutton or check box.

Examples
Text [Company code] "Regional office"
Text (10,50) "Please use form M10A"
Text (11,50) " for printout"

Format
Text [Screen element] "text"
Text (position) "text"

Options
-Border The text is displayed with a small border
(like read-only fields)
-intensified The text is displayed in a different color.
-fixedfont The text is displayed in a a fixed-pitchfont.
The text is displayed in length n, padded with
Size="n"
space

Tips&Tricks
• If you want to replace a field name throughout the entire R/3
system, you can do it by means of the R/3 repository or with the
command GlobalTextReplace.
• If you want to display a text in a more esthetic way, you can use
the Image command or you can use the View command for the
display of an html file or an rtf text (e.g. as produced in Microsoft
Word) .

GuiXT Keywords
103
TextBox
Purpose
With TextBox you can display and edit a text.

Example
TextBox (10,20) (16,44) name="t1"
A text edit box is displayed in the screen area (10,50) to
(16,44). The content is assigned to a text variable "t1".

Format
TextBox (row1,column1) (row2,column2)
name="textname"

Options
-ReadOnly The text cannot be changed.

Tips&Tricks
With CopyText you can copy texts between files, screen areas and
text variables

104 Synactive Documentation


TextReplace
Purpose
With TextReplace you can replace a text in the display of the
R/3 screen.

Example
TextReplace "company code" "regional office"

Format
TextReplace "old" "new"
The string is replaced in the following screen elements:
• Field labels
• Screen title
• Group box title
• Push button title and quickinfo
• Message line
• Menu texts
• Column headers in tables
• Table title
The following rules apply for the text replacement:
1. It is not case-sensitive, but the first character remains in upper case
or lower case
2. Longer texts are replaced before shorter ones

Tips&Tricks
The command GlobalTextReplace has the same effect, but for
all R/3 screens

GuiXT Keywords
105
Tip
Purpose
With Tip you can add a quickinfo (tooltip) to fields, field groups
and pushbuttons. When the user points the cursor to the field name,
the tip appears in a small yellow box. With field groups, a special icon
is on display at the upper right hand corner of the group box. Putting
the cursor on the icon will display the quickinfo.

Examples
Tip [First name] "First name, e.g. Charles or
Robert, generic search Ro* is also possible"
Tip [Contract] "Display contract data and price
agreements"

Format
Tip [Screen element] "Quickinfo"
Screen elements can be single fields, field groups and pushbuttons.
With fields a small icon is on display to the left of the field name; with
field groups the icon is at the upper right hand corner of the group
box.

Tips&Tricks
• A few characteristic input values help the user more than abstract
definitions
• You can choose the tip icon in the file guixt.ini from any of the
R/3 standard icons. The relevant profile parameters are:
icon_tip_field for fields
(Default is "icon_tip_field 0L")
and icon_tip_box for field groups
(Default is "icon_tip_box 35")
• A list of all R/3 icons can be found in transaction ICON; the
internal short names of the icons are contained in the ABAP
program <ICON> .
• From Sapgui Release 4.0 and upwards you can also suppress the
field tip icon setting "icon_tip_field Space" in guixt.ini.
However, it is then no longer obvious, at a glance, where the user
can display a quickinfo.

106 Synactive Documentation


Title
Purpose
With Title you can change the title of an R/3 screen.
You can also use Title in an InputScript. The new title is displayed
as long as the InputScript is active.

Example
Title "Maintain user parameters for &[user]"

Format
Title "text"

Tips&Tricks
Note that the same screen may be used for "Display", "Change" and
"Create".
Either you formulate the title text in a fairly general manner,
for example
Title "User parameters for &[user]"
or you differentiate the title using an expression like
"if Q[Status=xxxx]".

GuiXT Keywords
107
TitlePrefix
Purpose
With the TitlePrefix command you can provide the titles of all
R/3 screens with their own prefixes, e.g. a tag for a particular system
or for a particular client. The command is valid for the current screen
and all the following ones.
If the R/3 window happens to be minimised the modified title will be
indicated in the taskbar, so that the user can easily distinguish between
several systems, clients, etc.

Example
TitlePrefix "&[_database]:"
For a system with the tag TST, all its titles will begin with "TST:".

Format
TitlePrefix "text"

Tips&Tricks
• It makes sense to put the TitlePrefix command in the
Session-Script ESession.txt
• You can use the variables &[_database] and &[_client]
• A conditional combination is also possible, e.g.
if V[_database=TST]
TitlePrefix "Training:"
endif
• If a script's own title is replaced by Title, this will be indicated.

108 Synactive Documentation


Uppercase
Purpose
With Uppercase you can restrict a field input to uppercase
characters.

Example
Uppercase [Search term]

Format
Uppercase [Screen element]
Uppercase [Table,columnname]
You can specify a single field or a table column.

GuiXT Keywords
109
Using
Purpose
With Using you can assign a value to an InputScript parameter.
Both a constant value and the name of a screen field are possible.

Example
Pushbutton (toolbar) "Create" "CRE1"
Process="CreateOneStep.txt"
Using Currency = "USD"
Using Amount = [Amount2]
On "Enter" "Create" "CRE1"
Process="CreateOneStep.txt"
Using Currency = "USD"
Using Amount = [Amount2]
On "/11" "Create" "CRE1"
Process="CreateOneStep.txt"
Using Currency = "USD"
Using Amount = [Amount2]
Here Currency gets the value "USD", Amount gets the value of
the field [Amount2].

Format
Using pname = "Value"
Using pname = [fieldname]

Tips&Tricks
Please note the difference:
A: Using CC = "&[Company Code]"
B: Using CC = [Company Code]
C: Using CC = "Company Code"
D: Using CC = &[Company Code]
Assume that there is a field [Company Code] on the screen with the value
"0001", and that the user entered the value "5800".
The parameter CC then has the following values:
A: CC = "0001"
B: CC = "5800"
C: CC = "Company Code"
D: CC = "0001" (same meaning as variant A)
Normally only variant B makes sense.

110 Synactive Documentation


VersionNumber
Purpose
With the VersionNumber command you can reduce web traffic to a
single access-to-server operation per R/3 logon when using scripts
from the R/3 web repository or from ftp/http servers.
By means of VersionNumber xxx you insert into the logon
script a freely assignable version nummer. The logon script will be
newly loaded each time from the web repository or from the chosen
ftp/http server, never from the local cache. GuiXT will now seek out
all further scripts directly from the local cache, the index names of
which have been gleaned from the GuiXT profile, and to which the
chosen version number has been added. As a rule there will be no
further cause for access to the scriptserver so long as the user calls up
no further R/3 screens. Without VersionNumber, on the other
hand, each and every script would have to be newly cached for each
R/3 session.
With 400 users, 30 different R/3 screens per user and 500 dialog steps
per user, the following numbers of access-to-server operations may be
calculated for an integrated system:
• without local cache: 400*500 = 200,000
• with local cache: 400*30 = 12,000
• with local cache and version number:400 * 1 = 400
Later on, should you wish to carry out changes to the GuiXT scripts
and make them effective for all users, you simply increase the version
number. The next time R/3 is called up, GuiXT reads the new version
number, effaces the previous cache index and proceeds to fill a new
cache under the new version number.

Example
VersionNumber 0010

Format
VersionNumber string
Please note that string is to contain only those symbols that are
permitted for index names in Windows, preferably just letters and
numbers.

GuiXT Keywords
111
View
Purpose
With View you can display html and rtf files. In addition, the html
display offers the possibility of interaction with R/3 screens (Setting
field values and calling up menu functions).
It is possible to use a template file (rtf or html) which contains GuiXT
variables, e.g. field names. These variables are automatically replaced
by their current value.
The View command supports the standard image formats bmp, gif
and jpg just as Image does. In contrast to the Image command they
are displayed in a separate scrollable screen area.

Note that the View command is part of the component GuiXT


Viewer (R/3 add-on by Synactive).
It also requires Microsoft Explorer 4.0 or higher.

Example
View (10.5,40.2) (20.5,80)
"C:\html\menupr00.html"
The html file C:\html\menupr00.html is displayed in the area
(10.5,40.2) to (20.5,80).

Formats
The following file formats are supported:
• rtf
• html
• bmp
• gif
• jpg

Options
A new window is opened for the display.
-floating It can be resized and moved about independently of the
R/3 screen.
In conjunction with -floating: the window is
-maximize
maximized.

112 Synactive Documentation


Name of a variable that revives the internal
window handle of the created view window. Please
ReturnWindow=
observe: This is only possible if View is used
within an InputScript.
Window handle from of an open view window (see
ReturnWindow= option). The window is
closed.
Example of an InputScript using
ReturnWindow= and CloseWindow=:
Parameter CLOSE

CloseWindow= if U[CLOSE=X]
View
CloseWindow="&V[viewwindow]"
return
endif

View (6,1) (30,120)


template="form2.html" -floating
ReturnWindow="viewwindow"

Format
View (row1,column1) (row2,coloumn2) "file name"
View (row1,column1) (row2,coloumn2) "file name"
template="template file"
View (row1,column1) (row2,coloumn2)
template="template file"
With (row1,column1) (row2,coloumn2) you specify the
upper left hand and lower right hand corner; you may use decimal
numbers as coordinates. The file is searched for in the current GuiXT
Script directory unless you specifiy a drive letter, e.g.
"C:\html\file.html".
If you specify a template file, then this file is copied into the file
that you specified first, and all GUiXT variables &[....] are
replaced by their current values.
If you specify only the template file (3rd View format), then
GuiXT copies the template file into a temporary file, replaces the
variables and displays the file.

GuiXT Keywords
113
Data dependent views
The file name can contain variables that are replaced by their values
before the file is loaded.

Example
View (4,80) (12,120)
"C:\products\img&[Materialnummer].rtf"
If the user enters the product number 00500187, the file
C:\products\img00500187.rtf is displayed.

Interaction with the R/3 screen


As usual, you can click on URLs in the html display in order to
navigate to other documents in the local file system, the intranet or
internet. The "Back" button can be called up via a right mouse click.
As a particularly handy feature you can define interactions with the
R/3 screen via special SAP URLs:
• You can put values into R/3 input fields
• You can call up menu functions
The SAP URLs start with the string "SAP://". You then specify the
field names and field values and, if desired, a menu function.

114 Synactive Documentation


The notation is as follows:
<A href="SAP://field1:value1;field2:value2;
field3:value3;OK:fcode">
Since a browser URL is not allowed to contain any blanks, you have
to denote the field names without them, for example you have to write
"PreviousAccountNumber:00012345" instead of
"Previous account number:00012345".
The field names are not case sensitive.
The function code fcode can either be an internal code taken from the
sceen menu, e.g. SCMP, or a transaction code as for example /NFB01
or /OMM02.

You will find the internal menu codes as follows:


Choose the desired function in the transaction menu and press F1
while the mouse cursor points to this function. Now the R/3 system
displays the internal function code in a pop-up window.
The Enter button, without any special function code, can be called up
with OK at the end of the SAP URL:
<A href="SAP://field1:value1;field2:value2;field3:value3;OK">

Starting an InputScript
In conjunction with InputAssistant you can also start an InputScript.
You have to add the process= attribute to the OK:fcode.

Example
<A href="SAP://field1:value1;field2:value2;
field3:value3;OK:fcode,process=displaymaterial.txt">
"Using" parameters can be passed to the InputScript via the SAP-URL
with the notation U[name]:value. You can also set internal GuiXT
variables with V[name]:value and use this value in your InputScript
or in GuiXT scripts.

Using JavaScript
If your html page contains a form with some entry fields, it might
make sense to use JavScript in order to pass these values to R/3.
See Example 3.

Example 1
<A HREF="SAP://OK:PR03"><IMG SRC="advance.jpg"></A>
Clicking on the image advance.jpg calls up the function PR03 in R/3.

GuiXT Keywords
115
Example 2
<A HREF="SAP://Material:00012345;Plant:0021;OK">
Bolt 8x15mm</A>
Clicking on the text "Bolt 8x15mm" completes the fields
"Material" and "Plant" and then automatically activates the
Enter button.

Example 3
HTML page:
<form name="form">
<strong>Customer</strong>
<input type="text" size="20"name="Customer"
value="&amp;[::Customer]">
<input type="button" name="Display" value="Display "
onclick="DisplayCustomer()">
</form>
<script language="JavaScript"><!--
function toGuiXT(string)
{window.location.replace("SAP://" + string);}

function DisplayCustomer()
{toGuiXT("U[Customer]:" + document.form.Customer.value +
";OK:/NVD03,process=ShowCustomerData.txt");}

//</script>

When the user clicks on the button "Display" you call up transaction
VD03 with the InputScript "ShowCustomerData.txt" . You pass the
cutomer number that the user entered to the InputScript with
U[Customer]:...
If you use the template= option of the View command, then the
last recently entered value in the R/3 field "Customer" is taken as
initial value in the html form.

116 Synactive Documentation


Open documents
You can open any document with View ; the document viewer is
started as a separate application:
View "file name"
This will start the same application as if the user clicked on the
document in Windows Explorer.
Examples: .doc or .pdf files. You can also start .exe or .bat files.

Options
Operation to be performed. Default operation is
"Open". The other operations depend on the document
Operation=
type. Often the operations "Edit" and "Print" are
defined as well.
Parameters= For .exe and .bat files: string with parameters
Directory= Default directory

Tips&Tricks
• You can use the technique described in Example 1 in order to
create an html form of the R/3 application menus, which is both
esthetic and quick to use.
• For end user training you can create special html documents
containing various test input values and explanations.
• In combination with InputAssistant you can also display the html
document when the user presses a pushbutton, e.g.:

GuiXT Script:

Pushbutton (Toolbar) "Show documentation"


Process="ActivateView.txt"

if V[GuiXT_Show_View=X]
Set V[GuiXT_Show_View] "N"
View (1,60) (20,100)
"C:\GuiXT\html\docu100.html"
endif

InputScript ActivateView.txt:
Set V[GuiXT_Show_View] "X"

GuiXT Keywords
117
ViewHelp
(in combination with the commands Mark or Image.)

Purpose
A variant of the View command can be invoked with the option
ViewHelp= in the commands Mark and Image.
With this option you can easily display your own help window, for
example for training purposes, or for presenting detailed product
information. When the user clicks on your help icon (in the toolbar or
somewhere on screen), the help file is displayed at the upper right
hand side of the screen.
See also Help Views Directory in GuiXT Profile.

MARK with Option ViewHelp


Displaying help files in html format
Component "Viewer" is required for this option
When the user clicks on the small red cross, the help file
ViewHelp="..." is displayed at the upper right hand side of the
R/3 screen. Interactions with R/3 can be specified in the html file, as
described for the View-command (Setting values, calling functions).
The help display disappears as soon as the user clicks on an R/3 field.

Format
Mark [entry field] ViewHelp="filename.html"

Example
Mark [Base unit of measure] Image="help.gif"
ViewHelp="doc_unit.htm"

IMAGE with Option ViewHelp


Display your own html help
Component "Viewer" is needed for this function
With ViewHelp= you specify an html file. Clicking on the image
will display the html file in the upper right hand side of the window. It
can contain interactions with the SAP window ("SAP://"-URL).
When the user clicks on any other field, the help display is closed.

118 Synactive Documentation


Format
Image (row,column) "image file"
ViewHelp="docfilename.html"

Example
Image (toolbar) "help.gif"
ViewHelp="doc_order.htm"

Options for ViewHelp


Width of the help display (in pixel).
If no width is specified, 40% of the total
ViewHelpWidth= window width is taken.
It is also possible to specify the width in
percentage, e.g. ViewHelpWidth=60%
Height of the help display (in pixel).
If no height is specified, the total window
ViewHelpHeight= height is taken.
It is also possible to specify the height in
percentage, e.g. ViewHelpHeight=50%
Position (upper left corner) of the help
display in the form (row,column), e.g.:
ViewHelpPosition=(10,50).
Or relative to other screen elements, e.g.
ViewHelpPosition= ViewHelpPosition="[Material]+(1,30)".
If you specify a position without specifying
width and height, the whole window is used,
starting at the specified position (lower right
part of the window).

Examples
Mark [Base unit of measure] Image="help.gif"
ViewHelp="doc_unit.htm" ViewHelpWidth="200"

Image (toolbar) "help.gif"


ViewHelp="doc_intorder.htm"
ViewHelpWidth="200"

GuiXT Keywords
119
WindowSize
Purpose
With Windowsize you can resize a popup screen. This is
particularly useful when you want to add new elements to a window
which is too small.

Examples
Windowsize (12,60)

Format
Windowsize (rows,columns)
Resizes the popup screen to the desired dimensions.

120 Synactive Documentation


GuiXT system variables
variable content example
general status information
&[_user] user's name BAKER
&[_client] client 001
&[_transaction] transaction code MM03
&[_title] name of SAP screen display material
&[_database] name of R/3 system C11
&[_ashost] name of host server pwdf0042

position of cursor
&[_cursorrow] position of cursor: row 12
&[_cursorcol] and column 30
available in an
InputScript if the user
has placed the cursor in
an input field
&[_tabrow] position of cursor: 5
&[_tabcol] number of the table row 6
and number of the table
column, in each case
beginning with 1
available in an
InputScript if the user
has placed the cursor in a
table cell
&[_listcursorrow] position of cursor in 7
lists: row (begins with 0)
&[_listcursorcol] position of cursor in 48
lists: column (begins
with 0)

GuiXT Keywords
121
indications
&[_lastwarning] text of the last warning W: date is in the
during in the processing future
of an InputScript
&[_lasterror] text of the last error E: booking code
message during in the X2 is not
processing of an permitted
InputScript, with (FB01,SAPMF05
transaction, program and A,0300)
dynpro number given in
brackets
&[_message] message text receipt
(information) 100000444 was
recorded in
booking number
1000

contents in lists
&[_listline(0)] contents of the lines in a 5M-06 10000 05
&[_listline(1)] list
&[_listline(2)] note: vertical and
... horizontal lines in the
list are represented
internally by numbers
(4,5,..)
&[_listline] content of the list line in 5M-02 28000 09
which the cursor
currently is
&[_liststring] string within the list line 28000
in which the cursor
currently is

extra indications in lists and tables


&[_listfirstvisiblerow] first filled row on current 252
screen in lists and tables
&[_listlastvisiblerow] last filled row on current 280
screen in lists and tables
&[_listlastrow] total count of rows in 578
lists and tables

122 Synactive Documentation


date and time
&[today_ymd] actual date in the form: 20021224
year month day
&[today_hms] time of day in the form: 154810
hour minute second
&[today...] predefined variables and &[today_m/d/y]
calculatons with à 12/24/2002
today+... or today-... are &[today_h:m]
possible. à 15:48
In the calculations, &[today_d.m.y h:m]
à 24.12.2002 15:48
+ or - as well as
&[today+1_m/d/y]
d=day, à 12/25/2002
h=hour, &[today+14_m/d/y]
m=minute, à 1/7/2003
&[today-1_m/d/y]
s=second à 12/23/2002
may be used. &[today+6h_h:m]
à 21:48
&[today+12h_m/d/y]
à 12/25/2002

variables in GuiXT script and history directories


&user user's name BAKER
&client client 001
&database name of R/3 system C11
&winuser windows user name Smith
(in GuiXT script
directory and history
directory)

GuiXT Keywords
123

You might also like