mjpedreira1
8th July 2005, 14:40
Hola, necesito borrar un artículo con AFS.
El código que estoy usando es:

function borrar.articulo.tiitm001.afs()
{
string err.msg(60), recover.msg
domain tcbool ret, retval1, retval2

stpapi.put.field("tiitm0101m000","tiitm001.item", tiitm001.item)

ret = stpapi.find("tiitm0101m000", err.msg)

if ret = 1 then
retval1 = stpapi.delete("tiitm0101m000",true, err.msg)
if not retval1 then
retval2 = stpapi.recover("tiitm0101m000",recover.msg)
endif
endif

stpapi.end.session("tiitm0101m000")
}

Pero se me queda colgado cada vez que intenta hacer algo en una función.
Es correcto usar la sesión tiitm0101m000 o debería usar la tppdm0510m000. Ve alguien algún fallo?
Muchas gracias

dorleta
11th July 2005, 10:22
Debes de utilizar en principio la que se te abra cuando llames a mantener artículos desde el menú.

Luego se te cuelga, ¿cuando ? en el find o en el borrado. Si utilizas la tppdm es posible que tengas que hacer un 2 find contra esta sesión y borrar en ella o modificar el código de la tiitm001 para incluir alli una llamada via api a la tppdm en determinadas circunstancias. Otra cosa que te puede dar pistas es poner en depuración la tiitm001 a ver donde y porque se cuelga.


Suerte.

mjpedreira1
11th July 2005, 13:35
El problema por el cual no borraba el registro es que se debía controlar el mensaje de confirmación de borrado utilizando la función "stpapi.enum.answer".

function main()
{
string err.msg(60), recover.msg
long ret

stpapi.put.field("tppdm0110m000","tiitm001.item", "EXCHANGE")
ret = stpapi.find("tppdm0110m000", err.msg)
stpapi.enum.answer("tppdm0110m000", "tiitm01012", tcyesno.yes)
ret = stpapi.delete("tppdm0110m000",true, err.msg)
if not ret then
ret = stpapi.recover("tppdm0110m000",recover.msg)
endif
stpapi.end.session("tppdm0110m000")
}