Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Hallo,



ich möchte einige simple JavaScript Zeilen in OnLoad()-Events von
einigen Formularen eingeben. Allerdings werden diese Eingaben nicht
übernommen!



Nachdem z.B. alert("BLA"); eingegebn wurde, das Event aktiviert und mit
ok geschlossen wird und anschliessend auch das Formular-Eigenschaft
Fenster mit ok geschlossen wird, erscheint im dem Formular-Editor
Fenster eine JavaScript Fehlermeldung:



Zeile: 771

Zeichen: 1

Fehler: 'null' ist Null oder kein Objekt

Code: 0

URL: http://..serverip:port../tools/formEditor/formEditor.aspx?formType=main&objectTypeCode=1084



typeCode 1084 in dem Fall, weil es sich um eine Quote handelt. Gleiches
Phänomen auch bei Order und Lead; nicht aber bei Account,
Contact....sehr seltsam.



Ich kann mir diesen Fehler nicht erklären, habe es schon mit einem
iisreset probiert, von einem Webclient von meinem Rechner, mit dem
Webclient direkt auf dem Server. Das tritt sowohl auf dem
Entwicklungssystem als auch in dem Produktivsystem auf. Die Systeme
sind beides englische MSCRM 3.0 inkl. Rollup2 Systeme, als AddOns sind
q.address, K3 MultiCurrency und WordMailmerge beteiligt.



Wäre schön, wenn jemand aus der Community Rat weiss, vielleicht hatte
ja schon jemand diese Symptome oder weiss einen guten Tipp woran es
liegen kann.



Gruss, Andre.



AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Hi,


dies spricht ganz klar dafür, dass der Fehler in dem OnLoad JavaSript liegt. Es muss also ausser Deinem Code (alert...) noch anderer Code im OnLoad-Ereignis stehen. Hinweis: Hier kann z.B. auch eine externe JavaSript-Datei eingebunden sein und der Fehler in dieser Datei liegen.


Da sich JavaScript Code nur sehr schwer debuggen lässt, ist eine gängige Hilfe das Auskommentieren "//" von Code-Zeilen und Stück für Stück reaktivieren. So weiß man, ab wann sich der Code in einem nicht-konsistenten Zustand befindet.


Gruß



AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Moin Carsten,

das spektakuläre daran ist, das das OnLoad()-Event absolut leer ist bevor ich da auch nur eine Zeile hinzufüge. Nichts drin, keine inkludierte externe Javascript-Datei, rein gar nichts. Und man kann trotzdem nicht mal den einfachsten js Befehl absetzen...

Gruß, Andre.


AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Hallo Andre,


ich habe mal auf meinem Testsystem das Gleiche in das Onload-Ereignis einer Quote geschrieben. Wie ich eigentlich nicht anders erwartet habe, hatte ich keine Fehler an der beschriebenen Stelle. Ich habe mir meinen Quelltext angeschaut und als allererstes schon einmal feststellen müssen, das dieser mal gerade ca. 450 Zeilen umfasst. Bei mir gibt es keine Zeile 771, ich habe aber auch bisher keine Anpassungen an einer Quote gemacht. Gibt es noch mehr Anpassungen, die du eventuell in anderen Events gemacht hast. Dein Problem liegt, glaube ich, nicht im Onload-Ereignis. Vielleicht kommt dort erst etwas zum Tragen, wenn du das Onload-Event aktivierst. Kannst du dir nicht auch einmal den Quelltext des formEditors anschauen und vielleicht einmal nach 'null' suchen. Eine Stelle, an der 'null' NULL ist oder kein Object sollte doch zu finden sein. (Irgendwo statt zwei = nur eins, oder so?)


Grüße


Beate



AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

[quote user="BeateS"]

... Ich habe mir meinen Quelltext angeschaut und als allererstes schon einmal feststellen müssen, das dieser mal gerade ca. 450 Zeilen umfasst. Bei mir gibt es keine Zeile 771, ich habe aber auch bisher keine Anpassungen an einer Quote gemacht.

[/quote]

