Figure 5. EGL program source (MyEGLPgm)

program MyEGLProg type BasicProgram {}
	
function main()
		
   try
		
      SysLib.setRemoteUser("DDARNELL", "ROBUST");
		
      parm rootStruct;
      call "MyRPGPgm" (parm);

      SysLib.writeStdout(parm.rootName);

      i_size int = size(parm.branches);
      for(i int from 1 to i_size by 1)
			
         SysLib.writeStdout("    |---" + parm.branches[i].branchName +
            " " + parm.branches[i].branchNbr);

         j_size int = size(parm.branches[i].items);
         for(j int from 1 to j_size by 1)
            SysLib.writeStdout("        |---" +
               parm.branches[i].items[j].itemName +
               + " " + parm.branches[i].items[j].itemNbr);
         end
      
      end
		
      onException(exception AnyException)
         SysLib.writeStdout("Error occurred on program call:");
         SysLib.writeStdout(exception.message);
      end
		
   end
	
end

record rootStruct type BasicRecord
      05 rootName char(20);
      05 branches [50]; 
         10 branchNbr num(2, 0); 
         10 branchName char(20);
         10 items [25]; 
            15 itemNbr num(2, 0); 
            15 itemName char(20);
end