Geschäftspartner zusammenführen

Das Fenster dient dazu, zwei Geschäftspartner mit untergeordneten Daten zusammenzuführen. Es entsteht ein neuer Geschäftspartner aus den Daten der beiden bisherigen Geschäftspartnern. Die beiden gewählten Geschäftspartner werden nach erfolgreicher Zusammenfassung gelöscht; Bezüge auf die ehemaligen Geschäftspartner werden in allen betroffenen Tabellen durch den neuen Geschäftspartner ersetzt. - Unterscheiden Sie hiervon zwei andere Möglichkeiten: Überblick über das Zusammenfassen von Geschäftspartnern.

Sie wählen zunächst die beiden zusammenzuführenden Geschäftspartner aus. Dazu können Sie nach Eingabe einer Nummer oder eines Namensteiles die Suchfunktion mit F3 benutzen. Die Suche ist wie an anderen Stellen konfigurierbar. Komplexere Änderungen an der Auswahl setzen SQL-Kenntnisse voraus.
Nach Auswahl beider Geschäftspartner sehen Sie in zwei Baumstrukturen die vorhandenen Daten. In der ersten Hierarchiestufe (an dichtesten am linken Rand) werden die Mandanten angezeigt, in denen die Geschäftspartner vorkommen. Untergeordnet sind die Baustellen dargestellt, die den jeweiligen Geschäftspartner enthalten, und noch weiter untergeordnet finden sich die Sonderkonditionen und Sonderpreise. Daten mit gleichen Nummern - außer der Geschäftspartner-Nummer - befinden sich immer genau nebeneinander. Wenn es die jeweiligen Daten nur für einen der beiden Geschäftspartner gibt, dann bleibt der Baumeintrag auf der jeweils andere Seite leer.
Ein Häkchen kennzeichnet jeweils, ob Bewegungsdaten vorhanden sind, zum Beispiel in Form von Lieferscheinen, Vergütungen, Aufträgen. Der Zustand der Häkchen ist anwenderseitig nicht änderbar.
Durch eine gelbe Einfärbung wird markiert, ob sich widersprechende Daten vorhanden sind. Ein solcher Fall liegt dann vor, wenn es zum Beispiel mandantenabhängige Geschäftspartnerdaten im selben Mandanten für beide gewählten Geschäftspartner gibt, diese aber nicht völlig identisch sind. Das gilt analog für Baustellendaten und für Sonderkonditionen und Sonderpreise.

Wenn Sie mit dem Mauszeiger auf einen Baumeintrag klicken, dann sehen Sie im rechten Fensterteil alle zugehörigen Einzeldaten, wiederum geteilt in Daten für den links stehenden Geschäftspartner und für den rechts stehenden Geschäftspartner. Sie können auch auf den Streifen zwischen den beiden Bäumen klicken oder dort mit den Pfeiltasten der Tastatur positionieren. Die Daten der Geschäftspartner selbst werden angezeigt, wenn Sie auf eines der beiden Namensfelder klicken oder den Fokus in eines der beiden Nummernfelder setzen. Auch die Einzeldaten werden - falls es beide gibt und falls die unterschiedlich sind - mit gelber Farbe markiert. Einige Einzeldatenfelder werden vom Programm unterdrückt: Schlüsselfelder wie die Mandanten-Nr und die Geschäftspartner-Nr, das Anlage- und Änderungsdatum und einige andere.

Sie können jetzt entscheiden, ob alle oder welche Daten in den neu zu erzeugenden Geschäftspartner übernommen werden sollen. Dazu klicken Sie auf die unten in der Legende angebrachte Markierung für nicht übernehmen. Der Mauszeiger ändert sich; Sie können mit der Maus in beiden Baumstrukturen Einträge markieren. Beim Klick auf einen schon markierten Eintrag wird die Markierung zurückgesetzt. Beim nochmaligen Klick auf die Markierungsfläche in der Legende wird der Markierungsmodus zurückgesetzt; Sie erhalten wieder den normalen Mauszeiger. Falls es einen genau nebstehenden Eintrag im anderen Baum gibt, dann wird dieser automatisch mitmarkiert. Wenn Sie einen Baumknoten markieren, der untergeordnete Einträge enthält, dann werden diese automatisch ebenfalls als "nicht zu übernehmen" markiert. Sie können die Markierung nicht für untergeordnete Einträge aufheben, solange der übergeordnete Eintrag markiert ist.

Bei denjenigen Baumeinträgen oder Feldern, die zwischen beiden Geschäftspartnern bei gleicher Nummer unterschiedliche Daten enthalten, müssen Sie entscheiden, welche Daten Sie in den neuen Geschäftspartner übernehmen wollen. Dazu klicken Sie in der Legende auf die Fläche gewählt; der Mauszeiger ändert sich. Sie können mit diesem Mauszeiger in den gelben Einzelfeldern für jede Zeile wählen, welchen der beiden Werte Sie übernehmen wollen. Der gewählte Wert erhält eine andere Farbe. Es ist je Zeile nur ein Wert wählbar; der jeweils andere behält oder erhält die gelbe Markierung. Beim nochmaligen Klick auf ein gewähltes Feld wird die Auswahl-Markierung aufgehoben. Wenn alle unterschiedlichen Auswahlfelder zu einem Baumeintrag ausgewählt sind, dann wird automatisch der ganze Baumeintrag auf beiden Seiten als "ausgewählt" eingefärbt. Wenn Sie mit der Auswahlmarkierung auf einen bisher gelben Baumeintrag klicken, dann werden alle unterschiedlichen Einzeldaten zu diesem Eintrag auf derselben Seite ausgewählt. Sie können danach durchaus Einzeldaten wieder umgekehrt markieren. Beim nochmaligen Klick auf die betreffende Fläche in der Legende wird der Auswahlmodus zurückgesetzt.

