ABAP SYNTAX FOR DATA PART TWO

Addition 2

... LIKE f1

Effect

Creates the field f with the same field attributes as the field F1 which is already known. Any data objects are valid (fields, parameters, structures, ...) as long as types have been assigned.

f1 can be any Dictionary reference.

Example

DATA TABLE_INDEX LIKE SY-TABIX.

The field TABLE_INDEX now has the same attributes as SY-TABIX (the index for internal tables).

Note

This addition is often useful, since the ABAP/4 runtime system performs type changes on fields automatically. Any unnecessary and/or unwanted conversions are thus avoided.

Addition 3

... TYPE typ OCCURS n

Effect

Defines an internal table without header line. Such a table consists of any number of table lines with the type typ .
To fill and edit this table, you can use statements likeAPPEND , READ TABLE , LOOP and SORT .
The OCCURS parameter n defines how many tables lines are created initially. If necessary, you can increase the size later. Otherwise, the OCCURS parameter is of no significance, apart from the exception that applies with APPEND SORTED BY .

Example

 TYPES: BEGIN OF LINE_TYPE,
         NAME(20) TYPE C,
         AGE      TYPE I,
       END OF LINE_TYPE.
DATA:  PERSONS    TYPE LINE_TYPE OCCURS 20,
       PERSONS_WA TYPE LINE_TYPE.
PERSONS_WA-NAME = 'Michael'.
PERSONS_WA-AGE  = 25.
APPEND PERSONS_WA TO PERSONS.
PERSONS_WA-NAME = 'Gabriela'
PERSONS_WA-AGE  = 22.
APPEND PERSONS_WA TO PERSONS.
 
The internal table  PERSONS  now consists of two table entries.
 NOTE:

Access to table entries not in main memory takes much longer. On the other hand, there is not enough space in main memory to hold such large tables because the roll area is resticted (see above).

SAP ABAP SYNTAX FOR DATA PART ONE

Variants

1. DATA f.
2. DATA f(len).
3. DATA: BEGIN OF rec,
...
END OF rec.
4. DATA: BEGIN OF itab OCCURS n,
...

END OF itab.
5. DATA: BEGIN OF COMMON PART c,
...
END OF COMMON PART.

Effect

Defines global and local variables. Variables allow you to address declared data objects . They always have a particular data type. Data types and data objects are important components of the ABAP/4 type concept .

Variant 1

DATA f.

Additions


1. ... TYPE typ
2. ... LIKE f1
3. ... TYPE typ OCCURS n
4. ... LIKE f1 OCCURS n
5. ... TYPE LINE OF itabtyp
6. ... LIKE LINE OF itab
7. ... VALUE lit
8. ... DECIMALS n
9. ... WITH HEADER LINE

Effect

Creates the internal field f in its standard length. If you do not specify the type (using the addition TYPE ), a field of type C is assumed.

The field f can be up to 30 characters long. You can use any characters you like except the special characters '(' , ')' , '+' , '-' , ',' and ':' . Numeric characters are allowed but the field name may not consist of numbers alone.

SPACE is a reserved word and therefore cannot be used. Also, the field name cannot be the same as one of the additional parameters of the introductory key word (e.g. PERFORM SUB USING CHANGING. ).

Recommendations for field names:
Always use a letter as the first character.
Use the underscore to join together words which are part of the same name (e.g. NEW_PRODUCT ). The hyphen should not be used here, since it is reserved for the names of field string components .

Addition 1

... TYPE typ.

Effect

Creates a field f of the type typ . You can use either one of the predefined types listed below or one of your own types which you define withTYPES .
The standard length ( SL ) of the field depends on the type.
Type
Description
SL
Initial value




C
Text (character)
1
Blank




N
Numeric text
1
'00...0'




D
Date (YYYYMMDD)
8
'00000000'




T
Time (HHMMSS)
6
'000000'




X
Hexadecimal
1
X'00'




I
Whole number (integer)
4
0




P
Packed number
8
0




F
Floating point no.
8
'0.0'




Example

 
DATA NUMBER TYPE I.

Creates the field NUMBER as type I . You can also use it in the program, particularly if you want to assign number values and perform calculations.

Notes

  • The data type I is the whole number type on which the hardware is based. Its value range is from -2**31 to 2**31-1 (from -2.147.483.648 to 2.147.483.647).
    You use type P for fields containing monetary amounts, but type I is more suitable for number fields, index fields, specifying positions and so forth.
