none
Bestimmten Wechselkurs in einem Script verwenden

    Frage

  • Hallo,

    ich muss in einem Formular mit mehreren Währungen rechnen.

    Für die Beträge in Fremdwährungen verwende ich Felder vom Typ Dezimalzahl.

    Ich möchte nun diese Fremdwährungen in die Basiswährung umrechnen und den errechneten Wert in ein entsprechendes Feld schreiben. Dazu möchte ich den Umrechnungsfaktor der zugehörigen Währung auslesen. Hierfür benötige ich eine Funktion. Ich habe 3 Währungen mit entsprechenden Umrechnugsfaktoren angelegt (USD, EUR, CNY). In Formularen führe ich Berechnungen bisher mit einer Funktion in JScript durch. Beispiel:

    function CalcTotalValue()

      var Wert1 = Xrm.Page.getAttribute('new_sqmvalue').getValue();
      var Wert2 = Xrm.Page.getAttribute('new_ibnvalue').getValue();
      var Wert3 = Wert1 + Wert2
      Xrm.Page.getAttribute('new_totalprojectvalue').setValue(Wert3);
    }

    Wie kann ich hier einen zentral gespeicherten Umrechnungsfaktor aus der Entität für Währungen verwenden?

    Freitag, 24. Mai 2013 07:10

Alle Antworten

  • Idealerweise verwendest Du eine Bibliothek, wie z.B. XrmSvcToolkit und kannst dann mit einem Retrieve, RetrieveMultiple oder auch einem FetchXML die Währungen abfragen und in Deinem Script als Variable verwenden.


    Carsten Groth http://carstengroth.wordpress.com Microsoft Dynamics Certified Technology Specialist, MVP für Microsoft Dynamics CRM

    Montag, 27. Mai 2013 06:43
  • Das hat prima funktioniert. Vielen Dank für die Information, war sehr hilfreich.

    Hier nun die Funktion:

    function GetUSD() {
        var USD;

       var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
     "<entity name='transactioncurrency'>" +
                        "<attribute name='isocurrencycode' />" +
                        "<attribute name='exchangerate' />" +
                        "<order attribute='currencyname' descending='false' />" +
                         "<filter type='and'>" +
                          "<condition attribute='isocurrencycode' operator='eq' value='USD' />" +
                         "</filter>" +
                       "</entity>" +
        "</fetch>";

                XrmSvcToolkit.fetch({
                    fetchXml: fetchXml,
                    async: false,
                    successCallback: function (result) {
                        USD =  result.entities[0].exchangerate;
                    },
                    errorCallback: function (error) {
                        throw error;
                    }
                });
        return USD;
    }

    Dienstag, 28. Mai 2013 08:17