Sie sind auf Seite 1von 44

Baan OpenWorld 2.1/2.

2
Taller: Application Function Server

Introduccin
Es el mas adecuado mtodo de integracin entre BaaN (Versin c4 o superior) y productos de terceros, conocido como Business Object Interface o BOI. BOI provee una API para acceder a las funcionalidades Baan. Las interfases de alto nivel no pueden acceder a la lgica funciona Baan. La lgica del negocio se lleva a cabo por medio de sesiones que son principalmente basadas en la interfaz del usuario. BOI proporciona acceso programtico a las sesiones por medio de un protocolo del mensaje de bajo nivel. Este mensaje se encapsula en un juego de funciones primitivas llamado Application Function Server (AFS). Es as como BOI codifica los accesos la funcionalidad del negocio por medio del AFS. Usualmente no es necesario crear el BOI y las AFS desde un comienzo. El BOI puede ser generado usando la sesin ccboi0102m000 o ccboi0104m000 y los AFS-DLL son generados utilizando la sesin ttstpcreatdll. Los BOI y AFS son generados para resolver problemas donde se implementan juegos de funciones especiales de integracin. En escenarios de integracin complejos se hace necesario la extra-programacin para complementar lgicas que no son cubiertas por el pre-cdigo y que requieren un conocimiento de la arquitectura y la programacin AFS.

Arquitectura
El subsiguiente diagrama muestra el rol de AFS en la arquitectura BOI. Se muestra claramente que las llamadas de BOI hablan con la sesion baan subyacente a traves de AFS.

Field buffer

Session Instance

G -Engine

Session logic

 BOI/ L/4 L El programa que desea accesar la funcionaloidad de la sesion.  AFS-DLL El DLL, que contiene el paquete de funciones AFS primitivas. Estos DLL son opcionales.  AFS API que contiene la implementacion de las funciones AFS primitivas. Este API se comunica con el 4 L-Engine a traves de un protocolo dedicado B BE para permitir que la sesion ejecute la funcionalidad requerida.

BOI/3G / G

AFS-

AFS

Calling rocess

Field buffer El field buffer, contiene el campo (valores) de la forma, el cual ser introducido a la sesin. uando ocurre la primera llamada API, a una sesin, este campo es llenado por los valores de la sesin. Estos pueden ser tanto campos de tablas como otros campos de pantalla de la sesin usado para Input. Los valores de la BOI son almacenados en al field buffer. uando la sesin necesita estos valores (en el field loop de la sesin), el 4- L-Engine toma estos valores del field buffer y los hace disponibles para la sesin.  4 L-Engine El motor para cada sesin Baan 4 L, la cual se realiza para todas las pantallas, campos, eventos, manejo de maintable y dems. Se tata del mismo motor usado cuando se ejecuta una sesin bajo interfaz de usuario (por ejemplo el BW). Mientras en una sesin normalmente se espera por la interaccin del usuario (el llenado de un campo por ejemplo), este ahora espera por un comando AFS. La variable api.mode es valorada en TRUE. Esto permite que el engine 4 L pueda comportarse diferente. Esta variable predefinida se puede usar para identificar si la sesin esta corriendo bajo AFS y conducir otros comportamientos de la sesin.  Session logic La funcionalidad de la sesion Baan 4 L que se lleva acabo por AFS. Pueden existir mas de una sesion, sobre todo si se lleva a cabo el llamado a una sub-sesion o una sincronizacion entre sesiones de multiocurrencia a simple ocurrencia (ERP solamente). Tengase presenta que solo puede trabajar con un registro a la vez, para sesiones de tipo 2 y , solo una ocurrencia es usada.

Pautas para el manejo AFS: AFS-DLL


Se estandariza el uso de las AFS-DLL para el uso en sesiones con AFS, esto facilita la programacin y el mantenimiento a los proyectos. Por convencin, la nomenclatura para las AFS-DLL a diferencia de otras libreras, son llamadas bajo el mismo cdigo de la sesin, sin embargo una letra f es incluida posterior al codigo del modulo. Las AFS-DLL contienen las funciones para poner y recuperar valores en los campos de la sesin subyacente. Tambin contienen funciones para hojear, agregar, modificar y borrar registros en la sesin. Adems, contienen funciones miscelneas como colocar respuestas en preguntas y recuperar mensajes de error.

