Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > [gelöst] Eingabefeld in Datengruppe xy schreiben

[gelöst] Eingabefeld in Datengruppe xy schreiben

8) Schönen guten Morgen meine Herren und Damen,



ich stehe wieder einmal vor einem Problem mit dem ich nicht weiter komme:

Ich stehe vor der wunderbaren Aufgabe die EDI-Daten mit den unseren zu verknüpfen.(siehe Anhang)

Da dachte ich mir ist ja gar nicht so schwer. attention

Auf den Seiten "Zuordnung" werden die Artikelnummern per Datapicker (aus "Lieferant_2_Edi" und "Lager_Lieferant_2") ausgelesen und in der Datengruppe "Ausgabe" gespeichert.


Angehängte Datei:




Im selben Zug hätte ich gerne dass in der Ursprungsdatengruppe "Lager_Lieferant_2" im Feld "verbunden" der Wert "wahr" gesetzt wird.

Nur bekomm ich das irgendwie so gar nicht hin. attention Die beiden Datapicker welche die verdeckten Eingabefelder befüllen werden per Javascript ausgelöst.

Kann mir wer einen Tipp geben wie ich das bewerkstelligen kann?



Vielen Dank
22.08.2016 09:32 von Schweinetoeter
Hallo,

du könntest beim Speichern in die Datengruppe "Ausgabe" einen Prozess starten, bei dem du dann in der gewünschten Datengruppe den Boolean auf "wahr" setzen kannst.

1. Per Javascript ein UserWorkflowevent starten (Übergabe von ID und anderen relevanten Daten)
2. Im Prozess mittels Datengruppen- oder Groovyaktion die Daten in "Lager_Lieferant_2" ändern/updaten.

Grüße aus Österreich!
22.08.2016 09:54 von nmayer
Schönen guten Morgen,



so war mein Gedanke schon, nur bekomm ich es nicht auf die Reihe. attention

vielleicht hast Du einen Tipp für mich?



So in der Richtung wäre mein Ansatz?



#set($conn = $DbUtil.getConnection("IxSysDb"))
#set($l_conn = $DbConnection)
#set($statement = $PreparedQuery.prepare($l_conn, "UPDATE DATAGROUP('5F0DC90ECC678928D11E7B36D376D0DDC753C75A') SET B_VERBUNDEN = ? WHERE STR_KYARV={$Value}"))
$DbUtil.transactionEnlistResource($l_conn)
$statement.setBoolean(1, true)
##$statement.setTimestamp(4, $DtUtil.utcNow())
$statement.executeUpdate()
$statement.close()

23.08.2016 07:19 von Schweinetoeter
Ich hätte das SQL evtl. etwas Datensatz neutraler gestaltet:

//Erst alles false
update datagroup('guid') set b_verbunden=?
//Dann die verwendeten auf true
update datagroup('guid') set b_verbunden=? where strid in (select ref_value from datagroup('andere guid'))

23.08.2016 07:34 von MartinW
Hallo nochmal,



zumindest das setzten des Wertes funktioniert mal.

Nur stoße ich nun schon auf die nächsten Probleme:



Es sind ja bekanntlich 6 verschiedene Quelldatengruppen - muss für jede ein eigener Prozess erstellt werden?



Wie kann ich die Werte wieder zurücksetzten wenn der entsprechende Datensatz gelöscht wird (ohne die verbleibenden zu beeinträchtigen)?

So wie es scheint führt Intrexx erst die Aktion vom Groovy und dann die vom Button(Löschen) aus, somit kann mein SQL nicht mehr funktionieren.



Leider bringt mich die Sufu nicht weiter.
23.08.2016 09:53 von Schweinetoeter
Du könntest das evtl. mit einem Actionhandler bewerkstelligen.
Dort kannst du einstellen, dass dasselbe Groovy-Skript nach dem Speichern und nach dem Löschen ausgeführt wird.
Im Prozess - da hast du recht - hast du beim Löschen das Problem, dass der Datensatz noch da ist und das somit nicht so funktioniert.
23.08.2016 10:02 von MartinW
]Hallo Martin,



vielen herzlichen Dank - das war der Tipp den ich gebraucht habe. thumbsup

Die Tage bin ich mal irgendwo darüber gestolpert wie man mehrere SQL in einem Groovy verpacken kann.

Aber das find ich wieder attention



Schaut jetzt so aus und funzt thumbsup



import de.uplanet.scripting.groovy.util.Safely
def Lager_egger = "XDATAGROUP12F42173";
def Lief_egger = "XDATAGROUP57E32C49";
def Ausgabe = "XDATAGROUPB1FBD542";
def Lager_ringo = "XDATAGROUP644158B5"
def Lief_ringo = "XDATAGROUPAF674484"
def lager_terh = "XDATAGROUP6801C575"
def Lief_terh = "XDATAGROUP391D458E"
def conn = g_dbConnections.systemConnection
def stmt_1 = null
def stmt = null
def stmt_2 = null
def stmt_3 = null
def stmt_4 = null
def stmt_5 = null
try
{
stmt = g_dbQuery.prepare(conn, "UPDATE ${Lager_egger} SET B_VERBUNDEN = ? WHERE STR_KYARV not in (select STR_KYARTNV from ${Ausgabe})");
stmt.setBoolean(1, false)
stmt_1 = g_dbQuery.prepare(conn, "UPDATE ${Lief_egger} SET B_VERBUNDEN = ? WHERE STR_EAN not in (select STR_EAN from ${Ausgabe})");
stmt_1.setBoolean(1, false)
stmt_2 = g_dbQuery.prepare(conn, "UPDATE ${Lief_ringo} SET B_VERBUNDEN = ? WHERE STR_EAN not in (select STR_EAN from ${Ausgabe})");
stmt_2.setBoolean(1, false)
stmt_3 = g_dbQuery.prepare(conn, "UPDATE ${Lager_ringo} SET B_VERBUNDEN = ? WHERE STR_KYARV not in (select STR_KYARTNV from ${Ausgabe})");
stmt_3.setBoolean(1, false)
stmt_4 = g_dbQuery.prepare(conn, "UPDATE ${Lief_terh} SET B_VERBUNDEN = ? WHERE STR_EAN not in (select STR_EAN from ${Ausgabe})");
stmt_4.setBoolean(1, false)
stmt_5 = g_dbQuery.prepare(conn, "UPDATE ${lager_terh} SET B_VERBUNDEN = ? WHERE STR_KYARV not in (select STR_KYARTNV from ${Ausgabe})");
stmt_5.setBoolean(1, false)

stmt.executeUpdate()
stmt_1.executeUpdate()
stmt_2.executeUpdate()
stmt_3.executeUpdate()
stmt_4.executeUpdate()
stmt_5.executeUpdate()
stmt = Safely.close(stmt)
stmt_1 = Safely.close(stmt)
stmt_2 = Safely.close(stmt)
stmt_3 = Safely.close(stmt)
stmt_4 = Safely.close(stmt)
stmt_5 = Safely.close(stmt)
}
finally
{
stmt = Safely.close(stmt)
stmt_1 = Safely.close(stmt)
stmt_2 = Safely.close(stmt)
stmt_3 = Safely.close(stmt)
stmt_4 = Safely.close(stmt)
stmt_5 = Safely.close(stmt)
}




Vielen Dank
23.08.2016 13:22 von Schweinetoeter
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg