2009-08-05 3 views
1

Wir haben eine Dynamics CRM 4.0-Instanz mit einigen benutzerdefinierten Attributen vom Typ "money" für die Case-Entität und für alle Activity-Entitäten (E-Mail, Telefonanruf usw.) Wenn ich die integrierte Funktion "In Activity konvertieren" verwende, finde ich, dass der resultierende Case keine Währung hat, selbst wenn die Aktivität, aus der er erstellt wurde, diese hat. Jedes Mal, wenn der Fall geöffnet wird, erhält der Benutzer dann diesen JavaScript-Fehler:Dynamics CRM-Fehler "Eine Währung ist erforderlich, wenn ein Wert in einem Geldfeld vorhanden ist" nach der Umwandlung von Aktivität in Fall

A currency is required if a value exists in a money field. Select a currency and try again.

Dies ist extrem ärgerlich! Wie repariere ich es? Kann ich die Währung irgendwie festlegen? Dies muss synchron erfolgen, da der Fall sofort geöffnet wird, wenn er aus einer Aktivität erstellt wird. Selbst wenn ich einen Workflow zum Einstellen der Währung starten würde, würde der Benutzer diesen Fehler dennoch mindestens einmal erhalten. Kann ich irgendwie die Warnung irgendwie unterdrücken? Es interessiert mich nicht wirklich, die Währung einzustellen, ich möchte nur, dass der Fehler weg ist.

Antwort

1

Sie können diesen Artikel CRM 4 Currency Calculations von Mitch Milam

-Update prüfen wollen: Nach googeln um, fand ich heraus, dass Sie die transactioncurrencyid Lookup irgendwo einstellen benötigen. In Ihrem Fall könnte es sich um eine Speicherung oder um die Ausführung der Workflow-Codes handeln. Ich lese es von hier Error: Assign a decimal value to CRM 4.0 money field using Javascript

+0

Ich habe keinen Workflow-Code - Umwandlung einer Aktivität in einen Fall ist integrierte CRM-Funktionalität. – EMP

1

Wenn Ihr Formular ein Geldfeld hat, muss CRM wissen, welche Währung zu verwenden. Stellen Sie sicher, dass eine Standardwährung in Ihren Benutzereinstellungen festgelegt ist (Personalisieren von Workplace auf der Hauptseite und dann auf der Registerkarte "Allgemein"). Das heißt, jeder Ihrer Benutzer muss eine Standardwährung haben.

Ich war auch in der Lage, um dieses Problem zu umgehen, indem Sie das Währungsfeld zu dem Formular hinzufügen, es auf US-Dollar standardmäßig festlegen und dann das Feld ausblenden. Wenn Speicher jedoch dient, ist dies nicht ideal, da die US-Dollar-Währung ein Datensatz im System ist und unterschiedliche GUIDs in verschiedenen Umgebungen haben kann.

+0

Meine Standardwährung ist festgelegt. Wenn Sie sagen, dass die Währung auf dem Formular "default" ist - wie machen Sie das? – EMP

+0

Erstellen Sie einen Webservice, der die Nachschlageinformation des US-Währungsdatensatzes (oder die Währung, die Sie standardmäßig verwenden möchten) zurückgibt. Fügen Sie dem Formular dann das transactioncurrencyid-Feld hinzu. Beim Laden des Formulars prüfen, ob es leer ist. Wenn dies der Fall ist, rufen Sie Ihren Webservice an, um die Nachschlagedaten der Standardwährung zu erhalten und verwenden Sie sie, um das Feld zu füllen. Blenden Sie optional das Feld im Formular aus. Sicherlich keinen Spaß oder schnelle Abhilfe, aber es wird die Arbeit erledigen. Hat das Ihre Frage beantwortet? – Polshgiant

+0

Tu, was Polsh sagt. Ich habe dies mit ein paar Kunden gemacht und das funktioniert großartig. – Matt

0

Ich stimme mit Hadi Teo überein, dass Sie die Transaktioncurrencyid einstellen müssen. Es ist eine Weile her, seit ich über dieses hier gestolpert bin - also hier ist, woran ich mich erinnere.

Wenn Sie eine neue Entität mit einem aufgefüllten Geldfeld erstellen, wird die Transaktionswährung festgelegt. Wenn Sie eine Entität aktualisieren, wird das Feld für die Transaktionswährung nicht festgelegt.

Ich habe nicht die Activity to Case-Funktion verwendet, so dass ich nicht ganz sicher bin, was es tut. Eine Sache, die Sie als eine Arbeit umgehen können, ist, die Transaktioncurrencyid auf dem Formular hinzuzufügen. Dann können Sie es einstellen, bevor Sie Ihren Fall ändern.

