# Automatizaciones de listas de precios con IA: instructivo tecnico para generar preprocesos Python
**Slug sugerido:** `instructivo-ia-preprocesos-listas-de-precios`
**Categoria sugerida:** Automatizaciones
**Etiquetas sugeridas:** Alfa Gestion, Inteligencia Artificial, Listas de Precios, Python, Playwright, Excel, Integraciones
**Resumen:** Guia tecnica para que un asistente de inteligencia artificial pueda crear o corregir scripts Python compatibles con el preproceso de listas de precios de Alfa Gestion.
—
## Objetivo
Este documento define el contrato que debe cumplir cualquier script Python generado para descargar, transformar o preparar una lista de precios antes de importarla en Alfa Gestion.
Esta guia esta dirigida tanto a usuarios y tecnicos como a asistentes de inteligencia artificial. El resultado esperado es siempre un archivo `.py` completo, verificable y compatible con el entorno portable incluido en Alfa Gestion.
## Instrucciones obligatorias para el asistente de IA
Cuando un usuario solicite crear o corregir una automatizacion de listas de precios:
1. Analizar primero la necesidad real y la informacion disponible.
2. No inventar URLs de descarga, selectores, nombres de archivos, usuarios ni contrasenas.
3. Si solo se conoce la pagina principal del proveedor, navegar esa pagina y localizar el enlace real de descarga.
4. Si el sitio requiere botones, formularios, autenticacion o JavaScript, utilizar Playwright.
5. Devolver el archivo Python completo, no fragmentos ni diferencias.
6. No incluir explicaciones ni bloques Markdown cuando el usuario solicite el `.py` final.
7. Conservar el comportamiento existente cuando se trate de una correccion.
## Contrato de ejecucion
El script sera ejecutado de esta forma:
“`text
python.exe script.py “C:\Ruta\archivo_origen.xls” [–visible]
“`
Debe cumplir estas condiciones:
– El primer argumento es siempre la ruta de archivo configurada en Alfa Gestion.
– Debe aceptar el argumento opcional `–visible`.
– Si usa navegador, `–visible` debe ejecutar Playwright con `headless=False`.
– Sin `–visible`, el proceso debe poder ejecutarse sin intervencion del operador.
– Debe devolver codigo de salida `0` solamente cuando el resultado fue generado y validado.
– Ante cualquier error debe devolver un codigo distinto de `0`.
– Debe imprimir en `stdout` informacion util sobre el avance y el resultado.
– Debe imprimir o registrar el detalle completo de los errores.
## Ruta origen como ancla
Cuando esta activa la opcion **El nombre del archivo se genera automaticamente**, el archivo origen puede no existir. En ese caso la ruta recibida se utiliza como ancla para determinar:
– La carpeta de salida.
– El nombre base de la lista.
– El nombre del archivo procesado.
El script no debe exigir que el archivo ancla exista cuando su trabajo consiste precisamente en descargar o generar la lista.
## Archivo de salida
La salida debe generarse en la misma carpeta de la ruta ancla y respetar este patron:
“`text
<nombre_base>_procesado.xls
<nombre_base>_procesado (2).xls
<nombre_base>_procesado (3).xls
“`
Reglas:
– No sobrescribir archivos procesados anteriores.
– Si el proveedor entrega `.xlsx`, convertir la salida a `.xls` cuando la interfaz configurada lo requiera.
– No cambiar la extension de un archivo sin convertir realmente su formato.
– No guardar HTML, JSON o una pagina de error con extension `.xls`.
– Antes de devolver codigo `0`, comprobar que el `_procesado` existe y no esta vacio.
– Validar que el contenido corresponde al formato esperado.
## Descargas desde sitios web
### Descarga directa
Puede utilizarse `urllib.request` solamente cuando existe una URL directa, estable y comprobada al archivo.
La respuesta debe validarse antes de guardarla:
– Estado HTTP correcto.
– Tamano mayor que cero.
– Tipo de contenido coherente.
– El contenido no debe comenzar con HTML de error o pagina de acceso.
### Sitios con interaccion
Utilizar Playwright cuando sea necesario:
– Abrir una pagina.
– Iniciar sesion.
– Completar formularios.
– Resolver navegacion JavaScript.
– Presionar un boton o enlace.
– Esperar una descarga.
Antes de importar Playwright debe configurarse:
“`python
import os
os.environ[“PLAYWRIGHT_BROWSERS_PATH”] = “0”
“`
La descarga debe capturarse con `expect_download()` y guardarse mediante `save_as()`.
No utilizar Selenium, ChromeDriver ni instalar paquetes durante la ejecucion.
## Entorno Python disponible
El script debe funcionar con el Python portable distribuido junto con Alfa Gestion. Puede apoyarse en:
– Biblioteca estandar de Python.
– Playwright.
– pandas.
– openpyxl.
– pywin32 y Excel COM cuando esten disponibles en la instalacion.
No debe depender de `requests`, Selenium, ChromeDriver ni paquetes descargados durante la ejecucion.
## Procesamiento de Excel
Si utiliza Excel COM:
– Crear una instancia separada con `DispatchEx`.
– Desactivar alertas y actualizacion de pantalla.
– Cerrar el libro en un bloque `finally`.
– Ejecutar `Excel.Quit()` siempre, incluso si ocurre un error.
– No dejar procesos `EXCEL.EXE` abiertos.
Si utiliza openpyxl:
– Recordar que no genera archivos binarios Excel 97-2003 reales.
– No guardar un libro OOXML con extension `.xls`.
– Utilizar una conversion real cuando la salida obligatoria sea `.xls`.
## Registros y errores
Todo archivo de log debe escribirse en UTF-8:
“`python
with ruta_log.open(“a”, encoding=”utf-8″) as archivo:
archivo.write(mensaje + “\n”)
“`
La escritura del log debe tener su propio manejo de errores. Un problema al escribir el log nunca debe ocultar la excepcion original.
El error informado debe incluir:
– Paso que estaba ejecutando.
– URL o archivo involucrado, sin credenciales.
– Excepcion completa o traceback.
– Codigo de salida distinto de cero.
## Seguridad
– No escribir contrasenas, tokens ni API keys en logs.
– No publicar credenciales dentro del script.
– No desactivar validaciones TLS.
– No ejecutar codigo descargado desde el sitio del proveedor.
– No borrar archivos ajenos al proceso.
– Limitar las operaciones a la ruta ancla, temporales propios y archivo de salida.
## Prueba obligatoria
Antes de entregar el script:
1. Ejecutar `python -m py_compile script.py`.
2. Ejecutarlo con una ruta ancla de prueba y `–visible` si usa navegador.
3. Confirmar que el navegador se muestra cuando corresponde.
4. Confirmar que se descarga el archivo real, no HTML.
5. Confirmar que se genera un `_procesado` nuevo.
6. Abrir o validar el archivo generado.
7. Confirmar codigo de salida `0` en caso correcto.
8. Simular un error y confirmar codigo distinto de `0`.
9. Verificar que no quedan procesos de navegador o Excel abiertos.
## Informacion que debe proporcionar el usuario
Para obtener un buen resultado, el pedido debe incluir:
– Nombre del proveedor o lista.
– Pagina web inicial.
– Ruta ancla configurada.
– Si la opcion de nombre automatico esta marcada.
– Usuario y clave solamente cuando sean indispensables, preferentemente como parametros separados.
– Pasos manuales actuales para obtener la lista.
– Formato del archivo descargado.
– Hoja, encabezados y columnas importantes.
– Transformaciones necesarias antes de importar.
– Mensaje completo del ultimo error.
– Script actual, si se solicita una correccion.
– Capturas, PDF o Excel de ejemplo cuando ayuden a comprender el proceso.
## Prompt recomendado
“`text
Lee y cumple el instructivo tecnico de preprocesos Python de Alfa Gestion.
Necesito crear o corregir una automatizacion de lista de precios.
Proveedor/lista:
[nombre]
Pagina inicial:
[URL]
Ruta ancla:
[ruta]
El nombre se genera automaticamente:
[SI/NO]
Pasos que hoy realiza el usuario:
[detalle]
Resultado esperado:
[detalle]
Error actual:
[error completo]
Devuelve unicamente el archivo Python completo. No inventes URLs de descarga.
El script debe comprobar que genero un archivo _procesado valido antes de
devolver codigo de salida 0.
“`
## Checklist final para la IA
– Devuelve un `.py` completo.
– Usa solamente librerias disponibles.
– Acepta ruta ancla y `–visible`.
– Respeta modo visible y silencioso.
– No inventa URLs ni selectores.
– No guarda HTML como Excel.
– Genera `_procesado*.xls` en la carpeta correcta.
– No sobrescribe salidas anteriores.
– Valida el resultado antes de devolver `0`.
– Registra errores en UTF-8.
– No expone credenciales.
– Cierra navegador, archivos y Excel en todos los casos.
—
Este documento complementa el manual de sincronizacion automatica de listas de precios de Alfa Gestion y debe utilizarse como contrato tecnico para cualquier automatizacion generada o corregida con inteligencia artificial.
