﻿---
title: clsImageIdx
summary: API reference for clsImageIdx.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Business.Imaging
reference_type: package
---

# clsImageIdx

`clsImageIdx` is the primary full-CRUD BOF business object for the `IMAGE` table. It manages image indexing records including their EAIP, agency, and group sub-records. It performs category/type validation before saving.

## Purpose
- Inserts, retrieves, and updates IMAGE rows with 24 (insert) or 22 (update) bound parameters.
- Conditionally creates/deletes associated IMAGE_EAIP, IMAGE_AGENCY, and IMAGE_GROUP rows based on the image's file code and EAIP context.
- Validates that the document type, category, and file code combination is valid against IMAGE_DOCUMENT_TYPE_CODE before saving.

## Context
- Namespace: `SAIF.Business.Imaging`
- Assembly/package: `SAIF.BOF.Business.Imaging`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `m_EAIP` | `Public m_EAIP As New clsEAIP` | Public reference to the associated `clsEAIP` instance held by this object. |

## Behavioral notes
- Sequence generation: `BeforeCreate` executes [SQL-002](../../sql/SQL-002-saif-business-imaging.md).
- Insert: `BeforeInsert` executes [SQL-010](../../sql/SQL-010-saif-business-imaging.md); conditionally also executes [SQL-007](../../sql/SQL-007-saif-business-imaging.md) (EAIP), [SQL-008](../../sql/SQL-008-saif-business-imaging.md) (agency), [SQL-009](../../sql/SQL-009-saif-business-imaging.md) (group). All sub-inserts require exactly one row affected.
- Retrieve: `BeforeRetrieve` executes [SQL-028](../../sql/SQL-028-saif-business-imaging.md) with GCODE localization joins.
- Update: `BeforeUpdate` executes [SQL-036](../../sql/SQL-036-saif-business-imaging.md); may conditionally execute [SQL-042](../../sql/SQL-042-saif-business-imaging.md) to remove old EAIP records.
- Delete: `DeleteSQL` property exists ([SQL-043](../../sql/SQL-043-saif-business-imaging.md)) but no live `BeforeDelete`/`AfterDelete` pair was found — direct deletion of IMAGE rows through this class is non-functional in current code**.
- Category/type validation: executed via `clsImageMsgConst.SQL_CAT_TYPE_MISMATCH` ([SQL-029](../../sql/SQL-029-saif-business-imaging.md)) before saving*.

## Constraints and usage notes
- Direct image deletion through `clsImageIdx` is non-functional; the delete lifecycle methods are not implemented**.
- See [Image indexing](../../operations/image-indexing.md) for the full indexing flow.

## Inherited public members

