Processing Sequence Invokes Functions or Components of a LANSA Application

LANSA Composer

Processing Sequence Invokes Functions or Components of a LANSA Application

LANSA Composer may be extended in a number of ways that involve a Processing Sequence invoking customer or 3rd-party defined functions or components.  These include:

  • The CALL_FUNCTION activity

    LANSA Composer supplies the ready-to-use CALL_FUNCTION activity for calling existing LANSA functions.  The LANSA functions to be called may exist in the same or a different LANSA system and/or partition as LANSA Composer.
  • Activity processors for custom activities

    In fact, the processors for custom activities that you define must be developed using Visual LANSA, even if they simply exist to call existing 3GL programs.  (Your LANSA Composer supplier can usually do this for you if LANSA development tools and/or LANSA development skills are not available to you.)
  • User-defined event notification handlers

    As an alternative to the built-in email and SMS event notification handlers, it is possible to define your own event notification handler as a LANSA function.

 

When a Processing Sequence invokes customer or 3rd-party defined LANSA functions or components in any of these ways there are some particular and additional considerations.  When designing such a business process integration solution you should consider the following:

  • Except for functions called via the CALL_FUNCTION activity, the LANSA application code unit (function or component) to be invoked must reside in the same LANSA system and partition as LANSA Composer.
  • You must not invoke the LANSA application code unit using any method that will cause one of the LANSA entry points (LANSA command or program, X_RUN) to be executed, as this will lead to recursion issues.

 

These considerations apply whether the invocation is direct or indirect.  In other words, you cannot circumvent these constraints by invoking a non-compliant LANSA application code unit from another LANSA application code unit that is compliant.  Nor can you do so by means of an intermediate non-LANSA program that you invoke from LANSA Composer or from your compliant LANSA application code unit.