[Gelöst] Fehler in einem OnLoad-Ereignis

19. Juni 2012 16:11

Hallo Community,

in einem Onload-ereignis habe ich unten stehnden Code nicht.
Beim Ausführen diese Codes wird ein Fehler protokolliert.
Auf die Zeile in Fett!

Warum? Was ist falsch?

Ich Lade eine Aufrufende Maske in eine Variable und möchte Attribute aus der Variable lesen.


var oParentCrmForm = window.parent.opener.document.all.crmForm;

if (oParentCrmForm && oParentCrmForm.ObjectTypeCode == 1)
{
var sAccountNummer;
sAccountNummer = oParentCrmForm.getAttribute("AccountNumber").getValue();
Xrm.Page.getAttribute("subject").setValue(sAccountNummer + " - ");
}
Zuletzt geändert von madschgal am 11. Juli 2012 10:28, insgesamt 1-mal geändert.

Re: Fehler in einem OnLoad-Ereignis

20. Juni 2012 12:19

Hallo,

dir ist schon klar, das du noch CRM 4.0 code verwendest, der richtige Aufruf wäre:
window.top.opener.parent.Xrm.Page
und
window.parent.opener.Xrm.Page.getAttribute("Attribute_Name")
bzw.
window.parent.opener.Xrm.Page.getAttribute("Attribute_Name").getValue();

Re: Fehler in einem OnLoad-Ereignis

21. Juni 2012 11:56

Hallo Michael,

ja das ist mir klar und mein Problem.
Ich hab eine 4er Installation die ich auf 2011 Updaten möchte.
Die Onload-Ereignisse laufen audf Fehler.

Code in 4er:

var today = new Date();
var cur_hour = today.getHours();
var cur_min = today.getMinutes();

today.setHours(cur_hour);
today.setMinutes(cur_min);

if (crmForm.FormType == 1)
{
crmForm.all.scheduledend.DataValue = today;
crmForm.all.actualdurationminutes.DataValue = 0;

// Check to confirm that the window.opener is present.
if (window.opener)
{
// Get the values of the parent form.

var oParentCrmForm = window.opener.document.all.crmForm;

if (oParentCrmForm && oParentCrmForm.ObjectTypeCode == 1)
{
var sAccountNummer = oParentCrmForm.all.accountnumber.DataValue;
crmForm.all.subject.DataValue = sAccountNummer + " - ";
}

// Check that you obtained the values of the parent form and
// that the parent form is an Anfrage.
if (oParentCrmForm && oParentCrmForm.ObjectTypeCode == 112)
{
var lookupItem = new Array;

// This will get the lookup for the attribute subjectid on the Anfrage form.
lookupItem = oParentCrmForm.all.subjectid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
crmForm.all.sop_betreffid.DataValue = lookupItem;
}
var lookupEmpfaenger = new Array;

// This will get the lookup for the attribute subjectid on the Anfrage form.
lookupEmpfaenger = oParentCrmForm.all.responsiblecontactid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (lookupEmpfaenger[0] != null)
{
crmForm.all.to.DataValue = lookupEmpfaenger;
}
}
}
}

Code in 2011er mit JavaConverter umgesetzt:
Dieser geht auf Fehler!?!

var today = new Date();
var cur_hour = today.getHours();
var cur_min = today.getMinutes();

today.setHours(cur_hour);
today.setMinutes(cur_min);

if (Xrm.Page.ui.getFormType() == 1)
{
Xrm.Page.getAttribute("scheduledend").setValue(today);
Xrm.Page.getAttribute("actualdurationminutes").setValue(0);

// Check to confirm that the window.opener is present.
if (window.top.opener.Xrm.Page)
{
// Get the values of the parent form.

var oParentCrmForm = window.top.opener.parent.Xrm.Page;

if (oParentCrmForm && oParentCrmForm.ObjectTypeCode == 1)
{
var sAccountNummer = oParentCrmForm.all.accountnumber.getValue();
Xrm.Page.getAttribute("subject").setValue(sAccountNummer + " - ");
}

// Check that you obtained the values of the parent form and
// that the parent form is an Anfrage.
if (oParentCrmForm && oParentCrmForm.ObjectTypeCode == 112)
{
var lookupItem = new Array;

// This will get the lookup for the attribute subjectid on the Anfrage form.
lookupItem = oParentCrmForm.all.subjectid.getValue();

// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
Xrm.Page.getAttribute("sop_betreffid").setValue(lookupItem);
}
var lookupEmpfaenger = new Array;

// This will get the lookup for the attribute subjectid on the Anfrage form.
lookupEmpfaenger = oParentCrmForm.all.responsiblecontactid.getValue();

// If there is data in the field, show it in a series of alerts.
if (lookupEmpfaenger[0] != null)
{
Xrm.Page.getAttribute("to").setValue(lookupEmpfaenger);
}
}
}
}

Wenn du noch einen Tipp hättest, ich verzweifle schön kangsam!!!
Ziel des Codes ist aus dem Parentfenster einen Wert in aktuelles Fenster überhnehmen.

Re: Fehler in einem OnLoad-Ereignis

24. Juni 2012 08:33

Hallo,

für mich sieht das so aus, als wenn du CRM 4 und 2011 Code gemischt hast.
Ein Beispiel:
var oParentCrmForm = window.opener.document.all.crmForm;
oParentCrmForm.all

"all" gibt es nicht im Objektmodell.