Automatizaciones de listas de precios con IA: instructivo tecnico para generar preprocesos Python

Publicado en: Alfa Gestión Comercial 0

# 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.