Members in this section are inherited from `clsBusinessBase` and are available on this type through the standard BOF base-class contract.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `MyGuid` | `Public ReadOnly Property MyGuid() As String` | Returns the unique GUID for this object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `IsNew` | `Public ReadOnly Property IsNew() As Boolean` | Returns True if this is a new object, False if it is a pre-existing object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `IsDeleted` | `Public ReadOnly Property IsDeleted() As Boolean` | Returns True if this object is marked for deletion. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `IsDirty` | `Public Overridable ReadOnly Property IsDirty() As Boolean` | Returns True if this object's data has been changed. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `SetValueOnChange` | `Public Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Takes two values and compares them using the Equals function. If the values are different, it sets the inFieldValue = inSetValue, calls MarkDirty(), and returns True. Otherwise returns false. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `IsSavable` | `Public Overridable ReadOnly Property IsSavable() As Boolean` | Returns True if this object is both dirty and valid. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `PreviousLinkItem` | `Public ReadOnly Property PreviousLinkItem() As ILinkItem Implements ILinkItem.PreviousLinkItem` | Gets the Previous Item linked to this one. If this is the first item or not a member of a linked list, the value is nothing. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `NextLinkItem` | `Public ReadOnly Property NextLinkItem() As ILinkItem Implements ILinkItem.NextLinkItem` | Gets the Next Item linked to this one. If this item is the last or not a member of a linked list, the value is nothing. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `SetPreviousLink` | `Public Sub SetPreviousLink(ByRef inLinkItem As ILinkItem) Implements ILinkItem.SetPreviousLink` | Sets the Previous Item in Linked List | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `SetNextLink` | `Public Sub SetNextLink(ByRef inLinkItem As ILinkItem) Implements ILinkItem.SetNextLink` | Sets the Next Item in a Linked List. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `InsertLinkAfter` | `Public Sub InsertLinkAfter(ByRef inLinkItem As ILinkItem) Implements ILinkItem.InsertLinkAfter` | Inserts the item being passed in into the linked list after the current item. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `InsertLinkBefore` | `Public Sub InsertLinkBefore(ByRef inLinkItem As ILinkItem) Implements ILinkItem.InsertLinkBefore` | Inserts the item being passed in into the linked list prior to the current item. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `RemoveLinks` | `Public Sub RemoveLinks() Implements ILinkItem.RemoveLinks` | Removes this item from a linked list. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `BeginEdit` | `Public Sub BeginEdit()` | Starts a nested edit on the object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `CancelEdit` | `Public Sub CancelEdit()` | Cancels the current edit process, restoring the object's state to its previous values. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ApplyEdit` | `Public Sub ApplyEdit()` | Commits the current edit process. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `Delete` | `Public Sub Delete()` | Marks the object for deletion. The object will be deleted as part of the next save operation. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `Clone` | `Public Function Clone() As Object Implements ICloneable.Clone` | Returns a new object containing the exact data of the original object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ValidateOnDelete` | `Public Property ValidateOnDelete() As Boolean` | Gets or Sets whether Business Rules are Validated on a Deleted Object. By Default this property is set to False. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `Rules` | `Public ReadOnly Property Rules() As clsRulesManager` | Provides Access to the Objects Rules Manager | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `IsValid` | `Public Overridable ReadOnly Property IsValid() As Boolean` | The IsValid routine Checks all Rules and then returns true if the error count is zero. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ErrorCount` | `Public ReadOnly Property ErrorCount() As Integer` | Returns the number of errors generated by the Object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ErrorMessages` | `Public ReadOnly Property ErrorMessages() As String()` | Returns a string array of Error Messages generated by the Object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `WarningCount` | `Public ReadOnly Property WarningCount() As Integer` | Returns the Number of Warnings generated by the object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `WarningMessages` | `Public ReadOnly Property WarningMessages() As String()` | Returns a string array of Warning Messages generated by the Object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `InformationalCount` | `Public ReadOnly Property InformationalCount() As Integer` | Returns the number of errors generated by the Object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `InformationalMessages` | `Public ReadOnly Property InformationalMessages() As String()` | Returns a string array of Warning Messages generated by the Object. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `Save` | `Public Overridable Function Save() As Boolean` | Saves the object to the database. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `SaveChild` | `Public Overridable Function SaveChild() As Boolean` | Saves the child object to the database. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `XMLElementName` | `Public Property XMLElementName() As String` | Returns the Value used as the TagName when generating XML. | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `GetDataset` | `Public Sub GetDataset(ByRef inDS As DataSet)` | Retrieves dataset for the requested criteria or key values.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `GetDataset` | `Public Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Retrieves dataset for the requested criteria or key values.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `GetReportXML` | `Public Function GetReportXML(ByVal inElementName As String) As String` | Retrieves report xml for the requested criteria or key values.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `GetReportXML` | `Public Function GetReportXML() As String` | Retrieves report xml for the requested criteria or key values.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ToXml` | `Public Function ToXml() As String` | Returns to xml.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |
| `ToXml` | `Public Function ToXml(ByVal inTagName As String) As String` | Returns to xml.* | `Legacy\BusinessObjectFramework` — `clsBusinessBase` |

> **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
- `Business\SAIF.Business.Imaging\clsImageIdx.vb`
- `Legacy\BusinessObjectFramework\clsBusinessBase.vb`
