Lade...
 

Indexe für Queries

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
CX_LOG_CUBE::subMonitors[:reserved.numeric:]
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