Мне нужно загрузить вложение из заказа на поставку, используя SSIS/C#.
Использование объекта SRGBTBREL
WHERE RELTYPE = 'ATTA'
AND CATID_A = 'BO'
AND LOGSYS_A = ''
Я получил список заказов на покупку с прикрепленным ключом (INSTID_B
)
Но меня немного смущает, как использовать функцию SO_DOCUMENT_READ_API1
.
[...]
SO_DOCUMENT_READ_API1Request requestAttachment = new SO_DOCUMENT_READ_API1Request();
requestAttachment.DOCUMENT_ID = myAttachmentKey
Я не знаком с функцией SAP на C#.
Как мне загрузить файл вложения (или, возможно, получить ссылку на расположение файла) в SAP?
заранее спасибо с уважением, Ксавье
Наконец нашел решение: [...]
SO_DOCUMENT_READ_API1Response responseAttachment = new SO_DOCUMENT_READ_API1Response();
responseAttachment = RFCClient.SO_DOCUMENT_READ_API1(requestAttachment);
SOLIX[] BinaryLines = responseAttachment.CONTENTS_HEX;
ulong file_size;
ulong.TryParse(responseAttachment.DOCUMENT_DATA.DOC_SIZE, out file_size);
String FolderPath = DestinationPath;
String path = FolderPath + "\\" + responseAttachment.DOCUMENT_DATA.OBJ_DESCR + "." + responseAttachment.DOCUMENT_DATA.OBJ_TYPE;
FileStream fis = new FileStream(path, FileMode.Create);
foreach (SOLIX Item in BinaryLines)
{
Byte[] bytes = Item.LINE;
fis.Write(bytes, 0, bytes.Length);
int rest = 255 - bytes.Length;
if (rest < 1) continue;
for (int i = 1; i<= rest; i++)
{
if ((ulong) fis.Length >= file_size)
break;
fis.WriteByte(0);
}
}
fis.Close();