You can use type F for positive and negative numbers other than zero in the range from 1E-307 to 1E+308 with a degree of accuracy up to 15 decimal places. (The ABAP/4 processor always uses the floating point operations of the hardware in question rather than standardizing them.) Floating point literals must be enclosed in quotation marks. The standard output length is 22.

Entries in type F fields may be formatted in any of the following ways:

As a decimal number with or without sign and with or without a decimal point.

In the form e, where you specify the mantissa as above and the exponent with or without a sign. (Examples of floating point literals: '1' , '-12.34567' , '-765E-04' , '1234E5' , '+12E+34' , '+12.3E-4' .

Since floating point arithmetic is fast on our hardware platforms, you should use it when you need a greater value range and you are able to tolerate rounding errors. Rounding errors may occur when converting the external (decimal) format to the corresponding internal format (base 2 or 16) or vice-versa (ABAP/4 number types ).


RELATED POST

SAP ABAP SYNTAX FOR CREATE

SAP ABAP SYNTAX FOR CREATE

Basic form

CREATE OBJECT obj class.
Addition

... LANGUAGE langu

Effect

Generates an object of the class class .

To address an OLE automation server (e.g. EXCEL) from ABAP/4 , the server must be registered with SAP. The transaction SOLE allows you to assign an automation server to a class.
The CREATE statement generates the initial object and this can be processed further with the relevant key words.
The return code value of SY-SUBRC indicates the result of the generation:

The return code value is set as follows:

SY-SUBRC = 0 Object successfully generated.
SY-SUBRC = 1 SAPGUI communication error.
SY-SUBRC = 2 SAPGUI function call error. The OLE function modules are implemented only under Windows.
SY-SUBRC = 3 The OLE API call resulted in an error; this is possibly a storage space problem.
SY_SUBRC = 4 The object is not registered with SAP.

Addition

... LANGUAGE langu

Effect

Determines the language chosen for method and attribute names of the object class.
If no specification is made, English is the default.

CREATE OBJECT

Example

Generate an EXCEL object.


INCLUDE OLE2INCL.
DATA EXCEL TYPE OLE2_OBJECT.
CREATE OBJECT EXCEL 'Excel.Application'.
 36.6

RELATED POST

SAP ABAP SYNTAX FOR CONVERT
SAP authorization and client administration in mysap.com

SAP ABAP SYNTAX FOR CONVERT

Variants

1. CONVERT DATE f1 INTO INVERTED-DATE f2.
2. CONVERT INVERTED-DATE f1 INTO DATE f2.

Effect

Allows conversion between different formats which do not have their own type .

The field f1 is converted from the source format to the target format and placed in f2 .

At present, the following formats are supported:
DATE ==> INVERTED-DATE INVERTED-DATE ==> DATE
Both formats form the nine's complement of internal date representation, e.g. 19950511 ==> 80049488 or 80049488 ==> 19950511. In inverse date format, the most recent date has the lowest numerical value. This is useful when sorting date specifications.

Note

The technique of modifying the sequence of dates by inverting the internal date format is only used in very rare cases. For example, you can sort internal tables in ascending or descending date order much more elegantly with the additions ... ASCENDING bzw. ... DESCENDING of the SORT statement.

Example

 
DATA DATE_INV LIKE SY-DATUM.
CONVERT DATE SY-DATUM INTO INVERTED-DATE DATE_INV.

If, for example, the internal representation of 11.05.95 in SY-DATUM is 19950511, the value of DATE_INV after execution of the CONVERT statement is 80049488.

Note

Run time errors
CONVERT_ILLEGAL_CONVERSION : Conversion not possible due to incorrect field length.

36.4

RELATED POST

SAP ABAP SYNTAX FOR TABLE CONTROL

SAP ABAP SYNTAX FOR table control

Basic form

CONTROLS ctrl TYPE TABLEVIEW USING SCREEN scr.

Effect

Creates a table control ctrl of the type TABLEVIEW . The reference screen for the initialization is the screen scr .

Area of use

The table control (referred to here as TC ) facilitates the display and entry of one-line, tabular data in dialog transactions.
The functional scope has been defined so that you can implement many typical set operations usually handled by an elementary STEP-LOOP with the standard methods of a TC .

Functional scope
  • Resizeable table grid for displaying and editing data.
  • Column width and column position modifiable by user and by program.
  • Storing and loading of user-specific column layout.
  • Selection column for line selection with color selection display.
  • Variable column headers as pushbuttons for column selection.
  • Simple selection, multiple selection, Select/deselect all.
  • Scrolling functions (horizontal and vertical) via scroll bar.
  • Fixing of any number of key columns.
  • Setting attributes for each cell at runtime.
Programming

The data exchange between the application and the SAPgui is achieved with a STEP-LOOP , i.e. an ABAP/4 module is called to transfer data for each page.

Example

Processing without an internal table
 
PROCESS BEFORE OUTPUT.
LOOP WITH CONTROL ctrl.
  MODULE ctrl_pbo.
ENDLOOP.
 
PROCESS AFTER INPUT.
LOOP WITH CONTROL ctrl.
  MODULE ctrl_pai.
ENDLOOP.

In this case, the module ctrl_pbo OUTPUT is called once for each output line before the screen is displayed, in order to fill the output fields.
After the user has entered data on the screen, the module ctrl_pai INPUT is executed to check the input and copy the new contents.

Example

Processing with an internal table


 
PROCESS BEFORE OUTPUT.
LOOP AT itab WITH CONTROL ctrl CURSOR ctrl-CURRENT_LINE.
ENDLOOP.
 
PROCESS AFTER INPUT.
LOOP AT itab WITH CONTROL ctrl.
  MODULE ctrl_pai.
ENDLOOP.

Here, the system fills the output fields before displaying the screen by reading the internal table itab .
When the user has entered data, the module ctrl_pai INPUT must be executed to check the input and to refresh the contents of the internal table.
Vertical scrolling with the scroll bar is followed by the event PAI for the displayed page. Then, cntl-TOP_LINE is increased and PBO is processed for the next page.
Program-driven scrolling and the most of the functionality described above is achieved by manipulating the control attributes.
Attributes

The CONTROLS statement creates a complex data object of the type CXTAB_CONTROL with the name of the control.

You maintain the initial values in the Screen Painter and assign the screen with the initial values for a control using the addition USING SCREEN .

Initialization is achieved automatically in the "1st access to the control" (setting or reading values).

You can use the customizing button (in the top right corner) to save the current setting (column widths and column positions) and use it as the initial value for the next call.

All the initial values can be overwritten by the program using the MOVE ... TO TC attributes statement.

Example

ctrl-fixed_cols = 2. "2 columns fixed
The contents of the SCREEN structure (table Cols ) acts as a default value for each line of this column, but within LOOP ... ENDLOOP (flow logic), it can be overwritten by LOOP AT SCREEN / MODIFY SCREEN .

With the attributes listed below, you should be aware of the following:
LINES This must always be set as the only attribute if you are not using LOOP AT itab .
TOP_LINE Also set by the SAPgui through the vertical scroll bar slider.
CURRENT_LINE Read only, set by the system ( TOP_LINE + SY-STEPL - 1 )
LEFT_COL Also set by the SAPgui through the horizontal scroll bar slider.
COLS-INDEX Also set by the SAPgui after moving columns.
COLS-SELECTED Also set by the SAPgui after column selection.
When displaying the control, the system uses the current contents when the event DCO occurs (i.e. after all PBO modules have run). The modified values (brought about by the user making changes on the screen) are set immediately after DCI (i.e. before the first PAI module runs).

35

RELATED POST

SAP ABAP SYNTAX FOR CONTINUE SAP web application and business server pages
SAP project introduction in the best ERP
sap internet transaction architecture
SAP internet transaction application components

SAP authorization and client administration in mysap.com

SAP ABAP SYNTAX FOR CONSTANTS AND CONTINUE

Variants



1. CONSTANTS c. ... VALUE [ val | IS INITIAL ].
2. CONSTANTS c(len) ... VALUE [ val | IS INITIAL ].
3. CONSTANTS: BEGIN OF crec,
...
END OF crec.

Effect

The CONSTANTS statement defines global and local constants. Constants allow you to read statically declared data objects . They always have a particular data type. Data types and data objects are essential components of the ABAP/4 type concept . In contrast to variables defined with the DATA statement, you cannot change the value of a constant once it has been defined. Apart from the additions ... TYPE typ OCCURS n , ... LIKE f1OCCURS n and WITH HEADER LINE , all the additions used with the DATA statement are allowed. However, in contrast to the DATA statement, the addition ... VALUE val or VALUE IS INITIAL obligatory with variants 1 and 2. See additions with DATA .

Example

 
CONSTANTS  CHAR1 VALUE 'X'.
 
CONSTANTS  INT   TYPE I VALUE 99.
 
CONSTANTS: BEGIN OF CONST_REC,
             C(2) TYPE I VALUE 'XX',
             N(2) TYPE N VALUE '12',
             X    TYPE X VALUE 'FF',
             I    TYPE I VALUE 99,
             P    TYPE P VALUE 99,
             F    TYPE F VALUE '9.99E9',
             D    TYPE D VALUE '19950101',
             T    TYPE T VALUE '235959',
           END OF CONST_REC.

CONTINUE

Basic form

CONTINUE.

Effect

Within loop structures like
  • DO....END DO
  • WHILE ...END WHILE
  • LOOP ....ENDLOOP
  • SELECT....ENDSELECT
CONTINUE terminates the current loop pass, returns the processing to the beginning of the loop and starts the next loop pass, if there is one.

Example

DO loop: Omit an area (10 ... 20)
 
DO 100 TIMES.
  IF SY-INDEX >= 10 AND SY-INDEX <= 20.
    CONTINUE.
  ENDIF.
  ...
ENDDO.

RELATED POST

SAP ABAP SYNTAX FOR CONDENSE

Basic form

CONDENSE c.

Addition


... NO-GAPS

Effect

Shifts the contents of the field c to the left, so that each word is separated by exactly one blank.

Example

 
DATA: BEGIN OF NAME,
        TITLE(8),       VALUE 'Dr.',
        FIRST_NAME(10), VALUE 'Michael',
        SURNAME(10),    VALUE 'Hofmann',
      END   OF NAME.
CONDENSE NAME.
WRITE NAME.

produces the output:

Dr. Michael Hofmann

Addition

... NO-GAPS

Effect

Suppresses all blanks from the field c

Example

 
DATA: BEGIN OF NAME,
        TITLE(8),       VALUE 'Dr.',
        FIRST_NAME(10), VALUE 'Michael',
        SURNAME(10),   VALUE 'Hofmann',
      END   OF NAME.
CONDENSE NAME NO-GAPS.

The contents of NAME is now " Dr.MichaelHofmann ".

Since the field string NAME is interpreted and handled like a type C field, the CONDENSE statement treats it as a whole and ignores any sub-fields. The contents of the component field would therefore now be as follows:

NAME-TITLE = 'Dr.Micha'
NAME-FIRST_NAME = 'elHofmann '
NAME-SURNAME = ' '

Note

Do not use CONDENSE to manipulate field strings that include fields not of type C. This could result in these component fields containing characters of a different (i.e. incorrect) type.

Performance
The runtime required to condense three fields is about 20 msn (standardized micooseconds). The variant ... NO-GAPS needs about 12 msn.




RELATED POST

SAP ABAP SYNTAX FOR CONCATINATE

MySAP environment security solutions
SAP security authentication and authorization
SAP security infrastructure for data productionSAP safety infrastructure
SAP Network Level Security
Mysap web application server

SAP ABAP SYNTA X FOR CONCATENATE

Basic form

CONCATENATE f1 ... fn INTO g.

Addition

... SEPARATED BY h

Effect

Places the fields f1 to fn after g .with the fields fi (1 <= i <= n), trailing blanks are ignored, i.e. these fields are considered only to have the length STRLEN( fi ).

The return code value is set as follows:


SY-SUBRC = 0 The result fits in g .
SY_SUBRC = 4 The result was too long for g and was only copied to g in that length.

Example

 
DATA: ONE(10)   VALUE 'John',
      TWO(3)    VALUE ' F.',
      THREE(10) VALUE ' Kennedy',
      NAME(20).
CONCATENATE ONE TWO THREE INTO NAME.

Then, NAME contains the value " John F. Kennedy ".

Addition

... SEPARATED BY h

Effect

Inserts the separator h between the fields fi .
Here, h is used in its defined length.

Examples

 
DATA: ONE(10)   VALUE 'John',
      TWO(3)    VALUE 'F.',
      THREE(10) VALUE 'Kennedy',
      NAME(20).
CONCATENATE ONE TWO THREE INTO NAME SEPARATED BY SPACE.

Then, NAME has the value " John F. Kennedy ".
 
DATA SEPARATOR(4) VALUE 'USA'.
CONCATENATE SPACE ONE TWO THREE INTO NAME
            SEPARATED BY SEPARATOR.

Then, NAME has the value " USA JohnUSA F.USA Ke ".
The return value of SY-SUBRC is set to 4.

Performance

You are recommended to use the key word CONCATENATE rather than your own constructions because it is safer, more efficient and clearer. The runtime required to append two 30-byte fields amounts to approx. 14 msn (standardized microseconds).

33.4

RELATED POST

SAP ABAP SYNTAX FOR COMPUTE PART THREE

SAP ABAP SYNTAX FOR COMPUTE PART THREE

Exponentiation

The exponential expression "x**y" means x*x*...*x y times, provided that y is a natural number. For any value of y, x**y is explained by exp(y*log(x)).
Operators of the same ranke are evaluated from left to right. Only the exponential operator, as is usual in mathematics, is evaluated from right to left . The expression " 4 ** 3 ** 2 " thus corresponds to " 4 ** ( 3 ** 2 ) " and not " ( 4 ** 3 ) ** 2 ", so the result is 262144 and not 4096.
The following resrtictions apply for the expression " X ** Y ": If X is equal to 0, Y must be positive. If X is negative, Y must be a whole number.

Note

DIV and MOD

The whole number division operators DIV and MOD are defined as follows:
  • ndiv = n1 DIV n2
  • nmod = n1 MOD n2

so that:
n1 = ndiv * n2 + nmod ndiv is a whole number 0 <= nmod < |n2| A runtime error occurs if n2 is equal to 0 and n1 is not equal to 0.

Example

 
DATA: D1 TYPE I, D2 TYPE I, D3 TYPE I, D4 TYPE I,
      M1 TYPE P DECIMALS 1, M2 TYPE P DECIMALS 1,
      M3 TYPE P DECIMALS 1, M4 TYPE P DECIMALS 1,
      PF1 TYPE F VALUE '+7.3',
      PF2 TYPE F VALUE '+2.4',
      NF1 TYPE F VALUE '-7.3',
      NF2 TYPE F VALUE '-2.4',
D1 = PF1 DIV PF2.  M1 = PF1 MOD PF2.
D2 = NF1 DIV PF2.  M2 = NF1 MOD PF2.
D3 = PF1 DIV NF2.  M3 = PF1 MOD NF2.
D4 = NF1 DIV NF2.  M4 = NF1 MOD NF2.

The variables now have the following values:

D1 = 3, M1 = 0.1,
D2 = - 4, M2 = 2.3,
D3 = - 3, M3 = 0.1,
D4 = 4, M4 = 2.3.
   

Notes

Floating point functions
Although the functions SIN , COS and TAN are defined for any numbers, the results are imprecise if the argument is greater than about 1E8 , i.e. 10**8.
The logarithm for a base other than e or 10 is calculated as follows:

Logarithm of b for base a = LOG( b ) / LOG( a )

Note

Run time errors

Depending on the operands, the above operators and functions can cause run time errors (e.g. when evaluating the logarithm with a negative argument).

RELATED POST

SAP ABAP SYNTAX FOR COMPUTE PART TWO
SAP security infrastructure for data production
SAP safety infrastructure
SAP Network Level Security
Mysap web application server

SAP ABAP SYNTAX FOR COMPUTE PART TWO

When used in calculations, the amount of CPU time needed depends on the data type. In very simple terms, type I is the cheapest, type F needs longer and type P is the most expensive.

Normally, packed numbers arithmetic is used to evaluate arithmetic expressions. If, however, the expression contains a floating point function, or there is at least one type F operand, or the result field is type F , floating point arithmetic is used instead for the entire expression. On the other hand,
if only type I fields or date and time fields occur (see below), the calculation involves integer operations.
You can also perform calculations on numeric fields other than type I , F or P . Before executing calculations, the necessary type conversions are performed . You can, for instance, subtract one date field (type D ) from another, in order to calculate the number of days difference. However, for reasons of efficiency, only operands of the same number type should be used in one arithmetic expression (apart from the operands of STRLEN ). This means that no conversion is necessary and special optimization procedures can be performed.
Division by 0 results in termination unless the dividend is also 0 ( 0 / 0 ). In this case, the result is 0.
As a string processing command, the STRLEN operator treats operands (regardless of type) as character strings, without triggering internal conversions. On the other hand, the operands of floating point functions are converted to type F if they have another type.

Example

Date and time arithmetic
 
DATA: DAYS TYPE I,
      DATE_FROM TYPE D VALUE '19911224',
      DATE_TO   TYPE D VALUE '19920101',
DAYS = DATE_TO - DATE_FROM.

DAYS now contains the value 8.
 
DATA: SECONDS TYPE I,
      TIME_FROM TYPE T VALUE '200000',
      TIME_TO   TYPE T VALUE '020000'.
SECONDS = ( TIME_TO - TIME_FROM ) MOD 86400.

SECONDS now contains the value 21600 (i.e. 6 hours). The operation " MOD 86400 " ensures that the result is always a positive number, even if the period extends beyond midnight.

Note

Packed numbers arithmetic:

All P fields are treated as whole numbers. Calculations involving decimal places require additional programming to include multiplication or division by 10, 100, ... . The DECIMALS specification with the DATA declaration is effective only for output with WRITE .
If, however, fixed point arithmetic is active, the DECIMALS specification is also taken into account. In this case, intermediate results are calculated with maximum accuracy (31 decimal places). This applies particularly to division.
For this reason, you should always set the program attribute "Fixed point arithmetic".

Example

 
DATA P TYPE P.
P = 1 / 3 * 3.

Without "fixed point arithmetic", P has the value 0, since " 1 / 3 " is rounded down to 0.
With fixed point arithmetic, P has the value 1, since the intermediate result of " 1 / 3 " is 0.333333333333333333333333333333. 





SAP ABAP SYNTAX FOR COMPUTE

Basic form

COMPUTE n = arithexp.

Effect

Evaluates the arithmetic expression arithexp and places the result in the field n .

Allows use of the four basic calculation types + , - , * and / , the whole number division operators DIV (quotient) and MOD (remainder), the exponentiation operator ** (exponentiation " X ** Y means X to the power of Y ) as well as the functions listed below.

When evaluating mixed expressions, functions have priority. Then comes exponentiation, followed by the "point operations" * , / , DIV and MOD , and finally + and - . Any combination of parentheses is also allowed.

The fields involved are usually of type I , F or P , but there are exceptions to this rule (see below).


You can omit the key word COMPUTE .
Built-in functions
  • Functions for all number types
ABS Amount (absolute value) |x| of x SIGN Sign (preceding sign) of x;
 
                            1        x > 0
 
               SIGN( x ) =  0   if   x = 0
 
                           -1        x <>
CEIL Smallest whole number value not less than x FLOOR Greatest whole number value not greater than x TRUNC Whole number part of x FRAC Decimal part of x
  • Floating point functions
ACOS Arc cosine(x) in the range [-pi/2, pi/2], x from [-1, 1] ASIN Arc cosine(x) in the range [0, pi], x aus [-1, 1] ATAN Arc tangent(x) in the range [-pi/2, pi/2] (pi = 3.1415926535897932) COS Cosine of an angle specified in the arc SIN Sine of an angle specified in the arc TAN Tangent of an angle specified in the arc COSH Hyperbola cosine SINH Hyperbola sine TANH Hyperbola tangent EXP Exponential function for base e = 2.7182818284590452 LOG Natural logarithm (i.e. base e) of a positive number LOG10 Logarithm of x for base 10, x > 0 SQRT Square root of a non-negative number
String functions

STRLEN Length of a string up to the last non-blank character (i.e. the occupied length )
Function expressions consist of three parts:
Function identifier directly followed by an opening parenthesis Argument Closing parenthesis
All parts of an expression, particularly any parts of a function expression, must be separated from each other by at least one blank.

Example

The following statements, especially the arithmetic expressions, are syntactically correct:
 
DATA: I1 TYPE I, I2 TYPE I, I3 TYPE I,
      F1 TYPE F, F2 TYPE F,
      WORD1(10), WORD2(20).
...
F1 = ( I1 + EXP( F2 ) ) * I2 / SIN( 3 - I3 ).
COMPUTE F1 = SQRT( SQRT( ( I1 + I2 ) * I3 ) + F2 ).
I1 = STRLEN( WORD1 ) + STRLEN( WORD2 ).