In Bearbeitung Zahlung Transaktionsnummer Trigger

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

Puma7

Gut bekanntes Mitglied
4. Mai 2016
325
16
#1
Hi,

in der Buchhaltung ist gerade aufgefallen, dass bei den Zahlungen seit dem 12.02. keine Transaktionsnummern mehr im System sind.
Ich habe auch geprüft ob der Tigger existiert und ob der Datenbanknutzer Berechtigungen hat. Aber es scheint alles soweit zu stimmen. Wie kann ich prüfen ob der Tigger noch ausgeführt wird?
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
360
61
#2
Hallo @Puma7,

werden die Transaktionsnummern zur Wawi übertragen? Es wurde Conennector seitig schon länger nichts mehr am Zahlungs-Import geändert.
 

Puma7

Gut bekanntes Mitglied
4. Mai 2016
325
16
#3
@Immanuel
Hättest du einen tip in welchem Log ich schauen könnte ob die Transaktionsid übertragen wird?

Update:
hab jtl_connector_payments Tabelle geprüft. Dort sind die TransaktionsID enthalten. Bedeutet, der Tigger wird ausgeführt und in die Tabelle geschrieben, aber es kommt nicht in der Wawi an
 

MP1

Aktives Mitglied
1. März 2017
10
0
#4
Wir haben leider das exakt gleiche Problem... Die Transaktionsids stehen unter "s_order" bei den jeweiligen Bestellungen mit dem Wert "12" bei "cleared" und sowohl "jtl_connector_link_payment" als auch "jtl_connector_payment" sind komplett leer. Es werden keinerlei Transaktionsids in die jeweiligen JTL-Datenbanktabellen geschrieben. Gibt es hier schon eine Lösung?
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
360
61
#7
SQL:
SHOW TRIGGERS
Es sollte ein Trigger mit dem Namen "jtl_connector_payment" für die Tabelle "s_order" gelistet werden. Wenn nicht, fehlt der Trigger.
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
360
61
#9
Versuch's mal hiermit:

SQL:
CREATE TRIGGER `jtl_connector_payment` AFTER UPDATE ON `s_order`
FOR EACH ROW
BEGIN
    IF LENGTH(NEW.transactionID) > 0 AND NEW.cleared = 12 THEN
        SET @paymentId = (SELECT id FROM jtl_connector_payment WHERE customerOrderId = NEW.id);
        DELETE FROM jtl_connector_payment WHERE customerOrderId = NEW.id;
        INSERT IGNORE INTO jtl_connector_payment VALUES (if(@paymentId > 0, @paymentId, null), NEW.id, '', now(), '', NEW.invoice_amount, NEW.transactionID);
    END IF;
END;
 

MP1

Aktives Mitglied
1. März 2017
10
0
#10
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
 

MP1

Aktives Mitglied
1. März 2017
10
0
#11
Folgende fehlermeldung erscheint bei der SQL-Abfrage:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
360
61
#12
Dann ist deine Datenbank möglicherweise anders konfiguriert. Den Trigger hast du ja jetzt, ich würde an deiner Stelle damit mal etwas rumspielen. Bspw. anstelle der Single Quotes es mit Double Quotes in dem INSERT IGNORE Statement versuchen.