29 agosto, 2026

AZURE FUNCIONS PARA GENERAR NÚMEROS PRIMOS EN POWER APPS

Hola a todos.

Hasta la fecha, únicamente tengo un post en Excel Signum sobre números primos y Power Apps: Aquí y el motivo no es otro que a Power Fx le resulta complejo o, más bien, está limitado. Hay que recordar que Power Apps no está construido específicamente para el cálculo.

Por ello, en esa entrada que construí en su momento, ya me resultó complicado y limitado el hacer un código que detectase si un número era o no primo, imaginaos uno que genere números primos…

Pero, ahora que tenemos recursos como Azure Functions, esto resulto mucho más fácil. Y es que lo vamos a generar en Python, directamente y luego pasaremos el resultado a Power Apps por medio de Automate (nuestra forma habitual de trabajar).

Esta va a ser la App:

Y vamos a tener que construir una función para poder desplegarla en Azure y a la que podamos llamar con Automate. Por ello, la función va a ser esta:

import json
import azure.functions as func

def es_primo(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

def main(req: func.HttpRequest) -> func.HttpResponse:
    try:
        data = req.get_json()
        desde = int(data.get("desde", 0))
        hasta = int(data.get("hasta", 0))

        primos = [n for n in range(desde, hasta + 1) if es_primo(n)]

        return func.HttpResponse(
            body=json.dumps({"primos": primos}),
            status_code=200,
            mimetype="application/json"
        )

    except Exception as e:
        return func.HttpResponse(
            body=json.dumps({"error": str(e)}),
            status_code=400,
            mimetype="application/json"
        )

Perfecto, y ahora vamos con el flujo, que vamos a ejecutar directamente desde Power Apps:

Recordad que en el cuerpo de la acción HTTP, hay que poner esto:

{
  "desde": @{triggerBody()['number']},
  "hasta": @{triggerBody()['number_1']}
}

Ya que es número lo que pasamos a la función.

En el jSON debemos utilizar esto para incluirlo en «Generar desde la muestra»:

{
  "primos": [2,3,5,7,11]
}

Y finalmente, en la respuesta debemos pegar esta expresión:

string(body('Análisis_del_archivo_JSON'))

Y ahora en la APP, en el botón vamos a incluir este código en la propiedad OnSelect:

If(
    IsBlank(txtDesde.Text) || IsBlank(txtHasta.Text);
    Notify(
        "Debes introducir un valor en 'desde' y 'hasta'.";
        NotificationType.Warning
    );
    Set(
        varResultado;
        FLUJONUMEROSPRIMOS.Run(
            Value(txtDesde.Text);
            Value(txtHasta.Text)
        ).resultado
    )
)

Y en el label en la propiedad text:

If(
    IsBlank(varResultado);
    "";
    Substitute(
        Mid(
            varResultado;
            Find("["; varResultado) + 1;
            Find("]"; varResultado) - Find("["; varResultado) - 1
        );
        ",";
        ", "
    )
)

Y el resultado final es este:

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies