JavaScript Probleme beim Aufruf der Kontaktseite

Hi,


wenn ein CRM Kontakt im IE programmatisch aufgerufen wird, gibt es Probleme mit dem JavaScript-Code des OnLoad-Eventhandlers.


Wie muss ich vorgehen, wenn ich eine Entität (z.B. Kontakt) programmatisch aus einer eigenen App aufrufen möchte, damit der JavaScript-Code im OnLoad funktionsfähig bleibt?


Christian



AW: JavaScript Probleme beim Aufruf der Kontaktseite

Hallo Christian,


den richtigen aufruf erhälst du, wenn du einmal die Entität, z.B. einen Kontakt, im CRM aufrufst und mit STRG-N das Fenster erneut öffnest. In der URL siehst du dann den richtigen Aufruf für diese Entität.


Der Browser, der das CRM öffnet, sollte natürlich der IE sein, und nicht ein andere Browser, in denen Funktionieren z.B. die JavaScripte nicht richtig.


Gruß


Michael



AW: JavaScript Probleme beim Aufruf der Kontaktseite

Hi Michael,


meine weiteren Tests haben gezeigt, dass wenn ich den Kontakt unter Angabe des CRMServers in der Url (z.B. http://mscrm/sfa/conts/edit.aspx?id={02BB3B95-FF5A-DC11-8EE0-000C29B6EA58 ) aufrufe, es keine Probleme gibt.


Rufe ich hingegen die Kontaktseite über den localhost:CassiniPort auf, wird die Dialogseite angezeigt.


http://localhost:2525/sfa/conts/edit.aspx?id={02BB3B95-FF5A-DC11-8EE0-000C29B6EA58}


In OnLoad verwende ich Quellcode wie z.B.:


function GetUserId() {
 try {
  var command = new RemoteCommand("SystemUser", "WhoAmI", "/MSCRMServices/");
  var result = command.Execute();
  if( result.Success) { return result.ReturnValue.UserId; }
 }catch(e) {  alert("Error while retrieving userid."); }
}

Innerhalb von RemoteCommand (Microsoft CRM JavaScript Bibliothek) wird auf globale Felder zugegriffen, die offenbar von Microsoft CRM gesetzt werden. Ich vermute, dass diese globalen Felder beim Aufruf über den localhost nicht initialisiert sind. Da meine Anwendung auch im Offline-Modus verwendbar sein soll, war meine Idee den Kontakt über den Cassini-Server aufzurufen, der ggf. (im Online-Modus) den Anruf an den Remote CRM Server weiterleitet.


Ich hoffe, ich konnte das Problem verständlich formulieren. Idee?


Christian