Difference between revisions of "Test268 Section 4"

From MidrangeWiki
Jump to: navigation, search
(Code complex D-specs (e.g., OVERLAY, coding fields without attributes, etc.))
(Write logic (including I/O operations) without numbered indicators)
Line 49: Line 49:
  
 
=== Write logic (including I/O operations) without numbered indicators ===
 
=== Write logic (including I/O operations) without numbered indicators ===
 +
/Free
 +
  SETLL(N) (variable1:variable2) filename;
 +
  IF %EQUAL(filename);
 +
    READE(N) (variable1:variable2) filename;
 +
    DOW NOT %EOF(filename);
 +
        // logic
 +
        READE(N) (variable1:variable2) filename;
 +
    ENDDO;
 +
  ENDIF;
  
 +
  CHAIN (variable3) filename;
 +
  IF %FOUND(filename);
 +
    // logic
 +
    UPDATE filerec;
 +
  ENDIF;
 +
/End-Free
  
 
=== Code and use /Free format Calc specifications ===
 
=== Code and use /Free format Calc specifications ===

Revision as of 01:50, 9 April 2006

<< Previous Section | Home | Next Section >>

Section 4 - Advanced RPG techniques (25%)

Given an example of a complex logical expression, determine its results

Given an example of deeply-nested logic within a sample of RPG code, determine the results of running the code

Use Data Structure arrays

Code complex D-specs (e.g., OVERLAY, coding fields without attributes, etc.)

D DataStruct1     DS                  QUALIFIED
D  Field1                       15A   INZ('12345ABCDE12345')
D   Field2                       5A   OVERLAY(Field1)
D   Field3                       5A   OVERLAY(Field1:*NEXT)
D   Field4                       5A   OVERLAY(Field1:*NEXT)
D   Field5                       7A   OVERLAY(Field3:3)

D DataStruct2     DS                  LIKEDS(DataStruct1) INZ(*LIKEDS)
D  Name           S             20
D  Long_name      S             +5    LIKE(Name)
D  Lda_fld        S                   LIKE(Name) DTAARA(*LDA)

Use modern techniques to handle numbered indicators

Determine appropriate use of system APIs

Code subprocedures

Declare and use subprocedures

Create and use multiple occurrence data structures

Use externally-described data structures

Write logic (including I/O operations) without numbered indicators

/Free
 SETLL(N) (variable1:variable2) filename;
 IF %EQUAL(filename);
    READE(N) (variable1:variable2) filename;
    DOW NOT %EOF(filename);
       // logic
       READE(N) (variable1:variable2) filename;
    ENDDO;
 ENDIF; 
 CHAIN (variable3) filename;
 IF %FOUND(filename);
    // logic
    UPDATE filerec;
 ENDIF;
/End-Free

Code and use /Free format Calc specifications

Code and use Short Form expressions (e.g., + =)

i += 1;

Translate operation codes not supported in /Free form (e.g., MOVE, CALL, etc. into /Free form)

Use qualified Data Structures

Use pointer data types

Code and use Named Constants

Prototype program Calls

Determine appropriate use of passing parameters by value versus by reference

Prototype System APIs and C functions

Understand the ability for RPG procedures to call and be called by Java Methods

Enumerate advantages of Prototypes compared with PARM and PLIST

Determine appropriate use for prototype keywords, such as CONST, VALUE, and OPTIONS (*NOPASS, *OMIT, *VARSIZE)

<< Previous Section | Home | Next Section >>