hust500
10th December 2008, 14:37
Hallo zusammen,

ich realisiere eine Schnittstelle mit einem Lagerverwaltungssystem über Oracletriggerung (Oracle 10g). Beim Füllen einer BAAN-Tabelle erhalten die in BAAN unsichtbaren Felder (Referencecounter) t$refcntd und t$recntu jeweils mit dem Wert 0 (hier liegen auch keine Referenzen).
Die Routine funktioniert ohne Fehlermeldungen.
Will ich aber über die General Table Maintenance einen Satz löschen, so wird der Befehl ohne Fehlermeldung einfach nicht ausgeführt. Danach ist ein Blättern zwischen den Datensätzen nicht mehr möglich. Es erscheint Error 112 (No current record)
Generell verhält sich die Tabelle beim Blättern wie ein Drehrad, welches nach dem letzten Satz wieder den ersten anzeigt.

Nach einem Repair Reference Counter aus Reorganize Tables funktionert die Tabelle wieder normal, bis der Trigger wieder neue Sätze einfügt.

Wie sind t$refcntd und t$recntu zu füllen, so dass der Effekt vermieden wird?

Vielen Dank im Voraus

Elke

Anbei die Routine aus plsql:

insert into ttdflx602100(t$type, t$orno, t$pono, t$srnb,t$date,t$lino,t$tid,
t$refcntd, t$refcntu)
values(1,:new.t$pdno,1,0,sysdate,lino525,tidwe,0,0);

csecgn
10th December 2008, 19:23
Hallo,

ich kenne mich mit diesen Feldern auch nicht aus, aber eine ganz blöde Frage:
Was füllt Baan in die Felder wenn Ihr in Baan z.B. mit GTM manuell einen Datensatz anlegt?

Wird von einer anderen Tabelle auf diese Tabelle referenziert?

Habt Ihr Level 1 (eher unwahrscheinlich) oder Level 2 Treiber in Baan im Einsatz?

Eigentlich sollte es gehen (bei Level 2).

hth

Gruß
Christof

ulrich.fuchs
11th December 2008, 15:58
Ich vermute, das hat nichts mit den Referenzcountern zu tun. Gibts ein Stringfeld im Index, das nicht vollständig gefüllt wird (Das t$tid bspw mit 8 Stellen, aber Du übergibst nur sieben)? - Dann könnte es ein Problem mit der Links/Rechtsbündigkeit sein - Je nach Bündigkeit der Domäne müssen Stringfelder links bzw. rechts mit Leerzeichen aufgefüllt werden

hoffe das hilft
Uli

litrax
11th December 2008, 17:43
Hallo Elke,

wir hatten fast das gleiche Problem. Nur haben wir über einen Oracle-View Baan eine Tabelle einer anderen Datenbank vorgegaukelt. Wenn man jetzt in der GTM geblättert hat, wurden beim Rückwärtsblättern auch mal Sätze übersprungen. Nur die Anzahl der Sätze stimmte.
In der Tabelle war nur die Artikelnummer.

Bei uns, denke ich, lag es daran, daß in Oracle für die Baan- Tabelle nur der Datentyp CHAR(16) hinterlegt war, in der Fremdtabelle auf die verwiesen wurde aber VARCHAR(40).
Ich denke das kann der Baan-Oracle-Treiber nicht kompensieren.

Kannst du nochmal die ganzen Feldtypen überprüfen und evtl. anpassen.

Gruß
Olaf

hust500
14th December 2008, 16:35
vielen Dank Olf und Uli,

es lag gar nicht an den referencountern. Seit ich die stringlängen angepasst habe, funktioniert alles. :)

gruß Elke