Indexe für Queries
Queries über Objektlisten werden mit Indexe beschleunigt. Der Aufbau von Indexen erfolgt mittels des Moduls Indexmanager. (Zu beachten ist, dass neben einer Suche nach Objekten mit Queries auch spezielle Suchbegriffs-Lexika im Einsatz sein können - meist für multiple Suchbegriffe nach "Name" oder "Beschreibung" für Firmen, Personen oder Teile)
Darüber hinaus wird mittels des Aufbaus eines Indexes festgelegt, ob Objekte mit gleichen Angaben (z.B. der Identifikationsnummer "uniqueID" , Parameter "Duplikate nicht erlaubt") angelegt werden dürfen. Was bei Stammdaten für Kunden- und Lieferantennummern selbstverständlich erscheint, ist z.B. für den Teilestamm kundenindividuell zu entscheiden. Es ist durchaus logisch, dass Unterteile eines Variantenteils - trotz unterschiedlicher Ausprägung der Sachmerkmalsleiste - die gleiche Teilenummer wie das Variantenteil haben sollen.
Bei Stammdaten ist auch zu beachten, ob überhaupt sinnvollerweise eine Identifikation über ein bestimmtes Feld nötig oder möglich ist, z.B. kann bei den Partnerrollen "Hersteller" oder "Interessent" eine Nummerierung durchaus entfallen.
Generell gilt aber, dass für Stammdaten, d.h. alle von CX_CONDITION, CX_BUSINESS_OBJECT abgeleiteten Klassen Indexe angelegt werden sollten über
- die Identifikationsnummer (uniqueID) mit Parameter "Duplikate nicht erlaubt" (NO_DUPLICATES)
Für alle von CX_TRANSACTION abgeleiteten Klassen (Belege) sollten Indexe generell angelegt werden über
- die Identifikationsnummer (uniqueID) mit Parameter "Duplikate nicht erlaubt" (NO_DUPLICATES)
- das Anlagedatum (date)
teilweise auch über
- das Buchungsdatum (processed.date): CX_DIRECT_SHIPMENT, CX_FINANCIAL_BOOKING, CX_INVENTORY, CX_PRODUCTION_ORDER, CX_PURCHASE_CREDIT_NOTE, CX_PURCHASE_INVOICE, CX_QUALITY_ASSURANCE, CX_RECEIVING, CX_STOCK_WITHDRAWAL
- die Kennzeichnung der Nachkalkulation (realEnd.counter):
CX_DELIVERY_NOTE, CX_FINANCIAL_BOOKING, CX_JOB_RECORD, CX_PRODUCTION_DATA_CAPTURE, CX_PURCHASE_CREDIT_NOTE, CX_PURCHASE_INVOICE, CX_PURCHASE_ORDER, CX_RECEIVING, CX_STATE_MONITOR("ENDED", "PROVICED", "STOPPED")::transactions[:realEnd.counter:], CX_STOCK_INPUT, CX_STOCK_WITHDRAWAL
Auch sollten generell Indexe über die Sub-Monitore von Geschäftsprozeß Stati erstellt werden, der Aufbau dieser Indexe ("uniqueID, "classID") kann direkt aus dem Modul für Geschäftsprozesse über den Menüeintrag "Indexe" des Listenfensters heraus gestartet werden. Für jedes Zustandsobjekt kann ebenfalls aus dem Menüeintrag "Indexe" ein Index über "TopTransaction().uniqueID" aufgebaut werden.
Ebenso sollten aus dem Modul "Fertig erstellte und aufgelöste Stücklisten" mittels des Menüeintrags "Bearbeiten/Index" die Indexe für die Suche nach Auftragsnummern angelegt werden ("Retrieve(UniqueID))".
Die folgende Tabelle gibt einen Hinweis darauf, welche sonstigen Indexe - in Abhängigkeit besonderer Selektions- und Filtermöglichkeiten in den Anwendungsmodulen - ebenfalls aufgebaut werden sollten:
Bereich | Klassennamen | Datenfelder für Indexe | Duplikate erlaubt | Bemerkung |
---|---|---|---|---|
Bankverbindungen von Firmen/Personen | CX_BANK_ACCOUNT | bankCode | eher nein, meist aber Dubletten vorhanden | |
Bankleitzahlen Register | CX_BANK_CODE | uniqueID | ja | |
Offene Posten | CX_COMMISSION_OPEN_ITEM_TXN CX_CREDIT_OPEN_ITEM_TXN CX_DEBIT_OPEN_ITEM_TXN CX_EXPENSES_OPEN_ITEM_TXN |
@openItemAccount invoiced.date invoiced.number |
ja | |
Projekte | CX_COST_OBJECTIVE CX_SALES_COST_OBJECTIVE CX_PURCHASE_COST_OBJECTIVE |
end.spanDate opening.date start.spanDate |
ja | |
Zähler | CX_COUNTER | uniqueID | nein | |
Offene Posten Kreditoren | CX_CREDIT_OPEN_ITEM_TXN | TopTransaction().uniqueID | ja | |
Dispositionskonten | CX_DISPO_ACCOUNT | logisticsEnum supplyEnum |
ja | |
Dokumentbausteine | CX_DOCUMENT_COMPONENT | uniqueID | nein | |
Kapazitätsauslastung | CX_MACHINE CX_WORK_GROUP CX_WORK_STATION (für alle Sub-Monitore der CX_DISPO_ACCOUNT Objekte |
|
nein | Der Index wird automatisch bei Neuanlage eines Objekts angelegt. Nachträglich können die Indexe über das Makro "ReorgSetReservedNumeric" aus dem Modul der Kapazitätsauslastung heraus aufgebaut werden |
Angebote/Aufträge | CX_OFFER CX_SALES_ORDER |
requested.number | ja | |
Dispositionsbelege/Bereitstellung | lowest.number highest.number first.number |
ja | ||
Telefonnummern | CX_PHONE | FormattedIDForSearch() GetPhone2() |
ja | |
Rückmeldungen BDE | CX_PRODUCTION_DATA_CAPTURE | datetime | ja | |
Eingangsrechnungen/-gutschriften | CX_PURCHASE_CREDIT_NOTE CX_PURCHASE_INVOICE |
associated.number | nein | |
Benutzer | CX_USER | uniqueID userNumber |
nein |