Home > Class Reference > ENSLIB namespace > %iKnow.Source.Domain.Lister


class %iKnow.Source.Domain.Lister extends %iKnow.Source.Lister

Lister implementation for loading data from an existing Domain.

Lister Parameters to be supplied to AddListToBatch and ProcessList calls:

  1. sourceDomainId As %String - the domain ID where to load from (should be in the same namespace)
  2. filterString As %String (optional) - if set, only the sources in the source domain satisfying the filter represented by this filter string (see ToString in %iKnow.Filters.Filter will be loaded. If a comma-delimited list of %Integer values is passed in rather than a filter representation, this is considered as a list of source IDs that need to be copied. Negative source IDs are interpreted as referring to a Virtual Source.

External ID structure: the external IDs of the source domain are maintained

Default Processor: %iKnow.Source.Domain.Processor

See also %iKnow.Utils.CopyUtils for methods to copy other domain elements.

Please note any sources copied with this Lister will be created using the version of the target domain, regardless of the source domain's version number.


Parameters Properties Methods Queries Indices ForeignKeys Triggers


%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
AddListToBatch BuildExtId BuildExtIdFromName DefaultProcessor
ExpandList FormatParams GetAlias GetExtidPrefix
GetGroupId GetGroupName Init MaterializeVirtualSource
ProcessList ProcessVirtualList RegisterFixedMetadata SetConfig
SetConverter SetProcessor SplitExtId TestParams


classmethod DefaultProcessor() as %String

This method returns the default %iKnow.Source.Processor class to use (without any parameters) if none was registered explicitly through calls to SetProcessor. By default, this selects (if it exists) a class called Processor in the same package as this Lister implementation, but subclasses might wish to override this and hardcode a specific default Processor to use.

method ExpandList(listparams As %List) as %Status

This method should be overridden by subclasses, implementing how they scan through the particular type of source location or structures they specialize in. The arguments for this method are the same Lister Parameters as those used when issuing the corresponding AddListToBatch call and are specified and documented by the Lister implementation.

When expanding the list, the Lister should build a "Composite reference": a %List containing the lister ID, the group ID and the local reference for each (candidate) source it found and pass that to either a StoreRef, StoreTemp or StoreTempStream call. Optionally, it can store metadata for each of these refs using the SetMetadataValues method.

NOTE: This method is used by the iKnow loading frameworkand should never be called by custom code.

method MaterializeVirtualSource(vSrcId As %Integer) as %Status
Shorthand method to materialize a Virtual Source, moving it into the real domain.
method TestParams(listerParams...) as %Status

This method is called at the start of ProcessList and AddListToBatch to validate the supplied Lister Parameters. Subclasses should override this method to execute the validation logic specific to their Lister Parameters.