Compilacin
Para compilar programas que utilizan funciones AFS, es mandatorio atachar al programa principal la librera ottstpapihand o en su defecto incluir el codigo de programa #pragma used dll ottstpapihand dentro del script

Activacin de sesiones
La activacin se la sesin ocurre cuando se llama la primera funcin AFS, sin embargo existen algunas funciones que requieren que la sesin haya sido activada con anterioridad: stpapi.insert() Uno o mas llamados stpapi.put.field() deben haber ocurrido. stpapi.update() Debe haber un registro actual o un llamado stpapi.find() debe haber ocurrido. stpapi.delete() Debe haber un registro actual o un llamado stpapi.find() debe haber ocurrido. stpapi.save() Un llamado stpapi.insert(), stpapi.update() debe haber ocurrido. stpapi.recover() Un llamado stpapi.insert(), stpapi.update() debe haber ocurrido id. stpapi.continue.process() Los parmetros de sesin deben haber sido completados.

Field buffer para input


Solo algunas funciones toman el field buffer como datos de entrada. En el momento de field loop estos valores son tomados por la sesin: stpapi.insert() stpapi.update() stpapi.find() stpapi.change.view() stpapi.continue.process() stpapi.print.report() stpapi.application.option() stpapi.zoom.option() stpapi.form.command() ualquier campo de tabla en las distintas pantallas de la sesin ualquier campo de tabla en las distintas pantallas de la sesin Solo campos claves Solo capos de grupo Solo en pantallas tipo 4,para otras debe haber un registro actual Solo en pantallas tipo 4,para otras debe haber un registro actual Solo en pantallas tipo 4,para otras debe haber un registro actual Solo en pantallas tipo 4,para otras debe haber un registro actual
Solo en pantallas tipo 4,para otras debe haber un registro actual

Field buffer para output


