Buen día a toda la comunidad!
Estoy avanzando en el proyecto de la creación de un portal donde los clientes de la empresa puedan ingresar y generar automáticamente sus pedidos (se convertirán en cotizaciónes para ser autorizadas por el dpto. de ventas).
Ya tengo un gran avance, pero me atoré en el apartado de enviar notificaciones internas (SAP) y mediante correo. Tengo las siguientes funciones:
private void EnviarCorreo(string Cotizacion, string Cliente)
{
try
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("no-reply@..", "Cotizaciones SAP");
mail.To.Add(new MailAddress("l.v@.."));
SmtpClient client = new SmtpClient();
client.Port = #puerto;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = "..";
mail.Subject = "Se agregó una cotización por medio del portal";
mail.IsBodyHtml = true;
mail.Body = "Se agregó una nueva cotización<br/><br/>Número: <strong>" + Cotizacion + "</strong><br/>Cliente: <strong>" + Cliente + "</strong><br><br>LV";
client.Send(mail);
}
catch (Exception e)
{
Console.WriteLine("No se pudo crear el email\n\n" + e.ToString());
}
}
private void MandarMensaje(string sKey, string Cliente)
{
//DATOS DEL ENVIO DE MENSAJE
SAPbobsCOM.Message oMessage = null;
SAPbobsCOM.MessageDataColumns pMessageDataColumns = null;
SAPbobsCOM.MessageDataColumn pMessageDataColumn = null;
SAPbobsCOM.MessageDataLines oLines = null;
SAPbobsCOM.MessageDataLine oLine = null;
SAPbobsCOM.RecipientCollection oRecipientCollection = null;
SAPbobsCOM.CompanyService oCmpSrv;
SAPbobsCOM.MessagesService oMessageService;
try
{
oCmpSrv = oCompany.GetCompanyService();
//get msg service
oMessageService = (SAPbobsCOM.MessagesService)oCmpSrv.GetBusinessService(SAPbobsCOM.ServiceTypes.MessagesService);
oMessage = ((SAPbobsCOM.Message)(oMessageService.GetDataInterface(SAPbobsCOM.MessagesServiceDataInterfaces.msdiMessage)));
//Asunto y texto de la notificación interna de SAP
oMessage.Subject = "Se agregó una nueva cotización | " + sKey;
oMessage.Text = "Se agregó la cotización número: " + sKey + ", del Cliente: " + Cliente + "\n\nPara ver los detalles oprime la flecha amarrilla debajo..";
oRecipientCollection = oMessage.RecipientCollection;
oRecipientCollection.Add();
oRecipientCollection.Item(0).SendInternal = SAPbobsCOM.BoYesNoEnum.tYES;
oRecipientCollection.Item(0).UserCode = "user";
pMessageDataColumns = oMessage.MessageDataColumns;
pMessageDataColumn = pMessageDataColumns.Add();
//Nombre de columna en el panel inferior de la notificación interna de SAP
pMessageDataColumn.ColumnName = "Detalles";
pMessageDataColumn.Link = SAPbobsCOM.BoYesNoEnum.tYES;
//get lines
oLines = pMessageDataColumn.MessageDataLines;
//add new line
oLine = oLines.Add();
//Texto de la línea con el enlace al documento
oLine.Value = "Enlace a Cotización: " + sKey;
//Número de objeto cotización = 23
oLine.Object = "23";
//set the bo code
oLine.ObjectKey = sKey;
//Enviar mensaje
oMessageService.SendMessage(oMessage);
}
catch (Exception ex)
{
MsgBox("Error al enviar mensaje " + ex.Message, this.Page, this);
}
}
Hasta aquí todo bien, tanto la función de enviar notificación interna como enviar el correo funcionan… pero con puro texto, no he logrado encontrar la forma de adjuntar el documento recién creado en formato PDF como SAP lo permite nativamente al querer enviar una notificación desde la interfaz.
Espero que me puedan orientar con ésto, ya que de conseguirlo estaría a casi nada de terminar el proyecto.
Como siempre agradezco de antemano su apoyo y cualquier ejemplo o documento que sea de ayuda.