ja die eigentliche aspx Seite (formeditor.aspx ist bei mir auch nur so ca. 440 Zeilen lang, ABER wenn du mal schaust, da werden ja om oberen Teil jede Menge externe JavaScript Dateien eingebunden, u.a. die utils.js, also müsste man ja den Umfang an Zeilen bei der tatsächlich im Speicher verarbeiteten Seite dazurechnen...Die utils.js umfasst glaube ich ca. 900 Zeilen, dann kämen da noch etliche weitere externe Dateien hinzu....falls ich da jetzt keinem Denkfehler unterliege.

[quote user="BeateS"]

Gibt es
noch mehr Anpassungen, die du eventuell in anderen Events gemacht hast.

[/quote]
ja. leider. Allein in der Quote sind mehrere Events von Drittanbietertools (K3 und q.address) eingeklinkt. Aber halt nur in OnChange()-Events um im OnSave().

Das OnLoad() ist leer.

[quote user="BeateS"]

Dein Problem liegt, glaube ich, nicht im Onload-Ereignis. Vielleicht
kommt dort erst etwas zum Tragen, wenn du das Onload-Event aktivierst.
Kannst du dir nicht auch einmal den Quelltext des formEditors anschauen
und vielleicht einmal nach 'null' suchen. Eine Stelle, an der 'null'
NULL ist oder kein Object sollte doch zu finden sein. (Irgendwo statt
zwei = nur eins, oder so?)

[/quote]

Ganz genau. das Problem tritt erst dann auf, wenn ich das OnLoad() Event aktiviere, selbst dann wenn ich es leer belasse...also lediglich den Haken setze und dann direkt wieder mit ok aus dem Fenster gehe.

Ich habe die aspx Files und js Files Datumsmäßig auch schon mir nem "frischen" CRM 3 Roll 2 System verglichen, kein Unterschied. Sind die identischen Dateien.


AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Hi,


dann prüf´ doch zunächst mal die Einstellungen des Browsers oder der Firewall, ob überhaupt JavaScript zugelassen ist. Natürlich kannst Du auch schnell mal eine HTML Page mit einem Javascript-Aufruf zusammenstellen und diese prüfen.


Sollten die Einstellungen hier das Ausführen von JavaScript generell ermöglichen, bleibt Dir nur der Weg des mühsamen debuggens.


Also:


1.) Aufruf der CRM Oberfläche beim Login --> wird hier schon ein JavaScript-Fehler angezeigt


2.) Aufruf z.B. der Firmenkarte --> wieder der Check, ob ein JavaSript-Fehler ausgewiesen wird


usw.


Zuvor natürlich auch mal prüfen, ob z.B in der ISV.Config oder Sitemap.xml ein direkter JavaScript-Aufruf implementiert wurde (Button oder ähnliches), dessen Aufruf den/die Fehler verursacht.


Gruß



AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

[quote user="Carsten Groth"]

dann prüf´ doch zunächst mal die Einstellungen des Browsers oder der Firewall, ob überhaupt JavaScript zugelassen ist. Natürlich kannst Du auch schnell mal eine HTML Page mit einem Javascript-Aufruf zusammenstellen und diese prüfen.


Sollten die Einstellungen hier das Ausführen von JavaScript generell ermöglichen, bleibt Dir nur der Weg des mühsamen debuggens.

[/quote]

JavaScript geht einwandfrei. In den meisten anderen Entitäten ist das auch überall kein Problem, nur Quote und Order scheinen Probleme zu machen.

[quote user="Carsten Groth"]

Zuvor natürlich auch mal prüfen, ob z.B
in der ISV.Config oder Sitemap.xml ein direkter JavaScript-Aufruf
implementiert wurde (Button oder ähnliches), dessen Aufruf den/die
Fehler verursacht.


[/quote]

das wäre ein Ansatzpunkt, das werde ich direkt morgen früh ausprobieren.

Ansonsten gibt es in dem Event direkt ja nichts zu debuggen...und an den CRM Files und deren Routinen wirds wohl auch kaum liegen...kann ich mir auf jeden Fall nur schwer vorstellen, da ich die Dateien ja schon Datumsmäßig verglichen habe...könnte ja nochmal ein bit-Vergleich oder nen Hash-Vergleich machen ;-) dann hört das Spaß aber bald auf.


AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Hallo CRM Community,

nachdem ich nun heute nochmal alles mögliche ausprobiert habe (WinServer 2003 updaten....CRMDiagToolTurbo Tracen....alle Anpassungen exportieren, neu wieder importieren....habe leider so schnell kein anderes neues frisches Testsystem, weil ja etliche third party addons im System involviert sind...etc...etc....). Alle meine Bemühungen kamen leider nicht zu dem wünschenswerten Ergebnis.

Deswegen habe ich jetzt folgende Lösung angewand:
Ich habe mir nur die Anpassungen der Quote exportiert. Diese XML Datei habe ich dann editiert und an der richtigen Stelle im XML Baum das entsprechenden Tag

 <event name =onload" application="false" active="true">
    <script><![CDATA[
       /* some JavaScript code ... */
       ......
       /* some more JavaScript code */
    ]]</script>
    <dependencies />
 </event>


eingefügt. Diese geänderte XML Datei wieder importiert, veröffentlicht und gut war es.
Habe das eingangs beschriebene Phänomen zwar immer noch, aber wenigstens ist jetzt der JavaScript Code drinnen und wird auch verarbeitet, nur der gewählte Weg entspricht halt nicht ganz dem Standardweg....

Was hält die Community von dieser Teillösung??
Zu sehr unsupportet...?

Gruß,

Andre.


Re: AW: Fehler beim einfügen von JavaScript in OnLoad()-Events. Events bleiben leer!

Naja, ich denke mal, es liegt an den oben beschriebenen Third-Party-AddOns.


Wenn es nicht anders geht wird es wohl nur so gehen.


Mit CRM 4.0 würde ich mal mit einem frischen System herangehen und die AddOns erstmal weglassen.


Mich würde aber mal die exportierte Anpassungsdatei interessieren? Könnte ich mal die Datei bekommen? Ich schaue sie mir dann mal genauer an, was es mit dem Phänomen auf sich hat.