Die andere wäre, die Währung im Code zu default. Es gibt zwei Orte, um die Standardwährung zu bestimmen. Zunächst einmal von den Benutzereinstellungen. Zweitens (wenn das null ist) von den Organisationseinstellungen.

+0

Das Währungsfeld befindet sich bereits auf dem Fallformular. Natürlich kann der Benutzer sie manuell einstellen, aber das ist ein Ärger - und sie erhalten immer noch die Warnmeldung mindestens einmal, bevor sie es einstellen. Ich habe eine andere Währung in meinen Benutzereinstellungen festgelegt, aber wo gehe ich es für die Organisation zu setzen? – EMP

+0

Es wird automatisch für die Organisation (ich rate, welche Version Sie installieren) bei der Installation festgelegt. Wenn die Benutzereinstellung ausgefüllt wird, wird die Währung für eine vorhandene Entität nicht automatisch ausgefüllt - nur für eine neue Entität. Sie müssen entweder ein Skript oder ein Create Plugin hinzufügen, um dieses Feld selbst zu füllen. –

1

Dieses ärgerliche Problem wurde auf meinem System gelöst, indem die für US-Dollar verwendete Transaktions-CurrencyID ermittelt und dann die Spalte transactioncurrenceid in der Datenbanktabelle der Entität für alle vorhandenen Entitätsdatensätze aktualisiert wurde. Nachdem ich das getan hatte, war ich in der Lage, Geldwerte auf dem Entitätsformular ohne weitere Probleme hinzuzufügen. Ich bin mir nicht sicher, ob diese Lösung für jeden geeignet wäre, aber ich wollte Code nicht schreiben, um dies zu tun, und ich dachte, dass ich es nicht nötig hätte, wenn ich einer neu definierten Entität Geldattribute hinzufügen würde mein Teil, um das Feld Transaktionscurrencyid zu füllen - es hat es einfach standardmäßig getan. Zusammenfassend scheint dieses Problem nur dann aufzutreten, wenn die Geldfelder zu einer bestehenden Entität hinzugefügt werden, der vorhandene Daten zugeordnet sind.

3

Ich denke, dass dieser Code für die nächste Person, die ein ähnliches Problem haben, hilfreich sein wird. Ich verbrachte den ganzen Tag damit, herauszufinden, was ich unten gemacht habe.

Es gibt zwei Schritte, die hier beteiligt: ​​

  1. Satz Standardwährung
  2. Satz Währungssymbol für das Geld Feld.

Hier ist das Codebeispiel.

var currency = crmForm.all.transactioncurrencyid; 

if (currency.DataValue == null) { 
    var lookupData = new Array(); 
    var lookupItem= new Object(); 

    //Get transaction currency value from : 
    select **TransactionCurrencyId** from MSCRM.dbo.TransactionCurrency 
     lookupItem.id = '{The GUID that you get from the SELECT statement above}'; 
     lookupItem.typename = 'transactioncurrency'; 
     lookupItem.name = 'US Dollar'; 
     lookupData[0] = lookupItem; 
     currency.DataValue = lookupData; 
    //set default currency symbol for all the Money field. 
    var defaultSymbol = '$'; 
    for(var i=0; i < crmForm.all.length ; i++) { 
     var oCtr = crmForm.all[i]; 
     if(!IsNull(oCtr.IsMoney) && !oCtr.IsBaseCurrency) 
     { 
      oCtr.CurrencySymbol = defaultSymbol; 
     } 
    } 
} 
1

Da dieser Faden in meiner Google-Suche kam, als ich nach einer Lösung für dieses Problem für CRM 2011 suchen, ich dachte, dass ich meinen Blog-Artikel hinzufügen würde erklären, wie die Standard-Währung Suche in der Onload einstellen eines CRM 2011 Formulars mit JavaScript, JSON und OData.

http://crmscape.blogspot.com/2011/03/crm-2011-set-default-transaction.html

2

Set Standardwährung in Personalisieren Arbeitsbereich, Registerkarte Allgemein NEU Datensätze wird diese Währung vorhandene Datensätze (vor Geld Bereich (e) hinzugefügt) verwendet Verwenden Sie das erweitern Datensätze finden ohne Währungswert zu finden, dann Verwenden Sie Bulk Edit, um die Währung festzulegen

0

Fix für dieses Problem 1. Fügen Sie dem Formular das Basiswährungsfeld hinzu. 2. Deaktivieren Sie die Option "standardmäßig sichtbar" des Basiswährungsfeldes.