Having set up an ELO connection, you can define a source
. The name implies that this will be a source for Portrait and your future sections. Technically speaking, sources are ELO index-field queries. The results of these queries will be stored as lists in Portrait.
Add the following to the source
section inside the application.yml file:
sources: source: - id: 'elo-outgoing-invoices' conn: 'ix-Archive1' sourceType: 'elo' runInterval: 3600 excludeKeysFromSuggestions: [] sourceSpecific: mask: Sales searchParams: - name: SALDOCTYPE value: Invoice
The name of the source will be elo-outgoing-invoices
. The name will be later on used inside the section. In this example, the connection ix-Archive1
is used and therefore must be defined firsthand. The sourceType will be in case of ELO always be elo
. Thus, sourceSpecific config is required. Each ELO source needs a mask (= ELO keywording mask) and searchParams (= ELO indexfields). The name of an indexfield is referenced by its internal group name.
By default, ELO limits a search result to 10.000 entries. This limit can be adjusted - see the ELO Indexserver Documentation.
Settings
Name | |
---|---|
id | Name of the source |
conn | Used connection. |
sourceType | In case of ELO: |
keyName | Name of the indexed object. If not set, it will default to |
key | Unique Id of the indexed object. If not set, it will default to The key must be unique for this document in Portrait |
runInterval | reindex interval of the source in seconds |
runDelay | delay before the first reindex run in seconds. |
runAt | instead of using an interval, you can define a specific time when the reindex will be triggered. Example: runtAt: 07:00
|
maxResultSize | Per default, the ELO results are limited to 10.000 elements. By defining this property, you can overwrite the default to a higher value. |
excludeKeysFromSuggestions | This list excludes the Keys from being added to the suggesters. Suggesters are used inside the search as “Completion Suggester” and “Did you Mean”. For ELO sources, a good practice is to filter all the internal fields. Example: excludeKeysFromSuggestions: [guid, key, path, xDateIso, iDateIso, fileExtension, owner, parentId, isDocument, fileSize, desc, icon] |
icon | See Entry Icons |
sourceSpecific.mask | Keywording mask |
sourceSpecific.searchParams | A list of ELO index fields to narrow the search. A list entry consists of the internal group name of an ELO index field and the value. Example: searchParams: - name: SALDOCTYPE value: Auftragsbestätigung - name: COMPANY value: 'CRONUS AG' |
sourceSpecific.documentDate OPTIONAL | These settings are under The range will be applied on the ELO-Sord property “External Date“ (aka. Document Date). Example: documentDate: from: 365 to: 730 This example limits the reindex to documents that are older than two years or newer than a year. It is also possible to use exact dates. The dates have to be written in the ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Example: documentDate: from: 2021-01-01 to: 2021-12-31 This example limits the reindex to all documents from 2021. |
sourceSpecific.archivingDate OPTIONAL | These settings are under The range will be applied on the ELO-Sord property “Internal Date“ (aka. Archiving Date). Example: archivingDate: from: 0 to: 90 This example limits the reindex to documents that are archived at max for 90 days. The property It is also possible to use exact dates. The dates have to be written in the ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Example: archivingDate: from: 2021-01-01 to: 2021-12-31 This example limits the reindex to all documents that have been archived in 2021. |
sourceSpecific.maps | Index ELO maps of a given object. Due to a lot of different configuration setups, you must define which fields are imported. Example: maps: - domain: objekte name: INVOICE_TAX type: table - domain: formdata name: MY_VERY_LONG_TEXT type: string Domain You can also define your own domain (e.g. Type Name Given the above examples, the map fields can be accessed via the following names from the UI:
If Portrait detects that a map-value is stored as blob, the blob value is extracted and stored as text. Otherwise, the normal value is utilized (which is limited to 255 chars). |
Index Documents/Files
It is possible to index files referenced by an entry. Currently only supported when providing public access to them.
Configuration:
sourceSpecific: mask: Application Entry files: publicCache: true nesting: 1 mask: Application Attachment
Name | |
---|---|
| Must be true |
| Mask selector for Entries you want to cache. This should be the document mask. |
| Hierarchy level for the search. Defaults to |
Storage Location
The Files are cached during reindex and stored on the local file system alongside the configuration.
/portrait /config /application-prod.yml /public /<sourceID> /(<ELOGUID>).<DocExtensionFromELO>
The files can then be retrieved via the URL
https://<portraitBaseURL>/api/files/<sourceID>/(<GUID>).<extension>
One example use case is to include images into preformatted HTML or Markdown content.
Please keep in mind, that there is no login required to access the cached files