Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON-Antwort erhalten und per JavaScript verarbeiten

Einklappen
X

JSON-Antwort erhalten und per JavaScript verarbeiten

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • JSON-Antwort erhalten und per JavaScript verarbeiten

    Ich habe folgendes groovy-script:
    Code:
    import groovy.sql.Sql;
    def $db = new Sql(g_dbConnections['IxSysDb']);
    
    def $result = $db.firstRow('select b.[bereich_id] from mytable b where b.[ix_id] = ?',[g_session.user.getId()]);
    
    response.json()
    
    // create some JSON content
    writeJSON("person": "$result")
    Das ganze hängt unter einem generischen Ereignisbehandler.

    Mein Versuch mit Javascript sieht dann so aus:
    Code:
    function get_bereich(){
     //var test = triggerUserWorkflowEvent("B2689E13C6F83F4E5223D8527E08D489CB0CCA81");
     //alert(test.result);
    
     var el = getElement("9CD82B3D68B8B260BC0DF38E919B78363CA3F00A");
     ix.ajax().requestAppGroovy("groovy/scriptABBA22CDBAE21BE140301A526DE6B5620EF9137A.groovy", {
        dataType: "json",
        data: { "param_a": "1"},
        success: function (data) {
            alert(data);
        },
        ixWaitAnim: {
            element: el,
            type: "overlay"
        }
    }, el);
    }
    Das ganze funktioniert nicht! Wie muss ich denn vorgehen, damit die groovy-Datei mir ein Resultat liefert?

  • #2
    Also Groovy-Skripte aus den Workflows können meines Wissens nicht per AJAX aufgerufen werden.
    Per AJAX kann man Groovy-Skripte aufrufen die sich direkt in der Applikation befinden oder die sich im Ordner für die globalen Groovy-Skripte befinden.

    Kommentar


    • #3
      Ich muss jetzt nochmal dazu etwas fragen. Ich bekomme es nicht hin, dass mir das groovy-Script eine Antwort schickt.

      In Javascript habe ich folgende Funktion
      Code:
      function check_kontonummer(){
       var el = getElement("FD0CC716A1F21DAD9372D538403A57A4BA19D394");
       ix.ajax().requestAppGroovy("check_kontonummer.gr", {
          dataType: "json",
          data: {
              "param_a": "1"
          },
      
          success: function (data) {
              alert(data.kontonummer);
          },
          ixWaitAnim: {
              element: el,
              type: "overlay"
          }
      }, el);
      }
      das Groovy-Script dazu sieht so aus:
      Code:
      import groovy.sql.Sql;
      def db = new Sql(g_dbConnections['Daten']);
      
      writeJSON("kontonummer": "1");
      Was mache ich denn falsch? Als Fehler erhalte ich immer folgendes:
      Code:
      qs_path
      Der eingegebene Wert ist für diese Kontrolle nicht zulässig.
      
      
      de.uplanet.lucy.server.types.validators.ValidateException: Validation errors occur:
       qs_path: The request value 'application/2D66FAF8C989691576610FD8BE6BAE6B1B4F59BB/groovy/check_kontonummer.gr' is not valid (request validator type: de.uplanet.lucy.server.connector.web.validator.GroovyScriptPathRequestInputValidator(guid: 7D0D81864E49473ADD903377ED4936CF573DD361, null or empty values not ok, case sensitive)).
      Ich bräuchte mal ein funktionierendes Beispiel, damit ich sehe wie es richtig ist. Es ist etwas nervend, wenn man die Zeit damit vergeigt.

      Kommentar


      • #4
        Groovy-Skripte haben in Intrexx die Endung .groovy und nicht .gr . Versuch mal die Datei entsprechend umzubenennen.

        Kommentar


        • #5
          Es lag wirklich an der Dateiendung :| Oh Mann.

          Kommentar

          Lädt...
          X