none
CRM 2011 Java Skript felder befüllen lassen

    Frage

  • Hallo zusammen.

    IM CRM habe ich einen Optionssatz mit 3 Werten.

    Beispiel: Standardtext1, Standtext 2, Standardtext3. Die Werte der Standardtext X ist dann 100.000.00X.

    Mein Ziel wäre es nun, wenn z.B. Standardtext 2 ausgewählt wurde automatisch ein Text in ein mehrzeiliges Textfeld reingeschrieben wrid. So zusagen als Vorlage, die man dann geringfügig verändern kann.

    Wie würde da ein Java Skript ausschauen? Und wie muss ich vorgehen?

    Vielen Dank an alle.

    Gruß Wolfi


    Wolle39

    Dienstag, 14. Mai 2013 14:18

Antworten

  • Hallo,

    ich vermute, du hast das XrmSvcTookkit nicht zu deiner Form, in der du die Berechnung durchführst, hinzugefügt.

    Du kannst eine Funktion in einem anderen JavaScript nur benutzen, wenn du dieses JavaScript auch vorher geladen hast.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Mittwoch, 15. Mai 2013 10:58
    Moderator

Alle Antworten


  • // Alle möglichen Werte in einem Array Xrm.Page.data.entity.attributes.get("Standardtext1").getOptions(); // Text der Auswahl des Optionssatz Xrm.Page.data.entity.attributes.get("Standardtext1").getText(); // Wert der Auswahl des Optionssatzes Xrm.Page.data.entity.attributes.get("Standardtext1").getValue();

    // Fehlerüberprüfung fehlt, nur der Ansatz

    Xrm.Page.ui.getAttribute("text1").setValue(Xrm.Page.data.entity.attributes.get("Standardtext1").getText());

    Ich habe obigen Aufruf nicht getestet, aber ungefähr so sollte es funktionieren.

    Du solltest Dir ebenfalls mal diesen Sheet hier angucken. Dort ist eine Übersicht über die meisten XRM-Funktionen. Kann ich nur empfehlen. Ausdrucken und neben den Arbeitsplatz hängen ;-)

    [Falls es Probleme mit dem Skydrive-Link gibt, hier gibts den Link ebenfalls]

    Dienstag, 14. Mai 2013 19:03
  • Hallo Alex,

    Danke schon mal für die Antwort. Wenn das ich das richtig verstehe....

    ich komme mit dem Xrm.Page.data.entity.attributes.get nicht klar.  Ich muss im Skript ja sagen, hole mir bei Optionssatz: Standardtext1 folgenden Inhalt der aber ausserhalb des Formulares liegt.  In meinem Fall wie in dem ersten Bild. Angebote Bausteine (new_angebotebausteine). Dort liegt dann ein Baustein (new_baustein1) mit Textinhalt. Jetzt muss ich sagen (*.set) schreibe mir diesen Inhalt in das vordefinierte Feld (new_standardtext1).

    // Alle möglichen Werte in einem Array
    Xrm.Page.data.entity.attributes.get("Standardtext1").getOptions();

    // Text der Auswahl des Optionssatz
    Xrm.Page.data.entity.attributes.get("Standardtext1").getText();        

    // Wert der Auswahl des Optionssatzes
    Xrm.Page.data.entity.attributes.get("Standardtext1").getValue();

    // Fehlerüberprüfung fehlt, nur der Ansatz

    Xrm.Page.ui.getAttribute("text1").setValue(Xrm.Page.data.entity.attributes.get("Standardtext1").getText());

    Sorry, für die wahrscheinlich blöde Frage. Steh halt noch am Anfang, der ganzen Sache.

    Gruß Wolfi


    Wolle39

    Dienstag, 14. Mai 2013 19:49
  • Bin mir nicht sicher, ob ich dich richtig verstehe. Ist aber auch schon spät :-)

    Standardtext1 muss natürlich der SchemaName des Feldes sein, dass du abfragst (also der Optionssatz). Meine benutzte Variablendefinition war in meinem Beispiel evtl. etwas irreführend.

    Oder hast Du mehrere Entitäten aus denen du Informationen extrahieren willst oder lediglich auf diesem Formular? Wenn Du andere Datensätze abfragen willst und aus denen Inhalt anzeigen willst,  würde ich das XrmServiceToolkit empfehlen.


    Dienstag, 14. Mai 2013 20:59
  • Ich versuch jetzt mal das ganze zu verdeutlichen was ich machen will.

    In den Angeboten habe ich einen Optionsatz (new_standardtext): Standardtext1 (Wert: 100.000.001), Standardtext2 (Wert: 100.000.002), Standardtext3 (Wert: 100.000.003).

    Zudem habe ich im Angebotsformular ein mehrzeiliges Textfeld (new_standardext).

    In einer anderen Entität "Angebote Bausteine Standard" (new_angebotstandardtexte) habe ich ein Feld (new_baustein1) angelegt, in dem der Text drin steht den ich später holen möchte. Daneben gibt es noch new_baustein2 und new_baustein3, auch mit Text hinterlegt.

    Wenn nun ein neues Angebot geöffnet wird (hier steht nun der Optionsatz auf Standardtext1 als Standard hinterlegt), sollte der A) Standardtext1 den Textinhalt aus der Entität "Angebote Bausteine Standard" Baustein1 sich holen und wenn der Optionssatz Standard 2 oder 3 gewählt wird dann soll er sich die Textinhalte aus Baustein2 oder Baustein3 holen.

    Wie würde da ein Skript ausschauen.
    Vielen Dank für eure Mithilfe.

    Gruß Wolfi


    • Bearbeitet Wolle39 Mittwoch, 15. Mai 2013 07:53
    Mittwoch, 15. Mai 2013 06:38
  • Ich würde Dir XrmSvcToolkit empfehlen. Dies ist erheblich schlanker als das o.g. Toolkit und erfüllt Deine Anforderungen.

    Deine Herausforderung besteht noch darin, Deine Optionswerte mit einer entsprechenden GUID Deiner Textbausteine zu verbinden. Alternativ könnte Dein Textbaustein natürlich auch ein Attributsfeld beinhalten, welches dem Wert oder dem Text Deiner Optionen entspricht.

    Im OnChange würdest Du dann ein Retrieve wie folgt starten:

    XrmSvcToolkit.retrieve({
         entityName: "Name Deiner Bausteinentität",
         id: ID-Wert des via Optionssatz ausgewähltem Bausteins,
         select: ["Name deines Basusteinfeldes"],
         expand: [""],
         async: false,
         successCallback: function (result) {
           if (!IsNull(result.Name_Deines_Bausteinfeldes)) {
           Xrm.Page.getAttribute("Name des Feldes in den der Wert übertragen werden soll").setValue(result.Name_Deines_Bausteinfeldes);
           }
         },
         errorCallback: function (error) {
          throw error;
         }
        });


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

    Mittwoch, 15. Mai 2013 09:11
  • Klappt leider nicht.

    Habe mich an deinem Skript orientiert.

    function XrmSvcToolkit.retrieve()
    {
          entityName: "new_angebotstandarttexte",
          id: 100.000.000,
          select: ["new_text1"],
          expand: [""],
          async: false,
          successCallback: function (result) {
            if (!IsNull(result.new_text1)) {
            Xrm.Page.getAttribute("new_baustein1").setValue(result.new_text1);
            }
          },
          errorCallback: function (error) {
           throw error;
          }
         });

    }

    Leider erhalten ich diesen Fehler!

    new_standardtext ist der optionssatz (im Bild als Standardtext zu sehen)

    ausgewählter Standard 1 hat den Wert 100.000.000

    In das Feld Baustein 1 soll der Text reingeschrieben werden, der in einer anderen Entität liegt (new_angebotstandarttexte) aus dem dem Feld Texte (new_text1).

    Auf alle diese Felder habe ich OnChange - XrmSvcToolkit.retrieve hinterlegt.

    Gruß Wolfi


    Wolle39

    Mittwoch, 15. Mai 2013 10:40
  • Hallo,

    ich vermute, du hast das XrmSvcTookkit nicht zu deiner Form, in der du die Berechnung durchführst, hinzugefügt.

    Du kannst eine Funktion in einem anderen JavaScript nur benutzen, wenn du dieses JavaScript auch vorher geladen hast.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Mittwoch, 15. Mai 2013 10:58
    Moderator
  • Hallo,

    zunächst einmal muss das XrmSvcToolkit ja auch installiert werden. Du findest die managed solution als link in meinem Artikel.

    Und dann kann Dein id - Wert natürlich nicht funktionieren. Wie ich Dir geschrieben hatte, musst Du in Abhängigkeit Deiner ausgewählten Option die jeweilige GUID des Baustein-Datensatzes heranziehen.

    Unter id: muss also eine GUID stehen oder die GUID vorher in einer Variable, was bei Dir sinnvoller ist.

    Gruß


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

    Mittwoch, 15. Mai 2013 11:00
  • OK. Das Skript hab ich jetzt hochgeladen und veröffentlicht (läuft alles auf einem Testsystem).

    Ich Fragen über Fragen.... sorry.

    1.Frage: Bei OnChange muss ich dann mein Skript auswählen? und welche Funktion hinterlegen?

    2. Frage: Unter id: muss also eine GUID stehen oder die GUID vorher in einer Variable, was bei Dir sinnvoller ist!

    Wie kann ich den die Abhängigkeit meiner ausgewählten Option der jeweilige GUID des Baustein-Datensatzes heranziehen.

    Verstehe ich das richtig. Der Wert 100.000.001 muss in abhängigkeit (Beziehung) zum new_text1 stehen?

    Danke.

    Gruß Wolfi


    Wolle39


    • Bearbeitet Wolle39 Mittwoch, 15. Mai 2013 12:00
    Mittwoch, 15. Mai 2013 11:25