Solo algunas funciones llenan el field buffer como datos para salida. stpapi.insert() stpapi.update() stpapi.save() stpapi.recover() stpapi.find() stpapi.browse.set() stpapi.browse.view() stpapi.synchronize.dialog() Field buffer es llenado por lo valores escrito en la tabla (caso # de orden) Field buffer es llenado por lo valores escrito en la tabla (caso # de orden) Field buffer es llenado por lo valores escrito en la tabla (caso # de orden) Field buffer es llenado por los valores anteriores del registro Field buffer es llenado por lo valores del registro encontrado Field buffer es llenado por lo valores del registro encontrado Field buffer es llenado por los valores del registro actual Field buffer es llenado por los valores del registro actual de la sesin de simple ocurrencia (solo modo Modify o Display)

Administracin de Textos
La administracin de textos no es soportada por AFS.

EL 4GL engine primitivo (Instrucciones)


En la mayora de las funciones AFS donde una sesin es incluida como parmetro, la sesin es activada automticamente. Hay otras funciones las cuales requieren que la sesin haya sido activada con anterioridad. Estas funciones devolvern un error si son llamadas antes que la sesin haya sido activada. Esto implica que las funciones (de este tipo) subsecuentes son enviadas a la misma instancia actual. L por lo Las sesiones activadas va AFS deben ser sesiones de tipo 4 L o en su defecto de L (sin prog estandar) no pueden ser manejadas por que sesiones sin pantallas y script de tipo la tecnologa AFS.

Para Obtener un valor de una sesin (stpapi.get.field)


Sintaxis: stpapi.get.field (string sesin, string campo, ref string valor, [long elemento]) Argumentos: sesin Nombre de la sesin sobre la que se desea buscar el valor. campo Nombre del campo del cual se desea el valor. valor Variable string que contendr el valor retornado. Para campos enumerados, se retorna el valor numrico de este y para campos de fecha se retorna el valor interno UT . elemento Numero del elemento que se desea para casos de variables tipo arreglos. Ejemplos:

stpapi.get.field("dtfsa1101s000", "dtfsa100.name", o.name)


- Se obtiene el valor hallado en el campo dtffsa100.name de la sesion dtffsa1101s000 y se coloca en la variable o.name.

stpapi.get.field("dtfsa1101s000", "balance", o.balance)


- Se obtiene el valor hallado en el campo balance de la sesin dtffsa1101s000 y se coloca en la variable o.balance. Note que esta vez se trata de una variable de pantalla y no un campo de tabla.

Para establecer un valor en un campo de una sesin (stpapi.put.field)


Sintaxis: stpapi.put.field (string sesin, string campo, ref string valor, [long elemento]) Argumentos: sesin Nombre de la sesin sobre la que se establecer el valor. campo Nombre del campo al cual se desea colocar el valor. valor Variable string que contendr el valor a colocar. Para campos enumerados, se retorna el valor numrico de este y para campos de fecha se retorna el valor interno UT . elemento Numero del elemento que se desea para casos de variables tipo arreglos. Ejemplos:

stpapi.put.field("dtfsa1101s000", "dtfsa100.name", o.name) - Se coloca el valor del campo o.name en el campo dtffsa100.name de la sesin.

WG1

Para insertar un registro en una sesin (stpapi.insert)


Sintaxis: stpapi.insert (string sesin, long do.save, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. do.save Es un flag que indica si un commit debe ser ejecutado inmediatamente o no. Si el valor del flag es 1 entonces un db.update es ejecutado. Si el valor se establece en 0 entonces debe ser ejecutado posteriormente un stpapi.save() err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.(N/O) Valor de retorno: 0 El registro no pudo ser insertado o si falla el salvado. 1 El registro pudo ser insertado y salvado con xito.

Ejemplos:

retval = stpapi.insert("dtfsa1101s000", true, err.mess)


- Si retval = 1 el registro se guardo con xito. - Si retval = 0 el registro no ha sido guardado. En este caso la variable err.mess guarda el mensaje de error.

Slide 11 WG1 Los mensajes de error retornados son: Sesion no disponible Comando no habilitado, no ha sido posible. Sesion inicial no sincronizada (solo ERP) Algun mansaje de error propio de la sesion

Willian Garcia, 7/11/2004

WG2

Para actualizar un registro en una sesin (stpapi.update)


Sintaxis: stpapi.update (string sesin, long do.save, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. do.save Es un flag que indica si un commit debe ser ejecutado inmediatamente o no. Si el valor del flag es 1 entonces un db.update es ejecutado. Si el valor se establece en 0 entonces debe ser ejecutado posteriormente un stpapi.save() err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.(N/O) Valor de retorno: 0 El registro no pudo ser actualizado o si falla el salvado. 1 El registro pudo ser actualizado y salvado con xito.

Ejemplos:

retval = stpapi.update("dtfsa1101s000", true, err.mess)


- Si retval = 1 el registro se guardo con xito. - Si retval = 0 el registro no ha sido guardado. En este caso la variable err.mess guarda el mensaje de error.

Slide 12 WG2 Los mensajes de error retornados son: Sesion no disponible Comando no habilitado, no ha sido posible. Sesion inicial no sincronizada (solo ERP) Algun mansaje de error propio de la sesion

Willian Garcia, 7/11/2004

WG3

Para borrar un registro en una sesin (stpapi.delete)


Sintaxis: stpapi.delete (string sesin, long do.save, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. do.save Es un flag que indica si un commit debe ser ejecutado inmediatamente o no. El valor falso no es soportado. El false existe en sintaxis, por compatibilidad, pero siempre ser ejecutado como true. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.(N/O) Valor de retorno: 0 El registro no pudo ser eliminado. 1 El registro pudo ser eliminado con xito.

Ejemplos:

retval = stpapi.delete("dtfsa1101s000", true, err.mess)


- Si retval = 1 el registro se elimin con xito. - Si retval = 0 el registro no ha sido eliminado. En este caso la variable err.mess guarda el mensaje de error.

Slide 13 WG3 Los mensajes de error retornados son: - Sesion no disponible - Comando no habilitado, no ha sido posible. - Algun mansaje de error propio de la sesion
Willian Garcia, 7/11/2004

Para salvar los cambios a un registro en una sesin (stpapi.save)


Sintaxis: stpapi.save (string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 El registro no pudo ser salvado. 1 El registro pudo ser salvado con xito.

Ejemplos:

retval = stpapi.save("dtfsa1101s000", err.mess)


- Si retval = 1 el registro se elimin con xito. - Si retval = 0 el registro no ha sido eliminado. En este caso la variable err.mess guarda el mensaje de error.

Para deshacer los cambios a un registro en una sesin (stpapi.recover)


Sintaxis: stpapi.recover (string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 El registro no pudo ser recobrado. 1 El registro pudo ser recobrado con xito.

Ejemplos:

retval = stpapi.recover("dtfsa1101s000", err.mess)


- Si retval = 1 el registro se recupero con xito. - Si retval = 0 el registro no ha sido recuperado. En este caso la variable err.mess guarda el mensaje de error.

Para ubicar un registro en una sesin (stpapi.find)


Sintaxis: Stpapi.find (string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 Registro no encontrado. 1 El registro fue encontrado con xito. Ejemplos:

retval = stpapi.find("dtfsa1101s000", err.mess)

(N/O)

- Si retval = 1 el registro fue encontrado. - Si retval = 0 el registro no ha sido encontrado, la tabla esta vaca o ocurri un error. err.mess guarda el mensaje de error.

Ejemplos Primera parte

Para buscar un registro en una sesin (stpapi.find)

stpapi.put.field("dtfsa1101s000", "dtfsa101.seno", str$(i.seno)) ret = stpapi.find("dtfsa1101s000", error.msg) if ret <> 1 then message("Record not found") endif

Para obtener el valor de un registro en una sesin (stpapi.get.field)

stpapi.put.field("dtfsa1101s000", "dtfsa100.seno", str$(i.seno)) retval = stpapi.find("dtfsa1101s000", error.msg) if retval = 1 then stpapi.get.field("dtfsa1101s000", "dtfsa100.name", o.name) stpapi.get.field("dtfsa1101s000", "balance", o.balance) endif

Para establecer el valor de un campo en una sesin (stpapi.put.field)

stpapi.put.field("dtfsa1201s000", "seno.f", str$(i.seno)) stpapi.put.field("dtfsa1201s000", "seno.t", str$(i.seno)) stpapi.put.field("dtfsa1201s000", "proc.date", str$(date.num())) stpapi.put.field("dtfsa1201s000", "do.update", str$(etol(dtyesno.no))) stpapi.continue.process("dtfsa1201s000", error.msg)

Para insertar un registro en una sesin (stpapi.insert)

stpapi.put.field("dtfsa1101s000", "dtfsa101.seno", str$(i.seno)) stpapi.put.field("dtfsa1101s000", "dtfsa101.name", name) retval1 = stpapi.insert("dtfsa1101s000", true, error.msg) if not retval1 then retval2 = stpapi.recover("dtfsa1101s000", recover.msg) endif

Para actualizar un registro en una sesin (stpapi.update)

stpapi.put.field("dtfsa1101s000", "dtfsa101.seno", str$(i.seno)) ret = stpapi.find("dtfsa1101s000", error.msg) if ret = 1 then stpapi.put.field("dtfsa1101s000", "dtfsa101.name", name) retval1 = stpapi.update("dtfsa1101s000", true, error.msg) if not retval1 then retval2 = stpapi.recover("dtfsa1101s000", recover.msg) endif endif

Para borrar un registro en una sesin (stpapi.delete)

stpapi.put.field("dtfsa1101s000", "dtfsa101.seno", str$(i.seno)) ret = stpapi.find("dtfsa1101s000", error.msg) if ret = 1 then retval1 = stpapi.delete("dtfsa1101s000", true, error.msg) if not retval1 then retval2 = stpapi.recover("dtfsa1101s000", recover.msg) endif endif

Para salvar un registro en una sesin (stpapi.save)

stpapi.put.field("dtfsa1101s000", "dtfsa101.seno", str$(i.seno)) ret = stpapi.find("dtfsa1101s000", error.msg) if ret = 1 then stpapi.put.field("dtfsa1101s000", "dtfsa101.name", name) retval1 = stpapi.update("dtfsa1101s000", false, error.msg) if retval1 then retval2 = stpapi.save("dtfsa1101s000", false, error.msg) endif if not retval1 or not retval2 then retval = stpapi.recover("dtfsa1101s000", recover.msg) endif endif

Ejemplos Primera parte (fin)

Para marcar un registro en una sesin (stpapi.mark)


Sintaxis: Stpapi.mark (string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 Registro no marcado. 1 El registro fue marcado con xito. Ejemplos:

retval = stpapi.mark("dtfsa1101s000", err.mess) (N/O)


- Si retval = 1 el registro fue marcado. - Si retval = 0 el registro no ha sido marcado. err.mess guarda el mensaje de error.

Para visualizar un registro en una sesin (stpapi.browse.set)


Sintaxis: stpapi.browse.set (string sesin, string opcin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. opcin Indica el tipo de opcin browse a ejecutar. Valores posibles son: first.set, next.set, prev.set, y last.set que corresponden a las acciones primer registro, siguiente registro, registro previo y ultimo registro respectivamente. Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

err.mess

Valor de retorno: 0 Registro no encontrado. 1 El registro fue encontrado con xito. Ejemplos:

retval = stpapi.brows.set("dtfsa1101s000, next.set, err.mess)


- Si retval = 1 el registro fue encontrado. - Si retval = 0 el registro no ha sido encontrado. err.mess guarda el mensaje de error.

Para establecer un nuevo grupo en una sesin (pant. Tipo 3) (stpapi.change.view)


Sintaxis: stpapi.change.view (string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 Registro no encontrado. 1 El grupo fue encontrado con xito. 2 Fue encontrado un grupo siguiente. Ejemplos:

stpapi.put.field("dtfsa1501m000", "dtfsa101.seno", str$(i.seno)) ret = stpapi.change.view("dtfsa1501m000", error.msg)


Para hacer uso de esta funcin es necesario haber llenado los campos claves de la sesin.

Para cambiar la vista de grupo en una sesin (pant. Tipo 3) (stpapi.browse.view)


Sintaxis: stpapi.browse.view (string sesin, string opcin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. Opcion err.mess Accion a ejecutar. Valor permitido: first.view, next.view, prev.view y last.view Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 Vista no encontrada. 1 Nueva vista de grupo fue encontrado con xito. Ejemplos:

ret = stpapi.browse.view("dtfsa1501m000, prev.view, error.msg)

Para sincronizar sesiones multi-ocurrencia con simple-ocurrencia (stpapi.synchronize.dialog) (Solo ERP)


Sintaxis: stpapi.synchronize.dialog.(string sesin, string modo, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando. modo err.mess Modo en el cual ser sincronizada la sub-sesin. Valor permitido: Add, Modify, Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: 0 La sesin o pudo ser sincronizada. 1 Sesin sincronizada con xito. Ejemplos:

ret = stpapi.synchronize.dialog("dtfsa1501m000, modify, error.msg)

Para ejecutar comando continuar en sesion (stpapi.continue.process) (Solo Baan IV)


Sintaxis: stpapi.continue.process(string sesin,ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando.

err.mess

Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.continue.process("dtfsa1501m000, error.msg)
(Si se trata de una sesin de reporte, los datos del mismo deben ser establecidos antes)

Para establecer parmetros de reporte (stpapi.set.report) (Sesiones de mas de un reporte)


Sintaxis: stpapi.set.report(string sesin, string reporte, string dispositivo, ref string err.mess) Argumentos: sesin Reporte Nombre de la sesin sobre la que se ejecuta el comando. Un cdigo de reporte valido.

Dispositivo Un cdigo de dispositivo valido. err.mess Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.set.report("dtfsa1401m000, rdtfsa140111000, windows, error.msg)


(Estos parmetros deben ser establecidos antes del uso de: stpapi.print.report(), tpapi.continue.process(), o stpapi.form.command() )

Para enviar comando print a la sesin (stpapi.print.report) (Solo Baan IV)


Sintaxis: stpapi.print.report(string sesin, ref string err.mess) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando.

err.mess

Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.print.report("dtfsa1401m000, error.msg)
( Este comando enva un execute(prind.data) a la sesin)

Para finalizar una sesin (stpapi.end.session)


Sintaxis: stpapi.end.session(string sesin, [ref string err.mess]) Argumentos: sesin Nombre de la sesin sobre la que se ejecuta el comando.

err.mess

Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.end.session("dtfsa1401m000, error.msg)
( En el caso de sub-sesiones, estas deben ser finalizadas antes que la sesin principal)

Para ejecutar una opcin de usuario (stpapi.application.option)(Solo Baan IV)


Sintaxis: stpapi.application.option(string sesin, long form, long opcin, [ref string err.mess]) Argumentos: sesin Form Opcin err.mess Nombre de la sesin sobre la que se ejecuta el comando. Pantalla en la que se encuentra el comando de usuario a ejecutar. Numero de opcin del usuario (choice.user.x), 0..9 Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.application.option("dtfsa1401m000,2, , error.msg)

Para ejecutar una opcin de zoom (stpapi.zoom.option)(Solo Baan IV)


Sintaxis: stpapi.zoom.option(string sesin, long form, string sesin, [ref string err.mess]) Argumentos: sesin form sesin Nombre de la sesin sobre la que se ejecuta el comando. Pantalla en la que se encuentra el campo con el zoom a ejecutar. Cdigo de la sesin zoom, si el zoom especifica un men de varias sesiones, debe colocarse el nombre de la sesin del men Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

err.mess

Valor de retorno: Ninguno Ejemplos:

stpapi.zoom.option("dtfsa1501m000", 2, "dtfsa1201m000", error.msg)

Para ejecutar un comando de sesin (stpapi.form.command)(Solo ERP)


Sintaxis: stpapi.form.command(string sesin, long tipo, string comando, [ref string err.mess]) Argumentos: sesin tipo sesin err.mess Nombre de la sesin sobre la que se ejecuta el comando. Tipo de comando, 2-sesin, 5-funcin. Cdigo de la sesin o de la funcin a ser ejecutada. Variable string que contendr el mensaje de error si el comando no es ejecutado con xito.

Valor de retorno: Ninguno Ejemplos:

stpapi.form.command("dtfsa1501m000", 5, "calculate.vat", error.msg)


(Si el comando es de tipo sesin, un stpapi.handle.subproc() debe ser ejecutado antes)

Para especificar acciones para sub-sesiones (stpapi.handle.subproc)(Solo ERP)


Sintaxis: stpapi.handle.subproc(string sesin, string subproc, string accin) Argumentos: sesin subproc accin Nombre de la sesin sobre la que se ejecuta el comando. Cdigo de la sub-sesin de la sesin o del men que va a ser activada. Kill , el proceso hijo muere apenas comienza. Ignore , Se ignora el proceso hijo, solo que el padre espera por el termino de este. Add , El proceso hijo se agrega al control del padre, este puede ser manipulado. Send, todas las llamadas del hijo sern a travs del nombre del proceso. padre

Valor de retorno: Ninguno Ejemplos:

stpapi.handle.subproc("dtfsa1501m000", "dtfsa1201m000", "add")


(Si el zoom es de tipo sesin, un stpapi.handle.subproc() debe ser ejecutado antes)

Para obtener mensajes de sesiones (stpapi.get.mess.code)


Sintaxis: stpapi.get.mess.code(string sesin, string err.mess) Argumentos: sesin err.mess Nombre de la sesin sobre la que se ejecuta el comando. Variable string que contendr el mensaje de error.

Valor de retorno: digo de error. Err.mess contiene un valor de vacio si no existen errores.

Ejemplos:

error.code = stpapi.get.mess.code("dtfsa1101s000", true, error.msg)


(Los mensajes son devueltos en el orden inverso a como son generados originalmente por la sesin)

Para contestar preguntas en sesiones (stpapi.enum.answer)


Sintaxis: stpapi.enum.answer(string sesin, string pregunta, bset respuesta) Argumentos: sesin pregunta respuesta Nombre de la sesin sobre la que se ejecuta el comando. digo de la pregunta que se presenta en la interfaz de usuario. Valor del enumerado que representa la respuesta

Valor de retorno: Ninguno.

Ejemplos:

stpapi.enum.answer("dtfsa1101s000", "dtfsa1101a", tcyesno.yes)


(Si la misma pregunta es hecha mas de una vez, esta debe ser contestada solo una)

Das könnte Ihnen auch gefallen