PowerBuilder
Crear reuniones de Google Meet directamente desde PowerScript

5 visualizaciones
Este artículo técnico fue preparado por Luis Avilan a partir de un demo reproducible de la carpeta articulo_appeon.
El botón de demostración no envía los datos de la reunión desde JavaScript. Solo dispara un evento de PowerBuilder. El asunto, el horario, la zona horaria, el participante y la llamada a Google se crean completamente en PowerScript.
Qué demuestra Meeting Hub
PB Google Workspace Meeting Hub integra una interfaz HTML moderna con objetos PowerBuilder reales. La aplicación conecta una cuenta de Google, consulta su calendario principal, crea eventos con Google Meet, solicita el envío de invitaciones y muestra la respuesta HTTP sin exponer tokens en la interfaz.
Panel principal del demo conectado: agenda real, acción de prueba desde PowerScript y estado de la última operación de Google.
Arquitectura: la interfaz solicita y PowerScript decide
Cómo crear una reunión directamente desde PowerScript
El punto didáctico del proyecto es el evento ue_creacion_manual_reunion_desde_powerbuilder. Cualquier desarrollador puede adaptar este mismo patrón a una orden de compra aprobada, una cita médica confirmada, una visita técnica o cualquier regla de negocio.
El asistente permite la creación interactiva; la acción de prueba demuestra la ruta automatizada desde código PowerScript.
1event ue_creacion_manual_reunion_desde_powerbuilder();2/*------------------------------------------------------------------------3Nombre de la funcion: ue_creacion_manual_reunion_desde_powerbuilder4Descripcion: Creación manual de reunión desde PowerBuilder con datos definidos por la lógica de negocio.5Parametros de entrada: Parametros del evento6Parametros de salida: Retorno del evento7Fecha: 22 de julio de 20268Realizado por: Luis Avilan9------------------------------------------------------------------------*/10String ls_asunto, ls_descripcion, ls_inicio, ls_fin, ls_zona11String ls_correo, ls_identificador, ls_resultado12Integer li_resultado1314ls_asunto = "Reunión de prueba desde PowerScript"15ls_descripcion = "Reunión generada por la lógica de negocio nativa."16ls_correo = "luisavilan@hotmail.com"17ls_zona = "America/Mexico_City"18ls_inicio = "2026-07-22T16:00:00"19ls_fin = "2026-07-22T16:30:00"20ls_identificador = inv_gestor.of_crear_identificador()2122li_resultado = inv_google.of_crear_reunion( &23 ls_asunto, ls_descripcion, ls_inicio, ls_fin, &24 ls_zona, ls_correo, ls_identificador, ls_resultado)2526If li_resultado = 1 Then27 of_enviar_resultado(ls_resultado)28 of_enviar_diagnostico_google()29 of_sincronizar_calendario_google()30Else31 of_notificar_error_google(inv_google.of_obtener_ultimo_error())32End If
Qué sucede después de llamar al NVO
• Se verifica que exista una cuenta Google conectada.
• Se construye un recurso Calendar con inicio, fin, zona horaria, invitado y solicitud de conferencia.
• Se ejecuta Events.insert contra el calendario primary.
• Si Google todavía procesa la conferencia, PowerBuilder consulta el evento hasta recuperar hangoutLink.
• La respuesta se normaliza y se sincroniza nuevamente la agenda.
El JSON que publica Calendar y genera Meet
1{2 "summary": "Reunión de prueba desde PowerScript",3 "description": "Reunión generada por la lógica de negocio nativa.",4 "start": {"dateTime": "2026-07-22T16:00:00", "timeZone": "America/Mexico_City"},5 "end": {"dateTime": "2026-07-22T16:30:00", "timeZone": "America/Mexico_City"},6 "attendees": [{"email": "luisavilan@hotmail.com"}],7 "conferenceData": {8 "createRequest": {9 "requestId": "identificador-unico",10 "conferenceSolutionKey": {"type": "hangoutsMeet"}11 }12 }13}
La solicitud usa POST /calendar/v3/calendars/primary/events?conferenceDataVersion=1&sendUpdates=all. conferenceDataVersion=1 habilita la creación de la conferencia y sendUpdates=all pide a Google enviar notificaciones a los invitados. Google puede devolver la conferencia inicialmente como pendiente; por eso el NVO no supone que el enlace estará disponible en la primera respuesta.
Los eventos creados y consultados mediante Calendar API aparecen en la agenda conectada, junto con su enlace de Meet.
Invitaciones: solicitud de envío y trazabilidad
Agregar attendees registra al participante en el evento. El parámetro sendUpdates=all solicita a Google que notifique a todos los invitados. La respuesta se inspecciona para confirmar que el correo quedó registrado y obtener responseStatus. Esto prueba la solicitud aceptada por Calendar; la entrega final del correo depende de Google y del proveedor del destinatario.
OAuth desde PowerBuilder, sin ejecutable auxiliar
El demo abre la autorización en el navegador predeterminado mediante una llamada del sistema y realiza el intercambio del código con HTTPClient dentro de PowerBuilder. Los archivos web de ejecución están en la raíz del demo y no existe un receptor OAuth personalizado en formato .exe.
La versión didáctica permite pegar el código o la URL devuelta. Para una distribución de producción conviene completar el flujo de aplicación de escritorio con un receptor loopback y PKCE, además de cifrar los secretos y tokens persistidos.
Sincronización y monitor de API
La sincronización ejecuta Events.list con singleEvents=true, orderBy=startTime y un máximo de 100 elementos. PowerBuilder conserva método, endpoint, cuerpo, respuesta y código HTTP para que el comportamiento sea observable desde el demo.
Monitor técnico: endpoint real, respuesta JSON y estado HTTP sin mostrar las credenciales.
Abrir Google Meet dentro de PowerBuilder
Cuando el usuario pulsa Unirse, w_centro_reuniones abre w_sala_reunion y entrega el enlace obtenido de Google. La ventana valida que comience por HTTPS y ejecuta wb_sala.Navigate(is_url_reunion). El navegador externo permanece como contingencia.
La sala real de Google Meet se carga en una ventana PowerBuilder adicional basada en WebView2.
Cómo probar el recorrido completo
• Configure un cliente OAuth de tipo aplicación de escritorio y habilite Google Calendar API.
• Conecte una cuenta de prueba desde Meeting Hub.
• Pulse Reunión de prueba desde PowerScript.
• Confirme el HTTP 200/201 en el monitor y el evento en el calendario conectado.
• Compruebe que luisavilan@hotmail.com figura como invitado.
• Pulse Unirse y valide la apertura de Meet dentro de w_sala_reunion.
Referencias oficiales
OAuth 2.0 para aplicaciones instaladas · Crear eventos de Calendar · Events.insert · Events.list · Recurso Events y datos de conferencia
Conclusión
El proyecto demuestra que una reunión de Google Workspace puede nacer en código PowerScript natural. WebView2 ofrece una experiencia moderna, pero PowerBuilder conserva la decisión empresarial, los datos, la autenticación, la llamada HTTPS y la trazabilidad. El mismo método puede reutilizarse desde cualquier proceso corporativo que necesite publicar automáticamente una reunión real.

PowerBuilder
Control de acceso ABAC sobre DataWindow: decisiones dinámicas, explicables y auditables
Implementa control de acceso basado en atributos (ABAC) sobre DataWindow con PowerBuilder: políticas dinámicas, auditoría y decisiones explicables.
Leer artículo
PowerBuilder
Constructor visual AI No-Code con PowerBuilder, Ollama y WebView2
Construye una interfaz visual asistida por IA con PowerBuilder, Ollama y WebView2, manteniendo control sobre componentes, propiedades y código generado.
Leer artículo