Ankündigung

Einklappen
Keine Ankündigung bisher.

Prozess aus VTL-Include anstossen

Einklappen
X

Prozess aus VTL-Include anstossen

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

  • Prozess aus VTL-Include anstossen

    Hallo zusammen

    Aufgrund einer speziellen Erfordernis muss ich einen Datenbankeintrag via Velocity (VTL-Include) hinzufügen. Nun muss auch der Ereignishandler "Datensatz einfügen" im Prozess anspringen, was leider jetzt nicht funktioniert. Wie kann man das bewerkstelligen?

    Besten Dank für Eure Tipps und ein schönes Wochenende
    Nick

  • #2
    Man kann aus Velocity heraus einen globalen Timer-Job starten mit dem Aufruf:
    Code:
    $DataTransferCallable.startJob("<timer-guid>")
    Dieser Ti mer könnte bspw. alle Datensätze durchlaufen die ein bestimmtes Flag gesetzt haben, welches du zuvor per SQL einfügst.
    In deinem Datengruppenereignisbehandler kannst du nun die Option aktivieren, dass er auf Timer-Events reagieren soll.
    Jetzt triggert der Datengruppenereignisbehandler nach dem Einfügen des Datensatzes.

    Ich nutze das nie, kann mir aber vorstellen, dass es zu Überschneidungen bei den Transaktionen kommen kann.
    Also ggf. musst du ein Delay einbauen, weil der Datensatz für den Timer noch nicht sichtbar ist.

    Falls du mit dem Datengruppenereignisbehandler nicht auf Timer-Events reagieren möchtest kannst du auch mit einem Timer-Ereignisbehandler auf den globalen Timer reagieren und per Datengruppenaktion das Event triggern.

    Kommentar


    • #3
      Besten Dank für Deine Antwort. Ich wollte damit eine E-Mail auslösen, sobald ein neuer Datensatz erfasst wird.

      Nur, ich könnte ja auch direkt aus Velocity eine Mail auslösen. Wie würde das gehen?

      Kommentar


      • #4
        In Velocity haben wir meines Wissens keine Methoden um direkt Mails zu erzeugen, zumindest habe ich das noch nie in Velocity gemacht.
        Mit Groovy ginge das wesentwlich einfacher, da es dort eine Klasse GroovyMailBuilder gibt die das kann.
        http://docs.intrexx.com/intrexx/vers...ilBuilder.html

        Ich würde es aber so machen, dass ich ein Flag für "Mail bereits versandt?" vergebe und per Timer alle paar Minuten alle versende die noch nicht versendet wurden und dann das entsprechende Flag setze.

        Kommentar


        • #5
          Besten Dank für die Rückmeldung. Ich habe es jetzt über den globalen Timer-Job, welche ich aus Velocity auslöse, und dem Flag gelöst.

          Kommentar


          • #6
            Hallo Nick. Ich sehe grade du hattest ein Anforderung die meiner ähnlich ist. Ich erzeuge per velocity Datensätze und möchte nach der Erzeugung für jeden dieser Datensätze eine Mail mit Bezug auf Inhalte des betreffenden Datensatzes senden (Mailadresse, eine URL des Datensatzes etc.. Das scheint deinem Problem sehr zu ähneln. Globaler Timer anlegen ist klar und diesen per $DataTransferCallable.startJo("GUID") aus vtl. aufrufen auch. Aber ws kommt nach dem globalen Timer? Kannst du mir auf die Sprünge helfen? Danke

            Kommentar

            Lädt...
            X