Skip to content

Retrieve all help text entries for an application

clsHelpTextCollection.GetHelpTexts is the public shared factory method that retrieves every help-text entry for a given application code as a clsHelpTextCollection of read-only clsHelpText children — for example, to prefetch/cache multiple help entries for HoverHelp controls on a page.

Field Value
Operation ID OP-AJAX-005
Trigger Consuming code calls clsHelpTextCollection.GetHelpTexts(inDataportal, inApplicationCode)
Inputs IDataPortalInfo, application code
Outputs Populated clsHelpTextCollection
Primary components clsHelpTextCollection.GetHelpTexts, clsHelpTextCollection.Criteria, clsHelpTextCollection.BeforeRetrieve, clsHelpTextCollection.AfterRetrieve
Entry point SAIF.Presentation.Web.Controls.AJAX.Infragistics103\clsHelpTextCollection.vb

Steps

  1. Builds Criteria(inDataportal, inApplicationCode) and calls inDataportal.DataAccessLayer.RetrieveObject(criteria), which invokes the BOF data-portal pipeline described in the next step.
  2. BeforeRetrieve sets SQLStatement = MyCriteria.RetrieveSQL with a single bind parameter ApplicationCode (max length 5) — executing SQL-HELP-002 against APPLICATION_HELP_MASTER and APPLICATION_HELP_DETAIL (returns multiple rows).
  3. AfterRetrieve casts the result to IDataReader and iterates rows; for each row it constructs a new clsHelpText(MyCriteria.DataPortalInfo), calls HelpText.Load(dataPortalInfo, Reader) (which calls the child's Fill, builds its own Criteria, and marks it old), and adds it to the collection via MyBase.Add.
  4. The collection is configured AllowEdit/AllowRemove/AllowSort/AllowFind = True, Managed = True in the constructor — standard BOF collection semantics.
  5. No create/update/delete SQL is supported for this collection (same InvalidSQLProperty stub-throw pattern as clsHelpText).

No business rules are enforced by this operation — collection-level AfterRetrieve performs no validation; Contains() overloads provide in-memory lookup only.

Process flow

The following diagram visualizes the retrieval sequence.

flowchart TD
    Start([Consuming code calls GetHelpTexts]) --> Criteria[Construct Criteria with ApplicationCode]
    Criteria --> Retrieve[DataAccessLayer.RetrieveObject]
    Retrieve --> Before[BeforeRetrieve binds ApplicationCode, sets RetrieveSQL]
    Before --> Execute[Execute SQL-HELP-002 against Oracle*]
    Execute --> Loop[AfterRetrieve iterates IDataReader rows]
    Loop --> Child[Construct clsHelpText child, Load and MarkOld]
    Child --> Add[Add child to collection]
    Add --> Loop
    Loop --> Return([Return populated clsHelpTextCollection])

Failure and edge-case behavior

  • No matching rows for the given application code: the loop over IDataReader produces zero children; the returned collection is empty rather than raising an error.
  • Any attempt to Save()/Delete() the collection or its children raises ApplicationException(BOC.Messages.InvalidSQLProperty), since no create/update/delete SQL exists.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\clsHelpTextCollection.vb
  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\clsHelpText.vb