- otrodir/enviacorreo.4gl: TRY/CATCH al ejecutar el procedimiento de correo (si falla avisa y no se pierde la grabacion; antes una cotizacion con reserva se perdia completa) y desvio opcional MBS_CORREO_PRUEBA para ambientes de prueba (en produccion no existe la variable). - ccprmt001, ccprmt003, ccprrp049, ccprrp054: salida SVG fija -> PDF. - bin/ccprrp054.4rp: era de otro reporte (reporte54); se usa el de ccprrp049 (mismo REPORT r_email). - *.sch: columnas DECIMAL/MONEY con precision > 32 (vistas como ventas_facturas, analisiscotizaciones, rotacioniventario) bajadas a 32 con la misma escala; Genero daba -6634 y no compilaban veprrp058/059/060. - mbsERP.4pw: agregado vefmrp060.4fd a FORMULARIOS_VE (-1110). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
1.8 KiB
Plaintext
43 lines
1.8 KiB
Plaintext
{
|
|
================================================================
|
|
FUNCION : ENVIACORREO
|
|
OBJETIVO : Reutilizacion de codigos para ejecuar Store
|
|
Procedures relacionado al envio de correo
|
|
PROGRAMADOR : ING. JUAN SOTO
|
|
FECHA : 28 DE ABRIL 2011
|
|
================================================================
|
|
}
|
|
|
|
FUNCTION envia_correo(emailTO,emailCC,emailBody,emailSubject,Procedimiento)
|
|
DEFINE Procedimiento VARCHAR(500),
|
|
emailTO,emailCC,emailSubject,emailBody VARCHAR(2000)
|
|
DEFINE correo_prueba, aviso STRING
|
|
|
|
# Ambiente de pruebas: si existe MBS_CORREO_PRUEBA, todo correo va solo a esa
|
|
# direccion (en produccion no se define y no cambia nada)
|
|
LET correo_prueba = fgl_getenv("MBS_CORREO_PRUEBA")
|
|
IF correo_prueba IS NOT NULL THEN
|
|
LET aviso = "<p>PRUEBA - destinatarios originales: "
|
|
IF emailTO IS NOT NULL THEN LET aviso = aviso, emailTO CLIPPED END IF
|
|
IF emailCC IS NOT NULL THEN LET aviso = aviso, " / copia: ", emailCC CLIPPED END IF
|
|
LET aviso = aviso, "</p>"
|
|
IF emailBody IS NOT NULL THEN LET aviso = aviso, emailBody CLIPPED END IF
|
|
LET emailBody = aviso
|
|
LET emailSubject = "[PRUEBA MBS] ", emailSubject CLIPPED
|
|
LET emailTO = correo_prueba
|
|
LET emailCC = NULL
|
|
END IF
|
|
|
|
# Si el correo falla (permiso de Database Mail, perfil, red...) solo se avisa:
|
|
# no debe detener el programa ni perder la transaccion que se esta grabando
|
|
TRY
|
|
PREPARE smt FROM procedimiento
|
|
EXECUTE smt USING emailTo IN,emailCC IN,emailSubject IN,emailBody IN
|
|
CATCH
|
|
DISPLAY "envia_correo fallo: ", SQLCA.SQLCODE, " ", SQLERRMESSAGE
|
|
CALL fgl_winmessage("AVISO",
|
|
"LA INFORMACION SE GRABO, PERO NO SE PUDO ENVIAR EL CORREO DE AVISO",
|
|
"exclamation")
|
|
END TRY
|
|
END FUNCTION
|