r.kaczmarek
18th May 2005, 16:07
Hallo zusammen,

ich habe ein Problem beim Kompilieren eines Scripts. Das Script enthält den folgenden Code (nur Auszug):


.....
stpapi.put.field("tdinv1120m000","tdinv120.orno", act_order)
stpapi.put.field("tdinv1120m000","tdinv120.cwar", tuobo110.cwar)
ret = stpapi.change.view("tdinv1120m000", error.msg)
if (ret <> 1) then
tuobo110.rcod = "1"
if not isspace(error.msg) then
tuobo110.ertx = error.msg
else
tuobo110.ertx = form.text$("tuobo1210.01")
tuobo110.ertx = sprintf$(tuobo110.ertx, tuobo110.orno, tuobo110.cwar)
endif
stpapi.end.session("tdinv1120m000")
sess1120_open = false
else
sess1120_open = true
endif
else
if (sess1120_open) then
i.wloc = determine.item.location(tuobo110.cwar, tuobo110.item)
stpapi.put.field("tdinv1120m000","tdinv120.wloc", i.wloc)
stpapi.put.field("tdinv1120m000","tdinv120.item", tuobo110.item)
stpapi.put.field("tdinv1120m000","tdinv120.cstc", str$(0.0))
ret = stpapi.insert("tdinv1120m000", 1, error.msg)
if (ret <> 1) then
.....


Beim Kompilieren erscheint dann die Fehlemeldung:

Error: 1 arguments expected for function 'stpapi.change.view'
Error: Illegal argument 2 for function 'stpapi.change.view'
Error: Function 'stpapi.insert' returns no value.

Das kuriose ist, in unserem Testsystem funktioniert das Kompilieren des Scripts ohne Fehler....

Kann das eventuell an unterschiedlichen Versionen der ottstpapihand liegen?

Hat jemand einen Tipp, wie das Problem behoben werden kann?

Schon mal danke im Voraus!!

lakoon
18th May 2005, 23:24
Hallo

Ich glaube, dass Du mit Deiner Vermutung richtig liegst. Unterscheidet sich auch das Portingset?

Ist nicht immer einfach zu realisieren, aber ich würde die standard Tools Dlls auf beiden Systemen angleichen.

/lakoon

r.kaczmarek
19th May 2005, 16:08
Hallo lakoon

Die Portingsets im Test- und Echtsystem sind gleich (6.1c.07.01).

Wie finde ich denn den Versionsstand der ttstpapihand in den beiden System heraus? Denn dort muß ja dann ein Unterschied sein ...

lakoon
19th May 2005, 18:38
Hallo

Du kannst mit dem Befehl bic_info auf der Shell Ebene die version aus dem DLL ottstapihand herausholen.

Oder mit dem Programm ttadv2439m000. Dazu die Option "Show Object Idents (what)" ankreuzen.

/lakoon

günther
20th May 2005, 09:01
Für die UNIX User:
$ bic_info6.1 -e `explode6.1 ottstpapihand` |more

ergibt auf meinen Systemen (Portingset 6.1c.07.04 und 6.1c.06.02):

function extern long stpapi.insert(
const string session(),
long do.save,
ref string err.mesg() )
=> Also doch einen Returnwert.

function extern long stpapi.change.view(
const string session(),
[ ref string err.mesg() ] )
=> Argument 2 sollte eine Variable vom Typ String sein (nicht nur ein String).

==> Kann es nicht was ganz anderes sein? (#defines, irgendwelche Anführungszeichen, die falsch enden usw).

==> Probier doch mal eine "fast" leere Datei mit #pragma used dll ... und einem Funktionsaufruf.

Gruß Günther

r.kaczmarek
20th May 2005, 09:57
Hallo!

Ich habe lakoons Tipp aufgegriffen und die Versionen der DLL auf den beiden Systemen miteinander verglichen. Genau dort lag, wie vermutet, der Unterschied. Die DLL auf dem Testsystem, auf dem das Programmscript entwickelt wurde, war neueren Datums.

Durch Kopieren der DLL aus dem Tools-Verzeichnis des Testsytems in das Echtsystem konnte ich den Fehler beheben.

Danke für die Hilfe!!

Gruß

Romanus