Summary

LANSA Web Functions

Summary

Important Observations

  • Only input capable fields, hidden fields or browse lists are passed from function to function. The iiiLOGIN field was passed from iiiPROC04/iiiFN10 to iiiPROC03/iiiFN07 as an input capable field.
  • The iiiLOGIN field was not passed from iiiFN07 back to iiiFN07 (reentrant function) because it was not an input capable or hidden field. By creating iiiPROC03_HIDDEN, the field could be exchanged to any functions in iiiPROC03.
  • Notice that the iiiFN07 function does not include the iiiLOGIN field in the REQUEST or DISPLAY statements, but the field can still be used by the function and in the HTML STDHEADER.
  • The iiiLOGIN field must be used somewhere in iiiFN07 (for example, the IF statement or in a GROUP_BY) for the value of iiiLOGIN to be stored in the function. Once it is stored in the function, it can be exchanged with the next function using the iiiPROC03_HIDDEN fields.
  • The Login function iiiFN10 is part of iiiPROC04. If you were to link iiiFN07 back to iiiFN10, the iiiLOGIN would not be passed because iiiPROC03_HIDDEN is process-specific. iiiPROC04 still uses DEFAULT_HIDDEN. Also, iiiFN10 has iiiLOGIN defined as an input field so it cannot use an exchanged value in _HIDDEN. The iiiLOGIN field would have to be passed as a function parameter, browse list value or an input capable field on a display.
  • Using the RDML PAGE tag allows you to include the standard DEFAULT_HIDDEN page in your iiiPROC03 _HIDDEN page. You could have copied the DEFAULT_HIDDEN page to iiiPROC03_HIDDEN and added the iiiLOGIN field, however any future changes made to DEFAULT_HIDDEN would also have to be made to iiiPROC03_HIDDEN. Using the RDML PAGE tag simplifies the maintenance of your code.
  • Changes to the DEFAULT_<pages> do not require the functions to be recompiled. These pages are automatically embedded when the function executes.

Tips & Techniques

  • Instead of adding iiiLOGIN to the iiiPROC03_HIDDEN, it could have been added as a *HIDDEN field in each REQUEST or DISPLAY.
  • Creating process-specific pages allows you to customize your functions in a specific process. You should not modify the DEFAULT pages unless the change applies to all functions in the partition.
  • All process-specific pages will automatically be exported with the process definition. These pages do not need to be registered as Web Page components.
  • The DEFAULT_HIDDEN page can be used to pass many values. The hidden field must be used in the RDML function in order for the value to be stored and passed to the next function. The field does not have to appear in a REQUEST or DISPLAY statement.
  • The <RDML PAGE=""> tag can be used to modularize your code and simplify maintenance.

What I Should Know

  • How to use DEFAULT_HIDDEN to store values to be passed from function to function within a process.
  • How to use the <RDML PAGE=""> tag to create modular code.