TROIA

Komut & Fonksiyon ReferansıCommand & Function Reference

This is an incremental translation project. Only the "Basic Troia" category is fully translated so far — other entries fall back to English descriptions even in TR mode.
ABS()Math Functions

Verilen parametrenin mutlak değerini hesaplar.

Calculates the absolute value of given parameter.

ABS ({value});
Detayları gösterShow details
ParametrelerParameters

{value} :An integer or decimal value.

ÖrnekExample
OBJECT : 
 DECIMAL DECIMALVALUE,
 INTEGER INTEGERVALUE;

DECIMALVALUE  = -3.141593;
DECIMALVALUE = ABS(DECIMALVALUE);

INTEGERVALUE  = -5;
INTEGERVALUE = ABS(INTEGERVALUE);
İlgili KomutlarRelated Commands
CHGSIGN
ACCESSXLSFile

Bu command, bir Microsoft Access dosyasındaki verilen bir sheet-cell'in data'sını ayarlar veya alır ve metadata'sını ayarlar...

This command sets or gets the data and sets the metadata of a given sheet-cell in a Microsoft Access file...

ACCESSXLS {file} READ SHEET {sheet} [{column} {row} | CELL {cell_ref}] [VALUE {cell_value} | FORMULA {formula_value}];
ACCESSXLS {file} WRITE SHEET {sheet} [{column} {row} | CELL {cell_ref}] [VALUE {cell_value} | FORMULA {formula_value}] FORECOLOR {fcolor_value} BACKCOLOR {bcolor_value} ALIGN [GENERAL | CENTER | RIGHT | FILL  | JUSTIFY] BORDER [NONE | THIN | MEDIUM | DASHED | HAIR | THICK | DOUBLE | DOTTED];
Detayları gösterShow details
ParametrelerParameters

{file} : Path and name for the log file or a string variable.
{sheet} : Sheet of the target cell in the Access file, startin with 1.
{column} : Column letter or column order number of the cell.
{row} : Row line number of the cell.
{cell_ref} : Reference of cell with column letter and row line number like 'D3'.
{cell_value} : Real -data- value to get/set the cell.
{formula_value} : Real -formula- value to get/set the cell formula.
{fcolor_value} : Indexed color value to set the text color of the cell.
{bcolor_value} : Indexed color value to set the background color of the cell.

NotlarRemarks

INDEXED COLORS: (bkz. Örnek/kod bölümü, renk ismi-index eşleşme tablosu değişmez, İngilizce renk sabiti isimleridir.)

INDEXED COLORS :
Name Index
BLACK 8
WHITE 9
RED 10
BRIGHT_GREEN 11
BLUE 12
YELLOW 13
PINK 14
TURQUOISE 15
DARK_RED 16
GREEN 17
DARK_BLUE 18
DARK_YELLOW 19
VIOLET 20
TEAL 21
GREY_25_PERCENT 22
GREY_50_PERCENT 23
CORNFLOWER_BLUE 24
MAROON 25
LEMON_CHIFFON 26
ORCHID 28
CORAL 29
ROYAL_BLUE 30
LIGHT_CORNFLOWER_BLUE 31
SKY_BLUE 40
LIGHT_TURQUOISE 41
LIGHT_GREEN 42
LIGHT_YELLOW 43
PALE_BLUE 44
ROSE 45
LAVENDER 46
TAN 47
LIGHT_BLUE 48
AQUA 49
LIME 50
GOLD 51
LIGHT_ORANGE 52
ORANGE 53
BLUE_GREY 54
GREY_40_PERCENT 55
DARK_TEAL 56
SEA_GREEN 57
DARK_GREEN 58
OLIVE_GREEN 59
BROWN 60
PLUM 61
INDIGO 62
GREY_80_PERCENT 63
AUTOMATIC 64

ÖrnekExample
OBJECT:
 STRING YELLOW,
 STRING GREEN;

YELLOW = GETTHEMEVARIABLE(BACKCOLOR6);
GREEN = GETTHEMEVARIABLE(BACKCOLOR13);

ACCESSXLS '*C:\\TMP\canias501\\TMP\\access.xls' WRITE SHEET 1 D 2 VALUE 'btan@ias.com.tr' FORECOLOR YELLOW BACKCOLOR GREEN ALIGN RIGHT BORDER THICK;
ACCESSXLS '*C:\TMP\BTAN.xls' READ SHEET 1 'J' 2 VALUE STRINGVAR1;
ADDASSTR()String Manipulation

İki numeric değeri toplar ve sonucu string olarak döndürür.

Sums two numeric values and returns the result as a string.

ADDASSTR({value1},{value2});
Detayları gösterShow details
ParametrelerParameters

value1 = an integer or decimal value

value2 = an integer or decimal value

NotlarRemarks

Return Value

ADDASSTR, sonuç değerini string olarak döndürür.

Return Value

ADDASSTR returns the resulting value as string.

ADDDAYS()Date Functions

Verilen date veya datetime'a verilen gün sayısını ekler.

Adds given number of days to the given date or datetime.

ADDDAYS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT = '01.01.1996 15.45';

D = '01.01.1996';

T = '15.45';

L = 3;



DTY = ADDDAYS(DT, L);

STR1= ADDDAYS(DT, L);



DY = ADDDAYS(D, L);

STR2= ADDDAYS(D, L);



/*

Before ADDDAYS function is executed:



DT = '01.01.1996 15.45'

D = '01.01.1996'

DTY =  NULL

DY = NULL

STR1 = NULL

STR2 = NULL

L = 3



After ADDDAYS function is executed:



DT = '01.01.1996 15.45'

D = '01.01.1996'

DTY =  '04.01.1996 15.45'

DY = '04.01.1996'

STR1 = '04.01.1996 15.45'

STR2 = '04.01.1996'

L = 3

*/
İlgili KomutlarRelated Commands
ADDMONTHS, ADDYEARS,ADDHOURS ,ADDMINUTES,SUBDAYS,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
ADDELEMENTVector

Verilen herhangi bir symbol item'ı bir vector'e ekler.

Appends any given symbol item to a vector.

ADDELEMENT {symbol_name} TO {vector_name} [BYREF];
Detayları gösterShow details
ParametrelerParameters

symbol_name = Symbol name to add to the vector.
vector_name = Target vector name to add the symbol.
BYREF = Keeps a tight connection with the symbol just alike a pointer.

NotlarRemarks

VECTOR data type için, COPY VECTOR dışındaki tüm command'ların symbol'lerin değerine göre değil, reference'a göre çalıştığını akılda tutmak önemlidir. Bu, VECTOR data type operation'ına dahil edilen herhangi bir symbol'ün, VECTOR'ün yaşam süresi boyunca var olmaya devam edeceği anlamına gelir. Örneğin, bir function scope'u sırasında bir VECTOR'e eklenen bir symbol, function scope'undan çıktıktan sonra da var olmaya devam eder.

It is important for VECTOR data type to keep in mind that all commands except COPY VECTOR works by reference, not by value of symbols.
This implies that any symbol incorporated with VECTOR data type operation will be keep persisting through out VECTORs lifespan.
For instance, a symbol inserted into a VECTOR during a function scope will be kept existing after getting out from function scope.

ÖrnekExample
/* Ex.1) */
OBJECT: 
 VECTOR A,
 VECTOR B,
 STRING C,
 STRING D;

C = 'Some Value';
ADDELEMENT C TO A;
/*By Value*/
C = 'New Value';
/*

C <- New Value

A[1] <- Some Value

*/
D = 'Some Value';
ADDELEMENT D TO A BYREF;
/*By Reference*/
D = 'New Value';
/*

D <- New Value

A[2] <- New Value

*/
/* Ex.2) */
OBJECT: 
 VECTOR A,
 VECTOR B,
 STRING C,
 STRING D;

C = 'Some Value';
ADDELEMENT C TO A;
B = A;
D = B[1];
/*Vector Copy*/
/* Ex.3) */
OBJECT: 
 VECTOR A,
 STRING B,
 STRING C,
 STRING D;

B = 'Some text';
C = 'Some other text';
ADDELEMENT B TO A;
ADDELEMENT C TO A;
REMOVEELEMENT 1 OF A;
D = A[1];
/* Ex.4) */
OBJECT: 
 VECTOR A,
 VECTOR B,
 STRING C,
 STRING D;

C = 'Text Value';
ADDELEMENT C TO A;
B = ACLASS.SOMEFUNCTION(A);
/*assume that ACLASS has a function SOMEFUNCTION taking a vector as parameter and return a vector*/
D = B[1];
/* Ex.5) */
OBJECT: 
 VECTOR A,
 VECTOR B,
 STRING C,
 STRING D;

C = 'Text Value';
ADDELEMENT C TO A;
CLEAR VECTOR A;
/* Ex.6) */
OBJECT: 
 VECTOR A,
 VECTOR B,
 STRING C,
 STRING D,
 INTEGER E;

C = 'Text Value';
ADDELEMENT C TO A;
E = VECTORCONTAINS(A,C);
İlgili KomutlarRelated Commands
REMOVEELEMENT, CLEAR VECTOR, VECTORCONTAINS(v,x), GETVECTORSIZE()
ADDENTITYDiagram

Bir diagram'a entity ekler.

Adds entity to a diagram.

ADDENTITY <RECTANGLE|CIRCLE|ROUNDRECT|AXISNODE|ALERTNODE|BUTTON|FRAME|TEXT|STATICTEXT|DECISION|DATA|DOCUMENT|COLLATE|CARD|DELAY|DIRECTACCESSSTORAGE|DISPLAY|EXTRACT|INTERNALSTORAGE|MAGNETICDISK|MANUALINPUT|MANUALOPERATION|MERGE|MULTIDOCUMENT|OFFPAGECONNECTOR|OR|PREDEFINEDPROCESS|PREPERATION|PUNCEDTYPE|SORT|STOREDATA|SUMMINGJUNCTION|SEQUENTIALACCESSSTORAGE|ALTERNATEPROCESS|IMAGE> TO {diagram_name} WITH {entity_id} {x_value} {y_value} {entity_width} {entity_height} {entity_text} {entity_color};
Detayları gösterShow details
ParametrelerParameters

diagram_name = diagram control name.

entity_id = entity unique id as string.

x_value = entity x location.

y_value = entity y location.

entity_width = entity size on x axis.

entity_height = entity size on y axis.

entity_text = entity text and/or FYI. If both entity text and FYI are to be set concurrently, latter should be seperated with a comma.

entity_color = One of the constant color names specified below.:
BLACK, WHITE, RED, GREEN, BLUE, LTGRAY, GRAY, DKGRAY, YELLOW, CYAN, MAGENTA, DKRED, DKGREEN, DKBLUE, DKYELLOW, DKCYAN, DKMAGENTA
.

NotlarRemarks

Bu command, ADDLINK command'ı ile birlikte kullanılmalıdır.

This command should be used with ADDLINK command.

ÖrnekExample
/*

The code below will create a rounded rectangle. On new entity ITEM  will be displayed as the text 

and ITEM DESCRIPTION as the description of entity on status bar.

*/

OBJECT: 

 STRING TEXT;



TEXT = 'ITEM DESCRIPTION';

ADDENTITY ROUNDRECT TO DIAGRAM01 WITH RORECT1 20 20 5 10 TEXT RED;
İlgili KomutlarRelated Commands
ADDLINK
ADDGRIDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

ADDHOURS()Date Functions

Verilen time veya datetime'a verilen saat sayısını ekler.

Adds given number of hours to the given time or datetime.

ADDHOURS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time/datetime varibale. A DATETIME or a TIME variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir TIME variable type'ıysa format TIME'dır.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a TIME if the variable is a TIME variable type.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATETIME DTY,
 DATE D,
 DATE DY,
 TIME Y,
 TIME TY,
 STRING STR1,
 STRING STR2,
 INTEGER L;

DT = '01.01.1996 15.45';
D = '01.01.1996';
T = '15.45';
L = 3;
DTY = ADDHOURS(DT,L);
STR1= ADDHOURS(DT,L);
DY = ADDHOURS(T,L);
STR2 = ADDHOURS(T,L);

/* 
Before ADDHOURS function is executed: 
DT = '01.01.1996 15.45' 
T = '15.45' 
DTY = NULL 
TY = NULL 
STR1 = NULL 
STR2 = NULL 
L = 3 
*/

/* 
After ADDAYS function is executed: 
DT = '01.01.1996 15.45' 
T = '15.45' 
DTY = '01.01.1996 18.45' 
TY = '18.45' 
STR1 = '01.01.1996 18.45' 
STR2 = '18.45' 
L = 3
*/
İlgili KomutlarRelated Commands
ADDMONTHS, ADDYEARS,ADDDAYS ,ADDMINUTES,SUBDAYS,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
ADDLINKDiagram

Bir diagram'daki iki entity arasına link ekler.

Adds link between two entities in a diagram.

ADDLINK TO {diagram_name} FROM {from_entity_id} TO {to_entity_id} WITH {link_id} {link_text} {link_color} TYPE {link_type};
Detayları gösterShow details
ParametrelerParameters
diagram_name                 = diagram control name.
from_entity_id                  = id of from entity as string.
to_entity_id                          = id of to entity as string.
link_id                                  = link unique id as string.
link_text                                 = link text.
link_color                         = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

type = an integer value having one of 1-2-3-4 values.

If type =1 a Straight line is drawn;
If type =2 a three-point line is drawn.;
If type =3 a four-point line is drawn;

If type =4 a 90-degree line is drawn.

ÖrnekExample
ADDLINK TO DIAGRAM01 FROM RECT1 TO RORECT1 WITH LINK01 'Material Flow' BLUE 0;
İlgili KomutlarRelated Commands
ADDENTITY
ADDMINUTES()Date Functions

Verilen time veya datetime'a verilen dakika sayısını ekler.

Adds given number of minutes to the given time or datetime.

ADDMINUTES ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time/datetime varibale. A DATETIME or a TIME variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir TIME variable type'ıysa format TIME'dır.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a TIME if the variable is a TIME variable type.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATETIME DTY,
 DATE D,
 DATE DY,
 TIME Y,
 TIME TY,
 STRING STR1,
 STRING STR2,
 INTEGER L;

DT = '01.01.1996 15.45';
D = '01.01.1996';
T = '15.45';
L = 3;
DTY = ADDMINUTES(DT,L);
STR1= ADDMINUTES(DT,L);
DY = ADDMINUTES(T,L);
STR2= ADDMINUTES(T,L);
/*
Before ADDMINUTES function is executed: 
DT = '01.01.1996 15.45' 
T = '15.45' 
DTY = NULL 
TY = NULL 
STR1 = NULL 
STR2 = NULL 
L = 3 
*/
/*
After ADDMINUTES function is executed: 
DT = '01.01.1996 15.45' 
T = '15.45' 
DTY = '01.01.1996 15.48' 
TY = '15.48' 
STR1 = '01.01.1996 15.48' 
STR2 = '15.48' 
L = 3
*/
İlgili KomutlarRelated Commands
ADDMONTHS, ADDYEARS,ADDDAYS ,ADDHOURS,SUBDAYS,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
ADDMONTHS()Date Functions

Verilen date veya datetime'a verilen ay sayısını ekler.

Adds given number of months to the given date or datetime.

ADDMONTHS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length               = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATETIME DTY,
 DATE D,
 DATE DY,
 TIME Y,
 TIME TY,
 STRING STR1,
 STRING STR2,
 INTEGER L;

DT = '01.01.1996 15.45';
D = '01.01.1996';
T = '15.45';
L = 3;
DTY = ADDMONTHS(DT,L);
STR1= ADDMONTHS(DT,L);
DY = ADDMONTHS(D,L);
STR2= ADDMONTHS(D,L);
/*
Before ADDMONTHS function is executed: 
DT = '01.01.1996 15.45' 
D = '01.01.1996' 
DTY = NULL 
DY = NULL 
STR1 = NULL 
STR2 = NULL 
L = 3 
*/
/*
After ADDMONTHS function is executed: 
DT = '01.01.1996 15.45' 
D = '01.01.1996' 
DTY = '01.04.1996 15.45' 
DY = '01.04.1996' 
STR1 = '01.04.1996 15.45' 
STR2 = '01.04.1996' 
L = 3
*/
İlgili KomutlarRelated Commands
ADDMINUTES, ADDYEARS,ADDDAYS ,ADDHOURS,SUBDAYS,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
ADDSUMMARYROWSTable

Aggregate edilmiş bir table'a summary row'ları ekler.

Adds summary rows to an aggregated table.

ADDSUMMARYROWS TO {table_name} ON {aggregate_column} USING {column1} ({expression1}) [,{column2} ({expression2})...] [BACKCOLOR {background_color}] [FORECOLOR {foreground_color}]
Detayları gösterShow details
ParametrelerParameters

table_name = name of the table to add summary rows
aggregate_column = name of the column which is aggregated by a previous AGGREGATE command call
column1, column2,... = name of the columns for which the summary row will contain the results of matching expressions
expression1, expression2,... = TROIA expressions which can contain summary functions (SUM,AVG,COUNT,MIN,MAX)
background_color = background color for the summary row
foreground_color = foreground color for the summary row

NotlarRemarks

Table önceden bir AGGREGATE command'ı ile aggregate edilmiş olmalıdır.
Expression'lar parantez içine alınmalıdır.

The table should be aggregated through an AGGREGATE command beforehand.
Expressions should be enclosed in parentheses.

ÖrnekExample
/* The table needs to be aggregated before adding summary rows */
AGGREGATE DESTTABLE ON CREATEDBY;
/* Adds summary rows to DESTTABLE which is aggregated on CREATEDBY column.

Evaluates the expressions and sets the results in appropriate cells in added summary rows.

*/
ADDSUMMARYROWS TO DESTTABLE ON CREATEDBY USING 
	PWDVALIDITY (SUM(DESTTABLE_PWDVALIDITY)),
	CHANGEDAT (MAX(DESTTABLE_CHANGEDAT)),
	DESCRIPTION ('MIN: ' + MIN(DESTTABLE_PWDVALIDITY) + ', MAX: ' + MAX(DESTTABLE_PWDVALIDITY) 
		+ ', COUNT: ' + COUNT() + ', CONDITIONAL_COUNT: ' + COUNT(DESTTABLE_PWDVALIDITY>0) 
		+ ', SUM: ' + SUM(DESTTABLE_PWDVALIDITY) + ', AVG: ' + FORMAT('%7.3f' , AVG(DESTTABLE_PWDVALIDITY)) 
		+ ', LAST: ' + DESTTABLE_PWDVALIDITY),
	CREATEDBY ('Summary for CREATEDBY')
	BACKCOLOR 123123;
İlgili KomutlarRelated Commands
AGGREGATE, CLEARAGGREGATE
ADDTOOLBARObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

ADDWORKDAY()Date Functions

Start date'ten itibaren initial calendar'a work day ekler.

Adds work day to the initial calendar from the start date.

ADDWORKDAY({start_date}, {number_of_days},{backward})
Detayları gösterShow details
ParametrelerParameters

start_date = the date that the process will start or end.

number_of_days = the time interval of the process

backward = a boolean variable that indicates the process will be forward or backward

NotlarRemarks

Datetime döndürür.

Returns Datetime

İlgili KomutlarRelated Commands
INITCALENDAR()
ADDWORKHOUR()Date Functions

Start date'ten itibaren initial calendar'a saat cinsinden work time ekler.

Adds work time in hours to the initial calendar from the start date.

ADDWORKHOUR({Company},{Plant},{Workcenter},{start_date},{time_in_hours},{backward},{machine})
Detayları gösterShow details
ParametrelerParameters

Company = the company code

Plant = the name of the plant

Workcenter = the workcenter name of the process

start_date = the date that the process will start or end.

time_in_hours = the time interval of the process

backward = a boolean variable that indicates the process will be forward or backward

machine = a boolean variable that indicates whether its machine work time or human work time

NotlarRemarks

Datetime döndürür.

Returns Datetime.

İlgili KomutlarRelated Commands
ADDWORKDAY()
ADDYEARS()Date Functions

Verilen date veya datetime'a verilen yıl sayısını ekler.

Adds given number of years to the given date or datetime.

ADDYEARS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length               = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATETIME DTY,
 DATE D,
 DATE DY,
 TIME Y,
 TIME TY,
 STRING STR1,
 STRING STR2,
 INTEGER L;

DT = '01.01.1996 15.45';
D = '01.01.1996';
T = '15.45';
L = 3;
DTY = ADDYEARS(DT, L);
STR1= ADDYEARS(DT, L);
DY = ADDYEARS(D, L);
STR2= ADDYEARS(D, L);
/*
Before ADDYEARS function is executed: 
DT = '01.01.1996 15.45' 
D = '01.01.1996' 
DTY = NULL 
DY = NULL 
STR1 = NULL 
STR2 = NULL 
L = 3 
*/
/*
After ADDYEARS function is executed: 
DT = '01.01.1996 15.45' 
D = '01.01.1996' 
DTY = '01.01.1999 15.45' 
DY = '01.01.1999' 
STR1 = '01.01.1999 15.45' 
STR2 = '01.01.1999' 
L = 3
*/
İlgili KomutlarRelated Commands
ADDMINUTES, ADDMONTHS,ADDDAYS ,ADDHOURS,SUBDAYS,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
AGGREGATETable

Bir table'ı belirtilen column'larda, belirtilen sırayla aggregate eder.

Aggregates a table on specified columns with the specified order .

AGGREGATE {table_name} [CASESENSITIVE] ON [DESC] {column1} ,  [DESC] {column2}, ...;
Detayları gösterShow details
ParametrelerParameters

table_name = name of the table
column_name1, column_name2,... = ordered list of columns to aggregate table on

NotlarRemarks

AGGREGATE command'ı, SORT command'ına benzer davranır. Fark, aggregate edilen column'ların GUI üzerinden sıralanan column'lara göre önceliğe sahip olmasıdır. AGGREGATE command'ında belirtilen column'lardan herhangi biri GUI üzerinden zaten sıralanmışsa, AGGREGATE command'ının yaptığı değişiklikler kalıcı olur. Aggregate edilmiş bir table'da bir column sıralanırsa, sıralama aggregate edilmiş column'ları dikkate alır.

Column'ların belirtildiği sıra önemlidir.
AGGREGATE command'ı, varsa önceki aggregation'ı otomatik olarak temizler.

AGGREGATE command behaves similar to SORT command. The difference is that aggregated columns have precedence over columns sorted through GUI.
If any of the columns specified in AGGREGATE command is already sorted through GUI , the changes made by AGGREGATE command will persist.
If a column is sorted on an aggregated table, the sort will regard aggregated columns.

The order in which columns are specified is important.
AGGREGATE command will automatically clear previous aggregation if one exists.

ÖrnekExample
/* Aggregates the table on single column */
AGGREGATE DESTTABLE ON CREATEDBY;

/* Aggregates the table on multiple columns */
AGGREGATE DESTTABLE ON CREATEDBY, CHANGEDBY;
İlgili KomutlarRelated Commands
ADDSUMMARYROWS, CLEARAGGREGATE
ALERTGENERAL

Client ekranının bir köşesinde bir alert balloon'u tetikler.

Fires an alert balloon at a corner of the client screen.

ALERT {message} WITHLOCATION (NORTHWEST | NORTHEAST | SOUTHWEST | SOUTHEAST) DEFAULT EFFECT (FLY | FADE) TIMEOUT {timeout} ICON (I | W | E);
Detayları gösterShow details
ParametrelerParameters

message = Symbol containing the alert message.
timeout = Time out duration in miliseconds for the alert

ÖrnekExample
OBJECT:

 STRING STRINGVAR1;



STRINGVAR1 = 'Hello World';



ALERT STRINGVAR1 WITHLOCATION SOUTHEAST DEFAULT EFFECT FLY TIMEOUT 3000 ICON I;
APPENDTable

Bir virtual table'a yeni row ve column ekler.

Appends new rows and columns to a virtual table.

1. APPEND ROW TO {virtual_table} [ATHEAD | ATBETWEEN];

2. APPEND COLUMN {colname},{coltype},{collen} TO {virtual_table};
Detayları gösterShow details
ParametrelerParameters
virtual_table         = Specifies the name of the virtual table used in the APPEND statement.
colname         = Specifies the name of the new column to be created.
coltype                = Specifies the type of the new column to be created. Available types are DATE, DOUBLE, AMOUNT and INTEGER.
collen                = Specifies the length of the new column to be created.
NotlarRemarks
APPEND ROW yalnızca yeni row'lar ekler. Yeni row'a değer yazmak için field'lara gidip düzenleyin. Değişiklikleri database'e kaydetmek için INSERT statement'ı kullanmalısınız.

Bir row eklendiğinde; o row her zaman active row olur.

APPEND COLUMN command'ı yalnızca boş table'larla kullanılabilir.
APPEND ROW adds new rows only. To write values into the new row go and edit on the fields. To save the changes to the database you should use the INSERT statement.

When a row is appended; that row always becomes the active row.

APPEND COLUMN command can only be used with empty tables.
ÖrnekExample
/* A.With the following line a new row is added to the end of the TABLEX virtual table. */

APPEND ROW TO TABLEX;

/* B.You can also set the location of the new row to be added. */

APPEND ROW TO TABLEX ATHEAD;

/* Adds new row to the top of the table. */

APPEND ROW TO TABLEX ATBETWEEN;

/* Adds a new row to the current cursor position. */

/* A. In this example a new virtual table is created with the copy command. 

A new column is inserted to the table with the name NEWCLM1, type STRING and length 5. */

OBJECT: 

 TABLE TABLEX;



COPY STRUCTURE IASBAS002 INTO TABLEX;

APPEND COLUMN NEWCLM1,STRING,5 TO TABLEX;

/* B. In this example a new virtual table is created with the copy command. 

A new column is inserted to the table with the name NEWCLM2, type INTEGER and length 3. */

OBJECT: 

 TABLE TABLEX;



CONSTRUCT STRUCTURE INTO TABLEX;

APPEND COLUMN NEWCLM1,INTEGER,3 TO TABLEX;
APPENDSTRINGString Manipulation

STRINGBUILDER data type'ında bir string object'ine string'leri "satır" olarak ekler.

Appends strings as "lines" to a string object of STRINGBUILDER data type.

APPENDSTRING {string_symbol} TO {stringbuilder};
Detayları gösterShow details
ParametrelerParameters

string_symbol = String value line or a string line symbol.
stringbuilder = STRINGBUILDER data type string object.

NotlarRemarks

Herhangi bir plain string object değil, yalnızca STRINGBUILDER type string kullanmayı unutmayın.

Don't forget use only STRINGBUILDER type string, not any plain string object.

ÖrnekExample
OBJECT:

 STRINGBUILDER TEXTLINES;



APPENDSTRING 'Hello World!' TO TEXTLINES;
İlgili KomutlarRelated Commands
STRINGBUILDER
ARCCOS()Math Functions

Arccosine'ı hesaplar.

Calculates the arccosine.

ARCCOS ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value between -1 and 1 whose arccosine is to be calculated.

NotlarRemarks

Return Value

DECIMAL.

ARCCOS function'ı, değerin arccosine'ını 0 ile p radyan aralığında döndürür. Değer -1'den küçük veya 1'den büyükse, ARCCOS belirsiz (indefinite) bir değer döndürür.

Return Value

DECIMAL.

The ARCCOS function returns the arccosine of value in the range 0 to p radians. If value is less than ?1 or greater than 1, ARCCOS returns an indefinite.

ÖrnekExample
OBJECT : 
 DECIMAL X;

X = 0.326960;
X = ARCCOS(X);
/* X = 1.237711 */
İlgili KomutlarRelated Commands
ARCSIN
ARCSIN()Math Functions

Arcsine'ı hesaplar.

Calculates the arcsine

ARCSIN ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value between -1 and 1 whose arcsine is to be calculated.

NotlarRemarks

Return Value

DECIMAL.

ARCSIN function'ı, değerin arccosine'ını 0 ile p radyan aralığında döndürür. Değer -1'den küçük veya 1'den büyükse, ARCSIN belirsiz (indefinite) bir değer döndürür.

Return Value

DECIMAL.

The ARCSIN function returns the arccosine of value in the range 0 to p radians. If value is less than -1 or greater than 1, ARCSIN returns an indefinite.

ÖrnekExample
OBJECT: 
 DECIMAL X;

X = 0.326960;
X = ARCSIN(X);
/* X = 0.333085 */
İlgili KomutlarRelated Commands
ARCCOS
ARCTAN()Math Functions

Arctangent'ı hesaplar.

Calculates the arctangent

ARCTAN ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value.

NotlarRemarks

Return Value

DECIMAL.

Değer 0 ise, ARCTAN 0 döndürür. ARCTAN, -p/2 ile p/2 radyan aralığında bir değer döndürür.

Return Value

DECIMAL.

If value is 0, ARCTAN returns 0. ARCTAN returns a value in the range -p/2 to p/2 radians

ÖrnekExample
OBJECT: 
 DECIMAL X;

X = -862.420000;
X = ARCCTAN(X);
/* X = -1.569637 */
İlgili KomutlarRelated Commands
ARCTAN2
ARCTAN2()Math Functions

y/x'in arctangent'ını hesaplar.

Calculates the arctangent of y/x.

ARCTAN 2({y},{x});
Detayları gösterShow details
ParametrelerParameters
y	=   a decimal value
x	=   a decimal value
NotlarRemarks

Return Value

DECIMAL.

ARCTAN2'nin her iki parametresi de 0 ise, function 0 döndürür. ARCTAN2, return değerinin quadrant'ını belirlemek için her iki parametrenin işaretini kullanarak -p ile p radyan aralığında bir değer döndürür.

Return Value

DECIMAL.

If both parameters of ARCTAN2 are 0, the function returns 0. ARCTAN2 returns a value in the range -p to p radians, using the signs of both parameters to determine the quadrant of the return value.

ÖrnekExample
OBJECT: 
 DECIMAL X,
 DECIMAL Y;

X = -862.420000;
Y = 78.514900;
X = ARCTAN2(X,Y);
/* X =  -1.480006 */
İlgili KomutlarRelated Commands
ARCTAN2
ATOF()FUNCTION

String'leri decimal'e dönüştürür.

Converts strings to decimal.

ATOF ({value});
Detayları gösterShow details
ParametrelerParameters

value = a string to be converted.

NotlarRemarks

Return Value

DECIMAL.

ATOF, input karakterlerini bir sayı olarak yorumlayarak üretilen DECIMAL değeri döndürür. Input o type'a dönüştürülemiyorsa return değeri 0'dır. Overflow durumunda return değeri tanımsızdır.

Return Value

DECIMAL.

ATOF returns the DECIMAL value produced by interpreting the input characters as a number. The return value is 0 if the input cannot be converted to a value of that type. The return value is undefined in case of overflow.

ÖrnekExample
OBJECT: 

 STRING STR,

 DECIMAL DECV;



STR = '7.8912654773123';

DECV = ATOF(STR);



/* 

DECV = 7.8912654773 

after comma, only first ten digits are included.

*/
İlgili KomutlarRelated Commands
ATOI
ATOI()FUNCTION

String'leri integer'a dönüştürür.

Converts strings to integer.

ATOI ({value});
Detayları gösterShow details
ParametrelerParameters

value = a string to be converted.

NotlarRemarks

Return Value

INTEGER.

ATOI, input karakterlerini bir sayı olarak yorumlayarak üretilen INTEGER değeri döndürür. Input o type'a dönüştürülemiyorsa return değeri 0'dır. Overflow durumunda return değeri tanımsızdır.

Return Value

INTEGER.

ATOI returns the INTEGER value produced by interpreting the input characters as a number. The return value is 0 if the input cannot be converted to a value of that type. The return value is undefined in case of overflow.

ÖrnekExample
OBJECT: 
 STRING STR,
 INTEGER INTV;

STR = '-9885 is a negative number';
INTV = ATOI(STR);
/* INTV = -9985 */
İlgili KomutlarRelated Commands
ATOF
ATTENTIONGENERAL

Belirtilen control üzerinde bir dialog box'ta, örneğin eksik field'ları belirtmek veya kullanıcıyı bilgilendirmek için bir mesaj gösterir.

Displays a message in a dialog box on specified control to indicate for example missing fields or to inform the user.

ATTENTION TO {control_name}  MESSAGE {id_name} {cnnn} [DEFAULTOPTION int1] [OPTIONS string1] WITH parameter_list;

or

ATTENTION TO {table_name} {row} {col}  MESSAGE {id_name} {cnnn} [DEFAULTOPTION int1] [OPTIONS string1] WITH parameter_list;
Detayları gösterShow details
ParametrelerParameters

See the syntax of the command MESSAGE for displaying the message rules.

If row and column indices are specified after the column name, the command will point to the specified coordinates of the table and show the

message for that cell.

NotlarRemarks

Ayrıca bkz: MESSAGE

See also: MESSAGE

ÖrnekExample
/* A.  Message with two parameters where one of them is a variable and the other is a string. */

ATTENTION TO EDIT1 MESSAGE SYS E100 WITH '01' DEBIA_NAME;



/* B. Message to  table field */

ATTENTION TO USER_TABLE 3 4 MESSAGE SYS E100 WITH '01' DEBIA_NAME;
İlgili KomutlarRelated Commands
CONFIRM
AUTHENTICATESystem Functions

Kullanıcı radius user veya smartcard user ise, authentication etkinse authentication gerçekleştirir.

Performs authentication if the user is radius user or smartcard user, provided that authentication is enabled.

AUTHENTICATE;
Detayları gösterShow details
NotlarRemarks

Transaction batch veya sql transaction ise engellenir.

It is prevented if the transaction is batch or sql transactions.

İlgili KomutlarRelated Commands
VERIFYCARD
BASE64DECODE()String Manipulation

İstenen data'yı base64 format'ından bir String'e decode eder.

Decodes the desired data in base64 format into a String.

BASE64DECODE({variable1},{variable2} );
Detayları gösterShow details
ParametrelerParameters

variable1 = The data in base64 format

varable2 = The encoding of the String to be created.

NotlarRemarks

Return Value

String:

Bir String döndürür.

Base64, e-mail'de attachment aktarmak için bir encoding format'ı olarak orijinal kullanımının dışında birçok yerde gereklidir. Binary veya arbitrary data'nın yaygın yazdırılabilir karakterlerle temsil edilmesi gerektiğinde her zaman kullanılabilir.

Return Value

String:

Returns a String.

Base64 is needed in many places other than its original use as an encoding format for transferring attachments in email. It can be used anytime binary or arbitrary data needs to be represented in common printable characters.

ÖrnekExample
OBJECT : STRING ENCODING, STRING DATA, STRING RESULT;

ENCODING= 'UTF-8';

DATA = 'VEVTVERBVEE=';

RESULT = BASE64DECODE(DATA,ENCODING);
İlgili KomutlarRelated Commands
BASE64ENCODE
BASE64ENCODE()String Manipulation

İstenen data'yı base64 format'ına encode eder.

Encodes the desired data into base64 format.

BASE64ENCODE({variable1},{variable2} );
Detayları gösterShow details
ParametrelerParameters

variable1 = The String to be converted to base64.

varable2 = The encoding of the String to be converted.

NotlarRemarks

Return Value

String:

Bir String döndürür.

Base64, e-mail'de attachment aktarmak için bir encoding format'ı olarak orijinal kullanımının dışında birçok yerde gereklidir. Binary veya arbitrary data'nın yaygın yazdırılabilir karakterlerle temsil edilmesi gerektiğinde her zaman kullanılabilir.

Return Value

String:

Returns a String.

Base64 is needed in many places other than its original use as an encoding format for transferring attachments in email. It can be used anytime binary or arbitrary data needs to be represented in common printable characters.

ÖrnekExample
OBJECT : STRING ENCODING, STRING DATA, STRING RESULT;

ENCODING= 'UTF-8';

DATA = 'TEST DATA';

RESULT = BASE64ENCODE(DATA,ENCODING);
İlgili KomutlarRelated Commands
BASE64DECODE
BATCHENDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

BEEPBasic Troia

Standart bir beep sesi çalar.

Performs playing a standart beep voice.

BEEP;
Detayları gösterShow details
ÖrnekExample
BEEP;
BEGINTRANDatabase

Bu statement, transaction log'larını başlatır.

This statement starts the transaction logs.

BEGINTRAN;
Detayları gösterShow details
NotlarRemarks

COMMITTRAN veya ROLLBACKTRAN ile sona ermelidir.

Should end with COMMITTRAN or ROLLBACKTRAN.

BITWISEAND()FUNCTION

Parametreleri üzerinde bitwise And işlemi yapar ve bir integer döndürür.

Performs bitwise And on its parameters and returns an integer.

BITWISEAND({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1, variable2 = specifies integer variables .

NotlarRemarks

Return Value

Integer

Return Value

Integer

ÖrnekExample
OBJECT:

 INTEGER INTVAR2,

 INTEGER INTVAR3;



INTVAR2 = 110;

INTVAR3 = 101;

INTEGERVAR1 = BITWISEAND(INTVAR2,INTVAR3);

/* result = 100 */
İlgili KomutlarRelated Commands
BITWISEOR
BITWISEOR()FUNCTION

Parametreleri üzerinde bitwise Or işlemi yapar ve bir integer döndürür.

Performs bitwise Or on its parameters and returns an integer.

BITWISEOR({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variablen = specifies integer variables

NotlarRemarks

Return Value

Integer

Return Value

Integer

ÖrnekExample
OBJECT:

 INTEGER INTVAR2,

 INTEGER INTVAR3;



INTVAR2 = 110;

INTVAR3 = 101;

INTEGERVAR1 = BITWISEOR(INTVAR2,INTVAR3);

/* result = 111 */
İlgili KomutlarRelated Commands
BITWISEAND
BREAKLooping

BREAK command'ı, while veya loop block'larını sonlandırır.

BREAK command ends the while or loop blocks.

BREAK;
Detayları gösterShow details
ÖrnekExample
WHILE SYS_STATUS == 0 
BEGIN
	READ DEBIA WITH INDEX I;

	IF SYS_STATUS != 0 THEN
		BREAK;
	ENDIF;


	IF DEBIA_DELETED THEN
		/*DEBIA_DELETE;*/
	ENDIF;


	IF DEBIA_UPDATED THEN
		/*DEBIA_UPDATE;*/
	ENDIF;


	IF DEBIA_INSERTED THEN
		/* DEBIA_INSERT; */
	ENDIF;

ENDWHILE;
İlgili KomutlarRelated Commands
WHILE LOOP RETURN
BREAKPOINTTroia Development

Developer'ın kod çalışmasını durdurmasına ve tam o code line anında variable'ları izlemesine olanak tanır.

Lets developer stop the code run and watch the variables at just that codeline time.

BROWSERACTIONGENERAL

Verilen action'a bağlı olarak browser'ın içeriğini ayarlar.

Sets the content of browser, dependent on the given action.

BROWSERACTION {action} ON {browsercontrolname} ELEMENT {element} WITH {parameter};
Detayları gösterShow details
ÖrnekExample
BROWSERACTION INSERTIMAGE ON MYBROWSER ELEMENT PAGE WITH '*C:\XXX.JPG';
BROWSERACTION GETVALUE ON MYBROWSER ELEMENT MYTEXTFIELD WITH STRINGVAR3;
BROWSERACTION SETVALUE ON MYBROWSER ELEMENT MYTEXTFIELD WITH STRINGVAR3;
BROWSERACTION INVOKE ON MYBROWSER ELEMENT MYTEXTFIELD WITH STRINGVAR3;
BROWSERACTION LOCATION ON MYBROWSER ELEMENT PAGE WITH STRINGVAR3;
BROWSERACTION INSERTTEXT ON MYBROWSER ELEMENT CURRENT WITH STRINGVAR3;
BROWSERACTION SETPROPERTY ON MYBROWSER ELEMENT CMSLEVEL WITH STRINGVAR3;
BUILDHASHINDEXBasic Troia

Bir table üzerinde verilen column listesine göre hash index oluşturur. Bu index, "INDEXED INDEX indexname" seçeneğiyle kullanıldığında LOCATERECORD komutu tarafından kullanılır.

Create a hash index on given column list on a table. this index will be used by LOCATERECORD command when used with "INDEXED INDEX indexname" option.

BUILDHASHINDEX {indexname} COLUMNS {cols} ON {tablename};
Detayları gösterShow details
ParametrelerParameters

indexname = name of the index to be created

cols = names of the columns to be used while creating the index

tablename = the target table

NotlarRemarks

- Artık ihtiyaç kalmadığında, table'ın oluşturulmuş index'ini temizlemek için şunu çağırabilirsiniz:

   BUILDHASHINDEX indexname COLUMNS '' ON tablename;

- When there is no more need, to clear a created index of table you can call

   BUILDHASHINDEX indexname COLUMNS '' ON tablename;
ÖrnekExample
OBJECT:

STRING INDEXNAME,

INTEGER ITERATIONCOUNT,

STRING STRREPORT;



STRINGVAR1 = 'SALT01R300';

STRINGVAR2 = 'TXTADR';

INDEXNAME = 'DIALOG_CONTROL';

ITERATIONCOUNT = 1000;

STRREPORT = '';



/* select the data */

LONGVAR1 = TIMEINMILLISECONDS();

SELECT DIALOG,CONTROL,MODBY FROM SYSCONTROLS WHERE DIALOG LIKE 'sal%' ORDER BY  MODBY INTO TMPTABLE;

LONGVAR2 = TIMEINMILLISECONDS();

LONGVAR3 = LONGVAR2 - LONGVAR1;

STRREPORT = STRREPORT +  '--- SELECT TOOK ( '+TMPTABLE_ROWCOUNT+' records): ' + LONGVAR3 + ' ms' + TOCHAR(10) ;



LONGVAR1 = TIMEINMILLISECONDS();

BUILDHASHINDEX QWERTY COLUMNS DIALOG,CONTROL ON TMPTABLE;

LONGVAR2 = TIMEINMILLISECONDS();

LONGVAR3 = LONGVAR2 - LONGVAR1;

STRREPORT = STRREPORT +  '--- BUILDHASHINDEX FOR '+TMPTABLE_ROWCOUNT+' RECORDS TOOK : ' + LONGVAR3 + ' ms' + TOCHAR(10);



/* then locate with indexed hash search */

INTEGERVAR1 = ITERATIONCOUNT;

LONGVAR1 = TIMEINMILLISECONDS();

WHILE INTEGERVAR1

BEGIN

  LOCATERECORD INDEXED INDEX QWERTY  VALUES STRINGVAR1,STRINGVAR2 ON TMPTABLE ;

  INTEGERVAR1 = INTEGERVAR1 - 1;

ENDWHILE;

LONGVAR2 = TIMEINMILLISECONDS();

IF TMPTABLE_DIALOG!=STRINGVAR1 || TMPTABLE_CONTROL!=STRINGVAR2 THEN                

        MESSAGE BAS E8 WITH 5;

ELSE

        READ TMPTABLE WITH INDEX 1;

ENDIF;

LONGVAR3 = LONGVAR2 - LONGVAR1;

STRREPORT = STRREPORT +  '--- LOCATERECORD INDEXED FOR '+ITERATIONCOUNT+' ITERATIONS TOOK : ' + LONGVAR3 + ' ms' + TOCHAR(10);
İlgili KomutlarRelated Commands
LOCATERECORD
CALCULATE()Math Functions

Variable'ları IASCALCUL virtual table'ından alarak string matematiksel expression'ları hesaplar.

Calculates string mathematical expressions taking the variables from the virtual table IASCALCUL.

CALCULATE(string_expression)
Detayları gösterShow details
ParametrelerParameters

string_expression = mathematical expression to be calculated.

NotlarRemarks

Decimal döndürür.

Expression formülünde kullanılan tüm variable'lar, IASCALCUL virtual table'ına eklenmiş veya transaction'da bir variable olarak tanımlanmış olmalıdır.

Returns Decimal.

In the expression formula all variables used should have been inserted to virtual table IASCALCUL or defined as a variable in the transaction

ÖrnekExample
OBJECT: 

STRING FORMULA,

DECIMAL RESULT;



/* initialize table */

SELECT * FROM IASCALCUL WHERE 1=2; 



/* add variables in the formula to the table */

APPEND ROW TO IASCALCUL;

IASCALCUL_VARIABLE='A';

IASCALCUL_VALUE=27.45;



APPEND ROW TO IASCALCUL;

IASCALCUL_VARIABLE='B';

IASCALCUL_VALUE=16;



APPEND ROW TO IASCALCUL;

IASCALCUL_VARIABLE='C';

IASCALCUL_VALUE=3;



/* initialize the formula */

FORMULA='(A+B)*C+25';



/* get result */

RESULT=CALCULATE(FORMULA);

/*  value of RESULT should be 155.35 */
CALLBasic Troia

Call statement, transaction başlatır, dialog açar ve report basar.

Call statement starts transactions, opens dialogs and prints reports.

CALL (DIALOG|TRANSACTION|REPORT) {dialog_name|transaction_name|report_name|variable_name} [{parameters}|TO SCREEN|TO PRINTER|WITH LOCATION DEFAULT|{x},{y} SIZE {width},{height}] [LANGU {report_language}];

CALL DIALOG dialog_name [WITH LOCATION DEFAULT|{x},{y} SIZE {width},{height}];

CALL REPORT report_name [TO SCREEN|TO PRINTER|TO SWING|TO FILE {file_name}|TO TEXT {string_variable} [COLNUM {integer-variable} USESTYLES]] [SAVE {file_name}] [LANGU {report_language}];

CALL TRANSACTION transaction_name [INSERVER] (inputparameters, ...) [WITH WAIT] (outputparameters, ...);
Detayları gösterShow details
ParametrelerParameters

dialog_name = Specifies the name of the dialog
transaction_name = Specifies the name of the transaction
report_name = Specifies the name of the report
variable_name = Specifies the name of the variable for the transaction or the dialog
INSERVER = runs the transaction as a batch transaction on the serverside. ERRORTABLE SYSBATCHMESSAGES contains the messages given while running the transaction.
ERRORTABLE columns : TYPE,MODULE,MESSAGETYPE,MESSAGENUM,MESSAGETXT

ÖrnekExample
/* A. Call statement for a dialog */

CALL DIALOG IDBCT001;

/* Call with size and location. */

CALL DIALOG IDBCT001 WITH LOCATION 20,20 SIZE 608,512;

/* B. Call statement for a transaction */

CALL TRANSACTION BAST02(P1,P2,P3,P4);

CALL TRANSACTION BAST02 INSERVER (P1,P2,P3,P4);

CALL TRANSACTION DEVT08 (STRINGVAR1, STRINGVAR2) WITH WAIT (RESULT1, RESULT2);

/* C. Call statement with a variable */

DLG = 'BAST02';

CALL DIALOG DLG;

/* D. Call statement for a report. */

CALL REPORT BAST02R001 TO SCREEN LANGU SYS_LANGU;

CALL REPORT BAST02R001 TO PRINTER LANGU SYS_LANGU;
CALLWEBSERVICEWeb Services

Verilen parametrelerle istenen web service'i çağırır.

Calls the desired web service with the given parameters.

CALLWEBSERVICE {wsdladdress} , {operation} TO {sym} WITH {params};
Detayları gösterShow details
ParametrelerParameters

wsdladdress = Web service address

operation = The desired web service operation

sym = result symbol

params = comma seperated parameters.

CEIL()Math Functions

Bir değerin ceiling'ini (tavan değerini) hesaplar.

Calculates the ceiling of a value.

CEIL ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value

NotlarRemarks

Return Value

CEIL function'ı, değere eşit veya değerden büyük olan en küçük integer'ı temsil eden bir DECIMAL değeri döndürür.

Return Value

The CEIL function returns a DECIMAL value representing the smallest integer that is greater than or equal to value.

ÖrnekExample
OBJECT : 

 DECIMAL DECV1,

 DECIMAL DECV2;



DECV1 = 2.8;

DECV2 = -2.8;



DECV1 = CEIL(DECV1);	/* DECV1 = 3.00 */

DECV2 = CEIL(DECV2);	/* DECV2 = -2.00 */
İlgili KomutlarRelated Commands
FLOOR
CHANGEENTITYIDDiagram

Verilen bir diagram entity'sinin id'sini değiştirir.

Changes id of an given diagram entity.

CHANGEENTITYID {id} TO {newid} IN {diagram_name} ;
Detayları gösterShow details
ParametrelerParameters
diagram_name         = diagram control name.
id                                 = id of the diagram entity that will be changed.
newid                         = new id of the diagram entity.
NotlarRemarks

Bu command, bir entity'nin kopyalanabildiği veya taşınabildiği editable diagram'larda kullanılabilir.

EDITMODE TRUE olarak ayarlandığında, object üzerindeki entity'ler kopyalanabilir.

Kopyalama, CTRL ve mouse ile sürükleme (dragging) ile yapılır (kopyalanan object'in kenarında bir + işareti görülür).

Bu işlem, yeni (kopyalanan) object id'sini "Copy of idx" olarak değiştirir (idx - kopyalanan object'in id'si). Bu command ile (ve ENTITYID system variable'ının yardımıyla) yeni object'lerin id'si değiştirilebilir.

This command may be used in editable diagrams where an entity can be copied or moved.

When EDITMODE is set as TRUE , entities on the object can be copied.

Copying is done with CTRL and mouse dragging(a + sign is seen on the border of the copied object).

This action changes the new (copied) object id to "Copy of idx" (idx - id of the copied object). With this command (and help of

ENTITYID system variable) new objects id can be changed.

ÖrnekExample
CHANGEENTITYID R8 TO R10 IN DIAGRAM1;
İlgili KomutlarRelated Commands
ADDENTITY ADDLINK REMOVEENTITY SETEDITMODE ZOOMDIAGRAM
CHANGETREEITEMTree

İstenen tree'nin leaf text'ini değiştirir.

Changes tree leaf's text of the desired tree.

CHANGETREEITEM {leaf_text} WITH {leaf_id} FROM {tree_name};
Detayları gösterShow details
ParametrelerParameters

leaf_text = the name of the leaf you want to insert.

leaf_id = the id of the leaf you want to insert.

tree_name = the name of the tree object on the dialog.

ÖrnekExample
OBJECT:
STRING STR;

STR = 'TEST1';
CHANGETREEITEM STR WITH 001 FROM TREE1;
/* 001 is the id of the leaf*/
CHECKDATE()FUNCTION

Verilen string'in izin verilen bir date string olup olmadığını kontrol eder.

Checks whether the given string is an allowed date string or not.

CHECKDATE {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time varibale. A STRING or DATE variable type.

NotlarRemarks

Return Value

Integer. String doğruysa 1, yanlışsa 0.

Year değeri 1970 ile 2030 arasında olmalıdır.

Return Value

Integer. 1 if the string is correct 0 if it is false.

Year value must be between 1970 and 2030.

ÖrnekExample
OBJECT: 

 STRING STR1,

 STRING STR2,

 STRING STR3,

 INTEGER V1,

 INTEGER V2,

 INTEGER V3;



V1 = 1;

V2 = 1;

V3 = 1;

STR1  = '01.01.1997';

STR2  = '13.13.1998';

STR3  = '01.01.2040';

V1 = CHECKDATE(STR1);

V2 = CHECKDATE(STR2);

V3 = CHECKDATE(STR3);



 /*

Before CHECKDATE function is executed:



V1 = 1

V2 = 0 // month value is not valid

V3 = 0 //year value must be less than 2030



After CHECKDATE function is executed:



V1 = 0

V2 = 0

V3 = 1

*/
İlgili KomutlarRelated Commands
CHECKTIME
CHECKSYNTAXTroia Development

Bir kod taşıyan verilen string'in syntax'ını kontrol eder.

Checks the syntax of a given string carrying a code.

CHECKSYNTAX {codestring};
Detayları gösterShow details
ParametrelerParameters

codestring = code to be checked

ÖrnekExample
CHECKSYNTAX CODEBOX;



IF SYS_STATUS == 1 THEN

	/* Syntax Error!*/

ENDIF;



/*

In this example CODE field of SYSCLSFUNC is a string carrying codes.

*/
İlgili KomutlarRelated Commands
CONVERTBINARY CONVERTDIALOG
CHECKTIME()FUNCTION

Verilen string'in izin verilen bir time string olup olmadığını kontrol eder.

Checks whether the given string is an allowed time string or not.

CHECKTIME {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time varibale. A STRING variable type.

NotlarRemarks

Return Value

Integer. String doğruysa 1, yanlışsa 0.

Return Value

Integer. 1 if the string is correct 0 if it is false.

ÖrnekExample
OBJECT: 

 STRING STR1,

 STRING STR2,

 STRING STR3,

 INTEGER V1,

 INTEGER V2,

 INTEGER V3;



V1 = 1;

V2 = 1;

V3 = 1;

STR1 = '12:30';

STR2 = '15:80';

STR3 = '11:40';

V1 = CHECKTIME(STR1);

V2 = CHECKTIME(STR2);

V3 = CHECKTIME(STR2);

 /* Before CHECKTIME function is executed:

V1 = 1

V2 = 1

V3 = 1

*/ /*

After CHECKTIME function is executed:

V1 = 0

V2 = 0

V3 = 1

*/
İlgili KomutlarRelated Commands
CHECKTIME
CLEARBasic Troia

Bir virtual table, tree veya generate edilmiş xml map'in satırlarını temizler.

Clears rows of a virtual table,tree or a generated xml map.

CLEAR ROW {virtual_table};

CLEAR ALL {virtual_table};
CLEAR TREE {tree_name} [CURRENT];
CLEAR TREE {tree_name} NODEID];
CLEAR XMLMAP {xmlmap_name};
Detayları gösterShow details
ParametrelerParameters

ROW : clears only the active row.

ALL : clears all rows in the table.

TREE : clears all contents of the tree.

XMLMAP : clears the generated XMLMAP

virtual_table : name of the virtual table used in the CLEAR command.

tree_name : name of the tree used in the CLEAR command.

xmlmap_name : name of the generated XMLMAP used in the CLEAR command.
CURRENT : clears current branch of the tree.

NODEID : clears the branch of the tree with the given id.

NotlarRemarks

CLEAR komutu yalnızca virtual table'ı etkiler. Değişiklikleri kaydetmek için DELETE statement'ını kullanmalısınız.

CLEAR command only affects the virtual table. To save the changes you should use the DELETE statement.

ÖrnekExample
OBJECT: 

TABLE TABLEX;



CLEAR ROW TABLEX;

CLEAR ALL TABLEX;

CLEAR TREE TREE1;

CLEAR TREE TREE1 CURRENT;

CLEAR TREE TREE1 0001; /*0001 is the id of the leaf*/

CLEAR XMLMAP MAPNAME;
İlgili KomutlarRelated Commands
CONSTRUCT STRUCTURE COPY DELETE
CLEARAGGREGATETable

Bir table'dan aggregation'ı temizler.

Clears aggregation from a table

CLEARAGGREGATE {table_name}
Detayları gösterShow details
ParametrelerParameters

table_name = name of the table

NotlarRemarks

Table'dan tüm summary row'ları kaldırır.
Column aggregation'larını temizler, böylece gelecekteki sıralamalar beklendiği gibi davranır.

Removes all summary rows from the table.
Clears column aggregations so that future sorts will behave expectedly.

ÖrnekExample
/* Clears aggregation*/

CLEARAGGREGATE DESTTABLE;
İlgili KomutlarRelated Commands
AGGREGATE, ADDSUMMARYROWS
CLEARCHARTChart

Chart model'inde verilen dataset'teki row'ları temizler.

Clears rows in given dataset on chart model.

CLEARCHART SET1 TO {chart};
CLEARCHART SET2 TO {chart};
Detayları gösterShow details
ParametrelerParameters

{chart} : Name of chart control

ÖrnekExample
/*

Removes all rows which belongs to SET2 on CHART2

*/

CLEARCHART SET2 TO CHART2;
CLEARCHARTLABELObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

CLEARCLASSCACHE()System Functions

Application server üzerindeki class cache'ini ve cache pair'lerini temizler.

Clears class cache on application server and its cache pairs.

CLEARCLASSCACHE ();
CLEARCLASSCACHE( {cachepairid} )
Detayları gösterShow details
ParametrelerParameters

{cachepairid} : sends a clear class cache message to given cachepair

ÖrnekExample
CLEARCLASSCACHE();
İlgili KomutlarRelated Commands
CLEARDIALOGCACHE,CLEARMENUCACHE
CLEARCOMMENTS()Troia Development

Parameter string'de saklanan comment'leri temizler ve temizlenmiş string'i döndürür.

Clears the comments that are stored in parameter string and return cleared string.

CLEARCOMMENTS(codeString);
Detayları gösterShow details
ParametrelerParameters

codeString = string that include comment(s).

ÖrnekExample
STRINGVAR3 = '/* COMMENT1 */ SOME CODE PART /* COMMNET2 */ ANOTHER CODE PART';



STRINGVAR3 = CLEARCOMMENTS(STRINGVAR3);



/*after execution code 

STRINGVAR3 include  SOME CODE PART  ANOTHER CODE PART

*/
CLEARDIAGRAMDiagram

Diagram üzerindeki tüm entity'leri ve link'leri siler.

Deletes all entities and links on diagram .

CLEARDIAGRAM {diagram_name};
Detayları gösterShow details
ParametrelerParameters

diagram_name = diagram control name.

ÖrnekExample
CLEARDIAGRAM DIAG001;
İlgili KomutlarRelated Commands
ADDENTITY ADDLINK REMOVEENTITY SETEDITMODE ZOOMDIAGRAM
CLEARDIALOGCACHE()System Functions

Application server üzerindeki dialog cache'ini ve cache pair'lerini temizler.

Clears dialog cache on application server and its cache pairs.

CLEARDIALOGCACHE();
CLEARDIALOGCACHE({cachepairid});
Detayları gösterShow details
ParametrelerParameters

{cachepairid} : cache pair it, application server sends an clearclass cache message to given cachepair

ÖrnekExample
CLEARDIALOGCACHE();
İlgili KomutlarRelated Commands
CLEARCLASSCACHE,CLEARMENUCACHE
CLEARDOCUMENTXML Parsing

Verilen xml document üzerinde, belirtilen parametreyi seçerek ve style tag'lerini kaldırarak temizlik yapar.

Performs cleanup on the given xml document by picking the specified parameter, removing style tags.

CLEARDOCUMENT( {text}, {tagname} );
Detayları gösterShow details
ÖrnekExample
/* EXAMPLE 1 with single tag */

/* input xml 

<?xml version="1.0" encoding="UTF-8"?>

<document>

  <row>

    <number>1</number>

    <active>1</active>

    <text>[size=12][b]T[/b][b]his is my Text in Bold and Size 12[/b][/size]</text>

  </row>

</document>

*/



OBJECT:

STRING INPUT,

STRING OUTPUT;



OUTPUT = CLEARDOCUMENT(INPUT,'text');



/*

This is my Text in Bold and Size 12

*/



/* EXAMPLE 2 when multiple tags found, note result is separated by | */

/* input xml 

<?xml version="1.0" encoding="UTF-8"?>

<document>

  <row>

    <number>1</number>

    <active>1</active>

    <text>[size=12][b]T[/b][b]his is my Text in Bold and Size 12[/b][/size]</text>

  </row>

  <row>

    <number>1</number>

    <active>1</active>

    <text>[size=12][b]T[/b][b]his is my Text in Bold and Size 25[/b][/size]</text>

  </row>

</document>

*/



OBJECT:

STRING INPUT,

STRING OUTPUT;



OUTPUT = CLEARDOCUMENT(INPUT,'text');



/*

This is my Text in Bold and Size 12|This is my Text in Bold and Size 25

*/
CLEARMENUCACHE()System Functions

CANIAS server'ın cache'inde saklanan menu item'larını temizler.

Clears the menu items that are stored in the cache of CANIAS server.

CLEARMENUCACHE(client,language,menuname);
Detayları gösterShow details
ParametrelerParameters

client = client id

language = the languge setting

menuname = name of the menu to be cleared

NotlarRemarks

CLEARMENUCACHE('','',''); /* tüm menüleri temizler. */

CLEARMENUCACHE('','',''); /* clears all the menus. */

CLEARTABLETable

Source table'dan belirli row'ları siler.

Delete specific row/s from source table.

CLEARTABLE {source_table_name} [WHERE {clause} | CRITERIA COLUMNS {column1,column2,…} VALUES {valuesymbol1,valuesymbol2,…}];
Detayları gösterShow details
ParametrelerParameters

source_table_name: a virtual table
clause: an if clause block for the records on the source table to remove
column/value: a search criteria columns and values for the records on the source table to remove

NotlarRemarks

CLEARTABLE command'ı yalnızca virtual table'ı etkiler.

CLEARTABLE command only affects virtual table.

ÖrnekExample
/* By using RDTT01 */
CLEARTABLE TMPTABLE WHERE TMPTABLE_USERNAME == 'AAYTEKIN';
/* By creating two tables from development */
SELECT * 
	FROM IASUSERS 
	INTO SOURCETABLE;

CLEARTABLE SOURCETABLE WHERE SOURCETABLE_USERNAME == 'AAYTEKIN';
CLEARTABLE SOURCETABLE CRITERIA COLUMNS USERNAME VALUES 'AAYTEKIN';
CLEARXDATAMARKERSChart

Bir chart'ın X-datamarker'larını (ekrandaki statik dikey marker'ı - data element'ini - tanımlayan) temizler.

Clears X-datamarkers(which identifies static vertical marker- data element- on the screen) of a chart.

CLEARXDATAMARKERS OF {chart_name};
Detayları gösterShow details
ParametrelerParameters

chart_name = name of any two dimensional chart.

NotlarRemarks

Bir marker object'i tek bir datamarker'dır. Plot'lar, area chart'lar, bar chart'lar ve stacking bar chart'lar X-marker kavramını destekler. Plot'larda, area chart'larda ve bar chart'larda, X-marker, graph alanı boyunca X-axis'e dik çizilen bir çizgidir. Stacking bar chart'larda, X-marker, bar block'larından birinin içinden çizilen kısa bir çizgidir.

A marker object is one datamarker.Plots, area charts, bar charts and stacking bar charts support the notion of X-marker. On plots, area charts and bar charts, the X-marker is a line drawn accross the graph area perpendicular to the X-axis. On stacking bar charts, the X-marker is a short line drawn through one of the bar blocks.

ÖrnekExample
CLEARXDATAMARKERS OF CHART01;
İlgili KomutlarRelated Commands
CLEARYDATAMARKERS
CLEARYDATAMARKERSObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

CLEARYDATAMARKERS OF {chartname};
Detayları gösterShow details
ParametrelerParameters

Clears Y-datamarkers(which identifies a static horizontal marker- data element- on the screen) of a chart.

NotlarRemarks

Bir marker object'i tek bir datamarker'dır. Y-marker, graph alanı boyunca Y-axis'e dik çizilen bir çizgidir.

A marker object is one datamarker.The Y-marker is a line drawn accross the graph area perpendicular to the Y-axis.

ÖrnekExample
CLEARYDATAMARKERS OF CHART01;
İlgili KomutlarRelated Commands
CLEARXDATAMARKERS
CLOSEFile

Bu command, log dosyası için handle'ı kapatır.

This command closes handle for log file.

CLOSE FILE;
Detayları gösterShow details
ÖrnekExample
OBJECT: 
 INTEGER X,
 STRING Y;

X = 11;
Y = 'Aslan';
OPEN FILE 'C:\TMP\xxx.txt';
PUT 21,X%-6s,Y%-12s;
CLOSE FILE;
İlgili KomutlarRelated Commands
OPEN
CLOSECONNECTIONDatabase

Önceden tanımlanmış bir connection'ı deactivate eder.

Deactivates a previously defined connection.

CLOSECONNECTION {connection_name};
Detayları gösterShow details
ParametrelerParameters

connection_name = name of the connection to be re-established.

İlgili KomutlarRelated Commands
MAKENEWCONNECTION
CLOSEFTPCONNECTIONFTP Commands

File server ile Application Server arasında verilen host'a olan session'ı kapatır.

Closes session between file server and Application Server to given host.

CLOSEFTPCONNECTION {HOST}
Detayları gösterShow details
ParametrelerParameters

HOST: File Server IP or name.

ÖrnekExample
OBJECT: 

STRING FTPHOST,

STRING FTPPASS,

STRING FTPUSER;



FTPHOST = 'anyftp.com.tr';

FTPUSER = 'user';

FTPPASS = 'password';



MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;



CLOSEFTPCONNECTION FTPHOST;
İlgili KomutlarRelated Commands
MAKEFTPCONNECTION, FTPUPLOAD, FTPDOWNLOAD, FTPCOMMAND
CLOSEPORTPort Communication

Önceden tanımlanmış açık bir port'u kapatır.

Closes a predefined open port.

CLOSEPORT {portname};
Detayları gösterShow details
ParametrelerParameters

portname = name of the port to be closed.

İlgili KomutlarRelated Commands
OPENPORT READFROMPORT SENDTOPORT
COMMITTRANDatabase

Bu statement, BEGINTRAN'dan başlatılan tüm transaction'ları günceller.

This statement updates all transactions that are started from BEGINTRAN.

COMMITTRAN;
Detayları gösterShow details
NotlarRemarks

ROLLBACKTRAN statement'ı bir transaction içinde yer almalıdır. Bir COMMITTRAN statement'ı çalıştırıldıktan sonra bir transaction'ı geri alamazsınız (rollback).

The ROLLBACKTRAN statement must appear within a transaction. You cannot roll back a transaction after a COMMITTRAN statement is executed.

İlgili KomutlarRelated Commands
BEGINTRAN ROLLBACKTRAN
CONFIRMSystem Variables

MESSAGE command'ına verilen cevaba göre YES veya NO döndüren bir Global değer.

A Global value that returns YES or NO according to the answer given to the MESSAGE command.

CONFIRM
Detayları gösterShow details
NotlarRemarks

String döndürür.

Döndürülen değerler 'YES' veya 'NO'dur.

Hiçbir MESSAGE command'ı çalıştırılmamışsa, döndürülen değer boş bir string'dir.

Returns String.

Returned values are 'YES' or 'NO'

If no MESSAGE command is executed ; the returned value is an empty string.

ÖrnekExample
MESSAGE BAS C003 WITH;



IF CONFIRM == 'YES' THEN

        STRINGVAR1 = 'CONFIRMED';

ENDIF;
CONSTRUCTTable

Bir null select statement'ı çalıştırır. Yalnızca column bilgisi seçilir. STRUCTURE varyasyonuyla kullanıldığında; COLNAME, COLTYPE, COLLEN, COLPRE, COLNOT column'larına sahip yeni bir virtual table oluşturur. Ortaya çıkan table boştur, yalnızca bilgi row'unu taşır.

Executes a null select statement. Only the column information is selected. When used with STRUCTURE variation; Constructs a new virtual table with the columns COLNAME, COLTYPE, COLLEN, COLPRE, COLNOT. The resulting table is empty, only carries the information row with.

CONSTRUCT {table_name} [INTO {virtual_table}];

CONSTRUCT STRUCTURE INTO {virtual_table};
Detayları gösterShow details
ParametrelerParameters
table_name         = Specifies the name of the table used in the CONSTRUCT command.
INTO                 = Used if the table is going to be selected into a virtual table. If not used result is copied to the virtual table with of the same name as table_name.
virtual_table         = Specifies the name of the virtual table used in the CONSTRUCT command.
NotlarRemarks

Virtual table'a yeni column'lar eklemek için APPEND statement'ını kullanmalısınız.

CONSTRUCT STRUCTURE ile; Table, yeni bir table oluşturmak için kullanılabilir. COLNOT column'unda 1, column değerinin NULL olamayacağını, 0 ise column değerinin NULL olabileceğini gösterir.

To insert new columns to the virtual table you should use the APPEND statement.

With CONSTRUCT STRUCTURE; The table can be used to create a new table. 1 for the COLNOT column indicates that the column value cannot be NULL and 0 indicates that the column value can be NULL.

ÖrnekExample
OBJECT: 
 TABLE TMPTABLE;

CONSTRUCT IASBAS002;
CONSTRUCT IASBAS002 INTO TMPTABLE;
İlgili KomutlarRelated Commands
APPEND SELECT
CONTINUEBasic Troia

Bir sonraki loop/while döngüsüne devam eder.

Continues on the next loop/while cycle.

CONTINUE;
Detayları gösterShow details
İlgili KomutlarRelated Commands
LOOP WHILE
CONVERTBINARYTroia Development

Verilen class'ı (tüm function'lar, variable'lar, constructor ve destructor dahil) binary code'a dönüştürür. Binary code, uygun binary code table'ında saklanır.

Converts the given class (including all functions, variables, constructor and destructor) to binary code. The binary code is saved in the suitable binary code table.

CONVERTBINARY {class_name};
Detayları gösterShow details
ParametrelerParameters

class_name = name of the class. A variable or not.

ÖrnekExample
CONVERTBINARY TMPTBL_CLASS;



IF SYS_STATUS == 1 THEN

    /*Compiling Error*/

ENDIF;



/*

In this example CLASS field of TMPTBL is a string carrying strings which is the name of a class.

*/
İlgili KomutlarRelated Commands
CHECKSYNTAX CONVERTDIALOG
CONVERTDATEFORMAT()FUNCTION

Bir variable'ın type'ını string type'a dönüştürür.

Converts the type of a variable to string type.

CONVERTDATEFORMAT({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = name of a date/datetime variable to be converted to string type.

NotlarRemarks

Return Value

String:

Dönüştürülen variable'ı döndürür.

Return Value

String:

Returns the converted variable.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATE D,
 STRING A,
 STRING B;

DT = '01.01.1997 12:00';
D = '01.01.1995';
A = CONVERTDATEFORMAT(DT);
B = CONVERTDATEFORMAT(D);
/* After CONVERTDATEFORMAT function is executed: both in string type. */
/*
A: '01.01.1997 12:00';
B: '01.01.1995 00:00';
*/
CONVERTDIALOGTroia Development

Verilen dialog üzerindeki function'ları binary code'a dönüştürür. Binary code, uygun binary code table'ında saklanır.

Converts the functions on the given dialog to binary code. The binary code is saved in the suitable binary code table.

CONVERTDIALOG {dialog_name} [USING {language}];
Detayları gösterShow details
ParametrelerParameters

dialog_name = name of the dialog. A variable or not.

language    = the language specified for the dialog to be converted.
ÖrnekExample
CONVERTDIALOG IDCUS000;

CONVERTDIALOG IDCUS000 USING SYS_LANGU;
İlgili KomutlarRelated Commands
CHECKSYNTAX CONVERTBINARY
CONVERTFUNCTIONObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

CONVERTRTFGENERAL

İstenen RTF string'ini bir PDF document'ine dönüştürür.

Converts the desired RTF string into a PDF document.

CONVERTRTF {rtfcode} INTO {pdffilename} 

				[ORIENTATION PORTRAIT|LANDSCAPE]

				[MARGINS left,right,top,bottom]

				[PAGESIZE pagesize]

				[AUTONUM 0|1]

				[HEADERNOTE LEFT|CENTER|RIGHT note]

				[FOOTERNOTE LEFT|CENTER|RIGHT note];
Detayları gösterShow details
ParametrelerParameters

rtfcode = the RTF string to be converted

pdffilename = the name of the pdf file to be created

NotlarRemarks

Pagesize değeri şunlardan biri olmalıdır ("letter","note","legal","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","b0","b1","b2","b3","b4","b5","halfletter","11x17","ledger") veya kağıdın piksel cinsinden virgülle ayrılmış boyutları (örn: "700,800"), default "a4"tür.

Pagesize value should be in ( "letter","note","legal","a0","a1","a2",

"a3","a4","a5","a6","a7","a8","a9","a10",

"b0","b1","b2","b3","b4","b5","halfletter",

"11x17","ledger" )

or dimensions of the paper in pixels separated by comma (ex:"700,800") where default is "a4".

CONVERTRTFTOHTML()FUNCTION

Verilen RTF kodunun ürettiği HTML source kodunu döndürür.

Returns the produced HTML source code of the given RTF code.

CONVERTRTFTOHTML({rtf_code});
Detayları gösterShow details
NotlarRemarks

Table'lar, image'lar gibi karmaşık yapılar desteklenmez.

Complex structures such as tables, images are not supported.

ÖrnekExample
STRINGVAR1 = '{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fswiss\..';

RESULTBOX = CONVERTRTFTOHTML(STRINGVAR1);
CONVERTTOHEX()Math Functions

Verilen bir integer/long sayısını sekiz basamaklı hexadecimal sayıya dönüştürür.

Converts a given integer/long number to eight-digit hexadecimal number.

CONVERTTOHEX(number_symbol);
Detayları gösterShow details
ParametrelerParameters

number_symbol = Integer/long number symbol to convert.

NotlarRemarks

Integer/long sayısı alır ve altı ile sekiz basamak arasında bir hexadecimal sayı döndürür.

Receives integer/long number and returns an hexadecimal number, between six-digit and eight-digit.

ÖrnekExample
OBJECT:

 INTEGER LCOLOR,

 STRING HCOLOR;



/*Integer/Long: 8627968*/

LCOLOR = GETTHEMEVARIABLE('BACKCOLOROK');

/*Hexadecimal: 83a700*/

HCOLOR = CONVERTTOHEX(GETTHEMEVARIABLE('BACKCOLOROK'));
CONVERTTOMONEY()FUNCTION

Bir variable'ın type'ını money type'a dönüştürür.

Converts the type of a variable to money type.

CONVERTTOMONEY({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = name of a variable to be converted to money type.

NotlarRemarks

Return Value

Decimal:

Dönüştürülen variable'ı döndürür.

Dönüştürülecek değer, numeric olmayan bir karakter içermemelidir.

Return Value

Decimal:

Returns the converted variable.

The value to be converted must not contain a non-numeric character.

ÖrnekExample
OBJECT: 

 STRING V1,

 INTEGER V2,

 DECIMAL A,

 DECIMAL B;



V1 = '111';

V2 = 111;

A  = CONVERTTOMONEY(V1);

B  = CONVERTTOMONEY(V2);



 /*

After CONVERTTOMONEY function is executed:

A = 111.00

B = 111.00

*/
CONVERTTOXML()FUNCTION

Verilen table'ı xml string'e dönüştürür.

Converts the given table into xml string

CONVERTTOXML(variable_name,startrow,endrow ); 

CONVERTTOXML(variable_name,startrow,endrow , rowflag );

CONVERTTOXML(variable_name,startrow,endrow , rowflag, includeheaders );
Detayları gösterShow details
ParametrelerParameters

variable_name = name of a table to be converted to xml.

startrow = row index that conversion will begin from

endrow = row index that conversion will end at.

rowflag = flag that is used to express row headers

includeheaders = flag that is used to include row headers

NotlarRemarks

Return Value

String:

Dönüştürülen table'ı string olarak döndürür.

end row == 0 ise, endrow == table row olur.

Return Value

String:

Returns the converted table as string.

if end row == 0 , then endrow == table row

ÖrnekExample
OBJECT: 

 STRING RFLAG;



RFLAG = 'LINE';



SELECT * 

        FROM IASBAS005 

        INTO TMPTABLE;



STRINGVAR3 = CONVERTTOXML(TMPTABLE,1,3,RFLAG);
CONVERTXMLJSONXML Parsing

Xml document'lerini json notation'a ve tersine dönüştürmeye olanak tanır.

Allows converting xml documents into json notation and backwards.

CONVERTXMLJSON( {input}, 'XML');
CONVERTXMLJSON( {input}, 'XML','NOTYPEHINT');
CONVERTXMLJSON( {input}, 'XML','JSONPREFIX');
CONVERTXMLJSON( {input}, 'JSON');
Detayları gösterShow details
ÖrnekExample
/* 1- CONVERT FROM JSON TO XML */



/* 1A- DEFAULT USAGE */

OBJECT:

STRING INPUT,

STRING OUTPUT;



INPUT = '{"name":"JSON","integer":1,"double":2.0,"boolean":true,"nested":{"id":42},"array":[1,2,3]}'; 

OUTPUT = CONVERTXMLJSON(INPUT,'XML');



/* OUTPUT

<?xml version="1.0" encoding="UTF-8"?>  

<o>  

   <boolean type="boolean">true</boolean>  

   <double type="number">2.0</double>  

   <integer type="number">1</integer>  

   <name type="string">JSON</name>  

   <nested class="object">  

      <id type="number">42</id>  

   </nested>  

   <array class="array">  

      <e type="number">1</e>  

      <e type="number">2</e>  

      <e type="number">3</e>  

   </array>  

</o>  

*/



/* 1B- NO TYPE HINT */

OUTPUT = CONVERTXMLJSON(INPUT,'XML','NOTYPEHINT');



/* OUTPUT

<?xml version="1.0" encoding="UTF-8"?>  

<o>  

   <boolean>true</boolean>  

   <double>2.0</double>  

   <integer>1</integer>  

   <name>JSON</name>  

   <nested>  

      <id>42</id>  

   </nested>  

   <array>  

      <e>1</e>  

      <e>2</e>  

      <e>3</e>  

   </nested>  

</o>  

*/



/* 1C- JSON PREFIX */

OUTPUT = CONVERTXMLJSON(INPUT,'XML','JSONPREFIX');



/* OUTPUT

<?xml version="1.0" encoding="UTF-8"?>  

<o>  

   <boolean json_type="boolean">true</boolean>  

   <double json_type="number">2.0</double>  

   <integer json_type="number">1</integer>  

   <name json_type="string">JSON</name>  

   <nested json_class="object">  

      <id json_type="number">42</id>  

   </nested>  

   <array json_class="array">  

      <e json_type="number">1</e>  

      <e json_type="number">2</e>  

      <e json_type="number">3</e>  

   </array>  

</o>  

*/



/* 2- CONVERT FROM XML TO JSON */

OBJECT:

STRING INPUT,

STRING OUTPUT;



INPUT = '    <o number="1">  first  <string>json</string>  <array>  <e>1</e>  <e>true</e>   </array>  </o>  ';

OUTPUT = CONVERTXMLJSON(INPUT,'JSON');



/* OUTPUT

{  

  "string": "json",  

  "#text": "first",  

  "array":   [  

    "1",  

    "true"  

  ],  

  "@number": "1"  

}

*/
CONVERTXMLTABLEXML Parsing

MAP command'ları tarafından oluşturulan ve PARSEXML command'ı tarafından doldurulan table yapılarını, TROIA'nın virtual table yapısına dönüştürür.

Converts the table structures, which are created by MAP commands and filled in by PARSEXML command, into TRIOA's virtual table structure.

CONVERTXMLTABLE xmltable_name INTO TABLE table_name  FROM mapname;
Detayları gösterShow details
ParametrelerParameters

xmltable_name = specifies the table name which are formed by MAP commands

table_name = specifies the name of virtual table

mapname = specifies the name of map

NotlarRemarks

CONVERTXMLTABLE command'ı, yapılar oluşturulduktan ve doldurulduktan sonra kullanılmalıdır.

CONVERTXMLTABLE command must be used after the structures are formed and filled in.

ÖrnekExample
CLEAR XMLMAP SALESMAP;

CREATEXMLMAP SALESMAP;

MAP ELEMENT P AS XMLTABLE P IN SALESMAP;

MAP PCDATA OF P AS XMLCOLUMN PPCDATA IN SALESMAP;

MAP ELEMENT Description AS XMLTABLE DESCRIPTION IN SALESMAP;

MAP RELATION P TO Description LINK DescPK WITH DescFK GENERATE YES IN SALESMAP;

MAP ELEMENT Part AS XMLTABLE PARTS IN SALESMAP;

MAP ATTRIBUTE PartNumber OF Part AS XMLCOLUMN PartNumber IN SALESMAP;

MAP CHILD Price OF Part AS XMLCOLUMN Price IN SALESMAP;

MAP RELATION Description TO Part LINK PartPK WITH PartFK GENERATE YES IN SALESMAP;

MAP ELEMENT Line AS XMLTABLE LINE IN SALESMAP;

MAP ATTRIBUTE LineNumber OF Line AS XMLCOLUMN LineNumber IN SALESMAP;

MAP CHILD Quantity OF Line AS XMLCOLUMN Quantity IN SALESMAP;

MAP RELATION Part TO Line LINK LineNumber WITH LineNumber GENERATE NO IN SALESMAP;

MAP ELEMENT Customer AS XMLTABLE CUSTOMER IN SALESMAP;

MAP ATTRIBUTE CustNumber OF Customer AS XMLCOLUMN CustNumber IN SALESMAP;

MAP CHILD CustName OF Customer AS XMLCOLUMN CustName IN SALESMAP;

MAP ELEMENT SalesOrder AS XMLTABLE SALESORDER IN SALESMAP;

MAP ATTRIBUTE SONumber OF SalesOrder AS XMLCOLUMN SONumber IN SALESMAP;

MAP CHILD OrderDate OF SalesOrder AS XMLCOLUMN OrderDate IN SALESMAP;

MAP RELATION Line TO SalesOrder LINK SONumber WITH SalesFK GENERATE NO IN SALESMAP;

MAP RELATION Customer TO SalesOrder LINK SONumber WITH SONumber GENERATE NO IN SALESMAP;

MAP ELEMENT Orders AS XMLROOTTABLE Orders IN SALESMAP;

PARSEXML 'D:\pegasus\pegasus_208\sales_in.xml' USING SALESMAP;

CONVERTXMLTABLE PARTS INTO TABLE PARTS FROM SALESMAP;

CONVERTXMLTABLE LINE INTO TABLE LINE FROM SALESMAP;

CONVERTXMLTABLE CUSTOMER INTO TABLE CUSTOMER FROM SALESMAP;

CONVERTXMLTABLE SALESORDER INTO TABLE SALESORDER FROM SALESMAP;

CALL DIALOG RDTT01D007;
İlgili KomutlarRelated Commands
CREATEXMLMAP,MAP,PARSEXML
COPYTable

Verilen table hakkında gerekli bilgiyi bir virtual table'a taşıyan yeni bir table oluşturur.

Builds a new table which carries reqired information about the given table into a virtual table.

COPY (STRUCTURE | TABLE | FIELDS) {table_name} INTO {virtual_table};

COPY TABLE {table_name}  INTO  {virtual_table} [WITHFLAGS];
Detayları gösterShow details
ParametrelerParameters

STRUCTURE = All the column information of the source table is copied to the virtual table.
It inserts column informations as records into target.
TABLE = Everything the source table has including the column information row and the data it carries are copied to the destination table.
FIELDS = All the columns of the source table is copied to the virtual table. It builds target table just alike the source table but with no rows.
table_name = name of the source table

virtual_table = name of the virtual table to be created

NotlarRemarks

STRUCTURE seçeneği: CONSTRUCT STRUCTURE command'ı ile aynıdır, ancak ortaya çıkan table boş değildir. Ortaya çıkan table, source table'ın column sayısı kadar row'a sahiptir. Yeni table'ın column isimleri COLNAME, COLTYPE, COLLEN, COLPRE, COLNOT'tur. COLNOT column'unda 1, column değerinin NULL olamayacağını, 0 ise column değerinin NULL olabileceğini gösterir.

STRUCTURE option: Same as CONSTRUCT STRUCTURE command but the resulting table is not empty. The resulting table has as many rows as the number of source table's columns. The column names of the new table are COLNAME, COLTYPE, COLLEN, COLPRE, COLNOT. A 1 in the COLNOT column indicates that the column value cannot be NULL and 0 indicates that the column value can be NULL.

ÖrnekExample
OBJECT: TABLE TABLEX, TABLE TABLEY, TABLE TABLEZ;



COPY STRUCTURE IASBAS002 INTO TABLEX;

COPY TABLE IASBAS002 INTO TABLEY;



COPY FIELDS IASBAS002 INTO TABLEZ; 

CONSTRUCT STRUCTURE INTO TABLEX;
İlgili KomutlarRelated Commands
CONSTRUCT STRUCTURE CLEAR
COPYFILEFile

Dosyaları bir konumdan başka bir konuma kopyalar.

Copies files from one location to another.

COPYFILE {source_file_path} INTO {target_file_path};
Detayları gösterShow details
ParametrelerParameters

source_file_path : the file path of the file to be copied.

target_file_path : the file path where the file will be copied to.

NotlarRemarks
Dosya client tarafındaysa file path'in başına '*' koymalısınız... Dosyayı client bilgisayarına kopyalamak istiyorsanız target path'in başına '*' koymalısınız.

Destination path yoksa, copy operation'ı iptal edilir.

If the file resides on the client side you must put a '*' before the file path... If you want to copy the file into the client computer you must put a '*' on the target path.

If the destination path does not exist, the copy operation will be cancelled.

ÖrnekExample
OBJECT : 
 STRING SOURCEPATH,
 STRING DESTPATH;

SOURCEPATH = '*C:\TMP.TXT';
DESTPATH = '*D:\TMP.TXT';
COPYFILE SOURCEPATH INTO DESTPATH;
COPYTABLETOXLSFile

Verilen table'ı, server'daki verilen dosyaya excel format'ında export eder.

Exports the given table to the given file at server with excel format.

COPYTABLETOXLS {table_name} TO {'absolute_file_path'};
COS()Math Functions

Cosine'ı hesaplar.

Calculates the cosine.

COS ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value representing Angle in radians

NotlarRemarks

Return Value

DECIMAL.

Return Value

DECIMAL.

ÖrnekExample
OBJECT: 
 DECIMAL X;

X =  1.570796;
X = COS(X);
/* X =  0.0000000000 */
İlgili KomutlarRelated Commands
SIN
COUNTRYTOPHONECODE()FUNCTION

Ülke ismine göre uluslararası telefonların prefix kodunu döndürür.

Returns the prefix code of the international telephones according to the country name.

COUNTRYTOPHONECODE({CountryName});
Detayları gösterShow details
ParametrelerParameters

CountryName = name of the country to get phone code.

ÖrnekExample
/* Returns '+49' */
STRINGVAR1 = COUNTRYTOPHONECODE('Germany');
İlgili KomutlarRelated Commands
PHONECODETOCOUNTRY
CP()String Manipulation

Verilen symbol'ün değeri boş text ('') ise yüzde karakterini (%) döndürür.

Returns the percent character (%) in case of the given symbol having value empty text ('').

CP(symbol_text);
Detayları gösterShow details
ParametrelerParameters

symbol_text = String symbol to check whether it empty text or not.

NotlarRemarks

Verilen symbol'ün değeri boş text ('') ise yüzde karakterini (%) döndürür.

It returns the percent character (%) in case of the given symbol having value empty text ('').

ÖrnekExample
OBJECT:

 STRING STRING1,

 STRING STRING2;



STRING1 = 'HELLO%_';

/*Returns HELLO%_*/

STRING2 = CP(STRING1);



STRING1 = '';

/*Returns %*/

STRING2 = CP(STRING1);
CREATETable

Verilen column yapısı table'ı ile yeni bir table oluşturur.

Creates a new table with the given column structure table.

CREATE {source_table} FROM {destination_table} [INTO {file_path_description}];
Detayları gösterShow details
ParametrelerParameters
source_table                 = Is the name of the source table. Table structure must conform to the structure built with the construct structure command. In other words the source table should have the columns COLNAME, COLTYPE, COLLEN, COLPRE and COLNOT. Table names must conform to the rules for identifiers and must be unique within the database and for its owner.
destination_table         = Is the name of the new table. Table names must conform to the rules for identifiers and must be unique within the database and for its owner.
INTO                                 = Used if table creation script is wanted to be stored in a file.
file_path_description         = File path description for the script to be stored.
NotlarRemarks

Database'deki table sayısı, kullanılan database'in limitleriyle sınırlıdır.

Bu command, CONSTRUCT STRUCTURE ve COPY STRUCTURE command'larıyla birlikte kullanıldığında en iyi sonucu verir.

Aynı isimde bir table zaten varsa hiçbir action gerçekleştirilmez.

The number of tables in the database is limited with the limits of the database being used.

This command is best used together with CONSTRUCT STRUCTURE and COPY STRUCTURE commands.

If a table with the same name exists no action is taken.

ÖrnekExample
/*

A. In this example structure of IASBAS002 is copied to the table TABLEX. 

And with the CREATE statement table IASBAS003 is created with the same structure as IASBAS002.

*/
OBJECT: 
 TABLE TABLEX;

COPY STRUCTURE IASBAS002 INTO TABLEX;
CREATE TABLEX FROM IASBAS003 ;
/*

B. In this example structure of IASBAS002 is copied to the table TABLEX. 

And with the CREATE statement table IASBAS003 creation script is copied to the file aaa.sql.

*/
OBJECT: 
 TABLE TABLEX;

COPY STRUCTURE IASBAS002 INTO TABLEX;
CREATE TABLEX FROM IASBAS003 INTO 'C:\TMP\AAA.SQL';
İlgili KomutlarRelated Commands
DROP CONSTRUCT STRUCTURE COPY STRUCTURE APPEND COLUMN
CREATE2DBARCODEReport

Verilen dosyaya iki boyutlu barcode oluşturur.

Creates two-dimension barcode into the given file.

CREATE2DBARCODE AS [DATAMATRIX | QRCODE | PDF417 | AZTEC] FROM {text} INTO {filepath} [ROTATE {N}];
Detayları gösterShow details
ParametrelerParameters

N = integer value.

CREATENEWTASKObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

CREATETASKObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

CREATEXMLMAPXML Parsing

Bir XML map oluşturur.

Creates an XML map.

CREATEXMLMAP {mapname};
Detayları gösterShow details
ParametrelerParameters

mapname = the name of the map to be created.

İlgili KomutlarRelated Commands
PARSEXML, CONVERTXMLTABLE, MAP
CROPIMAGEImage Handling

Orijinal image'dan kırpılmış (cropped) bir image oluşturmak ve verilen konuma kaydetmek için kullanılır...

Used to create a cropped image from the original image and save it to given location...

CROPIMAGE (source_file) INTO (destination_file) WITH LOCATION (x coordinate, y coordinate) SIZE (width,height);
Detayları gösterShow details
ParametrelerParameters

X coordinate: the X coordinate of the upper-left corner of the specified rectangular region
Y coordinate: the Y coordinate of the upper-left corner of the specified rectangular region
Width: the width of the specified rectangular region
Height: the height of the specified rectangular region

ÖrnekExample
CROPIMAGE '*Pictures/picture.jpg' INTO '*Pictures/test_picture.jpg' WITH LOCATION 200 300 SIZE 300 400;
İlgili KomutlarRelated Commands
TILEIMAGE
CUMMULATE()FUNCTION

Cummulator'daki bir variable'ın cummulated değerini artırır.

Increments the cummulated value of a variable in the cummulator

CUMMULATE(string_variablename, integer_valuetobeadded)
Detayları gösterShow details
ParametrelerParameters

string_variablename = variable name in the cummulator

valuetobeadded = the value that will be added to the value in the cummulator

NotlarRemarks

Cummulator variable'ının en son değerini Integer olarak döndürür.

Bu function'ı kullanmadan önce INITCUMMULATOR command'ını çağırmış olmalısınız.

Cummulator'a herhangi bir variable tanımlamanıza gerek yoktur. Variable'lar, CUMMULATE() function'ında ilk kullanıldıklarında cummulator'a otomatik olarak tanımlanır.

Returns latest value of the cummulator variable as Integer.

You should have called INITCUMMULATOR command before you use this function.

You do not need to define any variable to the cummulator. Variables are automatically defined to the cummulator at first time it is used in the CUMMULATE() function.

ÖrnekExample
OBJECT: 

 INTEGER ISDEFINED;



/* initialize cummulators */

IF ISDEFINED == 0 THEN

	ISDEFINED = 1;

	INITCUMMULATOR;

	INITCUMMULATOR 'C2';

	INITCUMMULATOR 'C3';

ENDIF;



/* test cummulate*/

INTEGERVAR1 = CUMMULATE('Material1', 5);

INTEGERVAR2 = CUMMULATE('Material1', 10, 'C2');

INTEGERVAR3 = CUMMULATE('Material1', 15, 'C3');



LONGVAR1 = CUMMULATE('Material2', 2);

LONGVAR2 = CUMMULATE('Material2', 4, 'C2');

LONGVAR3 = CUMMULATE('Material2', 6, 'C3');



/* test reinitializing cummulators */

IF INTEGERVAR1 == 60 THEN

    INITCUMMULATOR;

ENDIF;



IF INTEGERVAR2 == 60 THEN

    INITCUMMULATOR 'C2';

ENDIF;



IF INTEGERVAR3 == 60 THEN

    INITCUMMULATOR 'C3';

ENDIF;
İlgili KomutlarRelated Commands
INITCUMMULATOR
DATETOMILLISECONDS()Date Functions

Bir date variable'ını milisaniyeye dönüştürür.

Converts a date variable to miliseconds.

DATETOMILLISECONDS({variable1});
Detayları gösterShow details
ParametrelerParameters

variable1 = A date type variable.

NotlarRemarks

Date variable'ının milisaniye değerini döndürür.

Returns the millisecond value of the date variable.

ÖrnekExample
OBJECT: DATE D1, INTEGER MS1;

D1 = SYS_CURRENTDATE;

MS1 = DATETOMILLISECONDS(D1);
DECRYPT()Security

Verilen string'i başka bir string'e decrypt eder. Bu function'ın iki kullanımı vardır. Birincisi, decrypt edilecek input string'i tek parametre olarak alır. İkincisi daha spesifiktir; algorithm'ı ve key'i belirleyebilirsiniz. Key size'ını ayarlarken dikkatli olmalısınız, çünkü encryption algorithm'larının çoğu sabit boyutlu key uzunluklarına sahiptir.

Decrypts the given string into another string.

This function has two usages. The first one is called with one parameter, the input string which is going to be decrypted.

The second one is more specific, where you can determine the algorithm and the key. You must take care when setting

the key size, hence most of the encryption algorithms have fixed size key-lengths.

DECRYPT(string);

or


DECRYPT(string1,string2,string3);
Detayları gösterShow details
ParametrelerParameters

string = Specifies the string to be decrypted.

or

string1 = The algorithm type. Currently supported is 'DES'.

string2 = The key size of the selected algorithm. DES supports only 24-byte length key sizes.

string3 = Specifies the string to be decrypted.

NotlarRemarks

Return Value
String: Decrypt edilmiş string'i döndürür.

Return Value

String:

Returns the decrypted string.

ÖrnekExample
/* Usage with only one parameter: */
OBJECT: 
 STRING S1,
 STRING S2;

S1 = '+O8GD';
S2 = DECRYPT(S1);
/* Before DECRYPT function is executed:
S1 = +O8GD
S2 = NULL 
*/
/* After DECRYPT function is executed:
S1 = +O8GD
S2 = CYPHE
*/
/* Usage with algorithm specification (3 Parameters): */
OBJECT: 
 STRING S1,
 STRING S2,
 STRING ALG,
 STRING KEY;

S1 = 'C44F073807F8A9C0';
KEY = '123412341234123412341234';
ALG = 'DES';
S2 = DECRYPT(ALG,KEY,S1);
 /* Before DECRYPT function is executed:
S1 = C44F073807F8A9C0PHE
S2 = NULL
*/   /* After ENCRYPT function is executed:
S1 = C44F073807F8A9C0;
S2 = CYPHE;
*/
İlgili KomutlarRelated Commands
ENCRYPT
DELAYBasic Troia

Aktif thread'in çalışmasını belirtilen süre boyunca durdurur.

Interval parametresi milisaniye cinsindendir.

Suspends the execution of the current thread for a specified interval.

Interval parameter is in milliseconds.

DELAY {delayperiod};
Detayları gösterShow details
ÖrnekExample
/* A. Suspend for 200 milliseconds */

DELAY 200;
DELETEDatabase

Bir table'dan row'ları kaldırır.

Removes rows from a table.

DELETE FROM {table_name}  [WHERE clause] ;
Detayları gösterShow details
ParametrelerParameters
table_name          = Specifies the table used in the DELETE statement. table_name can be a variable.
WHERE clause    = WHERE {search_conditions } Is used to perform a searched delete (using search_conditions).

search_conditions = Specifies the criteria for a searched delete.

NotlarRemarks
DELETE aynı anda yalnızca bir base table'ı etkileyebildiğinden, birden fazla table adlandıran bir FROM clause'una sahip bir view ile DELETE kullanamazsınız.
DELETE statement'ının sonucu başarılıysa SYS_STATUS 0'a ayarlanır, aksi halde 1'e ayarlanır ve DELETED_ flag'i 1'e ayarlanır, aksi halde 0'a ayarlanır.

Because DELETE can affect only one base table at a time, you cannot use DELETE with a view that has a FROM clause naming more than one table.

If the result of DELETE statement is succesfull SYS_STATUS is set to 0 otherwise it is set to 1 and DELETED_ flag is set to 1 otherwise it is set to 0.

ÖrnekExample
/*

A. DELETE with No Parameters

This example deletes all rows from the table MATA.

*/



DELETE MATA;



/* B. 

DELETE a Set of Rows 

*/



DELETE 

	FROM MATA 

	WHERE MATNR = 'G1000';
İlgili KomutlarRelated Commands
SELECT UPDATE INSERT
DELETEDSystem Variables

Bir DELETE statement'ı bir table'dan row silmişse 1 döndüren bir Global Variable.

A Global Variable that returns 1 if a DELETE statement has deleted rows from a table.

DELETED
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer

ÖrnekExample
DELETE 

        FROM IASSALITEM 

        WHERE CLIENT = '11';



IF DELETED THEN

        STRINGVAR1 = 'DELETED ALL';

ENDIF;
DELETEFILEFile

Belirtilen dosyayı siler.

Deletes the specified file.

DELETEFILE {filename};
Detayları gösterShow details
ParametrelerParameters

filename : file to be deleted.

NotlarRemarks

Dosya ismi '*' ile başlıyorsa, source dosyanın client tarafından sağlanacağı anlamına gelir.

If the file name starts with '*' it means that the source file will be provided by the client.

ÖrnekExample
/* Delete File in Server */

DELETEFILE 'FILE.TXT';



/* Delete File in Client */

DELETEFILE '*FILE.TXT';
DELETESQLDatabase

SQL string variable'ına bir delete script'i oluşturur.

Creates a delete script into the string variable SQL.

DELETESQL FROM {table_name} [WHERE clause];
Detayları gösterShow details
ParametrelerParameters
table_name            = Specifies the table used in the DELETESQL statement. table_name can be a variable. Because DELETESQL can affect only one base table at a time, you cannot use DELETE with a view that has a FROM clause naming more than one table. 
WHERE clause      = WHERE {search_conditions }

Is used to perform a searched delete (using search_conditions). When no WHERE clause is given in the DELETESQL statement, all rows in the table are removed when the script is executed. The table itself, along with its indexes, constraints, and so on, remains in the database.

search_conditions = Specifies the criteria for a searched delete.

NotlarRemarks

Bu command, bir table'ın row'larını silmek için bir script oluşturmak amacıyla kullanılabilir.

This command can be used to create a script for deleting rows of one table

ÖrnekExample
/*A. DELETESQL with No Parameters

This example deletes all rows from the table MATA.

*/

OBJECT : 

 STRING STR1;



DELETESQL  MATA;



/*After the command is executed:

SQL system variable is  DELETE MATA;

*/





/* B. DELETE a Set of Rows */

OBJECT : 

 STRING STR1;



DELETE 

	FROM MATA 

	WHERE MATNR = 'G1000';



 /*After the command is executed: 

SQL variable is DELETE MATA WHERE MATNR = 'G1000';

*/
İlgili KomutlarRelated Commands
INSERTSQL
DEQUEBasic Troia

Deque statement, verilen lock id ve lock key'e göre database üzerindeki lock'ları temizler.

Verilen lock id ve lock key ile eşleşen bir lock yoksa SYS_STATUS 1 olarak ayarlanır.
Aksi halde lock temizlenir ve SYS_STATUS 0 olarak ayarlanır.

Deque statement clears locks on database according to the given lock id and lock key.

If there isn't any lock with the given lock id and lock key SYS_STATUS is set to 1.
Otherwise lock is cleared and the SYS_STATUS is set to 0.

DEQUE ID {lock_id} WITH {lock_key};
Detayları gösterShow details
ÖrnekExample
DEQUE ID MAT WITH '01|01|G1000';

DEQUE ID MAT WITH MATD_MATNR;
İlgili KomutlarRelated Commands
ENQUE
DESCRIBEDatabase

Source table'ın table yapısını destination table'a koyar.

Puts the table structure of the source table into the destination table.

DESCRIBE {source_table} INTO {dest_table};
Detayları gösterShow details
ParametrelerParameters
source_table         = name of the table that the structure will be fetched.
dest_table                = name of the table that will contain the source table structure.
ÖrnekExample
OBJECT : TABLE TMPTABLE;

DESCRIBE IASSYSTEM INTO TMPTABLE;
DESTROYTABLETable

Verilen virtual table'ın tüm column'larını ve tüm row'larını kaldırarak tamamen yok eder.

Completely destroys a virtual table removing all columns and all rows of the given virtual table.

DESTROYTABLE {tablename};
Detayları gösterShow details
ParametrelerParameters

tablename = Name of the virtual table.

DIGESTFILEFile

Verilen bir dosyadan digest data oluşturur.

Creates a digest data from a file given.

DIGESTFILE {file_name} INTO {symbolname} [USING {algorithm}];
Detayları gösterShow details
ParametrelerParameters

file_name : name of file whose digest will be calculated. if starts with '*' file is at client side.
symbolname : string symbol into which digest will be stored
algorithm : (optional) you can give the algorithm that will be used. default is 'MD5'.

ÖrnekExample
OBJECT: 
 STRING FN,
 STRING DIGEST,
 STRING ALG;

FN = '*C:/test.txt';
ALG = 'MD5';
DIGESTFILE FN INTO DIGEST USING ALG;
DOSEXECObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

DROPDatabase

Database'den bir table tanımını ve o table için tüm data, index, constraint ve permission belirtimlerini kaldırır.

Removes a table definition and all data, indexes, constraints, and permission specifications for that table from the database.

DROP {table_name} [INTO {file_path_description}];
Detayları gösterShow details
ParametrelerParameters
table_name                         = Specifies the table to be removed.
INTO                                 = Used if table drop script is wanted to be stored in a file.
file_path_description         = File path description for the script to be stored.
NotlarRemarks

Table yoksa hiçbir action gerçekleştirilmez.

If the table does not exist no action is taken.

ÖrnekExample
/*

A. In this example table IASBAS002 is dropped from the database. 

*/



DROP IASBAS002;



/*

B. In this example table IASBAS003 dropping script is copied to the file aaa.sql. 

*/



DROP IASBAS002 INTO 'C:\TMP\AAA.SQL';
İlgili KomutlarRelated Commands
CREATE CONSTRUCT STRUCTURE COPY STRUCTURE APPEND COLUMN
DUMPTroia Development

Bir TROIA symbol'ünün içeriğini ve yapısını TRACE dosyasına dump eder.

Dumps the contents and structure of a TROIA symbol into TRACE file.

DUMP {symbol_name} {first,last};
Detayları gösterShow details
ParametrelerParameters

symbol_name = Specifies the symbol to be dumped.

first = optional index of the first row to be dumped if the symbol is a table symbol

last = optional index of the last row to be dumped if the symbol is a table symbol

NotlarRemarks

Class symbol'lerinin dump edilmesi engellenir. Diğer symbol type'ları değerleriyle birlikte dump edilir. Bir table symbol'ü kullanılıyorsa (varyasyon), başlangıç ve bitiş row'ları dump edilir.

Class symbols are prevented from being dumped. Other types of symbols are dumped with their values. If a table symbol is used (variation), the starting and ending rows are dumped.

ENCODEURL()FUNCTION

Bir string'i x-www-form-urlencoded format'ına çevirir. Bu method, güvenli olmayan karakterler için byte'ları elde etmek amacıyla encoding scheme olarak platform'un default encoding'ini kullanır.

Translates a string into x-www-form-urlencoded format. This method uses the platform's default encoding as the encoding scheme to obtain the bytes for unsafe characters.

ENCODEURL({variable1}); 

ENCODEURL({variable1}[, encoding] );
Detayları gösterShow details
ParametrelerParameters

variable1 = URL to be encoded

encoding = the encoding to be used when encoding.

NotlarRemarks

Return Value

String:

Encode edilmiş url'i döndürür.

Return Value

String:

Returns the encoded url.

ÖrnekExample
OBJECT: STRING S1, STRING S2;

S1 = 'http://www.ias.com.tr';

S2 = ENCODEURL(S1);
ENCRYPT()Security

Verilen string'i başka bir string'e encrypt eder. Bu function'ın iki kullanımı vardır. Birincisi, encrypt edilecek input string'i tek parametre olarak alır. İkincisi daha spesifiktir; algorithm'ı ve key'i belirleyebilirsiniz. Key size'ını ayarlarken dikkatli olmalısınız, çünkü encryption algorithm'larının çoğu sabit boyutlu key uzunluklarına sahiptir.

Encrypts the given string into another string.

This function has two usages. The first one is called with one parameter, the input string which is going to be encrypted.

The second one is more specific, where you can determine the algorithm and the key. You must take care when setting

the key size, hence most of the encryption algorithms have fixed size key-lengths.

ENCRYPT(string);



or



ENCRYPT(string1, string2, string3)
Detayları gösterShow details
ParametrelerParameters

string = Specifies the string to be encrypted.

or

string1 = The algorithm type. Currently supported is 'DES'.

string2 = The key size of the selected algorithm. DES supports only 24-byte length key sizes.

string3 = Specifies the string to be encrypted.

NotlarRemarks

Return Value
String: Encrypt edilmiş string'i döndürür.

Return Value

String:

Returns the encrypted string.

ÖrnekExample
/* Usage with only one parameter: */
OBJECT: 
 STRING S1,
 STRING S2;

S1 = 'CYPHE';
S2 = ENCRYPT(S1);
/*

Before ENCRYPT function is executed:



S1 = CYPHE

S2 = NULL



After ENCRYPT function is executed:



S1 = CYPHE

S2 = +O8GD



Usage with algorithm specification (3 Parameters):

*/
OBJECT: 
 STRING S1,
 STRING S2,
 STRING ALG,
 STRING KEY;

S1 = 'CYPHE';
KEY = '123412341234123412341234';
ALG= 'DES';
S2 = ENCRYPT(ALG,KEY,S1);
 /*

Before ENCRYPT function is executed:



S1 = CYPHE

S2 = NULL



After ENCRYPT function is executed:



S1 = CYPHE

S2 = C44F073807F8A9C0

*/
İlgili KomutlarRelated Commands
DECRYPT
ENQUEBasic Troia

Enque statement, verilen lock id ve lock key'e göre database üzerine lock koyar.

Verilen lock id ve lock key ile zaten bir lock varsa SYS_STATUS 1 olarak ayarlanır.
Aksi halde lock konur ve SYS_STATUS 0 olarak ayarlanır.

Enque statement puts locks on the database according to the given lock id and lock key.

If there's already a lock with the given lock id and lock key SYS_STATUS is set to 1.
Otherwise lock is put and the SYS_STATUS is set to 0.

ENQUE ID {lock_id} WITH {lock_key};
Detayları gösterShow details
ÖrnekExample
ENQUE ID MAT WITH '01|01|G1000';

ENQUE ID MAT WITH MATD_MATNR;
İlgili KomutlarRelated Commands
DEQUE
ENTITYIDSystem Variables

Seçili diagram item'ının id'sini veya ismini belirten bir Global variable.

A Global variable that indicates the id or name of the selected diagram item.

ENTITYID;
Detayları gösterShow details
NotlarRemarks

Return Value

String.

Bu variable her zaman bir diagram control ile kullanılır.

Return Value

String.

This variable is always used with a diagram control.

ENUMERATEPDFFORMGENERAL

Bir pdf formunun form field'larını istenen TROIA table'ına enumerate eder.

Enumerates the form fields of a pdf form into the desired TROIA table.

ENUMERATEPDFFORM {filename} INTO {tablename};
Detayları gösterShow details
ParametrelerParameters

filename = The name of the pdf file to be enumerated

tablename = name of the destination table.

NotlarRemarks

- Destination table'ın FIELDNAME, FIELDTYPE, FIELDVALUE, READONLY field'ları olacaktır.

- Bu command, verilen table'ı temizler ve gerekli column'ların (FIELDNAME, FIELDTYPE, FIELDVALUE, READONLY) var olmasını sağlar.

- Destination table will have FIELDNAME,FIELDTYPE, FIELDVALUE,READONLY fields.

- This command clears table given and ensures needed columns (FIELDNAME,FIELDTYPE, FIELDVALUE,READONLY) exist.

İlgili KomutlarRelated Commands
FILLPDFFORM
ESCAPEHTML()FUNCTION

Bir HTML text'indeki özel karakterlerin HTML character entity'lerini değiştirir veya tam tersi.

Replaces the HTML character entities of the special characters in an HTML text or vice versa.

ESCAPEHTML(html_formatted_text,convert_type);
Detayları gösterShow details
ParametrelerParameters

html_formatted_text = String text in HTML format
convert_type = In case of 1, it replaces HTML character entities with special chracters and in case of 0, it replaces special chracters with HTML character entities.
Returns the string text result in HTML format.

NotlarRemarks

Un-Escape durumunda dikkatli olun, yani convert type 0 olduğunda; çünkü bu, '<' ve '>' HTML karakterlerini de '&lt;' ve '&gt;' character entity'lerine dönüştürür.

Becareful in case of Un-Escape, i.e., convert type is 0; because it also converts the HTML characters '<' and '>' to character entities '&lt;' and '&gt;'.

ÖrnekExample
OBJECT:

 STRING HTMLTEXT1,

 STRING HTMLTEXT2;



/*Escape-1 HTML (Entity Names)*/

HTMLTEXT1 = '<html><head>Test1</head><body>&nbsp;,&lt;,&gt;,&amp;,&cent;,&pound;,&yen;,&euro;,&sect;,&copy;,&reg;,&trade;</body></html>'

HTMLTEXT2 = ESCAPEHTML(HTMLTEXT1,1);

/* HTMLTEXT2 => '<html><head>Test1</head><body> ,<,>,&,¢,£,¥,€,§,©,®,™</body></html>' */ 



/*Escape-2 HTML (Entity Numbers)*/

HTMLTEXT1 = '<html><head>Test1</head><body>&#160;,&#60;,&#62;,&#38;,&#162;,&#163;,&#165;,&#8364;,&#167,&#169;,&#174;,&#8482;</body></html>'

HTMLTEXT2 = ESCAPEHTML(HTMLTEXT1,1);

/* HTMLTEXT2 => '<html><head>Test1</head><body> ,<,>,&,¢,£,¥,€,§,©,®,™</body></html>' */ 



/*Un-Escape HTML (Special Characters)*/

HTMLTEXT1 = '<html><head>Test2</head><body> ,<,>,&,¢,£,¥,€,§,©,®,™</body></html>'

HTMLTEXT2 = ESCAPEHTML(HTMLTEXT1,0);

/* HTMLTEXT2 => '&lt;html&gt;&lt;head&gt;Test1&lt;/head&gt;&lt;body&gt;&amp;nbsp;,&amp;lt;,&amp;gt;,&amp;amp;,&amp;cent;,&amp;pound;,&amp;yen;,&amp;euro;,&amp;sect;,&amp;copy;,&amp;reg;,&amp;trade;&lt;/body&gt;&lt;/html&gt;'*/
EXECUTEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

Detayları gösterShow details
NotlarRemarks

Bunun yerine EXECUTESQL deneyin.

Try EXECUTESQL instead.

İlgili KomutlarRelated Commands
EXECUTESQL
EXECUTESQLDatabase

Verilen sql string'ini çalıştırır veya sonuç string'ini bir dosyaya veya bir EditBox'a yazdırır.

Executes the given sql string or prints the result string into a file or an EditBox.

EXECUTESQL {variable} [INTO @{symbol_name} LIMIT {symbol_name} | INTO {file_path_description}];
Detayları gösterShow details
ParametrelerParameters
variable                                                        = Carries the sql string.
INTO @{symbol_name}                 = If used the returned string is printed into the editfield or string variable specified by control_name. If not used the sql string is executed.
INTO {file_path_description}         = If used the string is printed into the table specified by file_path_description. The string is appended to the file. If not used the sql string is executed.

LIMIT =if used limits the max rows to be displayed on textfields.

ÖrnekExample
/*

In the example first EXECUTESQL command executes the given string 

where the second one puts the given string into the file.

*/

OBJECT : 

 STRING STR1;



STR1 = 'INSERTSQL INTO P000' + TOCHAR(59);

EXECUTESQL STR1;

EXECUTESQL STR1 INTO @EDIT1;

EXECUTESQL STR1 INTO 'C:\TMP\AAA.SQL';

EXECUTESQL STRINGVAR3 INTO @RESULBOX LIMIT INTEGERVAR1;

EXECUTESQL STRINGVAR3 INTO @RESULBOX LIMIT 10;
İlgili KomutlarRelated Commands
INSERTSQL DELETESQL
EXISTSDatabase

Verilen table'ın var olup olmadığını kontrol eder.

Checks whether the given table exists or not.

table_name         = Specifies the name of the table used in the EXIST command.
Detayları gösterShow details
ParametrelerParameters

It is better to use this command before creating or dropping a table.

If the table exists SYS_STATUS is set to 0 otherwise it is set to 1.

ÖrnekExample
/*In this example first it is checked to see whether table TABLEX exists or not. 

If it exists first it is dropped and then created. Otherwise it is directly created. */

OBJECT: 

 TABLE TABLEX;



COPY STRUCTURE IASBAS002 INTO TABLEX;

EXISTS TABLEX;



IF SYS_STATUS == 0 THEN

	DROP TABLEX;

ENDIF;



CREATE TABLEX FROM IASBAS003 INTO 'C:\TMP\AAA.SQL';
İlgili KomutlarRelated Commands
CREATE DROP
EXITSystem Functions

Mevcut transaction'ı kapatır.

Shuts down the current transaction.

EXIT;
EXPORTGRAPHICImage Handling

Ui object'i bir jpg dosyasına export eder.

Exports the ui object to a jpg file.

EXPORTGRAPHIC {control_name} TO {file_path}
Detayları gösterShow details
ParametrelerParameters
control_name         = the name of the control.
file_path                   = the file path that the jpg object will be saved.
NotlarRemarks

Jpg dosyasını client'ta kaydetmek için path'in başına * ekleyin.

Add * in front of the path to save the jpg file in client.

ÖrnekExample
EXPORTGRAPHIC STRINGVAR3 TO '*C:\TEST.JPG';
F.A.Q. Diagram ModelDiagram

Using The Diagram With Diagram Model

This concept enables using the diagram with a combined diagram model. The diagram itself contains its model.

It means, when we have the diagram, we also have the model in our hand.

As a result, the server also has all of the information about the diagram such as entities, activities, links etc.

At each action, the model of the diagram on the server and the client are synchronized. Lets see an example:

Previously, when there was no diagram model, the scenario was like the following:

When the TROIA command like that is executed:

ADDENTITY RECTANGLE TO DIAGRAM1 WITH RECT01 120 60 50 70 MEETING RED;

The server executes this line and tells the client to add a new entity to the diagram.

When executing of this code is finished and a bit later this line is executed on the server:

ADDENTITY RECTANGLE TO DIAGRAM1 WITH RECT02 220 60 50 70 DEMO YELLOW;

Again the client gets the order to add a new entity. But, the server does not know anything

about the previoulsy added entities. Also, the server does not store on itself which entities are created.

The new concept

With the new concept, we can create a model on the server side which is kept on a table.

Hence, we can treat a diagram like a table. See the following code excerpt:

MOVE 'E'              TO DIAGRAM1_DTTYPE;
MOVE '100'            TO DIAGRAM1_DTID;
MOVE OFFPAGECONNECTOR TO DIAGRAM1_DTSHAPE;

..

We have the whole structure on the server side. This model is sent to the client and the is built up using this information. When a change is occured on the client side, the model on the client side is updated again and sent to the server back. So we have a synchronised model between client and server.

Lets see the table of the diagram in detail. We have the following columns in our hand:

 DTTYPE  DTID   DTSHAPE         DTXCOORD   DTYCOORD  DTHEIGHT   DTWIDTH    DTTEXT    DTSTATUS    DTCOLOR    DTBORDERCOLOR   DTFROM   DTTO   DTMENUITEMS
 E         101      PUNCEDTAPE      100               120       200        300        MEETING   UNLOCKED    WHITE                      
 E         102      SUMMINGJUNCTION 200               120       50         300        INTERVIEW UNLOCKED    WHITE                      
 L     L001                                                                LINK1                 BLUE                       101      102

Note: Each row corresponds to a entity or link in the diagram. The global diagram properties (which are set in the development environment) are NOT kept in the table model. So if you want to update or set properties like that, you must use the old commands before the model.

Note: We can represent both entities and links on a single table. A row can be an entity or a link which can be determined by the DTTYPE.

If we have an 'E' as the type, this row has information related to an entity. Otherwise, a 'L' corresponds to the links.

Lets see the columns in detail:

For Entities:

DTYPE:         The type of the object the row is defining. (E:Entity)
DTID:          The id of the entity. Note: We can have non-unique field id's here. (Which is different from the tree and chart modes, where the ID's must be unique)
DTSHAPE:            Type of the shapes. The list of the possible shapes are: 
                 RECTANGLE, CIRCLE, ROUNDCIRCLE, DECISION, DATA, DOCUMENT, COLLATE, CARD, DELAY, DIRECTACCESSSTORAGE, DISPLAY, EXTRACT, INTERNALSTORAGE, 
                 MAGNETICDISK, MANUALINPUT MANUALOPERATION, MERGE, MULTIDOCUMENT, OFFPAGECONNECTOR, OR, PREDEFINEDPROCESS, PREPERATION, PUNCEDTAPE, SORT, STOREDATA, 
                 SUMMINGJUNCTION, SEQUENTIALACCESSSTORAGE, ALTERNATEPROCESS 

DTXCOORD, DTYCOORD, DTHEIGHT, DTWIDTH: The x-coordinate, the y coordinate, the height, the width of the entity.

DTTEXT:        The text appearing on the entity.
DTSTAUS:       If the status LOCKED, the entity can not be moved or dragged.
DTCOLOR:       Color of the entity. Direct color values (RED, BLUE) or decimal values(corresponding to HEX values) can be entered.

DTBORDERCOLOR: The color of the border of the entity. See DTCOLOLR for color specifications.

DTMENUITEMS:   This property has not been implemented yet.

For Links:

DTYPE:           The type of the object the row is defining. (L:Link)
DTTEXT:        The text appearing on the link.
DTFROM:           The id of the source entity.
DTTO:                   The id of the destination entity.

REMARKS:

* We can see the model of the tree in an another table by

        COPY TABLE DIAGRAM1 INTO TABLE1;

The table 1 is as following:

* We can also edit this table(TABLE1) and reflect the changes to the diagram by

        COPY TABLE TABLE1 INTO DIAGRAM1;

* If we move an entity on the diagram, its corresponding row on the table model is also updated to reflect the changes in the coordinates.

* For performance optimizations, the table is initialized once and after click, double click or drag-drop actions, only the chagned rows are updated

in the table and only the changed entity is re-rendered again. Others remain uncganged.

* If a new entity is added, or the time-span of the diagram is changed, the whole table structure is reorganized and the whole diagram is rendered from

scratch.

* When a drag event is occured, the model is updated on the client side first, where the new coordinates of the drag-stop are kept. This new table model

is sent to the server. So, the server is aware of that the entity coordinate has been changed. There is no need for extra coding. When the diagram

is rendered again, hence the client has an updated table model.

                Server builts a diagram model. --> Model is sent to the client --> Client invokes a drag-drop --> The model is updated
                --> The updated model is sent to server --> Business logic is applied(accept the new coordinate/decline and reset to previous coordinate)
              --> The server sends the model back --> Client renders the diagram using the most recent model.

* IMPORTANT: For performance issues, when handling drag drop, there is no need to first removing the entity with old coordinate and adding a new one with

                 updated coordinates. Instead, update only the row of the entity with new values. Removing and adding a new one will cause overhead and trigger
                 drawing of the fully diagram of the diagram, which causes performance loss. What we need is only an entity is changed, so only one row is updated,
                 and this new one is rendered. Removing an entity will change the structure of the table model and the complete table will taken into account.

* Most of the diagram commands has become obsolote. Some of them are:

                ADDENTITY:      We can insert a new row to the diagram table model.
                ADDLINK:        Same as ADDENTITY.
                CHANGEENTITYID: This can be done by updating the model row of the corresponding id.
            REMOVEENTITY:   Removes the object from the table. 
                SETENTITYSTATE: Can be done by updating the LOCKED column of the related id.

Note: The new concept also support the old commands, so a diagram can also be drawn using the commands like ADDENTITY. They work same and update the model of the

diagram.

To sum up, we have always a synchronized model of the diagram on the server and client side.

Using The Diagram With Diagram Model

This concept enables using the diagram with a combined diagram model. The diagram itself contains its model.

It means, when we have the diagram, we also have the model in our hand.

As a result, the server also has all of the information about the diagram such as entities, activities, links etc.

At each action, the model of the diagram on the server and the client are synchronized. Lets see an example:

Previously, when there was no diagram model, the scenario was like the following:

When the TROIA command like that is executed:

ADDENTITY RECTANGLE TO DIAGRAM1 WITH RECT01 120 60 50 70 MEETING RED;

The server executes this line and tells the client to add a new entity to the diagram.

When executing of this code is finished and a bit later this line is executed on the server:

ADDENTITY RECTANGLE TO DIAGRAM1 WITH RECT02 220 60 50 70 DEMO YELLOW;

Again the client gets the order to add a new entity. But, the server does not know anything

about the previoulsy added entities. Also, the server does not store on itself which entities are created.

The new concept

With the new concept, we can create a model on the server side which is kept on a table.

Hence, we can treat a diagram like a table. See the following code excerpt:

MOVE 'E'              TO DIAGRAM1_DTTYPE;
MOVE '100'            TO DIAGRAM1_DTID;
MOVE OFFPAGECONNECTOR TO DIAGRAM1_DTSHAPE;

..

We have the whole structure on the server side. This model is sent to the client and the is built up using this information. When a change is occured on the client side, the model on the client side is updated again and sent to the server back. So we have a synchronised model between client and server.

Lets see the table of the diagram in detail. We have the following columns in our hand:

 DTTYPE  DTID   DTSHAPE         DTXCOORD   DTYCOORD  DTHEIGHT   DTWIDTH    DTTEXT    DTSTATUS    DTCOLOR    DTBORDERCOLOR   DTFROM   DTTO   DTMENUITEMS
 E         101      PUNCEDTAPE      100               120       200        300        MEETING   UNLOCKED    WHITE                      
 E         102      SUMMINGJUNCTION 200               120       50         300        INTERVIEW UNLOCKED    WHITE                      
 L     L001                                                                LINK1                 BLUE                       101      102

Note: Each row corresponds to a entity or link in the diagram. The global diagram properties (which are set in the development environment) are NOT kept in the table model. So if you want to update or set properties like that, you must use the old commands before the model.

Note: We can represent both entities and links on a single table. A row can be an entity or a link which can be determined by the DTTYPE.

If we have an 'E' as the type, this row has information related to an entity. Otherwise, a 'L' corresponds to the links.

Lets see the columns in detail:

For Entities:

DTYPE:         The type of the object the row is defining. (E:Entity)
DTID:          The id of the entity. Note: We can have non-unique field id's here. (Which is different from the tree and chart modes, where the ID's must be unique)
DTSHAPE:            Type of the shapes. The list of the possible shapes are: 
                 RECTANGLE, CIRCLE, ROUNDCIRCLE, DECISION, DATA, DOCUMENT, COLLATE, CARD, DELAY, DIRECTACCESSSTORAGE, DISPLAY, EXTRACT, INTERNALSTORAGE, 
                 MAGNETICDISK, MANUALINPUT MANUALOPERATION, MERGE, MULTIDOCUMENT, OFFPAGECONNECTOR, OR, PREDEFINEDPROCESS, PREPERATION, PUNCEDTAPE, SORT, STOREDATA, 
                 SUMMINGJUNCTION, SEQUENTIALACCESSSTORAGE, ALTERNATEPROCESS 

DTXCOORD, DTYCOORD, DTHEIGHT, DTWIDTH: The x-coordinate, the y coordinate, the height, the width of the entity.

DTTEXT:        The text appearing on the entity.
DTSTAUS:       If the status LOCKED, the entity can not be moved or dragged.
DTCOLOR:       Color of the entity. Direct color values (RED, BLUE) or decimal values(corresponding to HEX values) can be entered.

DTBORDERCOLOR: The color of the border of the entity. See DTCOLOLR for color specifications.

DTMENUITEMS:   This property has not been implemented yet.

For Links:

DTYPE:           The type of the object the row is defining. (L:Link)
DTTEXT:        The text appearing on the link.
DTFROM:           The id of the source entity.
DTTO:                   The id of the destination entity.

REMARKS:

* We can see the model of the tree in an another table by

        COPY TABLE DIAGRAM1 INTO TABLE1;

The table 1 is as following:

* We can also edit this table(TABLE1) and reflect the changes to the diagram by

        COPY TABLE TABLE1 INTO DIAGRAM1;

* If we move an entity on the diagram, its corresponding row on the table model is also updated to reflect the changes in the coordinates.

* For performance optimizations, the table is initialized once and after click, double click or drag-drop actions, only the chagned rows are updated

in the table and only the changed entity is re-rendered again. Others remain uncganged.

* If a new entity is added, or the time-span of the diagram is changed, the whole table structure is reorganized and the whole diagram is rendered from

scratch.

* When a drag event is occured, the model is updated on the client side first, where the new coordinates of the drag-stop are kept. This new table model

is sent to the server. So, the server is aware of that the entity coordinate has been changed. There is no need for extra coding. When the diagram

is rendered again, hence the client has an updated table model.

                Server builts a diagram model. --> Model is sent to the client --> Client invokes a drag-drop --> The model is updated
                --> The updated model is sent to server --> Business logic is applied(accept the new coordinate/decline and reset to previous coordinate)
              --> The server sends the model back --> Client renders the diagram using the most recent model.

* IMPORTANT: For performance issues, when handling drag drop, there is no need to first removing the entity with old coordinate and adding a new one with

                 updated coordinates. Instead, update only the row of the entity with new values. Removing and adding a new one will cause overhead and trigger
                 drawing of the fully diagram of the diagram, which causes performance loss. What we need is only an entity is changed, so only one row is updated,
                 and this new one is rendered. Removing an entity will change the structure of the table model and the complete table will taken into account.

* Most of the diagram commands has become obsolote. Some of them are:

                ADDENTITY:      We can insert a new row to the diagram table model.
                ADDLINK:        Same as ADDENTITY.
                CHANGEENTITYID: This can be done by updating the model row of the corresponding id.
            REMOVEENTITY:   Removes the object from the table. 
                SETENTITYSTATE: Can be done by updating the LOCKED column of the related id.

Note: The new concept also support the old commands, so a diagram can also be drawn using the commands like ADDENTITY. They work same and update the model of the

diagram.

To sum up, we have always a synchronized model of the diagram on the server and client side.

F.A.Q. Gantt ChartChart

What is a Gantt chart?

A Gantt chart is a time-phased graphic display of activity durations. It is also referred to as a bar chart. Activities are listed with other tabular information on the left side with time intervals over the bars. Activity durations are shown in the form of horizontal bars.

Henry Laurence Gantt (1861-1919) was a mechanical engineer and management consultant who is most famous for developing the Gantt chart in the 1910s. These Gantt charts were employed on major infrastructure projects including the Hoover Dam and Interstate highway system and still are an important tool in project management.

TROIA Gantt Chart Component

TROIA Gantt component is a pure user interface component and does not contain any business logic or domain specific code. Developers who have experience with the TROIA components should think of it as a regular component with a complexity that is somewhat larger than the complexity of a table or tree component.

How to use:

First you have to add a Gantt component to your dialog from development environment. After that you can use the properties to configure, add TROIA code to events and manipulate data with TROIA code. These are explained in detail as follows:

Data manipulation:

When you place a Gantt component on your dialog you can treat it as a table object. The gantt object is recognized as a virtual table on the server side. This virtual table will have these columns as default:

GTID

The id of the diagram.

GTTYPE

The type of the diagram.

A : Activity Entry

T : Task Entry

E : Event Entry (aka milestone)

C : Capacity Entry

G : Group Entry

GTPARENT

Parent id of the diagram.

GTSTEXT

The text of diagram on the table view.

GTLTEXT

Annotation text of the diagram.

GTSTARTDATE

Event Start Date

GTDURATION

Duration of the Event in minutes.

GTPLANNEDSTARTDATE

Baseline Event Start Date

GTPLANNEDDURATION

Planned duration of the Event in minutes.

GTSHOWPLANNED

0 or 1. Show or hide Baselines.

GTSTEP

This property can be used to move the Activity entries up and down. Can get + or - values. For example +5 will show this Activity entry 5 pixel above others. Should be useful on Activities that intersect on Group Entries.

GTPRELINK

Incoming links from other Entries. Id of the corresponding Entry should be written here.

GTPOSTLINK

Outgoing links to other Entries. Id of the corresponding Entry should be written here.

GTCOMPLETED

Takes values between 0 and 100 Percentage value of the Entry.

If its a capacity entry this value is counted as percentage of the capacity.

GTCOLOR

Color of the Entry. RGB value.

GTEDITABLE

0 or 1. Table view values can be set to editable with this property.

GTDRAGGABLE

0 or 1. Sets if the entry can be draggable.

GTRESIZABLE

0 or 1. Sets if the entry can be resizable.

GTCOLLAPSED

0,1 or 2. 0 open, 1 collapsed and 2 always collapsed (cannot be opened).

GTHIGHLIGHT

0 or 1. Sets if the entry will be highlighted.

Properties:

- Toolbar Items

Items on the toolbar of the gantt component. Can be values seperated with commas: ARROW,LINK,MOVE,RESIZE,GRID,SELECTALL,DESELECTALL

- Vertical Lines

Sets the grid view mode on or off.

- Annotations

Sets the annotations on or off.

- Baselines

Sets the baselines visible or hidden.

- Timescale

Timescale of the gantt component. Can be YEAR, MONTH, DAY, HOUR, MINUTE or SECOND.

- Right Click Menu

Sets the items on the right click menu when right click event occurs on an entry.

Commands:

SETGANTTPROPERTY {ganttname} TO < ROWHEIGHT | ALTROWCOLOR | DIVIDERPOS | TOOLBARITEMS | VERTICALLINES | ANNOTATIONS | BASELINES | VIEWDATE | TIMESCALE> {value};
SETGANTTPROPERTY {ganttname} TO HOLIDAY  {value} [ON {id}] [RECURSIVE];

ganttname = gantt control name.

ROWHEIGHT = sets the row height of the gantt chart.

ALTROWCOLOR = sets the alternating row colors of the gantt chart.

DIVIDERPOS = sets the divider position of the gantt chart.

TOOLBARITEMS = sets the tool bar items to be displayed. Value can have MOVE,RESIZE,LINK,SELECTALL,DESELECTALL and GRID options.

VERTICALLINES = sets whether to display the vertical lines or not. (value can be 0 or 1)

ANNOTATIONS = sets annotations on or off.(value can be 0 or 1)

BASELINES = sets the baseline objects visible or hidden. (value can be 0 or 1)

VIEWDATE = sets the datetime to be displayed.

TIMESCALE = sets the timescale of the gantt chart. Can be values: YEAR,MONTH,DAY,HOUR,MINUTE,SECOND.

HOLIDAY = sets the work calendar of the gantt chart. If the ON {id} option is used; sets the workcalendar to the desired diagram entry only.

Examples:

SETGANTTPROPERTY GANTTOBJECT TO ROWHEIGHT 30;
SETGANTTPROPERTY GANTTOBJECT TO ALTROWCOLOR 38545;
SETGANTTPROPERTY GANTTOBJECT TO DIVIDERPOS 120;
OBJECT : STRING STRTOOLBARITEMS;
STRTOOLBARITEMS = 'MOVE,RESIZE,GRID';
SETGANTTPROPERTY GANTTOBJECT TO TOOLBARITEMS STRTOOLBARITEMS;
SETGANTTPROPERTY GANTTOBJECT TO VERTICALLINES 1;
SETGANTTPROPERTY GANTTOBJECT TO ANNOTATIONS 0;
OBJECT : DATETIME D;
D = SYS_CURRENTDATE;
SETGANTTPROPERTY GANTTOBJECT TO VIEWDATE D;
SETGANTTPROPERTY GANTTOBJECT TO TIMESCALE MONTH;

Defining a Work Calendar:

You can define work calendars by using the SETGANTTPROPERTY command:

SETGANTTPROPERTY {ganttname} TO HOLIDAY {table_name} [ON {id} [RECURSIVE]]

In order to define a work calendar you should create a new TABLE object in TROIA and fill it with holidays.

This table is a serverside TABLE object that has to have GTSTARTDATE and GTENDDATE columns. You have to add rows for any holiday in this table. If you don't use the ON {id} option this work calendar will be set to the whole gantt chart. If you use ON option you will have to identify the Diagram entry by giving its GTID here. You can also use the RECURSIVE flag to set this work calendar to all children of this diagram.

//Work calendar example

OBJECT : TABLE TAB;
APPEND COLUMN GTSTARTDATE,DATETIME,0 TO TAB;
APPEND COLUMN GTENDDATE,DATETIME,0 TO TAB;
APPEND ROW TO TAB;
MOVE '01.05.2006' TO TAB_GTSTARTDATE;
MOVE '03.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB;
APPEND ROW TO TAB;
MOVE '07.05.2006' TO TAB_GTSTARTDATE;
MOVE '09.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB ON 4 RECURSIVE; //sets the workcalendar to diagram with GTID 4 and its children.

Events:

GT_DragAndDrop

Drag event. SYS_OLDGTSTARTDATE variable contains the value before the drag operation. The dragged entry will be the Active Row of the table in server side.

GT_ItemSelect

The selected entry will be the Active Row of the table in server side.

GT_ItemResize

Resize event. SYS_OLDGTSTARTDATE and SYS_OLDGTDURATION variables contain the value before the drag operation. The resized entry will be the Active Row of the table in server side.

GT_DoubleClick

The clicked entry will be the Active Row of the table in server side.

What is a Gantt chart?

A Gantt chart is a time-phased graphic display of activity durations. It is also referred to as a bar chart. Activities are listed with other tabular information on the left side with time intervals over the bars. Activity durations are shown in the form of horizontal bars.

Henry Laurence Gantt (1861-1919) was a mechanical engineer and management consultant who is most famous for developing the Gantt chart in the 1910s. These Gantt charts were employed on major infrastructure projects including the Hoover Dam and Interstate highway system and still are an important tool in project management.

TROIA Gantt Chart Component

TROIA Gantt component is a pure user interface component and does not contain any business logic or domain specific code. Developers who have experience with the TROIA components should think of it as a regular component with a complexity that is somewhat larger than the complexity of a table or tree component.

How to use:

First you have to add a Gantt component to your dialog from development environment. After that you can use the properties to configure, add TROIA code to events and manipulate data with TROIA code. These are explained in detail as follows:

Data manipulation:

When you place a Gantt component on your dialog you can treat it as a table object. The gantt object is recognized as a virtual table on the server side. This virtual table will have these columns as default:

GTID

The id of the diagram.

GTTYPE

The type of the diagram.

A : Activity Entry

T : Task Entry

E : Event Entry (aka milestone)

C : Capacity Entry

G : Group Entry

GTPARENT

Parent id of the diagram.

GTSTEXT

The text of diagram on the table view.

GTLTEXT

Annotation text of the diagram.

GTSTARTDATE

Event Start Date

GTDURATION

Duration of the Event in minutes.

GTPLANNEDSTARTDATE

Baseline Event Start Date

GTPLANNEDDURATION

Planned duration of the Event in minutes.

GTSHOWPLANNED

0 or 1. Show or hide Baselines.

GTSTEP

This property can be used to move the Activity entries up and down. Can get + or - values. For example +5 will show this Activity entry 5 pixel above others. Should be useful on Activities that intersect on Group Entries.

GTPRELINK

Incoming links from other Entries. Id of the corresponding Entry should be written here.

GTPOSTLINK

Outgoing links to other Entries. Id of the corresponding Entry should be written here.

GTCOMPLETED

Takes values between 0 and 100 Percentage value of the Entry.

If its a capacity entry this value is counted as percentage of the capacity.

GTCOLOR

Color of the Entry. RGB value.

GTEDITABLE

0 or 1. Table view values can be set to editable with this property.

GTDRAGGABLE

0 or 1. Sets if the entry can be draggable.

GTRESIZABLE

0 or 1. Sets if the entry can be resizable.

GTCOLLAPSED

0,1 or 2. 0 open, 1 collapsed and 2 always collapsed (cannot be opened).

GTHIGHLIGHT

0 or 1. Sets if the entry will be highlighted.

Properties:

- Toolbar Items

Items on the toolbar of the gantt component. Can be values seperated with commas: ARROW,LINK,MOVE,RESIZE,GRID,SELECTALL,DESELECTALL

- Vertical Lines

Sets the grid view mode on or off.

- Annotations

Sets the annotations on or off.

- Baselines

Sets the baselines visible or hidden.

- Timescale

Timescale of the gantt component. Can be YEAR, MONTH, DAY, HOUR, MINUTE or SECOND.

- Right Click Menu

Sets the items on the right click menu when right click event occurs on an entry.

Commands:

SETGANTTPROPERTY {ganttname} TO < ROWHEIGHT | ALTROWCOLOR | DIVIDERPOS | TOOLBARITEMS | VERTICALLINES | ANNOTATIONS | BASELINES | VIEWDATE | TIMESCALE> {value};
SETGANTTPROPERTY {ganttname} TO HOLIDAY  {value} [ON {id}] [RECURSIVE];

ganttname = gantt control name.

ROWHEIGHT = sets the row height of the gantt chart.

ALTROWCOLOR = sets the alternating row colors of the gantt chart.

DIVIDERPOS = sets the divider position of the gantt chart.

TOOLBARITEMS = sets the tool bar items to be displayed. Value can have MOVE,RESIZE,LINK,SELECTALL,DESELECTALL and GRID options.

VERTICALLINES = sets whether to display the vertical lines or not. (value can be 0 or 1)

ANNOTATIONS = sets annotations on or off.(value can be 0 or 1)

BASELINES = sets the baseline objects visible or hidden. (value can be 0 or 1)

VIEWDATE = sets the datetime to be displayed.

TIMESCALE = sets the timescale of the gantt chart. Can be values: YEAR,MONTH,DAY,HOUR,MINUTE,SECOND.

HOLIDAY = sets the work calendar of the gantt chart. If the ON {id} option is used; sets the workcalendar to the desired diagram entry only.

Examples:

SETGANTTPROPERTY GANTTOBJECT TO ROWHEIGHT 30;
SETGANTTPROPERTY GANTTOBJECT TO ALTROWCOLOR 38545;
SETGANTTPROPERTY GANTTOBJECT TO DIVIDERPOS 120;
OBJECT : STRING STRTOOLBARITEMS;
STRTOOLBARITEMS = 'MOVE,RESIZE,GRID';
SETGANTTPROPERTY GANTTOBJECT TO TOOLBARITEMS STRTOOLBARITEMS;
SETGANTTPROPERTY GANTTOBJECT TO VERTICALLINES 1;
SETGANTTPROPERTY GANTTOBJECT TO ANNOTATIONS 0;
OBJECT : DATETIME D;
D = SYS_CURRENTDATE;
SETGANTTPROPERTY GANTTOBJECT TO VIEWDATE D;
SETGANTTPROPERTY GANTTOBJECT TO TIMESCALE MONTH;

Defining a Work Calendar:

You can define work calendars by using the SETGANTTPROPERTY command:

SETGANTTPROPERTY {ganttname} TO HOLIDAY {table_name} [ON {id} [RECURSIVE]]

In order to define a work calendar you should create a new TABLE object in TROIA and fill it with holidays.

This table is a serverside TABLE object that has to have GTSTARTDATE and GTENDDATE columns. You have to add rows for any holiday in this table. If you don't use the ON {id} option this work calendar will be set to the whole gantt chart. If you use ON option you will have to identify the Diagram entry by giving its GTID here. You can also use the RECURSIVE flag to set this work calendar to all children of this diagram.

//Work calendar example

OBJECT : TABLE TAB;
APPEND COLUMN GTSTARTDATE,DATETIME,0 TO TAB;
APPEND COLUMN GTENDDATE,DATETIME,0 TO TAB;
APPEND ROW TO TAB;
MOVE '01.05.2006' TO TAB_GTSTARTDATE;
MOVE '03.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB;
APPEND ROW TO TAB;
MOVE '07.05.2006' TO TAB_GTSTARTDATE;
MOVE '09.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB ON 4 RECURSIVE; //sets the workcalendar to diagram with GTID 4 and its children.

Events:

GT_DragAndDrop

Drag event. SYS_OLDGTSTARTDATE variable contains the value before the drag operation. The dragged entry will be the Active Row of the table in server side.

GT_ItemSelect

The selected entry will be the Active Row of the table in server side.

GT_ItemResize

Resize event. SYS_OLDGTSTARTDATE and SYS_OLDGTDURATION variables contain the value before the drag operation. The resized entry will be the Active Row of the table in server side.

GT_DoubleClick

The clicked entry will be the Active Row of the table in server side.

F.A.Q. Send MailMail

SENDMAIL COMMAND

SENDMAIL MESSAGE {MAILTEXT} TOADDRESS {DESTINATIONADDRESS}
[CCADDRESS {C} BCCADDRESS {B} SUBJECT {S} ATTACH {A} FROM {F} TYPE {T} HOST {H} USERNAME {U} PASSW {P} HEADERS {H}]

Notes:

- The parameters MESSAGE and TOADDRESS are mandatory and must be in the same order given as above.

- The parameters depicted in [..] are optional and can be in any order, you do not have to define them all.
For example if you do not send any attachment you never use ATTACH parameter.

- You can define custom headers if needed, the syntax is myheadername|myheadervalue. You can specify any number of headers in the form
  header1|value1|header2|value2...

- Sepcial attention must be paid for:

FROM HOST USERNAME PASSWORD

You have several options for the authentication. You may use parameters defined in the serversettings file before, or
specify your own parameters.

The rule is as following:

For the authentication 3 parameters are important.

host, username, password

If you encounter authentication failure, you may have trouble in one of 3 parameters.

* HOST: If you specify HOST parameter, then the defined value will be used. Otherwise the value in the serversettingsfile will be used,
which should have been set by

MailServer


* If you want to provide port number, use with host combined, for example HOST must be myhostname:myportnumber

* The other variables are handled depending on the following algorithm.

# Is FROM defined?
|
+------- Yes
|
| # Is USERNAME defined?
| |
| +------ Yes
| |
| | - Authentication will be done by given parameters.
| |
| | # Is PASSW defined?
| | |
| | +--- No
| |
| | - Use the serversettings parameter: MailServerUserPass
| |
| |
| |
| |
| +------- No
|
| - No authentication will be done, may cause error: See troubleshoot section(2)
|
+------- No

- Use serversettings parameter as FROM parameter: MailAdress

# Is USERNAME defined?
|
+---- Yes
|
| # Is PASSW defined?
| |
| +----- No
|
| - Use the serversettings parameter: MailServerUserPass
|
+----- No

- Use MailServerUserName and MailServerUserPass defined in the serversettings file for username and password, respectiveliy.

* Note:

If you define FROM, you must also define USERNAME. If you left USERNAME blank, serversettings value is NOT used and you get may error.
(See troubleshoot.2)

If FROM parameter not defined, and USERNAME is left blank, serversettings values are used.


TROUBLESHOOT:

- I got exception such as:
com.ias.server.mail.exceptions.iasSendMailException: >Can not send messageCould not connect to SMTP host: localhost, port: 25

No HOST parameter defined in command syntax and no MailServer parameter found in the serversettings file.
Define HOST parameter when calling SENDMAIL or define MailServer parameter in the settings file and perform ReloadConfiguration.

- I got exception such as:
com.ias.server.mail.exceptions.iasSendMailException: >Can not send messageInvalid Addresses

FROM parameter defined but no USERNAME parameter is defined. In this way you can only send internal mails, or you can get 553 errors.

SENDMAIL COMMAND

SENDMAIL MESSAGE {MAILTEXT} TOADDRESS {DESTINATIONADDRESS}
[CCADDRESS {C} BCCADDRESS {B} SUBJECT {S} ATTACH {A} FROM {F} TYPE {T} HOST {H} USERNAME {U} PASSW {P} HEADERS {H}]

Notes:

- The parameters MESSAGE and TOADDRESS are mandatory and must be in the same order given as above.

- The parameters depicted in [..] are optional and can be in any order, you do not have to define them all.
For example if you do not send any attachment you never use ATTACH parameter.

- You can define custom headers if needed, the syntax is myheadername|myheadervalue. You can specify any number of headers in the form
  header1|value1|header2|value2...

- Sepcial attention must be paid for:

FROM HOST USERNAME PASSWORD

You have several options for the authentication. You may use parameters defined in the serversettings file before, or
specify your own parameters.

The rule is as following:

For the authentication 3 parameters are important.

host, username, password

If you encounter authentication failure, you may have trouble in one of 3 parameters.

* HOST: If you specify HOST parameter, then the defined value will be used. Otherwise the value in the serversettingsfile will be used,
which should have been set by

MailServer


* If you want to provide port number, use with host combined, for example HOST must be myhostname:myportnumber

* The other variables are handled depending on the following algorithm.

# Is FROM defined?
|
+------- Yes
|
| # Is USERNAME defined?
| |
| +------ Yes
| |
| | - Authentication will be done by given parameters.
| |
| | # Is PASSW defined?
| | |
| | +--- No
| |
| | - Use the serversettings parameter: MailServerUserPass
| |
| |
| |
| |
| +------- No
|
| - No authentication will be done, may cause error: See troubleshoot section(2)
|
+------- No

- Use serversettings parameter as FROM parameter: MailAdress

# Is USERNAME defined?
|
+---- Yes
|
| # Is PASSW defined?
| |
| +----- No
|
| - Use the serversettings parameter: MailServerUserPass
|
+----- No

- Use MailServerUserName and MailServerUserPass defined in the serversettings file for username and password, respectiveliy.

* Note:

If you define FROM, you must also define USERNAME. If you left USERNAME blank, serversettings value is NOT used and you get may error.
(See troubleshoot.2)

If FROM parameter not defined, and USERNAME is left blank, serversettings values are used.


TROUBLESHOOT:

- I got exception such as:
com.ias.server.mail.exceptions.iasSendMailException: >Can not send messageCould not connect to SMTP host: localhost, port: 25

No HOST parameter defined in command syntax and no MailServer parameter found in the serversettings file.
Define HOST parameter when calling SENDMAIL or define MailServer parameter in the settings file and perform ReloadConfiguration.

- I got exception such as:
com.ias.server.mail.exceptions.iasSendMailException: >Can not send messageInvalid Addresses

FROM parameter defined but no USERNAME parameter is defined. In this way you can only send internal mails, or you can get 553 errors.

F.A.Q. Tree ModelTree

Using The Tree With Tree Model

This concept enables using the tree with a combined tree model. The tree itself contains its model.

It means, when we have the tree, we also have the model in our hand.

As a result, the server also has all of the information about the tree such as nodes, leafs, collapsed nodes etc.

At each action, the model of the tree on the server and the client are synchronized. Lets see an example:

Previously, when there was no tree model, the scenario was like the following:

When the TROIA command like that is executed:

INSERTTREEITEM AT 'ROOT' WITH A 'FOLDER' '0' TO TREE1;

The server executes this line and tells the client to add a new node to the tree.

When executing of this code is finished and a bit later this line is executed on the server:

INSERTTREEITEM AT '0' WITH M 'DOC1' '1' TO TREE1;

Again the client gets the order to add a new node. But, the server does not know anything

about the previoulsy added node. Also, the server does not store on itself which nodes are created, appended, etc.

The new concept

With the new concept, we can create a model on the server side which is kept on a table.

Hence, we can treat a tree like a table. See the following code excerpt:

APPEND ROW TO TREE1;
MOVE 'ROOT' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER1' TO TREE1_TTTEXT;
MOVE '101' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;

We have the whole structure on the server side. This model is sent to the client and the is built up using this information. When a change is occured on the client side, the model on the client side is updated again and sent to the server back. So we have a synchronised model between client and server.

Lets see the table of the tree in detail. We have the following columns in our hand:

..TTPARENTID.....TTMOA...........TTTEXT...........TTNODEID......TTBACKCOLOR.....TTFORECOLOR.....TTCOLLAPSED
...ROOT.................M................FOLDER1.......101...................................................................................0
...ROOT.................M................FOLDER2 ......102...................................................................................0
...101....................A................DOCUMENT1..1011.................................................................................0

Note: Each row corresponds to a node in the tree. The global tree properties (which are set in the development environment) are NOT kept in the table model. So if you want to update or set properties like that, you must use the old commands before the model.

Note: Non-collapsible nodes (A) have the collapsed flag set to zero.

TTPARENTID: Indicates the parent of the current node. To attach the first nodes, their parent must be ROOT.

TTMOA: Tells the type of the node. M can be treated as a collapseable folder or non-leaf. A is used for leaves and corresponds to the documents.

TTTEXT: The text seen on the node.

TTNODEID: The id of this node. Note: The id’s must be unique and trees containing the same id more than once are not allowed.

TTBACKCOLOR, TTFORECOLOR: The back and foreground color properties, respectively.

TTCOLLAPSED: If a M is expanded, this flag is set to 0. When the tree is first initialized on the screen, and all the tree is completely expanded, we have 0 in all columns of the table. When a click event, which collapses a node is executed, the following nodes(nodes with type M)will be marked as collapsed, hence their flag is set to 1. (See example 2)

Examples

Example 1: Creating a tree using the model

MOVE 'ROOT' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER1' TO TREE1_TTTEXT;
MOVE '101' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT11' TO TREE1_TTTEXT;
MOVE '1011' TO TREE1_TTNODEID;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT12' TO TREE1_TTTEXT;
MOVE '1012' TO TREE1_TTNODEID;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER13' TO TREE1_TTTEXT;
MOVE '1013' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;
APPEND ROW TO TREE1;
MOVE '1013' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT131' TO TREE1_TTTEXT;
MOVE '10131' TO TREE1_TTNODEID;

Will create the following tree:

...+-FOLDER1

...|

...+--DOCUMENT11

...|

...+--DOCUMENT12

...|

...+-+FOLDER13

.......|

...... +--DOCUMENT131        

We can see the model of the tree in an another table by

        COPY TABLE TREE1 INTO TABLE1;

The table 1 is as following:

TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        0
101                A        DOCUMENT11      1012                                                           0
101                A        DOCUMENT12      1013                                                        0
101                M     FOLDER13        1013                                                        0
1013                A        DOCUMENT131     10131                                                        0

We can also edit this table(TABLE1) and reflect the changes to the tree by

        COPY TABLE TABLE1 INTO TREE1;

Example 2: Updating model after GUI actions

When the user collapses the first node(101), the model is updated to reflect the changes. Note that the bottom folder(1013) is also collapsed. To see the changes by calling the code, we see the updated model. The model will be sent to the server to keep the synchronization with the model on the server side.

COPY TABLE TREE1 INTO TABLE1;
TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        1
101                A        DOCUMENT11      1012                                                           0
101                A        DOCUMENT12      1013                                                        0
101                M     FOLDER13        1013                                                        1
1013                A        DOCUMENT131     10131                                                        0

Other commands & stuff related to the tree

* The command CHANGETREEITEM is now obsolote. It can be done updating the table.

* We do not need the command GETTREEITEM to get tree node properties from the client anymore. Also we do not need to check the parameters SYS_MOA, SYS_TREETEXT, SYS_TREEITEM

* Because the code SETSTYLE TREECOLLAPSEDICON.. does not affect single nodes, such properties are not reflected on the model and nor can be updated using with it .

* Clearing the tree is same as before and afterwards the model table is empty.

* For the main nodes, set their parent as ROOT. More than one node can have its parent set to ROOT.

* Never use the ROOT as a node name in the tree.

* You may put the row data of a node in any order, you dont have to set the table rows in the drawing order. It means you can have this table

structure:

TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        1
101                A        DOCUMENT11      1012                                                             0
1014 <---*        A        DOCUMENT12      1013                                                          0
101                M     FOLDER13        1013                                                          1
1013                A        DOCUMENT131     10131                                                          0
1013                A        DOCUMENT141     10141                                                          0
101                M     FOLDER14        1014                                                          1

* As you see, it seems that the parent 1014 has not been initialized yet, but it does not cause any problem. The render order of the tree

  depends on the level of the nodes, not on the order in the table model.         

* If you see a blank tree, check the message in the console: ERROR: Tree rendering, duplicate id: XXX. You must have unique id s in the tree, check

the repeating id s.

* When deleting nodes from tree with CLEAR TREE, when the selected node contains children, all of them are also cleared.

* When a node is added to a leaf, you will see the following mesage on the client console:

        WARNING: TREE -- Attempted to add node to a leaf. The leaf(A) X has been converted to folder(M).
        The leaf is converted to a folder on the model.

* When you try to convert a folder which has children to a document(leaf), it will be not allowed and the folder will remain as folder.

Note: All the previously created tree’s such as in dialogs like BAST88 must work with this model. It means the new tree is backward-compatible. The Troia commands such as

INSERTTREEITEM, CHANGETREEITEM are supported and they change the model on the server side, which is sent to the client afterwards to reflect the changes.

Using The Tree With Tree Model

This concept enables using the tree with a combined tree model. The tree itself contains its model.

It means, when we have the tree, we also have the model in our hand.

As a result, the server also has all of the information about the tree such as nodes, leafs, collapsed nodes etc.

At each action, the model of the tree on the server and the client are synchronized. Lets see an example:

Previously, when there was no tree model, the scenario was like the following:

When the TROIA command like that is executed:

INSERTTREEITEM AT 'ROOT' WITH A 'FOLDER' '0' TO TREE1;

The server executes this line and tells the client to add a new node to the tree.

When executing of this code is finished and a bit later this line is executed on the server:

INSERTTREEITEM AT '0' WITH M 'DOC1' '1' TO TREE1;

Again the client gets the order to add a new node. But, the server does not know anything

about the previoulsy added node. Also, the server does not store on itself which nodes are created, appended, etc.

The new concept

With the new concept, we can create a model on the server side which is kept on a table.

Hence, we can treat a tree like a table. See the following code excerpt:

APPEND ROW TO TREE1;
MOVE 'ROOT' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER1' TO TREE1_TTTEXT;
MOVE '101' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;

We have the whole structure on the server side. This model is sent to the client and the is built up using this information. When a change is occured on the client side, the model on the client side is updated again and sent to the server back. So we have a synchronised model between client and server.

Lets see the table of the tree in detail. We have the following columns in our hand:

..TTPARENTID.....TTMOA...........TTTEXT...........TTNODEID......TTBACKCOLOR.....TTFORECOLOR.....TTCOLLAPSED
...ROOT.................M................FOLDER1.......101...................................................................................0
...ROOT.................M................FOLDER2 ......102...................................................................................0
...101....................A................DOCUMENT1..1011.................................................................................0

Note: Each row corresponds to a node in the tree. The global tree properties (which are set in the development environment) are NOT kept in the table model. So if you want to update or set properties like that, you must use the old commands before the model.

Note: Non-collapsible nodes (A) have the collapsed flag set to zero.

TTPARENTID: Indicates the parent of the current node. To attach the first nodes, their parent must be ROOT.

TTMOA: Tells the type of the node. M can be treated as a collapseable folder or non-leaf. A is used for leaves and corresponds to the documents.

TTTEXT: The text seen on the node.

TTNODEID: The id of this node. Note: The id’s must be unique and trees containing the same id more than once are not allowed.

TTBACKCOLOR, TTFORECOLOR: The back and foreground color properties, respectively.

TTCOLLAPSED: If a M is expanded, this flag is set to 0. When the tree is first initialized on the screen, and all the tree is completely expanded, we have 0 in all columns of the table. When a click event, which collapses a node is executed, the following nodes(nodes with type M)will be marked as collapsed, hence their flag is set to 1. (See example 2)

Examples

Example 1: Creating a tree using the model

MOVE 'ROOT' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER1' TO TREE1_TTTEXT;
MOVE '101' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT11' TO TREE1_TTTEXT;
MOVE '1011' TO TREE1_TTNODEID;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT12' TO TREE1_TTTEXT;
MOVE '1012' TO TREE1_TTNODEID;
APPEND ROW TO TREE1;
MOVE '101' TO TREE1_TTPARENTID;
MOVE 'M' TO TREE1_TTMOA;
MOVE 'FOLDER13' TO TREE1_TTTEXT;
MOVE '1013' TO TREE1_TTNODEID;
MOVE '0' TO TREE1_TTCOLLAPSED;
APPEND ROW TO TREE1;
MOVE '1013' TO TREE1_TTPARENTID;
MOVE 'A' TO TREE1_TTMOA;
MOVE 'DOCUMENT131' TO TREE1_TTTEXT;
MOVE '10131' TO TREE1_TTNODEID;

Will create the following tree:

...+-FOLDER1

...|

...+--DOCUMENT11

...|

...+--DOCUMENT12

...|

...+-+FOLDER13

.......|

...... +--DOCUMENT131        

We can see the model of the tree in an another table by

        COPY TABLE TREE1 INTO TABLE1;

The table 1 is as following:

TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        0
101                A        DOCUMENT11      1012                                                           0
101                A        DOCUMENT12      1013                                                        0
101                M     FOLDER13        1013                                                        0
1013                A        DOCUMENT131     10131                                                        0

We can also edit this table(TABLE1) and reflect the changes to the tree by

        COPY TABLE TABLE1 INTO TREE1;

Example 2: Updating model after GUI actions

When the user collapses the first node(101), the model is updated to reflect the changes. Note that the bottom folder(1013) is also collapsed. To see the changes by calling the code, we see the updated model. The model will be sent to the server to keep the synchronization with the model on the server side.

COPY TABLE TREE1 INTO TABLE1;
TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        1
101                A        DOCUMENT11      1012                                                           0
101                A        DOCUMENT12      1013                                                        0
101                M     FOLDER13        1013                                                        1
1013                A        DOCUMENT131     10131                                                        0

Other commands & stuff related to the tree

* The command CHANGETREEITEM is now obsolote. It can be done updating the table.

* We do not need the command GETTREEITEM to get tree node properties from the client anymore. Also we do not need to check the parameters SYS_MOA, SYS_TREETEXT, SYS_TREEITEM

* Because the code SETSTYLE TREECOLLAPSEDICON.. does not affect single nodes, such properties are not reflected on the model and nor can be updated using with it .

* Clearing the tree is same as before and afterwards the model table is empty.

* For the main nodes, set their parent as ROOT. More than one node can have its parent set to ROOT.

* Never use the ROOT as a node name in the tree.

* You may put the row data of a node in any order, you dont have to set the table rows in the drawing order. It means you can have this table

structure:

TTPARENTID        TTMOA        TTTEXT            TTNODEID        TTBACKCOLOR        TTFORECOLOR                TTCOLLAPSED
ROOT                M        FOLDER1            101                                                        1
101                A        DOCUMENT11      1012                                                             0
1014 <---*        A        DOCUMENT12      1013                                                          0
101                M     FOLDER13        1013                                                          1
1013                A        DOCUMENT131     10131                                                          0
1013                A        DOCUMENT141     10141                                                          0
101                M     FOLDER14        1014                                                          1

* As you see, it seems that the parent 1014 has not been initialized yet, but it does not cause any problem. The render order of the tree

  depends on the level of the nodes, not on the order in the table model.         

* If you see a blank tree, check the message in the console: ERROR: Tree rendering, duplicate id: XXX. You must have unique id s in the tree, check

the repeating id s.

* When deleting nodes from tree with CLEAR TREE, when the selected node contains children, all of them are also cleared.

* When a node is added to a leaf, you will see the following mesage on the client console:

        WARNING: TREE -- Attempted to add node to a leaf. The leaf(A) X has been converted to folder(M).
        The leaf is converted to a folder on the model.

* When you try to convert a folder which has children to a document(leaf), it will be not allowed and the folder will remain as folder.

Note: All the previously created tree’s such as in dialogs like BAST88 must work with this model. It means the new tree is backward-compatible. The Troia commands such as

INSERTTREEITEM, CHANGETREEITEM are supported and they change the model on the server side, which is sent to the client afterwards to reflect the changes.

Detayları gösterShow details
NotlarRemarks

Other commands & stuff related to the tree

•        The command CHANGETREEITEM is now obsolote. It can be done updating the table.
•        We do not need the command GETTREEITEM to get tree node properties from the client anymore. Also we do not need to check the parameters SYS_MOA, SYS_TREETEXT, SYS_TREEITEM
•        Because the code SETSTYLE TREECOLLAPSEDICON.. does not affect single nodes, such properties are not reflected on the model and nor can be updated using with it .
•        Clearing  the tree is same as before and afterwards the model table is empty.

Note: All the previously created tree’s such as in dialogs like BAST88 must work with this model. It means the new tree is backward-compatible. The Troia commands such as

INSERTTREEITEM, CHANGETREEITEM are supported and they change the model on the server side, which is sent to the client afterwards to reflect the changes.

To sum up, we have always a synchronized model of the tree on the server and client side.

Other commands & stuff related to the tree

•        The command CHANGETREEITEM is now obsolote. It can be done updating the table.
•        We do not need the command GETTREEITEM to get tree node properties from the client anymore. Also we do not need to check the parameters SYS_MOA, SYS_TREETEXT, SYS_TREEITEM
•        Because the code SETSTYLE TREECOLLAPSEDICON.. does not affect single nodes, such properties are not reflected on the model and nor can be updated using with it .
•        Clearing  the tree is same as before and afterwards the model table is empty.

Note: All the previously created tree’s such as in dialogs like BAST88 must work with this model. It means the new tree is backward-compatible. The Troia commands such as

INSERTTREEITEM, CHANGETREEITEM are supported and they change the model on the server side, which is sent to the client afterwards to reflect the changes.

To sum up, we have always a synchronized model of the tree on the server and client side.

F.A.Q. VectorVector

What is a VECTOR?

Vector is a container for objects. Objects included in a Vector are stored by their references. Moreover, the size of a vector can dynamically change. Therefore, vector data type is useful espacially carrying multiple object among different scopes (e.g. returning a value from a function, passing a value into a function).

TROIA VECTOR data type

TROIA VECTOR data type has been implemented as analogous to the Java Vector data type. A TROIA VECTOR might contain symbols of different TROIA data types, and stores these symbols by their references.

A TROIA VECTOR is dynamically resized due to operations performed (i.e. add item and remove item)

What is a VECTOR?

Vector is a container for objects. Objects included in a Vector are stored by their references. Moreover, the size of a vector can dynamically change. Therefore, vector data type is useful espacially carrying multiple object among different scopes (e.g. returning a value from a function, passing a value into a function).

TROIA VECTOR data type

TROIA VECTOR data type has been implemented as analogous to the Java Vector data type. A TROIA VECTOR might contain symbols of different TROIA data types, and stores these symbols by their references.

A TROIA VECTOR is dynamically resized due to operations performed (i.e. add item and remove item)

Data manipulation:

After instantiating a VECTOR, the following commands and functions could be used to manipulate the vector.

Commands:
        - ADDELEMENT : Appends any given item to a vector. BYREF keeps a tight connection with the symbol just alike a pointer.
                Usage: ADDELEMENT {symbol_name} TO {vector_name} [BYREF];

        - REMOVEELEMENT : Removes the element at given position starting from 1.
                Usage: REMOVEELEMENT {element_index} OF {vector_name};

        - CLEAR VECTOR : Clears a vector.
                Usage: CLEAR VECTOR {vector_name};

Functions:
        - VECTORCONTAINS(): Checks any given item x is in the vector v. If it finds returns 1 else returns 0.
                Usage: VECTORCONTAINS({vector_name},{symbol_name});
Detayları gösterShow details
ParametrelerParameters

How to use:

Like any other TROIA data type, VECTOR instances should be declared as conventionally. After instance definition, a vector object could be manipulated using helper commands. A Vector has following operations:

        - Adding elements
        - Setting specific element of vector
        - Removing an item from vector
        - Getting specific element of vector
        - Clearing a vector
        - Copying (cloning) a vector

Vector could be passed into a function as a parameter, declared in a specific scope (dialog, class, etc.), directly assigned to a different vector instance.

NotlarRemarks

It is important for VECTOR data type to keep in mind that all commands except COPY VECTOR works by reference, not by value of symbols.
This implies that any symbol incorporated with VECTOR data type operation will be keep persisting through out VECTORs lifespan.
For instance, a symbol inserted into a VECTOR during a function scope will be kept existing after getting out from function scope.

It is important for VECTOR data type to keep in mind that all commands except COPY VECTOR works by reference, not by value of symbols.
This implies that any symbol incorporated with VECTOR data type operation will be keep persisting through out VECTORs lifespan.
For instance, a symbol inserted into a VECTOR during a function scope will be kept existing after getting out from function scope.

ÖrnekExample
/* Ex.1) */



OBJECT: 

 VECTOR A, 

 VECTOR B, 

 STRING C, 

 STRING D;



C = 'Some Value';

ADDELEMENT C TO A;  /*By Value*/

C = 'New Value';



/*

C <- New Value

A[1] <- Some Value

*/



D = 'Some Value';

ADDELEMENT D TO A BYREF; /*By Reference*/

D = 'New Value';



/*

D <- New Value

A[2] <- New Value

*/





/* Ex.2) */



OBJECT: 

 VECTOR A, 

 VECTOR B, 

 STRING C, 

 STRING D;



C = 'Some Value';

ADDELEMENT C TO A;

B = A;

D = B[1]; /*Vector Copy*/





/* Ex.3) */



OBJECT: 

 VECTOR A, 

 STRING B, 

 STRING C, 

 STRING D;



B = 'Some text';

C = 'Some other text';



ADDELEMENT B TO A;

ADDELEMENT C TO A;

REMOVEELEMENT 1 OF A;

D = A[1];



/* Ex.4) */



OBJECT: 

 VECTOR A, 

 VECTOR B, 

 STRING C, 

 STRING D;



C = 'Text Value';

ADDELEMENT C TO A;



/*assume that ACLASS has a function SOMEFUNCTION taking a vector as parameter and return a vector*/

B = ACLASS.SOMEFUNCTION(A); 

D = B[1];



/* Ex.5) */



OBJECT: 

 VECTOR A, 

 VECTOR B, 

 STRING C, 

 STRING D;



C = 'Text Value';

ADDELEMENT C TO A;



CLEAR VECTOR A;



/*Ex.6)*/



OBJECT: 

 VECTOR A, 

 VECTOR B, 

 STRING C, 

 STRING D,

 INTEGER E;



C = 'Text Value';

ADDELEMENT C TO A;



E = VECTORCONTAINS(A,C);
İlgili KomutlarRelated Commands
ADDELEMENT, REMOVEELEMENT, CLEAR VECTOR, VECTORCONTAINS(v,x), GETVECTORSIZE()
F.A.Q. Web ServicesWeb Services

Web Services in CANIAS

a. Web Service operations and prototypes

Web Service operations that can be called in CANIAS are :

i. Login

This is a typical operation that is used to login to a CANIAS application server. Its prototype is:

    public String Login(String client,String langu,String db,
                          String dbserver,String appserver,String user,String pass) throws RemoteException;

As the prototype tells that its arguments are the same as a Client Login Dialog.

ii. listIASServices

This operation is used to list all available CANIAS web services ( function of a class) that may be called as a web service . Each CANIAS web service is a function of a CANIAS class. To use this call, user has to be logged in. This call may return different results based on the user calling this function. Its prototype is:

    public String[] listIASServices(String clientConnID) throws RemoteException;

The function takes the result returned from Login call as argument. The function returns a string array. Each item is constructed of a CANIAS service name (function of a class) and its description. For example ; CANIAS service name is ‘paramtest’ and its description is ‘parameter test’ . This call will return ‘paramtest_parameter test ‘ as one of the items.

This call uses two tables . One is IASWEBSERVICES and the other is IASWSRIGHTS.

The former is used to store relations between CANIAS web service names and CANIAS class functions. Consider the example above, the CANIAS web service ‘paramtest’ is just a name to simplify the call, which function it will invoke is kept in IASWEBSERVICES table. The latter table is an authorization table that gives information on the caller id.

iii. callIASService

This operation is used to invoke the CANIAS web service. Its prototype is:

public Object callIASService(String clientConnID,String serviceID,

                                    String args,String returnType) throws RemoteException;

The first two arguments can be obtained by the calls above. The third is the comma seperated parameter list that will be used by a CANIAS class function. This parameter list will be passed as the parameters of a CANIAS function. Consider a CANIAS function named ‘paramtst’ which has a body like the one below:

PARAMETERS: 

DATE DT1,

STRING S1,

INTEGER I1,

 DECIMAL D1;
OBJECT: 

DATE MDT1,

STRING MS1,

INTEGER MI1,

 DECIMAL MD1;
MDT1 = DT1;
MS1 = S1;
MI1 = I1;
MD1 = D1;
RETURN MD1;

Assume that this class is defined as a CANIAS web service named ‘paramtest’. To call this CANIAS service, the real web service invoked with the parameters :

Param1 : USER_xxx

Param2 : paramtest

Param3 : 01.01.2005, AAA,13,17.45

Param4 : DECIMAL

Parameter3 will be parsed on commas and related CANIAS parameters will be passed to function. The return type ‘Object’ indicates that every CANIAS function may have different return types.

At this point one may come with the question ‘how to know what is the return type or what are the parameters to be passed to the CANIAS service?’. True. Because a CANIAS function is hidden to a web service consumer, the description info of the service that will be returned by listIASServices function must be well defined.

iv. Logout

This is a typical operation that is used to logout from a CANIAS application server. Its prototype is:

public void Logout(String clientConnID) throws RemoteException;

b. How to call CANIAS Web Service

The name of the CANIAS web service as defined in its WSDL file is ‘iasWebService’. The soap messages below can be used to call the service operations defined above.

i. Calling ‘Login’ operation

Request:

		<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:Login>
<String_1 xsi:type="xsd:string">00</String_1>
<String_2 xsi:type="xsd:string">T</String_2>
<String_3 xsi:type="xsd:string">IAS602</String_3>
<String_4 xsi:type="xsd:string">localhost</String_4>
<String_5 xsi:type="xsd:string">localhost</String_5>
<String_6 xsi:type="xsd:string">BUGRA</String_6>
<String_7 xsi:type="xsd:string">IAS</String_7>
</ns0:Login>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" 	env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:LoginResponse>
			<result xsi:type="xsd:string">BUGRA_40000002</result>
		</ns0:LoginResponse>
	</env:Body>
	</env:Envelope>

ii. Calling ‘listIASServices’ operation

Request :

(Notice that String_1 arg is what is returned from the Login call)

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:listIASServices>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
</ns0:listIASServices>
</env:Body>
</env:Envelope>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:listIASServicesResponse><result href="#ID1"/>
		</ns0:listIASServicesResponse>
		<ns0:ArrayOfstring id="ID1" xsi:type="enc:Array" enc:arrayType="xsd:string[2]">
		<item xsi:type="xsd:string">ECHOTEST_ECHO TEST</item>
		<item xsi:type="xsd:string">PARAMTEST_Parameters test</item>
		</ns0:ArrayOfstring>
	</env:Body>
</env:Envelope>

iii. Calling ‘callIASService’ operation.

Request:

(The function we call just echoes)

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:callIASService>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
<String_2 xsi:type="xsd:string">ECHOTEST</String_2>
<String_3 xsi:type="xsd:string">HELLO  WEB SERVICES</String_3>
<String_4 xsi:type="xsd:string">STRING</String_4>
</ns0:callIASService>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:callIASServiceResponse>
			<result xsi:type="xsd:string"> Echo from class : HELLO  WEB SERVICES</result>
		</ns0:callIASServiceResponse>
	</env:Body>
	</env:Envelope>

iv. Calling ‘Logout’ operation.

Request:

	<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:Logout>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
</ns0:Logout>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>

<ns0:LogoutResponse/>

	</env:Body>
	</env:Envelope>

c. How to call a Web Service using TROIA.

To call a web service, the web server that is queried (with the url given ) must be up and active.

i. Using HTTP-POST

By using SENDHTTPPOST command, a web service can be called using TROIA. ( Do not forget to set content type to ‘text/xml’)

OBJECT:

STRING S,

STRING CTYPE;
CTYPE = ‘text/xml’;
S = 'http://localhost:8080/iasWebService/iasWebService';
SENDHTTPPOST STRINGVAR3 TO S CONTENTTYPE CTYPE ;
INTEGERVAR3 = SYS_STATUS;
RESULTBOX = SYS_HTTPPOSTRESPONSE;

The variable STRINGVAR3 must be one of the soap requests above. The response will be stored in SYS_HTTPPOSTRESPONSE .

ii. Using Dynamic Invocation Interface.

With this technique, the wsdl is parsed and the desired operation is invoked dynamically given its parameters. The parameters given are converted into a soap envelope which is then sent to address given. The operation and parameters have to be gathered from wsdl definitions. To use this technique, TROIA serves us a command named ‘CALLWEBSERVICE’. Its usage is .

CALLWEBSERVICE wsdladdress , operation TO sym WITH params(comma seperated values)

The code below invokes the same function as sending soap message to ‘callIASService’.

OBJECT:

STRING WSDLADDR,

STRING OPERATION,

STRING PRM1,

STRING PRM2,

STRING PRM3,

 STRING PRM4;
WSDLADDR = ‘http://localhost:8080/iasWebService/iasWebService?WSDL’;
OPERATION = 'callIASService';
PRM1 = 'BUGRA_40000002';
PRM2 = 'PARAMTEST';
PRM3 = '01.01.2005,WWW,12,34.745';
PRM4 = 'DECIMAL';
CALLWEBSERVICE WSDLADDR, OPERATION TO STRINGVAR3 WITH PRM1,PRM2,PRM3,PRM4;

The result, which is also a soap envelope, will be stored in STRINGVAR3.

The example above shows a web service operation that uses primitive types as parameters but what happens when the parameters are of complex types. Look at the definition of an operation in a web service wsdl below ( url http://mssoapinterop.org/asmx/xsd/round4XSD.asmx?op=echoComplexType )

POST /asmx/xsd/round4XSD.asmx HTTP/1.1

Host: mssoapinterop.org

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://soapinterop.org/echoComplexType"

		<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
		  <soap:Body>
		    <echoComplexType xmlns="http://soapinterop.org/">
		      <inputComplexType>
		        <varInt xmlns="http://soapinterop.org/xsd">int</varInt>
		        <varString xmlns="http://soapinterop.org/xsd">string</varString>
		        <varFloat xmlns="http://soapinterop.org/xsd">float</varFloat>
		      </inputComplexType>
		    </echoComplexType>
		  </soap:Body>
		</soap:Envelope>
It is obvious that this operation needs a complex type of three elements inside. To match the requirements of these complex types, developers in TROIA have to use tables.  The table used must contain two columns with predefined column names LOCALNAME and VALUE. LOCALNAME column must contain the same  the element names (varInt,varFloat,varString) used inside  the complex type(inputComplexType).   Consider the code below :
OBJECT:

STRING WSDLADDR,

STRING OPERATION,

TABLE QTAB;
CLEAR ALL QTAB;

/* columns must have these names

APPEND COLUMN LOCALNAME,STRING,40 TO QTAB;
APPEND COLUMN VALUE,STRING,40 TO QTAB;

*

/

APPEND ROW TO QTAB;
MOVE 'varInt' TO QTAB_LOCALNAME;
MOVE '5' TO QTAB_VALUE;
APPEND ROW TO QTAB;
MOVE 'varString' TO QTAB_LOCALNAME;
MOVE 'ddd' TO QTAB_VALUE;
APPEND ROW TO QTAB;
MOVE 'varFloat' TO QTAB_LOCALNAME;
MOVE '3.0' TO QTAB_VALUE;
WSDLADDR = 'http://mssoapinterop.org/asmx/xsd/round4XSD.wsdl';
OPERATION = 'echoComplexType';
CALLWEBSERVICE WSDLADDR,OPERATION TO STRINGVAR3 WITH QTAB;

The envelope send whih can be seen by the trace:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <soapenv:Body>
  <echoComplexType xmlns="http://soapinterop.org/">
   <inputComplexType xmlns="http://soapinterop.org/">
    <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
    <varString xmlns="http://soapinterop.org/xsd">ddd</varString>
    <varFloat xmlns="http://soapinterop.org/xsd">3.0</varFloat>
   </inputComplexType>
  </echoComplexType>
 </soapenv:Body>
</soapenv:Envelope>

The response from the service called, will also be stored as a soap envelope in STRINGVAR3:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <soap:Body>
  <echoComplexTypeResponse xmlns="http://soapinterop.org/">
   <return>
    <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
    <varString xmlns="http://soapinterop.org/xsd">ddd</varString>
    <varFloat xmlns="http://soapinterop.org/xsd">3</varFloat>
   </return>
  </echoComplexTypeResponse>
 </soap:Body>
</soap:Envelope>

d. Finding Web Services

Up to now, this document dealt with how to produce and consume web services. Finding a web service throughout an XML registry is another significant feature used by web service developers and consumers. XML registries can be thought of as an electronic yellow pages where producers and consumers dynamically discover one another. TROIA supports querying XML registries with QUERYXMLREGISTRY function for a specific web service

OBJECT:

STRING UDDIREG,

STRING UDDIREGM,

STRING SERVICE,

STRING PHOST,

STRING PPORT;
UDDIREG = 'http://uddi.ibm.com/testregistry/inquiryapi';
UDDIREGM = 'http://test.uddi.microsoft.com/inquire';
SERVICE = '%WEATHER%';
PHOST = '192.168.0.196';
PPORT = '3128';

INTEGERVAR2 = QUERYXMLREGISTRY(UDDIREG,SERVICE,PHOST,PPORT);.

The code above queries the test registry provided by IBM (or Microsoft) for the services with the name ‘like(%) WEATHER’ . The last two parameters are optional for proxy host and port of the machine where CANIAS application server resides not the client. The integer returned shows the number of services that matches. This function not only returns the number of results found but the names and their access points as well in a table called SYSUDDIREGISTRY.

Developers of TROIA may consume a web service throughout this table as told in part c .

e. How to compile and deploy web services.

iasWebService is an rpc(remote process call) type service.

i. Compiling

The classes used are; iasWebServiceIF (interface) , iasWebServiceImpl (implementation), iasWebServiceHandler (a class used to store remote server stubs by the help of a static hashtable) and found in package ‘com.ias.web’. The interface file extends Remote class of java.

public interface iasWebServiceIF extends Remote {

.....

}

This interface will be used by the ‘wsdeploy’ tool to create rpc stubs and tie objects.

Compiling is done as usual with the classes explained above.

ii. Packaging and Deployment

Besides the classes, final deployment needs extra description files. These are ‘jaxrpc-ri.xml’ and ‘web.xml’ . The first file is a description file for iasWebService. Its content is:

<?xml version="1.0" encoding="UTF-8"?>

<webServices

    xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"
    version="1.0"
    targetNamespaceBase="urn:Foo"
    typeNamespaceBase="urn:Foo"
    urlPatternBase="/ws">

<endpoint

        name="iasWebService"
        displayName="Canias Web Service"
        description="Canias Web service" 
        interface="com.ias.web.iasWebServiceIF"
        implementation="com.ias.web.iasWebServiceImpl"/> 
    <endpointMapping
        endpointName="iasWebService"
        urlPattern="/iasWebService"/>
</webServices>  

The second file is a standard web info file.

These two file must reside in a directory called ‘WEB-INF’. There is another directory called ‘classes’ is also needed. The necessary classeses ( classes compiled above and their dependants) must go under classes directory. Cause package info has to be preserved. The directory structure is shown below:

-- WEB-INF

-- jaxrpc-ri.xml

-- web.xml

-- classes

-- com

-- ias

-- globals

-- server

-- util

-- web

All com.ias packages and classes are not needed , all needed files are:

com.ias.globals:

iasEncryptDecrypt.class

iasRPCDocument.class

iasSeperators.class

XAction.class

Xparameter.class

com.ias.server:

iasServerManagerInterface.class

iasServerManagerRemoteObject_Stub.class

com.ias.util:

iasCompressor.class

com.ias.web:

iasWebServiceIF.class

iasWebServiceImpl.class

iasWebServiceHandler.class

After the directory structure is formed as explained above, ‘war’ package can be formed. Build an archive or use jar(jar cvf ..) command that will contain the classes and files above without loosing path infos into a war named ‘iasTempWebService’. This is a pre-deployment war so we named it as temporary file.

Now it is time for final deployment . ‘wsdeploy’ tool is needed in this stage. Usually it is shipped with jwsdp-1.3 ( Sun Java Web Services Development pack). A batch file ‘wsdeploy.bat‘ is found under ‘C:\jwsdp-1.3\jaxrpc\bin‘ .( It is assumed that jwsdp is founded under C:\ ). This tool creates stubs and ties and more important a ‘wsdl‘ file to describe our web service based on jaxrpc-ri.xml and others.Apply this tool to our intermediate war:

C:\jwsdp-1.3\jaxrpc\bin\wsdeploy.bat -o iasWebService.war iasTempWebService.war

This creates the final war ‘iasWebService.war’ . Copy this file to ‘webapps’ directory of your web server. Start your web server ( Tomcat for instance ) and test it. For example:

http://localhost:8080/iasWebService/iasWebService?WSDL

As it is seen these url matches with the content of our jaxrpc-ri.xml file. Every deployment needs web server to be restarted.

All the things that are told in ‘packaging and deployment’ section can also be made with ant tool. (Ant is sth like linux makefile )

f. What ‘s more .

i. Tables in ODBA

As discussed above two tables in CANIAS is needed. Their specification taken from CANIAS ODBA is below:

DROP TABLE IASWEBSERVICES;

CREATE TABLE IASWEBSERVICES (

CLIENT                VARCHAR(2) NOT NULL,
SERVICENAME           VARCHAR(20) NOT NULL,
SERVICECLASS          VARCHAR(20) NOT NULL,
SERVICEFUNC           VARCHAR(30) NOT NULL,
STEXT                 TEXT
) ;
CREATE UNIQUE INDEX IASTR_001 ON IASWEBSERVICES (CLIENT,SERVICENAME,SERVICECLASS,SERVICEFUNC);
DROP TABLE IASWSRIGHTS;

CREATE TABLE IASWSRIGHTS (

CLIENT                VARCHAR(2) NOT NULL,
USERNAME              VARCHAR(12) NOT NULL,
SERVICENAME           VARCHAR(20) NOT NULL
) ;
CREATE UNIQUE INDEX IASTR_001 ON IASWSRIGHTS (CLIENT,USERNAME,SERVICENAME);

ii. Jars and packages

Download Java Web Services Developer Pack 1.3 from Sun. Also wsdl4j.jar,jaxrpc.jar,axis.jar,saaj.jar,commons-discovery.jar,commons-logging.jar, uddi4j.jar need to be added to project. These jars are found under C:\jwsdp-1.3\common\lib or JBuilderX\lib. Check for them.

One more extra jar must be added to C:\jwsdp-1.3\common\lib directory. That is soap.jar found in /resources/lib of pegasus project path. That file is used for ‘Base64Encoding’ functions. (Restart web server after copying it)

iii. Error tracing

Error logs are found under C:\jwsdp-1.3\logs\ launcher.server.log .

Web Services in CANIAS

a. Web Service operations and prototypes

Web Service operations that can be called in CANIAS are :

i. Login

This is a typical operation that is used to login to a CANIAS application server. Its prototype is:

    public String Login(String client,String langu,String db,
                          String dbserver,String appserver,String user,String pass) throws RemoteException;

As the prototype tells that its arguments are the same as a Client Login Dialog.

ii. listIASServices

This operation is used to list all available CANIAS web services ( function of a class) that may be called as a web service . Each CANIAS web service is a function of a CANIAS class. To use this call, user has to be logged in. This call may return different results based on the user calling this function. Its prototype is:

    public String[] listIASServices(String clientConnID) throws RemoteException;

The function takes the result returned from Login call as argument. The function returns a string array. Each item is constructed of a CANIAS service name (function of a class) and its description. For example ; CANIAS service name is ‘paramtest’ and its description is ‘parameter test’ . This call will return ‘paramtest_parameter test ‘ as one of the items.

This call uses two tables . One is IASWEBSERVICES and the other is IASWSRIGHTS.

The former is used to store relations between CANIAS web service names and CANIAS class functions. Consider the example above, the CANIAS web service ‘paramtest’ is just a name to simplify the call, which function it will invoke is kept in IASWEBSERVICES table. The latter table is an authorization table that gives information on the caller id.

iii. callIASService

This operation is used to invoke the CANIAS web service. Its prototype is:

public Object callIASService(String clientConnID,String serviceID,

                                    String args,String returnType) throws RemoteException;

The first two arguments can be obtained by the calls above. The third is the comma seperated parameter list that will be used by a CANIAS class function. This parameter list will be passed as the parameters of a CANIAS function. Consider a CANIAS function named ‘paramtst’ which has a body like the one below:

PARAMETERS: 

DATE DT1,

STRING S1,

INTEGER I1,

 DECIMAL D1;
OBJECT: 

DATE MDT1,

STRING MS1,

INTEGER MI1,

 DECIMAL MD1;
MDT1 = DT1;
MS1 = S1;
MI1 = I1;
MD1 = D1;
RETURN MD1;

Assume that this class is defined as a CANIAS web service named ‘paramtest’. To call this CANIAS service, the real web service invoked with the parameters :

Param1 : USER_xxx

Param2 : paramtest

Param3 : 01.01.2005, AAA,13,17.45

Param4 : DECIMAL

Parameter3 will be parsed on commas and related CANIAS parameters will be passed to function. The return type ‘Object’ indicates that every CANIAS function may have different return types.

At this point one may come with the question ‘how to know what is the return type or what are the parameters to be passed to the CANIAS service?’. True. Because a CANIAS function is hidden to a web service consumer, the description info of the service that will be returned by listIASServices function must be well defined.

iv. Logout

This is a typical operation that is used to logout from a CANIAS application server. Its prototype is:

public void Logout(String clientConnID) throws RemoteException;

b. How to call CANIAS Web Service

The name of the CANIAS web service as defined in its WSDL file is ‘iasWebService’. The soap messages below can be used to call the service operations defined above.

i. Calling ‘Login’ operation

Request:

		<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:Login>
<String_1 xsi:type="xsd:string">00</String_1>
<String_2 xsi:type="xsd:string">T</String_2>
<String_3 xsi:type="xsd:string">IAS602</String_3>
<String_4 xsi:type="xsd:string">localhost</String_4>
<String_5 xsi:type="xsd:string">localhost</String_5>
<String_6 xsi:type="xsd:string">BUGRA</String_6>
<String_7 xsi:type="xsd:string">IAS</String_7>
</ns0:Login>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" 	env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:LoginResponse>
			<result xsi:type="xsd:string">BUGRA_40000002</result>
		</ns0:LoginResponse>
	</env:Body>
	</env:Envelope>

ii. Calling ‘listIASServices’ operation

Request :

(Notice that String_1 arg is what is returned from the Login call)

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:listIASServices>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
</ns0:listIASServices>
</env:Body>
</env:Envelope>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:listIASServicesResponse><result href="#ID1"/>
		</ns0:listIASServicesResponse>
		<ns0:ArrayOfstring id="ID1" xsi:type="enc:Array" enc:arrayType="xsd:string[2]">
		<item xsi:type="xsd:string">ECHOTEST_ECHO TEST</item>
		<item xsi:type="xsd:string">PARAMTEST_Parameters test</item>
		</ns0:ArrayOfstring>
	</env:Body>
</env:Envelope>

iii. Calling ‘callIASService’ operation.

Request:

(The function we call just echoes)

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:callIASService>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
<String_2 xsi:type="xsd:string">ECHOTEST</String_2>
<String_3 xsi:type="xsd:string">HELLO  WEB SERVICES</String_3>
<String_4 xsi:type="xsd:string">STRING</String_4>
</ns0:callIASService>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>
		<ns0:callIASServiceResponse>
			<result xsi:type="xsd:string"> Echo from class : HELLO  WEB SERVICES</result>
		</ns0:callIASServiceResponse>
	</env:Body>
	</env:Envelope>

iv. Calling ‘Logout’ operation.

Request:

	<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<env:Body>
<ns0:Logout>
<String_1 xsi:type="xsd:string">BUGRA_40000002</String_1>
</ns0:Logout>
</env:Body>
</env:Envelope>

Response:

	<?xml version="1.0" encoding="UTF-8"?>
	<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:ns0="urn:FooiasWebService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<env:Body>

<ns0:LogoutResponse/>

	</env:Body>
	</env:Envelope>

c. How to call a Web Service using TROIA.

To call a web service, the web server that is queried (with the url given ) must be up and active.

i. Using HTTP-POST

By using SENDHTTPPOST command, a web service can be called using TROIA. ( Do not forget to set content type to ‘text/xml’)

OBJECT:

STRING S,

STRING CTYPE;
CTYPE = ‘text/xml’;
S = 'http://localhost:8080/iasWebService/iasWebService';
SENDHTTPPOST STRINGVAR3 TO S CONTENTTYPE CTYPE ;
INTEGERVAR3 = SYS_STATUS;
RESULTBOX = SYS_HTTPPOSTRESPONSE;

The variable STRINGVAR3 must be one of the soap requests above. The response will be stored in SYS_HTTPPOSTRESPONSE .

ii. Using Dynamic Invocation Interface.

With this technique, the wsdl is parsed and the desired operation is invoked dynamically given its parameters. The parameters given are converted into a soap envelope which is then sent to address given. The operation and parameters have to be gathered from wsdl definitions. To use this technique, TROIA serves us a command named ‘CALLWEBSERVICE’. Its usage is .

CALLWEBSERVICE wsdladdress , operation TO sym WITH params(comma seperated values)

The code below invokes the same function as sending soap message to ‘callIASService’.

OBJECT:

STRING WSDLADDR,

STRING OPERATION,

STRING PRM1,

STRING PRM2,

STRING PRM3,

 STRING PRM4;
WSDLADDR = ‘http://localhost:8080/iasWebService/iasWebService?WSDL’;
OPERATION = 'callIASService';
PRM1 = 'BUGRA_40000002';
PRM2 = 'PARAMTEST';
PRM3 = '01.01.2005,WWW,12,34.745';
PRM4 = 'DECIMAL';
CALLWEBSERVICE WSDLADDR, OPERATION TO STRINGVAR3 WITH PRM1,PRM2,PRM3,PRM4;

The result, which is also a soap envelope, will be stored in STRINGVAR3.

The example above shows a web service operation that uses primitive types as parameters but what happens when the parameters are of complex types. Look at the definition of an operation in a web service wsdl below ( url http://mssoapinterop.org/asmx/xsd/round4XSD.asmx?op=echoComplexType )

POST /asmx/xsd/round4XSD.asmx HTTP/1.1

Host: mssoapinterop.org

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://soapinterop.org/echoComplexType"

		<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
		  <soap:Body>
		    <echoComplexType xmlns="http://soapinterop.org/">
		      <inputComplexType>
		        <varInt xmlns="http://soapinterop.org/xsd">int</varInt>
		        <varString xmlns="http://soapinterop.org/xsd">string</varString>
		        <varFloat xmlns="http://soapinterop.org/xsd">float</varFloat>
		      </inputComplexType>
		    </echoComplexType>
		  </soap:Body>
		</soap:Envelope>
It is obvious that this operation needs a complex type of three elements inside. To match the requirements of these complex types, developers in TROIA have to use tables.  The table used must contain two columns with predefined column names LOCALNAME and VALUE. LOCALNAME column must contain the same  the element names (varInt,varFloat,varString) used inside  the complex type(inputComplexType).   Consider the code below :
OBJECT:

STRING WSDLADDR,

STRING OPERATION,

TABLE QTAB;
CLEAR ALL QTAB;

/* columns must have these names

APPEND COLUMN LOCALNAME,STRING,40 TO QTAB;
APPEND COLUMN VALUE,STRING,40 TO QTAB;

*

/

APPEND ROW TO QTAB;
MOVE 'varInt' TO QTAB_LOCALNAME;
MOVE '5' TO QTAB_VALUE;
APPEND ROW TO QTAB;
MOVE 'varString' TO QTAB_LOCALNAME;
MOVE 'ddd' TO QTAB_VALUE;
APPEND ROW TO QTAB;
MOVE 'varFloat' TO QTAB_LOCALNAME;
MOVE '3.0' TO QTAB_VALUE;
WSDLADDR = 'http://mssoapinterop.org/asmx/xsd/round4XSD.wsdl';
OPERATION = 'echoComplexType';
CALLWEBSERVICE WSDLADDR,OPERATION TO STRINGVAR3 WITH QTAB;

The envelope send whih can be seen by the trace:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <soapenv:Body>
  <echoComplexType xmlns="http://soapinterop.org/">
   <inputComplexType xmlns="http://soapinterop.org/">
    <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
    <varString xmlns="http://soapinterop.org/xsd">ddd</varString>
    <varFloat xmlns="http://soapinterop.org/xsd">3.0</varFloat>
   </inputComplexType>
  </echoComplexType>
 </soapenv:Body>
</soapenv:Envelope>

The response from the service called, will also be stored as a soap envelope in STRINGVAR3:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <soap:Body>
  <echoComplexTypeResponse xmlns="http://soapinterop.org/">
   <return>
    <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
    <varString xmlns="http://soapinterop.org/xsd">ddd</varString>
    <varFloat xmlns="http://soapinterop.org/xsd">3</varFloat>
   </return>
  </echoComplexTypeResponse>
 </soap:Body>
</soap:Envelope>

d. Finding Web Services

Up to now, this document dealt with how to produce and consume web services. Finding a web service throughout an XML registry is another significant feature used by web service developers and consumers. XML registries can be thought of as an electronic yellow pages where producers and consumers dynamically discover one another. TROIA supports querying XML registries with QUERYXMLREGISTRY function for a specific web service

OBJECT:

STRING UDDIREG,

STRING UDDIREGM,

STRING SERVICE,

STRING PHOST,

STRING PPORT;
UDDIREG = 'http://uddi.ibm.com/testregistry/inquiryapi';
UDDIREGM = 'http://test.uddi.microsoft.com/inquire';
SERVICE = '%WEATHER%';
PHOST = '192.168.0.196';
PPORT = '3128';

INTEGERVAR2 = QUERYXMLREGISTRY(UDDIREG,SERVICE,PHOST,PPORT);.

The code above queries the test registry provided by IBM (or Microsoft) for the services with the name ‘like(%) WEATHER’ . The last two parameters are optional for proxy host and port of the machine where CANIAS application server resides not the client. The integer returned shows the number of services that matches. This function not only returns the number of results found but the names and their access points as well in a table called SYSUDDIREGISTRY.

Developers of TROIA may consume a web service throughout this table as told in part c .

e. How to compile and deploy web services.

iasWebService is an rpc(remote process call) type service.

i. Compiling

The classes used are; iasWebServiceIF (interface) , iasWebServiceImpl (implementation), iasWebServiceHandler (a class used to store remote server stubs by the help of a static hashtable) and found in package ‘com.ias.web’. The interface file extends Remote class of java.

public interface iasWebServiceIF extends Remote {

.....

}

This interface will be used by the ‘wsdeploy’ tool to create rpc stubs and tie objects.

Compiling is done as usual with the classes explained above.

ii. Packaging and Deployment

Besides the classes, final deployment needs extra description files. These are ‘jaxrpc-ri.xml’ and ‘web.xml’ . The first file is a description file for iasWebService. Its content is:

<?xml version="1.0" encoding="UTF-8"?>

<webServices

    xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"
    version="1.0"
    targetNamespaceBase="urn:Foo"
    typeNamespaceBase="urn:Foo"
    urlPatternBase="/ws">

<endpoint

        name="iasWebService"
        displayName="Canias Web Service"
        description="Canias Web service" 
        interface="com.ias.web.iasWebServiceIF"
        implementation="com.ias.web.iasWebServiceImpl"/> 
    <endpointMapping
        endpointName="iasWebService"
        urlPattern="/iasWebService"/>
</webServices>  

The second file is a standard web info file.

These two file must reside in a directory called ‘WEB-INF’. There is another directory called ‘classes’ is also needed. The necessary classeses ( classes compiled above and their dependants) must go under classes directory. Cause package info has to be preserved. The directory structure is shown below:

-- WEB-INF

-- jaxrpc-ri.xml

-- web.xml

-- classes

-- com

-- ias

-- globals

-- server

-- util

-- web

All com.ias packages and classes are not needed , all needed files are:

com.ias.globals:

iasEncryptDecrypt.class

iasRPCDocument.class

iasSeperators.class

XAction.class

Xparameter.class

com.ias.server:

iasServerManagerInterface.class

iasServerManagerRemoteObject_Stub.class

com.ias.util:

iasCompressor.class

com.ias.web:

iasWebServiceIF.class

iasWebServiceImpl.class

iasWebServiceHandler.class

After the directory structure is formed as explained above, ‘war’ package can be formed. Build an archive or use jar(jar cvf ..) command that will contain the classes and files above without loosing path infos into a war named ‘iasTempWebService’. This is a pre-deployment war so we named it as temporary file.

Now it is time for final deployment . ‘wsdeploy’ tool is needed in this stage. Usually it is shipped with jwsdp-1.3 ( Sun Java Web Services Development pack). A batch file ‘wsdeploy.bat‘ is found under ‘C:\jwsdp-1.3\jaxrpc\bin‘ .( It is assumed that jwsdp is founded under C:\ ). This tool creates stubs and ties and more important a ‘wsdl‘ file to describe our web service based on jaxrpc-ri.xml and others.Apply this tool to our intermediate war:

C:\jwsdp-1.3\jaxrpc\bin\wsdeploy.bat -o iasWebService.war iasTempWebService.war

This creates the final war ‘iasWebService.war’ . Copy this file to ‘webapps’ directory of your web server. Start your web server ( Tomcat for instance ) and test it. For example:

http://localhost:8080/iasWebService/iasWebService?WSDL

As it is seen these url matches with the content of our jaxrpc-ri.xml file. Every deployment needs web server to be restarted.

All the things that are told in ‘packaging and deployment’ section can also be made with ant tool. (Ant is sth like linux makefile )

f. What ‘s more .

i. Tables in ODBA

As discussed above two tables in CANIAS is needed. Their specification taken from CANIAS ODBA is below:

DROP TABLE IASWEBSERVICES;

CREATE TABLE IASWEBSERVICES (

CLIENT                VARCHAR(2) NOT NULL,
SERVICENAME           VARCHAR(20) NOT NULL,
SERVICECLASS          VARCHAR(20) NOT NULL,
SERVICEFUNC           VARCHAR(30) NOT NULL,
STEXT                 TEXT
) ;
CREATE UNIQUE INDEX IASTR_001 ON IASWEBSERVICES (CLIENT,SERVICENAME,SERVICECLASS,SERVICEFUNC);
DROP TABLE IASWSRIGHTS;

CREATE TABLE IASWSRIGHTS (

CLIENT                VARCHAR(2) NOT NULL,
USERNAME              VARCHAR(12) NOT NULL,
SERVICENAME           VARCHAR(20) NOT NULL
) ;
CREATE UNIQUE INDEX IASTR_001 ON IASWSRIGHTS (CLIENT,USERNAME,SERVICENAME);

ii. Jars and packages

Download Java Web Services Developer Pack 1.3 from Sun. Also wsdl4j.jar,jaxrpc.jar,axis.jar,saaj.jar,commons-discovery.jar,commons-logging.jar, uddi4j.jar need to be added to project. These jars are found under C:\jwsdp-1.3\common\lib or JBuilderX\lib. Check for them.

One more extra jar must be added to C:\jwsdp-1.3\common\lib directory. That is soap.jar found in /resources/lib of pegasus project path. That file is used for ‘Base64Encoding’ functions. (Restart web server after copying it)

iii. Error tracing

Error logs are found under C:\jwsdp-1.3\logs\ launcher.server.log .

FETCHDatabase

Seçilen table'ın mevcut row'unu döndürür.

Returns the current row of the selected table.

FETCH {table_name};
Detayları gösterShow details
ParametrelerParameters

table_name = the name of the virtual table

NotlarRemarks

Yalnızca bir SELECTLINE statement'ından sonra kullanılabilir.

Can only be used after a SELECTLINE statement.

ÖrnekExample
OBJECT: 
 TABLE TEMP;

SELECTLINE * 
    FROM MATB 
    WHERE MATNR = 'G1000' 
    ORDERBY WERKS 
    INTO TEMP;

WHILE (SYS_STATUS == 0) 
BEGIN
	FETCH TEMP;
	/* .... */
ENDWHILE;
İlgili KomutlarRelated Commands
SELECTLINE
FILELISTFile

Directory içeriğini getirir ve zaten tanımlanmış olan istenen virtual table'a koyar.

Fetchs directory contents and puts into the desired virtual table which is already defined .

FILELIST {directory_path} TO {table_name};
Detayları gösterShow details
ParametrelerParameters

directory_path : the directory path to be listed.

table_name : name of the virtual table that will contain the directory information.

ÖrnekExample
OBJECT: 
 STRING KDEFDOCPATH;

KDEFDOCPATH = '*/home/';
FILELIST KDEFDOCPATH TO DIRLST;
CLEAR TREE DIRTREE;
CLEAR ALL FILELST;

LOOP AT DIRLST 
BEGIN

	IF DIRLST_TYPE == 'DIR' THEN
		MOA = 'M';
		INSERTTREEITEM AT ROOT WITH MOA DIRLST_NAME;
	ELSE
		APPEND ROW TO FILELST;
		MOVE-CORRESPONDING DIRLST TO FILELST;
	ENDIF;

ENDLOOP;
FILLPDFFORMGENERAL

İstenen pdf dosyasını okur ve verilen troia table'ını kullanarak form field'larını verilen yeni bir pdf dosyasına doldurur.

Reads the desired pdf file and fills the form fields using the troia table given into a new pdf file given.

FILLPDFFORM {infilename} WITH {tablename} INTO {outfilename};
Detayları gösterShow details
ParametrelerParameters

infilename = Filename of the input file

tablename = name of the enumeration table created with ENUMERATEPDFFORM

outfilename = Filename of the output file

NotlarRemarks

PDFReader ve PDF object'lerini kullanarak verilen input dosyasını okur ve verilen table'daki data'yı kullanarak form element'lerinin değerlerini ve property'lerini (name, type, value ve readonly) ayarlar ve "outfilename" variable'ında verilen isimde yeni bir dosya çıktısı verir.

Using PDFReader and PDF objects reads the input file given, and using the data in the table given sets the values and properties of the form elements (name,type,value and readonly) and outputs a new file whose name is given in variable "outfilename".

İlgili KomutlarRelated Commands
ENUMERATEPDFFORM
FILLUSERRIGHTSSystem Functions

Verilen dialog'un user right'larını bir virtual table'a doldurur.

Fills user rights of the given dialog to a virtual table.

FILLUSERRIGHTS {dialog_name} {rightstring} TO {table_name};
Detayları gösterShow details
ParametrelerParameters
dialog_name         = name of the dialog
rightstring                 = the string that carries the rights.
table_name                = the virtual table name that the rights will be filled in.
ÖrnekExample
FILLUSERRIGHTS IASDRIGHTS_TRANCODE IASDRIGHTS_LAYOUT TO TMPTAB;
FIRECOMPONENTEVENTComponents

Component'i verilen event ile tetikler.

Triggers the component with a given event.

FIRECOMPONENTEVENT {event_name};
Detayları gösterShow details
NotlarRemarks

Component event isimleri ve listelenme sırası yalnızca ilgili 'custom component'in Actions property'sinde tanımlanabilir. Bu action'ların/event'lerin kodları, o 'custom component'i class'layan dialog üzerindeki 'java component' control'ü ile düzenlenebilir.

Componenet event names and their listing order can be defined only in Actions property of the related 'custom component'.
These actions'/events' codes can be edited by the 'java component' control on a dialog, which control calss that 'custom component'.

ÖrnekExample
/*
-> Define a new 'custom component' by 'New Component' under the 'Component' menu item in the development environment.
-> Place the regular controls which you like, onto that component.
-> You can define special codes into INITIALIZE constant event, which is triggered just alike a dialog BEFORE or AFTER event.
-> Go to the 'Actions' property on the Property Editor and write event names and their listing order, delimiting with semicolon.
    FirstRecord;PreviousRecord;NextRecord;LastRecord;GotoRecord;AutoSearch;CompanyChanged
-> In the control event code of this custom component, such as button click, you can write FIRECOMPONENTEVENT for those events.
-> Go to a dialog to use this component, place a 'java component' and write the custom coponent name to its 'Component' property.
-> When you right-click onto this java component, you will see the action/event list, which you defined on the custom coponent.
-> You can edit the codes in those actions/events codes how you like.
    COMBASD001.BUTTON1.CLICK: 
        FIRECOMPONENTEVENT FirstRecord;
-> When you run the dialog, which has the java component control, you will see the custom component instead of the java component.
-> While you are using the component, you will see the events triggered by your intreractions.
*/

FIRECOMPONENTEVENT FirstRecord;
FIRECOMPONENTEVENT PreviousRecord;
FIRECOMPONENTEVENT NextRecord;
FIRECOMPONENTEVENT LastRecord;
FIRECOMPONENTEVENT GotoRecord;
FIRECOMPONENTEVENT AutoSearch;
FIRECOMPONENTEVENT CompanyChanged;
FIRSTDATEINMONTH()Date Functions

Verilen bir ayın ilk tarihini verir.

Yields the first date of a given month.

FIRSTDATEINMONTH ({month}, {year});
Detayları gösterShow details
ParametrelerParameters

month = Specifies the name of the month varibale. An INTEGER variable type.

year = Specifies the name of the year varibale.

NotlarRemarks

Return Value

DATE.

Year değeri 1970 ile 2030 arasında olmalıdır.

Return Value

DATE.

Year value must be between 1970 and 2030.

ÖrnekExample
OBJECT: 

 STRING YEAR,

 DATE RDATE,

 INTEGER MONTH;



YEAR = '1997';

MONTH = 2;

RDATE = FIRSTDATEINMONTH(MONTH,YEAR);



/*

After FIRSTDATEINMONTH function is executed:



RDATE = '02.01.1997';



which is first date of second month. 

*/
İlgili KomutlarRelated Commands
LASTDATEINMONTH
FLIPIMAGEImage Handling

FLIPIMAGE command'ı, yeni bir image oluşturur ve vertical veya horizontal pozisyonlara göre flip eder. Bu command ayrıca "jpg", "png", "gif" ve "bmp" dosya formatlarını destekler.

FLIPIMAGE command is creating a new image and flipping by positions which are vertical or horizontal.
This command also supports "jpg", "png", "gif" and "bmp" file formats.

FLIPIMAGE {source_file} INTO {destination_file} WITH VERTICAL;
FLIPIMAGE {source_file} INTO {destination_file} WITH HORIZONTAL;
FLIPIMAGE {source_file} INTO {destination_file} WITH HORIZONTAL AND VERTICAL;
FLIPIMAGE {source_file} INTO {destination_file} WITH VERTICAL AND HORIZONTAL;
Detayları gösterShow details
ÖrnekExample
/* Example one : FLIPIMAGE command using to flip verticaly */
OBJECT: 
 STRING STRIMAGESOURCEONE,
 STRING STRIMAGESOURCETWO,
 STRING STRFLIPPEDIMAGE;

STRIMAGESOURCEONE = 'C:\image1.png';
STRIMAGESOURCETWO = 'C:\image2.png';

STRFLIPPEDIMAGEONE = 'C:\newimage1.png';
STRFLIPPEDIMAGETWO = 'C:\newimage2.png';

/* image flipped by vertical position*/
FLIPIMAGE STRIMAGESOURCEONE INTO STRFLIPPEDIMAGEONE WITH VERTICAL;
LOADBITMAP STRFLIPPEDIMAGEONE TO TMPIMAGE1;

/* image flipped by horizontal position*/
FLIPIMAGE STRIMAGESOURCEONE INTO STRFLIPPEDIMAGETWO WITH HORIZONTAL;
LOADBITMAP STRFLIPPEDIMAGETWO TO TMPIMAGE2;


/* Example two : FLIPIMAGE command using to flip verticaly and horizontaly */

OBJECT: 
 STRING STRIMAGESOURCE,
 STRING STRFLIPPEDIMAGE,
 STRIMAGESOURCE = 'C:\image1.png';

STRFLIPPEDIMAGEONE = 'C:\image2.png';
FLIPIMAGE STRIMAGESOURCE INTO STRFLIPPEDIMAGE WITH VERTICAL AND HORIZONTAL;
/*FLIPIMAGE STRIMAGESOURCE INTO STRFLIPPEDIMAGE WITH HORIZONTAL AND VERTICAL;  as same as other one.*/
LOADBITMAP STRFLIPPEDIMAGEONE TO TMPIMAGE
İlgili KomutlarRelated Commands
LOADBITMAP, RESIZEIMAGE, ROTATEIMAGE
FLOOR()Math Functions

Bir değerin floor'unu (taban değerini) hesaplar.

Calculates the floor of a value.

FLOOR ({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value

NotlarRemarks

Return Value

FLOOR function'ı, değere eşit veya değerden küçük olan en büyük integer'ı temsil eden bir DECIMAL değeri döndürür.

Return Value

The FLOOR function returns a DECIMAL value representing the largest integer that is less than or equal to value.

ÖrnekExample
OBJECT: 
 DECIMAL DECV1,
 DECIMAL DECV2;

DECV1 = 2.8;
DECV2 = -2.8;
DECV1 = CEIL(DECV1);
/* DECV1 = 2.00 */
DECV2 = CEIL(DECV2);
 /* DECV2 = -3.00 */
İlgili KomutlarRelated Commands
CEIL
FMOD()Math Functions

Floating-point kalanını hesaplar.

Calculates the floating-point remainder.

FMOD(value1,value2);
Detayları gösterShow details
ParametrelerParameters
value1        =   a  decimal value.
value2        =   a  decimal value.
NotlarRemarks

Return Value

DECIMAL.

FMOD function'ı, x = i * y + f olacak şekilde x / y'nin floating-point kalanı f'yi hesaplar; burada i bir integer'dır, f, x ile aynı işarete sahiptir ve f'nin mutlak değeri y'nin mutlak değerinden küçüktür.

Return Value

DECIMAL.

The FMOD function calculates the floating-point remainder f of x / y such that x = i * y + f, where i is an integer, f has the same sign as x, and the absolute value of f is less than the absolute value of y.

ÖrnekExample
OBJECT: 
 DECIMAL X,
 DECIMAL Y,
 DECIMAL R;

X = 5.00;
Y = 3.00;
R = FMOD(X,Y);
/* R =  2.00 */
FOOTERObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

FORMAT()FUNCTION

Formatlanmış data'yı bir string'e yazar.

Writes formatted data to a string.

FORMAT({picture},{variable1},{variable2},...);
Detayları gösterShow details
ParametrelerParameters

picture = string representing the resulting format (ex '%3s','%15.5f')

variablen = variable that will be formatted ( if the picture ends with s this variable must be string, or if the picture ends with f this

variable must be decimal)

NotlarRemarks

Return Value

String.

FORMAT function'ı, bir dizi karakteri ve değeri formatlar ve bir string'de saklar. Her argument (varsa), format içindeki karşılık gelen format belirtimine göre dönüştürülür ve output edilir. Format, sıradan karakterlerden oluşur. Yazılan son karakterden sonra bir null karakter eklenir. Kopyalama, üst üste binen string'ler arasında gerçekleşirse, davranış tanımsızdır.

Return Value

String.

The FORMAT function formats and stores a series of characters and values in a string. Each argument (if any) is converted and output according to the corresponding format specification in format. The format consists of ordinary characters. A null character is appended after the last character written. If copying occurs between strings that overlap, the behavior is undefined.

ÖrnekExample
OBJECT: 
 STRING FMT;

FMT = '%15.3f';
/* DECIMALVAR1 => 123.434,53 screen field */
STRINGVAR2 = FORMAT(FMT,DECIMALVAR1);
/* result string is =>'     123434.530' */
FREEZEDIAGRAMDiagram

Diagram'ın belirtilen x veya y pozisyonundaki alanının vertical veya horizontal sınırlarını dondurur ve donmuş column'ları kırmızı bir çizgiyle ayırır.

Freezes the vertical or horizontal boundaries on area of specified x or y position of diagram, and seperates frozen columns with a red line.

FREEZEDIAGRAM {diagram_name} <VERTICAL | HORIZONTAL> {position} [<HORIZONTAL | VERTICAL> {position}]  [WITH LINES];
Detayları gösterShow details
ParametrelerParameters
diagram_name   = name of diagram.
position      = an integer value defines the last position to be frozen.

WITH LINES = this option draws lines at the freezing point

ÖrnekExample
FREEZEDIAGRAM DIAGRAM1 VERTICAL 100 HORIZONTAL 100;
FTPCOMMANDFTP Commands

Verilen connection üzerinde farklı görevler gerçekleştirir.

Performs different tasks on given connection.

FTPRUNCOMMAND DELETEDIRECTORY {ftpserverpath} ON {host};
FTPRUNCOMMAND DELETEFILE {ftpserverpath} ON {host};
FTPRUNCOMMAND CHANGEDIRECTORY {ftpserverpath} ON {host};
FTPRUNCOMMAND CREATEDIRECTORY {ftpserverpath} ON {host};
FTPRUNCOMMAND CURRENTDIRECTORY TO {destinationsymbol} ON {host};
FTPRUNCOMMAND FILELIST TO {destinationsymbol} ON {host};
Detayları gösterShow details
ParametrelerParameters

{ftpserverpath} : path in ftp server
{host} : connection id, to specify which server you want to run command on.
{destinationsymbol} : table or string symbol that command writes result of filelist or current directory path.

Currently supported operations are deleting/creating directories, deleting files,
changing working directory (cd), getting working directory path and listing files on working directory.
It is possible to add different functionalities due to requirements.

ÖrnekExample
OBJECT: 
 STRING FTPHOST,
 STRING FTPPASS,
 STRING FTPUSER,
 STRING FTPSERVERPATH,
 STRING DIRNAME,
 TABLE FILESTABLE;

FTPHOST = 'anyftp.com.tr';
FTPUSER = 'user';
FTPPASS = 'password';
DIRNAME = 'myfolder';
MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;

IF SYS_STATUS == 0 THEN
	FTPRUNCOMMAND CHANGEDIRECTORY DIRNAME ON FTPHOST;
	FTPRUNCOMMAND FILELIST TO FILESTABLE ON FTPHOST;

	LOOP AT FILESTABLE 
	BEGIN
		FTPRUNCOMMAND DELETEFILE FILESTABLE_NAME ON FTPHOST;
	ENDLOOP;

ENDIF;

CLOSEFTPCONNECTION FTPHOST;
İlgili KomutlarRelated Commands
MAKEFTPCONNECTION, CLOSEFTPCONNECTION, FTPUPLOAD, FTPDOWNLOAD
FTPDOWNLOADFTP Commands

Verilen ftp server path'indeki dosyayı, verilen connection üzerinde local path'e indirir.

Downloads file on given ftp server path to local path, on given connection.

FTPDOWNLOAD {ftpserverpath} TO {localpath} FROM {host};
Detayları gösterShow details
ParametrelerParameters

{ftpserverpath} : FTP Server File path, originated from working directory.
{localpath} : File path on ApplicationServer side. File paths for client side (starts with *) are not valid for ftp operations. Programmer must transfer files to Application Server, firstly.
{host} : Connection id, to specify which server you want to download from. (It is possible to create multiple session at the same time)

Invalid local path … : local path is empty string or client side path (starts with *)
Invalid ftp server path: remote file path is empty string
There is not a ftp connection to host … : invalid connection id, invalid host. Check your connection is open.
Permission failure: check ftp user rights, whether user have required privileges to download file.

ÖrnekExample
OBJECT: 
 STRING FTPHOST,
 STRING FTPPASS,
 STRING FTPUSER,
 STRING LOCALPATH,
 STRING FTPSERVERPATH;

FTPHOST = 'anyftp.com.tr';
FTPUSER = 'user';
FTPPASS = 'password';
FTPSERVERPATH = 'file.xml';
LOCALPATH = 'TempFiles\file.xml';

MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;

IF SYS_STATUS == 0 THEN
	FTPDOWNLOAD FTPSERVERPATH TO LOCALPATH FROM FTPHOST;
ENDIF;

CLOSEFTPCONNECTION FTPHOST;
İlgili KomutlarRelated Commands
MAKEFTPCONNECTION, CLOSEFTPCONNECTION, FTPUPLOAD, FTPCOMMAND
FTPUPLOADFTP Commands

Verilen dosyayı working directory'ye yükler. Remote dosyanın ismi, local dosyanın ismiyle aynıdır.

Uploads given file to working directory. Remote file’s name is same with local file’s name.

FTPUPLOAD {localpath} TO {host};
Detayları gösterShow details
ParametrelerParameters

{localpath} : File path on Application Server side. Files on client side (path starts with *) cannot be transferred file server directly. Programmer must transfer client files to application server.
{host} : Connection id, to specify which server you want to upload to. (It is possible to create multiple session at the same time)

Invalid local path … : local path is empty string or client side path (starts with *)
There is not a ftp connection to host … : invalid connection id, invalid host. Check your connection is open.
Permission failure: check ftp user rights, whether user have required privileges to upload file.

ÖrnekExample
OBJECT: 
 STRING FTPHOST,
 STRING FTPPASS,
 STRING FTPUSER,
 STRING LOCALPATH,
 STRING FTPSERVERPATH;

FTPHOST = 'anyftp.com.tr';
FTPUSER = 'user';
FTPPASS = 'password';
FTPSERVERPATH = 'file.xml';

MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;

IF SYS_STATUS == 0 THEN
	FTPUPLOAD LOCALPATH TO FTPHOST;
ENDIF;

CLOSEFTPCONNECTION FTPHOST;
İlgili KomutlarRelated Commands
MAKEFTPCONNECTION, CLOSEFTPCONNECTION, FTPDOWNLOAD, FTPCOMMAND
GCDMath Functions

Matematikte, iki sayının GCD'si (greatest common divisor, en büyük ortak bölen), her iki sayıyı da kalansız tam olarak bölen en büyük pozitif integer'dır. Bu yüzden GCD function'ı, Euclid algoritmasını kullanarak çalışır. Bu function ile kullanıcılar 2'den fazla değer verebilir. Ancak yalnızca INTEGER ve LONG type'ındaki variable'ları destekler. Bu algoritmada, kullanıcının verdiği input'larda 0 (sıfır) sayısı varsa, 0 input yok sayılır.

In mathematics, GCD (greatest common divisor) of two numbers is the largest positive integer that divides both the numbers fully i.e. without any remainder.
So GCD function works for it using Euclid's algorithm. With this function, users can give more than 2 values.
However, only supports variables of type INTEGER and LONG.
In this algorithm, is there any 0 (zero) number in inputs which gives by user, then 0 input is ignoring.

GCD( {value1} , {value2} );
GCD( {value1} , {value2} , {value3} ,  {value4} );
Detayları gösterShow details
ÖrnekExample
OBJECT

LONG NO1,

LONG NO2,

LONG RESULT1,

LONG RESULT2,

LONG RESULT3;



NO1 = 50;

NO2 = 200;

RESULT1 = GCD(NO1, NO2); /* greatest common divisor is 50 for N01 and N02 numbers*/



RESULT2 = GCD(NO1, NO2, 25, 15, 5, 10); /* greatest common divisor is 5 for them*/



RESULT3 = GCD(NO1, NO2, 25, 15, 5, 10, 0); /* greatest common divisor is 5 for them. 0 is ignoring in GCD function*/
İlgili KomutlarRelated Commands
LCM
GENERATEUUID()FUNCTION

Universal unique bir id üretir. Parametresiz kullanıldığında version 4 (Random) UUID'ler üretir. Bir string parametresiyle kullanıldığında version 3 (name based) UUID'ler üretir.

Generates a universal unique id. When used without a parameter, generates version 4 (Random) UUIDs. When used with a string parameter, generates version 3 (name based) UUIDs.

GENERATEUUID ();

GENERATEUUID ({string_name});
Detayları gösterShow details
ParametrelerParameters

string_name = used to generate version 3 type UUIDs.

NotlarRemarks

Return Value

STRING.

Return Value

STRING.

ÖrnekExample
OBJECT : STRING STRUUID, STRING REFNAME; 

STRUUID =  GENERATEUUID();

REFNAME = 'various text or object name';

STRUUID =  GENERATEUUID(REFNAME);
GETFile

Açık file handle'dan bilgi okur.

Reads information from open file handle.

GET {variable_list} [CODEPAGE codepage];
Detayları gösterShow details
ParametrelerParameters

variable_list : any type of variable

codepage : codepage of the data

ÖrnekExample
OBJECT: 
 STRING X,
 INTEGER Y;

OPEN FILE 'C:\TMP\xxx.txt';
GET X,Y;
CLOSE FILE;
İlgili KomutlarRelated Commands
PUT
GETACTIVEDIALOGCAPTION()FUNCTION

Active dialog caption'ını döndürür.

Returns the the active dialog caption.

GETACTIVEDIALOGCAPTION();
Detayları gösterShow details
NotlarRemarks

Dialog caption'ını system language'de döndürür.

Returns the dialog caption in the system language.

GETACTIVETAB()FUNCTION

Mevcut multi-type dialog'daki active tab button ismini döndürür.

Returns the active tab button name on the current multi-type dialog.

GETACTIVETAB();
Detayları gösterShow details
ParametrelerParameters

Returns the tab button name in string type.

GETBLOCKFile

Açık file handle'dan bilgi okur. Verilen delimiter'ın altındaki data'yı alır.

Reads information from open file handle. Gets the data beneath the given delimiter.

GETBLOCK [CODEPAGE codepage] {string_var},{delimiter};
Detayları gösterShow details
ParametrelerParameters

string_var : the string variable that the block will be put.

delimiter : the delimiter that the data block has.

codepage : codepage of the data

ÖrnekExample
OBJECT: 
 STRING X,
 STRING Y;

OPEN FILE 'C:\TMP\xxx.txt';
Y = TOCHAR(59);
GETBLOCK X,Y;
CLOSE FILE;
İlgili KomutlarRelated Commands
PUT GET
GETCHARCODE()FUNCTION

Verilen string'in ilk karakterinin character code'unu döndürür.

Returns the character code of the first char of the given string.

GETCHARCODE ({string});
Detayları gösterShow details
ParametrelerParameters

string = Specifies the name of the string which holds the character value.

NotlarRemarks

Return Value

Integer:

Verilen string'in ilk karakterinin character code'unu döndürür.

Return Value

Integer:

Returns the character code of the first char of the given string.

ÖrnekExample
OBJECT: 
 STRING S,
 INTEGER I;

S = 'A';
I = GETCHARCODE(S);
/* It will be assigned 65... */
İlgili KomutlarRelated Commands
TOCHAR
GETCHECKSUM()FUNCTION

İstenen string variable'ın checksum'ını döndürür.

Returns the checksum of the desired string variable.

GETCHECKSUM({variable1});
Detayları gösterShow details
ParametrelerParameters

variable1 = A string sequence

NotlarRemarks

Return Value

Integer:

Verilen string'in character checksum'ını döndürür.

Return Value

Integer:

Returns the character checksum of the given string.

ÖrnekExample
OBJECT: STRING S, INTEGER I;

S = 'ABCKDJEKŞJŞKFDA';

I = GETCHECKSUM(S);
GETCLIPBOARDBasic Troia

Client'ın mevcut clipboard değerini verilen symbol'e atar.

Set's client current clipboard value to given symbol.

GETCLIPBOARD TO {variable};
Detayları gösterShow details
ParametrelerParameters

{variable} : destination symbol.

ÖrnekExample
OBJECT: 
 STRING STR;

/* STR's value is set to client's clipboard value */
GETCLIPBOARD TO STR;
İlgili KomutlarRelated Commands
SETCLIPBOARD
GETCONTROLPROPERTY()FUNCTION

İstenen dialog üzerindeki bir control'ün property değerini döndürür.

Returns the property value of a control on the desired dialog

GETCONTROLPROPERTY({variable1},{variable2},{variable3});
Detayları gösterShow details
ParametrelerParameters

variable1 = Name of the dialog

variable2 = Name of the control

variable3 = Name of the property (Left, Top, Width, Height, Caption, Captions, FYI, Disabled,Visible)

NotlarRemarks

Return Value

String:

İstenen control property'sinin değerini döndürür.

Return Value

String:

Returns the value of the desired control property.

GETDATE()Date Functions

Verilen variable'dan date değerini döndürür.

Returns the date value from the given variable.

GETDATE {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the datetime varibale. A DATETIME variable type.

NotlarRemarks

Return Value

String:

Format bir DATE variable type'ıdır.

Return Value

String:

Format is a DATE variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.02.1996 15.45';

DY = GETDATE(DT);

STR1 = GETDATE(DT);



/*

Before GETDATE function is executed:



DT = '01.02.1996 15.45'

DY = '01.02.1996'

STR1 = '01.02.1996'



After GETDATE function is executed:



DT = '01.02.1996 15.45'

DY = NULL

STR1 = NULL

*/
İlgili KomutlarRelated Commands
GETDAY,GETMONTH,GETYEAR,GETTIME,GETHOUR,GETMINUTE
GETDATEFROMWEEK()Date Functions

Verilen hafta sırasına göre yılın hafta başlangıç tarihini alır.

Gets the begining date of week in year with respect to given week sequence.

GETDATEFROMWEEK ({week_value}, {year_value});
Detayları gösterShow details
ParametrelerParameters

week_value = an integer value specifying week sequence.

year_value   = specifies the year.
NotlarRemarks

Return Value

String:

Format bir DATE'dir.

Return Value

String:

Format is a DATE.

ÖrnekExample
OBJECT: 
 STRING YEAR,
 INTEGER WEEK,
 DATE RESULT;

YEAR = '1997';
WEEK = 11;
RESULT = GETDATEFROMWEEK(WEEK,YEAR);
/* After GETDATEFROMWEEK function is executed: */
RESULT = '03.10.1997';
/* which is the begining date of 11st week in year 1997. */
İlgili KomutlarRelated Commands
GETDAYOFWEEK
GETDAY()Date Functions

Verilen variable'dan day değerini döndürür.

Returns the day value from the given variable.

GETDAY {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Remarks

Geçersiz (odd) bir variable durumunda mevcut gün döndürülür.

Return Value

Integer.

Remarks

In case of an odd variable current day is returned.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.01.1996 15.45';

D   = '01.01.1996';

V1  = GETDAY(DT);

V2  = GETDAY(D);



 /* Before GETDAY function is executed:



DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 0

V2        = 0



After GETDAY function is executed: 

DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 1

V2        = 1

*/
İlgili KomutlarRelated Commands
GETDATE,GETMONTH,GETYEAR,GETTIME,GETHOUR,GETMINUTE
GETDAYDIFF()Date Functions

İki gün arasındaki farkı bulur.

Finds the difference between two days.

GETDAYDIFF({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1 , variable2 = specifies the name of DATE variables

NotlarRemarks

Return Value

Integer.

Return Value

Integer.

ÖrnekExample
OBJECT: 
 DATE D2,
 DATE D1,
 INTEGER RESULT;

D2 = '25.12.2002';
D1 = '15.12.2002';
RESULT = GETDAYDIFF(D1,D2);
 /* result => 10 */
GETDAYOFWEEK()Date Functions

Local time'a göre haftanın gününü döndürür; 1 = Pazartesi, 2 = Salı, ..., 7 = Pazar.

Returns the day of the week based on local time; 1 = Monday, 2 = Tuesday, ..., 7 = Sunday.

GETDAYOFWEEK ({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date variable. A STRING or DATE variable type.

NotlarRemarks

Return Value

1 ile 7 arasında bir Integer.

Verilen tarihin yılı 1970 ile 2030 arasında olmalıdır.

Return Value

an Integer. between 1 and 7.

Year of given date must be between 1970 and 2030.

ÖrnekExample
OBJECT: 

 STRING STR1,

 INTEGER V;



STR1 = '29.08.1997';

V = GETDAYOFWEEK(STR1);

 /*

After GETDAYOFWEEK function is executed:



V = 6 

which refers to SATURDAY

*/
İlgili KomutlarRelated Commands
GETDATEFROMWEEK
GETDAYOFYEAR()Date Functions

Local time'a göre yılın gününü döndürür.

Returns the day of the year based on local time.

GETDAYOFYEAR({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the name of Date variable.

NotlarRemarks

Return Value

Integer.

Return Value

Integer.

ÖrnekExample
OBJECT: 
 DATE D2,
 INTEGER RESULT;

D2 = '25.12.2002';
RESULT = GETDAYOFYEAR(D2);
INTEGERVAR1 = RESULT;
 /* result =>359 */
GETDBDATESTR()Date Functions

Bir datetime symbol'ünün string type değerini döndürür.

Returns string type value of a datetime symbol.

GETDBDATESTR(datetime_value);
Detayları gösterShow details
ParametrelerParameters

datetime_value = DateTime type variable to convert.
Returns string type symbol of the datetime value.

NotlarRemarks

Döndürülen string değer, system info'da tanımlanan database date format'ına sahiptir.

The returned string value has the date format of database date format defined in the system info.

GETDIGEST()String Manipulation

Verilen digesting algoritması için, verilen herhangi bir text parametresinin hash code'unu döndürür.

Returns the hash code of any given text parameter for given digesting algoritm.

GETDIGEST({text},{algorithm});
Detayları gösterShow details
ParametrelerParameters

text = Source text to be digested

algorithm = digest algorithm

NotlarRemarks

Return Value

String:

Verilen digesting algoritması için, verilen herhangi bir text parametresinin Hashcode'unu döndürür.

Return Value

String:

Returns the Hashcode of any given text parameter for given digesting algoritm.

GETDLGFIELDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GETDONGLEINFO()System Functions

Server tarafındaki dongle hakkında bilgi sağlar.

Provides information about the serverside dongle.

GETDONGLEINFO({donglevariable});
Detayları gösterShow details
ParametrelerParameters

donglevariable = the property name in the dongle

All Dongle Variables:

Active-Properties:
'customer_number', 'dongle_licence_count', 'licence_expire_date', 'licence_module_list',
'maintenance_end_date', 'maintenance_type', 'server_current_connector_user_count',
'server_current_user_count', 'server_max_connector_user_count', 'server_max_user_count',
'system_owner'...

Under-Construction: 
'connector_licence_count', 'connector_reserved_licence_count', 'dongle_reserved_licence_count'...
NotlarRemarks

Return Value: String.
İstenen dongle property'sinin değerini döndürür.

Return Value
: String
.
Returns the value of the requested dongle property.

ÖrnekExample
OBJECT: 
 INTEGER CONNLICCOUNT,
 INTEGER CONNRSVLICCOUNT,
 INTEGER DNGLRSVLICCOUNT,
 STRING CUSTNO,
 INTEGER DNGLLICCOUNT,
 DATE LICEXPRDATE,
 STRING LICMODLST,
 DATE MAINTENDDATE,
 STRING MAINTTYPE,
 INTEGER SRVCURRCONNUSRCOUNT,
 INTEGER SRVCURRUSRCOUNT,
 INTEGER SRVMAXCONNUSRCOUNT,
 INTEGER SRVMAXUSRCOUNT,
 STRING SYSOWN;


/* Active Properties */
CUSTNO = GETDONGLEINFO('customer_number');
DNGLLICCOUNT = GETDONGLEINFO('dongle_licence_count');
LICEXPRDATE = GETDONGLEINFO('licence_expire_date');
LICMODLST = GETDONGLEINFO('licence_module_list');
MAINTENDDATE = GETDONGLEINFO('maintenance_end_date');
MAINTTYPE = GETDONGLEINFO('maintenance_type');
SRVCURRCONNUSRCOUNT = GETDONGLEINFO('server_current_connector_user_count');
SRVCURRUSRCOUNT = GETDONGLEINFO('server_current_user_count');
SRVMAXCONNUSRCOUNT = GETDONGLEINFO('server_max_connector_user_count');
SRVMAXUSRCOUNT = GETDONGLEINFO('server_max_user_count');
SYSOWN = GETDONGLEINFO('system_owner');
 
/* Under-Construction
CONNLICCOUNT = GETDONGLEINFO('connector_licence_count');
CONNRSVLICCOUNT = GETDONGLEINFO('connector_reserved_licence_count');
DNGLRSVLICCOUNT = GETDONGLEINFO('dongle_reserved_licence_count');
*/

STRINGVAR3 = '';

/* Active Properties */
STRINGVAR3 = 'customer_number: ' + CUSTNO;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'dongle_licence_count: ' + DNGLLICCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'licence_expire_date: ' + LICEXPRDATE;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'licence_expire_date: ' + LICMODLST;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'maintenance_end_date: ' + MAINTENDDATE;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'maintenance_type: ' + MAINTTYPE;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'server_current_connector_user_count: ' + SRVCURRCONNUSRCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'server_current_user_count: ' + SRVCURRUSRCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'server_max_connector_user_count: ' + SRVMAXCONNUSRCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'server_max_user_count: ' + SRVMAXUSRCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'system_owner: ' + SYSOWN;

/* Under-Construction
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'connector_licence_count: ' + CONNLICCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'connector_reserved_licence_count: ' + CONNRSVLICCOUNT;
STRINGVAR3 = STRINGVAR3 + TOCHAR(10) + 'dongle_reserved_licence_count: ' + DNGLRSVLICCOUNT; 
*/
GETELEMENTVector

Vector element'ini verilen variable'a döndürür.

Returns vector element to the given variable.

GETELEMENT {index} OF {vector} TO {variable};
Detayları gösterShow details
ParametrelerParameters

index = index number of the element.

GETENTITYCLASSNAMEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GETENTITYCOORDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GETENTITYNAMEDiagram

Bir diagram'daki bir entity'nin ismini bir string variable'a koyar.

Puts the name of an entity in a diagram into a string variable.

GETENTITYNAME ON {diagram} INTO {symbol};
Detayları gösterShow details
ParametrelerParameters
diagram         = name of the diagram control
symbol                 = name of the string variable that the entity name will be put.
ÖrnekExample
OBJECT: STRING CONTROL;



GETENTITYNAME ON DIAGRAM1 INTO CONTROL;
GETEXTERNALVARIABLE()System Functions

Server settings dosyasında tanımlanan variable'ın değerini döndürür.

Returns the value of the variable defined in server settings file.

GETEXTERNALVARIABLE({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = name representing the variable defined in server configuration file.

NotlarRemarks

Return Value

String.

Return Value

String.

GETFIRSTENTITYNAMEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GETHOLIDAYS()Date Functions

Bir date interval'ında herhangi bir tatil olup olmadığını döndürür ve bu tatilleri verilen bir table'a doldurur.

Returns whether any holiday exists in a date interval and fills those holidays into a given table.

GETHOLIDAYS(company_code,plant_code,work_center,start_date,finish_date,target_table);
Detayları gösterShow details
ParametrelerParameters

company_code = Company code to check the holidays.
plant_code = Any plant code of that company.
work_center = Any work center of that company plant.
start_date = Start date of a date interval to list the holidays.
finish_date = Finish date of a date interval to list the holidays.
target_table = Target table name in string format, to fill the holidays as list.

NotlarRemarks

Work calendar'ları parametrelere göre kontrol eder.
Herhangi bir tatil bulunursa integer 1, aksi halde integer 0 döndürür.

Checks the work calenders according to the parameters.
Returns integer 1 in case finding any holiday, otherwise returns integer 0.

GETHOUR()Date Functions

Verilen variable'dan hour değerini döndürür.

Returns the hour value from the given variable.

GETHOUR {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Geçersiz (odd) bir variable durumunda 12 döndürülür.

Return Value

Integer.

In case of an odd variable 12 is returned.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.01.1996 15.45';

T    = '15.45';

V1  = GETHOUR(DT);

V2  = GETHOUR(T);



/*

Before GETHOUR function is executed:



DT       = '01.02.1996 15.45'

T          = '15.45'

V1        = 0

V2        = 0



After GETHOUR function is executed:



DT       = '01.02.1996 15.45'

T         = '15.45'

V1        = 15

V2        = 15

*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETYEAR,GETTIME,GETMINUTE
GETIMAGEHEIGHT()Image Handling

Image yüksekliğini piksel olarak döndürür.

Returns the image height in pixels.

GETIMAGEHEIGHT(image_path);
Detayları gösterShow details
ParametrelerParameters

image_path = Full path of the image.

NotlarRemarks

Piksel değerini integer olarak döndürür.

Returns pixels in integer.

İlgili KomutlarRelated Commands
GETIMAGEWIDTH()
GETIMAGEWIDTH()Image Handling

Image genişliğini piksel olarak döndürür.

Returns the image width in pixels.

GETIMAGEWIDTH(image_path);
Detayları gösterShow details
ParametrelerParameters

image_path = Full path of the image.

NotlarRemarks

Piksel değerini integer olarak döndürür.

Returns pixels in integer.

İlgili KomutlarRelated Commands
GETIMAGEHEIGHT()
GETLASTTESTRESULT()Testing

Son testin sonucunu döndürür.

Returns the result of the last test.

GETLASTTESTRESULT();
Detayları gösterShow details
NotlarRemarks

Returns
Integer: Test sonucuna göre 0 veya 1 döndürür.

Returns

Integer:

Returns 0 or 1 according to the test result.

GETLINE()FUNCTION

Source string'de belirtilen karakter sayısını döndürür.

Returns the declared number of characters in source string.

GETLINE ({string_source}, {variable});
Detayları gösterShow details
ParametrelerParameters

string_source = Specifies the name of the main string where the second string will be searched in.

variable          = an integer variable name.
NotlarRemarks

String:

Yeni string'i döndürür.

String:

Returns the new string.

ÖrnekExample
OBJECT: 

 STRING MAINSTR,

 STRING STR,

 STRING KSTR,

 INTEGER R,

 INTEGER K;



MAINSTR = 'How old are you?';

/* R = 6; */

STR = GETLINE(MAINSTR,R);

/* K = 50; */

KSTR = GETLINE(MAINSTR,K);

/* After GETLINE function is executed: */ 

STR = 'How';

KSTR = 'How old are you?';

 /*

first 6 characters of STR is 'How ol', however Getline function does take a whole word. 

So it leaves the word 'old'. (There is a blank character between -how- and -old-)

for the second one since K > STRLEN(MAINSTR), entire string is returned.

*/
GETMAILBOXMail

Mail'leri mail server'dan getirir ve istenen table'a listeler.

Fetches the mails from the mail server and lists them into the desired table.

GETMAILBOX INTO TABLENAME [STARTFROM start_value];
Detayları gösterShow details
ParametrelerParameters

TABLENAME : is a virtual table.

start_value = the starting number of the mails.

NotlarRemarks

Virtual table önce temizlenir, ardından mail hesabının INBOX folder içeriğiyle doldurulur...

The virtual table will be cleared first and then will be filled with mail accounts INBOX folder contents...

ÖrnekExample
OBJECT : STRING PROTOCOL;

PROTOCOL = 'pop3';

MAILLOGON 192.168.0.9 fahrit f23df2 PROTOCOL;

GETMAILBOX INTO TMPTABLE;

MAILLOGOFF;
İlgili KomutlarRelated Commands
MAILLOGON MAILLOGOFF GETMAILDATA SETMAILFLAG
GETMAILDATAMail

BODY, HTMLBODY ve ATTACHMENTS'ı mail server'dan istenen table'a getirir.

Fetches the BODY, HTMLBODY and ATTACHMENTS from the mail server into the desired table.

GETMAILDATA TO TABLENAME [WITH REMOVE];
Detayları gösterShow details
ParametrelerParameters

TABLENAME: is the mail table name which is filled before with GETMAILBOX command.

WITH REMOVE option = the mail will be deleted after fetching the data.

NotlarRemarks

Mail table'ının active row'unu getirir.

Fetches the active row of the mail table.

ÖrnekExample
OBJECT : STRING PROTOCOL;

PROTOCOL = 'pop3';

MAILLOGON 192.168.0.9 fahrit f23df2 PROTOCOL;

GETMAILBOX INTO TMPTABLE;

GETMAILDATA TO TMPTABLE;

MAILLOGOFF;
İlgili KomutlarRelated Commands
MAILLOGON MAILLOGOFF GETMAILBOX SETMAILFLAG
GETMINUTE()Date Functions

Verilen variable'dan minute değerini döndürür.

Returns the minute value from the given variable.

GETMINUTE {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Geçersiz (odd) bir variable durumunda 0 döndürülür.

Return Value

Integer.

In case of an odd variable 0 is returned.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.01.1996 15.45';

T   = '15.45';

V1  = GETMINUTE(DT);

V2  = GETMINUTE(T);



/* 

Before GETMINUTE function is executed:



DT       = '01.02.1996 15.45'

T          = '15.45'

V1        = 0

V2        = 0



After GETMINUTE function is executed:



DT       = '01.02.1996 15.45'

T         = '15.45'

V1        = 45

V2        = 45

*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETYEAR,GETTIME,GETHOUR
GETMINUTEDIFF()Date Functions

Verilen time parametreleri arasındaki farkı hesaplar.

Calculates the difference between given time parameters.

GETMINUTEDIFF({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1 = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

variable2 = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Dakika cinsinden fark.

Return Value

Integer.

Difference in minutes.

ÖrnekExample
OBJECT:  DATETIME DT, DATETIME DTY,

                 INTEGER V1;



DT = '01.01.1996 15:45';

DTY = '01.01.1996 15:48';

V1  = GETMINUTEDIFF(DT,DTY);
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETYEAR,GETTIME,GETHOUR,GETMINUTE
GETMODULERIGHT()System Functions

Henüz implement edilmemiştir. Bir sistemin, takılı dongle'da module'e erişim hakkına sahip olup olmadığını belirler.

It has not been implemented yet. Determines a system to have the right in the plugged dongle, to access to the module.

GETMODULERIGHT(module_code);
Detayları gösterShow details
ParametrelerParameters

module_code = The module code to check the right.

NotlarRemarks

Returns Integer Value

Module right'ına göre 0 veya 1 döndürür.

Returns Integer Value

Returns 0 or 1 according to the module right.

ÖrnekExample
OBJECT: 
 STRING S,
 INTEGER V1;

S = 'BAS';
V1 = GETMODULERIGHT(S);
İlgili KomutlarRelated Commands
GETDONGLEINFO()
GETMONTH()Date Functions

Verilen variable'dan month değerini döndürür.

Returns the month value from the given variable.

GETMONTH {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Return Value

Integer.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.01.1996 15.45';

D   = '01.01.1996';

V1  = GETMONTH(DT);

V2  = GETMONTH(D);



/*

Before GETMONTH function is executed:



DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 0

V2        = 0



After GETMONTH function is executed:



DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 2

V2        = 2

*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETYEAR,GETTIME,GETHOUR,GETMINUTE
GETNEXTENTITYNAMEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GETNEXTLINE()String Manipulation

Bir text'ten sonraki satırı istenen variable'a ayarlar.

Sets the next line from a text into the desired variable.

GETNEXTLINE({text},{variable_name});
Detayları gösterShow details
ParametrelerParameters

text = string or text to be parsed

variable_name = target variable which the line will be stored.

NotlarRemarks

Return Value

Integer.

Döndürülecek bir satır varsa 1, bir hata oluşursa veya başka satır yoksa 0 döndürür.

Return Value

Integer.

Returns1 if there is a line to be returned, returns 0   if an error occurs or no more lines exists.
ÖrnekExample
OBJECT: 

 STRING MAINSTR;



MAINSTR = 'How old are you?';

MAINSTR = MAINSTR + TOCHAR(10) + 'What is your name?';

MAINSTR = MAINSTR + TOCHAR(10) + 'Where are you from?';



INTEGERVAR1 = GETNEXTLINE(MAINSTR,STRINGVAR1);



/* STRINGVAR1 => Howold are you? */
GETPARAMGENERAL

Setget parametresinin değerini istenen symbol'e ayarlar.

Sets the value of the setget parameter into the desired symbol.

GETPARAM sgpid TO symbol;
Detayları gösterShow details
ParametrelerParameters
sgpid         = the name of the setget parameter
symbol        = the name of the symbol that the value will be set.
ÖrnekExample
OBJECT :

STRING VAL;



GETPARAM COM TO VAL;
GETSELECTEDRANGETable

İstenen table için table selection'ıyla SYSSELECTEDCOLUMNS ve SYSRANGE global table'larını oluşturur ve/veya doldurur.

Creates and/or fills in SYSSELECTEDCOLUMNS and SYSRANGE global tables with the table selection for the desired table.

GETSELECTEDRANGE FROM {tablename};
Detayları gösterShow details
ParametrelerParameters

tablename = name of the destination table

NotlarRemarks

Table copy paste action'larında kullanılır.

Used in table copy paste actions.

GETSET1X()Chart

Verilen point index'ine göre chart'taki data-set1 ve data-set2'nin x değerini alır.

Get the x value of the data-set1 and data-set2 on chart according to the given point index.

GETSET1X   ({chartname}, {point});

       SET2
Detayları gösterShow details
ParametrelerParameters

chartname = chart control name.

point             = point index of data.
NotlarRemarks

CANIAS'ta kullanılmaz. GETSETXVAL command'ına bakın.

Not used in CANIAS. Refer to command GETSETXVAL .

İlgili KomutlarRelated Commands
GETSETXVAL
GETSET1Y()Chart

Verilen set ve point index'ine göre chart'taki data-set1 ve data-set2'nin y değerini alır.

Get the y value of the data-set1 and data-set2 on chart according to the given set and point index.

GETSET1Y   ({chartname}, {set},{point});

       SET2
Detayları gösterShow details
ParametrelerParameters

chartname = chart control name.

set               = set index of data. 
point               = point index of data.
NotlarRemarks

CANIAS'ta kullanılmaz. GETSETYVAL command'ına bakın.

Not used in CANIAS. Refer to command GETSETYVAL .

İlgili KomutlarRelated Commands
GETSETYVAL
GETSETXVALChart

Chart'taki bir noktanın x değerini alır.

Gets the x value of a point in chart.

GETSETXVAL {control} {set} {point} INTO {value};
Detayları gösterShow details
ParametrelerParameters

control = name of the chart control

set = set 1 or set2

point = point in the selected set

value = the variable that will hold the result

NotlarRemarks

Integer:

Data'nın x değerini döndürür.

Integer:

Returns the x value of data.

ÖrnekExample
GETSETXVAL CHRT SET1 PT INTO DECVAR;
İlgili KomutlarRelated Commands
GETSETYVAL
GETSETYVALChart

Chart'taki bir noktanın y değerini alır.

Gets the y value of a point in chart.

GETSETYVAL {control} {set} {series} {pt} INTO {variable};
Detayları gösterShow details
ParametrelerParameters

control = name of the chart control

set = set 1 or set2

series = the series index in the given set

point = point in the selected series

variable = variable that holds the result

NotlarRemarks

Integer:

Data'nın y değerini döndürür.

Integer:

Returns the y value of data.

ÖrnekExample
GETSETYVAL CHRT SET1 SYSSET PT INTO INTVAR;
İlgili KomutlarRelated Commands
GETSETXVAL
GETSMSMESSAGESMS

İstenen sms mesajını bir TROIA table'ına getirir.

Retrieves the desired sms message into a TROIA table.

GETSMSMESSAGE {msgid} TO {tablename};
Detayları gösterShow details
ParametrelerParameters

msgid = the message to be retrieved

tablename = the table to be filled with message data

NotlarRemarks

Canias SMS Gateway'e bağlanır ve Message ID'si verilen mesajın durumunu, verilen table'a getirir. Table format'ı şu column'ları içermelidir, var olmayan column'lar table'a eklenir: MESSAGEID (LONG), SENDER (STRING), RECIPIENT (STRING), SMSC (STRING), STATUS (STRING), POSEDAT (DATETIME), TRIES (INTEGER), PORT (STRING), SENTAT (DATETIME), ACKEDAT (DATETIME), RECEIVEDAT (DATETIME), TEXT (STRING), QUEUE (STRING). Canias SMS Gateway'e bağlanırken herhangi bir connection error oluşursa SYS_STATUS ve SYS_STATUSERROR variable'larını günceller.

Connects to the Canias SMS Gateway and retrieves the status of message,

whose Message ID is given, into the table given. Table format should contain

following columns, where nonexisting columns will be added to the table :

Column Type

MESSAGEID LONG

SENDER	   STRING

RECIPIENT STRING

SMSC       STRING
STATUS     STRING
POSEDAT    DATETIME
TRIES      INTEGER
PORT       STRING
SENTAT     DATETIME
ACKEDAT    DATETIME

RECEIVEDAT DATETIME

TEXT       STRING
QUEUE      STRING

Updates SYS_STATUS and SYS_STATUSERROR variables if any connection error occurs while connecting to CANIAS SMS Gateway.

İlgili KomutlarRelated Commands
SENDSMSMESSAGE GETSMSQUEUE REMOVESMSMESSAGE
GETSMSQUEUESMS

SMS connector'a erişir, message queue'yu alır ve verilen table'a koyar.

Accesses the SMS connector, gets the message queue and puts it into the given table.

GETSMSQUEUE {queuename} TO {tablename};
Detayları gösterShow details
ParametrelerParameters

queuename = Name of the SMS queue

tablename = the destination table to be filled.

NotlarRemarks

Canias SMS Gateway'e bağlanır ve queuename'i verilen queue'daki mesajların durumunu, verilen table'a getirir. Table format'ı şu column'ları içermelidir, var olmayan column'lar table'a eklenir: MESSAGEID (LONG), SENDER (STRING), RECIPIENT (STRING), SMSC (STRING), STATUS (STRING), POSEDAT (DATETIME), TRIES (INTEGER), PORT (STRING), SENTAT (DATETIME), ACKEDAT (DATETIME), RECEIVEDAT (DATETIME), TEXT (STRING), QUEUE (STRING). Mevcut queue isimleri: incomingp (birden fazla parçalı ve tüm parçaları henüz alınmamış text mesajlar), incoming (alınan mesajlar), outgoing (gönderilecek mesajlar), processing (şu anda işlenmekte olan mesajlar), sent (gönderilen mesajlar, ancak acknowledgement'ları henüz alınmamış), delivered (gönderilen mesajlar, acknowledgement'ları alınmış veya acknowledgement'lar devre dışı), failed (bir dizi denemeden sonra gönderilemeyen mesajlar, settings dosyasında tanımlanır). Canias SMS Gateway'e bağlanırken herhangi bir connection error oluşursa SYS_STATUS ve SYS_STATUSERROR variable'larını günceller.

Connects to the Canias SMS Gateway and retrieves the status of messages

in the queue, whose queuename is given, into the table given. Table format

should contain following columns, where nonexisting columns will be added

to the table :

Column                Type

MESSAGEID LONG

SENDER           STRING

RECIPIENT STRING

SMSC       STRING
STATUS     STRING
POSEDAT    DATETIME
TRIES      INTEGER
PORT       STRING
SENTAT     DATETIME
ACKEDAT    DATETIME

RECEIVEDAT DATETIME

TEXT       STRING
QUEUE      STRING

Available queue names are :

incomingp : splitted textmessages that contain more than one part and all parts are not received yet

incoming : received messages

outgoing : messages to be sent

processing : messages currently on process

sent : messages sent (but acknowledgements are not received yet)

delivered : messages sent (and acknowledgements are received or acknowledments are disabled)

failed : messages could not be sent after a number of tries (edined in settings file)

Updates SYS_STATUS and SYS_STATUSERROR variables if any connection error occurs while connecting to CANIAS SMS Gateway.

İlgili KomutlarRelated Commands
GETSMSMESSAGE SENDSMSMESSAGE REMOVESMSMESSAGE
GETTHEMEVARIABLE()FUNCTION

İstenen theme variable'ını döndürür.

Returns the desired theme variable.

GETTHEMEVARIABLE(theme_variable_name);
Detayları gösterShow details
ParametrelerParameters

theme_variable_name = can be any theme variable in the current theme or 22 (twentytwo) distinct color theme names: BACKCOLOR1, ...., BACKCOLOR22.

NotlarRemarks

Color theme isimleri (BACKCOLOR1, ...., BACKCOLOR22), theme tanımlarında bir color değerine ayarlanmalıdır...

Color theme names (BACKCOLOR1, ...., BACKCOLOR22) should be set to a color value in the theme definitions...

ÖrnekExample
CLEAR ALL TMPTABLE;
INTEGERVAR1 = 1;

WHILE INTEGERVAR1 <= 22 
BEGIN
	STRINGVAR1 = 'BACKCOLOR' + INTEGERVAR1;
	INTEGERVAR2 = GETTHEMEVARIABLE(STRINGVAR1);
	APPEND ROW TO TMPTABLE;
	MOVE INTEGERVAR2 TO TMPTABLE_BKCOLOR;
	MOVE STRINGVAR1 TO TMPTABLE_USERNAME;
	MOVE INTEGERVAR2 TO TMPTABLE_PASSW;
	MOVE 0 TO TMPTABLE_INSERTED;
	INTEGERVAR1 = INTEGERVAR1 + 1;
ENDWHILE;

RETURN;
GETTIME()Date Functions

Verilen variable'dan time değerini döndürür.

Returns the time value from the given variable.

GETTIME {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the datetime varibale. A DATETIME variable type.

NotlarRemarks

String:

Format bir TIME variable type'ıdır.

Geçersiz (odd) bir variable durumunda 12.00 döndürülür.

String:

Format is a TIME variable type.

In case of an odd variable 12.00 is returned.

ÖrnekExample
OBJECT: 
 DATETIME DT,
 DATETIME DTY,
 DATE D,
 DATE DY,
 TIME Y,
 TIME TY,
 STRING STR1,
 STRING STR2,
 INTEGER V1,
 INTEGER V2;

DT = '01.02.1996 15.45';
TY = GETTIME(DT);
STR1 = GETTIME(DT);

/*
Before GETTIME function is executed:

DT = '01.02.1996 15.45'
TY = NULL
STR1 = NULL

After GETDATE function is executed:

DT = '01.02.1996 15.45'
TY = '15.45'
STR1 = '15.45'
*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETYEAR,GETHOUR,GETMINUTE
GETTRANSACTIONRIGHT()FUNCTION

Mevcut kullanıcının verilen transaction için hakkı olup olmadığını kontrol eder ve döndürür.

Checks and returns whether the current user has the right for the given transaction.

GETTRANSACTIONRIGHT(transaction_right);
Detayları gösterShow details
ParametrelerParameters

transaction_right = String symbol word in the user transaction rights.

NotlarRemarks

Hak bulunursa integer 1, aksi halde integer 0 döndürür.

Returns integer 1 in case of finding the right; otherwise returns integer 0.

ÖrnekExample
OBJECT:

 INTEGER TRACERIGHT;

 

TRACERIGHT = GETTRANSACTIONRIGHT('TRACE');



SWITCH TRACERIGHT 

CASE 0:

    /*User doesn't have the trace right*/

CASE 1:

    /*User has the trace right*/

ENDSWITCH;
GETTREEITEMTree

Mevcut tree item'ının text'ini ve type'ını istenen variable'lara koyar.

Puts current tree item's text and type into the desired variables.

GETTREEITEM INTO {type_var} {text_var};

GETTREEITEM INTO {type_var} {text_var} WITH {item_id} FROM {tree_name};
Detayları gösterShow details
ParametrelerParameters

type_var = the string variable that the type of the leaf will be set.

text_var = the string variable that the text of the leaf will be set.

item_id = the string variable that the id of the leaf will be set.

tree_name = the name of the tree object on the dialog.

ÖrnekExample
OBJECT : STRING MA, STRING TXT;

GETTREEITEM INTO MA TXT;

GETTREEITEM INTO MA TXT WITH 1 FROM TREE1;
GETTROIAKEYWORDS()Troia Development

Verilen TROIA kodundaki symbol tanımlarını döndürür.

Returns symbol definitions in given TROIA code

GETTROIAKEYWORDS({string_code});
Detayları gösterShow details
ParametrelerParameters

string_code = TROIA code

NotlarRemarks

Return Value

String

Bu function, verilen TROIA kodundaki symbol tanımlarının virgülle ayrılmış string temsilini döndürür.

Return Value

String

This function returns comma seperated string representation of symbol definitions in given TROIA code.

ÖrnekExample
OBJECT: STRING CODE, STRING RETVAL;

CODE = 'OBJECT: STRING VAR1, STRING VAR2;        ';

RETVAL = GETTROIAKEYWORDS(CODE);

/* returns VAR1,VAR2 */
GETUSERINFO()System Functions

Verilen user info parametresine göre kullanıcı hakkında bilgi döndürür.

Returns info about the user according to given user info parameter.

GETUSERINFO(variable_name);
Detayları gösterShow details
ParametrelerParameters

variable_name = string representing the user info parameters

NotlarRemarks

Return Value

String

Geçerli user info parametreleri: client_type, trace_type, database_server, database_name, catalog_name, client_address, client_connection_ID, database_server_type, database_server_version, client_locale, application_server, db_connection_id_1, db_connection_id_2

'db_connection_id_1' ve 'db_connection_id_2', Microsoft SQL Server, MySQL, Oracle ve Sybase database'leriyle desteklenir.

Return Value

String

Valid user info parameters are:

client_type

trace_type

database_server

database_name

catalog_name
client_address

client_connection_ID

database_server_type

database_server_version

client_locale

application_server

db_connection_id_1

db_connection_id_2

'db_connection_id_1' and 'db_connection_id_2' are supported with databases Microsoft SQL Server, MySQL, Oracle and Sybase.

ÖrnekExample
STRINGVAR1 = GETUSERINFO('client_connection_ID');
GETVARTYPE()Troia Development

Bir variable'ın type'ını döndürür.

Returns the type of a variable

GETVARTYPE({variable});
Detayları gösterShow details
ParametrelerParameters

variable = any symbol name.

NotlarRemarks

Return Value

String: Verilen variable'ın type'ını döndürür.

1. Primitive variable'lar için variable type'ını döndürür: STRING, STRINGBUILDER, INTEGER, LONG, DECIMAL, DATE, TIME, TIMES, DATETIME, BLOB, VECTOR, TABLE...
2. Class object variable'ları için user-defined class ismini döndürür: RDTEST, BAS000, CUSTOMER...
3. Bir virtual table column'unun ODBA column type'ını döndürür: IASBAS001_STEXT için STRING...
4. Screen control'leri için control type variable type'ını döndürür: TABLE, CHART, DIAGRAM...
5. Literal'ler yani explicit değerler için en uygun primitive data type'ı döndürür: 'abc' için STRING, 12 için LONG...
6. Tanımlanamayan variable'lar için 'UNKNOWN TYPE' döndürür.

Return Value

String:

Returns the type of given variable.

1. Returns the variable type for the primitive variables: STRING, STRINGBUILDER, INTEGER, LONG, DECIMAL, DATE, TIME, TIMES, DATETIME, BLOB, VECTOR, TABLE...
2. Returns the user-defined class name of the class object variables: RDTEST, BAS000, CUSTOMER...
3. Returns ODBA column type of a virtual table column: STRING for IASBAS001_STEXT...
4. Returns the control type variable type for the screen controls: TABLE, CHART, DIAGRAM...
5. Returns the best primitive data type for the literals i.e. explicit values: STRING for 'abc', LONG for 12...
6. Returns 
'UNKNOWN TYPE' for unidentified variables.
ÖrnekExample
OBJECT: 
 PAYCLASS PAY01,
 STRING STR,
 INTEGER INT,
 DATETIME DT,
 STRING DATATYPE;

DATATYPE = GETVARTYPE(PAY01);
/*Returns CLASS*/
DATATYPE = GETVARTYPE(INT);
/*Returns INTEGER */
DATATYPE = GETVARTYPE(DT);
/*Returns DATETIME*/
DATATYPE = GETVARTYPE(USERTABLE_USERNAME);
/* Returns Data type of USERNAME field*/
GETVECTORSIZE()Vector

Verilen vector'ün element sayısını döndürür.

Returns element count of the given vector.

GETVECTORSIZE(vector_name);
Detayları gösterShow details
ParametrelerParameters

vector_name = Vector name to count the elements in.

NotlarRemarks

Element sayısını integer olarak döndürür; element yoksa integer 0 döndürür.

Return element count in integer; in case of no element, returns integer 0.

ÖrnekExample
OBJECT: 

 VECTOR A, 

 STRING B;



/*Returns 0*/

GETVECTORSIZE(A);



B = 'Some Value';

ADDELEMENT B TO A;



/*Returns 1*/

GETVECTORSIZE(A);
İlgili KomutlarRelated Commands
ADDELEMENT, REMOVEELEMENT, CLEAR VECTOR, VECTORCONTAINS(v,x)
GETWEEK()Date Functions

Verilen tarihin yıl içindeki hafta sıra numarasını döndürür.

Returns the week sequence number in year of given date.

GETWEEK({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Return Value

Integer.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 INTEGER V;



DT = '12.01.1996 15.45';

V = GETWEEK(DT);

/* After GETWEEK function is executed:

V = 2  , since the 12nd day of 1st month is in second week.

*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETYEAR,GETTIME,GETHOUR
GETWEEKOFYEAR()Date Functions

Local time'a göre yılın haftasını döndürür.

Returns the week of year based on local time.

GETWEEKOFYEAR(variable_name);
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the name of date variable;

NotlarRemarks

Return Value

Integer

Return Value

Integer

ÖrnekExample
OBJECT: 
 DATE D1;

D1 = '25.12.2002';
INTEGERVAR1 = GETWEEKOFYEAR(D1);
 /*

result => 51

*/
GETWORKDAY()Date Functions

Bir date interval'ındaki work day sayısını döndürür.

Returns number of work days in a date interval.

GETWORKDAY(company_code,plant_code,work_center,start_date,finish_date);
Detayları gösterShow details
ParametrelerParameters

company_code = Company code to check the holidays.
plant_code = Any plant code of that company.
work_center = Any work center of that company plant.
start_date = Start date of a date interval to list the holidays.
finish_date = Finish date of a date interval to list the holidays.

NotlarRemarks

Work calendar'ları parametrelere göre kontrol eder.
Verilen date interval'ındaki work day sayısını döndürür, aksi halde 0 döndürür.

Checks the work calenders according to the parameters.
Returns the number of work days in the given date interval, otherwise returns 0.

İlgili KomutlarRelated Commands
GETWORKHOUR(), GETHOLIDAYS()
GETWORKHOUR()Date Functions

Bir date interval'ındaki work hour sayısını döndürür.

Returns number of work hours in a date interval.

GETWORKHOUR(company_code,plant_code,work_center,start_date,finish_date,boolean_parameter);
Detayları gösterShow details
ParametrelerParameters

company_code = Company code to check the holidays.
plant_code = Any plant code of that company.
work_center = Any work center of that company plant.
start_date = Start date of a date interval to list the holidays.
finish_date = Finish date of a date interval to list the holidays.
boolean_parameter = ?.

NotlarRemarks

Work calendar'ları parametrelere göre kontrol eder.
Verilen date interval'ındaki work hour sayısını döndürür, aksi halde 0 döndürür.

Checks the work calenders according to the parameters.
Returns the number of work hours in the given date interval, otherwise returns 0.

İlgili KomutlarRelated Commands
GETWORKDAY(), GETHOLIDAYS()
GETYEAR()Date Functions

Verilen variable'dan year değerini döndürür.

Returns the year value from the given variable.

GETYEAR {variable_name};
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

NotlarRemarks

Return Value

Integer.

Return Value

Integer.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER V1,

 INTEGER V2;



DT = '01.01.1996 15.45';

D   = '01.01.1996';

V1  = GETYEAR(DT);

V2  = GETYEAR(D);



/*

Before GETYEAR function is executed:



DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 0

V2        = 0



After GETYEAR function is executed:



DT       = '01.02.1996 15.45'

D         = '01.02.1996'

V1        = 1996

V2        = 1996

*/
İlgili KomutlarRelated Commands
GETDATE,GETDAY,GETMONTH,GETTIME,GETHOUR,GETMINUTE
GLOBALBasic Troia

Transaction'lar için variable'ların ismini ve type'ını tanımlar ve global olarak symbol oluşturur. Bu symbol'ler table, class veya standart type tanımı olabilir.

Defines the name and type of variables for transactions and creates symbols as global. These symbols can be tables, classes, or standard type definitions.

GLOBAL: [TABLE variable_name , ]

                [STRING variable_name , ]     

                [INTEGER variable_name , ]    

                [DATE variable_name , ]       

                [TIME variable_name , ]       

                [DATETIME variable_name , ]   

                [LONG variable_name , ]       



                [class_type variable_name]  ;
Detayları gösterShow details
ParametrelerParameters
variable_name         = Is the name of the variable.
class_type             = Is a system or user-defined datatype.
ÖrnekExample
GLOBAL : TABLE MATB,  STRING STR2, STRING STR1;

GLOBAL : TABLE MATB, STRING STR1, INTEGER INT1;
İlgili KomutlarRelated Commands
OBJECT
GROUPBEGINObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

GROUPENDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

HASEDIONTABLE()FUNCTION

IASCUSEDIEXPORT ve IASEDI005 table'larında hiç data doldurulmamışsa 0 döndürür.

Yeni oluşturulan referanslar dikkate alınmaz. Yeni login gereklidir.

DİKKAT!!!

HASEDIONTABLE function'ı, login sırasında table isimlerini yükler ve verilen table ismini internal table'dan hızlıca kontrol eder. EDI export ayarlarında (IASEDI005 veya IASCUSEDIEXPORT) bir değişiklik olduğunda, logoff yapıp tekrar login olmak gereklidir.

Returns 0 when there is no data filled in following tables IASCUSEDIEXPORT and IASEDI005.

Newly created references are not being considered. New login is necessary.

ATTENTION !!!

HASEDIONTABLE function loads table names during login,

and quickly checks the given table name from the internal table.

When there is a change in EDI export settings, (IASEDI005 or IASCUSEDIEXPORT)

it is necessary to logoff and login again.

HASEDIONTABLE({variable});
Detayları gösterShow details
ParametrelerParameters

variable = name of the table to be checked

NotlarRemarks

Return Value

Integer.

0 veya 1 döndürür.

Return Value

Integer.

Returns 0 or 1.

HEADERObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

HIDEChart

Chartname isimli chart'taki verilen dataset içindeki noktaları gizler.

Hides points in given dataset on chart named chartname.

HIDE SET1 TO {chart}; 
HIDE SET2 TO {chart};
Detayları gösterShow details
ParametrelerParameters

{chart} : Name of chart cotrol

ÖrnekExample
/*

    Chart control hides points on dataset2

*/
HIDE SET2 TO CHART2;
İlgili KomutlarRelated Commands
SHOW
HTMLTOTEXT()String Manipulation

Bir html document'ini plain text document'ine dönüştürür.

Converts an html document to a plain text document.

HTMLTOTEXT({variable});
Detayları gösterShow details
ParametrelerParameters

variable = The html text

NotlarRemarks

Return Value

String:

Bir plain text document döndürür.

Return Value

String:

Returns a plain text document.

IASRGB()FUNCTION

Sağlanan argument'lara ve output device'ın renk kapasitesine göre bir red, green, blue (RGB) rengi seçer.

Selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device.

IASRGB({red_value},{blue_value},{green_value});
Detayları gösterShow details
ParametrelerParameters
red_value     = specifies the intensity of the red color. 
blue_value   = specifies the intensity of the blue color. 

green_value = specifies the intensity of the green color.

NotlarRemarks

Return Value

Integer. Return değeri, ortaya çıkan RGB rengidir.

Her argument için yoğunluk 0 ile 255 arasındadır. Üç yoğunluk da sıfırsa, sonuç siyahtır. Üç yoğunluk da 255 ise, sonuç beyazdır.

Return Value

Integer.The return value is the resultant RGB color.

The intensity for each argument is in the range 0 through 255. If all three intensities are zero, the result is black. If all three intensities are 255, the result is white.

IFBasic Troia

Bir expression'ın değerine bağlı olarak bir statement grubunu koşullu şekilde çalıştırır.

Conditionally executes a group of statements, depending on the value of an expression.

IF {condition} THEN 
     {block1}; 
[ELSE 
      {block2};]
ENDIF ;
Detayları gösterShow details
ParametrelerParameters

condition =

One or more of the following two types of expressions:

·        A numeric or string expression that evaluates to true or false.  The comparison operators are: == (equals), != (not-equals), >= (equals-or-greater), <= (equals-or-lesser), && (and), ||
 (or)
·        system_globals (SYS_USER, SYS_CLIENT, SYS_LANGU)
·        action_flags (SYS_STATUS, SELECTED, NOTSELECTED, UPDATED, INSERTED, DELETED)

block =

One or more statements separated by colons. Can contain block statements as well.

If the result of the condition is true (or 1) block1 is executed. If the result of the condition is false (or 0) and if the else block is included block2 is executed. If else block is not included execution continues from the statement that comes after the ENDIF reserved word.

NotlarRemarks

Kısa, basit testler için tek satırlık formu kullanabilirsiniz. Ancak block formu, tek satırlık forma göre daha fazla yapı ve esneklik sunar ve genellikle okuması, bakımını yapması ve debug etmesi daha kolaydır.

İpucu: Birden fazla olası eylemi olan tek bir expression değerlendirilirken SWITCH daha kullanışlı olabilir.

You can use the single-line form for short, simple tests. However, the block form provides more structure and flexibility than the single-line form and is usually easier to read, maintain, and debug.

Tip

Select Case may be more useful when evaluating a single expression that has several possible actions.

ÖrnekExample
/* A. If  without else */

IF MATD_MATNR == 'G1000' THEN

       SELECT * FROM MATA WHERE MATNR = MATD_MATNR;

       SELECT * FROM MATS WHERE MATNR = MATD_MATNR;



ENDIF;



/* B. If  with else */

IF MATD_MATNR == 'G1000' THEN

       SELECT * FROM MATA WHERE MATNR = MATD_MATNR;

       SELECT * FROM MATS WHERE MATNR = MATD_MATNR;

ELSE

       SELECT * FROM MATE WHERE MATNR = MATD_MATNR;

       SELECT * FROM MATG WHERE MATNR = MATD_MATNR;

ENDIF;



/* C. If  with nested if and condition with action flags */

IF IASBAS008_UPDATED THEN

   IF  THIS.UPDATE(IASBAS008_HIERARCHY) == 0 THEN

        RETURN 0 ;

   ENDIF ;

ENDIF ;
İlgili KomutlarRelated Commands
SWITCH
INITALLCALENDARS()FUNCTION

Tüm calendar'ları verilen parametrelerle başlatır.

Initializes all of the calendars with the given parameters.

INITALLCALENDARS({Company},{Plant},{start_date},{backward})
Detayları gösterShow details
ParametrelerParameters

Company = the company code

Plant = the plant which calendar to be initialized

start_date = the start date of the process

backward = a boolean variable that indicates the process to be backward or forward.

NotlarRemarks

Integer döndürür.

Başlatma başarılıysa 1, aksi halde 0.

Returns Integer.

1 if initiation successful otherwise 0.

INITCALENDAR()Date Functions

Calendar'ı verilen parametrelerle başlatır.

Initializes the calendar with the given parameters.

INITCALENDAR({Company},{Plant},{start_date},{backward})
Detayları gösterShow details
ParametrelerParameters

Company = the company code

Plant = the plant which calendar to be initialized

start_date = the start date of the process

backward = a boolean variable that indicates the process to be backward or forward.

NotlarRemarks

Integer döndürür.

Başlatma başarılıysa 1, aksi halde 0.

Returns Integer.

1 if initiation successful otherwise 0.

INITCUMMULATORGENERAL

Cummulator değerlerini başlatır ve temizler.

Initializes and clears the cummulator values.

INITCUMMULATOR;
Detayları gösterShow details
NotlarRemarks

Bu command, CUMMULATE function'ı kullanılmadan önce bir kez çağrılmış olmalıdır.

Bu command tüm cummulated değerleri temizler.

This command should have been called once before the function CUMMULATE is used.

This command clears all cummulated values.

ÖrnekExample
OBJECT: 
 INTEGER ISDEFINED;

/* initialize cummulators */

IF ISDEFINED == 0 THEN
	ISDEFINED = 1;
	INITCUMMULATOR;
	INITCUMMULATOR 'C2';
	INITCUMMULATOR 'C3';
ENDIF;

/* test cummulate*/
INTEGERVAR1 = CUMMULATE('Material1', 5);
INTEGERVAR2 = CUMMULATE('Material1', 10, 'C2');
INTEGERVAR3 = CUMMULATE('Material1', 15, 'C3');
LONGVAR1 = CUMMULATE('Material2', 2);
LONGVAR2 = CUMMULATE('Material2', 4, 'C2');
LONGVAR3 = CUMMULATE('Material2', 6, 'C3');
/* test reinitializing cummulators */

IF INTEGERVAR1 == 60 THEN
	INITCUMMULATOR;
ENDIF;


IF INTEGERVAR2 == 60 THEN
	INITCUMMULATOR 'C2';
ENDIF;


IF INTEGERVAR3 == 60 THEN
	INITCUMMULATOR 'C3';
ENDIF;
İlgili KomutlarRelated Commands
CUMMULATE()
INSERTDatabase

Bir table'a yeni bir row ekler.

Adds a new row to a table.

INSERT INTO {table_name} [(column_list) VALUES  (values_list)];
Detayları gösterShow details
ParametrelerParameters

table_name = Specifies the name of the table used in the INSERT statement. table_name can be a variable.

column_list = Lists one or more columns to which data is to be added. The columns can be listed in any order, but the incoming data (whether in a values_clause or a select_statement) must be in the same order as the columns If column_list is not specified, only the updated columns are inserted.

values_list = VALUES. If the column_list is included VALUES is a required keyword used to introduce the list of values for each column in the column_list or table.

NotlarRemarks
INSERT yalnızca yeni row'lar ekler. Var olan row'lardaki column değerlerini değiştirmek için UPDATE kullanın.

Row eklerken şu kurallar geçerlidir:

Bir varchar veya text column'una boş bir string (' ') eklemek, tek bir boşluk ekler. Tüm char column'ları, tanımlanan uzunluğa sağdan padding'lenir. Varchar column'larına eklenen data'dan tüm sondaki boşluklar kaldırılır; yalnızca boşluklardan oluşan string'ler hariç. Bu string'ler tek bir boşluğa kısaltılır.

INSERT statement'ının sonucu başarılıysa SYS_STATUS 0'a ayarlanır, aksi halde 1'e ayarlanır ve INSERTED_ flag'i 1'e ayarlanır, aksi halde 0'a ayarlanır.
INSERT adds new rows only. To modify column values in existing rows, use UPDATE.

When inserting rows, these rules apply:

Inserting an empty string (' ') into a varchar or text column inserts a single space. All char columns are right-padded to the defined length. All trailing spaces are removed from data inserted into varchar columns, except in strings that contain only spaces. These strings are truncated to a single space.

If the result of INSERT statement is succesfull SYS_STATUS is set to 0 otherwise it is set to 1 and INSERTED_ flag is set to 1 otherwise it is set to 0.

ÖrnekExample
/*

A. INSERT without column_list and values_list

This example shows an INSERT into the P000 table. None of the column  names nor the values are specified

*/

INSERT INTO P000;

/*

B. INSERT with Column Titles

This example shows an insert into the P000 table. Only the values for the columns listed in the column_list are shown in the values_list.

*/



INSERT INTO P000(MANDT,KTEXT) VALUES ('00','EXP');
İlgili KomutlarRelated Commands
SELECT UPDATE DELETE
INSERTEDSystem Variables

INSERT statement'ı bir table'a row eklemişse 1 döndüren bir Global Variable.

A Global Variable that returns 1 if the INSERT statement has inserted rows into a table.

INSERTED
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer

ÖrnekExample
INSERT INTO IASSALITEM;

IF INSERTED THEN

	STRINGVAR1 = 'INSERTED VALUES';

ENDIF;
INSERTSQLDatabase

SQL string variable'ına bir insert script'i oluşturur.

Creates an insert script into the string variable SQL.

INSERTSQL INTO {table_name} [(column_list)

VALUES  (values_list)];
Detayları gösterShow details
ParametrelerParameters
table_name   = Specifies the name of the table used in the INSERTSQL statement. table_name can be a variable.
column_list   = Lists one or more columns to which data is to be added. The columns can be listed in any order, but the incoming data (whether in a values_clause or a select_statement) must be in the same order as the columns.
values_list   =  VALUES. If the column_list is included VALUES is a required keyword used to introduce the list of values for each column in the column_list or table.
NotlarRemarks

INSERTSQL yalnızca bir script oluşturur, yeni row'u database'e eklemez.

INSERTSQL, yalnızca yeni row'lar ekleyen bir script oluşturur. Var olan row'lardaki column değerlerini değiştirmek için UPDATE kullanın.

Row eklerken şu kurallar geçerlidir:

Bir varchar veya text column'una boş bir string (' ') eklemek, tek bir boşluk ekler. Tüm char column'ları, tanımlanan uzunluğa sağdan padding'lenir. Varchar column'larına eklenen data'dan tüm sondaki boşluklar kaldırılır; yalnızca boşluklardan oluşan string'ler hariç. Bu string'ler tek bir boşluğa kısaltılır.

INSERTSQL only creates a script, does not inserts the new row to the database.

INSERTSQL creates a script that only adds new rows . To modify column values in existing rows, use UPDATE.

When inserting rows, these rules apply:

Inserting an empty string (' ') into a varchar or text column inserts a single space. All char columns are right-padded to the defined length. All trailing spaces are removed from data inserted into varchar columns, except in strings that contain only spaces. These strings are truncated to a single space.

ÖrnekExample
/*

A. INSERTSQL without column_list and values_list

This example shows an INSERT into the P000 table. None of the column  names nor the values are specified

*/



INSERTSQL INTO P000;



/*

After the command is executed:

SQL = 'INSERT INTO P000 (MANDT,KTEXT) VALUES (  . . . . , . . . . . )'

Inside the values paranthesis is filled with the values of the active row.

*/



/*

B. INSERTSQL with Column Titles

This example shows an insert into the P000 table. Only the values for the columns listed in the column_list are shown in the values_list.

*/



INSERTSQL INTO P000(MANDT,KTEXT) VALUES ('00','EXP');



/*

After the command is executed:

SQL = 'INSERT INTO P000 (MANDT,KTEXT) VALUES (  '00' ,'EXP' )'

Inside the values paranthesis is filled with the values of the active row.

*/
İlgili KomutlarRelated Commands
DELETESQL
INSERTTREEITEMTree

İstenen tree'ye bir tree node'u ekler.

Inserts a tree node to the desired tree.

INSERTTREEITEM AT {ROOT|CURRENT} WITH {moa} {leaf_text};

INSERTTREEITEM AT [ROOT|CURRENT] WITH {moa} {leaf_text} {leaf_id} TO {tree_name} [BACKCOLOR backcolor] [FORECOLOR forecolor];
Detayları gösterShow details
ParametrelerParameters

ROOT = inserts the tree item as the root

CURRENT = inserts the tree item at the current leaf.

moa = the type of the leaf. can be either menu leaf or leaf.

leaf_text = the name of the leaf you want to insert.

leaf_id = the id of the leaf you want to insert.

tree_name = the name of the tree object on the dialog.

NotlarRemarks

Leaf id benzersiz olmalıdır. Aynı id ile iki ayrı leaf ekleyemezsiniz. Verilen id'ye sahip başka bir leaf varsa SYS_STATUS 1'e ayarlanır.

The leaf id must be unique. You cannot insert two seperate leafs with the same id.

If there is another leaf with the given id then SYS_STATUS is set to 1.

ÖrnekExample
STR = 'TEST1';

INSERTTREEITEM AT ROOT WITH M STR;

INSERTTREEITEM AT ROOT WITH M STR    001 TO TREE1; /* 001 is the id of the leaf*/

IF SYS_STATUS == 1 THEN

	/* TREEITEM NOT INSERTED! */

ENDIF;
INVERTORIENTChart

Axis'lerin orientation'ını tersine çevirir.

Inverts orientation of the axes.

INVERTORIENT {chartname} AS < TRUE | FALSE >;
Detayları gösterShow details
NotlarRemarks

Çoğu chart, X-axis'i horizontal ve Y-axis'i vertical olarak gösterir. Ancak, X- ve Y-axis'lerin anlamını tersine çevirmek genellikle uygundur.

Most charts display the X-axis horizontally and the Y-axis vertically. It is often appropriate, however, to invert the sense of the X- and Y-axes.

ÖrnekExample
INVERTORIENT CHART01 AS  TRUE ;
ISCHANGED()Table

Belirtilen table column'unun güncellenip güncellenmeyeceğini kontrol eder.

Checks if the specified table column will be updated.

ISCHANGED({variable});
Detayları gösterShow details
ParametrelerParameters

variable = Specifies the table column name of the desired table. TABLENAME_COLUMNNAME

NotlarRemarks

Return Value

Integer:

0 veya 1 döndürür. Table'da böyle bir column yoksa return değeri -1 olur.

Return Value

Integer:

Returns 0 or 1. If there is no such column in table return value will be -1;
ÖrnekExample
INTEGERVAR1 = ISCHANGED(TMPTABLE_USERNAME);
ISDATE()Date Functions

Verilen parametrenin date type'ında olup olmadığını kontrol eder.

Checks whether the given parameter is in the type of date or not.

ISDATE ({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale.

NotlarRemarks

Return Value

Integer:

Verilen tarih date/datetime type'ındaysa 1, aksi halde 0 döndürür.

Return Value

Integer:

Returns 1 if the given date is in the type of date/datetime, 0 otherwise.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATE TODAY,

 STRING STRDATE,

 INTEGER K,

 INTEGER L,

 INTEGER M;



STRDATE = ' 01.01.1996 ';

K = ISDATE(TODAY);

L = ISDATE(DT);

M = ISDATE(STRDATE);



/*

After ISDATE function is executed:



K = 1

L = 1

M = 0 because it is a string typed variable. 

*/
ISDAYLIGHTTIME()Date Functions

Verilen tarihin bu time zone'da yaz saati uygulamasında (daylight savings time) olup olmadığını kontrol eder.

Checks if the given date is in daylight savings time in this time zone.

ISDAYLIGHTTIME ({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale.

NotlarRemarks

Return Value

Integer:

Verilen tarih bu time zone'da yaz saati uygulamasındaysa 1 döndürür.

Return Value

Integer:

Returns 1 if the given date is in daylight savings time in this time zone.

ISNUMERIC()String Manipulation

Verilen bir symbol'ün tamamen numeric karakterler içerip içermediğini döndürür.

Returns whether a given symbol contains fully numeric characters.

ISNUMERIC(check_symbol);
Detayları gösterShow details
ParametrelerParameters

check_symbol = Any symbol to check the characters.

ISWORKDAY()Date Functions

Verilen tarihin bir work day olup olmadığını döndürür.

Returns if the given date is a work day or not.

ISWORKDAY({Date})
Detayları gösterShow details
ParametrelerParameters

Date = the date value

NotlarRemarks

Integer döndürür.

Work day ise 1, aksi halde 0.

Returns Integer.

1 if its work day other wise 0.

ISWORKHOUR()Date Functions

Verilen bir date-time değerinin bir work hour olup olmadığını döndürür.

Returns whether a given date-time value is a work hour.

ISWORKHOUR(company_code,plant_code,work_center,check_datetime,boolean_parameter);
Detayları gösterShow details
ParametrelerParameters

company_code = Company code to check the holidays.
plant_code = Any plant code of that company.
work_center = Any work center of that company plant.
check_datetime = The date-time symbol to check for workhour.
boolean_parameter = ?.

NotlarRemarks

Work calendar'ları parametrelere göre kontrol eder.
Verilen date-time değeri bir work hour ise 1, aksi halde 0 döndürür.

Checks the work calenders according to the parameters.
Returns 1 if a given date-time value is a work hour, otherwise returns 0.

İlgili KomutlarRelated Commands
GETWORKDAY(), GETHOLIDAYS(), ISWORKDAY()
LABELFORPOINTChart

Point index'ine göre data-set1 veya data-set2'deki n'inci Point-label'ı ayarlar.

Sets the nth Point-label on data-set1 or data-set2 according to the point index.

LABELFORPOINT  {point_index}  {text}  < SET1 | SET2 > TO  {chartname};
Detayları gösterShow details
ParametrelerParameters
SET1                 = operates on data-set1.
SET2                 = operates on data-set2.
point_index         = zero based index specifies which Point-label should be changed. An integer value.
text                         = new label to be used.
chartname         = chart control name.
NotlarRemarks

PointLabels annotation'ı, X-axis boyunca tanımladığınız label'ları gösterir. Bu, bar, stacking bar ve pie chart'lar dahil herhangi bir chart'ın X-axis'ini annotate etmek için kullanışlıdır.

PointLabels, label'ların bir koleksiyonudur. İlk label ilk noktaya, ikinci label ikinci noktaya uygulanır ve böyle devam eder.

PointLabels annotation displays the labels you define along the X-axis. This is useful for annotating the X-axis of any chart including bar, stacking bar, and pie charts.

PointLabels are a collection of labels. The first label applies to first point, the second label applies to second point and so on.

İlgili KomutlarRelated Commands
LABELFORSET
LABELFORSETChart

Set index'ine göre data-set1 veya data-set2'deki n'inci Set-label'ı ayarlar.

Sets nth Set-labels on data-set1 or data-set2 according to the set index.

LABELFORSET  {set_index}  {text}  < SET1 | SET2 > TO  {chartname};
Detayları gösterShow details
ParametrelerParameters
SET1                 = operates on data-set1.
SET2                 = operates on data-set2.
set_index         = zero based index specifies which Set-label should be changed. An integer value.
text                         = new label to be used.
chartname         = chart control name.
İlgili KomutlarRelated Commands
LABELFORPOINT
LASTDATEINMONTH()Date Functions

Verilen bir ayın son tarihini verir.

Yields the last date of a given month.

LASTDATEINMONTH ({month}, {year});
Detayları gösterShow details
ParametrelerParameters

month = Specifies the name of the month varibale. An INTEGER variable type.

year = Specifies the name of the year varibale.

NotlarRemarks

Return Value

DATE.

Return Value

DATE.

ÖrnekExample
OBJECT: 

 STRING YEAR,

 DATE RDATE,

 INTEGER MONTH;



YEAR = '1997';

MONTH = 2;

RDATE = LASTDATEINMONTH(MONTH,YEAR);

 /*

After LASTDATEINMONTH function is executed:

RDATE = '02.28.1997';

which is last date of second month. 

*/
İlgili KomutlarRelated Commands
FIRSTDATEINMONTH
LCMMath Functions

Aritmetik ve sayılar teorisinde, iki INTEGER (veya LONG) a ve b'nin en küçük ortak katı (least common multiple, genellikle LCM(a, b) ile gösterilir), hem a'ya hem de b'ye bölünebilen en küçük pozitif integer'dır. Bu function ile kullanıcılar 2'den fazla değer verebilir. Ancak yalnızca INTEGER ve LONG type'ındaki variable'ları destekler. Bu algoritmada, kullanıcının verdiği input'larda 0 (sıfır) sayısı varsa, en küçük ortak katları 0'dır.

In arithmetic and number theory, the least common multiple (also called the lowest common multiple or smallest common multiple) of two INTEGER (or LONG) a and b,
usually denoted by LCM(a, b), is the smallest positive integer that is divisible by both a and b. With this function, users can give more than 2 values.
However, only supports variables of type INTEGER and LONG.
In this algorithm, is there any 0 (zero) number in inputs which gives by user, then their least common multiple value is 0.

LCM( {value1} , {value2} );
LCM( {value1} , {value2} , {value3} ,  {value4} );
Detayları gösterShow details
ÖrnekExample
OBJECT

LONG NO1,

LONG NO2,

LONG RESULT1,

LONG RESULT2,

LONG RESULT3;



NO1 = 50;

NO2 = 200;

RESULT1 = LCM(NO1, NO2); /* least common multiple is 200 for N01 and N02 numbers*/



RESULT2 = LCM(NO1, NO2, 25, 15, 5, 10); /* least common multiple is 600 for them*/



RESULT3 = LCM(NO1, NO2, 25, 15, 5, 10, 0); /* least common multiple is 0 for them cause of 0*/
İlgili KomutlarRelated Commands
GCD
LISTCHANGEDCOLSTable

Verilen virtual table'ın değişen column'larını listeler.

Lists changed columns of given virtual table.

LISTCHANGEDCOLS FROM {sourcetable} TO {resulttable};
LN()Math Functions

ln algoritmasını hesaplar (taban "e"dir).

Calculates - ln - algorithms (base is "e").

LN ({value});
Detayları gösterShow details
ParametrelerParameters

value = a value whose logarithm is to be found

NotlarRemarks

LN function'ı, başarılıysa değerin logaritmasını döndürür. Değer <= 0 ise, hiçbir operation gerçekleştirilmez.

The LN function returns the logarithm of the value if successful. If value <= 0 , no operation is held.

ÖrnekExample
OBJECT: 
 DECIMAL X;

X = LN(9000);
/* X = 9.10498 */
İlgili KomutlarRelated Commands
LOG10
LOADBITMAPImage Handling

Bir bitmap'i, cache kullanarak veya normal şekilde bir bitmap control'e yükler. LOADBITMAP command'ı ayrıca image'ı yeniden boyutlandırabilir.

Loads a bitmap to a bitmap control by using cache or normally. LOADBITMAP command also can resize image.

LOADBITMAP {file_path_description} TO {bitmap_control_name} [USING CACHE];

LOADBITMAP {file_path_description} TO {bitmap_control_name} WITH SIZE {width} {height};
Detayları gösterShow details
ParametrelerParameters

file_path_description = path and name for the bitmap file or a string variable.

bitmap_control_name = the name of the control to carry the bitmap picture.

USING CACHE option = if the bitmap has opened before it will be cached for better performance
width = width of resized image
height = height of resized image

NotlarRemarks

Report Kullanımı:

LOADBITMAP command'ı report'larda da kullanılabilir. Report'a bir bitmap control (örn. BITMAP1) yerleştirin. Ardından LOADBITMAP command'ını geleneksel şekilde çağırın.

Bir report üzerindeki bir resmin pozisyonunu dinamik olarak ayarlamak isterseniz, basit bir kod satırıyla koordinatları verebilirsiniz.

Örnek:

Report'a bir bitmap control yerleştirin ve ardından;
BITMAP1 = '240,325';
LOADBITMAP PICTUREFILE TO BITMAP1;
/* Bu örnekte resim istenen piksellere yazdırılır. */
BITMAP1 = '240,325, 200,400'; /* Genişlik ve yüksekliği de belirtebilirsiniz. */
LOADBITMAP PICTUREFILE TO BITMAP1;

Report Usage:

LOADBITMAP command can also be used in reports. Place a bitmap control on the report (i.e. BITMAP1). Then call LOADBITMAP command on the traditional way.

If you want to dinamically set the position of a picture on a report you can give the coordinates with a simple line of code.

Example:

Place a bitmap control on the report and then;
BITMAP1 = '240,325';
LOADBITMAP PICTUREFILE TO BITMAP1; 

/* In this example the picture will be printed on the desired pixels. */

BITMAP1 = '240,325, 200,400'; /* You can also specify the width and height. */

LOADBITMAP PICTUREFILE TO BITMAP1;
ÖrnekExample
/* In the example below the results of the both LOADBITMAP commands are same. */
OBJECT: 
 STRING STR1;

STR1 = 'C:\CANCEL.BMP';
LOADBITMAP 'C:\CANCEL.BMP' TO BITMAP1;
LOADBITMAP STR1 TO BITMAP1;

/* In the example below LOADBITMAP command is resizing a image. */
OBJECT: 
 STRING STR1;

STR1 = 'C:\CANCEL.BMP';
LOADBITMAP STR1 TO BITMAP1 WITH SIZE 400 500;
LOADNATIVEGENERAL

Client tarafında veya server tarafında native resource'ları (dll veya so dosyaları) çağırmak için kullanılır.

Uses for calling native resources (dll or so files) on client side or server side.

LOADNATIVE dllname(soname),signature TO sym WITH params(comma seperated values);
Detayları gösterShow details
ParametrelerParameters

dllname(soname): Name of native resource file. If resource file is located on client side '!' prefix must be used. (Ex: '!msvcrt.dll' on client side, 'msvcrt.dll' on server side call.)

signature: Signature of calling function on native resource. A method signature is simply the declaration of return type, function name and parameters.Pointer types are not supprted. (See exapmle for detail). Supported types are int, long , double, byte, string, void, char.

sym: The troya variable that native function returns on.

params: Comma seperated native functions parameters thats types and count was determined in function signature.

NotlarRemarks

Desteklenmeyen method type'ları, yanlış native çağrılar veya güvenilir olmayan native library'ler BEKLENMEDİK JVM (Java Virtual Machine) ÇÖKMELERİNE NEDEN OLABİLİR.

KENDİ SORUMLULUĞUNUZDA KULLANIN.

Bir library dosyası, compiler'ınızın bulabileceği bir yerde bulunmalıdır:

*WIN32 Client veya Server Sistemleri için: DLL dosyası, sistem PATH variable'ında tanımlanan bir directory'de bulunmalıdır (örn: C:\WINDOWS\system32).

*Solaris/Linux için: SO dosyası, LD_LIBRARY_PATH environment variable'ının işaret ettiği directory'de bulunmalıdır.

Gerekli library dosyaları için lütfen IAS ile iletişime geçin.

Resource dosyası client tarafındaysa, resource ismiyle birlikte '!' öneki kullanılmalıdır. (Örn: client tarafında '!msvcrt.dll', server tarafı çağrısında 'msvcrt.dll'.)

Unsupported method types, wrong native calls or unreliable native libraries MAY CAUSE UNEXPECTED JVM (Java Virtual Machine) CRASHES.

USE AT YOUR OWN RISK.

A library file must be located where your compiler can find it:

*For WIN32 Client or Server Systems: The DLL file must be located in a directory defined in the system PATH variable (ex:C:\WINDOWS\system32).

*For Solaris/Linux: The SO file mut be located in the directory pointed to by the LD_LIBRARY_PATH environment variable.

Please contact IAS for the necessary library files.

If resource file is located on client side '!' prefix must be used with resource name. (Ex: '!msvcrt.dll' on client side, 'msvcrt.dll' on server side call.)

ÖrnekExample
/* Following examples are use LOADNATIVE commands with various function types and sides: */
/* 

Ex1:

*/
OBJECT: 
 STRING STRINGVAR1,
 STRING STRINGVAR2;

STRINGVAR1 = 'int abs(int)';
LOADNATIVE '!msvcrt.dll',STRINGVAR1 TO STRINGVAR2 WITH '-4';
/*run on client side returns 4 and set it to STRINGVAR2*/
/*

Ex2:

*/
OBJECT: 
 STRING STRINGVAR1,
 STRING STRINGVAR2;

STRINGVAR1 = 'int rand();';
LOADNATIVE 'msvcrt.dll',STRINGVAR1 TO STRINGVAR2 WITH;
 /*run on server side returns random int value and set it to STRINGVAR2*/
LOADPALETTEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

LOADTEXTObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

LOCALBasic Troia

Transaction'lar için variable'ların ismini ve type'ını tanımlar ve symbol oluşturur. Bu symbol'ler table, class veya standart type tanımı olabilir.

Defines the name and type of variables for transactions and creates symbols. These symbols can be tables, classes, or standard type definitions.

LOCAL: [TABLE variable_name , ]
                [STRING variable_name , ]     
                [INTEGER variable_name , ]    
                [DATE variable_name , ]       
                [TIME variable_name , ]       
                [DATETIME variable_name , ]   
                [LONG variable_name , ]       
                [class_type variable_name]  ;
Detayları gösterShow details
ParametrelerParameters

variable_name = Is the name of the variable.
class_type = Is a system or user-defined datatype.

NotlarRemarks

Bu type object tanımı, transaction içinde minimum scope için geçerlidir:

-> Bir transaction'ın dialog event/function'ında LOCAL ile bir variable tanımlarsanız, bu variable, tanım kod satırından hemen sonra yalnızca o dialog event/function'ında -local- bir object olur. Yani bu object'i yalnızca tanımlandığı dialog event/function içinde okuyup yazabilirsiniz.

-> _VARIABLES ve _CONSTRUCTOR gibi bir class function'ında LOCAL ile bir variable tanımlarsanız, bu variable, tanım kod satırından hemen sonra yalnızca -o function- içinde -local- bir object olur. Yani bu object'i yalnızca tanımlandığı class'ın function'ında okuyup yazabilirsiniz.

This type object definition is valid for minimum scope in the transaction:

-> If you define any variable by LOCAL in a dialog event/function of a transaction, 
    this variable becomes a -local- object only in that dialog event/function just after the definition code line.
    That is, you can read/write this object only in that dialog event/function.
-> If you define any variable by LOCAL in a class function like _VARIABLES and _CONSTRUCTOR or any other, 
    this variable becomes a -local- object only in -that function- just after the definition code line.
    That is, you can read/write this object only in the function of the class, where the object is defined.
ÖrnekExample
LOCAL: 
 TABLE MATB,
 STRING STR2,
 STRING STR1;

LOCAL: 
 TABLE MATB,
 STRING STR1,
 INTEGER INT1;
İlgili KomutlarRelated Commands
PARAMETERS
LOCATERECORDBasic Troia

Verilen column ve value listesiyle eşleşen ilk record'u table içinde arar. NEXT seçeneği kullanılırsa bir sonraki eşleşen record bulunur. LAST seçeneği kullanılırsa son eşleşen record bulunur. NEXT ve LAST seçenekleri yalnızca SEQUENTIAL ve INDEXED arama seçenekleriyle desteklenir.

Search a table for the first record matching with the colum and value list given. If NEXT option is used next matching record is located. If LAST option is used last matching record is located. NEXT and LAST options are only supported with SEQUENTIAL and INDEXED search options.

- LOCATERECORD SEQUENTIAL COLUMNS {columnlist} VALUES {valuelist} ON {tablename} [NOTCASESENSITIVE] [NEXT | LAST];

 - LOCATERECORD COLUMNS {columnlist} VALUES {valuelist} ON {tablename} [NOTCASESENSITIVE];

 - LOCATERECORD INDEXED INDEX {indexname} VALUES {values} ON {tablename} [NEXT | LAST];
Detayları gösterShow details
ParametrelerParameters

columnlist = comma seperated list of columns in the table which will be used in criteria

valuelist = comma seperated list of symbolnames that holds the criteria values

tablename = the destination table name

NotlarRemarks

BINARYSEARCH, SEQUENTIAL ve INDEXED kullanılabilir arama yöntemleridir.

- BINARYSEARCH: Varsayılan olarak Binary search algoritması kullanılır. LOCATERECORD komutundan önce table, buradaki column listesine göre artan sırada sort edilmiş olmalıdır. Aksi halde arama başarısız olur. Case duyarsız (non case sensitive) arama desteklenir. Eşleşen ilk kayda konumlanır (binary search algoritmasına göre değil, table sırasına göre). Table sort edilmiş olduğundan ve TROIA tarafından implementasyonu kolay olduğundan NEXT ve LAST seçenekleri DESTEKLENMEZ.

- SEQUENTIAL - Sıralı Arama: Sequential search algoritması kullanılır. LOCATERECORD komutundan önce table'ın sort edilmiş olması gerekmez. İlk record'dan başlanarak, arananı bulana kadar tüm record'lar dolaşılır. Case duyarsız arama desteklenir. NEXT ve LAST seçenekleri desteklenir. NEXT seçeneği, table üzerindeki aktif record'dan sonra aramaya başlar. LAST seçeneği son eşleşen record'a konumlandırır.

- INDEXED - Indexed Hash Arama: Hash search algoritması kullanılır. LOCATERECORD komutundan önce, BUILDHASHINDEX komutu kullanılarak table buradaki column listesine göre index'lenmiş olmalıdır. Aksi halde arama başarısız olur. Case duyarsız arama DESTEKLENMEZ. NEXT ve LAST seçenekleri desteklenir. NEXT seçeneği, table üzerindeki aktif record'dan sonra aramaya başlar. LAST seçeneği son eşleşen record'a konumlandırır.

UYARILAR:

- Binary search kullanmak için table, LOCATERECORD komutundan önce sort edilmiş olmalıdır. Sort sırasının ve case duyarlılığının, LOCATERECORD komutunda kullanılacak seçeneklerle aynı olmasına dikkat edin. Ayrıca bazen db sort algoritmasının (veya collation order'ın) sistemle aynı olmayabileceğini unutmayın. Farklıysa ve criteria column'larınızda dile özgü karakterler veya karışık büyük/küçük harf değerleri varsa arama başarısız olabilir.

- Indexed hash search kullanmak için, LOCATERECORD komutunda kullanılacak isimle aynı isimde istenen index'in, LOCATERECORD komutu çağrılmadan önce oluşturulmuş olması gerekir. Indexed hash search algoritmasıyla NOTCASESENSITIVE seçeneğini kullanamazsınız.

- Artık ihtiyaç kalmadığında, table'ın oluşturulmuş index'ini temizlemek için şunu çağırabilirsiniz:

   BUILDHASHINDEX indexname COLUMNS '' ON tablename;

BINARYSEARCH, SEQUENTIAL and INDEXED are available seach methods.

- BINARYSEARCH : By default Binary search algorithm is used. Table must have been sorted in ascending order according to the column

   list here before LOCATERECORD command. Otherwise search fails. Non case sensitive search is supported. Located on the 
   first occurance of matching record (not according to binary search algorithm, but according to the table order). As the table is 
   sorted and implementation by TROIA is easy NEXT  LAST options are NOT supported.

- SEQUENTIAL - Sequential Search : Sequential search algorithm is used. It is not needed that the table is sorted before

   LOCATERECORD command. Starting from the first record all records will be traversed till searched is found. Non case 
   sensitive search is supported. NEXT and LAST options are supported. NEXT option starts searching after the active
   record on the table. LAST option causes to locate to the last matching record. 

- INDEXED - Indexed Hash Search : Hash search algorithm is used. Using BUILDHASHINDEX command table must have been

   indexed according to the column list here before LOCATERECORD command. Otherwise search fails. Non case sensitive 
   search is NOT supported. NEXT and LAST options are supported. NEXT option starts searching after the active
   record on the table. LAST option causes to locate to the last matching record. 

WARNINGS :

- To use binary search table should have been sorted before LOCATERECORD command. Please be aware that sorting orders

     and case sensitivity should be same with the options will be used in  LOCATERECORD command. Also be aware of that sometimes 
     db sorting algorithm (or collation order) might not be same with the system. If they differ search may fail if you have language 
     specific characters or mixed case values in your criteria columns. 

- To use indexed hash search desired index with the same name that will be used in LOCATERECORD command should have

     been created before LOCATERECORD command was called. You cannot use NOTCASESENSITIVE option with indexed hash 
     searching algorithm.

- When there is no more need, to clear a created index of table you can call

        BUILDHASHINDEX indexname COLUMNS '' ON tablename;
ÖrnekExample
OBJECT: STRING P1, STRING P2, STRING TMPSTR1, STRING TMPSTR2, STRING TMPSTR3;

 P1 = 'HOZKARA';

 P2 = 'ABCD';



 SELECT * FROM IASUSERS WHERE CLIENT = SYS_CLIENT INTO TMPTABLE;



/* following usage uses binary seach as searching algorithm

        SORT TMPTABLE ON USERNAME,CREATEDBY;

        LOCATERECORD COLUMNS USERNAME,CREATEDBY VALUES P1,P2 ON TMPTABLE;

*/

/* following  usage is also possible where needed and works same with the one above

        TMPSTR1 = 'USERNAME,CREATEDBY';

        TMPSTR2 = 'P1,P2';

        TMPSTR3 = 'TMPTABLE';

        LOCATERECORD COLUMNS @TMPSTR1 VALUES @TMPSTR2 ON @TMPSTR3;        

*/



/* following example uses sequential search where pre sorting is not required

        LOCATERECORD SEQUENTIAL COLUMNS USERNAME,CREATEDBY VALUES P1,P2 ON TMPTABLE;

*/

/*

    following is an INCORRECT example : (table name should not be given with column name!)



        LOCATERECORD SEQUENTIAL COLUMNS TMPTABLE_USERNAME VALUES MYUSER ON TMPTABLE;



   this potential mistake can occur while correcting codes like follows :

        LOOP AT TMPTABLE

        BEGIN

                IF TMPTABLE_USERNAME == MYUSER THEN

                        FOUND = 1;

                        BREAK;

                ENDIF;

        ENDLOOP;

*/



/* following example uses indexed hash search where pre sorting is not required but building the index is a must before LOCATERECORD command

        TMPSTR1 = 'USERNAME+CREATEDBY';

        BUILDHASHINDEX TMPSTR1 COLUMNS USERNAME,CREATEDBY ON TMPTABLE;



    or



        TMPSTR1 = 'USERNAME+CREATEDBY';

        TMPSTR2 = 'USERNAME,CREATEDBY';

        TMPSTR3 = 'TMPTABLE';

        BUILDHASHINDEX TMPSTR1 COLUMNS @TMPSTR2 ON @TMPSTR3;





        LOCATERECORD INDEXED TMPSTR1 VALUES P1,P2 ON TMPTABLE;

*/
İlgili KomutlarRelated Commands
BUILDHASHINDEX
LOG10()Math Functions

Tabanı 10 olan algoritmaları hesaplar.

Calculates algorithms with base 10.

LOG10 ({value});
Detayları gösterShow details
ParametrelerParameters

value = a value whose logarithm is to be found

NotlarRemarks

LOG10 function'ı, başarılıysa değerin logaritmasını döndürür. Değer <= 0 ise, hiçbir operation gerçekleştirilmez.

The LOG10 function returns the logarithm of the value if successful. If value <= 0 , no operation is held.

ÖrnekExample
OBJECT: 
 DECIMAL X;

X = LOG10(1000);
/* X = 3.00000 */
İlgili KomutlarRelated Commands
LN
LOGOUTSystem Functions

Server tarafı session'ı log out yapar ve client'ı kapatır.

Logs out the server-side session and closes the client.

Detayları gösterShow details
ParametrelerParameters

LOGOUT;

NotlarRemarks

Kullanıcıya client'ı kapatma hakkında sormaz, hemen kapatır.

It doesn't ask the user about closing the client, closes immediately.

LOOPBasic Troia

LOOP statement, table'lar üzerinde loop yapmak için kullanılır.

LOOP statement is used for looping on tables.

LOOP AT {tablename}

BEGIN  

        {block}  

ENDLOOP;



LOOP AT {tablename} WHERE { logical_expression}

BEGIN  

        {block}  

ENDLOOP;



LOOP AT {tablename} CRITERIA COLUMNS {columnlist} VALUES {valuelist} [NOTCASESENSITIVE]

BEGIN  

        {block}  

ENDLOOP;



LOOP AT {tablename} CRITERIA INDEXED INDEX {indexname} VALUES {values}

BEGIN  

        {block}  

ENDLOOP;
Detayları gösterShow details
ParametrelerParameters
tablename         =  any table
columnlist          = comma separated list of columns of the table which will be used in criteria
valuelist             = comma separated list of symbolnames that holds the criteria values 
block                 = One or more statements separated by colons. Can contain block statements as well.
NotlarRemarks

While loop'lar istenilen seviyeye kadar nest edilebilir; ancak tek bir table üzerinde nested loop yapılamaz.

LOOP komutuna iki yeni parametre eklendi (WHERE ve CRITERIA). v3.08.11 BUILD-062901 sürümünden itibaren kullanılabilir.

Olası kullanımlar:

1- WHERE seçeneğini kullanma

    LOOP AT tablename  WHERE logical_expression
    Verilen table üzerinde loop yapar. "logical_expression"da verilen expression'ı çalıştırır. Expression true (>0) ise code block'u çalıştırır. Değilse record'u atlar. Bu kullanım performansı yaklaşık %100 artırır.
    Örnek:
        LOOP AT TMPTABLE  WHERE TMPTABLE_USERNAME=='HOZKARA' && TMPTABLE_CREATEDBY=='HAKAN'
        BEGIN
                ....
        ENDLOOP;
    şuna eşittir:
        LOOP AT TMPTABLE
        BEGIN
                IF TMPTABLE_USERNAME=='HOZKARA' && TMPTABLE_CREATEDBY=='HAKAN' THEN
                        ....
                ENDIF;
        ENDLOOP;
    Başka bir örnek:
        LOOP AT IASCUSTPER WHERE IASCUSTPER_SELECTED
        BEGIN
                IASCUSTPER_CUSTOMER = NEWCUSTOMER;
        ENDLOOP;

2- CRITERIA seçeneğini COLUMNS ile kullanma

    LOOP AT tablename  CRITERIA COLUMNS column1,column2,... VALUES valuesymbol1,valuesymbol2,... [NOTCASESENSITIVE]
    Table üzerinde loop yapar ve record'ların criteria column'larının verilen value'larla eşleşip eşleşmediğini kontrol eder. Record criteria ile eşleşirse code block'u çalıştırır. Eşleşmezse bir sonraki record'a geçer. Karşılaştırma case duyarsız yapılacaksa "NOTCASESENSITIVE" seçeneği kullanılabilir. Case duyarsız karşılaştırma için client bilgisayarın locale ayarı kullanılır. Performansı yaklaşık %2500 artırır.
    Örnek:
        LOOP AT TMPTABLE  CRITERIA COLUMNS USERNAME,CREATEDBY VALUES 'HOZKARA','HAKAN'
        BEGIN
                ....
        ENDLOOP;
    Başka bir örnek:
        INTEGERVAR1 = 0;
        LOOP AT TMPTABLE CRITERIA COLUMNS SELECTED VALUES 1
        BEGIN
                INTEGERVAR1 = INTEGERVAR1 + 1;
        ENDLOOP;
    HATALI bir örnek: (table ismi column ismiyle birlikte verilmemelidir!)
        LOOP AT TMPTABLE  CRITERIA COLUMNS TMPTABLE_USERNAME VALUES MYUSER
        BEGIN
                ....
        ENDLOOP;
    Bu olası hata, aşağıdaki gibi kodları düzeltirken ortaya çıkabilir:
        LOOP AT TMPTABLE
        BEGIN
                IF TMPTABLE_USERNAME == MYUSER THEN
                        ....
                ENDIF;
        ENDLOOP;

3- CRITERIA seçeneğini INDEXED ile kullanma

    LOOP AT tablename  CRITERIA INDEXED INDEX indexsymbolname VALUES valuesymbol1,valuesymbol2,...
    BUILDHASHINDEX komutu kullanılarak, table üzerinde gerekli column'lara indexsymbolname isimli bir index oluşturulmalıdır. Ardından INDEXED seçeneğini kullanabilirsiniz. Index'ten eşleşen record'ları okur ve bu record'lar üzerinde loop yapar. Bu yöntem performansı dramatik şekilde artırır (yaklaşık %35000). Ancak programcı, record'ların index'inin dinamik olarak yeniden oluşturulmadığını unutmamalıdır. Record'lar değiştiğinde, LOOP çağrılmadan önce yeniden oluşturulmalıdır.
    Örnek:
        BUILDHASHINDEX INDEXNAME COLUMNS USERNAME,CREATEDBY ON TMPTABLE;
        LOOP AT TMPTABLE  CRITERIA INDEXED INDEX INDEXNAME VALUES 'HOZKARA','HAKAN'
        BEGIN
                ....
        ENDLOOP;

Notlar:
- LOCATERECORD komutu bir virtual table içinde belirli bir record'u bulmak için tasarlandığından; bir virtual table içinde tek bir record bulmak amacıyla loop yapıyorsanız, table üzerinde loop yapmak yerine LOCATERECORD kullanmak daha iyidir.

While loops can be nested to any level no nested loop can be made on a single table.

Two new parameters (WHERE and CRITERIA) are added to command LOOP.

Available in release v3.08.11 BUILD-062901

Possible usages are :

1- Using WHERE option

    LOOP AT tablename  WHERE logical_expression 
    Loops on a given table. Runs the expression given in "logical_expression". If the expression is true(>0) runs the code block. Otherwise, skips the record. This usage improves performance aprox.  100%

Example :

        LOOP AT TMPTABLE  WHERE TMPTABLE_USERNAME=='HOZKARA' && TMPTABLE_CREATEDBY=='HAKAN' 
        BEGIN

....

        ENDLOOP;

is same with

        LOOP AT TMPTABLE  
        BEGIN
                IF TMPTABLE_USERNAME=='HOZKARA' && TMPTABLE_CREATEDBY=='HAKAN' THEN

....

                ENDIF;
        ENDLOOP;
    Another example :
        LOOP AT IASCUSTPER WHERE IASCUSTPER_SELECTED
        BEGIN
                IASCUSTPER_CUSTOMER = NEWCUSTOMER;
        ENDLOOP;
2-  Using CRITERIA option with COLUMNS         
    LOOP AT tablename  CRITERIA COLUMNS column1,column2,... VALUES valuesymbol1,valuesymbol2,... [NOTCASESENSITIVE]
    Loops on the table and checks if the records criteria columns matches with the values given. If record matches with the criteria runs the code block. Otherwise skips to the next record. "NOTCASESENSITIVE" option can be used if the comparison should be done incasesensitive. Locale setting of client computer will be used for noncasesensitive comparison. Improves performance aprox 2500%. 

Example :

        LOOP AT TMPTABLE  CRITERIA COLUMNS USERNAME,CREATEDBY VALUES 'HOZKARA','HAKAN' 
        BEGIN

....

        ENDLOOP;
    Another example :
        INTEGERVAR1 = 0;
        LOOP AT TMPTABLE CRITERIA COLUMNS SELECTED VALUES 1
        BEGIN
                INTEGERVAR1 = INTEGERVAR1 + 1;
        ENDLOOP;
    An INCORRECT example : (table name should not be given with column name!)
        LOOP AT TMPTABLE  CRITERIA COLUMNS TMPTABLE_USERNAME VALUES MYUSER 
        BEGIN

....

        ENDLOOP;
    This potential mistake can occur while correcting codes like follows :
        LOOP AT TMPTABLE
        BEGIN
                IF TMPTABLE_USERNAME == MYUSER THEN

....

                ENDIF;
        ENDLOOP;
3-  Using CRITERIA option with INDEXED         
    LOOP AT tablename  CRITERIA INDEXED INDEX indexsymbolname VALUES valuesymbol1,valuesymbol2,... 
    Using BUILDHASHINDEX command, an index on required columns should be created with the name in symbol indexsymbolname on the table. Then you can use INDEXED option. Reads matching records from the index and loops on these records. This method improves the performance dramatically (aprox 35000%). But programmer should not forget that index of records is not dynamicly recreated. It should be recreated whenever the records are changed, before the LOOP is called. 

Example :

        BUILDHASHINDEX INDEXNAME COLUMNS USERNAME,CREATEDBY ON TMPTABLE;
        LOOP AT TMPTABLE  CRITERIA INDEXED INDEX INDEXNAME VALUES 'HOZKARA','HAKAN' 
        BEGIN

....

        ENDLOOP;

Remarks :

- As the LOCATERECORD command is implemented to find a certain record in a virtual table; if you are looping to find a single record in a virtual table, using LOCATERECORD is better than looping on the table.

ÖrnekExample
LOOP AT IASCUSTPER

BEGIN



         IF  IASCUSTPER_INSERTED THEN

              MOVE SYS_CLIENT TO IASCUSTPER_CLIENT;

              MOVE IASCUSTOMER_COMPANY TO IASCUSTPER_COMPANY;

              MOVE IASCUSTOMER_CUSTOMER TO IASCUSTPER_CUSTOMER;

              INSERT INTO IASCUSTPER;

         ENDIF;



ENDLOOP;
İlgili KomutlarRelated Commands
WHILE BUILDHASHINDEX LOCATERECORD
LOWERCASE()String Manipulation

Verilen herhangi bir text parametresini system locale kullanarak lowercase'e (küçük harfe) dönüştürür.

Converts any given text parameter to lowercase using system locale

LOWERCASE({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1 = String to be converted

variable2 = Language (T,E,D,F,P)

NotlarRemarks

Return Value

String:

İstenen string'i lowercase olarak döndürür.

Return Value

String:

Returns the desired string in lowercase.

ÖrnekExample
OBJECT: 
 STRING S1,
 STRING S2;

S1 = 'IAS';
S2 = LOWERCASE(S1,'T');
/* S2 is 'ıas' now. */
S2 = LOWERCASE(S1,'E');
/* S2 is now 'ias'. */
İlgili KomutlarRelated Commands
UPPERCASE
MAILLOGOFFMail

Mail server'dan log off yapar.

Logs off from the mail server.

MAILLOGOFF;
Detayları gösterShow details
ÖrnekExample
OBJECT : STRING PROTOCOL;

PROTOCOL = 'pop3';

MAILLOGON 192.168.0.9 fahrit f23df2 PROTOCOL;

GETMAILBOX INTO TMPTABLE;

MAILLOGOFF;
İlgili KomutlarRelated Commands
MAILLOGON GETMAILBOX GETMAILDATA SETMAILFLAG
MAILLOGONMail

Mail almak için istenen mail server'a log on yapar.

Logs on to the desired mail server in order to get mail.

MAILLOGON HOST USERNAME PASS PROTOCOL;
Detayları gösterShow details
ParametrelerParameters

HOST : is the hostname of the mail server

USERNAME : is the username of the mail account

PASS : is the password of the mail account

PROTOCOL : The mail protocol.

NotlarRemarks

Protocol pop3 veya imap olabilir...

Protocol can be pop3 or imap...

ÖrnekExample
OBJECT : STRING PROTOCOL;

PROTOCOL = 'pop3';

MAILLOGON 192.168.0.9 fahrit f23df2 PROTOCOL;
İlgili KomutlarRelated Commands
MAILLOGOFF GETMAILBOX GETMAILDATA SETMAILFLAG
MAKEFTPCONNECTIONFTP Commands

File server ile application server arasında bir file session'ı oluşturur.

Creates a file session between file server and application server

MAKEFTPCONNECTION HOST {host} [PORT {port}] [USERNAME {username}] [PASSW {password}][ PROTOCOL {FTP|FTPS|SFTP}];
Detayları gösterShow details
ParametrelerParameters

{host}: File Server IP or name. Host parameter is also used as connection id.
PROTOCOL: Programmer must select one of FTP/FTPS/SFTP protocols due to file server. This option is not a symbol and must be selected on development stage. This is an optional parameter default option is FTP.
{port}: File Server Connection’s port. Port is also an optional parameter. System automatically uses different port numbers due to protocol. (FTP: 21, FTPS: 990, SFTP: 22)
{username},{password}: Are optional parameters to give user credentials for authentication.

NotlarRemarks

Olası başarısızlıklar TRACE dosyasından ve SYS_STATUS, SYS_STATUSERROR variable'larından izlenebilir.
ClassNotFoundException: gerekli library'ler eksik, lütfen installation/deployment bölümünü okuyun.
com.ias.server.ftp.iasFileServerException: java.net.UnknownHostException: …
Application server verilen host'a erişemiyor, connection'ınızı kontrol edin.
ftp connection already exists to … :
Sistem aynı file server'a birden fazla connection oluşturmaya izin vermez. Lütfen ftp connection'ınızı kapattığınızdan emin olun. Ayrıca, tek bir connection üzerinde birden fazla file transfer operation'ına izin verilir, bu yüzden tekrar connection oluşturmaya gerek yoktur.
… Login or password incorrect! veya … Auth Fail : Invalid connection credential

Possible failures can be traced from TRACE file and SYS_STATUS, SYS_STATUSERROR variables.
ClassNotFoundException: missing required libraries, please read installation/deployment section.
com.ias.server.ftp.iasFileServerException: java.net.UnknownHostException: …
Application server cannot access given host, check your connection.
ftp connection already exists to … :
System does not allow to create multiple connections to same file server. Please be sure that you closed your ftp connection.
Additionally, multiple file transfer operations allowed on a single connections, so there is no need to create connection again.
… Login or password incorrect! or … Auth Fail : Invalid connection credential

ÖrnekExample
OBJECT: 

STRING FTPHOST,

STRING FTPPASS,

STRING FTPUSER;



FTPHOST = 'anyftp.com.tr';

FTPUSER = 'user';

FTPPASS = 'password';



MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;



CLOSEFTPCONNECTION FTPHOST;
İlgili KomutlarRelated Commands
CLOSEFTPCONNECTION, FTPUPLOAD, FTPDOWNLOAD, FTPCOMMAND
MAKENEWCONNECTIONDatabase

Bir database'e connection kurar.

Establishes a connection to a database.

MAKENEWCONNECTION {connection_name} {user_name} {password} {server_name} {db_name };
Detayları gösterShow details
ParametrelerParameters
connection_name         = name of the connection to be established.
user_name                          = any valid username in network.
password                         = password of the declared username.
server_name                 = name of the server which database is kept.
db_name                         = name of the database to be connected.
NotlarRemarks

Tüm parametreler geçerli olmalı ve her biri virgülle ayrılmalıdır.

All parameters should be valid and each should be seperated with a comma.

ÖrnekExample
MAKENEWCONNECTION CON01 JOHN xxxxx MAINSERVER USERSDB;



/*

Above statement tries to connect the user JOHN with password xxxxx, 

to the USERSDB database located in server MAINSERVER. 

And the name given to the connection is CON01.

*/
İlgili KomutlarRelated Commands
SETACTIVECONNECTION
MAPXML Parsing

Bir xml document'inin element'lerini, CREATEXMLMAP tarafından tanımlanan map kullanarak table yapısına map eder.

Maps the elements of an xml document into table structure using map defined by CREATEXMLMAP.

MAP ELEMENT element_name1 AS {XMLTABLE|XMLROOTTABLE} table_name IN mapname;

MAP (ATTRIBUTE|CHILD) element_name2  OF element_name1  AS XMLCOLUMN column_name IN mapname;

MAP PCDATA OF element_name1 AS XMLCOLUMN column_name IN mapname;

MAP RELATION element_name1 TO element_name3 LINK primary_key WITH foreign_key GENERATE (YES|NO) IN mapname;
Detayları gösterShow details
ParametrelerParameters

element_name1 , element_name3 = name of the xml element that is mapped as table

element_name2 = name of the xml sub-element that is mapped as column

table_name = specifies the name of the table

column_name = specifies the name of column

primary_key = specifies the name of the column that points the primary key of table

foreign_key = specifies the name of the column that points the foregin key of table

mapname = specifies the name of the map

NotlarRemarks

1. Her zaman bir xml element'i XMLROOTTABLE olarak map edilmelidir. Document parse etme bu noktadan başlar.

2. XMLTABLE, TROIA'nın virtual table'ı değildir. Bu XMLTABLE'ları TROIA'nın virtual table'ına dönüştürmek için CONVERTXMLTABLE command'ı kullanılmalıdır.

3. MAP RELATION command'ı, table'lar arasında bir item-subitem ilişkisi oluşturmak için kullanılır.

4. MAP RELATION'da GENERATE YES ile kullanılırsa, ilgili table'larda yeni column'lar (primary_key, foreign_key) oluşturulur. Bu durumda bu column'lar 1'den başlayan integer değerler alır. GENERATE NO ile kullanılırsa, ilgili table'ları bağlamak için zaten map edilmiş xml column'ları kullanılır.

5. MAP command'ları yalnızca bir xml document'i ile TROIA arasında bir mapping oluşturmak için kullanılır. Bu, map command'larının yalnızca yapılar oluşturduğu şeklinde düşünülebilir. Document işleme ve bu yapıları doldurma, PARSEXML command'ı ile başlar.

1. Always one xml element must be mapped as XMLROOTTABLE. Document parsing begins from that point.

2. XMLTABLE is not TROIA's virtual table. To convert these XMLTABLEs into TRIOA's virtual table, CONVERTXMLTABLE command must be used.

3. MAP RELATION command is used to generate a item-subitem relation between tables.

4. If GENERATE is used with YES in MAP RELATION , new columns(primary_key,foreign_key) are created in related tables .

In this case these columns take integer values beginning from 1. If GENERATE is used with NO, already mapped xml columns are used to connect the

related tables.

5. MAP commands are only used to form a mapping between an xml document and TROIA. This can be thought as map commands just create

structures. The document processing and filling in these structures begins with PARSEXML command.

ÖrnekExample
/* example xml file sales_in.xml */
/*

<?xml version="1.0" ?>

<Orders>

   <SalesOrder SONumber="123">

      <Customer CustNumber = "543">

         <CustName>ABC Industries</CustName>

         <Street>123 Main St.</Street>

         <City>Chicago</City>

         <State>IL</State>

         <PostCode>60609</PostCode>

      </Customer>

      <OrderDate>02.01.99</OrderDate>

      <Line LineNumber="1">

         <Part PartNumber="123">

            <Description>

               <P><B>Turkey wrench</B><BR />

               Stainless steel, one-piece construction,

               lifetime guarantee.</P>

            </Description>

            <Price>9.95</Price>

         </Part>

         <Quantity>10</Quantity>

      </Line>

      <Line LineNumber="2">

         <Part PartNumber="ab-c">

            <Description>

               <P><B>Stuffing separator</B><BR />

               Aluminum, one-year guarantee.</P>

            </Description>

            <Price>13.27</Price>

         </Part>

         <Quantity>5</Quantity>

      </Line>

   </SalesOrder>

</Orders>

*/
CLEAR XMLMAP SALESMAP;
CREATEXMLMAP SALESMAP;
MAP ELEMENT P AS XMLTABLE P IN SALESMAP;
MAP PCDATA OF P AS XMLCOLUMN PPCDATA IN SALESMAP;
MAP ELEMENT Description AS XMLTABLE DESCRIPTION IN SALESMAP;
MAP RELATION P TO Description LINK DescPK WITH DescFK GENERATE YES IN SALESMAP;
MAP ELEMENT Part AS XMLTABLE PARTS IN SALESMAP;
MAP ATTRIBUTE PartNumber OF Part AS XMLCOLUMN PartNumber IN SALESMAP;
MAP CHILD Price OF Part AS XMLCOLUMN Price IN SALESMAP;
MAP RELATION Description TO Part LINK PartPK WITH PartFK GENERATE YES IN SALESMAP;
MAP ELEMENT Line AS XMLTABLE LINE IN SALESMAP;
MAP ATTRIBUTE LineNumber OF Line AS XMLCOLUMN LineNumber IN SALESMAP;
MAP CHILD Quantity OF Line AS XMLCOLUMN Quantity IN SALESMAP;
MAP RELATION Part TO Line LINK LineNumber WITH LineNumber GENERATE NO IN SALESMAP;
MAP ELEMENT Customer AS XMLTABLE CUSTOMER IN SALESMAP;
MAP ATTRIBUTE CustNumber OF Customer AS XMLCOLUMN CustNumber IN SALESMAP;
MAP CHILD CustName OF Customer AS XMLCOLUMN CustName IN SALESMAP;
MAP ELEMENT SalesOrder AS XMLTABLE SALESORDER IN SALESMAP;
MAP ATTRIBUTE SONumber OF SalesOrder AS XMLCOLUMN SONumber IN SALESMAP;
MAP CHILD OrderDate OF SalesOrder AS XMLCOLUMN OrderDate IN SALESMAP;
MAP RELATION Line TO SalesOrder LINK SONumber WITH SalesFK GENERATE NO IN SALESMAP;
MAP RELATION Customer TO SalesOrder LINK SONumber WITH SONumber GENERATE No IN SALESMAP;
MAP ELEMENT Orders AS XMLROOTTABLE Orders IN SALESMAP;
PARSEXML 'D:\pegasus\pegasus_208\sales_in.xml' USING SALESMAP;
CONVERTXMLTABLE PARTS INTO TABLE PARTS FROM SALESMAP;
CONVERTXMLTABLE LINE INTO TABLE LINE FROM SALESMAP;
CONVERTXMLTABLE CUSTOMER INTO TABLE CUSTOMER FROM SALESMAP;
CONVERTXMLTABLE SALESORDER INTO TABLE SALESORDER FROM SALESMAP;
İlgili KomutlarRelated Commands
PARSEXML,CREATEXMLMAP,CONVERTXMLTABLE
MARKERPOINTSystem Variables

Chart control'leriyle kullanılan ve marker'ın yerleştirildiği noktayı takip eden bir Global variable.

A Global variable used with Chart controls and keeps track of the point where the marker is placed on.

MARKERPOINT;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer.

Bu variable her zaman bir Chart control ile kullanılır.

Bir marker change event'i oluşursa, bu variable güncellenir. Başlangıç değeri 0'dır.

Return Value

Integer.

This variable is always used with a Chart control.

If a marker change event occurs, this variable is updated. Initial value is 0.

MARKERSETSystem Variables

Chart control'leriyle kullanılan ve marker'ın yerleştirildiği set'i takip eden bir Global variable.

A Global variable used with Chart controls and keeps track of the set where the marker is placed on.

MARKERSET;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer.

Bu variable her zaman bir Chart control ile kullanılır.

Bir marker change event'i oluşursa, bu variable güncellenir. Başlangıç değeri 0'dır.

Return Value

Integer.

This variable is always used with a Chart control.

If a marker change event occurs, this variable is updated. Initial value is 0.

MEMBERBasic Troia

Transaction'lar için variable'ların ismini ve type'ını tanımlar ve symbol oluşturur. Bu symbol'ler table, class veya standart type tanımı olabilir.

Defines the name and type of variables for transactions and creates symbols. These symbols can be tables, classes, or standard type definitions.

MEMBER: [TABLE variable_name,][STRING variable_name,][INTEGER variable_name,][DATE variable_name,][TIME variable_name,][DATETIME variable_name,][LONG variable_name,][class_type variable_name];
MERGETABLETable

Bir source virtual table'dan belirli row'ları bir target virtual table'a ekler.

Add specific row/s from a source virtual table to a target virtual table.

MERGETABLE {source_table_name} INTO {target_table_name} [WITHFLAGS] [WHERE {clause} | CRITERIA COLUMNS {column1,column2,…} VALUES {valuesymbol1,valuesymbol2,…}];
Detayları gösterShow details
ParametrelerParameters

source_table_name: a virtual table
target_table_name: another virtual table
clause: an if clause block for the records on the source table to move
column/value: a search criteria columns and values for the records on the source table to move

NotlarRemarks

MERGETABLE command'ı yalnızca virtual table'ı etkiler.

MERGETABLE command only affects the virtual table.

ÖrnekExample
/* By using RDTT01 */
OBJECT: 
 TABLE DENEME;

SELECT USERNAME,CLIENT 
	FROM IASUSERS 
	WHERE 1=2 
	INTO DENEME;

MERGETABLE TMPTABLE INTO DENEME WHERE TMPTABLE_USERNAME == 'AAYTEKIN';
COPY TABLE DENEME INTO TMPTABLE;
/* By creating two tables from development */
SELECT * 
	FROM IASUSERS 
	INTO SOURCETABLE;

SELECT USERNAME,CLIENT 
	FROM IASUSERS 
	WHERE 1 = 2 
	INTO VIRTUALTABLE;

MERGETABLE SOURCETABLE INTO VIRTUALTABLE WITHFLAGS WHERE SOURCETABLE_USERNAME == ‘AAYTEKIN’;
MERGETABLE SOURCETABLE INTO VIRTUALTABLE WITHFLAGS CRITERIA COLUMNS USERNAME VALUES ‘AAYTEKIN’;
MESSAGEBasic Troia

Bir dialog box içinde mesaj gösterir ve kullanıcının bir buton seçmesini bekler.

Displays a message in a dialog box, waits for the user to choose a button.

MESSAGE {id_name} {cnnn} [DEFAULTOPTION int1] [OPTIONS string1] WITH parameter_list;
Detayları gösterShow details
ParametrelerParameters
id_name         = string , 3 characters long
cnnn                 = c (Message Type) can be any of these values:  

C (confirmation)

O (options)

E (error)

W (warning)

I (information)

other characters are treated as I(information)

nnn = Error number

int1                   = (zero-based) number of the option button which should be chosen when user presses ENTER key or transaction is running in batch mode.

For "Confirmation" type of messages, DEFAULTOPTION 0 corresponds to YES, DEFAULTOPTION 1 corresponds to NO.

string1             = semi-column separated list of strings that should appear on the option buttons. If not specified here, it is taken from OPTIONS column of table IASERRMSG

This parameter is considered only if the c (Message Type) is O(Options).

parameter_list = any type of string. Up to four parameters is accepted. Parameters are seperated with spaces.

ÖrnekExample
/* A.  Message with two parameters where one of them is a variable and the other is a string. */

MESSAGE SYS E100 WITH '01' DEBIA_NAME;

/* B. */

MESSAGE BAS C101 WITH DEBIA_DEBNR DEBIA_NAME;

/* C. */

MESSAGE SYS C020 DEFAULTOPTION 1 WITH CMDTABLE_COMMAND;



IF CONFIRM == 'NO' THEN

        RETURN;

ENDIF;



/* D. */

STRINGVAR1 = 'By plane;By train';

MESSAGE SYS O020 DEFAULTOPTION 1 OPTIONS STRINGVAR1 WITH;



SWITCH CONFIRM 

CASE 0:

        /* User has chosen By plane */

CASE 1:

        /* User has chosen By train */

ENDSWITCH;
İlgili KomutlarRelated Commands
CONFIRM
MILLISECONDSTODATE()Date Functions

Milisaniyeyi date değerine dönüştürür.

Converts miliseconds to date value.

MILLISECONDSTODATE({variable1});
Detayları gösterShow details
ParametrelerParameters

variable1 = An integer value of milliseconds.

NotlarRemarks

İstenen milisaniyenin date değerini döndürür.

Returns the date value of the desired milliseconds.

ÖrnekExample
OBJECT: DATE D1, INTEGER MS1;

MS1 = 112132322121;

D1 = MILLISECONDSTODATE(MS1);
MODIFYTable

Bir virtual table'daki bir column'un metadata'sını değiştirir.

Modifies the meta data of a column in a virtual table.

MODIFY COLUMN {newcolname},{coltype},{collen} TO {virtualtable_column};
Detayları gösterShow details
ParametrelerParameters
virtualtable_column         = Specifies the name of the column to be modified. 
newcolname         = Specifies the new name of the column.
coltype                = Specifies the type of the column.
collen                = Specifies the length of the column.
NotlarRemarks

MODIFY column command'ı, istenen column'un metadata'sını değiştirir. Developer'lar bu command'ı kullanırken, özellikle column type'larını değiştirirken çok dikkatli olmalıdır. Bu command database table'ında HİÇBİR değişiklik yapmaz, yalnızca virtual table'ın column data'sını değiştirir.

MODIFY column command changes the meta data of the desired column. Developers must be very careful when using this command, especially when changing types of columns. This command will NOT make any changes on the database table, it only changes the virtual tables column data.

ÖrnekExample
SELECT * 
	FROM IASUSERS 
	INTO TMPTABLE;

MODIFY COLUMN NEWUSERNAME, STRING,25  TO TMPTABLE_USERNAME;
/*

On the example above there is no more USERNAME column on the TMPTABLE but NEWUSERNAME column. 

Original username field has 36 length but if you change it to 25 the rest of the data 

will be lost after the 25th characters. 

*/
MODIFY COLUMN NEWUSERNAME, INTEGER,25  TO TMPTABLE_USERNAME;
 /*

If you change the type of a column as above beware that you may loose the data on the rows. 

*/
İlgili KomutlarRelated Commands
APPEND REMOVE
MONEYTOTEXT()FUNCTION

Verilen bir sayıyı yazılı format'a (okunduğu gibi) dönüştürür.

Converts a given number into written format(as it is read).

MONEYTOTEXT ({money_value}, {language});
Detayları gösterShow details
ParametrelerParameters
money_value          = any value which is to be converted. An integer or String value
language	     = specifies the language of converted text can be:

'E' for English

	'T'   for Turkish

'G' for German

NotlarRemarks

Return Value

String:

Variable'ın belirtilen dildeki okunuş format'ını döndürür.

Return Value

String:

Returns the read format of variable in specified language.

ÖrnekExample
OBJECT: STRING STR, STRING STR1, STRING STR2, 

                		STRING LANG1, STRING LANG2; 



STR = '123';

LANG1 = 'E';

LANG2 = 'T';

STR1 = MONEYTOTEXT(STR,LANG1);

STR2 = MONEYTOTEXT(STR,LANG2);



After MONEYTOTEXT function is executed:



STR1 = 'one hundred and twenty three ';

STR2 = ' yüz yirmi üç ';
MOVEBasic Troia

{source} symbol'ünün değerini {destination} symbol'üne atar.

Assings {source} symbol value to {destination} symbol.

MOVE {source} TO {destination};
Detayları gösterShow details
ÖrnekExample
/* Example 1: assign an integer value to a variable */
MOVE 15 TO INGEGERVAR1;

/* Example 2: assign a string value to table field */
MOVE '100' TO TMPTABLE_USERNAME;

/* Example 3: assign a variable to table field */
MOVE STRINGVAR1 TO TMPTABLE_USERNAME;

/* Example 4: assign a table cell value to a string variable */
MOVE MATD_MATNR TO STRINGVAR1;
İlgili KomutlarRelated Commands
MOVE-CORRESPONDING
MOVE-CORRESPONDINGBasic Troia

İki table veya class field'ını birbirine eşitler.

Equalizes two tables or class fields to each other.

MOVE-CORRESPONDING {table_name|class_name} TO  {table_name|class_name} [WITHFLAGS];
Detayları gösterShow details
ParametrelerParameters
table_name                 = any table name
class_name         = any class name

WITHFLAGS = This optional flag indicates that the flags will be moved to the destination

NotlarRemarks

Destination ve source aynı türde olmalıdır.

Destination ve source table olduğunda; yalnızca source table'ın aktif satırı kopyalanır.

Destination and the source should be the same kind.

When the destination and the source are tables; only the active row of the source table is copied.

ÖrnekExample
MOVE-CORRESPONDING MATD TO MATG;

MOVE-CORRESPONDING P403 TO STPO;
İlgili KomutlarRelated Commands
MOVE
NORMDIST()Math Functions

Verilen bir parametre değeri için normal dağılımı (normal distribution) simüle eder.

Simulates the normal distribution for a given parameter value

NORMDIST({variable1});
Detayları gösterShow details
ParametrelerParameters

variable1 = a decimal value

NotlarRemarks

Return Value

DECIMAL.

Return Value

DECIMAL.

NOTSELECTEDSystem Variables

Bir select statement'ı hiç row döndürmediyse 1 döndüren bir Global Variable.

A Global Variable that returns 1 if a select statement returned no rows.

NOTSELECTED
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer.

ÖrnekExample
SELECT * FROM IASSYSTEM WHERE CLIENT = '33';

IF NOTSELECTED THEN

        STRINGVAR2 = 'EMPTY';

ENDIF;
NULLSystem Variables

Database action'ları için kullanılan bir Global Variable.

A Global Variable that is used for Database actions.

NULL
Detayları gösterShow details
NotlarRemarks

Boş bir String döndürür.

Returns an Empty String.

ÖrnekExample
SELECT * FROM IASSYSTEM WHERE SYSBROWSEVALUE = NULL;
NULLDATE()Date Functions

Verilen parametrenin null bir tarih olup olmadığını kontrol eder.

Checks whether the given parameter is a null date or not.

NULLDATE ({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name =Specifies the name of the time/datetime varibale.

NotlarRemarks

Return Value

Integer:

Verilen tarih null bir tarihse 1, aksi halde 0 döndürür.

Datetime tanımlı bir variable için null date ' . . : ' iken, diğer türlü ' . . ' şeklindedir.

Return Value

Integer:

Returns 1 if the given date is a null date, 0 otherwise.

Null date for a datetime defined variable is  ' . . : '   otherwise ' . . ' .
ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME TODAY,

 STRING STRDATE,

 INTEGER K,

 INTEGER L,

 INTEGER M;



DT = ' . . : ';

STRDATE = ' . . ';

K = NULLDATE(TODAY);

L = NULLDATE(DT);

M = NULLDATE(STRDATE);

/* After NULLDATE function is executed:



K = 0

L = 1

M = 1

*/
NUMPICTFORMAT()FUNCTION

Bir string'i verilen picture'a göre formatlar.

Formats a string according to the picture given.

NUMPICTFORMAT({variable_name},{picture});
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the string variable to be formatted

picture = specifies the picture which the variable to be formatted

NotlarRemarks

Return Value

String

Return Value

String

ÖrnekExample
OBJECT: 
 STRING PICT;

PICT = '-FL###,###,###.##';
STRINGVAR1 = '2349455';
STRINGVAR2 = NUMPICTFORMAT(STRINGVAR1,PICT);
 /* result =>2.349.455 */
NUMTOSTR()FUNCTION

Bir sayıyı bir string'e dönüştürür.

Converts a number to a string.

NUMTOSTR({variable});
Detayları gösterShow details
ParametrelerParameters

variable =A numeric value

NotlarRemarks

Return Value

String:

Numeric değerin string temsili.

Return Value

String:

String presentation of the numeric value.

ÖrnekExample
OBJECT: 
 STRING S,
 INTEGER I;

I = 107684;
S = NUMTOSTR(I);
/* S gets the value 'IAS' */
İlgili KomutlarRelated Commands
STRTONUM
OBJECTBasic Troia

Transaction'lar için variable'ların ismini ve type'ını tanımlar ve symbol oluşturur. Bu symbol'ler table, class veya standart type tanımı olabilir.

Defines the name and type of variables for transactions and creates symbols. These symbols can be tables, classes, or standard type definitions.

OBJECT: [TABLE variable_name , ]

                [STRING variable_name , ]     

                [INTEGER variable_name , ]    

                [DATE variable_name , ]       

                [TIME variable_name , ]       

                [DATETIME variable_name , ]   

                [LONG variable_name , ]       


                [class_type variable_name]  ;
Detayları gösterShow details
ParametrelerParameters

variable_name = Is the name of the variable.

class_type = Is a system or user-defined datatype.

NotlarRemarks

Bu type object tanımı, transaction içinde maksimum scope için geçerlidir:

-> Bir transaction'ın dialog event/function'ında OBJECT ile bir variable tanımlarsanız, bu variable, tanım kod satırından hemen sonra -tüm transaction- boyunca -global- bir object olur. Yani bu object'i herhangi bir dialog event/function veya class function'ında okuyup yazabilirsiniz.

-> _VARIABLES veya _CONSTRUCTOR class function'larında OBJECT ile bir variable tanımlarsanız, bu variable, tanım kod satırından hemen sonra -tüm class- boyunca -global- bir object olur. Yani bu object'i aynı class'ın herhangi bir function'ında okuyup yazabilirsiniz.

-> _VARIABLES ve _CONSTRUCTOR dışında bir class function'ında OBJECT ile bir variable tanımlarsanız, bu variable, tanım kod satırından hemen sonra yalnızca -o function- içinde -local- bir object olur. Yani bu object'i yalnızca class'ın o function'ında okuyup yazabilirsiniz.

This type object definition is valid for maximum scope in the transaction:

-> If you define any variable by OBJECT in a dialog event/function of a transaction, 
    this variable becomes a -global- object in -whole transaction- just after the definition code line.
    That is, you can read/write this object at any dialog event/function or any class function.
-> If you define any variable by OBJECT in class functions _VARIABLES or _CONSTRUCTOR, 
    this variable becomes a -global- object in -whole class- just after the definition code line.
    That is, you can read/write this object at any function of the same class.
-> If you define any variable by OBJECT in a class function except _VARIABLES and _CONSTRUCTOR, 
    this variable becomes a -local- object only in -that function- just after the definition code line.
    That is, you can read/write this object only in that function of the class.
ÖrnekExample
OBJECT: 
 TABLE MATB,
 STRING STR2,
 STRING STR1;

OBJECT: 
 TABLE MATB,
 STRING STR1,
 INTEGER INT1;
İlgili KomutlarRelated Commands
PARAMETERS
OPENFile

Bu command, log dosyası için handle açar.

This command opens handle for log file.

OPEN FILE {file_path_description};
OPEN FILE {file_path_description} FORNEW;
OPEN FILE {file_path_description} FORREAD;
OPEN FILE {file_path_description} FORAPPEND;
Detayları gösterShow details
ParametrelerParameters

file_path_description : path and name for the log file or a string variable.

FORNEW : this flag indicates that a new file will be created.

FORREAD : this flag indicates that the file will be opened read only.

FORAPPEND : this flag indicates that the file will be opened to add new data.

NotlarRemarks

CLOSE FILE command'ı ile birlikte kullanılmalıdır. Aksi halde değişiklikler dosyada güncellenmez.

Should be used together with the CLOSE FILE command. Otherwise changes won't be updated in the file.

ÖrnekExample
OBJECT:
INTEGER X,
STRING Y;

X = 11;
Y = 'Aslan';
OPEN FILE 'C:\TMP\xxx.txt';
PUT 21,X%6s,Y%12s;
CLOSE FILE;
İlgili KomutlarRelated Commands
CLOSE
OPENPORTPort Communication

Erişim için istenen port'u açar.

Opens the desired port for access.

OPENPORT {port} {portname} [PARAMETERS [BAUDRATE {bauds}] 

                                       [DATABITS {databits}] 

                                       [STOPBITS {stopbits}] 

                                       [PARITY NONE|ODD|EVEN|MARK|SPACE] 

                                       [FLOWCONTROL NONE|RTSCTSIN|RTSCTSOUT|XONXOFFIN|XONXOFFOUT] 

                                       [RTS {rts}] 

                                       [DTR {dtr}] 

                                       [ENCODING {encoding}] 

                                       [DEBUG TRUE|FALSE] ];
Detayları gösterShow details
ParametrelerParameters
port = string/constant that indicates port ID to be opened (COM1,COM2...)

portname = string/constant that indicates user defined name of the port to be opened. This name will be used to access the port from now on. If starts with '*' indicates that port is at client side.

baudrate = integer/constant indicating communication speed in bauds for serial ports (ex: 2400, 9600, etc).

databits = integer/constant indicating number of bits in each data for serial port communication. valid values are 5,6,7 and 8.

stopbits = integer/constant indicating number of bits that indicates to stop communication for serial ports. valid values are 1,2 and 3(means 1.5).

rts = integer/constant indicating if RTS will be used in serial communication. valid values are 0 and 1.

dtr = integer/constant indicating if DTR will be used in serial communication. valid values are 0 and 1.

encoding = string variable. if specified during port communication all string->byte and byte->string conversions will be done using this encoding.

NotlarRemarks

Bu command'ı kullanmak için hedef bilgisayarda şu kurulumlar yapılmalıdır. Windows: iascommapi_win.jar, jre/lib/ext folder'ına yerleştirilmelidir. win32com.dll, windows/system32 folder'ına yerleştirilmelidir. Linux: iascommapi_lin.jar, jre/lib/ext folder'ına yerleştirilmelidir. libLinuxSerialParallel.so ve libLinuxSerialParallel_g.so, java library path'ine yerleştirilmelidir. Bu dosyaları almak için lütfen IAS ile iletişime geçin. DEBUG parametresi true seçeneğiyle verilirse, java console'da (portname'e göre client veya server'ın) port communication log'unu görebilirsiniz.

In order to use this command following installations must be done on the target computer.

Windows:

iascommapi_win.jar must be placed on jre/lib/ext folder.

win32com.dll must be placed on windows/system32 folder.

Linux:

iascommapi_lin.jar must be placed on jre/lib/ext folder.

libLinuxSerialParallel.so and libLinuxSerialParallel_g.so must be placed on java library path.

In order to get these files please contact IAS.

If DEBUG parameter is given with true option, on the java console (of client or server according to the portname) you can see the port communication log.

ÖrnekExample
OBJECT: 

 STRING PORTNAME,

 STRING RESULT;

 

PORTNAME = 'COM2';



OPENPORT PORTNAME '*PORT';

READFROMPORT '*PORT' INTO RESULT;

CLOSEPORT '*PORT';
İlgili KomutlarRelated Commands
CLOSEPORT READFROMPORT SENDTOPORT
PAGENUMSystem Variables

TROIA report'larında active page'i takip eden bir Global variable.

A Global variable that tracks the active page in TROIA reports.

PAGENUM;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer

Variable 1'den başlar.

Return Value

Integer

Variable starts with 1.

ÖrnekExample
/* This code is placed in a PageAfter function of a Report */
/* Writes the number of that page  to the footer part of the page. */
WRITE SPACE WITH \EPS 130  \BOR B1 \NLN;
WRITE PAGENUM WITH \POS 18 ;
WRITE SPACE WITH \NLN;
WRITE SYS_CURRENTDATE WITH \POS 18 ;
PARAMETERSBasic Troia

Parameter değerlerini bu variable'lara atar. Transaction'lar için variable'ların ismini ve type'ını tanımlar ve local olarak symbol oluşturur. Bu symbol'ler table, class veya standart type tanımı olabilir. Bu variable'lar tanımlandıkları function'ın scope'undadır.

Sets parameter values to these variables. Defines the name and type of variables for transactions and creates

symbols locally. These symbols can be tables, classes, or standard type definitions. These variables are in

the scope of the function they are defined at.

PARAMETERS:  [TABLE variable_name , ]

                            [STRING variable_name , ]     

                            [INTEGER variable_name , ]    

                            [DATE variable_name , ]       

                            [TIME variable_name , ]       

                            [DATETIME variable_name , ]   

                            [LONG variable_name , ]       



                            [class_type variable_name]  ;
Detayları gösterShow details
ParametrelerParameters

variable_name = Is the name of the variable.

class_type       = Is a system or user-defined datatype.
ÖrnekExample
PARAMETERS : TABLE MATB,  STRING STR2, STRING STR1;

PARAMETERS : TABLE MATB, STRING STR1, INTEGER INT1;
İlgili KomutlarRelated Commands
OBJECT
PARSEString Manipulation

PARSE statement'ı, text'lerde satır satır gezinmek için kullanılır.

PARSE statement is used for travelling in texts line by line.

PARSE {source_string} INTO {destination_string} [DELIMITER delimiterstring]

BEGIN  

        {block}  



ENDPARSE;
Detayları gösterShow details
ParametrelerParameters
source_string               = name of a string variable to be parsed
destination_string        = name of a string variable to carry lines
block                                     = One or more statements separated by colons. Can contain block statements as well. 

delimiterstring = delimiter

NotlarRemarks

Parse statement'ları herhangi bir seviyeye kadar nest edilebilirken, tek bir string üzerinde nested bir parse statement'ı kullanılamaz.

delimiterstring 1 karakter içermelidir. Boşsa, PARSE, DELIMITER seçeneği kullanılmamış gibi davranır. Uzunluğu 1 karakterden fazlaysa, ilk karakter delimiter olarak kullanılır, geri kalanı yok sayılır.

While parse statments can be nested to any level no nested parse statement can be used on a single string.

delimiterstring should be containing 1 character. If it is empty then PARSE will behave as if DELIMITER option is not used. If its length is more than 1 character first character will be used as the delimiter, rest will be ignored.

ÖrnekExample
OBJECT: 

 STRING STR1,

 STRING STR2,

 STRING STR3,

 INTEGER L1,

 INTEGER L2;



L1 = 2;

L2 = 3;



PARSE STR1 INTO STR2 

BEGIN

        S3 = STRSTR(STR2, L1, L2);

ENDPARSE;





/* delimiter example */

STRINGVAR1 = '';

STRINGVAR2 = '';

STRINGVAR3 = '1|2|3|4|5|6|7|8|9|0';



PARSE STRINGVAR3 INTO STRINGVAR1 DELIMITER '|' 

BEGIN

        STRINGVAR2 = STRINGVAR2 + STRINGVAR1;

        MESSAGE BAS E8 WITH STRINGVAR1;

ENDPARSE;
PARSEXMLXML Parsing

Xml document'ini verilen map'e göre parse eder.

Parses the xml document according to the map given.

PARSEXML  [TEXT] {docpath|variable} USING mapname;
Detayları gösterShow details
ParametrelerParameters

docpath = specifies the full path info where the xml document resides

variable = a string variable which contains wellformed xml . Used with TEXT option.

mapname = specifies the name of the map file

NotlarRemarks

Bu command, wellformed xml'den map yapısına göre okunan table yapılarını doldurur.

This command fills in the table structures that are read from wellformed xml according to map structure.

ÖrnekExample
/* Copy example xml below into a file "sales_in.xml" onto your desktop: */

/*

<?xml version="1.0" ?>

<Orders>

   <SalesOrder SONumber="123">

      <OrderDate>16.04.2011</OrderDate>

      <Customer CustNumber = "543">

         <CustName>ABC Industries</CustName>

         <State>IL</State>

         <City>Chicago</City>

         <Street>123 Main St.</Street>

         <PostCode>60609</PostCode>

      </Customer>

      <Line LineNumber="1">

         <Part PartNumber="123">

            <Description>Turkey wrench: Stainless steel, one-piece construction, lifetime guarantee.</Description>

            <Price>9.95</Price>

         </Part>

         <Quantity>10</Quantity>

      </Line>

      <Line LineNumber="2">

         <Part PartNumber="ab-c">

            <Description>Stuffing separator: Aluminum, one-year guarantee.</Description>

            <Price>13.27</Price>

         </Part>

         <Quantity>5</Quantity>

      </Line>

   </SalesOrder>

</Orders>

*/

/* Run the TROIA code below on RDTT01 and get the xml into virtual tables: */



OBJECT: 

 TABLE SALESORDER,

 TABLE CUSTOMER,

 TABLE LINE,

 TABLE PART,

 TABLE TMPTABLE,

 STRING FNAME,

 STRING STRXML,

 STRING XMLCODEPAGE;



XMLCODEPAGE = 'utf-8';

FNAME = '*/home/aozdemir/Desktop/sales_in.xml'; 

STRXML = '';



OPEN FILE FNAME FORREAD;

GETBLOCK CODEPAGE XMLCODEPAGE STRXML,NULL;

CLOSE FILE;



CLEAR XMLMAP SALESMAP;

CREATEXMLMAP SALESMAP;



MAP ELEMENT Orders AS XMLROOTTABLE Orders IN SALESMAP;



MAP ELEMENT SalesOrder AS XMLTABLE SALESORDER IN SALESMAP;

MAP ATTRIBUTE SONumber OF SalesOrder AS XMLCOLUMN SONumber IN SALESMAP;

MAP CHILD OrderDate OF SalesOrder AS XMLCOLUMN OrderDate IN SALESMAP;

MAP RELATION SalesOrder TO Orders LINK SONumber WITH SONumber GENERATE YES IN SALESMAP;



MAP ELEMENT Customer AS XMLTABLE CUSTOMER IN SALESMAP;

MAP ATTRIBUTE CustNumber OF Customer AS XMLCOLUMN CustNumber IN SALESMAP;

MAP CHILD CustName OF Customer AS XMLCOLUMN CustName IN SALESMAP;

MAP CHILD State OF Customer AS XMLCOLUMN State IN SALESMAP;

MAP CHILD City OF Customer AS XMLCOLUMN City IN SALESMAP;

MAP CHILD Street OF Customer AS XMLCOLUMN Street IN SALESMAP;

MAP CHILD PostCode OF Customer AS XMLCOLUMN PostCode IN SALESMAP;

MAP RELATION Customer TO SalesOrder LINK SONumber WITH SONumber GENERATE YES IN SALESMAP;



MAP ELEMENT Line AS XMLTABLE LINE IN SALESMAP;

MAP ATTRIBUTE LineNumber OF Line AS XMLCOLUMN LineNumber IN SALESMAP;

MAP CHILD Quantity OF Line AS XMLCOLUMN Quantity IN SALESMAP;

MAP RELATION Line TO SalesOrder LINK SONumber WITH SONumber GENERATE YES IN SALESMAP;



MAP ELEMENT Part AS XMLTABLE PART IN SALESMAP;

MAP ATTRIBUTE PartNumber OF Part AS XMLCOLUMN PartNumber IN SALESMAP;

MAP CHILD Description OF Part AS XMLCOLUMN Description IN SALESMAP;

MAP CHILD Price OF Part AS XMLCOLUMN Price IN SALESMAP;

MAP RELATION Part TO Line LINK LineNumber WITH LineNumber GENERATE YES IN SALESMAP;



PARSEXML TEXT STRXML USING SALESMAP;



CONVERTXMLTABLE SALESORDER INTO TABLE SALESORDER FROM SALESMAP;

CONVERTXMLTABLE CUSTOMER INTO TABLE CUSTOMER FROM SALESMAP;

CONVERTXMLTABLE LINE INTO TABLE LINE FROM SALESMAP;

CONVERTXMLTABLE PART INTO TABLE PART FROM SALESMAP;



COPY TABLE SALESORDER INTO TMPTABLE;

/* COPY TABLE CUSTOMER INTO TMPTABLE; */

/* COPY TABLE LINE INTO TMPTABLE; */

/* COPY TABLE PART INTO TMPTABLE; */



SET TMPTABLE TO TABLE TMPTABLE;
İlgili KomutlarRelated Commands
CONVERTXMLTABLE,CREATEXMLMAP,MAP
PHONECODETOCOUNTRY()FUNCTION

Uluslararası telefonların prefix koduna göre ülke ismini döndürür.

Returns the country name according to the prefix code of the international telephones.

PHONECODETOCOUNTRY({PrefixCode});
Detayları gösterShow details
ParametrelerParameters

PrefixCode = prefix code of the international telephones.

ÖrnekExample
/* Returns 'Switzerland' */
STRINGVAR1 = PHONECODETOCOUNTRY('+41');
İlgili KomutlarRelated Commands
COUNTRYTOPHONECODE
PRINTObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

PRINTLINEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

PRINTTEXTReport

Bir printer port'unu doğrudan açar ve bir text string'in içeriğini istenen printer'a yazdırır.

Directly open a printer port and print the contents of a text string into the desired printer.

PRINTTEXT {text} TO {printerpath} [CODEPAGE codepage][NARROW|WIDE];
Detayları gösterShow details
ParametrelerParameters

text = the text to be printed

printerpath = the path of the printer port

codepage = the codepage to be used

NARROW/WIDE = the text printer options.

NotlarRemarks

Bu, bir port'u dosya olarak açıp içine içerik yazmakla aynıdır. SYSPRINT class'ı tarafından kullanılır. Bir TROIA report'unu bir text printer'a yazdırmak istiyorsanız, bu command yerine çok daha fazla seçeneğe ve fonksiyonaliteye sahip SYSPRINTER class'ını kullanmanız önerilir.

This is the same as opening a port as file and writing contents in it. Used by SYSPRINT class. If you want to print a TROIA report to a text printer; you are advised to use the SYSPRINTER class which has many more options and functionality instead of this command.

PUTFile

Bu command, output'u bir file handle'a yönlendirir.

This command redirects output to a file handle.

PUT  [NOENDOFLINE] [CODEPAGE codepage] {value_list};
PUT  [NOENDOFLINE] [CODEPAGE codepage] {variable_list %nns};
Detayları gösterShow details
ParametrelerParameters

value_list : any type of value. No formatting is required.
variable_list : any type of variable. Variables obey to the formatting of Ansi C.
codepage : (optional) codepage of the data
NOENDOFLINE : (optional) this flags indicates that end of line characters will not be added after the PUT command.

NotlarRemarks

Değerler veya variable'lar virgülle ayrılır.

Values or variables are seperated by commas.

ÖrnekExample
OBJECT: 
 INTEGER X,
 STRING Y;

X = 11;
Y = 'Aslan';
OPEN FILE 'C:\TMP\xxx.txt';
PUT 21,X%-12s,Y%8s;
CLOSE FILE;
/*NOENDOFLINE example : */
OBJECT: 
 STRING PATH1,
 STRING TEMPTEXT;

PATH1 = 'C:\TMP\xxx.txt';
TEMPTEXT = 'file data string';
OPEN FILE PATH1 FORNEW;
PUT NOENDOFLINE TEMPTEXT;
CLOSE FILE;
İlgili KomutlarRelated Commands
GET
QUERYXMLREGISTRY()FUNCTION

UDDI registry kaynaklarını, verilen belirli bir parametre için sorgular.

Queries the UDDI registry resources for specific given parameter

QUERYXMLREGISTRY({uddireg},{service});

QUERYXMLREGISTRY({uddireg},{service},{phost},{pport});
Detayları gösterShow details
ParametrelerParameters

uddireg = UDDI registry

service = name of the service

phost = proxy host (optional)

pport = proxy port (optional)

NotlarRemarks

Return Value

Integer:

Başarı veya başarısızlık olarak 0 veya 1 döndürür.

Proxy host ve proxy port opsiyoneldir.

Return Value

Integer:

Returns 0 or 1 as success or failure.

Proxy host and proxy port are optional.

ÖrnekExample
OBJECT: 
 STRING UDDIREG,
 STRING UDDIREGM,
 STRING SERVICE,
 STRING PHOST,
 STRING PPORT;

UDDIREG = 'http://uddi.ibm.com/testregistry/inquiryapi';
UDDIREGM = 'http://test.uddi.microsoft.com/inquire';
SERVICE = '%WEATHER%';
PHOST = '192.168.0.196';
PPORT = '3128';
INTEGERVAR2 = QUERYXMLREGISTRY(UDDIREG,SERVICE,PHOST,PPORT);
RAND()Math Functions

Bir pseudo random sayı üretir.

Generates a pseudo random number.

RAND();
Detayları gösterShow details
NotlarRemarks

Return Value

LONG.

Return Value

LONG.

ÖrnekExample
OBJECT: 
 LONG X;

X = RAND();
/* X = 30734 */
READTable

Virtual table üzerindeki cursor'dan belirli bir row'u getirir.

Retrieves a specific row from the cursor on the virtual table.

READ {        virtual_table_name} WITH (INDEX  {n} | KEY {n}| FIRST | LAST | NEXT | PREV);
Detayları gösterShow details
ParametrelerParameters
table_name         = Specifies the name of the table used in the READ statement. 
INDEX  {n}        = Returns the nth row within the virtual table. 
KEY {n}                = Still being developed.
FIRST                 = Moves the cursor to the first row within the virtual table.
LAST                 = Moves the cursor to the last row within the virtual table.
NEXT                 = Sets the curser to the next row within the virtual table.
PREV                 = Returns the curser to the previous row within the virtual table.
NotlarRemarks

SYS_STATUS, her read çalıştırmasında güncellenir. Başarılı bir read'de SYS_STATUS 0'a ayarlanır.

İstenen cursor pozisyonu sonuç kümesini aştığı için hiçbir data okunmadıysa SYS_STATUS 1'e ayarlanır.

SYS_STATUS will be updated at every execution of read. At a successful read SYS_STATUS will be set to 0.

If no data was read because the requested cursor position exceeded the results set SYS_STATUS will be set to 1.

ÖrnekExample
READ MATA WITH INDEX 3;



READ MATA WITH FIRST;

READ MATA WITH LAST;

READ MATA WITH NEXT;

READ MATA WITH PREV;
READFROMPORTPort Communication

Verilen port'tan belirtilen variable'a okuma yapar.

Reads from given port into specified variable.

READFROMPORT {portname} INTO {variable};
Detayları gösterShow details
ParametrelerParameters

portname = name of the port to be accessed.

variable = specified symbol that gets content by reading the given port.

NotlarRemarks

"*" önekine sahip bir portname, operation'ın client'ta olmasına neden olur.

A portname with "*" prefix causes the operation to be in client.

ÖrnekExample
OBJECT: 

 STRING PORTNAME,

 STRING RESULT;

 

PORTNAME = 'COM2';



OPENPORT PORTNAME '*PORT';

READFROMPORT '*PORT' INTO RESULT;

CLOSEPORT '*PORT';
İlgili KomutlarRelated Commands
OPENPORT CLOSEPORT SENDTOPORT
READXMLSTRUCTUREXML Parsing
REFRESHObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

REFRESHDIAGRAMObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

REMOVETable

Bir table'ın tüm bir column'unu kaldırır.

Removes an entire column of a table.

REMOVE COLUMN {column_name} [PERMANENT] FROM {table_name};
Detayları gösterShow details
ParametrelerParameters
column_name         = name of the column to be removed in table table_name.
table_name                 = name of any table.

PERMANENT flag = remove the column permanently.

NotlarRemarks

Permanent flag kullanıldığında column, table'dan kalıcı olarak kaldırılır.

When the permanent flag is used the column will be removed permanently from the table.

ÖrnekExample
REMOVE COLUMN CUSTOMERNAME FROM CUSTOMER;
/* Removes  the column CUSTOMERNAME from CUSTOMER table. */
REMOVE COLUMN CUSTOMERNAME PERMANENT FROM CUSTOMER;
/* Removes  the column CUSTOMERNAME from CUSTOMER table permanently. */
REMOVEELEMENTVector

1'den başlayarak verilen bir pozisyondaki symbol item element'ini bir vector'den kaldırır.

Removes the symbol item element from a vector at a given position starting from 1.

REMOVEELEMENT {element_index} OF {vector_name};
Detayları gösterShow details
ParametrelerParameters

element_index = Element index of the element to remove from the vector.
vector_name = Target vector name to remove the element.

NotlarRemarks

VECTOR data type için, COPY VECTOR dışındaki tüm command'ların symbol'lerin değerine göre değil, reference'a göre çalıştığını akılda tutmak önemlidir. Bu, VECTOR data type operation'ına dahil edilen herhangi bir symbol'ün, VECTOR'ün yaşam süresi boyunca var olmaya devam edeceği anlamına gelir. Örneğin, bir function scope'u sırasında bir VECTOR'e eklenen bir symbol, function scope'undan çıktıktan sonra da var olmaya devam eder.

It is important for VECTOR data type to keep in mind that all commands except COPY VECTOR works by reference, not by value of symbols.
This implies that any symbol incorporated with VECTOR data type operation will be keep persisting through out VECTORs lifespan.
For instance, a symbol inserted into a VECTOR during a function scope will be kept existing after getting out from function scope.

ÖrnekExample
/*

Ex.1)

*/

OBJECT: 

 VECTOR A,

 VECTOR B,

 STRING C,

 STRING D;



C = 'Some Value';

ADDELEMENT C TO A;

/*By Value*/

C = 'New Value';

/*

C <- New Value

A[1] <- Some Value

*/

D = 'Some Value';

ADDELEMENT D TO A BYREF;

/*By Reference*/

D = 'New Value';

/*

D <- New Value

A[2] <- New Value

*/

/*

Ex.2)

*/

OBJECT: 

 VECTOR A,

 VECTOR B,

 STRING C,

 STRING D;



C = 'Some Value';

ADDELEMENT C TO A;

B = A;

D = B[1];

/*Vector Copy*/

/*

Ex.3)

*/

OBJECT: 

 VECTOR A,

 STRING B,

 STRING C,

 STRING D;



B = 'Some text';

C = 'Some other text';

ADDELEMENT B TO A;

ADDELEMENT C TO A;

REMOVEELEMENT 1 OF A;

D = A[1];

/*

Ex.4)

*/

OBJECT: 

 VECTOR A,

 VECTOR B,

 STRING C,

 STRING D;



C = 'Text Value';

ADDELEMENT C TO A;

B = ACLASS.SOMEFUNCTION(A);

/*assume that ACLASS has a function SOMEFUNCTION taking a vector as parameter and return a vector*/

D = B[1];

/*

Ex.5)

*/

OBJECT: 

 VECTOR A,

 VECTOR B,

 STRING C,

 STRING D;



C = 'Text Value';

ADDELEMENT C TO A;

CLEAR VECTOR A;

/*

Ex.6)

*/

OBJECT: 

 VECTOR A,

 VECTOR B,

 STRING C,

 STRING D,

 INTEGER E;



C = 'Text Value';

ADDELEMENT C TO A;

E = VECTORCONTAINS(A,C);
İlgili KomutlarRelated Commands
ADDELEMENT, CLEAR VECTOR, VECTORCONTAINS(v,x), GETVECTORSIZE()
REMOVEENTITYDiagram

Entity'yi diagram'dan kaldırır.

Removes entity from diagram.

REMOVEENTITY {id} FROM {control}
Detayları gösterShow details
ParametrelerParameters

id = id of the control that will be removed .

control = name of the diagram control

NotlarRemarks

REMOVEENTITY R1 FROM DIAGRAM1;

REMOVEENTITY R1 FROM DIAGRAM1;

İlgili KomutlarRelated Commands
ADDENTITY
REMOVESMSMESSAGESMS

SMS connector'a erişir ve belirtilen messageid'ye sahip mesajı verilen queue'dan kaldırır.

Accesses the SMS connector and removes the specified message with messageid from the given queue.

REMOVESMSMESSAGE {msgid} FROM {queuename};
Detayları gösterShow details
ParametrelerParameters

msgid = The id of the message to be deleted

queuename = the name of the sms queue

NotlarRemarks

Mesajı Canias SMS Gateway'deki queue'dan kaldırır. Mevcut queue isimleri: incomingp, incoming, outgoing, processing, sent, delivered, failed. SYS_STATUS ve SYS_STATUSERROR variable'larını günceller.

Removes the message from queue on Canias SMS Gateway

Available queue names are :

incomingp : splitted textmessages that contain more than one part and all parts are not received yet

incoming : received messages

outgoing : messages to be sent

processing : messages currently on process

sent : messages sent (but acknowledgements are not received yet)

delivered : messages sent (and acknowledgements are received or acknowledments are disabled)

failed : messages could not be sent after a number of tries (edined in settings file)

Updates SYS_STATUS and SYS_STATUSERROR variables.

İlgili KomutlarRelated Commands
GETSMSMESSAGE SENDSMSMESSAGE GETSMSQUEUE
REMOVETOOLBARObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

REPLACEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

REPLACE()String Manipulation

İkinci variable'ın tüm geçtiği yerleri üçüncü variable ile değiştirir.

Replaces all occurences of second variable with the third variable.

REPLACE ({variable_name1}, {variable_name2}, {variable_name3});
Detayları gösterShow details
ParametrelerParameters

variable_name1 = Specifies the name of the variable to search in
variable_name2 = Specifies the name of the variable to search in variable1
variable_name3 = Specifies the name of the variable to change with variable2

NotlarRemarks

Return Value

String:

Yeni string'i döndürür.

Return Value

String:

Returns the new string.

ÖrnekExample
OBJECT: 

 STRING S1,

 STRING S2,

 STRING S3;



S1 = 'IASBAS001';

S2 = 'BAS';

S3 = 'MAT';

S1 = REPLACE(S1, S2, S3);



/*

Before REPLACE function is executed:



S1 = IASBAS001

S2 = BAS

S3 = MAT



After REPLACE function is executed:



S1 = IASMAT001

S2 = BAS

S3 = MAT

*/
REPORTObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

RESETSETObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

RESETTIME()Date Functions

Verilen DateTime object'inin time'ını sıfırlar.

Resets the time of the given DateTime object.

RESETTIME({Date})
Detayları gösterShow details
ParametrelerParameters

Date = the date value that the time to be reset.

NotlarRemarks

Datetime döndürür.

Returns Datetime.

RESIZEIMAGEImage Handling

Verilen image dosyasını ve boyutunu yeni, sonuç bir dosyaya yeniden boyutlandırır.

Resizes the given image file and size into a new resulted file.

RESIZEIMAGE {source_file} INTO {destination_file} WITH SIZE {width} {height};
RETURNBasic Troia

Çalışan function veya event'i sonlandırır ve verilen değeri çağıran function veya event'e döndürür.

Ends running function or event and return given value to caller function or event.

RETURN;
RETURN {returnvalue};
RETURN {returnexpression};
Detayları gösterShow details
ParametrelerParameters

returnvalue : constant or variable specifying return value of a function
returnexpression : return expression

ÖrnekExample
/*A. without return value: FUNCTION X: */

RETURN;





/*B. with return value: FUNCTION X: */

OBJECT : 

 STRING A;



A = 'TEST';

RETURN A;





/*C. returning expressions */

OBJECT : 

 INTEGER B,

 INTEGER C;



B = 1;

C = 2;

RETURN B*C;
RGB()FUNCTION

Sağlanan argument'lara ve output device'ın renk kapasitesine göre bir red, green, blue (RGB) rengi seçer.

Selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device.

RGB({red_value},{blue_value},{green_value});
Detayları gösterShow details
ParametrelerParameters
red_value     = specifies the intensity of the red color. 
blue_value   = specifies the intensity of the blue color. 

green_value = specifies the intensity of the green color.

NotlarRemarks

Return Value

Integer. Return değeri, ortaya çıkan RGB rengidir.

Her argument için yoğunluk 0 ile 255 arasındadır. Üç yoğunluk da sıfırsa, sonuç siyahtır. Üç yoğunluk da 255 ise, sonuç beyazdır.

Return Value

Integer.The return value is the resultant RGB color.

The intensity for each argument is in the range 0 through 255. If all three intensities are zero, the result is black. If all three intensities are 255, the result is white.

ROLLBACKTRANDatabase

Kullanıcı tarafından belirtilen bir transaction'ı, transaction içindeki son savepoint'e veya transaction'ın başına geri alır (rollback).

Rolls back a user-specified transaction to the last savepoint inside a transaction or to the beginning of a transaction.

ROLLBACKTRAN;
Detayları gösterShow details
İlgili KomutlarRelated Commands
BEGINTRAN COMMITTRAN
ROTATEIMAGEImage Handling

ROTATEIMAGE command'ı, yeni bir image oluşturur ve bir açıyla rotate eder. Bu command ayrıca "jpg", "png", "gif" ve "bmp" dosya formatlarını destekler.

ROTATEIMAGE command is creating a new image and rotating it by an angle.
This command also supports "jpg", "png", "gif" and "bmp" file formats.

ROTATEIMAGE {Source_file} INTO {destination_file} WITH {angle};
Detayları gösterShow details
ÖrnekExample
OBJECT: 
 STRING STRIMAGESOURCE,
 STRING STRROTATEDIMAGE,
 DECIMAL ANGLE;

STRIMAGESOURCE = 'C:\image1.png';
STRROTATEDIMAGE = 'C:\image2.png';

/* if there is no image, in this path, ROTATEIMAGE command will be create an image file in there */

ANGLE = 150;
ROTATEIMAGE STRIMAGESOURCE INTO STRROTATEDIMAGE WITH ANGLE;
 /*Image rotated */
ROUND()Math Functions

Verilen numeric parametreyi yuvarlar.

Rounds the given numeric parameter .

ROUND({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1 = A numeric value to be rounded

variable2 = the round sensitivity value. (Can be negative)

NotlarRemarks

Return Value

Decimal:

Yuvarlanmış değer.

Return Value

Decimal:

The rounded value.

ÖrnekExample
OBJECT: 
 DECIMAL DEC1,
 DECIMAL DEC2;

DEC1 = 22434.46;
DEC2 = ROUND(DEC1,-1);
/* DEC2 is 22430.0 */
DEC2 = ROUND(DEC1,1);
 /* DEC2 is 22434.5 */
RUNCODEBasic Troia

Verilen variable içinde saklanan TROIA Code'u çalıştırır.

Code'un codekey'i, çağıran method'un codekey'iyle aynıdır.
Runcode, çağıran executable'ın local variable'larına erişebilir.

WITHCACHE varyasyonu, performansı artırmak için compile edilmiş executable'ı kaydeder.
Sonraki çağrılar, code cache'lenmişse TROIA code'unu tekrar parse ve compile etmez.

Executes TROIA Code stored in given variable.

Code's codekey is same with caller method's codekey.
Runcode can access local variables's of caller executable.

WITHCAHE variation saves compiled executable to increase performance.
Subsequent calls does not parse and compile TROIA code if it is a cached code.

RUNCODE {codestring};
RUNCODE {codestring} WITHCACHE;
Detayları gösterShow details
ParametrelerParameters

codestring : name of the string variable or table field that carries the code.

ÖrnekExample
OBJECT : 

 STRING STR;



STR = 'MOVE 1 TO X';

RUNCODE STR;



RUNCODE TMPTABLE_CODE;
RUNFILEFile

RUNFILE command'ı, belirtilen dosyayı işletim sisteminin default application'ıyla çalıştırır.

RUNFILE command runs the specified file with the default application of the operating system.

RUNFILE {file_to_open};
Detayları gösterShow details
ParametrelerParameters

file_to_open : path and name for the file to be opened.

ÖrnekExample
OBJECT: 
 STRING STR1;

STR1 = 'C:\DOCUMETS\LETTER.doc';

RUNFILE STR1;

/* will open letter.doc by MS WORD, OO WRITER, etc... */
RUNFILECHOOSERGENERAL

Verilen directory path'ine dayalı, dosya uzantıları seçeneğiyle bir file chooser menu'sü gösterir.

Shows a file chooser menu based on given directory path with an option of file extensions.

RUNFILECHOOSER {directory_path} [{file_extension}];
Detayları gösterShow details
ParametrelerParameters

directory_path = Name of file path directory on current working OS to be shown.
file_extension = Filtering documents by file format.

ÖrnekExample
RUNFILECHOOSER 'C:/' 'pdf';
RUNPROGRAMGENERAL

RUNPROGRAM command'ı, belirtilen application'ı çalıştırır.

RUNPROGRAM command runs the specified application.

RUNPROGRAM {executable_program [opened_file] } [WITH WAIT [INTO string] ];
Detayları gösterShow details
ParametrelerParameters

executable_program = path and name for the application to be executed. unnecessary to write .EXE at the end.

opened_file = path and name for the file to be opened.

WITH WAIT = waits for the process to be finished

INTO string = copies the output of the program to the desired string variable.

NotlarRemarks

Dosya, belirtilen path'te mutlak (absolute) olarak bulunmalıdır.

The file should be absolutely at the specified path.

ÖrnekExample
OBJECT: 

 STRING STR1;



/*

Ex.1: Server-Side Running Program: will open letter.doc on the server

*/

/* no blank characters in program or file full-directories */

STR1 = 'C:\ProgramFiles\MicrosoftOffice\Office14\WinWord.exe D:\MyDocuments\NewLetter.doc';

/* with blank character in program or file full-directories */

STR1 = '"C:\Program Files\Microsoft Office\Office14\WinWord.exe" "D:\My Documents\New Letter.doc"';

RUNPROGRAM STR1;





/*

Ex.2:  Client-Side Running Program: will open letter.doc on the client

*/

/* no blank characters in program or file full-directories */

STR1 = '*C:\ProgramFiles\MicrosoftOffice\Office14\WinWord.exe D:\MyDocuments\NewLetter.doc';

/* with blank character in program or file full-directories */

STR1 = '*"C:\Program Files\Microsoft Office\Office14\WinWord.exe" "D:\My Documents\New Letter.doc"';

RUNPROGRAM STR1;
RUNRECORDTesting

Belirtilen record'u çalıştırır.

Runs the specified record.

RUNRECORD {recordname} {recordid} [TO filename];
Detayları gösterShow details
ParametrelerParameters

recordname = name of the record to be run

recordid = the record id of the record

filename = the results will be saved in this file.

RUNTESTCODETesting

İstenen test kodunu çalıştırır.

Runs the desired test code.

RUNTESTCODE {codepart} [IN {transaction}];
Detayları gösterShow details
ParametrelerParameters

codepart = test code to be run

transaction = name of the transaction.

NotlarRemarks

Sağlanırsa, kod belirtilen bir transaction içinde çalıştırılabilir.

The code can be run in a specified transaction if provided.

SAVETroia Development

Verilen bir text dosyasına tüm class veya dialog kodlarını ve control'leri kaydeder.

Saves all class or dialog codes and controls on a given text file.

SAVE [DIALOG {dialog_name} [USING {language}] | CLASS {class_name}];
Detayları gösterShow details
ParametrelerParameters
dialog_name         = specifies the name of the dialog to be saved. Can be a variable.
class_name                = specifies the name of the class to be saved. Can be a variable.

The USING variation saves the corresponding dialog with the given language.

NotlarRemarks

Syspath directory'si altında, yoksa "jdlg" isminde bir directory oluşturulur. Dlg directory'si altında, dialog_name'in ilk üç harfiyle yeni bir directory oluşturulur (directory yoksa). Ve dialog_name'in geri kalanı dosya ismi için kullanılır. Dialog dosya isminin sonuna sys_langu eklenir. Dosyanın uzantısı ".dlg"dir.

Syspath directory'si altında, yoksa "jcls" isminde bir directory oluşturulur. Cls directory'si altında, transaction_name'in ilk üç harfiyle yeni bir directory oluşturulur (directory yoksa). Ve class_name'in geri kalanı dosya ismi için kullanılır. Class dosya isminin sonuna sys_langu eklenir. Dosyanın uzantısı ".cls"dir. Bu dosya class function'ını içerir. Aynı path'te aynı isimle ve '.cli' uzantısıyla, class function'larının bir index'ini tutmak için başka bir dosya oluşturulur.

Under the syspath dirctory a directory named "jdlg" is created if the directory does not exist. Under the dlg directory a new directory is created with the first three letters of the dialog_name (if the directory doesn't exist). And the rest of dialog_name is used for the filename. At the end of the dialog file name sys_langu is added. The extention for the file is ".dlg".

Under the syspath dirctory a directory named "jcls" is created if the directory does not exist. A new directory is created under the cls directory with the first three letters of the transaction_name (if the directory doesn't exist) . And the rest of class_name is used for the filename. At the end of the class file name sys_langu is added. The extention for the file is ".cls". This file contains the class function. In the same path with the same name and with the '.cli' extention another file is created to keep an index of the class functions.

ÖrnekExample
/*

If the dialog name is 'SYST07D001', sys_langu is 'E' and sys_path is 'J:\':

Dialog is saved to the directory 'J:\JDLG\SYS\' with the name 'T07D001E.DLG'

If the class name is 'SYS007', sys_langu is 'E' and sys_path is 'J:\':

Class is saved to the directory 'J:\JCLS\SYS\' with the name '007E.CLS'

*/

SAVE DIALOG SYST07D001 USING SYS_LANGU;

SAVE CLASS SYS007;
SAVEUSERRIGHTSSystem Functions

Verilen table'dan user right'larını verilen dialog'a ayarlar.

Sets the user rights from the given table to the given dialog.

SAVEUSERRIGHTS {table_name} TO {dialog_name};
Detayları gösterShow details
ParametrelerParameters
table_name                 = name of the table that carries the rights.
dialog_name         = name of the dialog that the rights will be set.
ÖrnekExample
SAVEUSERRIGHTS TMPTAB TO RIGHTS;
SCROLLROWINVIEWObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SELECTDatabase

Database'den row'ları getirir.

Retrieves rows from the database.

SELECT [ALL | DISTINCT] {select_list}
FROM {table_name} [, table_name2 [..,table_name16] ]
[WHERE {search_conditions_clause}]
[ORDERBY {clause}]
[ROWFETCHSTART {start_row_no}]
[ROWFETCHLIMIT {fetch_row_count}]
[INTO {virtual_table_name}];
Detayları gösterShow details
ParametrelerParameters

ALL = Retrieves all rows in the results. ALL is the default.
DISTINCT = Includes only unique rows in the results. Null values are considered equal for the purposes of the
DISTINCT keyword; only one NULL is selected no matter how many are encountered.
select_list = Specifies the columns to select. Can be one or more of the following:

·        Asterisk (*), representing all columns listed in the order in which they were specified in the table.
·        A list of column names, specified in the order in which you want to see them. If the select_list  contains multiple column names, separate the names with commas.
·        An expression (a column name, constant, function, or any combination of column names, constants, and functions connected by an operator(s), or a subquery).
·        A local or global variable.
table_name   = Specifies the name of the table used in the SELECT statement. Can be a variable.

WHERE search_conditions_clause = Specifies the restricting conditions for the rows returned in the results set. There is no limit to the
number of search_conditions_clause that can be included in an SQL statement.

ORDERBY clause =
ORDERBY table_name.filed_name [ASC | DESC] [...table_name16.field_name [ASC | DESC]]
Sorts the results by columns. You can sort as many as 16 columns.

ROWFETCHSTART start_row_no: It can trim the results set returned from db, by a starting block before the position start_row_no
ROWFETCHLIMIT fetch_row_count: It can trim the results set returned from db, by an ending block after the position (start_row_no + fetch_row_count)

INTO virtual_table_name: Creates a virtual TROA table based on the columns specified in the select_list with the given name {virtual_table_name}; otherwise, it creates the virtual table with real db table name.
Unlike the traditional SQL servers in IASQL, the created table is always a virtual table and the INTO clause should be the last clause.

NotlarRemarks

Join durumunda, seçilen field'lardan herhangi biri birden fazla table'da mevcutsa, field'ların table isimleri belirtilmelidir.

WHERE clause'u, iç içe (nested) herhangi bir WHERE clause'u veya parantez içeremez.

Null değerler diğerlerinden önce sıralanır ve text veya image column'ları bir ORDERBY clause'unda kullanılamaz. Subquery'ler ve view tanımları bir ORDERBY clause'u içeremez.

SELECT statement'ının sonucu başarılıysa SYS_STATUS 0'a ayarlanır, aksi halde 1'e ayarlanır. Bir SELECT statement'ının sonucu olarak herhangi bir row döndürülürse _SELECTED flag'i ayarlanır, aksi halde 0'a ayarlanır.

In case of join, if any of the selected fields are present in more than one table, the table names of the
fields should be specified.

WHERE clause cannot contain any nested WHERE clauses, paranthesis.

Null values are sorted before all others, and text or image columns cannot be used in an ORDERBY clause.
Subqueries and view definitions cannot include an ORDERBY clause.

If the result of SELECT statement is succesfull SYS_STATUS is set to 0 otherwise it is set to 1. As the
result of a SELECT statement if any rows are returned _SELECTED flag is set otherwise it is set to 0.

ÖrnekExample
/* Both of the tables IASBAS001 and IASBAS002 contain the field CLIENT. */
/* False: */
SELECT CLIENT 
	FROM IASBAS001, IASBAS002 /* 
	WHERE {search_conditions_clause} */  ;

/* True: */
SELECT IASBAS001.CLIENT 
	FROM IASBAS001, IASBAS002 /* 
	WHERE {search_conditions_clause} */  ;

OBJECT: 
 STRING STR1,
 TABLE TEMP;

SELECT * 
	FROM IASBAS001;

SELECT * 
	FROM IASBAS001 
	WHERE COMPANY = '02';

SELECT * 
	FROM IASBAS001 
	WHERE CLIENT  =  '00' 
	ORDERBY CLIENT, COMPANY;

SELECT * 
	FROM IASBAS001 
	WHERE CLIENT  =  '00' 
	ORDERBY CLIENT, COMPANY ROWFETCHSTART 2 ROWFETCHLIMIT 5 
	INTO TEMP;

STR1 = '02';
SELECT * 
	FROM IASBAS001 
	WHERE COMPANY  =  STR1;

STR1 = '00';
SELECT * 
	FROM IASBAS001 
	WHERE CLIENT  =  STR1 
	ORDERBY CLIENT, COMPANY;

SELECT * 
	FROM IASBAS001 
	WHERE CLIENT  =  STR1 
	ORDERBY CLIENT, COMPANY 
	INTO TEMP;

STR1 = '0%';
SELECT * 
	FROM IASBAS001 
	WHERE CLIENT LIKE  STR1 
		AND COMPANY LIKE '2%' 
	ORDERBY CLIENT, COMPANY;

SELECT * 
	FROM IASBAS001 
	WHERE CLIENT  LIKE  STR1 
		OR COMPANY LIKE  '2%' 
	ORDERBY CLIENT, COMPANY 
	INTO TEMP;
İlgili KomutlarRelated Commands
UPDATE, DELETE, INSERT
SELECTEDSystem Variables

Bir integer variable döndüren bir Global variable. Bir SELECT statement'ı herhangi bir row döndürdüyse 1 döndürür.

A Global variable that returns an integer variable. Returns 1 If a SELECT statement returned any rows.

SELECTED
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer.

ÖrnekExample
SELECT * FROM IASSYSTEM;

IF SELECTED THEN

	SYSCL = IASSYSTEM_CLIENT;

ENDIF;
SELECTLINEDatabase

Aynı anda yalnızca bir row seçmek için kullanılır. SELECT statement'ıyla aynıdır.

Used to select only one row at a time. Same as SELECT statement.

SELECTLINE [ALL | DISTINCT] {select_list}

FROM    {table_name} [, table_name2 [..,table_name16] ]

[WHERE  {clause}]

ORDERBY {clause}]

[INTO {virtual_table_name}];
Detayları gösterShow details
ParametrelerParameters
ALL                 = Retrieves all rows in the results. ALL is the default.
DISTINCT         = Includes only unique rows in the results. Null values are considered equal for the purposes of the DISTINCT keyword; only one NULL is selected no matter how many are encountered.
select_list         = Specifies the columns to select. Can be one or more of the following:
·        Asteriks (*), representing all columns listed in the order in which they were specified in the table.
·        A list of column names, specified in the order in which you want to see them. If the select_list contains multiple column names, separate the names with commas.
·        An expression (a column name, constant, function, or any combination of column names, constants, and functions connected by an operator(s), or a subquery).
·        A local or global variable.

table_name =

Specifies the name of the table used in the SELECTLINE statement. Can be a variable.

INTO virtual_table_name =

Creates a new virtual table based on the columns specified in the select_list and the rows chosen in the WHERE clause. Unlike the traditional SQL servers in IASQL the created table is always a virtual table and the INTO clasue should be the last clause.

WHERE clause =

WHERE (or search_conditions)

Specifies the restricting conditions for the rows returned in the results set. There is no limit to the number of search_conditions that can be included in an SQL statement.

ORDERBY clause =

ORDERBY table_name.filed_name [ASC | DESC]         [...table_name16.field_name  [ASC | DESC]]

Sorts the results by columns. You can sort as many as 16 columns.

NotlarRemarks

Join durumunda, seçilen field'lardan herhangi biri birden fazla table'da mevcutsa, field'ların table isimleri belirtilmelidir.

WHERE clause'u, iç içe (nested) herhangi bir WHERE clause'u veya parantez içeremez.

Null değerler diğerlerinden önce sıralanır ve text veya image column'ları bir ORDERBY clause'unda kullanılamaz. Subquery'ler ve view tanımları bir ORDERBY clause'u içeremez.

SELECTLINE statement'ının sonucu başarılıysa SYS_STATUS 0'a ayarlanır, aksi halde 1'e ayarlanır. Bir SELECT statement'ının sonucu olarak herhangi bir row döndürülürse _SELECTED flag'i ayarlanır, aksi halde 0'a ayarlanır.

Tüm row'lar fetch edilene kadar başka hiçbir database command'ı çalıştırılamaz. Bu yüzden bu statement'ı fetch command'ı ile birlikte bir while loop içinde kullanmak daha iyidir.

In case of join, if any of the selected fields are present in more than one table, the table names of the fields should be specified.

WHERE clause cannot contain any nested WHERE clauses, paranthesis.

Null values are sorted before all others, and text or image columns cannot be used in an ORDERBY clause. Subqueries and view definitions cannot include an ORDERBY clause.

If the result of SELECTLINE statement is succesfull SYS_STATUS is set to 0 otherwise it is set to 1. As the result of a SELECT statement if any rows are returned _SELECTED flag is set otherwise it is set to 0.

Until all the rows are fetched no other database commands can be executed. Therefore it is better to use this statement within a while loop together with the fetch command.

ÖrnekExample
/* Both of the tables IASBAS001 and IASBAS002 contain the field CLIENT. */

/* False: */

SELECTLINE CLIENT FROM IASBAS001, IASBAS002 WHERE IASBAS001.LANGU = IASBAS002.LANGU;

/* True: */

SELECTLINE IASBAS001.CLIENT FROM IASBAS001, IASBAS002 WHERE IASBAS001.LANGU = IASBAS002.LANGU;



OBJECT: 

 TABLE TEMP;



SELECTLINE *  FROM MATB WHERE MATNR  =  'G1000' ORDERBY WERKS INTO TEMP;



WHILE (SYS_STATUS == 0) 

BEGIN

	FETCH TEMP;

	/*

.

.

.

*/

ENDWHILE;
İlgili KomutlarRelated Commands
SELECT FETCH
SELECTSQLDatabase

TROIA kod satırını gerçek bir SQL statement'ına text format'ında dönüştürür. Sonuç, SYS_STATUSERROR global variable'ı ile okunabilir.

Converts TROIA code line into real SQL statement in text format. The result can be read by the global variable SYS_STATUSERROR.

(Just alike SQL SELECT statement codeline...)
Detayları gösterShow details
ParametrelerParameters

(Just alike SQL SELECT statement codeline...)

NotlarRemarks

(SQL SELECT statement code satırıyla tamamen aynı...)

(Just alike SQL SELECT statement codeline...)

ÖrnekExample
OBJECT: 
 STRING STRINGVAR1,
 STRING STRINGVAR2,
 STRING STRINGVAR3;

STRINGVAR1 = 'A%';
STRINGVAR2 = 'N%';
STRINGVAR3 = 'SYSDATETIME, SYSLICENSEKEY, SYSPATH, SYSDATEFMT';

SELECTSQL @STRINGVAR3 
	FROM IASSYSTEM 
	WHERE SYSPATH LIKE STRINGVAR1 
		AND SYSTHEME LIKE STRINGVAR2;

STRINGVAR3 = SYS_STATUSERROR;

/*
Result Text in STRINGVAR3:

SELECT SYSDATETIME, SYSLICENSEKEY, SYSPATH, SYSDATEFMT 
	FROM IASSYSTEM 
	WHERE SYSPATH LIKE 'A%' 
		AND SYSTHEME LIKE 'N%'

*/
İlgili KomutlarRelated Commands
SELECT
SELECTVARObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SELECTVIRTObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SENDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SENDHTTPPOSTGENERAL

Verilen parametrelerle istenen url'e bir http post yapar.

Make a http post to the desired url with the given parameters.

SENDHTTPPOST {poststring} TO {url} [CODEPAGE cp] [CONTENTTYPE ct] [COOKIE ck] [REFERER referer];
Detayları gösterShow details
ParametrelerParameters

poststring = the post string to be added to url

url = the url to be posted

cp = code page

ct = content type (text/html)

ck = cookie, In the form of cookie_name=cookie_value

NotlarRemarks

Request'i gönderir ve uygun response'un geri gelip gelmediğini kontrol eder, SYS_STATUS, SYS_STATUSERROR, SYS_HTTPPOSTRESPONSE, SYS_HTTPPOSTCOOKIES gibi system status variable'larını günceller.

Encoding belirtilmişse, sağlanan encoding'in mevcut olup olmadığını test eder.

Sends the request and checks wheter appropriate response is arrived back, and updates tye system status variables such as SYS_STATUS, SYS_STATUSERROR, SYS_HTTPPOSTRESPONSE, SYS_HTTPPOSTCOOKIES.

If encoding is specified, tests if the provided encoding is present.

SENDMAILMail

İstenen parametrelere göre mail gönderir.

Sends mail according to the desired parameters.

SENDMAIL MESSAGE mailtxt TOADDRESS address

        [TYPE TEXT|HTML]

        [FROM fromaddress]

        [CCADDRESS ccAdress]

        [BCCADDRESS bccAdress]

        [SUBJECT subjText]

        [ATTACH attachpath1,..,attachpathN (N>=1)] ;

SENDMAIL MESSAGE {mailtxt} TOADDRESS {address} 
	[CCADDRESS {cc} | BCCADDRESS {bcc} | SUBJECT {subject} | ATTACH {attach} | FROM {from} | TYPE [TEXT | HTML] | HOST {host} | ENCPRO {param} | USERNAME {user} | PASSW {passw} | HEADERS {header}];
Detayları gösterShow details
ParametrelerParameters
mailtxt         = body of the mail
adress                = mail address of the receipent
fromaddress        = mail address of the sender
ccAdress        = mail address of the other receipents
bccAdress        = mail address of the hidden receipents
subjText                = subject of the mail
attachpath        = the pathname of the attachments.
NotlarRemarks

Mail server ip'si ServerSettings.ias'ta tanımlanmalıdır. Gönderen domain, mail server tarafından kabul edilmelidir.

The mail server ip must be defined in ServerSettings.ias. The sender domain must be accepted by the mail server.

ÖrnekExample
SENDMAIL MESSAGE MSG TOADDRESS TOBOX SUBJECT SBJ FROM FROMBOX ATTACH ATC CCADDRESS CCBOX BCCADDRESS BCCBOX;
SENDSMSMESSAGESMS

SMS connector kullanarak belirtilen mesajı verilen encoding ile gönderir.

Sends the specified message with the given encoding using SMS connector.

SENDSMSMESSAGE {smstext} TO {recipient} [PORT portname][SMSC smsc][REQUESTACK request][VALIDITY validity][FLASH flash][FORGET forget][ENCODING encoding][INTO msgid];
Detayları gösterShow details
ParametrelerParameters

smstext = the text to be sent as sms

recipient = the recipient telephone number

Details will be completed.

NotlarRemarks

SYS_STATUS ve SYS_STATUSERROR variable'larını günceller.

Updates SYS_STATUS and SYS_STATUSERROR variables.

İlgili KomutlarRelated Commands
GETSMSMESSAGE GETSMSQUEUE REMOVESMSMESSAGE
SENDTOPORTPort Communication

Önceden açılmış port'a command/içerik gönderir.

Sends commands/content to the previously opened port.

SENDTOPORT {portname} {content} [TIMETOWAIT];
Detayları gösterShow details
ParametrelerParameters

portname = name of the port to be accessed.

content = desired content to be sent to port

TIMETOWAIT = this optional integer defines the time to be waited while accessing the port

İlgili KomutlarRelated Commands
OPENPORT READFROMPORT CLOSEPORT
SETBasic Troia

Set komutu, dialog control'lerinin attribute'unu ayarlar.

Set command adjusts the attribute of dialog controls.

SET {control_name} TO < DISABLE | ENABLE | STORE | RESIZE | REFRESH | REFRESHROW | SHOW | HIDE | FOCUS | CURRENTTAB | {SELECTEDTAB | ENABLETAB | DISABLETAB} tabbedpane_index
		| TROIAEDITOR [WITH KEYWORDS {comma_seperated_string}]  | TABORDER | TABLE {table_name} | CAPTION {caption_name} | MAINDLG {maindlg_name} 
		| LINK {newtabdialog_name} | ACTIVECELL {row} {column} 
		| ACTIVELEAF {leaf_id} | EXPAND | COLLAPSE | MAXIMIZED {TRUE | FALSE} | COLLAPSEGROUP {TRUE | FALSE} | READONLY {TRUE | FALSE | ZOOMONLY} | SHOWARROW 
		| HIDEARROW >;
Detayları gösterShow details
ParametrelerParameters

control_name = name of any control on the dialog
DISABLE = access to control not allowed but the control is shown
ENABLE = access to control is allowed
STORE = Depreciated.
RESIZE = auto resizes the table columns to fit.
REFRESH = change the value of the control
REFRESHROW = change the value of the selected row on a tablebox control
SHOW = show the dialog
HIDE = hide the dialog
FOCUS = focus the cursor on controlname
CURRENTTAB = sets the control name as the current tab.
SELECTEDTAB = set a pane of tabbedpane to the active tab.
ENABLETAB = set a pane of tabbedpane to enable.
DISABLETAB = set a pane of tabbedpane to disable.
tabbedpane_index = 0 (zero) based index number of the pane number.
TROIAEDITOR = (OBSOLETE! Use TextField Sub-Type "TROIAEDITOR".)
sets the editfield to Troia edit mode. If used with WITH KEYWORDS {comma_seperated_string},
given comma seperated external keyword list is highlighted in conjunction with TROIA keywords.
TABORDER = sets the dialog to manual tab order mode.
TABLE {table_name} = change the table in the tablebox control with the given table. table_name cannot be a variable.
CAPTION {caption_name} = change the caption of the control with the given text.
MAINDLG {maindlg_name} = sets the control as the main dialog.
LINK {newtabdialog_name} = sets the new tab dialog link for a tab button object
ACTIVECELL {row} {column} = sets the active cell on the table.
ACTIVELEAF {leaf_id} = sets the active leaf on a tree.
EXPAND = expands the active leaf on the tree.
COLLAPSE = collapses the active leaf on the tree.
MAXIMIZED {TRUE | FALSE} = sets the given groupbox control to be hidden or visible based on value.
COLLAPSEGROUP {TRUE | FALSE} = sets a component's view to be maximized or original based on given value.
It is only supported if a component has a maximizable container such as troia editor and text area.
READONLY {TRUE | FALSE | ZOOMONLY} = sets a TextField-type dialog control to the given readonly states true, false or zoomonly.
SHOWARROW = shows arrow of table control.
HIDEARROW = hides arrow of table control.

ÖrnekExample
/* In the example below the shows or hides arrow of table control by using SET Command. */

SET TABLECONTROLNAME TO SHOWARROW; /* shows */

SET TABLECONTROLNAME TO HIDEARROW;  /* hides */
SET-COLORObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETACTIVECONNECTIONDatabase

Önceden tanımlanmış bir connection'ı activate eder.

Activates a previously defined connection.

SETACTIVECONNECTION {connection_name};
Detayları gösterShow details
ParametrelerParameters

connection_name = name of the connection to be re-established.

ÖrnekExample
MAKENEWCONNECTION CON01 JOHN xxxxx MAINSERVER USERSDB;

SETACTIVECONNECTION CON01;

SETACTIVECONNECTION DEFAULT;
İlgili KomutlarRelated Commands
MAKENEWCONNECTION
SETACTIVEDIALOGGENERAL

Server tarafında active dialog'u ayarlar. TEST konsepti tarafından kullanılır.

Sets the active dialog on the serverside. Used by TEST concept.

SETACTIVEDIALOG {dialogname};
Detayları gösterShow details
ParametrelerParameters

dialogname = name of the dialog to be activated.

İlgili KomutlarRelated Commands
RUNTESTCODE
SETBACKCOLORTable

Bir tablebox control'ünde bir field veya row'un background color'ını ayarlar.

Sets the background color of a field or row in a tablebox control.

SETBACKCOLOR {virtual_table_name}[_{field_name}] TO color;
Detayları gösterShow details
ParametrelerParameters

virtual_table_name = Specifies the name of the virtual table

field_name              = Specifies the name of any field on the virtual table used in the SETBACKCOLOR command. Is used to select a field on the active row. When no field name is specified active row is selected.
Color                      = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

ÖrnekExample
/* 1) with only the virtual table name. */

SETTEXTCOLOR MATB TO RED;



/* 2) with virtual table name and the field name. */

SETTEXTCOLOR MATB_GLTPR TO RED;
İlgili KomutlarRelated Commands
SETTEXTCOLOR SETCOLLENGTH SETCOLLABEL
SETBATCHTRANGENERAL

Mevcut transaction'ı BATCH mode'a ayarlar.

Sets the actual transaction into BATCH mode.

SETBATCHTRAN {TRUE|FALSE};
Detayları gösterShow details
ÖrnekExample
SETBATCHTRAN TRUE;

/* .... */

SETBATCHTRAN FALSE;

SELECT CLIENT, COMPANY, TRANSACTNUM, MSGTXT, MSGMODULE,
	 MSGNUMBER, MSGTYPE, MSGTIME, APPSERVER,
	 CLIENTCONNID, DBSERVER, DBNAME, TRANSID,
	 TRNSTARTDATE 
	FROM IASBATCHERR 
	WHERE CLIENT = SYS_CLIENT 
		AND TRANSACTNUM = SYS_TRANSACTION;
SETCAPTIONObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETCELLTable

Bir table field'ındaki bir cell'in attribute'unu ayarlar.

Sets the attribute of a cell in a table field.

SETCELL {tablename_fieldname} {rownumber} TO <ENABLE | DISABLE | LEFTALIGN | RIGHTALIGN | CENTERALIGN>;
Detayları gösterShow details
ParametrelerParameters

tablename_fieldname = name of the field in table tablename.

rownumber                     = an integer value defining the row sequence. 
ENABLE                               = enables access to the cell.
DISABLE                               = disables access to the cell.
LEFTALIGN                     = justifies the text in cell with respect to left-most side.
RIGHTALIGN                     = justifies the text in cell with respect to right-most side.
CENTERALIGN                  = centers the text in cell.
NotlarRemarks

Table ismi ve field ismi '_' (alt çizgi) karakteriyle ayrılmalıdır.

SETCELL command'ını kullandıktan sonra, table'ı refresh ederseniz setcell ile ayarladığınız property'leri kaybedersiniz...

Table name and field name should be seperated with the '_' (underscore) character.

After using SETCELL  command, if you refresh the table it will lose the properties you set with setcell...
ÖrnekExample
SETCELL CUSTOMER_CUSTNAME 5 TO DISABLE;

 /*

Above statement disables the access to the cell in CUSTNAME column and fifth row.

*/
İlgili KomutlarRelated Commands
SETCELLTEXTCOLOR
SETCELLBACKCOLORTable

Bir table field'ındaki active cell'in back color'ını ayarlar.

Sets back color of the active cell in a table field.

SETCELLBACKCOLOR {tablename_fieldname} TO {color_name};
Detayları gösterShow details
ParametrelerParameters
tablename_fieldname         = name of the field in table tablename.
color_name                           = one of the below colors defined by the system or defined by RGB()  function.
BLACK | WHITE | RED | GREEN | BLUE | LTGRAY | GRAY | DKGRAY | YELLOW | CYAN | MAGENTA | DKRED | DKGREEN | DKBLUE | DKYELLOW | DKCYAN | DKMAGENTA;
NotlarRemarks

Table ismi ve field ismi '_' (alt çizgi) karakteriyle ayrılmalıdır.

Table name and field name should be seperated with the '_' (underscore) character.

ÖrnekExample
SETCELLBACKCOLOR CUSTOMER_CUSTNAME TO YELLOW;

/*

Above statement paints the active cell's background in CUSTNAME field of the CUSTOMER table to yellow.

*/
İlgili KomutlarRelated Commands
SETCELL,SETCELLTEXTCOLOR
SETCELLTEXTCOLORTable

Bir table field'ındaki active cell text'inin rengini ayarlar.

Sets color of the active cell text in a table field.

SETCELLTEXTCOLOR {tablename_fieldname} TO {color_name};
Detayları gösterShow details
ParametrelerParameters
tablename_fieldname         = name of the field in table tablename.
color_name                                  = one of the below colors defined by the system.
BLACK | WHITE | RED | GREEN | BLUE | LTGRAY | GRAY | DKGRAY | YELLOW | CYAN | MAGENTA | DKRED | DKGREEN | DKBLUE | DKYELLOW | DKCYAN | DKMAGENTA;
NotlarRemarks

Table ismi ve field ismi '_' (alt çizgi) karakteriyle ayrılmalıdır.

Table name and field name should be seperated with the '_' (underscore) character.

ÖrnekExample
SETCELLTEXTCOLOR CUSTOMER_CUSTNAME TO YELLOW;

/*

Above statement paints the active cell's text in CUSTNAME field of the CUSTOMER table to yellow.

*/
İlgili KomutlarRelated Commands
SETCELL,SETCELLBACKCOLOR
SETCLIPBOARDBasic Troia

Verilen variable'ın değerini client application üzerindeki clipboard'a ayarlar.

Sets given variable's value to clipboard on client application.

SETCLIPBOARD FROM {variable};
Detayları gösterShow details
ParametrelerParameters

{variable} : This variable's value is assigned to client clipboard

ÖrnekExample
OBJECT: 
 STRING STR;

STR = 'This text is copied and will be set to clipboard';

SETCLIPBOARD FROM STR;
İlgili KomutlarRelated Commands
GETCLIPBOARD
SETCLUSTEROVERLAPChart

Active dialog'daki chart'ın bir cluster'ında bar'ların birbiriyle ne kadar overlap edeceğini ayarlar.

Sets the amount that bars overlap each other in a cluster of the chart on active dialog.

SETCLUSTEROVERLAP {previous_value} TO {last_value};
Detayları gösterShow details
ParametrelerParameters
previous_value         = current overlap value of the clusters. A numeric value.
last_width                 = desired overlap value of the clusters. A numeric value.
NotlarRemarks

Bu command yalnızca bar ve stacking bar chart'lar için kullanılabilir.

Değer, bar overlap yüzdesini temsil eder; geçerli değerler -100 ile 100 arasındadır.

This command is available for only bar and stacking bar charts.

The value represents the percentage of bar overlap, with valid values between -100 and 100.

ÖrnekExample
SETCLUSTEROVERLAP  -50 TO 50;
 /*After this command the clusters will be displayed as overlapped with the value of 50.*/
İlgili KomutlarRelated Commands
SETCLUSTERWIDTH
SETCLUSTERWIDTHChart

Active dialog'daki chart'ın her bar cluster'ının kullandığı alanı ayarlar.

Sets the space used by each bar cluster of the chart on active dialog.

SETCLUSTERWIDTH {previous_width} TO {last_width};
Detayları gösterShow details
ParametrelerParameters
previous_width         = current width of the clusters. A numeric value.
last_width                 = desired width of the clusters. A numeric value.
NotlarRemarks

Bu command yalnızca bar ve stacking bar chart'lar için kullanılabilir.

Değer, mevcut alan yüzdesini temsil eder; geçerli değerler 0 ile 100 arasındadır.

This command is available for only bar and stacking bar charts.

The value represents the percentage available space, with valid values between 0 and 100.

ÖrnekExample
SETCLUSTERWIDTH  50 TO 90;
 /*The width of the clusters will move from 50 to 90.*/
İlgili KomutlarRelated Commands
SETCLUSTEROVERLAP
SETCOLTable

Tüm table'ın veya belirli bir table column'unun attribute'unu ayarlar.

Adjusts the attribute of entire table or a specific table coloumn.

SETCOL {tablename}[_{fieldname}] TO < HIDE | SHOW | ENABLE | DISABLE | DISABLEALWAYS >;
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the virtual table

fieldname = Specifies the name of any field on the virtual table

HIDE = hide the control

SHOW = show the control

ENABLE = access to control is allowed

DISABLE = access to control is not allowed. In the case of appending a new row to table, access to newly appended row?s disabled field is allowed.

DISABLEALWAYS = access to control is not allowed. In the case of appending a new row to table, access to newly appended row?s disabled field is not allowed.

NotlarRemarks

A. SETCOL command'ını kullanmadan önce 'SET tablename TO REFRESH;' kullanmak gereklidir.

B. SETCOL command'ını kullandıktan sonra, table'ı artık refresh etmemelisiniz.

A. before using SETCOL command, it is necessary to use 'SET tablename TO REFRESH;'

B. after using SETCOL command, you should not refresh the table anymore.

İlgili KomutlarRelated Commands
SETTEXTCOLOR SETBACKCOLOR SETCOLLENGTH SETCOLLABEL
SETCOLFORMATTable

Bir table control'ünde bir column'un label'ını, format'ını veya label ve format'ını ayarlar.

Sets the label, format or label and format of a column in a table control.

SETCOLFORMAT {table_field_name} TO {[label | format | label and format]};
SETCOLINFOTable

Bir tablebox control'ünde bir column'un property'lerini dinamik olarak ayarlar.

Sets the properties of a column dynamically in a tablebox control.

SETCOLINFO {table_field_name} TO {info};
Detayları gösterShow details
ParametrelerParameters
virtual_table_name         = Specifies the name of the virtual table 
info                                     = Specifies the properties for the column as its defined in Column info part of development. (except column name)
NotlarRemarks

Bu command, bu grid'in bulunduğu dialog initialize olduktan sonra uygulanmalıdır. (çoğunlukla >= AFTER kodları)

This command has to be applied after the dialog, that this grid resides , initializes. ( mostly >= AFTER codes )

ÖrnekExample
/*The example below shows how to change the appearence of an  integer column  to  checkbox .*/
OBJECT: 
 STRING PIC;

/* the fields in pic string denotes , disability, color, style,length,zoom dialog and others as in development*/
PIC = '*,*,*,1,*';
SETCOLINFO TMPTABLE_AA TO PIC;
/*The example below shows how to change the zoom dialog of the column  dynamically.*/
PIC = '*,*,*,*,BAST01D004';
SETCOLINFO TMPTABLE_AA TO PIC;
İlgili KomutlarRelated Commands
SETCOLPICTURE,SETCOLLLENGTH,SETCELLTEXTCOLOR
SETCOLLABELTable

Bir tablebox control'ünde bir column'un label'ını ayarlar.

Sets the label of a column in a tablebox control.

SETCOLLABEL {table_field_name} TO {label};
Detayları gösterShow details
ParametrelerParameters
virtual_table_name         = Specifies the name of the virtual table 
label                                      = Specifies the new name for the column. A variable or constant.
ÖrnekExample
/* In the example below the results of the both SETCOLLABEL commands are same. */

OBJECT: 

 STRING STR1;



STR1 = 'CL';

SETCOLLABEL BAS001_CLIENT TO STR1;

SETCOLLABEL BAS001_CLIENT TO CL;
İlgili KomutlarRelated Commands
SETTEXTCOLOR SETBACKCOLOR SETCOLLENGTH
SETCOLLENGTHTable

Bir tablebox control'ünde bir column'un uzunluğunu ayarlar.

Sets the length of a column in a tablebox control.

SETCOLLENGTH {virtual_table_name}[_{field_name}] TO {length};
Detayları gösterShow details
ParametrelerParameters
virtual_table_name         = Specifies the name of the virtual table 
length                                      = Specifies new length for the column. A variable or constant.
ÖrnekExample
/*In the example below the results of the both SETCOLLENGTH commands are same.*/
OBJECT: 
 INTEGER INT1;

STR1  =   8;
SETCOLLENGTH BAS001_CLIENT TO 8;
SETCOLLENGTH BAS001_CLIENT TO CLI;
İlgili KomutlarRelated Commands
SETTEXTCOLOR SETBACKCOLOR SETCOL SETCOLLABEL
SETCOLPICTURETable

Bir tablebox control'ünde bir column'un resmini dinamik olarak ayarlar.

Sets the picture of a column dynamically in a tablebox control.

SETCOLPICTURE {table_field_name} TO {info};
Detayları gösterShow details
ParametrelerParameters
virtual_table_name         = Specifies the name of the virtual table 
info                                     = Specifies the picture for the column as its defined in Labels&Picture part of development.
NotlarRemarks

Bu command, bu grid'in bulunduğu dialog initialize olduktan sonra uygulanmalıdır. (çoğunlukla >= AFTER kodları)

This command has to be applied after the dialog, that this grid resides , initializes. ( mostly >= AFTER codes )

ÖrnekExample
/*The example below shows how to change the label and  format of a datetime field*/
OBJECT: 
 STRING PIC;

/* the fields in pic string denotes , label(the same affect as setcollabel ) and format (notice that apostrophes not used in format) */
PIC = 'DATE1,99.99.9999 99:99';
SETCOLPICTURE TMPTABLE_DD TO PIC;
İlgili KomutlarRelated Commands
SETCOLINFO,SETCOLLLABEL
SETCOLSFROZENTable

İki column numarası arasındaki column'ları dondurur ve donmuş column'ları mavi bir çizgiyle ayırır.

Freezes the columns between two column numbers, and seperates frozen columns with a blue line.

SETCOLSFROZEN {table_name} {column_last} {column_first};
Detayları gösterShow details
ParametrelerParameters
table_name         = name of any virtual table.
column_last         = an integer value defines the last column to be frozen.
column_first         = an integer value defines the first column to be frozen.
NotlarRemarks

Bu command'da ilk column için sıfır (0) değeri kullanılması önerilir. Ve column_last, column_first'ten büyük olmalıdır. İlk column değeri için sıfır olmayan bir değer verilirse, 1. column ile column_first-column arasında kalan column'lar koyulaştırılır.

It's suggested to use zero (0) value for the first column in this command. And column_last must be greater than column_first. If a non-zero value is substituted for the first column value, the columns remaining between 1st column and column_first-column will be darkened.

ÖrnekExample
SETCOLSFROZEN USERS 3 0;

/*Above statement freezes(does not allow to dissappear) the first, second and third columns in USERS table.*/
SETCOLWIDTHTable

Bir table control'ünde bir column'un genişliğini ayarlar.

Sets the width of a column in a table control.

SETCOLWIDTH {tablename_colname} TO {value};
Detayları gösterShow details
ParametrelerParameters

tablename_colname = Specifies the name of the table's column name.

value	       =   Specifies new width for the column. A variable or constant.
ÖrnekExample
OBJECT: 
 INTEGER INT1;

INT1  =   8;
SETCOLWIDTH BAS001_CLIENT TO 8;
SETCOLWIDTH BAS001_CLIENT TO INT1;
SETDATACOLORChart

Chart'ta data-set1 ve data-set2 üzerinde verilen set index'ine sahip set'lerin data renklerini ayarlar.

Sets data colours of sets with given set index on data-set1 and data-set2 in chart.

SETDATACOLOR {set_index} {color} <SET1|SET2> TO {chartname};
Detayları gösterShow details
ParametrelerParameters
SET1                 = operates on data-set1.
SET2                 = operates on data-set2.
set_index         = zero based index specifies which label should be changed. An integer value.
color                 = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

chartname         = chart control name.
SETDATE()Date Functions

Bir date/datetime variable'ının date kısmını ayarlar.

Sets the date part of a date/datetime variable.

SETDATE ({source_date},{destination_date});
Detayları gösterShow details
ParametrelerParameters
source_date        = Specifies the name of the date/datetime variable which the date part is to be set.
destination_date = Specifies the name of the destination string which will be copied to source string.Can        be in date, datetime, string types.
NotlarRemarks

Return Value

String.

Return Value

String.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 STRING STRDATE;



DT = '12.12.1997 11:00';

STRDATE = ' 01.01.1996AAAAAA';

DT = SETDATE(DT,STRDATE);



 /*

After SETDATE function is executed:



DT = '01.01.1996 11:00'; 



only first ten characters of STRDATE is copied to DT.

*/
SETDATEFORMATDatabase

Application için dateformat'ı ayarlar. DB belirtim konuları için kullanılır.

Sets the dateformat for application. Used for DB specification issues.

SETDATEFORMAT TO {value};
Detayları gösterShow details
ParametrelerParameters

value = the new date format to be set.

NotlarRemarks

Bu command yalnızca başka database'lere bağlantı kurarken kullanılmalıdır. Bu command'ın yanlış kullanımı, database date format'ını değiştirdiği için customer data'sının zarar görmesine neden olabilir.

This command should only be used while making connections to other databases. Misusage of this command may result in damage of the customer data as it changes the database date format.

ÖrnekExample
OBJECT : STRING TST;

TST = 'DD.MM.YYYY';

SETDATEFORMAT TO TST;
İlgili KomutlarRelated Commands
SETACTIVECONNECTION MAKENEWCONNECTION CLOSECONNECTION
SETDLGFIELDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETDRAGMODEDiagram

Diagram'ı drag mode'a ayarlar.

Sets the diagram into drag mode

SETDRAGMODE {diagramname} (TO | AS) (LINK | ENTITY);
Detayları gösterShow details
ParametrelerParameters

diagramname = name of the diagram to be set

İlgili KomutlarRelated Commands
SETEDITMODE
SETEDITMODEDiagram

Diagram'ı edit mode'a ayarlar.

Sets the diagram into edit mode

SETEDITMODE {diagramname} AS (TRUE | FALSE);
Detayları gösterShow details
ParametrelerParameters

diagramname = name of the diagram to be set

NotlarRemarks

Bu command, herhangi bir diagram object'ini sürüklemeden veya kopyalamadan önce çalıştırılmalıdır.

EDITMODE TRUE olarak ayarlandığında, object üzerindeki entity'ler mouse ile sürükleyerek kopyalanabilir veya taşınabilir.

Kopyalama, CTRL ve mouse ile sürükleme ile yapılır (kopyalanan object'in kenarında bir + işareti görülür).

Bu işlem, yeni (kopyalanan) object id'sini "Copy of idx" olarak değiştirir (idx - kopyalanan object'in id'si).

This command have to be run before dragging or copying any diagram objects.

When EDITMODE is set as TRUE , entities on the object can be copied or moved with mouse dragging.

Copying is done with CTRL and mouse dragging(a + sign is seen on the border of the copied object).

This action changes the new (copied) object id to "Copy of idx" (idx - id of the copied object).

ÖrnekExample
SETEDITMODE DFLOW AS TRUE;
SETENTITYSTATEDiagram

Diagram üzerindeki object'lerin state'ini ayarlar.

Sets the state of the objects on diagram.

SETENTITYSTATE {entityid} AS (LOCKED | UNLOCKED) IN {diagram_name};
Detayları gösterShow details
ParametrelerParameters

entityid = id of the diagram object

diagram_name = name of the diagram to be used

NotlarRemarks

Bu command, diagram üzerindeki verilen object'i kilitler/kilidini açar. SETEDITMODE command'ından sonra kullanılmalıdır.

Editable bir diagram'da, bir diagram object'ini kilitlemek, o object'in sürüklenmesini veya kopyalanmasını sınırlar.

This command locks/unlocks the given object on diagram. Must be used after SETEDITMODE command.

In an editable diagram, locking a diagram object limits the dragging or copying of that object.

ÖrnekExample
SETENTITYSTATE RO1 AS LOCKED IN DFLOW;
İlgili KomutlarRelated Commands
SETEDITMODE
SETENTITYTEXTObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETEXTERNALVARIABLE()System Functions

ServerSettings.ias dosyasında tanımlanan external variable'ın değerini ayarlar.

Sets the value of the external variable defined in ServerSettings.ias file

SETEXTERNALVARIABLE({variable_name},{value})
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the name of the variable defined in setting file

value = value of the variable

NotlarRemarks

Return Value.

Integer. Başarı durumunda 1.

Retrun Value.

Integer. 1 in the case of success.

SETFILLPATTERNObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETFYIBasic Troia

Verilen control'ün tooltip'ini (fyi) ayarlar.
Aktif satırdaki ve verilen column isimli hücrenin tooltip'ini ayarlar.

Sets tooltip (fyi) of given control.
Sets tooltip of given cell in active row and given column name.

SETFYI {tooltipvalue} TO {control};
SETFYI {tooltipvalue} TO TABLE {table_field};
Detayları gösterShow details
ParametrelerParameters

tooltipvalue : the string value to be set.
control : the name of the control.
table_field : which column tooltip will set for active row.

ÖrnekExample
OBJECT : 

 STRING TOOLTIPVALUE,

 STRING CELLTOOLTIP;



TOOLTIPVALUE = 'This is button tooltip';

CELLTOOLTIP = 'This is cell tooltip';



/* sets tooltip of control */

SETFYI TOOLTIPVALUE TO BUTTON1;



/* sets tooltip of username cell in first row */

TMPTABLE_ACTIVEROW = 1;

SETFYI CELLTOOLTIP TO TABLE TMPTABLE_USERNAME;
SETGANTTPROPERTYChart

Gantt chart'ın property'lerini ayarlar.

Sets the properties of the gantt chart.

SETGANTTPROPERTY {ganttname} TO < ROWHEIGHT | ALTROWCOLOR | DIVIDERPOS | TOOLBARITEMS | VERTICALLINES | ANNOTATIONS | BASELINES | VIEWDATE | TIMESCALE> {value};

SETGANTTPROPERTY {ganttname} TO HOLIDAY  {value} [ON {id}] [RECURSIVE];
Detayları gösterShow details
ParametrelerParameters

ganttname = gantt control name.

ROWHEIGHT = sets the row height of the gantt chart.

ALTROWCOLOR = sets the alternating row colors of the gantt chart.

DIVIDERPOS = sets the divider position of the gantt chart.

TOOLBARITEMS = sets the tool bar items to be displayed. Value can have MOVE,RESIZE,LINK,SELECTALL,DESELECTALL and GRID options.

VERTICALLINES = sets whether to display the vertical lines or not. (value can be 0 or 1)

ANNOTATIONS = sets annotations on or off.(value can be 0 or 1)

BASELINES = sets the baseline objects visible or hidden. (value can be 0 or 1)

VIEWDATE = sets the datetime to be displayed.

TIMESCALE = sets the timescale of the gantt chart. Can be values: YEAR,MONTH,DAY,HOUR,MINUTE,SECOND.

HOLIDAY = sets the work calendar of the gantt chart. If the ON {id} option is used; sets the workcalendar to the desired diagram entry only.

ÖrnekExample
SETGANTTPROPERTY GANTTOBJECT TO ROWHEIGHT 30;
SETGANTTPROPERTY GANTTOBJECT TO ALTROWCOLOR 38545;
SETGANTTPROPERTY GANTTOBJECT TO DIVIDERPOS 120;
OBJECT : 
 STRING STRTOOLBARITEMS;

STRTOOLBARITEMS = 'MOVE,RESIZE,GRID';
SETGANTTPROPERTY GANTTOBJECT TO TOOLBARITEMS STRTOOLBARITEMS;
SETGANTTPROPERTY GANTTOBJECT TO VERTICALLINES 1;
SETGANTTPROPERTY GANTTOBJECT TO ANNOTATIONS 0;
OBJECT : 
 DATETIME D;

D = SYS_CURRENTDATE;
SETGANTTPROPERTY GANTTOBJECT TO VIEWDATE D;
SETGANTTPROPERTY GANTTOBJECT TO TIMESCALE MONTH;
/*Work calendar example*/
OBJECT : 
 TABLE TAB;

APPEND COLUMN GTSTARTDATE,DATETIME,0 TO TAB;
APPEND COLUMN GTENDDATE,DATETIME,0 TO TAB;
APPEND ROW TO TAB;
MOVE '01.05.2006' TO TAB_GTSTARTDATE;
MOVE '03.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB;
APPEND ROW TO TAB;
MOVE '07.05.2006' TO TAB_GTSTARTDATE;
MOVE '09.05.2006' TO TAB_GTENDDATE;
SETGANTTPROPERTY GANTTOBJECT TO HOLIDAY TAB ON 4 RECURSIVE;
 /*sets the workcalendar to diagram with GTID 4 and its children.*/
SETGRAPHPROPERTYChart

Bir chart'ın bazı property'lerini ayarlar.

Sets some properties of a chart.

SETGRAPHPROPERTY {chartname} TO < MARKERMOVE (ENABLE|DISABLE) | POINTSELECT(ENABLE|DISABLE) | YDATACHANGE (ENABLE|DISABLE) | XDATACHANCE(ENABLE|DISABLE) | XAXIS (HIDE|SHOW) | YAXIX (HIDE|SHOW) | YAXIX2(HIDE|SHOW) >;
Detayları gösterShow details
ParametrelerParameters
chartname                 = chart control name.
MARKERMOVE         = enables or disables moving markers.
POINTSELECT         = enables or disables selecting a point.
YDATACHANGE         = enables or disables the change of data on Y-axis.
XDATACHANGE          = enables or disables the change of data on Y-axis.
XAXIS                         = hides or shows the X-axis on the chart.
YAXIS                         = hides or shows the Y-axis on the chart.
Y2AXIS                         = hides or shows the Y2-axis on the chart.
ÖrnekExample
SETGRAPHPROPERTY CHART01 TO XAXIS HIDE;
 /*After this statement executed, X-axis of the chart would be disappeared.*/
SETLISTCOUNT()Database

Bir SELECT query'sinden döndürülecek row sayısını sınırlar.

Limits the number of rows to be returned from a SELECT query.

SETLISTCOUNT(variable);
Detayları gösterShow details
ParametrelerParameters

variable = integer that specifies the list count

NotlarRemarks

Return Value

Integer. Function başarısız olursa 0, aksi halde 1 döndürür.

Return Value

Integer. Returns 0 if the function fails else 1.

SETMAILFLAGMail

Mevcut mail mesajının flag'ini ayarlar.

Sets the flag of the actual mail message.

SETMAILFLAG DELETED/SEEN/DRAFT/FLAGGED/RECENT/ANSWERED/USER TRUE/FALSE TO TABLENAME;
Detayları gösterShow details
ParametrelerParameters

TABLENAME : is a virtual table.

NotlarRemarks

Bazı flag'ler tüm protocol'lerde çalışmayabilir.

DELETED flag'ini ayarlarsanız mail anında silinir.

Some of the flags may not work on all protocols.

If you set DELETED flag the mail will be instantly deleted.

ÖrnekExample
OBJECT : 
 STRING PROTOCOL;

PROTOCOL = 'pop3';
MAILLOGON 192.168.0.9 fahrit f23df2 PROTOCOL;
GETMAILBOX INTO TMPTABLE;
GETMAILDATA TO TMPTABLE;
SETMAILFLAG DELETED TRUE TO TMPTABLE;
/* We have just deleted the actual mail.*/
MAILLOGOFF;
İlgili KomutlarRelated Commands
MAILLOGON MAILLOGOFF GETMAILDATA GETMAILBOX
SETMARKERSELECTEDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETNUMBERRANGEBasic Troia

Standart IAS System Numbering için kullanılır. IASNUMRANGE Db Table'daki değerleri istenen number range kadar artırır.

Used for standart IAS System Numbering. Increases the values in IASNUMRANGE Db Table by the desired number range.

SETNUMBERRANGE {client} {company} {numrange} TO {colname} {value};
SETNUMBERRANGE {client} {company} {numrange} TO {colname} {value} PARTNO {partno} PARTVALS {partvals};
Detayları gösterShow details
ÖrnekExample
SETNUMBERRANGE SYS_CLIENT COM RAN TO CURRENTVAL 12;

SETNUMBERRANGE SYS_CLIENT COM RAN TO CURRENTVAL 12 PARTNO 4 PARTVALS 42;
SETPARAMGENERAL

Set get parametresinin değerini ayarlar.

Sets value of the set get parameter.

SETPARAM sgpid TO value;
Detayları gösterShow details
ParametrelerParameters
sgpid         = the name of the setget parameter
value        = the value to be set
ÖrnekExample
OBJECT :

STRING VAL;

VAL = '00';

SETPARAM COM TO VAL;
SETPDFSTANDARDReport

Active pdf standard'ını ayarlar.

Sets the active pdf standard.

SETPDFSTANDARD TO <PDFA1A | PDFA1B>;
SETPOINTSELECTEDObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETPOINTSTYLEChart

Verilen chart'taki verilen dataset'in point style'ını ayarlar. Point type olarak disc, dot, box, triangle, diamond, vertical line, horizontal line, cross, circle, square kullanılabilir.

Sets the point style of given dataset on given chart.
Disc, dot, box, triangle, diamond, vertical line, horizontal line, cross, circle, square can be used as point type.

SETPOINTSTYLE POINT-DISC | POINT-NONE | POINT-DOT | POINT-BOX | POINT-TRI | POINT-DIAMOND | POINT-STAR | POINT-VERT-LINE | POINT-HORIZ-LINE | POINT-CROSS | POINT-CIRCLE | POINT-SQUARE  SET1 {subset} TO {chart};
SETPOINTSTYLE POINT-DISC | POINT-NONE | POINT-DOT | POINT-BOX | POINT-TRI | POINT-DIAMOND | POINT-STAR | POINT-VERT-LINE | POINT-HORIZ-LINE | POINT-CROSS | POINT-CIRCLE | POINT-SQUARE  SET2 {subset} TO {chart};
Detayları gösterShow details
ParametrelerParameters

chart : Chart control name.

subset         	: Subset of given dataset. (see chart model)

POINT-DISC type supported on 5.01.05 050501 and following versions.

ÖrnekExample
/* Points of Dataset 1, subset 0 are set to DISC Type */ 

SETPOINTSTYLE POINT-DISC SET1 0 TO CHART2;



/* Points of Dataset 1, subset 0 are set to DISC Type */ 

SETPOINTSTYLE POINT-CIRCLE SET2 0 TO CHART2;
SETPRINTERPROPERTYReport

Printer attribute'larını ayarlar.

Adjusts the printer attributes.

/*Obsolete Syntax:*/
/* 
SETPRINTERPROPERTY [PRINTERNAME {printer} | 
PRINTDIALOGFLAG {flag} |
 ORIENTATION <PORTRAIT | LANDSCAPE | {variable}> | REPORTROWCOUNT {rowcount} |
 PAPERSIZE {size} | PAPERSOURCE {source} | COPIES {copy}]; */

/*New Syntax:*/
SETPRINTERPROPERTY [PRINTERNAME {printer} | PRINTDIALOGFLAG {flag} | ORIENTATION <PORTRAIT | LANDSCAPE | {variable}> | REPORTROWCOUNT {rowcount}];
Detayları gösterShow details
ParametrelerParameters

printer = name of a printer in the system.

flag = can be 1 or 0. If 1 print dialog is also shown before printing, hidden otherwise.

variable = can be PORTRAIT or LANDSCAPE. Default is PORTRAIT.

rowcount = total count of the rows to print onto the page

/*Obsoletes:*/
size = Size multiplier of paper. 1 describes the A4 (595*842) . 2 describes a paper with a length of 2 A4 length and a witdh of 2 A4 width (1190*1684). This property is used for improving the quality of images on the report.

source = paper source position for the paper tray.
copy = copy count to print the page repeatedly...
NotlarRemarks

Acrobat Reader'dan kaynaklanan birçok kısıtlama vardır.
PRINTERNAME property'si ayarlanmışsa PRINTDIALOGFLAG 0'a ayarlanamaz.
PRINTERNAME property'si ayarlanmışsa ikinci report çağrısında bazı sorunlar oluşabilir.

PAPERSIZE DEPRECATED'dır.

There are many restrictions that comes from Acrobat Reader.
If PRINTERNAME property is set PRINTDIALOGFLAG can not be set to 0.
If PRINTERNAME property is set some problems may occur with second report call

PAPERSIZE is DEPRECATED.

SETPROGRESSObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETRELATIONChart

İkinci Y-axis'i (Y2 axis olarak adlandırılır), birinci Y-axis'in verilen parametrelerine göre ayarlar.

Sets second Y-axis(called the Y2 axis) according to the given parameters of first Y-axis.

SETRELATION {constant_value} {multiplier} TO {chartname};
Detayları gösterShow details
ParametrelerParameters
multiplier                 = used to define the multiplication factor for the Y2-axis. This property generates Y2-axis values from the Y-axis annotation. The multiplication factor can be positive or negative.
constant_value         = used to define a value to be added to or subtracted from the Y2-axis values generated by Multiplier.
chartname                 = name of any chart.
NotlarRemarks

En soldaki Y-axis, birinci Y-axis veya primary Y-axis olarak adlandırılır. Chart'ın sağ tarafına ikinci bir Y-axis (Y2) eklemek mümkündür. Chart ters çevrilmişse, birinci Y-axis alttadır ve ikinci Y-axis üsttedir. X-axis ters çevrilmişse, Y-axis'lerin pozisyonu değişir.

Bu command içinde, Y ve Y2 axis'leri arasında aşağıda gösterildiği gibi numeric bir ilişki tanımlanır.

y2= constant_value + y*multiplier;

Bu command, aynı graph data'sının farklı bir ölçeğini veya yorumunu görüntülemek için kullanılır.

The left-most Y-axis is called the first Y-axis or primary Y-axis. It?s possible to add a second Y-axis(Y2) to the right-hand side of the chart. If the chart is inverted, the first Y-axis is at the bottom, and the second Y-axis is at the top. If the X-axis is reversed the position of the Y-axes is switched.

Within this command a numeric relationship is defined between Y and Y2 axes as shown below.

y2= constant_value + y*multiplier;

This command is used to display a different scale or interpretation of the same graph data.

ÖrnekExample
/*If a chart is plotting temperatures that have been measured in degrees Celcius, the following command would create a second Y-axis for Fahrenheit:*/
OBJECT: 
 CHART CHART01;

SETRELATION   32.0   9.0   5.0 TO CHART01;
 /*To eliminate the second Y-axis, disable the relationship by setting multiplier to 0.*/
SETREPORTFONTReport

Report font'unu tanımlanmış bir font control'e ayarlar ve yeni bir font tanımlanana kadar korur.

Sets the report font to a defined font control and maintains until a new font is defined

SETREPORTFONT TO fontcontrol;
Detayları gösterShow details
ParametrelerParameters

fontcontrol = name of a font control on the report.

SETSTYLEBasic Troia

Control'lerin style'larını ayarlar.

Sets the styles of the controls.

SETSTYLE < DIALOGBACKCOLOR | DIALOGFONT | BACKCOLOR | FORECOLOR | HIGHLIGHTCOLOR | BORDERS | BORDERCOLOR | FONT | TABLEROWHEADERBACKGROUND |
 TABLEROWHEADERFOREGROUND 
	| TABLECOLHEADERBACKGROUND | TABLECOLHEADERFOREGROUND | TABLELINECOLOR  |
 TREESELECTEDBACKCOLOR | TREESELECTEDFORECOLOR | TREENODETEXTFONT | TREELEAFTEXTFONT 
	| TREELEAFICON |
 TREEOPENICON | TREECLOSEDICON | TREEEXPANDEDICON | TREECOLLAPSEDICON | LINEWEIGHT | ROWHEIGHT | TABHEADERCOLOR {tabno} >
 
	{value} TO {control_name};
Detayları gösterShow details
ParametrelerParameters

value = A literal value for the related variation of the command.
control_name = The control to set the style with the given variation.

ÖrnekExample
SETSTYLE BACKCOLOR ICOLOR TO LBLTEST;



/* Tabbed Pane Style for the Color 123123 */

SETSTYLE TABHEADERCOLOR 1 123123 TO TABBEDPANE1; 

/* Tabbed Pane Style for the Color -1 (Theme Deafult Color) */

SETSTYLE TABHEADERCOLOR 1 -1 TO TABBEDPANE1;
SETTABLEPROPERTYObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETTABLESTYLEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETTEXTChart

Bir chart üzerinde X, Y, Y2 axis'lerini ve header text'ini verilen text ile ayarlar.

Sets X, Y, Y2 axes and header text with given text on a chart.

SETTEXT < XAXIS | YAXIS | Y2AXIS | HEADER >  {text}  TO {chartname};
Detayları gösterShow details
ParametrelerParameters
XAXIS                 = specifies a title for the X-axis.
YAXIS                 = specifies a title for the Y-axis.
Y2AXIS                = specifies a title for the Y2-axis.
HEADER         = specifies a title for the header.
chartname         = chart control name.
ÖrnekExample
SETTEXT HEADER  'Computer Technology'  TO CHART01;
SETTEXTCOLORTable

Bir tablebox control'ünde bir field veya row'un text color'ını ayarlar.

Sets the text color of a field or row in a tablebox control.

SETTEXTCOLOR {virtual_table_name}[_{field_name}] TO color;
Detayları gösterShow details
ParametrelerParameters

virtual_table_name = Specifies the name of the virtual table

field_name              = Specifies the name of any field on the virtual table used in the SETTEXTCOLOR command. Is used to select a field on the active row. When no field name is specified active row is selected.
Color                     = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

ÖrnekExample
/*A. A SETTEXTCOLOR command with only the virtual table name.*/
SETTEXTCOLOR MATB TO RED;
/*B. A SETTEXTCOLOR command with virtual table name and the field name.*/
SETTEXTCOLOR MATB_GLTPR TO RED;
İlgili KomutlarRelated Commands
SETBACKCOLOR SETCOLLENGTH SETCOLLABEL
SETTIMELABELChart

X-label'ı time format'ında ayarlar.

Sets X-label in time format.

SETTIMELABEL AS {basedate} <DAY|WEEK|MONTH|YEAR> TO {chartname};
Detayları gösterShow details
ParametrelerParameters
basedate         = zero point format.
chartname        = chart control name.
NotlarRemarks

Time-axis, gün, hafta, ay veya yıl cinsinden ölçülen bir şeyi grafikleyen application'lar için idealdir. Bir time-axis kullanabilmeniz için birkaç kriterin karşılanması gerekir:

· X-axis sürekli olmalıdır (yani, chart bir plot veya area chart olmalı ve TRANSPOSE property'si FALSE olmalıdır).

· Axis'in temsil ettiği zaman aralığı, 1970 yılının başlangıcından büyük ve 2038 yılından küçük olmalıdır.

İhtiyaçlarınız bu kriterleri karşılamıyorsa, X-axis'i annotate etmek için Value-labels gibi başka bir yöntem kullanmanız gerekir.

Data'nın X-değerleri, time base'e göre ölçülür. Örneğin, X-değerleri 1993'teki günlerse, time base'i 1993 yılının başlangıcına ayarlamanız gerekir.

The time-axis is ideal for applications that graph something measured in days, weeks, months or years. Several criteria must be met before you can use a time-axis:

·        The X-axis must be continuous(that is, the chart must be either a plot or area chart, and TRANSPOSE property must be FALSE).
·        The time range represented by the axis must be greater than the beginning of the year 1970 and less than the year 2038.

If your needs do not meet these criteria, you will have to use another method for annotating the X-axis, such as Value-labels.

The data's X-values will be measured relative to the time base. For example, if the X-values are days in 1993, you will need to set the time base to the beginning of the 1993 year.

ÖrnekExample
SETTIMELABEL AS   '12.01.1996'  MONTH TO CHART01;
SETTIMERBasic Troia

Aktif dialog'un ONTIMER function'ı için bir interval ayarlar.
Verilen interval ile ONTIMER function'ı çalışır.

Interval parametresi milisaniye cinsindendir.
Verilen interval 0 ise, sistem ONTIMER function'ını iptal eder.

Sets an interval for active dialog's ONTIMER function.
With the given interval ONTIMER function runs.

Interval parameter is in milliseconds.
If given interval is 0, system cancels ONTIMER function.

SETTIMER {interval};
Detayları gösterShow details
ÖrnekExample
/* A. fire onTimer() event in every 8000 milliseconds */

SETTIMER 8000;



/* B. cancel onTimer() event */

SETTIMER 0;
SETTYPEChart

Chart model'inde verilen set için chart type'ını ayarlar. Chart type BAR, PLOT, AREA, STACK veya BUBBLE olarak ayarlanabilir.

Sets chart type for given set in chart model.
Chart type can be set as BAR, PLOT, AREA, STACK or BUBBLE

SETTYPE SET1 TO {chart} AS {type}
SETTYPE SET2 TO {chart} AS {type}
Detayları gösterShow details
ParametrelerParameters

chart : Name of the chart control.

type : Chart type for given dataset (BAR | PLOT | AREA | STACK | PIE | BUBBLE)

In a single chart; two different types of data can be shown on data 1 and data 2 : like bar-plot, bar-stack, stack-plot, area-plot, area-bar, area-stack.
Only pie chart type can not be used in combination.

Bubble Chart supported on v5.01.05 b050501 and following releases.

ÖrnekExample
/*will set dataset1 on CHART01 as plot.*/
SETTYPE SET1 TO CHART01 AS PLOT;

/*will set dataset2 on CHART01 as bubble.*/
SETTYPE SET2 TO CHART01 AS BUBBLE;
SETUSERMENUSystem Functions

Kullanıcı menüsünü (soldaki ağaç) gösterecek veya gizleyecek şekilde ayarlar.

Sets the user menu (tree on the left) to show or hide

SETUSERMENU TO < SHOW | HIDE >;
Detayları gösterShow details
ParametrelerParameters
SHOW                         = show the usermenu
HIDE                         = hide the usermenu
SETWATERMARKReport

Print sayfasına boş (hollow) bir mesaj yazar.

Writes a hollow message onto the print page.

SETWATERMARK {text} WITH FONTSIZE {size} POSITION (HORIZONTAL | VERTICAL | DIAGONAL);
Detayları gösterShow details
ParametrelerParameters

text = Symbol text to print onto the paper.
size = Font size to print the text on the report.

ÖrnekExample
OBJECT:
 STRING PREVIEWTXT;

PREVIEWTXT = 'Hello World!';

SETWATERMARK PREVIEWTXT WITH FONTSIZE 80 POSITION DIAGONAL;
SETXAXISChart

Chart'a X-axis minimum ve maximum değerini ayarlar.

Sets X-axis minimum and maximum value to the chart.

SETXAXIS {data_value} AS <MAXIMUM | MINUMUM> TO {chartname};
Detayları gösterShow details
ParametrelerParameters

data_value = an integer number of values to be displayed on chart

MAXIMUM = specifies the maximum data values to be displayed.

MINUMUM = specifies the minumum data values to be displayed.

chartname = name of any chart.

NotlarRemarks

Bir chart görüntüsünü belirli data değerlerinde çerçevelemek istediğinizde bu command'ı kullanın.

Use this command when you want to frame a chart display at particular data values.

SETXDATAMARKERChart

Verilen set ve point index'ine göre statik dikey marker'ları ayarlar.

Sets static vertical markers according to the given set and point index.

SETXDATAMARKER {set_index} {point_index} [TO value] {color} <SET1|SET2> TO {chartname};
Detayları gösterShow details
ParametrelerParameters
value                  = the value to be set.
color                 = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

chartname         = chart control name.
İlgili KomutlarRelated Commands
SETYDATAMARKER
SETXMARKERChart

Chartname olarak adlandırılan chart'ta, verilen set ve point index'ine göre X-marker'ın pozisyonunu ayarlar.

Sets the position of X-marker on chart named as chartname according to the given set and point index.

SETXMARKER {set_index} {point_index} TO {chartname};
Detayları gösterShow details
ParametrelerParameters
set_index         = set index of data.
point_index         = point index of data.
chartname         = chart control name.
NotlarRemarks

Marker'lar, ekrandaki belirli bir data element'ini veya bir plot'taki belirli bir değeri tanımlamanın bir yolunu sağlar.

Plot'larda, area graph'larda ve bar chart'larda, iki marker tanımlanır: bir X-marker ve bir Y-marker. X-marker, X-axis'e dik bir çizgidir ve Y-marker, Y-axis'e dik bir çizgidir.

Stacking bar chart'larda, X-marker, bar block'larından birinin içinden çizilen kısa bir çizgidir ve Y-marker, Y-axis'e dik bir çizgidir.

Pie chart'larda, yalnızca X-marker tanımlanır ve pie'nin merkezinden dışarıya, seçili dilimin merkezinden geçerek çizilen bir çizgidir.

Markers provide a way to identify a particular data element on the screen or a particular value in a plot.

On plots, area graphs and bar charts, two markers are defined: an X-marker and a Y-marker. The X-marker is a line perpendicular to the X-axis, and the Y-marker is a line perpendicular to the Y-axis.

On stacking bar charts, the X-marker is a short line drawn through one of the bar blocks, and the Y-marker is a line perpendicular to the Y-axis.

On pie charts, only the X-marker is defined, and is a line drawn from the center of the pie outward through the center of the selected slice.

İlgili KomutlarRelated Commands
SETYMARKER
SETXVALUEChart

Data-set1 ve data-set2 için chart'taki point index'ine göre data'nın x değerini ayarlar.

Sets x value of the data according to the point index on chart for data-set1 and data-set2.

SETXVALUE  {point_index} {x_value} < SET1 | SET2 > TO  {chartname};
Detayları gösterShow details
ParametrelerParameters
point_index         = point index of data.
x_value         = x value of data.
chartname         = chart control name.
İlgili KomutlarRelated Commands
SETYVALUE
SETYAXISChart

Chart'a X-axis minimum ve maximum değerini ayarlar.

Sets X-axis minimum and maximum value to the chart.

SETYAXIS {data_value} AS <MAXIMUM | MINIMUM> <SET1 | SET2> TO {chartname};
Detayları gösterShow details
ParametrelerParameters

data_value = an integer number of values to be displayed on chart.

MAXIMUM = specifies the maximum data values to be displayed.

MINUMUM = specifies the minumum data values to be displayed.

chartname = name of any chart.

NotlarRemarks

Bir chart görüntüsünü belirli data değerlerinde çerçevelemek istediğinizde bu command'ı kullanın.

Use this command when you want to frame a chart display at particular data values.

SETYDATAMARKERObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETYDATAMARKER [FROM {fromset} {frompoint} TO {toset} {topoint}] {value} {color} <SET1|SET2> TO {chartname};
Detayları gösterShow details
ParametrelerParameters
fromset - frompoint         = index values defining current datamarker position.
toset-topoint                 = index values defining new datamarker position. 
value                          = the value to be set.
color                         = One of the constant color names specified below.

BLACK WHITE RED GREEN BLUE LTGRAY GRAY DKGRAY YELLOW CYAN MAGENTA DKRED DKGREEN DKBLUE DKYELLOW DKCYAN DKMAGENTA

chartname                 = chart control name.

Sets static horizontal markers according to the given set and point index.

İlgili KomutlarRelated Commands
SETXDATAMARKER
SETYMARKERObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SETYVALUEChart

Data-set1 ve data-set2 için chart'taki set ve point index'ine göre data'nın y değerini ayarlar.

Sets y value of the data according to the set and point index on chart for data-set1 and data-set2.

SETYVALUE  {set_index} {point_index}  {y_value}  < SET1 | SET2 > TO  {chart_name};
Detayları gösterShow details
ParametrelerParameters
set_index         = set index of data.
point_index         = point index of data.
y_value         = y value of data.
chartname         = chart control name.
İlgili KomutlarRelated Commands
SETXVALUE
SETZOOMDIALOGGENERAL

Zoom yaparken mevcut zoom dialog ismini değiştirir. Bu command, ZOOMBEFORE event'inde kullanılmalıdır.

Changes the actual zoom dialog name while zooming. This command should be used in ZOOMBEFORE event.

SETZOOMDIALOG TO {dialogname};
Detayları gösterShow details
ÖrnekExample
SETZOOMDIALOG TO BAST01D050;
SHOWChart

Chart control üzerinde verilen dataset'in noktalarını gösterir.

Shows points of given dataset on chart control.

SHOW SET1 TO {chart};
SHOW SET2 TO {chart};
Detayları gösterShow details
ParametrelerParameters

{chart} : Name of chart control

ÖrnekExample
/*

    Shows points of SET2 dataset on CHART2

*/
SHOW SET2 TO CHART2;
İlgili KomutlarRelated Commands
HIDE
SHOWDIAGRAMGRIDDiagram

İstenen diagram object'inde grid'i gösterir veya gizler.

Shows or hides the grid on the desired diagram object.

SHOWDIAGRAMGRID {diagramname} [TRUE width];
Detayları gösterShow details
ParametrelerParameters

diagramname = name of the diagram.

width = the grid width.

SHOWENTITYMENUDiagram

Belirtilen id üzerinde diagram'ın entity menu'sünü gösterir.

shows the entity menu of diagram on specified id.

SHOWENTIYMENU {diagramname} {menuitems} ON {id};
Detayları gösterShow details
ParametrelerParameters
diagramname = name of the diagram        

menuitems = menuitems to be shown

id = the entity id to be used

SHUTDOWNBasic Troia

Aktif dialog'u kapatır.
Shutdown işleminden sonra TROIA code, CALL komutundan sonraki kodları çalıştırır.

Closes active dialog.
After shutdown operation TROIA code executes codes after CALL command.

SHUTDOWN;
Detayları gösterShow details
ÖrnekExample
/* Do something before shutdown */
SHUTDOWN;
İlgili KomutlarRelated Commands
CALL
SILENTMESSAGEBasic Troia

Mesajı, ekranda bir dialog box'ta göstermek yerine SYSMESSAGE client parametresine ayarlar.

Sets message to SYSMESSAGE client parameter, instead of displaying message in a dialog box on the screen.

SILENTMESSAGE {module} <C | E | W | I | O> {id} [OPTIONS {options}] [DEFAULTOPTION {defid}] WITH p1 p2 p3...;
Detayları gösterShow details
NotlarRemarks

Mesaj type'ları:
C (confirmation),
O (options),
E (error),
W (warning),
I (information).

Message types:
C (confirmation),
O (options),
E (error),
W (warning),
I (information).

İlgili KomutlarRelated Commands
MESSAGE
SIN()Math Functions

Sine'ı hesaplar.

Calculates the sine.

SIN({value});
Detayları gösterShow details
ParametrelerParameters

value = a decimal value representing Angle in radians

NotlarRemarks

Return Value

DECIMAL.

Return Value

DECIMAL.

ÖrnekExample
OBJECT : 
 DECIMAL X;

X =  1.570796;
X = SIN(X);
  /* X =  1.0000000000 */
İlgili KomutlarRelated Commands
COS
SLEEPObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

SORTTable

Bir table'ın kayıtlarını, verilen column'lara göre sıra veya hiyerarşiye göre sıralar.

Sorts a table's records according to the given columns by order or by hierarchy.

SORT {table_name} [CASESENSITIVE] ON [DESC] {column1}, [DESC] {column2};
SORT {table_name} [CASESENSITIVE] ON @sortstring;

SORT {table_name} HIERARCHICAL IDCOLUMN {idcolumn} PARENTIDCOLUMN {parentidcolumn} [ROOTINDICATOR {indicatorvalue}] [MARKLEAFSASNODE];
Detayları gösterShow details
ParametrelerParameters

{tablename} : name of the table
{column1} : column name as string.

{sortstring} : TROIA variable that contains sort string. Ex: ASC COLUMN1, DESC COLUMN2

{idcolumn} : ID column of each record within the table records as hierarchical.
{parentidcolumn}: Parent ID column of each record within the other table records as hierarchical.
{indicatorvalue} : value for the id_column to decide the "root" records.

NotlarRemarks

Verilen column ismi, table'ın column'larından biri olmalıdır.

Ayrıca kullanıcı table object'inde "Sort Ascending/Descending"e bastığında CTRL tuşu basılıysa, sort operation'ı case sensitive olur.

SORT command'ının HIERARCHICAL varyasyonu, table'ınızdaki kayıtları ID ve Parent ID column'larına göre hiyerarşi olarak sıralar. Ayrıca, UITREELEVEL table column'una doğru değeri atayarak kayıtların girintilerini hiyerarşi seviyelerine göre ayarlar.

"Root" kayıtlarına kendiniz karar vermek isterseniz, root kayıtları bulmak için id_column değeriyle ROOTINDICATOR kullanmalısınız. Aksi halde, "root" kayıtlarına command'ın karar vermesini isterseniz, ROOTINDICATOR kullanmanıza gerek yoktur, bu durumda command bu kayıtları kendisi bulur.

Ayrıca, command'ın MARKLEAFSASNODE varyasyonunu kullanarak, hiç child'ı olmayan yeni "leaf"leri "node" olarak işaretleyebilirsiniz.

Given column name has to be one of table's columns.

Also if CTRL key is down when the user presses "Sort Ascending/Descending" on table object; sort operation will be case sensitive.

HIERARCHICAL variant of the SORT command, sorts the records in your table according to the ID and Parent ID columns as hierarchy.
Also, sets the indents of the records accoring to their hierarchy level by assinging the right value for UITREELEVEL table column.
If you want to decide the "root" records by yourself, you have to use ROOTINDICATOR with id_column value to find the root records.
Otherwise, to decide the "root" records by command, you don't have to use ROOTINDICATOR then it finds those records itself.
Moreover, using the MARKLEAFSASNODE variant of the command, you can mark new "leafs" as "node", either having no children.

ÖrnekExample
/* Example1: single column, sorts TMPTABLE on USERNAME column on ascending order */
SORT TMPTABLE ON USERNAME;

/* Example2: multiple columns, sorts TMPTABLE on USERNAME descending and PASSWORD ascending order */
SORT TMPTABLE ON DESC USERNAME, ASC PASSW;

/* Example3: columns are dynamic, sorts TMPTABLE on USERNAME descending and PASSWORD ascending order */
STRINGVAR3 = 'DESC USERNAME, ASC PASSW';
SORT TMPTABLE @STRINGVAR3;
SQLSystem Variables

TROIA kodu çalışırken oluşturulan son sql statement'ını takip eden bir Global variable.

A Global variable that tracks the last sql statement that is created while running TROIA code.

SQL;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Bu variable, SELECT, INSERT, DELETE, UPDATE, INSERTSQL, DELETESQL statement'ından sonra güncellenir.

Return Value

String

This variable is updated after SELECT,INSERT,DELETE,UPDATE,INSERTSQL,DELETESQL statement.

ÖrnekExample
SELECT * 
	FROM IASBAS001 
	WHERE CLIENT = SYS_CLIENT 
		AND COMPANY = STRINGVAR1;

STRINGVAR2 = SQL;

/* STRINGVAR2 => SELECT * FROM IASBAS001  WHERE CLIENT = '00'  AND COMPANY = '02' */
STARTRECORDINGTesting

Kullanıcı etkileşimini kaydetmeye başlar.

Starts recording user interactivity.

STARTRECORDING [{destination file} | {database}{text}];
Detayları gösterShow details
İlgili KomutlarRelated Commands
STOPRECORDING
STOPRECORDINGTesting

Kullanıcı etkileşimi kaydını durdurur.

Stops recording user interactivity.

STOPRECORDING;
Detayları gösterShow details
İlgili KomutlarRelated Commands
STARTRECORDING
STRLEN()String Manipulation

String'deki karakter sayısını döndürür, sonlandırıcı null karakteri dahil değildir.

Returns the number of characters in string, not including the terminating null character.

STRLEN ({string});
Detayları gösterShow details
ParametrelerParameters

string = Specifies the name of the string which holds the string value.

NotlarRemarks

Return Value

Integer:

String'deki karakter sayısını, sonlandırıcı NULL hariç döndürür.

Return Value

Integer:

Returns the number of characters in string , excluding the terminal NULL.

ÖrnekExample
OBJECT: 
 STRING S,
 INTEGER I;

S = 'XXX';
I = STRLEN(S);

/* After this example is executed variable I will be set to 3. */
STRLIKE()String Manipulation

String'leri sql like expression'ı kullanarak karşılaştırır. Return type integer'dır. Eşleşirse 1, aksi halde 0 döndürür.

Compares strings using sql like expression.
Return type is intenger.
Returns 1 if maches, else returns 0.

STRLIKE({source},{pattern},{percentchar},{underscorechar},{ignorecase},{language});
Detayları gösterShow details
ParametrelerParameters

{source} : Source string that will be checked with pattern.
{pattern} : Pattern string with which the source string will be compared to.
{percentchar}: In the pattern if you want to use some other character instead of '%' you can set that character to this option. If empty default will be used.
{underscorechar} : In the pattern if you want to use some other character instead of '_' you can set that character to this option. If empty default will be used.
{ignorecase} : if 1 like comparison will not be case sensitive.
{language} : if ignorecase is 1 case in sensitive comparison will be done according to language. If empty system language will be used. Languages T,D,E,F,P is supported. For other languages E will be used by default.

ÖrnekExample
STRINGVAR1 = 'CANIAS ERP';
STRINGVAR2 = '%ias_%';

INTEGERVAR1 = STRLIKE(STRINGVAR1,STRINGVAR2,'','',1,'E');
/* INTEGERVAR1 should be 1*/

INTEGERVAR1 = STRLIKE(STRINGVAR1,STRINGVAR2,'','',0,'');
/* INTEGERVAR1 should be 0*/

INTEGERVAR1 = STRLIKE(STRINGVAR1,STRINGVAR2,'%','_',1,'T');
 /* INTEGERVAR1 should be 0*/
STRMATCH()String Manipulation

Bu string'in verilen regular expression ile eşleşip eşleşmediğini söyler.

Tells whether or not this string matches the given regular expression

STRMATCH({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1= The string value to be checked

variable2 = the regular expression to which this string is to be matched

NotlarRemarks

Return Value

Integer:

1 veya 0 döndürür.

Return Value

Integer:

Returns 1or 0

STRNCPY()String Manipulation

Bir string'in karakterlerini, ilk karakterden başlayarak verilen değere kadar başka bir string'e kopyalar.

Copies characters of one string into another starting from the first character to the given value.

STRNCPY ({string1}, {string2}, {length});
Detayları gösterShow details
ParametrelerParameters

string1 = Specifies the name of the destination string.

string2 = Specifies the name of the source string.

length = Number of characters to be copied.

NotlarRemarks

Return Value

String:

Yeni string'i döndürür.

Length parametresi ikinci parametrenin uzunluğundan daha uzunsa yalnızca verilen variable kopyalanır ve ilk variable'ın geri kalanı değişmez. Source string'in NULL değeri varsa hiçbir action gerçekleştirilmez.

Return Value

String:

Returns the new string.

If the length parameter is longer than the length of the second parameter only the given variable is copied and the rest of the first variable doesn't change. If the source string has NULL value no action is taken.

ÖrnekExample
OBJECT: 
 STRING S1,
 STRING S2,
 STRING S3,
 INTEGER I;

S1 = 'AHMET';
S2 = 'MUSTAFA';
S3 = 'ASLI';
I = 3;
S1 = STRNCPY(S2, S3, I);
 /* Before STRNCPY function is executed: S1 = AHMET S2 = MUSTAFA S3 = ASLI After STRNCPY function is executed: S1 = ASLMET S2 = MUSTAFA S3 = ASLTAFA*/
STRPOS()String Manipulation

İkinci string'in source string içindeki ilk geçtiği konumu döndürür.

Returns the first occurrence location of the second string in source string.

STRPOS ({string_source}, {string_second});

STRPOS ({string_source}, {string_second} [, startIndex [, searchReverse ] ] );
Detayları gösterShow details
ParametrelerParameters

string_source = Specifies the name of the main string where the second string will be searched in.

string_second = Specifies the name of the string to be searched.

startIndex = optional parameter. if supplied searching starts from that index

searchReverse = optional parameter. if supplied and not zero search is made backward starting from start index. (to use reverse search startIndex should be supplied)

NotlarRemarks

Integer:

Konumu döndürür.

İkinci string (aranan) source string içinde bulunamazsa, sıfır (-0-) değeri döndürülür. Source string'in NULL değeri varsa hiçbir action gerçekleştirilmez. Bu function case sensitive'dir.

Integer:

Returns the location.

If the second string(to be searched) can not be found in source string, then a zero -0-value is returned. If the source string has NULL value no action is taken.

This function uses case sensitivity.

ÖrnekExample
OBJECT: 

 STRING STR1,

 STRING STR2,

 INTEGER LOCATION;



STR1 = 'How old are you?';

STR2 = 'old';

LOCATION = STRPOS(STR1, STR2);



/*

After STRPOS function is executed:



LOCATION = 5; (There is a blank character between -how- and -old-)

*/
STRSTR()String Manipulation

Bir string'in karakterlerini, verilen karakterden başlayarak verilen değere kadar başka bir string'e kopyalar.

Copies characters of one string into another starting from the given character to the given value.

STRSTR ({string}, {start}, {length});
Detayları gösterShow details
ParametrelerParameters
string   = Specifies the name of the string to be processed..
start     = Specifies the name of the starting point of the new string. (zero based)
length   = Number of characters to be copied.
NotlarRemarks

Return Value

String:

Yeni string'i döndürür.

Return Value

String:

Returns the new string.

ÖrnekExample
OBJECT: 

 STRING S1,

 STRING S2,

 INTEGER L1,

 INTEGER L2;



S1 = 'KALINLIK';

L1 = 2;

L2 = 3;

S2 = STRSTR(S1, L1, L2);



/*

Before STRSTR function is executed:



S1 = KALINLIK

S2 = NULL



After STRSTR function is executed:



S1 = KALINLIK

S2 = LIN

*/
STRTONUM()String Manipulation

Bir string'i bir sayıya dönüştürür.

Converts a string to a number.

STRTONUM({variable});
Detayları gösterShow details
ParametrelerParameters

variable =A string value

NotlarRemarks

Return Value

Integer:

String değerinin numeric temsili.

Return Value

Integer:

Numeric presentation of the string value.

ÖrnekExample
OBJECT: 
 STRING S,
 INTEGER I;

S = 'IAS';
I = STRTONUM(S);
 /*I gets the value of  107684.*/
İlgili KomutlarRelated Commands
NUMTOSTR
SUBDAYS()Date Functions

Verilen date veya datetime'dan verilen gün sayısını çıkarır.

Subtracts given number of days from the given date or datetime.

SUBDAYS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT  = '01.01.1996 15.45';

D    = '01.01.1996';

T    = '15.45';

L    = 3;

DTY = SUBDAYS(DT, L);

STR1= SUBDAYS(DT, L);

DY = SUBDAYS(D, L);

STR2= SUBDAYS(D, L);



/*

Before SUBDAYS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  NULL

DY      = NULL

STR1   = NULL

STR2   = NULL

L         = 3



After SUBDAYS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  '29.21.1995 15.45'

DY      = '29.21.1995'

STR1   = '29.21.1995 15.45'

STR2   = '29.21.1995'

L         = 3

*/
İlgili KomutlarRelated Commands
ADDDAYS,ADDMONTHS,ADDYEARS,ADDHOURS,ADDMINUTES,SUBMONTHS,SUBYEARS,SUBHOURS,SUBMINUTES
SUBHOURS()Date Functions

Verilen time veya datetime'dan verilen saat sayısını çıkarır.

Subtracts given number of hours from the given time or datetime.

SUBHOURS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time/datetime varibale. A DATETIME or a TIME variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir TIME variable type'ıysa format TIME'dır.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a TIME if the variable is a TIME variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT  = '01.01.1996 15.45';

D    = '01.01.1996';

T    = '15.45';

L    = 3;

DTY = SUBHOURS(DT, L);

STR1= SUBHOURS(DT, L);

DY = SUBHOURS(T, L);

STR2= SUBHOURS(T, L);



/*

Before SUBHOURS function is executed:



DT       = '01.01.1996 15.45'

T          = '15.45'

DTY    =  NULL

TY      = NULL

STR1   = NULL

STR2   = NULL

L         = 3



After SUBDAYS function is executed:



DT       = '01.01.1996 15.45'

T         = '15.45'

DTY    =  '01.01.1996 12.45'

TY      = '12.45'

STR1   = '01.01.1996 12.45'

STR2   = '12.45'

L         = 3

*/
İlgili KomutlarRelated Commands
ADDDAYS,ADDMONTHS,ADDYEARS,ADDHOURS,ADDMINUTES,SUBDAYS,SUBMONTHS,SUBYEARS,SUBMINUTES
SUBMINUTES()Date Functions

Verilen time veya datetime'dan verilen dakika sayısını çıkarır.

Subtracts given number of minutes from the given time or datetime.

SUBMINUTES ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the time/datetime varibale. A DATETIME or a TIME variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir TIME variable type'ıysa format TIME'dır.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a TIME if the variable is a TIME variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT  = '01.01.1996 15.45';

D    = '01.01.1996';

T    = '15.45';

L    = 3;

DTY = SUBMINUTES(DT, L);

STR1= SUBMINUTES(DT, L);

DY = SUBMINUTES(T, L);

STR2= SUBMINUTES(T, L);



/*

Before SUBMINUTES function is executed:



DT       = '01.01.1996 15.45'

T          = '15.45'

DTY    =  NULL

TY      = NULL

STR1   = NULL

STR2   = NULL

L         = 3



After SUBMINUTES function is executed:



DT       = '01.01.1996 15.45'

T         = '15.45'

DTY    =  '01.01.1996 15.42'

TY      = '15.42'

STR1   = '01.01.1996 15.42'

STR2   = '15.42'



L         = 3

*/
İlgili KomutlarRelated Commands
ADDDAYS,ADDMONTHS,ADDYEARS,ADDHOURS,ADDMINUTES,SUBMONTHS,SUBDAYS,SUBYEARS,SUBHOURS
SUBMONTHS()Date Functions

Verilen date veya datetime'dan verilen ay sayısını çıkarır.

Subtracts given number of months from the given date or datetime.

SUBMONTHS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length 	           = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT  = '01.01.1996 15.45';

D    = '01.01.1996';

T    = '15.45';

L    = 3;

DTY = SUBMONTHS(DT, L);

STR1= SUBMONTHS(DT, L);

DY = SUBMONTHS(D, L);

STR2= SUBMONTHS(D, L);





/*

Before SUBMONTHS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  NULL

DY      = NULL

STR1   = NULL

STR2   = NULL

L         = 3



After SUBMONTHS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  '01.09.1995 15.45'

DY      = '01.09.1995'

STR1   = '01.09.1995 15.45'

STR2   = '01.09.1995'



L         = 3

*/
İlgili KomutlarRelated Commands
ADDDAYS , ADDMONTHS, ADDYEARS,ADDHOURS, ADDMINUTES, SUBDAYS,SUBYEARS,SUBHOURS,SUBMINUTES
SUBYEARS()Date Functions

Verilen date veya datetime'dan verilen yıl sayısını çıkarır.

Subtracts given number of years from the given date or datetime.

SUBYEARS ({variable_name}, {length});
Detayları gösterShow details
ParametrelerParameters

variable_name = Specifies the name of the date/datetime varibale. A DATETIME or a DATE variable type.

length              = Specifies the name of the length variable.
NotlarRemarks

Return Value

String:

Variable bir DATETIME variable type'ıysa format DATETIME'dır, variable bir DATE variable type'ıysa format DATE'dir.

Return Value

String:

Format is a DATETIME if the variable is a DATETIME variable type or a DATE if the variable is a DATE variable type.

ÖrnekExample
OBJECT: 

 DATETIME DT,

 DATETIME DTY,

 DATE D,

 DATE DY,

 TIME Y,

 TIME TY,

 STRING STR1,

 STRING STR2,

 INTEGER L;



DT  = '01.01.1996 15.45';

D    = '01.01.1996';

T    = '15.45';

L    = 3;

DTY = SUBYEARS(DT, L);

STR1= SUBYEARS(DT, L);

DY = SUBYEARS(D, L);

STR2= SUBYEARS(D, L);



/*

Before SUBYEARS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  NULL

DY      = NULL

STR1   = NULL

STR2   = NULL

L         = 3



After SUBYEARS function is executed:



DT       = '01.01.1996 15.45'

D         = '01.01.1996'

DTY    =  '01.01.1999 15.45'

DY      = '01.01.1999'

STR1   = '01.01.1999 15.45'

STR2   = '01.01.1999'



L         = 3

*/
İlgili KomutlarRelated Commands
ADDDAYS, ADDMONTHS, ADDYEARS , ADDHOURS ,ADDMINUTES,SUBDAYS,SUBMONTHS, SUBMINUTES,SUBHOURS
SUPER()Troia Development

Inherited/overloaded dialog function veya event kodlarını bir code line gibi çalıştırır.

Runs the inherited/overloaded dialog function or event codes like a code line.

SUPER();
Detayları gösterShow details
NotlarRemarks

Inherited dialog'lardaki inherited/overloaded dialog event'lerinde ve function'ında geçerlidir. Class'larda kullanmayın; inherited/overloaded class function'larını çalıştırmaz.

Valid in the inherited/overloaded dialog events and function on inherited dialogs.
Don't use in the classes; it doesn't run the inherited/overloaded class functions.

SWITCHBasic Troia

Bir expression'ın değerine bağlı olarak birkaç statement grubundan birini çalıştırır.

Executes one of several groups of statements, depending on the value of an expression.

SWITCH {variable_name}

         CASE {value1}:

                    {block1};

         [....; 

         CASE {valueN}:

                    {blockN};] 

         DEFAULT       :

                    {block(N+1)};



ENDSWITCH;
Detayları gösterShow details
ParametrelerParameters
variable_name         = Any numeric, character or string variable.
value                         = Any numeric, character or string value. This value type should match with the type of the variable  String values should be written between '  '. 
block                         = One or more statements separated by colons. Can contain block stattements as well.
NotlarRemarks

variable_name, bir Case clause'la ilişkilendirilmiş herhangi bir değerle eşleşirse, o Case clause'u takip eden statement'lar bir sonraki Case clause'a kadar çalıştırılır ve ardından switch block'unun çalışması sona erer.

CASE statement'ları nest edilebilir. Her SWITCH statement'ının eşleşen bir ENDSWITCH statement'ı olmalıdır. Hiçbir case condition'ı sağlanmazsa, default case çalıştırılır.

If variable_name matches any value associated with a Case clause, the statements following that Case clause

are executed up to the next Case clause and then execution of the switch block ends.

CASE statements can be nested. Each SWITCH statement must have a matching ENDSWITCH statement.

If no case conditions is satisfied, then default case is operated.

ÖrnekExample
SELECT * FROM MATD WHERE MATNR='G1000';

SWITCH MATD_DISPO 

       CASE '100' :

               SELECT * FROM MATA WHERE MATNR = MATD_MATNR;

               SELECT * FROM MATS WHERE MATNR = MATD_MATNR;

       CASE '200' :

               SELECT * FROM MATG WHERE MATNR = MATD_MATNR;

               SELECT * FROM MATV WHERE MATNR = MATD_MATNR;

       CASE '300' :

               SELECT * FROM MATE WHERE MATNR = MATD_MATNR;

               SELECT * FROM MATKT WHERE MATNR = MATD_MATNR;



       DEFAULT   :

               SHUTDOWN;        

ENDSWITCH;
İlgili KomutlarRelated Commands
IF
SYNCHRONIZEBasic Troia

Server tarafında çalışan kodu durdurur, client'ı güncel değerlerle günceller ve ardından server tarafında çalışan koda kesilen satırdan devam eder.

Interrupts the running code at the server side and updates the client with the current values
then continues with the running code at the server side from the interrupted line.

SYNCHRONIZE;
Detayları gösterShow details
ÖrnekExample
INTEGERVAR1 = 0;

WHILE INTEGERVAR1 < 100 
BEGIN
	INTEGERVAR1 = INTEGERVAR1 + 1;
	SYNCHRONIZE;
ENDWHILE;
SYSADDITIONALCRITERIASystem Variables

Gelişmiş arama (advanced search) feature'ı için ek SQL-WHERE criteria'larını tutar.

Keeps additional SQL-WHERE criterias for the advanced search feature.

SYSADDITIONALCRITERIA;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Read ve Write geçerlidir.

Returns string.
Read and Write is valid.

SYSAUTHORIZE()System Functions

Verilen username ve password çiftinin, system user bilgisinde geçerli olup olmadığını döndürür.

Returns whether the given username and apssword couple is valid in the system users info.

SYSAUTHORIZE(user_name,pass_word);
Detayları gösterShow details
ParametrelerParameters

user_name = Username to check the system authorization.
pass_word = Password for the user authorization.

NotlarRemarks

Çift varsa ve uyuyorsa 1, aksi halde 0 döndürür.

Returns 1 if the couple exists and complies, otherwise returns 0.

ÖrnekExample
PARAMETERS: 
 STRING USERNM,
 STRING PSSWRD;

IF SYSAUTHORIZE(USERNM,PSSWRD) == 0 THEN
	/*You are not authorized!*/
	MESSAGE SYS E0651 WITH;
	RETURN 0;
ENDIF;

RETURN 1;
SYSBATCHMESSAGESSystem Variables

Batch transaction çalışırken tetiklenen system mesajlarını tutar.

Keeps the system messages fired during the batch transaction running.

SYSBATCHMESSAGES;
Detayları gösterShow details
NotlarRemarks

Batch transaction mode'unda, system mesajları ekranda gösterilmez, SYSBATCHMESSAGES table'ında tutulur.
Bu yüzden sistem, kullanıcıyla etkileşim kurmak için mesaj kutusunu hiç beklemez; bunun yerine çalışmaya devam eder.

In batch transaction mode, system messages are not showed to the screen, they are kept in SYSBATCHMESSAGES table.
Thus the system doesn't wait anytime for the message box to interact with the user; instead, it continues to run.

SYSDOACTION()System Functions

Verilen action'ı application server üzerinde çalıştırır ve sonucu döndürür.

Runs the given action on the application server and returns the result.

SYSDOACTION(login_name,pass_word,action_id,action_parameter);
Detayları gösterShow details
ParametrelerParameters

login_name = Administrator login name to connect to the application server.
pass_word = Administrator password for the administrator login name.
action_id = Action ID to run or complete on the connected app. server.
action_parameter = Parameters to be used by the given action, such as by 'ClearClassCaches' and 'ClearDialogCaches'.

Action ID List: 'CloseServer', 'ClearClassCaches', 'ClearDialogCaches', 'ClearMenuCaches', 'ReloadConfiguration',
'ReloadDatabases', 'RestartServer', 'RunGarbageCollector', 'StartConsoleSnapShot', 'StopConsoleSnapshot',
'GetSettingsFilename', 'GetSettingsFilename', 'GetConsoleSnapShot', 'GetSystemInformation'.

NotlarRemarks

Verilen action'ın sonucunu veya success status'unu (integer 0 veya 1) döndürür.

Returns either the result of the given action or success status (integer 0 or 1).

ÖrnekExample
OBJECT:

 STRING LOGINNM,

 STRING PASSWRD,

 STRING CLSARG,

 STRING DLGARG;



/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'CloseServer','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'ClearClassCaches',CP(CLSARG));

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'ClearDialogCaches',CP(DLGARG));

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'ClearMenuCaches','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'ReloadConfiguration','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'ReloadDatabases','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'RestartServer','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'RunGarbageCollector','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'StartConsoleSnapShot','');

/*Returns Success Status*/

SYSDOACTION(LOGINNM,PASSWRD,'StopConsoleSnapshot','');

/*Returns Server Settings File Path*/

SYSDOACTION(LOGINNM,PASSWRD,'GetSettingsFilename','');

/*Returns Server Console Snap Shot Text*/

SYSDOACTION(LOGINNM,PASSWRD,'GetConsoleSnapShot','');

/*Returns Server System Info Text*/

SYSDOACTION(LOGINNM,PASSWRD,'GetSystemInformation','');
İlgili KomutlarRelated Commands
SYSGETPROCESSINFO()
SYSGETPROCESSINFO()System Functions

Verilen bir user connection'ında çalışan bir transaction/process bilgisini döndürür.

Returns a running transaction/process info in a given user connection.

SYSGETPROCESSINFO(login_name,pass_word,connection_id,transaction_id);
Detayları gösterShow details
ParametrelerParameters

login_name = Administrator login name to connect to the application server.
pass_word = Administrator password for the administrator login name.
connection_id = Connection ID of a user connected to the server.
transaction_id = Any running transaction ID of the user in the connection.

NotlarRemarks

Transaction/process bilgisini string olarak döndürür.

Returns the transaction/process info as string.

SYSGETSERVERINFO()System Functions

Verilen server info key'ine göre server bilgisini döndürür.

Returns the server info by the given server info key.

SYSGETSERVERINFO(login_name,pass_word,server_info_key);
Detayları gösterShow details
ParametrelerParameters

login_name = Administrator login name to connect to the application server.
pass_word = Administrator password for the administrator login name.
server_info_key = Key word to get the necessary information from the server.

Server Info Keys: 'CaniasBuild', 'ConnectorCount', 'CPUState', 'JavaVersion',
'MaxConnectorCount', 'MaxUserCount', 'HeapSize', 'UsedHeapSize',
'StartDate', 'UserCount', 'CaniasVersion'.

NotlarRemarks

Server'dan verilen keyword'ün text sonucunu döndürür.

Returns the text result of the given key word from the server.

ÖrnekExample
OBJECT:

 STRING LOGINNM,

 STRING PASSWRD;



/*Returns the result text according to the info key*/

SYSGETSERVERINFO(LOGINNM,PASSWRD,'CaniasBuild');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'ConnectorCount');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'CPUState');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'JavaVersion');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'MaxConnectorCount');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'MaxUserCount');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'HeapSize');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'UsedHeapSize');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'StartDate');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'UserCount');

SYSGETSERVERINFO(LOGINNM,PASSWRD,'CaniasVersion');
İlgili KomutlarRelated Commands
SYSGETPROCESSINFO()
SYSGETTRANSLIST()System Functions

Server üzerindeki verilen connection/session'ın transaction/process listesini listeler.

Lists the transaction/process list of the given connection/session on the server.

SYSGETTRANSLIST(login_id,password,connection_id,table_name,server_name);
Detayları gösterShow details
ParametrelerParameters

login_id = login account defined in the server settings file as the administrator. (Obsolote anymore, give null text)
password = login password of the login account defined in the server settings. (Obsolote anymore, give null text)
connection_id = connection/session id of the transactions to list.
table_name = virtual table name to fill the transaction/process info into.
server_name = server alias name of the connection id.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 INTEGER SUCCESS,
 TABLE TMPTABLE;

SUCCESS = SYSGETTRANSLIST('','','ahmetozdemir_012345',TMPTABLE,'canias');
SET TMPTABLE TO TABLE TMPTABLE;
SYSGETUSERINFOLIST()System Functions

Connection bilgilerini liste olarak okumanın başarı durumunu döndürür ve verilen table'a doldurur.

Returns succes status of reading the connections info as list and fills into the given table.

SYSGETUSERINFOLIST(target_name);
Detayları gösterShow details
ParametrelerParameters

target_table = Target table name in string format, to fill all of the connections as list.

NotlarRemarks

Başarı durumunda 1, başarısızlık durumunda 0 döndürür.

Target table'ı tüm connection'lar ve şu bilgilerle doldurur: ClientHost, ConnectionID, Server, DBServer, Database, SPID1, SPID2, Transaction, TransactionID, ProcessTime, StartDate, TraceType, LogOnDate, Local, ClientJavaVersion.

Returns 1 in case of success and returns 0 in case of fail.

Fills the target table with all connections and their info for:
ClientHost, ConnectionID, Server, DBServer, Database,
SPID1, SPID2, Transaction, TransactionID, ProcessTime,
StartDate, TraceType, LogOnDate, Local, ClientJavaVersion.

ÖrnekExample
OBJECT: 
 TABLE TMPTABLE,
 INTEGER INT;

INT = SYSGETUSERINFOLIST(TMPTABLE);
SET TMPTABLE TO TABLE TMPTABLE;
İlgili KomutlarRelated Commands
SYSGETPROCESSINFO()
SYSGETUSERLIST()System Functions

Server üzerindeki tüm kullanıcıların session ve process bilgilerini listeler.

Lists the session and process infos of all the users on the server.

SYSGETUSERLIST(table_name);
Detayları gösterShow details
ParametrelerParameters

table_name = virtual table name to fill the session info into...

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 INTEGER SUCCESS,
 TABLE TMPTABLE;

SUCCESS = SYSGETUSERLIST(TMPTABLE);
SET TMPTABLE TO TABLE TMPTABLE;
SYSKILLPROCESS()System Functions

Server üzerindeki bir connection/session'da, verilen bir transaction üzerinde çalışan process'i sonlandırır.

Kills the running process on a given transaction on a connection/session on the server.

SYSKILLPROCESS(login_id,password,connection_id,transaction_id,server_name);
Detayları gösterShow details
ParametrelerParameters

login_id = login account defined in the server settings file as the administrator.
password = login password of the login account defined in the server settings.
connection_id = connection/session id of the transaction to kill process.
transaction_id = transaction id to fill the running process on.
server_name = server alias name of the connection id.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 INTEGER SUCCESS,
 TABLE TMPTABLE;

SUCCESS = SYSKILLPROCESS('','','ahmetozdemir_012345','RDTT01','canias');
SYSKILLTRANSACTION()System Functions

Server üzerindeki bir connection/session'da verilen transaction'ı sonlandırır.

Kills the given transaction on a connection/session on the server.

SYSKILLTRANSACTION(login_id,password,connection_id,transaction_id,server_name);
Detayları gösterShow details
ParametrelerParameters

login_id = login account defined in the server settings file as the administrator.
password = login password of the login account defined in the server settings.
connection_id = connection/session id of the transactions to kill.
transaction_id = transaction id to fill the running process on.
server_name = server alias name of the connection id.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 INTEGER SUCCESS,
 TABLE TMPTABLE;

SUCCESS = SYSKILLTRANSACTION('','','ahmetozdemir_012345','RDTT01','canias');
SYSKILLUSER()System Functions

Verilen server üzerindeki verilen user connection'ını sonlandırır ve success status'unu döndürür.

Kills the given user connection on the given server and returns the success status.

SYSKILLUSER(login_id,pass_word,connection_id,server_name);
Detayları gösterShow details
ParametrelerParameters

login_id = Login account defined in the server settings file as the administrator.
pass_word = Login password of the login account defined in the server settings.
connection_id = Connection/session id of the transactions to kill.
server_name = Server alias name of the connection id.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 STRING LOGINNM,
 STRING PASSWRD,
 INTEGER SUCCESS;

SUCCESS = SYSKILLUSER(LOGINNM,PASSWRD,'ahmetozdemir_012345','canias');
SYSMESSAGESystem Variables

BATCH Process'leri için kullanılır. Bir batch process çalışırken bir Message geldiğinde; mesaj text'i bu variable'a ayarlanır.

Used for BATCH Processes. When a Message is arrived while a batch process is running; the message text is set to this variable.

SYSMESSAGE
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

SYSPOINTSystem Variables

Chart üzerindeki seçili noktayı takip eden bir Global variable.

A Global variable that keeps track of the selected point on Chart.

SYSPOINT
Detayları gösterShow details
NotlarRemarks

Return Value

Integer

Bu variable her zaman bir chart control ile kullanılır.

Bir item select veya item change event'i oluşursa bu variable güncellenir. Başlangıç değeri 0'dır.

Return Value

Integer

This variable is always used with a chart control.

If an item select or an item change event occurs this variable is updated. Initial value is 0.

SYSSENDMESSAGE()System Functions

Verilen mesaj text'ini server üzerindeki verilen kullanıcıya gönderir ve success status'unu döndürür.

Sends the given message text to the given user on the server and returns the success status.

SYSSENDMESSAGE(login_id,pass_word,connection_id,message_text,server_name);
Detayları gösterShow details
ParametrelerParameters

login_id = Login account defined in the server settings file as the administrator.
pass_word = Login password of the login account defined in the server settings.
connection_id = Connection/session id of the transaction to kill process.
message_text = Message text to send to the user.
server_name = Server alias name of the connection id.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 STRING LOGINNM,
 STRING PASSWRD,
 INTEGER SUCCESS;

SUCCESS = SYSSENDMESSAGE(LOGINNM,PASSWRD,'ahmetozdemir_012345','Hello Friend!','CANIAS');
SYSSETSystem Variables

Chart üzerindeki seçili set'i takip eden bir Global variable.

A Global variable that keeps track of the selected set on Chart.

SYSSET;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer

Bu variable her zaman bir chart control ile kullanılır.

Bir item select veya item change event'i oluşursa bu variable güncellenir. Başlangıç değeri 0'dır.

Return Value

Integer

This variable is always used with a chart control.

If an item select or an item change event occurs this variable is updated. Initial value is 0.

SYSSETPARAM()System Functions

Verilen system parametresini verilen değere ayarlar ve success status'unu döndürür.

Sets the given system parameter to the given value and returns the success status.

SYSSETPARAM(system_parameter,new_value)
Detayları gösterShow details
ParametrelerParameters

system_parameter = Global system parameters such as ZOOMID, SYS_STAUS, SYS_STAUSERROR.
new_value = New value to assign to the given system parameter.

NotlarRemarks

Başarı durumunda 1, başarısızlık durumunda 0 döndürür.

Returns 1 in case of success and returns 0 in case of fail.

ÖrnekExample
OBJECT:
 INTEGER SUCCESSSTATUS;

SUCCESSSTATUS = SYSSETPARAM(ZOOMID,0);
SUCCESSSTATUS = SYSSETPARAM(ZOOMID,1);

SUCCESSSTATUS = SYSSETPARAM(SYS_STATUS,5);
SUCCESSSTATUS = SYSSETPARAM(SYS_STATUSERROR, 'SYS_STATUS now has the value five...');
SYSSETUSERTRACE()System Functions

Verilen transaction'ı verilen trace state'ine ayarlar ve success status'unu döndürür.

Sets the given transaction to the given trace state and returns the success status.

SYSSETUSERTRACE(login_id,password,connection_id,transaction_id,trace_state);
Detayları gösterShow details
ParametrelerParameters

login_id = login account defined in the server settings file as the administrator.
password = login password of the login account defined in the server settings.
connection_id = connection/session id of the transactions to kill.
transaction_id = transaction id to fill the running process on.
trace_state = ?.

NotlarRemarks

Return Value: Integer

Başarılıysa 1, aksi halde 0 döndürür.

Return Value
: Integer

Returns 1 if success else 0.

ÖrnekExample
OBJECT:
 STRING LOGINNM,
 STRING PASSWRD,
 INTEGER SUCCESS;

SUCCESS = SYSSETUSERTRACE(LOGINNM,PASSWRD,'ahmetozdemir_012345','ahmetozdemir_RDTT01_506',1);
SYS_ACTIONDIALOGSystem Variables

Mevcut action dialog ismini döndürür.

Returns the current action dialog name.

SYS_ACTIONDIALOG
Detayları gösterShow details
NotlarRemarks

String döndürür.

SYS_ACTIONDIALOG function'ı, her dialog'un sahip olduğu bir dialog function'ıdır.

Returns String.

SYS_ACTIONDIALOG function is a dialog function that every dialog has.

SYS_AFFECTEDROWCOUNTSystem Variables

Bir DB statement'ından (INSERT, UPDATE, DELETE ve SELECT) etkilenen row sayısını döndüren bir Global Variable.

A Global Variable that returns the number of rows affected by a DB statement. INSERT, UPDATE, DELETE and SELECT.

SYS_AFFECTEDROWCOUNT
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer.

ÖrnekExample
BEGINTRAN;
INSERT INTO IASBAS000 ('CLIENT') VALUES ('55');
INTEGERVAR1 = SYS_AFFECTEDROWCOUNT;
UPDATE IASBAS000 
	SET CLIENT = '56' 
	WHERE CLIENT = '55';

INTEGERVAR2 = SYS_AFFECTEDROWCOUNT;
DELETE 
	FROM IASBAS000 
	WHERE CLIENT = '56';

INTEGERVAR3 = SYS_AFFECTEDROWCOUNT;
DELETE 
	FROM IASBAS000 
	WHERE CLIENT = '55';

DECIMALVAR1 = SYS_AFFECTEDROWCOUNT;
COMMITTRAN;
SELECT * 
	FROM IASBAS000 
	INTO TMPTABLE;

DECIMALVAR2 = SYS_AFFECTEDROWCOUNT;
SET TMPTABLE TO TABLE TMPTABLE;
İlgili KomutlarRelated Commands
INSERT UPDATE DELETE SELECT
SYS_BUILDSystem Variables

CANIAS Build numarasını döndüren bir Global variable.

A Global variable that returns the CANIAS Build no.

SYS_BUILD
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu global variable Read Only'dir.

Returns String.

This global variable is Read Only.

ÖrnekExample
OBJECT : STRING BLD;

BLD = SYS_BUILD;
SYS_CLIENTSystem Variables

Mevcut CANIAS Application Client'ını döndüren bir Global Variable.

A Global Variable that returns the Current CANIAS Application Client.

SYS_CLIENT
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu Global variable Read Only'dir.

Returns String.

This Global variable is Read Only.

ÖrnekExample
SELECT * FROM IASSYSTEM WHERE CLIENT = SYS_CLIENT;
SYS_COMPONENTOWNERDIALOGSystem Variables

Component'in kullanıldığı dialog ismini döndürür.

Returns the dialog name that the component is used on.

SYS_COMPONENTOWNERDIALOG
Detayları gösterShow details
ParametrelerParameters

It is used only in component events and functions.

ÖrnekExample
OBJECT:
 STRING CADVSEARCHID;

/* Initialize Event of the Advanced Search Component: COMC001ADV#INITIALIZE: */
CADVSEARCHID = SYS_COMPONENTOWNERDIALOG;

/* Advanced Search Component is ised in the Java Component:  SALT01D001#ADVANCEDSEARCH */
/* When the transaction is called, then SALT01D001 dialog is called and ADVANCEDSEARCH->COMC001ADV#INITIALIZE event is triggered */
/*Componenet reads the dialog name into CADVSEARCHID and returns 'SALT01D001' */
CADVSEARCHID = SYS_COMPONENTOWNERDIALOG;
SYS_CURRENTDATESystem Variables

Mevcut SERVER tarafı tarih ve saatini döndüren bir Global Variable.

A Global Variable that returns current SERVER side date and time.

SYS_CURRENTDATE
Detayları gösterShow details
NotlarRemarks

Datetime döndürür.

Bu Global Variable Read Only'dir.

Returns Datetime.

This Global Variable is Read Only.

ÖrnekExample
OBJECT : DATETIME CUR;

CUR = SYS_CURRENTDATE;
SYS_CURRENTDIALOGSystem Variables

DIALOGINFO Function tarafından kullanılır. Mevcut dialog ismini döndürür.

Used by DIALOGINFO Function. Returns current dialog name.

SYS_CURRENTDIALOG.
Detayları gösterShow details
NotlarRemarks

String döndürür.

DIALOGINFO function'ı, her dialog'un sahip olduğu bir Dialog Function'dır.

Returns String.

DIALOGINFO function is a Dialog Function every dialog has.

SYS_CURRENTTABDIALOGSystem Variables

Kodun çalıştığı tab dialog ismini döndürür.

Returns the tab dialog name that the code runs on.

SYS_CURRENTTABDIALOG
Detayları gösterShow details
ParametrelerParameters

It is used in mutli or tab dialog events and functions.

SYS_DRAGDATADrag & Drop

Sistemdeki tüm Drag-n-Drop data type'larını tutar.

Keeps all type of Drag-n-Drop data in the system.

SYS_DRAGDATA
Detayları gösterShow details
NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

İlgili KomutlarRelated Commands
SYS_DRAGGED, SYS_DROPPED
SYS_DRAGGEDDrag & Drop

Kullanıcının drag işlemine başladığı dialog control ismini tutar.

Keeps the dialog control name that the user started to drag on.

SYS_DRAGGED
Detayları gösterShow details
NotlarRemarks

Yalnızca ReadOnly geçerlidir.

ReadOnly is valid.

İlgili KomutlarRelated Commands
SYS_DRAGDATA, SYS_DROPPED
SYS_DROPPEDSystem Variables

Kullanıcının drag işlemini bitirip drop ettiği dialog control ismini tutar.

Keeps the dialog control name that the user finished dragging and dropped onto.

SYS_DROPPED
Detayları gösterShow details
NotlarRemarks

Yalnızca ReadOnly geçerlidir.

ReadOnly is valid.

İlgili KomutlarRelated Commands
SYS_DRAGDATA, SYS_DRAGGED
SYS_DROPXSystem Variables

Diagram control üzerine drop işleminin horizontal piksel pozisyonunu tutar.

Keeps the horizontal pixel position of droping onto the diagram control.

SYS_DROPX
Detayları gösterShow details
NotlarRemarks

Yalnızca ReadOnly geçerlidir.

ReadOnly is valid.

SYS_DROPYSystem Variables

Diagram control üzerine drop işleminin vertical piksel pozisyonunu tutar.

Keeps the vertical pixel position of droping onto the diagram control.

SYS_DROPY
Detayları gösterShow details
NotlarRemarks

Yalnızca ReadOnly geçerlidir.

ReadOnly is valid.

SYS_EXTAMOUNTSystem Variables (Extension)

Para değerlerini tutmak için global extension variable.

Global extension variable to keep money values.

SYS_EXTAMOUNT
Detayları gösterShow details
ParametrelerParameters

Keeps money values.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTBODYSystem Variables (Extension)

E-mail body'sini tutmak için global extension variable.

Global extension variable to keep e-mail body.

SYS_EXTBODY
Detayları gösterShow details
ParametrelerParameters

Keeps e-mail body.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTCHILDTABLESystem Variables (Extension)

Child table'ı tutmak için global extension variable.

Global extension variable to keep child table.

SYS_EXTCHILDTABLE
Detayları gösterShow details
ParametrelerParameters

Keeps child table.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTCOMPANYSystem Variables (Extension)

Company code'larını tutmak için global extension variable.

Global extension variable to keep company codes.

SYS_EXTCOMPANY
Detayları gösterShow details
ParametrelerParameters

Keeps company codes.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTCURRENCYSystem Variables (Extension)

Currency code'unu tutmak için global extension variable.

Global extension variable to keep currency code.

SYS_EXTCURRENCY
Detayları gösterShow details
ParametrelerParameters

Keeps currency code.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTDATAKEYSystem Variables (Extension)

Data key değerlerini tutmak için global extension variable.

Global extension variable to keep data key values.

SYS_EXTDATAKEY
Detayları gösterShow details
ParametrelerParameters

Keeps data key values.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTDATATYPESystem Variables (Extension)

Data type değerlerini tutmak için global extension variable.

Global extension variable to keep data type values.

SYS_EXTDATATYPE
Detayları gösterShow details
ParametrelerParameters

Keeps data type values.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTFILESSystem Variables (Extension)

E-mail attachment dosyalarını tutmak için global extension variable.

Global extension variable to keep e-mail attachment files.

SYS_EXTFILES
Detayları gösterShow details
ParametrelerParameters

Keeps e-mail attachment files.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTHEADTABLESystem Variables (Extension)

Head table'ı tutmak için global extension variable.

Global extension variable to keep head table.

SYS_EXTHEADTABLE
Detayları gösterShow details
ParametrelerParameters

Keeps head table.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTLINKSystem Variables (Extension)

CANIAS Link string satırını tutmak için global extension variable.

Global extension variable to keep CANIAS Link string line.

SYS_EXTLINK
Detayları gösterShow details
ParametrelerParameters

Keeps CANIAS Link string line.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTLTEXTSystem Variables (Extension)

Long text değerini tutmak için global extension variable.

Global extension variable to keep long text value.

SYS_EXTLTEXT
Detayları gösterShow details
ParametrelerParameters

Keeps long text value.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTMODISystem Variables (Extension)

Process mode değerini tutmak için global extension variable.

Global extension variable to keep process mode value.

SYS_EXTMODI
Detayları gösterShow details
ParametrelerParameters

Keeps process mode value.

NotlarRemarks

Read ve Write geçerlidir.
Default değer -1'dir. NEW için 0, CHANGE için 1 ve SHOW için 2 tutar.

Read and Write is valid.
Default value is -1. Keeps 0 for NEW, 1 for CHANGE and 2 for SHOW.

SYS_EXTQUANTITYSystem Variables (Extension)

Material quantity değerini tutmak için global extension variable.

Global extension variable to keep material quantity value.

SYS_EXTQUANTITY
Detayları gösterShow details
ParametrelerParameters

Keeps material quantity value.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTQUNITSystem Variables (Extension)

Quantity unit'ini tutmak için global extension variable.

Global extension variable to keep quantity unit.

SYS_EXTQUNIT
Detayları gösterShow details
ParametrelerParameters

Keeps quantity unit.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTSTEXTSystem Variables (Extension)

Short text değerini tutmak için global extension variable.

Global extension variable to keep short text value.

SYS_EXTSTEXT
Detayları gösterShow details
ParametrelerParameters

Keeps short text value.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTSUBJECTSystem Variables (Extension)

E-mail subject'ini tutmak için global extension variable.

Global extension variable to keep e-mail subject.

SYS_EXTSUBJECT
Detayları gösterShow details
ParametrelerParameters

Keeps e-mail subject.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_EXTTARGETCIDSSystem Variables (Extension)

E-mail target contact ID değerlerini tutmak için global extension variable.

Global extension variable to keep e-mail target contact ID values.

SYS_EXTTARGETCIDS
Detayları gösterShow details
ParametrelerParameters

Keeps e-mail target contact ID values.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

SYS_HTTPPOSTCOOKIESSystem Variables

SENDHTTPPOST Command tarafından kullanılır. Http post sonucundaki cookie'leri döndürür.

Used by SENDHTTPPOST Command. Returns the cookies in the http post result.

SYS_HTTPPOSTCOOKIES
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

İlgili KomutlarRelated Commands
SENDHTTPPOST
SYS_HTTPPOSTRESPONSESystem Variables

SENDHTTPPOST Command tarafından kullanılır. Http post sonucunu döndürür.

Used by SENDHTTPPOST Command. Returns http post result.

SYS_HTTPPOSTRESPONSE
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

İlgili KomutlarRelated Commands
SENDHTTPPOST
SYS_HYPERLINKSystem Variables

Editable olmayan bir html text field'ında bir hyperlink'e basıldığında, hyperlink'i döndürmek için kullanılan bir Global variable.

A Global variable that is used to return a hyperlink when one pressed on a noneditable html text field.

SYS_HYPERLINK;
Detayları gösterShow details
NotlarRemarks

Return Value

String.

Return Value

String.

SYS_INDBTRANSACTIONSystem Variables

Sistemin database transaction durumunu tutar.

Keeps the database transaction status of the system.

SYS_INDBTRANSACTION
Detayları gösterShow details
NotlarRemarks

Database transaction durumunda integer 1, aksi halde integer 0 döndürür.
Yalnızca ReadOnly geçerlidir.

Returns integer 1 in case of database transaction else returns integer 0.
ReadOnly is valid.

ÖrnekExample
OBJECT:
 INTEGER INDBTRAN;

INDBTRAN = SYS_INDBTRANSACTION;

IF INDBTRAN == 0 THEN
   BEGINTRAN;
ENDIF;

/*
ROLLBACKTRAN;
COMMITTRAN;
*/
İlgili KomutlarRelated Commands
BEGINTRAN, ROLLBACKTRAN, COMMITTRAN
SYS_ISBATCHTRANSACTIONSystem Variables

Sistemin database transaction durumunu tutar.

Keeps the database transaction status of the system.

SYS_ISBATCHTRANSACTION
Detayları gösterShow details
NotlarRemarks

Transaction server tarafında bir batch transaction olarak çalışıyorsa integer 1, aksi halde integer 0 döndürür.
Yalnızca ReadOnly geçerlidir.

Returns integer 1 in case of the transaction running as a batch transaction on the serverside else returns integer 0.
ReadOnly is valid.

ÖrnekExample
OBJECT: 
 INTEGER INBATCHTRAN;

INBATCHTRAN = SYS_ISBATCHTRANSACTION;

IF INBATCHTRAN == 0 THEN
	SETBATCHTRAN TRUE;
ENDIF;
İlgili KomutlarRelated Commands
SETBATCHTRAN
SYS_JSPMESSAGESystem Variables

TROIA kodu bir HTML sayfası üzerinden çalışırken bir mesaj döndürmek için kullanılan bir Global variable. (IAS JSP konsepti)

A Global variable that is used to return a message while running TROIA code thru an HTML page. (IAS JSP concept)

SYS_JSPMESSAGE;
Detayları gösterShow details
NotlarRemarks

Return Value

String.

Bu değer bir HTML sayfası üzerinden döndürülür.

Return Value

String.

This value is returned thru an HTML page.

ÖrnekExample
/*this code is placed in a function of a class which is called thru an HTML page.(IAS JSP concept) 

In this example, if RETVAL is 6 then no message will be generated thru an HTML page else the text moved to SYS_JSPMESSAGE will be shown.*/

IF RETVAL != 6 THEN
	MOVE MSGSTR TO SYS_JSPMESSAGE;
ENDIF;
SYS_LANGUSystem Variables

Mevcut CANIAS Application Language'ını döndüren bir Global Variable.

A Global Variable that returns the Current CANIAS Application Language.

SYS_LANGU
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu Global Variable Read Only'dir.

Returns String.

This Global Variable is Read Only.

ÖrnekExample
OBJECT : STRING LAN;

LAN = SYS_LANGU;
SYS_LINKSystem Variables

Transaction çağırmak için bir string satırı olan bir CANIAS LINK'i tutar.

Keeps a CANIAS LINK that is a string line to call transaction.

SYS_LINK
Detayları gösterShow details
ParametrelerParameters

One-line string value.

NotlarRemarks

Read ve Write geçerlidir.

Read and Write is valid.

ÖrnekExample
OBJECT:
 IASLINKS IASLINKSREC;

SYS_LINK = IASLINKSREC.CREATELINK();
IASLINKSREC.EXECUTELINK(SYS_LINK);
SYS_LISTCOUNTSystem Variables

Bir SELECT statement'ı tarafından getirilebilecek maksimum row sayısını tutan bir Global variable.

A Global variable that keeps the number of the maximum rows that can be retrieved by a SELECT statement.

SYS_LISTCOUNT;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer.

Bu variable, SETLISTCOUNT function'ından sonra değişir.

Return Value

Integer.

This variable changes after SETLISTCOUNT function.

ÖrnekExample
SETLISTCOUNT(100);

/*after running this function,SYS_LISTCOUNT is 100*/
SYS_MOASystem Variables

Seçili tree item'ının type'ını belirten bir Global variable.

A Global variable that indicates the type of the selected tree item.

SYS_MOA;
Detayları gösterShow details
NotlarRemarks

Return Value

String.

Bu variable her zaman bir tree control ile kullanılır.

Tree üzerindeki seçili item bir menuyse bu variable 'M' değerini alır, aksi halde 'A'.

Return Value

String.

This variable is always used with a tree control.

If the selected item on the tree is a menu this variable gets the value of 'M' else 'A'.

ÖrnekExample
OBJECT : 
 STRING S1,
 STRING S2;

S1 = SYS_TREETEXT;
S2 = SYS_MOA;
TRACE.GETITEMS(S1,S2);
 /*This code is placed under the DoubleClick function of a tree control . If a double click event occurs on the tree ,

 sends the type of the clicked item (M -menu or A-action ) to the class named TRACE.*/
SYS_OLDGTDURATIONSystem Variables

Drag veya move operation'larından önce bir GT object'inin eski duration'ını tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the old duration of a GT object before drag or move operations.

SYS_OLDGTDURATION;
Detayları gösterShow details
NotlarRemarks

Return Value

INTEGER

Return Value

INTEGER

İlgili KomutlarRelated Commands
SYS_OLDGTSTARTDATE
SYS_OLDGTSTARTDATESystem Variables

Drag veya move operation'larından önce bir GT object'inin eski start date'ini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the old start date of a GT object before drag or move operations.

SYS_OLDGTSTARTDATE;
Detayları gösterShow details
NotlarRemarks

Return Value

Datetime

Return Value

Datetime

İlgili KomutlarRelated Commands
SYS_OLDGTDURATION
SYS_PROTASKSystem Variables
SYS_REPORTCAPTIONSystem Variables

Mevcut report caption'ını report dilinde tutar.

Keeps the current report caption in the report language.

SYS_REPORTCAPTION;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Yalnızca ReadOnly geçerlidir.

Returns String.
ReadOnly is valid.

SYS_REPORTCREATEDATSystem Variables

Mevcut report'un oluşturulma tarihini tutar.

Keeps created date of the current report.

SYS_REPORTCREATEDAT;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Yalnızca ReadOnly geçerlidir.

Returns String.
ReadOnly is valid.

SYS_REPORTCREATEDBYSystem Variables

Mevcut report'u oluşturan kullanıcıyı tutar.

Keeps created user of the current report.

SYS_REPORTCREATEDBY;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Yalnızca ReadOnly geçerlidir.

Returns String.
ReadOnly is valid.

SYS_REPORTMODIFIEDATSystem Variables

Mevcut report'un son değiştirilme tarihini tutar.

Keeps the last changed date of the current report.

SYS_REPORTMODIFIEDAT;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Yalnızca ReadOnly geçerlidir.

Returns String.
ReadOnly is valid.

SYS_REPORTMODIFIEDBYSystem Variables

Mevcut report'u en son değiştiren kullanıcıyı tutar.

Keeps the user changed the current report lastly.

SYS_REPORTMODIFIEDBY;
Detayları gösterShow details
NotlarRemarks

String döndürür.
Yalnızca ReadOnly geçerlidir.

Returns String.
ReadOnly is valid.

SYS_REPORTNAMESystem Variables

Report function'ları tarafından kullanılır. Mevcut report ismini döndürür.

Used by report functions. Returns current report name.

SYS_REPORTNAME;
Detayları gösterShow details
NotlarRemarks

String döndürür.

Yalnızca ReadOnly geçerlidir.

Returns String.

ReadOnly is valid.

SYS_REVISIONSystem Variables

Dialog'un kaç kez değiştirildiğini döndüren bir Global variable.

A Global variable that returns the number of times the dialog has been changed.

SYS_REVISION
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Bu Global Variable Read Only'dir.

Returns Integer.

This Global Variable is Read Only.

ÖrnekExample
OBJECT : INTEGER X;

X = SYS_REVISION;
SYS_SELECTEDDATESystem Variables

Bir date time picker'ın seçili date object'ini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep sected date object of a date time picker.

SYS_SELECTEDDATE;
Detayları gösterShow details
NotlarRemarks

Return Value

Datetime

Return Value

Datetime

SYS_SELECTEDTABSystem Variables

Mevcut dialog üzerindeki seçili tab button'ının index numarasını döndürür.

Returns the index number of the selected tab button on the current dialog.

SYS_SELECTEDTAB;
Detayları gösterShow details
ParametrelerParameters

Returns the index number of the selected tab button.
Index is 0 based; starts with 0 for the most-left position button.

SYS_SORTEDCOLUMNSystem Variables

Sıralanmış table column'unun ismini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the name of the sorted table column.

SYS_SORTEDCOLUMN;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Return Value

String

İlgili KomutlarRelated Commands
SYS_SORTEDTABLE
SYS_SORTEDTABLESystem Variables

Sıralanmış table object'inin ismini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the name of the sorted table object.

SYS_SORTEDTABLE;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Return Value

String

İlgili KomutlarRelated Commands
SYS_SORTEDCOLUMN
SYS_STATUSSystem Variables

Mevcut operation başarısız olursa 1 döndüren ortak (common) bir Global variable.

A Common Global variable that returns 1 if the current operation is failed.

SYS_STATUS
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Database ve File Command'larında kullanılır. Ayrıca READ command'ında da kullanılır.

Returns Integer.

Used on Database and File Commands. Also used in READ command.

ÖrnekExample
INSERT INTO IASSYSTEM;

IF SYS_STATUS THEN

	ROLLBACKTRAN;

	RETURN 0;

ENDIF;

COMMITTRAN;
SYS_STATUSERRORSystem Variables

Operation tarafından sağlanmışsa error string'ini döndüren ortak (common) bir Global variable.

A Common Global variable that returns the error string if provided by the operation.

SYS_STATUSERROR
Detayları gösterShow details
NotlarRemarks

String döndürür.

Genellikle SYS_STATUS 1 olduğunda kontrol edilir.

Returns String.

Generally checked when SYS_STATUS is 1.

İlgili KomutlarRelated Commands
SYS_STATUS
SYS_SUBMENUSystem Variables

Seçili pulldown button item'ının id'sini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the id of the selected pulldown button item.

SYS_SUBMENU;
Detayları gösterShow details
NotlarRemarks

Return Value

INTEGER

Return Value

INTEGER

SYS_SUBMENUTXTSystem Variables

Seçili pulldown button item'ının text'ini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the text of the selected pulldown button item.

SYS_SUBMENUTXT;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Return Value

String

İlgili KomutlarRelated Commands
SYS_SUBMENU
SYS_TASKMESSAGESystem Variables
SYS_TASKSTATUSSystem Variables
SYS_TEXTSELECTIONSystem Variables

Kullanıcının herhangi bir text/code editor'de klavye veya mouse kullanarak seçtiği/highlight ettiği text'i döndürür.

Returns the selected/highlighted text within any type text/code editor by the user, using keyboard or mouse.

SYS_TEXTSELECTION;
Detayları gösterShow details
ParametrelerParameters

Returns string.

İlgili KomutlarRelated Commands
SYS_TEXTSELECTIONOWNER, SYS_TEXTSELECTIONSTART
SYS_TEXTSELECTIONOWNERSystem Variables

Kullanıcının klavye veya mouse kullanarak seçtiği/highlight ettiği text'in bulunduğu dialog control ismini döndürür.

Returns the dialog control name of the selected/highlighted text within by the user, using keyboard or mouse.

SYS_TEXTSELECTIONOWNER;
Detayları gösterShow details
ParametrelerParameters

Returns string.

İlgili KomutlarRelated Commands
SYS_TEXTSELECTION, SYS_TEXTSELECTIONSTART
SYS_TEXTSELECTIONSTARTSystem Variables

Kullanıcının herhangi bir text/code editor'de klavye veya mouse kullanarak seçtiği/highlight ettiği ilk karakterin numarasını döndürür.

Returns the first selected/highlighted character number within any type text/code editor by the user, using keyboard or mouse.

SYS_TEXTSELECTION;
Detayları gösterShow details
ParametrelerParameters

Returns integer.

NotlarRemarks

Integer döndürür.
Index 1 tabanlıdır; text'teki ilk karakter için 1'den başlar.

Returns integer.
Index is 1 based; starts with 1 for the first character in the text.

İlgili KomutlarRelated Commands
SYS_TEXTSELECTION, SYS_TEXTSELECTIONOWNER
SYS_TOTALPAGEROWSSystem Variables

Bir report üzerindeki toplam sayfa row'unu döndüren bir Global Variable.

A Global Variable that returns total page rows on a report.

SYS_TOTALPAGEROWS
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer.

SYS_TRANAPPROVEDATSystem Variables

Mevcut Transaction'ın Approval Date'ini döndüren bir Global Variable.

A Global Variable that returns the current Transaction's Approval Date.

SYS_TRANAPPROVEDAT
Detayları gösterShow details
NotlarRemarks

Datetime döndürür.

Returns Datetime.

SYS_TRANAPPROVEDBYSystem Variables

Mevcut Transaction'ın Approval Owner'ının ismini döndüren bir Global Variable.

A Global Variable that returns the current Transaction's Approval Owners name.

SYS_TRANAPPROVEDBY
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

SYS_TRANCREATEDATSystem Variables

Mevcut Transaction'ın Creation Date'ini döndüren bir Global Variable.

A Global Variable that returns the current Transaction's Creation Date.

SYS_TRANCREATEDAT
Detayları gösterShow details
NotlarRemarks

Datetime döndürür.

Returns Datetime.

SYS_TRANCREATEDBYSystem Variables

Mevcut Transaction'ın Creation owner'ını döndüren bir Global Variable.

A Global Variable that returns the current Transaction's Creation owner.

SYS_TRANCREATEDBY
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

SYS_TRANMODIFIEDATSystem Variables

Mevcut Transaction'ın modification date'ini döndüren bir Global Variable.

A Global Variable that returns the current Transaction's modification date.

SYS_TRANMODIFIEDAT
Detayları gösterShow details
NotlarRemarks

Datetime döndürür.

Returns Datetime.

SYS_TRANMODIFIEDBYSystem Variables

Mevcut Transaction'ın Modification owner'ını döndüren bir Global Variable.

A Global Variable that returns the current Transaction's Modification owner.

SYS_TRANMODIFIEDBY
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

SYS_TRANREVISIONSystem Variables

Mevcut Transaction'ın revision numarasını döndüren bir Global Variable.

A Global Variable that returns the current Transaction's revision number.

SYS_TRANREVISION
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer

SYS_TRANSACTIONSystem Variables

Mevcut Transaction ismini döndüren bir Global Variable.

A Global Variable that returns the current Transaction Name.

SYS_TRANSACTION
Detayları gösterShow details
NotlarRemarks

String döndürür.

Returns String.

ÖrnekExample
OBJECT : STRING TRAN;

TRAN = SYS_TRANSACTION;
SYS_TRANSACTIONIDSystem Variables

Mevcut transaction'ın transaction id'sini döndüren bir Global Variable.

A Global Variable that returns the current transactions transaction id

SYS_TRANSACTIONID
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu Global Variable Read Only'dir.

Ayrıca bkz. SYS_TRANSACTION

Returns String.

This Global Variable is Read Only.

See also SYS_TRANSACTION

ÖrnekExample
OBJECT : STRING TID;

TID = SYS_TRANSACTIONID;
SYS_TREEITEMSystem Variables

Seçili tree item'ının id'sini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the id of the selected tree item.

SYS_TREEITEM;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Bu variable her zaman bir tree control ile kullanılır.

Return Value

String

This variable is always used with a tree control.

ÖrnekExample
GETTREEITEM INTO MA TXT WITH SYS_TREEITEM FROM TREE1;
SYS_TREETEXTSystem Variables

Seçili tree item'ının text'ini tutmak için kullanılan bir Global variable.

A Global variable that is used to keep the text of the selected tree item.

SYS_TREETEXT;
Detayları gösterShow details
NotlarRemarks

Return Value

String

Bu variable her zaman bir tree control ile kullanılır.

Return Value

String

This variable is always used with a tree control.

ÖrnekExample
OBJECT : 
 STRING S1,
 STRING S2;

S1 = SYS_TREETEXT;
S2 = SYS_MOA;
TRACE.GETITEMS(S1,S2);
 /*This code is placed under the DoubleClick function of a tree control . If a double click event occurs on the tree ,

 sends the text of the clicked item to the class named TRACE. */
SYS_UPDATETASKSystem Variables
SYS_USERSystem Variables

Mevcut kullanıcı ismini döndüren bir Global variable.

A Global variable that returns the current user name.

SYS_USER
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu Global Variable Read Only'dir.

Returns String.

This Global Variable is Read Only.

ÖrnekExample
OBJECT : STRING USERN;

USERN = SYS_USER;
SYS_VERSIONSystem Variables

CANIAS Version'ını döndüren bir Global variable.

A Global variable that returns the CANIAS Version.

SYS_VERSION
Detayları gösterShow details
NotlarRemarks

String döndürür.

Bu global variable Read Only'dir.

Returns String.

This global variable is Read Only.

ÖrnekExample
OBJECT : STRING VER;

VER = SYS_VERSION;
TESTBEGINTesting

Bir test kaydetmeye başlar.

Starts recording a test.

TESTBEGIN;
Detayları gösterShow details
İlgili KomutlarRelated Commands
TESTEND
TESTENDTesting

Bir test kaydetmeyi durdurur.

Stops recording a test.

TESTEND;
Detayları gösterShow details
İlgili KomutlarRelated Commands
TESTBEGIN
TILEIMAGEImage Handling

Orijinal image'dan, verilen kullanıcı tanımlı boyutları kullanarak dilimlenmiş image'lar oluşturmak ve dosyaları verilen konuma kaydetmek için kullanılır.

Used to create a sliced images from the original image using the given user defined sizes and save the files into given location.

TILEIMAGE {source_file} INTO {destination_folder} WITH SIZE {width} {height};
Detayları gösterShow details
ParametrelerParameters

width: the width of the specified rectangular region
height: the height of the specified rectangular region

ÖrnekExample
TILEIMAGE ‘*Pictures/picture.jpg’ INTO ‘*Pictures/’  WITH  SIZE 300 400;
İlgili KomutlarRelated Commands
CROPIMAGE
TIMEINMILLISECONDS()Date Functions

Zamanı milisaniye cinsinden döndürür.

Returns the time in milliseconds.

TIMEINMILLISECONDS();
Detayları gösterShow details
NotlarRemarks

Return Value

Integer

Zamanı milisaniye cinsinden döndürür.

Return Value

Integer

Returns the time in milliseconds.

TOCHAR()String Manipulation

Verilen integer'ı string'e değiştirir.

Changes the given integer to string.

TOCHAR({integer_value});
Detayları gösterShow details
ParametrelerParameters

integer_value = Specifies the integer to be converted.

NotlarRemarks

Return Value

String:

Yeni string'i döndürür.

255'ten büyük sayıların ASCII karşılığı olmadığından, 0 ile 255 arasında bir sayı kullanmak daha iyidir.

Return Value

String:

Returns the new string.

It's better to use a number between 0 and 255 as numbers greater than 255 has no ASCII correspondant.

ÖrnekExample
OBJECT: 

 STRING S1;



S1 = TOCHAR(101);



/*

Before TOCHAR function is executed:



S1 = NULL



After TOCHAR function is executed:



S1 = A

*/
İlgili KomutlarRelated Commands
GETCHARCODE
TRACEOFFTroia Development

Trace'i kapatır.

Turns trace off.

TRACEOFF;
Detayları gösterShow details
İlgili KomutlarRelated Commands
TRACEON
TRACEONTroia Development

Active user ve active transaction'da trace'i başlatır.

Starts trace on active user and active transaction.

TRACEON {FILE DB|FILE|ALL} ;
Detayları gösterShow details
ParametrelerParameters

DB = opens db trace

FILE = opens file trace

ALL = opens all traces.

ÖrnekExample
TRACEON FILE;
İlgili KomutlarRelated Commands
TRACEOFF
TRACEPAUSETroia Development

Trace başlatılmışsa, active user'da trace'i duraklatır veya devam ettirir.

Pause or continue trace on active user if trace is started.

TRACEPAUSE {WAIT|CONTINUE} ;
Detayları gösterShow details
ÖrnekExample
STRINGVAR1 = 'Trace string first';
TRACEPAUSE WAIT;
STRINGVAR1 = 'You wont see this string in trace';
TRACEPAUSE CONTINUE;
STRINGVAR1 = 'Trace string second';
İlgili KomutlarRelated Commands
TRACEON, TRACEOFF
TRANSCALLEDSystem Variables

Mevcut transaction'ın, TROIA kod satırları içinde başka bir transaction tarafından "çağrılıp çağrılmadığını" döndürür.

Returns whether the current transaction is "called" by another transaction within TROIA code lines.

TRANSCALLED;
Detayları gösterShow details
ParametrelerParameters

Returns integer.
ReadOnly is valid.

ÖrnekExample
OBJECT:

 STRING TRANCODE;



TRANCODE = 'MRPT01';



/* TRANSCALLED is 0 */



CALL TRANSACTION TRANCODE(P1,P2,P3);

/*Withing the MRPT01D001 and the folowing dilaogs TRANSCALLED is 1 */



/* TRANSCALLED turns to 0 */
TRANSPOSEObsolete Commands & Functions

Obsolete (kullanımdan kaldırılmış).

Obsolete.

TRIM()String Manipulation

Verilen string'i trim eder.

Trims the given string

TRIM(variable_name);
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the string variable to be trimmed

NotlarRemarks

Return Value

String

Return Value

String

ÖrnekExample
/*

input=>-   xsssx  -

result =>-xsssx- no spaces at the beginning an end

*/
OBJECT: 
 STRING S;

S = '   xsssx  ';
STRINGVAR2 = TRIM(S);
TRUNCATEMONEY()FUNCTION

Verilen variable'ı money format'ına truncate eder (keser).

Truncates the given variable into money format.

TRUNCATEMONEY({variable_name});
Detayları gösterShow details
ParametrelerParameters

variable_name = specifies the variable to be truncated like money format.It can eiteher be STRING or DECIMAL.

NotlarRemarks

Return Value

Decimal.

Retun Value

Decimal.

ÖrnekExample
OBJECT: 
 STRING S;

S = '678768';
DECIMALVAR2 = TRUNCATEMONEY(S);
 /*result=>678.768,00 (Result is shown according to  clients' regional settings.) */
İlgili KomutlarRelated Commands
NUMPICTFORMAT
UNZIPFILEFile

Arşivlenmiş dosyanın içeriğini verilen directory'ye çıkarır.

Extracts the content from the archived file into given directory.

UNZIPFILE {file_path} INTO {target_directory};
Detayları gösterShow details
ParametrelerParameters

file_path : The full source path of the compressed file.
target_directory : The target directory to extract the compressed file into.

ÖrnekExample
/*Creates images\iaslogo.jpg*/
UNZIPFILE 'tmp\iaslogo.jpg.zip' INTO 'images\iaslogo.jpg';
İlgili KomutlarRelated Commands
ZIPFILE
UPDATEDatabase

Var olan row'lardaki data'yı, yeni data ekleyerek veya var olan data'yı değiştirerek değiştirir.

Changes data in existing rows, either by adding new data or by modifying existing data.

UPDATE {table_name}

SET column_name1 = {column_name1 | variable_name1 | expression1} 

        [[, column_name2 = {column_name2 | variable_name2 | expression2} 

        [..., column_nameN = {column_nameN | variable_nameN | expressionN}]] 

[WHERE  {clause}];
Detayları gösterShow details
ParametrelerParameters
table_name                 = Specifies the name of the table used in the UPDATE statement. table_name can be a variable.
column_name      = expression 
variable_name     = expression 
column_name      = Specifies a column from the table (table_name). 
expression             = Is a column_name, constant, function or any combination of column_names, constants, and functions connected by an operator(s), or a subquery. 
WHERE clause      = WHERE search_conditions Is used to perform a searched update (using search_conditions). When no WHERE clause is given in the UPDATE statement, all rows in the table are modified. 

search_conditions = Specifies the criteria for a searched update. A search_condition can include an expression, a subquery, a constant, and so on.

NotlarRemarks

UPDATE statement'ının sonucu başarılıysa SYS_STATUS 0'a ayarlanır, aksi halde 1'e ayarlanır ve UPDATED_ flag'i 1'e ayarlanır, aksi halde 0'a ayarlanır.

If the result of UPDATE statement is succesfull SYS_STATUS is set to 0 otherwise it is set to 1 and UPDATED_ flag is set to 1 otherwise it is set to 0.

ÖrnekExample
A. UPDATE Statement with Only the SET Clause

These examples show how all rows can be affected if a WHERE clause is eliminated from an UPDATE statement.

UPDATE MATA 



SET ARBPL = 'xx';



This example changes the ARBPL field of all records in MATA to NULL:

UPDATE MATA 



SET ARBPL = NULL;



You can also use computed column values in an update. This example doubles all prices in the titles table:

UPDATE titles



SET price = price * 2



B. UPDATE Statement with a WHERE Clause

The WHERE clause specifies which rows are to be updated. 

UPDATE MATA SET ARBPL = 'xx' WHERE MATNR = 'G1000'; 



UPDATE MATA SET ARBPL = 'xx', PSTKZ = 'XXX' WHERE MATNR = 'G1000';
İlgili KomutlarRelated Commands
SELECT INSERT DELETE
UPDATEDSystem Variables

UPDATE statement'ı table'da row güncellemişse 1 döndüren bir Global Variable.

A Global Variable that returns 1 if the UPDATE statement has updated rows on table.

UPDATED
Detayları gösterShow details
NotlarRemarks

Integer döndürür.

Returns Integer.

ÖrnekExample
UPDATE IASSALITEM;

IF UPDATED THEN

	STRINGVAR1 = 'ROWS UPDATED.';

ENDIF;
UPPERCASE()String Manipulation

Verilen herhangi bir text parametresini system locale kullanarak uppercase'e (büyük harfe) dönüştürür.

Converts any given text parameter to uppercase using system locale

UPPERCASE({variable1},{variable2});
Detayları gösterShow details
ParametrelerParameters

variable1 = String to be converted

variable2 = Language (T,E,D,F,P)

NotlarRemarks

Return Value

String:

İstenen string'i uppercase olarak döndürür.

Return Value

String:

Returns the desired string in uppercase.

ÖrnekExample
OBJECT: 

 STRING S1,

 STRING S2;



S1 = 'ias';

S2 = UPPERCASE(S1,'T');

/* S2 is 'İAS' now. */

S2 = UPPERCASE(S1,'E');

/* S2 is now 'IAS'. */
İlgili KomutlarRelated Commands
LOWERCASE
VALIDATEXMLXML Parsing

Bir XML dosyasını bir validator dosyasına karşı doğrular.

Validates an XML file against a validator file.

VALIDATEXML {validator_file_path} {candidate_file_path} WITH {validation_type} [TO {control_name}];
VALIDATEXML TEXT {validator_xml_text} {candidate_xml_text} WITH {validation_type} [TO {control_name}];
Detayları gösterShow details
ParametrelerParameters

validator_file_path : The path of the validator file used to obtain validation rules.
candidate_file_path: The path of the xml file which will be validated.

TEXT: This flag indicates that the input parameters are xml strings instead of file paths.
validator_xml_text: A string variable which holds validator xml.
candidate_xml_text: A string variable which holds candidate xml that will be validated.

validation_type: A key specifiying the validation type. SCHEMATRON is the only valid key right now.

If candidate xml is valid SYS_STATUS is set to 0, if it is invalid SYS_STATUS is set to 1, if an unexpected error occured during validation SYS_STATUS is set to 2.

NotlarRemarks

validation_type yalnızca SCHEMATRON olabilir. Diğer validation type'ları gelecekte desteklenebilir. validator_file_path ve candidate_file_path ile belirtilen dosyalar server'da bulunmalıdır.

validation_type can only be SCHEMATRON . Other validation types might be supported in future.
The files specified with validatior_file_path and candidate_file_path should reside on server.

ÖrnekExample
/*Example 1: Text based validation */

OBJECT:
STRING SCHEMATRONXML,
STRING CANDIDATEXML;

/*Read contents of validator.sch and candidate.xml into corresponding variables*/
/*You could also get the contents from a database table for instance*/
OPEN FILE 'validator.sch' FORREAD;
GETBLOCK CODEPAGE 'UTF-8' SCHEMATRONXML, '';
CLOSE FILE;

OPEN FILE 'candidate.xml' FORREAD;
GETBLOCK CODEPAGE 'UTF-8' CANDIDATEXML, '';
CLOSE FILE;

VALIDATEXML TEXT SCHEMATRONXML CANDIDATEXML WITH SCHEMATRON TO STRINGVAR3;

/*Output validation result code*/
STRINGVAR1 = SYS_STATUS;

/*Example 2: File based validation */
OBJECT:
STRING SCHEMATRONDESTPATH,
STRING CANDIDATEDESTPATH;

SCHEMATRONDESTPATH = 'validator.sch';
CANDIDATEDESTPATH = 'candidate.xml';

/*Copy files from client to server*/
COPYFILE '*C:\TMP\validator.sch' INTO SCHEMATRONDESTPATH;
COPYFILE '*C:\TMP\candidate.xml' INTO CANDIDATEDESTPATH;

VALIDATEXML SCHEMATRONDESTPATH CANDIDATEDESTPATH WITH SCHEMATRON TO STRINGVAR3; 

/*Output validation result code*/
STRINGVAR1 = SYS_STATUS;
VECTORCONTAINS()Vector

Verilen bir element'in, verilen vector'de var olup olmadığını döndürür.

Returns whether a given element exists in the given vector.

VECTORCONTAINS(vector_name,element_name);
Detayları gösterShow details
ParametrelerParameters

vector_name = Vector to search the element in.
element_name = Symbol name of the element to search.

NotlarRemarks

Element varsa integer 1, yoksa integer 0 döndürür.

Returns integer 1 case of element exists else returns integer 0.

ÖrnekExample
OBJECT: 

 VECTOR A, 

 STRING B;



/*Returns 0*/

VECTORCONTAINS(A,B);



B = 'Some Value';

ADDELEMENT B TO A;



/*Returns 1*/

VECTORCONTAINS(A,B);
İlgili KomutlarRelated Commands
ADDELEMENT, REMOVEELEMENT, CLEAR VECTOR, VECTORCONTAINS(v,x)
VERIFYCARDSecurity

Bu user'ın haklarını doğrulamak için card verify operation'ını çalıştırır.

Runs card verify operation for verifying rights of this user.

VERIFYCARD;
Detayları gösterShow details
NotlarRemarks

Transaction batch veya sql transaction ise engellenir.

It is prevented if the transaction is batch or sql transactions.

İlgili KomutlarRelated Commands
AUTHENTICATE
WHILEBasic Troia

Verilen bir condition True olduğu sürece bir dizi statement'ı çalıştırır.

Executes a series of statements as long as a given condition is True.

WHILE condition

BEGIN

          [{block}]



ENDWHILE
Detayları gösterShow details
ParametrelerParameters
condition         = One or more of the following two types of expressions:
·        A numeric or string expression that evaluates to true or false.  The comparison operators are: ==, !=, >=, <=, AND, OR
·        system_globals (SYS_USER, SYS_CLIENT, SYS_LANGU)
·        action_flags (SYS_STATUS, SELECTED, NOTSELECTED, UPDATED, INSERTED, DELETED)
block                 = One or more statements separated by colons. Can contain block statements as well.
NotlarRemarks

Condition True ise, Wend statement'ına ulaşılana kadar statement'lardaki tüm statement'lar çalıştırılır. Kontrol daha sonra While statement'ına döner ve condition tekrar kontrol edilir. Condition hâlâ True ise, işlem tekrarlanır. True değilse, Wend statement'ından sonraki statement ile çalışmaya devam edilir.

While loop'lar istenilen seviyeye kadar nest edilebilir. Her ENDWHILE, en son WHILE ile eşleşir.

If condition is True, all statements in statements are executed until the Wend statement is encountered. Control then returns to the While statement and condition is again checked. If condition is still True, the process is repeated. If it is not True, execution resumes with the statement following the Wend statement.

While loops can be nested to any level. Each ENDWHILE matches the most recent WHILE.

ÖrnekExample
/*A. WHILE loop with only two statements. */
OBJECT : 
 INTEGER I;

I = 0;

WHILE I != 10 
BEGIN
	SELECT * 
		FROM DEBI;

	I = I + 1;
ENDWHILE;

/*B. WHILE loop with nested if statements.*/
OBJECT : 
 INTEGER I;

I = 0;
SELECT * 
	FROM DEBIA 
	WHERE BUKRS = DEBI_BUKRS 
		AND DEBNR =                 DEBI_DEBNR;


WHILE SYS_STATUS == 0 
BEGIN
	READ DEBIA WITH INDEX I;

	IF SYS_STATUS != 0 THEN
		BREAK;
	ENDIF;


	IF DEBIA_DELETED THEN
		/* DELETE DEBIA */
	ENDIF;

ENDWHILE;
İlgili KomutlarRelated Commands
LOOP
WRAPCODE()Troia Development

Bu function, verilen kod String'ini düzenler ve yeni codeString'i geri döndürür...

This function tides up the given code String and returns the new codeString back...

WRAPCODE({code_string});
Detayları gösterShow details
ParametrelerParameters

code_string = The string variable that carries the code.

NotlarRemarks

Returns

String variable

Returns

String variable

ÖrnekExample
SYSCLSFUNC_CODE = WRAPCODE(SYSCLSFUNC_CODE);
WRAPXML()XML Parsing

Yeni parse edilmiş, indented ve organize edilmiş XML text data'sı döndürür.

Returns new parsed, indented and organized XML text data.

WRAPXML({raw_xml});
Detayları gösterShow details
ParametrelerParameters

raw_xml = xml text to be wrapped.

NotlarRemarks

Return Value
String: Organize edilmiş tag ve indent'lerle yeni xml string'ini döndürür.

Return Value
String:
Returns the new xml string with the organized tags and indents.

WRITEReport

WRITE, Report'larda satır tanımlamak için kullanılır...

WRITE is used for defining lines in Reports...

WRITE        data        WITH        FLAGS



WRITE        const         [WITH                         \POS pos

        \EPS eps

        \LEN length

        \COL color

        \BOR[Lwidth][Rwidth][Bwidth][Twidth]

        \ALG R|C

        \FNT fontname

        \PIC [N|S|%]picture

        \NLN]



WRITE        symbol        [WITH                         \POS pos

        \EPS eps

        \LEN length

        \COL color

        \BOR [L[width]][R[width]][B[width]][T[width]]

        \ALG R|C

        \FNT fontname

        \PIC <N|S|%>picture

        \NLN]



WRITE        field        [WITH                         \POS pos

        \EPS eps

        \LEN length



\COL color

        \BOR [L[width]][R[width]][B[width]][T[width]]

        \ALG R|C

        \FNT fontname

        \PIC <N|S|%>picture

        \NLN]



SECTION REPORTS:

WRITE SECTION {section_name} [AS ZEBRA];



WRITE PAGEBREAK;
Detayları gösterShow details
ParametrelerParameters

The command has some flags: You can use one ore more of them in WRITE.

\POS

It declares the printing position.

\EPS

it declares last cursor position

\LEN

it declares length of data that will be printed. For example if symbol value is ?ABCD? and you used \LEN 3 command print result will be ?ABC?.

\COL

it declares color of text but is not functional yet.

\BOR

it declares border property of printing. Be careful of using direction and witdh without blank

(ex: \BOR L2R3)

\ALG

it declares alignment default is Left align

\FNT

it declares font of text if you do not use this flag default report font will be used that is set by SETREPORTFONT command.

\PIC

it declares the mask of text. It has three options. One of them is % it gets sprintf format like \PIC%2.2f. The other two are our formatting standard used on dialogs. For example if you use a number formatter for a numeric value you should write \PICNF##,###.00 or a string formatter you should write \PICSX(10).

\NLN

it declares the end of line and moves cursor to new-line.

SECTION REPORTS:

section_name = the name of the section to be printed.

AS ZEBRA = by adding this to your write statement you indicate that the BOX objects on your section will be painted as ZEBRA.

NotlarRemarks

Görüldüğü gibi üç tür WRITE versiyonu mevcuttur. Biri, tek tırnaklı string constant gibi bir constant değer alır. İkincisi, interpreter'da tanımlanan symbol'ler içindir ve sonuncusu, report'ta tanımlanan görünmez static text'ler içindir.

As you see three type of WRITE versions are available. One of them gets a constant value like single quoted string constant. The second one is for symbols that are defined in interpreter and the last one for invisible static texts that defined in report.

XSLTRANSFORM()XML Parsing

Verilen XML ve XSL document'ini XHTML'e dönüştürür.

Transforms given XML and XSL document to XHTML.

XSLTRANSFORM ( { xsl }, { xml }, { isxslfile }, { isxmlfile } [, { encoding } ] );
Detayları gösterShow details
ParametrelerParameters

{xsl} : file path of XSL file or XSL file content.
{xml} : source XML file path or XML content

{isxslfile} : if first parameter is a file path send 1 else 0. (default value is 1)
{isxmlfile} : if second parameter is a file path send 1 else 0. (default value is 1)

{encoding} : this optional parameter is used while converting result byte array to string

Return type is STRING

ÖrnekExample
OBJECT: 
 STRING XSLTFILEPATH,
 STRING XMLFILEPATH,
 STRING RESULTPATH;

OBJECT: 
 STRING TEMPSTRING;

XSLTFILEPATH = '\XSLFILE.XSLT';
XMLFILEPATH = '\XMLFILE.XML';
RESULTPATH = '\RESULT.HTML';

/* 
send 1 to third and fourth parameter because first and second parameters are file path 
if contents of this files read before to pass XSLTRANSFORM third and fourth parameters must be 0
*/
TEMPSTRING = XSLTRANSFORM(XSLTFILEPATH, XMLFILEPATH, 1, 1, 'UTF-8');

OPEN FILE RESULTPATH FORNEW;
PUT CODEPAGE 'UTF-8' TEMPSTRING%s;
CLOSE FILE;
ZIPFILEFile

Dosyayı sıkıştırır ve verilen file path içinde arşivlenmiş dosya oluşturur.

Compresses the file and creates archived file within given file path.

ZIPFILE {[file_path1 | file_path2 | file_path3 | ... ]} INTO {target_path};
Detayları gösterShow details
ParametrelerParameters

file_path# : The full source file paths delimiting by pipes ( | ) of the regular files.
target_path : The full target path to compress the regular file into.

ÖrnekExample
ZIPFILE 'images\iaslogo.jpg' INTO 'tmp\iaslogo.jpg.zip';

ZIPFILE 'images\iaslogo.jpg|images\emblem.jpg' INTO 'tmp\iaslogos.jpg.zip';
İlgili KomutlarRelated Commands
UNZIPFILE
ZOOMBasic Troia

Global ZOOMRETURN parametresini verilen variable'a ayarlar. Bu komut ayrıca herhangi bir data type'ı (INTEGER, DATE, TIME, DATETIME, LONG) string'e dönüştürmek için de kullanılabilir.

Sets the global ZOOMRETURN parameter to the given variable. This command can also be used to convert any type of data (INTEGER, DATE, TIME, DATETIME, LONG) into strings.

ZOOM {variable} ;
Detayları gösterShow details
ParametrelerParameters

variable = Name of the variable for the zoom field. It can be of any type.

NotlarRemarks

ZOOM komutu, zoom edilen dialog'un after function'ına yerleştirilmelidir. Zoom edilen dialog, parent modal olmalıdır (aksi halde ZOOMRETURN variable'ı verilen variable ile ayarlanmaz).

ZOOM command should be placed in the after function of the zoomed dialog. Zoomed dialog should be parent modal (otherwise ZOOMRETURN variable will not be set with the given variable).

ÖrnekExample
/*A. In this example after the ZOOM command is executed the ZOOMRETURN variable is set with the value in the TMPTBL_COPMPANY. After that the dialog is closed.*/
ZOOM TMPTBL_COMPANY;
SHUTDOWN;
/*B. In this example ZOOM command is used to convert other types of variables to strings. After the code is executed these values can be used as strings.*/
OBJECT: 
 INTEGER INT,
 DATE DAT,
 TIME TIM,
 DATETIME DT,
 LONG LNG,
 STRING STR1,
 STRING STR2,
 STRING STR3,
 STRING STR4,
 STRING STR5,
 TABLE TMPTBL_COMPANY;

INT = 5;
DAT = 11.12.1996;
TIM = 12:55;
DT = 11.12.1996 12:55;
LNG = 12.678;

ZOOM INT;
STR1 = ZOOMRETURN;
ZOOM DAT;
STR2 = ZOOMRETURN;
ZOOM TIM;
STR3 = ZOOMRETURN;
ZOOM DT;
STR4 = ZOOMRETURN;
ZOOM LNG;
STR5 = ZOOMRETURN;
ZOOMDIAGRAMDiagram

Bir diagram'ın görüntüleme boyutunu değiştirir.

Changes display size of a diagram .

ZOOMDIAGRAM {diagram_name} <IN | OUT | FIT [VERTICAL|HORIZONTAL] | RESTORE>
Detayları gösterShow details
ParametrelerParameters
diagram_name         = diagram control name.
IN                                 = magnifies the diagram.
OUT                         = smalls the diagram.
FIT                                 = resizes diagram to fit into the diagram component size (both vertical and horizontal)
FIT VERTICAL        = resizes diagram to only vertically fit into the diagram component.
FIT HORIZONTAL        = resizes diagram to only horizontally fit into the diagram component.
RESTORE                = restores the diagram to initial size
İlgili KomutlarRelated Commands
ADDENTITY ADDLINK REMOVEENTITY SETEDITMODE ZOOMDIAGRAM
ZOOMIDSystem Variables

Bir zoom action'ının oluşumunu belirten bir Global variable.

A Global variable that indicates the occurance of a zoom action .

ZOOMID;
Detayları gösterShow details
NotlarRemarks

Return Value

Integer.

Bir dialog zoom dialog olarak açılırsa bu variable 1 değerini alır, aksi halde 0.

Return Value

Integer.

If a dialog is opened as zoom dialog this variable gets the value of 1 else 0.

ÖrnekExample
/* This check hides and disables the control named OK  , if the dialog is not opened as zoom */

IF ZOOMID == 0 THEN
	SET OK TO HIDE;
	SET OK TO DISABLE;
ENDIF;
ZOOMRETURNSystem Variables

ZOOM command'ı kullanıldığında ayarlanan bir Global variable. ZOOM command'ı ile belirtilen son variable'ın değerini taşır.

A Global variable which is set when ZOOM command is used. Carries the value of the last variable's value specified with the ZOOM command.

ZOOMRETURN
Detayları gösterShow details
NotlarRemarks

String döndürür.

Diğer data type'larını String'e dönüştürürken kullanışlı olabilir.

Returns String.

Can be useful on converting other data types to String.

ÖrnekExample
ZOOM DECIMALVAR1;

STRINGVAR2 = ZOOMRETURN;
_ACTIVECOLTable Flags

Virtual table flag'i. Active column'un numarasını gösterir. Bir table ismiyle kullanılmalıdır.

Virtual table flag. Shows the number of the active column. It should be used with a table name.

tablename_ACTIVECOL
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Bir grid'in, virtual table'ından farklı bir column sırasına sahip olması durumunda, active column'un -grid üzerindeki- numarasını gösterir. Bu yüzden, visual grid'deki active column numarası, virtual table'daki active column numarasından farklıdır. Integer döndürür.

In case of a grid to have a different order of columns than its virtual table, it shows the number of the active column -on the grid-.
So, active column number on the visual grid, differs than the active column number on the virtual table.
Returns Integer.

_ACTIVECOLNAMETable Flags

Virtual table flag'i. Active Column'un ismini gösterir. Bir table ismiyle kullanılmalıdır.

Virtual table flag. Shows the name of the active Column. It should be used with a table name.

tablename_ACTIVECOLNAME
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

String döndürür.

Returns String.

_ACTIVEROWTable Flags

Virtual table flag'i. Active row'un numarasını gösterir. Bir table ismiyle kullanılmalıdır.

Virtual table flag. Shows the number of the active row. It should be used with a table name.

tablename_ACTIVEROW
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Returns Integer.

_BKCOLORTable Flags

Virtual table row flag'i. Dışarıdan TROIA kodundan ayarlanır. Bir row'un back color'ını tanımlar.

Virtual table row flag. It is set from TROIA code externally.Defines the back color of a row.

tablename_CHANGED
Detayları gösterShow details
ParametrelerParameters

tablename = specfies the name of the virtual table.

NotlarRemarks

Return Value

Integer.

Return değeri, bir color'ın integer değerini temsil etmelidir.

Return Value

Integer.

The return value must represent the integer value of a color.

ÖrnekExample
OBJECT : 

 INTEGER GREEN;



GREEN = RGB(0,255,0);

SELECT * FROM IASBAS001 WHERE CLIENT = SYS_CLIENT AND

 COMPANY = STRINGVAR1 INTO TMPTABLE;

READ TMPTABLE WITH INDEX 1;

MOVE GREEN TO TMPTABLE_BKCOLOR;
_CHANGEDTable Flags

Virtual table row flag'i. Virtual table üzerinde insert, update veya delete statement'ları çalıştırılırsa ayarlanır.

Virtual table row flag. Set if insert, update or delete statements are executed on the virtual table.

tablename_CHANGED
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Bir table ismiyle kullanılmalıdır.
Row değiştirilmişse 1, aksi halde 0.

Returns Integer.

It should be used with a table name.
If the row has been changed 1 else 0.

_CHECKEDTable Flags

Virtual table row flag'i. Dışarıdan TROIA kodundan ayarlanır.

Virtual table row flag. It is set from TROIA code externally.

tablename_CHECKED
Detayları gösterShow details
ParametrelerParameters

tablename = specifies the name of the table

NotlarRemarks

Return Value

Integer

Bu variable, row için ekstra bir dummy flag'tir.

Return Value

Integer

This variable is an extra dummy flag for the row.

_DELETEDTable Flags

Virtual table row flag'i. Virtual table üzerinde bir delete statement'ı çalıştırılırsa ayarlanır. Bir table ismiyle kullanılmalıdır.

Virtual table row flag. Set if a delete statement is executed on the virtual table. It should be used with a table name.

tablename_DELETED
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Row güncellenmişse 1, aksi halde 0.

Returns Integer.

if the row has been updated 1 else 0

_FILTEREDTable Flags

Virtual table row flag'i. Client tarafında table üzerindeki kullanıcı tanımlı filter'lar nedeniyle gizlenen row'lar için kullanılır.

Virtual table row flag. It is used for the hidden rows due to the user-defiend filters on the table at the client side.

tablename_FILTERED
Detayları gösterShow details
ParametrelerParameters

tablename = specifies the name of the virtual table

NotlarRemarks

Return Value
Integer

Runner tarafından, gizli row'lar için internal olarak 1, görünür row'lar için 0 olarak ayarlanır.

Return Value
Integer

It is set by the runner internally for the hidden rows as 1, visible rows as 0.

_FYITable Flags

Virtual table flag'i. Virtual table'daki her row için HTML formatlı bir tooltip gösterir.

Virtual table flag. Shows an HTML-formatted tooltip for each row on the virtual table.

tablename_FYI
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the virtual table.

NotlarRemarks

String döndürür.
Kullanıcı fareyi bir table-grid row'unun üzerine getirdiğinde. Bir table ismiyle kullanılmalıdır.

Returns String.
When the user moves the mouse over a table-grid row. It should be used with a table name.

ÖrnekExample
LOOP AT IASHOTLINETMP 
BEGIN
	IASHOTLINETMP_FYI = '<html><body width=300><pre>' + WRAPTEXT(IASHOTLINETMP_PROBDESCRL,90) + '</pre></body></html>';
ENDLOOP;
İlgili KomutlarRelated Commands
_ROWTOOLTIP
_HASSELECTEDROWTable Flags

Virtual table flag'i. Table'da seçili bir row olup olmadığını belirtir. Bir table ismiyle kullanılmalıdır.

Virtual table flag. Specifies if there is a selected row on table. It should be used with a table name.

tablename_HASSELECTEDROW
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

0 veya ilk seçili row'un numarası.

Returns Integer.

0 or the number of the first selected row.

İlgili KomutlarRelated Commands
_SELECTED
_HIDETable Flags

Virtual table row flag'i. Dışarıdan TROIA kodundan ayarlanır. Row'un grid'de gösterilip gösterilmeyeceğini belirtir.

Virtual table row flag. It is set from TROIA code externally.Indicates if the row will be shown in grid or not.

tablename_HIDE
Detayları gösterShow details
ParametrelerParameters

tablename = specifies the name of the table

NotlarRemarks

Return Value

Integer

Return Value

Integer

_INSERTEDTable Flags

Virtual table row flag'i. Virtual table üzerinde bir insert statement'ı çalıştırılırsa ayarlanır. Bir table ismiyle kullanılmalıdır.

Virtual table row flag. Set if an insert statement is executed on the virtual table. It should be used with a table name.

tablename_INSERTED
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Row güncellenmişse 1, aksi halde 0.

Returns Integer.

if the row has been updated 1 else 0

_READTable Flags

Virtual table row flag'i. Row database'den okunursa ayarlanır. Bir table ismiyle kullanılmalıdır.

Virtual table row flag. Set if the row is read from the database. It should be used with a table name.

tablename_READ
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Row okunmuşsa 1, aksi halde 0.

Returns Integer.

if the row has been read 1 else 0

_ROWCOUNTTable Flags

Virtual table flag'i. Virtual table'ın row sayısını gösterir. Bir table ismiyle kullanılmalıdır.

Virtual table flag. Shows the number of the rows of the virtual table. It should be used with a table name.

tablename_ROWCOUNT
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Returns Integer.

_ROWTOOLTIPTable Flags

Virtual table flag'i. Virtual table'daki her row için HTML formatlı bir tooltip gösterir.

Virtual table flag. Shows an HTML-formatted tooltip for each row on the virtual table.

tablename_ROWTOOLTIP
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the virtual table.

NotlarRemarks

String döndürür.
Kullanıcı fareyi bir table-grid row'unun üzerine getirdiğinde. Bir table ismiyle kullanılmalıdır.

Returns String.
When the user moves the mouse over a table-grid row. It should be used with a table name.

ÖrnekExample
LOOP AT IASHOTLINETMP 
BEGIN
	IASHOTLINETMP_ROWTOOLTIP = '<html><body width=300><pre>' + WRAPTEXT(IASHOTLINETMP_PROBDESCRL,90) + '</pre></body></html>';
ENDLOOP;
İlgili KomutlarRelated Commands
_FYI
_SELECTEDTable Flags

Virtual table row flag'i. Row'lardan biri kullanıcı tarafından highlight edilirse ayarlanır.

Virtual table row flag. Set if one of the rows is highlighted by the user.

tablename_SELECTED
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Bir table ismiyle kullanılmalıdır.
Birden fazla row seçilirse her row'un selected flag'i ayarlanır.
Row seçilmişse 1, aksi halde 0.

Returns Integer.

It should be used with a table name.
If multiple rows are selected each row's selected flag is set.
If the row has been selected 1 else 0
.

İlgili KomutlarRelated Commands
_HASSELECTEDROW
_UITREELEVELTable Flags

Virtual table flag'i. Tree type row'lar kullanılırken istenen row'un tree level'ını ayarlar.

Virtual table flag. Sets the tree level of the desired row when using tree type rows.

tablename_UITREELEVEL
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Returns Integer.

İlgili KomutlarRelated Commands
_UITREETYPE
_UITREETYPETable Flags

Virtual table flag'i. Tree type row'lar kullanılırken istenen row'un tree type'ını ayarlar.

Virtual table flag. Sets the tree type of the desired row when using tree type rows.

tablename_UITREETYPE
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

CLOSED = 0

OPEN = 1

LEAF = 2

Returns Integer.

CLOSED = 0

OPEN = 1

LEAF = 2

İlgili KomutlarRelated Commands
_UITREELEVEL
_UPDATEDTable Flags

Virtual table row flag'i. Virtual table üzerinde bir update statement'ı çalıştırılırsa ayarlanır.

Virtual table row flag. Set if an update statement is executed on the virtual table.

tablename_UPDATED
Detayları gösterShow details
ParametrelerParameters

tablename = Specifies the name of the table.

NotlarRemarks

Integer döndürür.

Bir table ismiyle kullanılmalıdır.
Row güncellenmişse 1, aksi halde 0.

Returns Integer.

It should be used with a table name.
If the row has been updated 1 else 0
.