Wenn alle unterschiedlichen Baumeinträge einschließlich der Geschäftspartnerdaten ausgewählt oder als "nicht übernehmen" markiert sind, dann wird der Schalter ausführen aktiviert. Der Nummernbereich für die neu zu erzeugenden Geschäftspartner ist unter "Optionen" einstellbar. Das Programm sucht sich selbst in diesem Bereich die erste freie Nummer. Es erscheint jetzt noch eine Sicherheitsabfrage mit der Nummer des neu zu erzeugenden Geschäftspartners. Nach Bestätigung erzeugt das Programm den neuen Geschäftspartner mit den ausgewählten Daten. Dann werden die Bezüge in allen anderen Tabellen auf die beiden ehemaligen, zusammengefassten Geschäftspartner auf die neue Nummer abgeändert und die alten Geschäftspartner selbst werden gelöscht. Die Zusammenfassung wird in einer Protokolldatei mit Namen 'GPZusammen.txt' im eingestellten Datenverzeichnis protokolliert; der neu erzeugte Geschäftspartner erhält im Notizfeld eine Information über die Herkunft.


Bei sehr großen Datenmengen könnte es passieren, dass die Anzeige der Baumstruktur mehrere Minuten dauert. Da die Client-Server-Verbindung in der Standardeinstellung für 5 Minuten eingerichtet ist, könnte das in extremen Fällen zum Abbruch führen. Man kann sich behelfen, indem man bei Client-Start per Kommandozeilen-Parameter die lange Timeout-Zeit aktiviert, oder indem man zusätzliche Indice in der SQL-Datenbank einrichtet. Die folgenden kommen infrage::

IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_mndgeschaeftspartner_geschaeftspartner') CREATE NONCLUSTERED INDEX ix_mndgeschaeftspartner_geschaeftspartner ON mndgeschaeftspartner (geschaeftspartner)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_baustellen_MandantKundennr') CREATE NONCLUSTERED INDEX ix_baustellen_MandantKundennr ON baustellen (mandant,kundennr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispoangebote_MandantidHaendlerid') CREATE NONCLUSTERED INDEX ix_dispoangebote_MandantidHaendlerid ON dispoangebote (mandantid,haendlerid)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispoangebote_interessentid') CREATE NONCLUSTERED INDEX ix_dispoangebote_interessentid ON dispoangebote (interessentid)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispolschein_kundenid') CREATE NONCLUSTERED INDEX ix_dispolschein_kundenid ON dispolschein (kundenid)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispopumpauftraege_kundenid') CREATE NONCLUSTERED INDEX ix_dispopumpauftraege_kundenid ON dispopumpauftraege (kundenid)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispowaagels_mandantidFuhrunternehmerid') CREATE NONCLUSTERED INDEX ix_dispowaagels_mandantidFuhrunternehmerid ON dispowaagels (mandantid,fuhrunternehmerid)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_lschein_kundennr') CREATE NONCLUSTERED INDEX ix_lschein_kundennr ON lschein (mandant,kundennr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_lschein_haendlernr') CREATE NONCLUSTERED INDEX ix_lschein_haendlernr ON lschein (mandant,haendlernr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_lschein_spediteur') CREATE NONCLUSTERED INDEX ix_lschein_spediteur ON lschein (mandant,spediteur)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_gutsch_kundennr') CREATE NONCLUSTERED INDEX ix_gutsch_kundennr ON gutsch (mandant,kundennr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_gutsch_haendlernr') CREATE NONCLUSTERED INDEX ix_gutsch_haendlernr ON gutsch (mandant,haendlernr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_gutsch_spediteur') CREATE NONCLUSTERED INDEX ix_gutsch_spediteur ON gutsch (mandant,spediteur)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_frachtbelege_kundennr') CREATE NONCLUSTERED INDEX ix_frachtbelege_kundennr ON frachtbelege (mandant,kundennr)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_frachtbelege_fuhruntern') CREATE NONCLUSTERED INDEX ix_frachtbelege_fuhruntern ON frachtbelege (mandant,fuhruntern)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_lschein_mandantKundennrBaustelle') CREATE NONCLUSTERED INDEX ix_lschein_mandantKundennrBaustelle ON lschein (mandant,kundennr,baustelle)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_gutsch_mandantKundennrBaustelle') CREATE NONCLUSTERED INDEX ix_gutsch_mandantKundennrBaustelle ON gutsch (mandant,kundennr,baustelle)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_frachtbelege_mandantKundennrBaustelle') CREATE NONCLUSTERED INDEX ix_frachtbelege_mandantKundennrBaustelle ON frachtbelege (mandant,kundennr,baustelle)
IF NOT EXISTS (SELECT * FROM sysindexes WHERE name='ix_dispowaagels_mandantidKundenidBaustellenid') CREATE NONCLUSTERED INDEX ix_dispowaagels_mandantifKundenidBaustellenid ON dispowaagels (mandantid,kundenid,baustellenid)
Bamberg