Defines a rule that scans a sales data series for sets of matching records and generates destination records representing each match. Typical uses are recognising a bundle of products sold together, or splitting one large sale between the roles that contributed to it. Record matchers run before points allocation sources, so the records they generate are then eligible for normal points allocation. Matchers in the same series run in the administrator controlled sort order, which matters because matchers detecting returns or reversals are conventionally placed first.

Group: Database Entities

Implements: Serializable, Auditable


Properties

PropertyReturnsDescription
auditOrgOrganisationThe organisation audit entries for this matcher are recorded against, which is the organisation owning its source series.
createdByProfileThe profile of the administrator who created this matcher.
createdDateDateWhen this matcher was created.
dataSeriesSalesDataSeriesThe series whose records this matcher scans for matches. Required, and it also decides which organisation the matcher belongs to.
dateRangeMonthsIntegerHow many months back the matcher scans for candidate records. Null means no explicit value has been set, in which case the default of three months applies; read getEffectiveDateRangeMonths instead of this.
deletedByProfileThe profile of the administrator who soft deleted this matcher, or null if it has not been deleted.
deletedDateDateWhen this matcher was soft deleted. Null means it is still active; the finders skip any matcher with a value here, so a deleted matcher never runs but its history is kept.
destinationSeriesSalesDataSeriesThe series that matched or generated records are created in. It may be the same series as the source, for example a role split which is more of the same kind of record, or a different series entirely, for example a bundle or up-sell. Prefer getEffectiveDestinationSeries when deciding where to write records, because this one is null when the source series is used.
effectiveDateRangeMonthsintThe scan window actually used, which is the configured number of months when one is set and otherwise the default of three months.
effectiveDestinationSeriesSalesDataSeriesThe series records generated by this matcher are actually written to, which is the configured destination series when one is set and otherwise the source series.
idlongPrimary key of this record matcher, assigned when it is first saved.
matcherConfigStringThe settings for the chosen matcher type, held as a URL parameter encoded string. Its keys depend entirely on the matcher type, so read it through that type rather than parsing it by hand.
modifiedByProfileThe profile of the administrator who last changed this matcher.
modifiedDateDateWhen this matcher was last changed.
nameStringPath-safe identifier for this matcher, unique within the organisation among matchers that have not been deleted. Use it to look a matcher up; use the title for anything shown to a person.
notesStringFree-text notes for administrators explaining what this matcher is for. Not shown to participants, and null if none were entered.
recordMatcherTypeIdStringIdentifies which RecordMatcherType implementation runs this matcher, and so what kind of matching it does. It is chosen when the matcher is created and is not meant to change afterwards.
sortOrderIntegerPosition of this matcher in its series' processing sequence, lowest first. The order matters because a matcher can depend on records an earlier one generated, which is why reversal matchers are usually first. New matchers are given the next free position.
titleStringFree-text display label shown to administrators in the matcher list. It is not unique and is not safe to use as a lookup key.

Methods

getId() · getName() · setName(String name) · getTitle() · setTitle(String title) · getNotes() · setNotes(String notes) · getDataSeries() · setDataSeries(SalesDataSeries dataSeries) · getDestinationSeries() · setDestinationSeries(SalesDataSeries destinationSeries) · getEffectiveDestinationSeries() · getRecordMatcherTypeId() · setRecordMatcherTypeId(String recordMatcherTypeId) · getMatcherConfig() · setMatcherConfig(String matcherConfig) · getDateRangeMonths() · setDateRangeMonths(Integer dateRangeMonths) · getEffectiveDateRangeMonths() · getSortOrder() · setSortOrder(Integer sortOrder) · getCreatedDate() · setCreatedDate(Date createdDate) · getCreatedBy() · setCreatedBy(Profile createdBy) · getModifiedDate() · setModifiedDate(Date modifiedDate) · getModifiedBy() · setModifiedBy(Profile modifiedBy) · getDeletedDate() · setDeletedDate(Date deletedDate) · getDeletedBy() · setDeletedBy(Profile deletedBy) · getAuditOrg()

getId()

Returns: long

Primary key of this record matcher, assigned when it is first saved.

getName()

Returns: String

Path-safe identifier for this matcher, unique within the organisation among matchers that have not been deleted. Use it to look a matcher up; use the title for anything shown to a person.

setName(String name)

Returns: void

Sets the path-safe unique name of this matcher.

ParameterDescription
namethe matcher's unique name

getTitle()

Returns: String

Free-text display label shown to administrators in the matcher list. It is not unique and is not safe to use as a lookup key.

setTitle(String title)

Returns: void

Sets the display title shown to administrators.

ParameterDescription
titlethe matcher's display title

getNotes()

Returns: String

