En este tutorial vamos a mostrar casos de uso del soporte de IA por prompt experimental. Vamos a suponer que ya se sabe el funcionamiento de un motor de IA generativo (como Gemini, ChatGPT u otros) y recomendamos especialmente antes leer el tutorial de instroducción de esta misma web
Para este tutorial vamos a usar el prompt básico número 01 que esta misma guía provee y usaremos el motor de IA Gemini de Google (en este caso con un plan Gemini PRO workspace business estándar aunque se pueden usar planes gratuitos y también otros motores como chatGPT con los mismos pasos que que se muestran)
Simplemente entramos a Gemini copiamos y pegamos texto del prompt en el chat del motor y para este tutorial hemos tomado algunas preguntas al azar del foro de la herramienta WSAFIPFE. Por ejemplo:
Pregunta 01: Vuelvo a insistir sobre este error porque aun no se si es por la libreria que uso o es falla del web service de ARCA. Ocurre que insistiendo un par de veces, conecta, pero a veces recibo el error "SOAP Fault HTTP Could not connnect to host".
Resultado: este tipo de pregunta no pueden ser respondidas por un motor de IA porque le falta el contexto que lo ayudaría a generar una respuesta a saber:
Como se llega ese error? es el texto devuelto en por la propiedad "ultimomensajeerror" de la interfaz WSAFIFPE.factura?
que método devuelve ese error? es el intentar obtener un ticket de acceso? al autorizar un comprobante con f1caesolicitar u otro método?
a que web service corresponde el método?
es conectando al servidor de prueba o real?
se está usando alguna versión en particular del software WSAFIFEP? podria tratarse de un error de versiones antiguas?
Todo esta falta de información y contexto hará que el motor de IA simplemente responda algo genérico o peor aun "invente" una respuesta. Aunque si es un modelo avanzado puede suceder que por lo que le indica el prompt le solicite al usuario que aporte más contexto y se niegue a responder si no se le aportan más datos:
Pregunta 02: En una empresa necesite habilitar los opcionales.
Siguiendo el excel que recibí de ejemplo cuando compré el OCX usé los valores de los opcionales y me rechaza el comprobante
¿Alguien puede ayudarme? ¿Pueden pasarme los códigos que se deben usar?
Gracias de antemano.
XML enviado
<Opcionales>
<Opcional>
<Id>27</Id>
<Valor>Factura de Credito Electronica MiPyMEs (FCE) - Transferencia</Valor>
</Opcional>
</Opcionales>
XML recibido:
<Observaciones>
<Obs>
<Code>10214</Code>
<Msg>El contenido del campo VALOR para Opcionales ID=27 no cumple el formato. El valor ingresado debe ser un alfanumérico de 3 caracteres. Ver manual desarrollador</Msg>
</Obs>
</Observaciones>
---
Aunque esta pregunta tiene el mismo problema que la anterior pero al aportar datos específicos vamos a re expresarla y completarla en algo como esto:
al conectar al web servicio WSFEv1 de factura electrónica y ejecutar el método f1caesolicitar para autorizar un comprobante tipo A PYME (código de comprobante 201) en los datos que envio incluyo una tabla de datos opcionales usando las propiedades: F1DetalleOpcionalItemCantidad =1
f1DetalleOpcionalValor = "027"
f1DetalleOpcionalValor = "Factura de Credito Electronica MiPyMEs (FCE) - Transferencia"
que la clase WSAFIPFE.factura dispone para estos datos pero recibo un error en el XML recibio (que puedo leer en la propiedad F1RespuestaDetalleObservacionMsg) que aqui detallo (....) podrías darme información sobre el motivo del error y como solucionarlo?
Resultado: en está subpagina copiamos y pegados la respuesta textual del motor (tener en cuenta que la respuesta puede variar en cada ejecución y dependiendo del plan y versión que se esté usando) Como se puede ver la respuesta es bastante acertada y aunque tiene algunos errores un programador podría con esa información ubicar rápidamente el problema y en todo caso investigar o repreguntar más en base a lo que la IA sugiere como motivo del error.
Preunta 03: Buenos días. A un cliente, ARCA le exige hacer Facturas "A" con leyenda "OPERACIÓN SUJETA A RETENCIÓN".
No encuentro en ARCA información si al autorizar hay que enviar algún dato adicional a la Factura "A".
---
Lo mismo que en el caso anterior vamos a completar esta pregunta para poder introducirla en el chat IA
conectando al web service WSFEv1 factura electrónica para ejecutar el método f1caesolicitar y autorizar un comprobante de factura electrónica en modo producción debo autorizar el compra conocido como "Factur A con leyenda operación sujeta a retención" podrias darme información sobre este tipo de comprobantes? son iguales a una factura electrónica A? su código de comprobante que se debe cargar en la propiedad F1CabeceraCbteTipo es diferente al código 1 que corresponde a las Factura A normales? hay algun dato diferente que debo tener en cuenta al autorizar esta Factura A con leyenda en relación con las factura A normales.
Resultado: en esta subpágina copiamos y pegamos el texto (en el apartado respuesta a pregunta 03). Como se puede ver en este caso el motor también da un respuesta parcialmente acertada pero indicando usar una propiedad que no existe y aunque se le pide que verifique la respuesta continúa con el error.
Pregunta 04: Que debo hacer paa que se genere XML de pedido y recepcion de informacion.
Lo pongo de lresultado = thisform.fe.f1caesolicitar(), en algunos casos los genera, en otros no....por que puede ser?
siempre hago:
_march_reci = SYS(5) + CURDIR() + "xml_arca\recibido.xml"
_march_envi = SYS(5) + CURDIR() + "xml_arca\enviado.xml"
--
Vamos a re expresarla como: al conectar al servicio WSFEv1 de factura electrónica nacional para autorizar un comprobante con el método f1CaeSolicitar en el modo real necesito generar los archivo XML enviado y XML recibido y aunque uso las propiedades
archivoxmlenviado = "rutaarchivo1.xml"
archivoxmlrecibido= "rutaarchivo2.xml"
a veces se generan los archivos y a veces no, tienes más información de como se debe generar estos archivo? y que tipo de error o problema podría impedir que se generen.
Resultado: en está subpágina . una vez más aunque la respuesta es parcialmente correcta no tienen en cuenta citar a la propiedad "archivoxmlerror" que permite saber si hubo errores al generar el archivo y aunque lo aclara no pone énfasis en que el archivo xml recibido solo se genera si el método f1caesolicitar no devolvió errores que impidieran la conexión.
Animamos a todo quien usen esta guía a comentar en el foro de WSAFIPFE sus experiencias ya que van a servir para crear mejores prompt y en el futuro generar un Agente de IA especializado en factura electrónica de Argentina.