Rausfinden wo überall ein Funktionsaufruf passiert

20. September 2006 16:56

Hi,

in der Tabelle 279 , werden Textbausteinköpfe gespeichert.
Eine schöne Funktion, eigentlich...

Nun wäre es doch viel schöner, wenn man diese Textbausteine, an eine Kostenstelle binden könnte.

Mein Plan ist folgender:
1. Die Tabelle um 1 Feld erweitern, für den Kostenstellencode.
2. In der Codeunit 378 , Funktion: CheckIfAnyExtPromText, den Parameter Kostenstelle mit reingeben.

In den entsprechenden Reports, dann jeweils die Kostenstelle aus der Kopfzeile mit in die Funktion reingeben.

Sofern es nur die Reports sind, wo diese Funktion aufgerufen wird, würde ich mir die Arbeit machen, und diese alle durchgehen.

Meine Frage, könnte es sein, das diese Funktion, noch von woanders aus aufgerufen wird, nicht das da später dann beim Aufruf der Parameter fehlt.

Kann ich irgendwie , eine Liste erhalten, wo hervorgeht, in welchen Objekten, diese Funktion aufgerufen wird?

Danke.

20. September 2006 17:54

Diese Texte können auch in Aufträgen verwendet werden, also auf der Tabelle 36. Ev. noch an anderen Orten, kann ich aber ohen Suchen nicht sagen.

Wenn du herausfinden willst, wo eine Funktion Verwendung findet, musst du dazu das NDT einsetzen. Dort kannst du dann die entsprechende Abfrage ausführen und erhälst die Liste aller betroffener Objekte.

20. September 2006 18:23

Hmm. Okay.
Server and Client do not have the same programm number

NDT V. 2.00 SP 1

Mit dem SP 2 krieg ich noch nicht einmal ein Zugriff auf die Datenbank.

Grummel. Das mit der Server/Client Version macht mir aber grade deftigst Kopfschmerzen. Client 3.70A Woher weiß ich was der Server für eine Version hat? Oder ist das gar nicht damit gemeint?

Gibt es hie rnoch irgendwo ein Thread welches Probleme mit NDT behandelt?

Letzte Version die ich hab ist 104 , vom NDT ;) Warum arbeite ich eigentlich nicht damit, scheint ja wie die Butter aufs Brot dazu zu gehören...

Danke.

*migräne nun hab*

20. September 2006 20:35

Du darfst das NDT nicht direkt mit der Produktiv-Datenbank (bzw. entsprechenden Sicherungskopien) verbinden.
Das NDT verlangt eine eigene Datenbank, wo ausschließlich die NDT-Objekte drin sind.

Erstelle eine neue (lokale) Datenbank, importiere die NDT-Objekte (zu finden im Programmverzeichnis des NDT) und lege einen Mandanten an.
Nun schließt du die (NDT-)DB und öffnest die (Sicherungskopie der) Produktiv-DB.
Starte das NDT und öffne deine gerade erzeugte NDT-DB.
Nun kannst du die Objekte direkt aus dem (parallel geöffneten) Navision-Client auslesen, da die beiden Programme direkt miteinander kommunizieren können.

21. September 2006 09:59

Guten Morgen,

dann versuch ich die Sache nun mal anzugehen :)

Mir stehen 2 Server zur Verfügung, einmal der LIVE Server, und dann habe ich noch einen Extra Server einrichten lassen, für eine Testumgebung, dort wird alle paar Tage eine Kopie der Live Datenbank hinkopiert, und der Mandant umbenannt, für Testzwecke, Übungen, Programmierung usw...

Könnte ich die NDT Objekte in diese Testversion einlesen.

Es ist mir zwar noch nicht ganz klar, aber ich versuch mal so zu machen wie Timo sagt.

-----

Okay.....

Lokale DB angelegt (NDT.fdb)
NDT Objekte eingelesen.
Sicherheitskopie (TestDB) geöffnet
NDT Programm gestartet.
DatabaseName: Meine neue NDT DB
Klicke OK
DB Error: 1362
Klicke OK
Erscheint Login Popup
Trage mein kürzel ein
Popup Meldung:
Database must be converted before you can use it with this programm version. If you convert the database, older Program Versions will not be able to use it. Are you sure you want convert database?
Klicke OK (Mehr auswahl gibt nicht)
DB Error: 1362
KLicke OK.
Alles ist weg.

PS: Das war mit NDT 2.0 SP1

hmmm

Mit NDT 2.0 SP 2
Open Database -> Klick OK
DB-> Error 1362
Klick OK
Popup Meldung: You Have not selected Database
Klick Ok
DB Error 1046
Klick Ok
Alles weg.

hmmm

21. September 2006 10:14

Das NDT wird mit einer Anzahl eigener Objekte ausgeliefert. Du musst mit einem normalen Client eine eigene DB erstellen, dort die NDT-Objekte einlesen und anschliessend (immer noch mit dem Standard-Client) einen Mandanten anlegen.

Anschliessend startest du NDT und öffnest die eben erstellte DB mit dem gewünschten Mandanten. In diese Umgebung liest du dann die Versions-Objekte ein.

Es gibt zum NDT ein umfangreiches Manual. Ich würde dir empfehlen, es einmal zu studieren.

21. September 2006 10:22

Okay. Das erste was mir im Manual ins Auge sticht ;)
Requeriments: MBS Navision 4.00 ....

Das ganze geht aber schon mit der 3.70 er Datenbank?

