Attaching documents to Purchase Request
Hi people!
Just these days I involved in web application manteniance as web consultant and hit some “rocky-code” to send multiple attached documents, searching in CN I find sections of code but no fit with my code style, no counts error on run…
With patience and research found a suitable solution and then presented:
// objSAP is Company interface connected
objSAP.StartTransaction();
Documents req = (Documents)objSAP.GetBusinessObject(BoObjectTypes.oPurchaseRequest);
req.DocType = BoDocumentTypes.dDocument_Items;
req... // set more properties and lines
string errMsj;
int errCode;
Attachments2 att = (Attachments2)objSAP.GetBusinessObject(BoObjectTypes.oAttachments2);
i = 0;
foreach (AdjuntoEntity a in adjs) // adjs is of type List<> with some properties listed below
{
string filePath = ConfigurationManager.AppSettings["adjuntos"] + a.NombreInterno;
FileInfo fi = new FileInfo(filePath);
if (!fi.Exists)
continue;
i++;
if (i > 1)
att.Lines.Add();
att.Lines.FileName = fi.Name.Replace(fi.Extension, "");
att.Lines.FileExtension = fi.Extension.Substring(1);
att.Lines.SourcePath = fi.DirectoryName;
att.Lines.Override = BoYesNoEnum.tYES;
}
errCode = att.Add();
int y1 = int.Parse(objSAP.GetNewObjectKey());
if (errCode != 0)
{
objSAP.GetLastError(out errCode, out errMsj);
throw new SapException(errMsj) { ErrorCode = errCode };
}
if (!att.GetByKey(y1))
{
throw new SapException("error");
}
req.AttachmentEntry = y1;
errCode = req.Add();
if (errCode != 0)
{
objSAP.GetLastError(out errCode, out errMsj);
throw new SapException(errMsj) { ErrorCode = errCode };
}
objSAP.EndTransaction(BoWfTransOpt.wf_Commit);
this code can be applied on any other SAP document.
Cheers
Be the first to leave a comment
You must be Logged on to comment or reply to a post.