---
title: clsHelpText
summary: API reference for clsHelpText.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.AJAX.Infragistics111
reference_type: package
---

# clsHelpText

`clsHelpText` is the BOF business object that backs [HoverHelp](HoverHelp.md)'s data-driven content: it retrieves one help-text record — an application code joined to its reference key description and text — from the `APPLICATION_HELP_MASTER`/`APPLICATION_HELP_DETAIL` tables through the SAIF data portal, and is strictly read-only (all write operations throw). ([BR-AJAX-017](../../business-rules.md#br-ajax-017-help-text-is-identified-by-an-application-code-and-reference-key-with-length-ceilings), [BR-AJAX-018](../../business-rules.md#br-ajax-018-help-content-is-assembled-by-joining-master-and-detail-on-the-reference-key))

## Purpose
- Retrieves and holds a single help-text record identified by an application code and reference key value, joined from the master and detail help tables. ([BR-AJAX-017](../../business-rules.md#br-ajax-017-help-text-is-identified-by-an-application-code-and-reference-key-with-length-ceilings), [BR-AJAX-018](../../business-rules.md#br-ajax-018-help-content-is-assembled-by-joining-master-and-detail-on-the-reference-key))
- Yields empty-string properties rather than an error when the lookup matches nothing, so a missing help entry degrades silently for the caller. ([BR-AJAX-019](../../business-rules.md#br-ajax-019-a-help-lookup-that-matches-nothing-yields-empty-text-not-an-error))
- Enforces that this business object is read-only by throwing `ApplicationException(BOC.Messages.InvalidSQLProperty)` on every `Criteria` write-shape SQL property (`CreateSQL`, `InsertSQL`, `UpdateSQL`, `DeleteSQL`).

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2.AJAX`
- Assembly/package: `SAIF.Presentation.Web.Controls.AJAX.Infragistics111` (packaged in `SAIF.BOF.Presentation.Web.Infragistics111`)
- Base class: `clsBusinessBase` — a framework base class from `SAIF.Framework` (package `SAIF.BOF.Framework`).*
- Nested `Criteria` class implements `IBusinessCriteria` (`SAIF.Framework`) and supplies `RetrieveSQL` (SQL ID `SQL-HELP-RETRIEVE`).

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `ApplicationCode` | `ReadOnly Property ApplicationCode As String` | The application code this help entry belongs to (max 5 characters at the data-request level) ([BR-AJAX-017](../../business-rules.md#br-ajax-017-help-text-is-identified-by-an-application-code-and-reference-key-with-length-ceilings)) |
| `ReferenceKeyDescription` | `ReadOnly Property ReferenceKeyDescription As String` | Description of the help topic, sourced from `APPLICATION_HELP_MASTER.REFERENCE_KEY_DESCR` |
| `ReferenceKeyValue` | `ReadOnly Property ReferenceKeyValue As String` | The key identifying which help topic this record is for (max 40 characters) ([BR-AJAX-017](../../business-rules.md#br-ajax-017-help-text-is-identified-by-an-application-code-and-reference-key-with-length-ceilings)) |
| `HelpText` | `ReadOnly Property HelpText As String` | The actual help text/markup, sourced from `APPLICATION_HELP_DETAIL.HELP_TEXT` |
| `GetHelpText` | `Shared Function GetHelpText(dpi As IDataPortalInfo, applicationCode As String, referenceKeyValue As String) As clsHelpText` | Factory that constructs the `Criteria` and calls `RetrieveObject` to load one record ([BR-AJAX-017](../../business-rules.md#br-ajax-017-help-text-is-identified-by-an-application-code-and-reference-key-with-length-ceilings), [BR-AJAX-018](../../business-rules.md#br-ajax-018-help-content-is-assembled-by-joining-master-and-detail-on-the-reference-key)) |

## Behavioral notes
- `AfterRetrieve` reads at most one row from the result and calls `MarkOld`, so the returned object always represents a single logical record even though the underlying query could theoretically match more than one row.*
- A lookup matching nothing yields an object with empty-string properties rather than `Nothing` or an exception, so callers that pass the result to `HoverHelp.Fill` will see an empty (effectively invisible) popup rather than a crash. ([BR-AJAX-019](../../business-rules.md#br-ajax-019-a-help-lookup-that-matches-nothing-yields-empty-text-not-an-error), [BR-AJAX-016](../../business-rules.md#br-ajax-016-hover-controls-render-nothing-when-there-is-no-content))

## Constraints and usage notes
- All SQL access is fully parameterized (`:ApplicationCode`, `:ReferenceKeyValue`); no string concatenation of caller-supplied values into SQL occurs in this class.
- This object is read-only end to end: `Criteria.CreateSQL`, `InsertSQL`, `UpdateSQL`, and `DeleteSQL` all throw `ApplicationException(BOC.Messages.InvalidSQLProperty)` if invoked.

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Business rules](../../business-rules.md)
- [Operations and processes](../../operations-processes.md)
- [Database tables](../../database-tables.md)
- [SQL catalog](../../sql/index.md)
- [API reference](../index.md)

> **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.Infragistics111/clsHelpText.vb`