....

PS:
Granule 1800 ist vorhanden, aber nicht granule 99.003.650
Also kann ich die Sache wohl vergessen :( *schade*

21. September 2006 10:52

elTorito hat geschrieben:Das ganze geht aber schon mit der 3.70 er Datenbank?


Ja, du kannst auch eine Version 3.70 ins NDT einlesen.


elTorito hat geschrieben:PS: Granule 1800 ist vorhanden, aber nicht granule 99.003.650 Also kann ich die Sache wohl vergessen :( *schade*


Da bin ich jetzt überfragt. Kann es ein Lizenzproblem sein? Ich bin der Meinung, dass man für den Gebrauch des NDT eine Entwicklerlizenz braucht. Hast du so eine?

21. September 2006 11:01

rotsch hat geschrieben:
elTorito hat geschrieben:Das ganze geht aber schon mit der 3.70 er Datenbank?


Ja, du kannst auch eine Version 3.70 ins NDT einlesen.


elTorito hat geschrieben:PS: Granule 1800 ist vorhanden, aber nicht granule 99.003.650 Also kann ich die Sache wohl vergessen :( *schade*


Da bin ich jetzt überfragt. Kann es ein Lizenzproblem sein? Ich bin der Meinung, dass man für den Gebrauch des NDT eine Entwicklerlizenz braucht. Hast du so eine?


Nö. :cry:
Wir Hatten mal vorübergehend eine, für das Update auf 3.70, ist aber mittlerweile abgelaufen. :cry:

Aus der Preisliste entnehme ich :
Developer's Tools Commerce Gateway unbegr. Granule 99003650 1500,00 EUR.

Werd mal fragen, ob die Firma sich das leisten möchte.

Könnte mir von euch vielleicht jemand eine Liste rüber kommen lassen, wo die Funktion sich überall befindet? :oops:

21. September 2006 11:07

elTorito hat geschrieben:Developer's Tools Commerce Gateway unbegr. Granule 99003650 1500,00 EUR.


Mir ist nicht klar, wo hier der Zusammenhang mit dem Commerce Gateway liegt.

Weiss da vielliecht jemand anders Bescheid :?:

21. September 2006 21:57

Das NDT hat nichts mit dem Commerce Gateway zu tun, aber wo du es gerade schreibst: Ja, für das NDT wird ein 99.xxx.xxx-Granule ("Source-Analyser") benötigt, welches (ich glaube) das Granule "Application Builder" voraussetzt.
Darüber hinaus gibt es für das NDT noch das Granule "Compare and Merge), welches ich nicht für notwendig halte, da ich niemanden (weder bei MBSP, noch bei Kunden) kenne, der diese Funktion des NDTs einsetzt.

22. September 2006 10:20

Guten Morgen,

weiß auch nicht warum das mit dem Gateway da steht, wohl ein Fehler in unserer Preisliste, naja, habe mal beim NSC nachgefragt und folgende Info erhalten:

Sie benötigen folgende Module:

Developer's Toolkit - Source Analyzer 99.003.640 ~6000€
Developer's Toolkit - Compare & Merge 99.003.650 ~1500€

Voraussetzungen dazu sind die Module 1800 C/Front und 7200 Application Builder die Sie haben.


Was könnte ich den noch alles mit dem Source Analyser machen? Bräuchte ein paar Argumente, um meinen Chef die Anschaffung "Geschmackhaft" zu machen. Trotzdem befürchte ich, das ich das Granule nicht bekommen werde :cry:

22. September 2006 21:16

Nun, du kannst damit z.B. feststellen, wo ein Feld überall referenziert wird, was sehr hilfreich ist, wenn Du z.B. die Artikelbeschreibung auf 50 Zeichen verlängern willst ;-)

aber 6000 Ocken ist ne Menge Holz.
Da bin ich richtig froh, dass das alles in unserer Partnerlizenz drin ist und nicht extra bezahlt werden muss :lol:

23. September 2006 20:16

Ein Hauptgrund für das Modul "Developer's Toolkit - Source Analyzer" (99.003.640) ist folgender:
Jede noch so kleine Änderung in vorhandenen Tabellenstrukturen (Ändern der Feldlänge, vorhandener Schlüssel, Formeln für FlowFields, ...) kann an irgendeiner anderen Stelle der Anwendung zu unerwünschten Werten führen, oder gewisse Funktionen völlig unbrauchbar machen, da sie anschließend auf einen Fehler laufen.
Bis einschließlich Version 2.60 konnte ein erfahrener Programmierer sich noch ungefähr im Kopf ausmalen, an welchen Stellen er sonst noch eingreifen muss, damit diese Änderung keine negativen Auswirkungen zur Folge hat.
Spätestens ab Version 3.x ist Navision so komplex geworden, dass o. g. Änderungen ohne Einsatz des NDT schon unter die Rubrik "grob Fahrlässig" fallen.

Mit anderen Worten:
Wieviel Geld verliert euer Unternehmen, wenn durch eine "übersehene" Programmstelle plötzlich der Verkauf keine Aufträge mehr eingeben kann und erstmal der letzte funktionierende Programmstand (sofern vorhanden) zurückgespielt werden müsste?

Ich denke mal, dass sich dieses Tool allerspätestens nach dem zweiten Fehler gerechnet hat, und wer programmiert, macht zwangsläufig Fehler, welche selbst bei einem noch so gründlichen Test der Entwicklung nicht gefunden werden kann.