FwEventBus

Event bus interno pra publish/subscribe entre modulos. Desacopla logica de notificacoes.

Assinatura: FwEventBus():publish(cTopico, oPayload) / :subscribe(cTopico, bHandler)

Retorna: NIL

FwEventBus permite arquitetura event-driven dentro do Protheus. Modulo A publica evento; modulo B (sem saber de A) reage.

// Publisher (M030INC)
User Function M030INC()
    Local oEvento := JsonObject():New()
    oEvento["acao"]    := "criado"
    oEvento["cliente"] := SA1->A1_COD
    oEvento["loja"]    := SA1->A1_LOJA

    FwEventBus():publish("cliente.criado", oEvento)
Return

// Subscriber (outro modulo)
FwEventBus():subscribe("cliente.criado", {|oEvento|
    U_SyncCRM(oEvento["cliente"], oEvento["loja"])
})

Pegadinhas

Veja também