Adjuntar PDF automáticamente al crear documento

Estimados,
Buen día, requiero adjuntar un documento automáticamente al enviar un correo en SAP BO sin la intervención de un usuario. Ya estoy integrando las OC y enviándolas por mail, solamente me falta el adjunto, alguna idea de como puedo hacerlo, desde ya gracias.
estoy trabajando con SAP SQL 9.3 PL 06

Como estas integrando las OC? te refieres a alguna aplicación externa? el envio por correo en que momento lo haces?

1 me gusta

Hola @scolarte, al enviar un documento desde SAP BO, el mismo sistema te pregunta si deseas adjuntar el documento adjunto, al indicarle que si, adjunta al correo el PDF del Layout que tenga el documento por default.

Ten en cuenta que debes tener configurada la ruta para los anexos en parametriaciones del sistema, y el usuario con el que estas enviando el correo debe tener acceso a la carpeta configurada.

Creo deberias ser un poco mas especifico en tu pregunta para tratar de darte una solucion mas clara.

Saludos.

Sin duda eso es lo que hace actualmente el sistema. Solo que el al parecer lo quiere en automático. Hay varias formas de lograrlo , inclusive si buscan alguien en algún momento publico un código en SQL para hacerlo.

1 me gusta

Hola Willy,

Te comento que la Orden de compra se integra automáticamente vía SDK, ahora bien, cuando la integro estoy enviando el mail automáticamente pero necesito que también se adjunte el PDF sin tener que apretar un botón para que se cree el PDF.

Estimado Jose,
Entiendo lo que me dices y se que SAP lo hace de esa manera, de hecho lo he hecho también pero el cliente no quiere que el usuario tenga que entrar a la OC y cree el adjunto sino que así como estoy creando la OC automáticamente y enviando el correo se adjunte también el PDF.
Desde ya agradezco sus aportes.

Que tal @scolarte, no me percate de que indicabas sin intervención de usuario, y veo en tu comentario anterior que la creas a traves de SDK.

Tal vez no te sirva mucho mi aporte, pero a lo mejor te das una idea de como atacar tu problema, te comento, en mi empresa tenemos un servicio para el timbrado de facturas, no manejamos el nativo de SAP, y el servicio una vez que ya timbra la factura, actualiza los datos de timbrado en SAP y luego manda llamar el rpt de crystal de X ruta, el cual lo llenamos enviandole el DocEntry de la factura ya creada en SAP y lo adjuntamos al correo que se envia desde el mismo servicio en automatico. De igual manera en SAP manejamos 2 campos de tipo enlace, donde guardamos el XML y el PDF de la factura.

Saludos.

si lo tienes en SDK pues es mas facil, ya teniendo el xml y asegurado que se timbro, puedes llamar inclusive tu formato de impresion en SAP y convertirlo a PDF, adjuntarlo y poder enviar juntos XML y PDF.

Todo esto a nivel codigo, nativamente sera dificil lograrlo

1 me gusta

Hola @scolarte mira que lo que dice @JoSeVc es la respuesta a tu problema, yo tengo también un addon desarrollado, que al hacer una orden de compra, la envía automáticamente al proveedor con el PDF de la orden de compra adjunto, pero hay algo que no entendí, o sea ya lograste exportar el PDF y ahora quieres adjuntarlo, o todavía no has sido capaz de exportar el pdf.

Se integra, te refieres que desde una aplicación externa creas la OC, correcto?
si es asi y si tu layout de OC es crystal, puedes crear el PDF desde linea de comando, y este archivo adjuntarlo a tu correo.
Por si acaso revisa este tema que hace el envió de correos con el adjunto directamente desde un JOB de SQL:
https://consultoria-sap.github.io/business-one/sql/enviar-facturas-sql.html

1 me gusta

@scolarte yo lo que hago es usar las librerias de crystal reports.

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

y posteriormente las uso:

public static ReportDocument cryRpt;
		public static ParameterField pf;
		public static ParameterFields pfs;
		public static ParameterDiscreteValue pdv;
cryRpt = new ReportDocument();
			    pf = new ParameterField();
			    pfs = new ParameterFields();
			    pdv = new ParameterDiscreteValue();
			    pf.Name = "@Dockey";
			    pdv.Value = DocEntry;
			    pf.CurrentValues.Add(pdv);
			    pfs.Add(pf);
                cryRpt.Load(rutas.rutaPlantilla);
			    cryRpt.SetParameterValue("Dockey@", DocEntry);
			    cryRpt.SetDatabaseLogon(configSB1.U_BPA_SQLUSR,//  ConfigurationManager.AppSettings.Get("DbUserName"),
									    configSB1.U_BPA_SQLPWD,// ConfigurationManager.AppSettings.Get("DbPassword"),
									    configSB1.U_BPA_SERVER, //ConfigurationManager.AppSettings.Get("Server"),
									    configSB1.U_BPA_DB); //ConfigurationManager.AppSettings.Get("CompanyDB"));
			
				ExportOptions CrExportOptions;
				DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
				PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = rutaSAP.AttachPath + $@"\nombre_archivo.pdf";
CrExportOptions = cryRpt.ExportOptions;
				{
                    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
                    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
                    CrExportOptions.FormatOptions = CrFormatTypeOptions;
                }
                cryRpt.Export();
                cryRpt.Close();

Por favor, abre otro tema en el foro para no confundir. Mantengamos el orden en el foro. De todas formas se te va atender.

saludos

1 me gusta

Gracias es verdad, pido disculpas.

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.