16. April 2009 18:08
16. April 2009 18:27
rallnus hat geschrieben:Ein neues Projekt verlangt, möglichst wenig Änderungen am Standard vorzunehmen.
Forms: Original in eine neue Form kopieren und nur die Menüleiste entsprechend anpassen.
Tables: Eine eine Referenztabelle erstellen, die z.B. zusätzliche Stammdaten enthält.
Bei "OnModify" eine Codeunit aufrufen, die ggf. verschiedenste Funktionen ausführen kann.
Alternativ könnte man das ganze auch von der Änderungsprotokollierung aus triggern, dort hat man den alle Angaben wie Tabelle, Feld, alter + neuer Feldinhalt.
17. April 2009 10:06
27. April 2009 17:45
Antwort:ja, das müsste man dann so machen.Natalie hat geschrieben:Meine ganz persönliche Meinung als NAV-Programmierer:
Ein neues Projekt verlangt, möglichst wenig Änderungen am Standard vorzunehmen.
Den Ansatz unterstütze ich vollkommen, aber ...Forms: Original in eine neue Form kopieren und nur die Menüleiste entsprechend anpassen.
Möchtest du zu ändernde Forms grundsätzlich dublizieren? Auch solche, die du gar nicht aus dem Menu heraus aufrufen kannst (zum Beispiel die Auftrags-Subform)?
Antwort:Ich wüsste nicht, warum ich nach Stammdaten sortieren sollte. Ansonsten würde ich in der Generaltabelle Sortierfelder vorsehen, die man mit den für die Sortierung notwendigen Felder füllen kann.Tables: Eine eine Referenztabelle erstellen, die z.B. zusätzliche Stammdaten enthält.
Damit habe ich negative Erfahrungen gemacht. Beispiel: Erweiterung der Artikel-Tabelle in neue Tabelle. Du kannst keinen Sortierschlüssel bilden, der Felder beider Tabellen enthält.
Dies ist beim Reportdesign von großem Nachteil. Du musst sicher stellen, dass beide Tabellen absolut synchron sind. Es darf vielleicht eine Artikel-Tabelle ohne Zusatztabelle geben (was aber Nachteile hätte), aber nie umgekehrt.
Wenn der Kunde auf der Zusatztabelle Infos der Ursprungstabelle sehen möchte, müssen entweder zig neue FlowFields angelegt werden oder viel geklickt werden.
Eine Universal-Zusatztabelle kann es nicht geben, da die Stamm-Tabellen unterschiedlich aufgebaute Primärschlüssel haben und die hinzuzufügenden Felder natürlich individueller Natur sind.
Bei "OnModify" eine Codeunit aufrufen, die ggf. verschiedenste Funktionen ausführen kann.
Dann aber pro Ziel-Tabelle eine Codeunit ...
Außerdem enthalten Standard-Trigger mitunter viel Standard-Quelltext, und du musst dich in mehrere Stellen des gleichen Triggers einhängen -> noch mehr Funktionen in deiner neuen Codeunit. Das kann unübersichtlich werden.
Wenn die Gesamtanforderung durchdacht und überschaubar ist, dann ist der Ansatz durchaus zu unterstützen.Alternativ könnte man das ganze auch von der Änderungsprotokollierung aus triggern, dort hat man den alle Angaben wie Tabelle, Feld, alter + neuer Feldinhalt.
Der Kunde will aber nicht alles oder gar nichts protokollieren - und dann? Und was tun mit dem ganzen Datenmüll?
Am Ende hast du zig neue Objekte, die alle lizensiert sein müssen und die Übersichtlichkeit für den Programmierer schmälern. Wenn der Kunde meldet, dass er ein Problem mit der Auftragsmaske habe, kann der Programmierer eben nicht sofort sagen, dass er in Form XY nachschauen muss - er muss erst suchen.
Ich möchte deine Ansätze nicht schlecht reden, aber ich kenne keinen, der sie so rigoros praktiziert - und das nicht ohne Grund.
Vielleicht probierst du es ja einfach selbst aus und berichtest uns von deinen Erfahrungen?
27. April 2009 19:23
28. April 2009 09:42