Free-text notes for administrators explaining what this matcher is for. Not shown to participants, and null if none were entered.

setNotes(String notes)

Returns: void

Sets the administrator notes for this matcher.

ParameterDescription
notesthe notes to record, or null

getDataSeries()

Returns: SalesDataSeries

The series whose records this matcher scans for matches. Required, and it also decides which organisation the matcher belongs to.

setDataSeries(SalesDataSeries dataSeries)

Returns: void

Sets the series whose records this matcher scans.

ParameterDescription
dataSeriesthe source sales data series

getDestinationSeries()

Returns: SalesDataSeries

The series that matched or generated records are created in. It may be the same series as the source, for example a role split which is more of the same kind of record, or a different series entirely, for example a bundle or up-sell. Prefer getEffectiveDestinationSeries when deciding where to write records, because this one is null when the source series is used.

setDestinationSeries(SalesDataSeries destinationSeries)

Returns: void

Sets the series that matched or generated records are created in.

ParameterDescription
destinationSeriesthe destination series, or null to write back to the source series

getEffectiveDestinationSeries()

Returns: SalesDataSeries

The series records generated by this matcher are actually written to, which is the configured destination series when one is set and otherwise the source series.

getRecordMatcherTypeId()

Returns: String

Identifies which RecordMatcherType implementation runs this matcher, and so what kind of matching it does. It is chosen when the matcher is created and is not meant to change afterwards.

setRecordMatcherTypeId(String recordMatcherTypeId)

Returns: void

Sets which record matcher type implementation runs this matcher.

ParameterDescription
recordMatcherTypeIdthe record matcher type identifier

getMatcherConfig()

Returns: String

The settings for the chosen matcher type, held as a URL parameter encoded string. Its keys depend entirely on the matcher type, so read it through that type rather than parsing it by hand.

setMatcherConfig(String matcherConfig)

Returns: void

Sets the URL parameter encoded settings for the chosen matcher type.

ParameterDescription
matcherConfigthe encoded matcher configuration

getDateRangeMonths()

Returns: Integer

How many months back the matcher scans for candidate records. Null means no explicit value has been set, in which case the default of three months applies; read getEffectiveDateRangeMonths instead of this.

setDateRangeMonths(Integer dateRangeMonths)

Returns: void

Sets how many months back the matcher scans for candidate records.

ParameterDescription
dateRangeMonthsthe scan window in months, or null to use the default

getEffectiveDateRangeMonths()

Returns: int

The scan window actually used, which is the configured number of months when one is set and otherwise the default of three months.

getSortOrder()

Returns: Integer

Position of this matcher in its series' processing sequence, lowest first. The order matters because a matcher can depend on records an earlier one generated, which is why reversal matchers are usually first. New matchers are given the next free position.

setSortOrder(Integer sortOrder)

Returns: void

Sets this matcher's position in its series' processing sequence.

ParameterDescription
sortOrderthe processing position, lowest running first

getCreatedDate()

Returns: Date

When this matcher was created.

setCreatedDate(Date createdDate)

Returns: void

Sets when this matcher was created.

ParameterDescription
createdDatethe creation timestamp

getCreatedBy()

Returns: Profile

The profile of the administrator who created this matcher.

setCreatedBy(Profile createdBy)

Returns: void

Sets the profile of the administrator who created this matcher.

ParameterDescription
createdBythe creating profile

getModifiedDate()

Returns: Date

When this matcher was last changed.

setModifiedDate(Date modifiedDate)

Returns: void

Sets when this matcher was last changed.

ParameterDescription
modifiedDatethe last modified timestamp

getModifiedBy()

Returns: Profile

The profile of the administrator who last changed this matcher.

setModifiedBy(Profile modifiedBy)

Returns: void

Sets the profile of the administrator who last changed this matcher.

ParameterDescription
modifiedBythe last modifying profile

getDeletedDate()

Returns: Date

When this matcher was soft deleted. Null means it is still active; the finders skip any matcher with a value here, so a deleted matcher never runs but its history is kept.

setDeletedDate(Date deletedDate)

Returns: void

Sets the soft deletion timestamp for this matcher.

ParameterDescription
deletedDatethe deletion timestamp, or null to make it active again

getDeletedBy()

Returns: Profile

The profile of the administrator who soft deleted this matcher, or null if it has not been deleted.

setDeletedBy(Profile deletedBy)

Returns: void

Sets the profile of the administrator who soft deleted this matcher.

ParameterDescription
deletedBythe deleting profile, or null

getAuditOrg()

Returns: Organisation

The organisation audit entries for this matcher are recorded against, which is the organisation owning its source series.

To get full access to the Kademi Hub existing customers can login here, or new customers can register here.