2. September 2011 22:58
Hallo,
im Prinzip wäre euer Vorschlag möglich, aber mit sehr viel Aufwand verbunden, da an jeder Stelle in der gesamten Anwendung wenn der Debitor gelesen wird, auch die Tabelle gelesen werden müsste, was nur sehr schwer zum laufen zu bekommen wäre. Dann müsste an allen Stellen im Code, wo auf den Verkäufer Code aus dem Debitoren- Stamm zugegriffen wird, der Zugriff auf eure Tabelle eingefügt werden. Denn den Debitoren- Stamm beim Lesen der Zusatztabelle ändern könnte dazu führen, das bei einem Modify auf die Debitoren das falsche Werte zurückgeschrieben werden.
Das nächste Problem sind Table-Relations, die könntet ihr bei diesen Feldern nicht mehr sinnvoll nutzen (Reports!). Sämtliche Lookups bei den entsprechenden Feldern müssten ausprogrammiert werden.
Mein Vorschlag daher:
Debitorenstamm DataPerCompany=Yes. Eine Funktion schreiben, die die gewünschten Daten über alle Mandanten synchronisiert. Diese Funktion wird in den OnModify/OnInsert- Trigger der Debitoren- Tabelle aufgerufen, und an allen Stellen, an denen der Debitorenstamm mit Modify(False)/Insert(False) aufgerufen wird.
Das hat man wesentlich besser im Griff, und lässt einen bei einem Update auf eine neue Version später nicht verzweifeln. Außerdem dürfte die Geschwindigkeit des Systems nicht so sehr darunter leiden.
Ich hab gerade mal in unserer Branche geschaut: die Tabelle Debitor wird dort ca. 310 mal verwendet, 108 mal ein Get, 42 mal Find, aber es wird nur 9 mal ein Modify und 2 mal ein Insert aufgerufen. Ich denke das sollte eure Frage beantworten.
Gruß, Fiddi