X++:
static void eglaItemAttachment(Args _args)
{
DocuRef docuRef,docuRefCur;
InventTable inventTable,inventTableCur;
DocuValue docuValue,docuValueCur;
str filePath;
int record;
;
try
{
while select inventTableCur
where inventTableCur.dataAreaId == '116' && inventTableCur.ItemId like "610*"
{
while select docuRefCur
where docuRefCur.RefRecId == inventTableCur.RecId
&& docuRefCur.RefCompanyId == inventTableCur.dataAreaId
&& docuRefCur.RefTableId == inventTableCur.TableId
{
select firstOnly docuValueCur
where docuValueCur.RecId == docuRefCur.ValueRecId;
filePath = docuRefCur.completeFilename();
changeCompany('101')
{
select firstOnly inventTable
where inventTable.ItemId == inventTableCur.ItemId
&& inventTable.dataAreaId == '101';
if (inventTable.RecId)
{
ttsBegin;
docuRef.clear();
buf2Buf(docuRefCur , docuRef );
docuRef.RefRecId = inventTable.RecId;
docuRef.RefTableId = inventTable.TableId;
docuRef.RefCompanyId = inventTable.dataAreaId;
docuRef.ActualCompanyId = inventTable.dataAreaId;
docuRef.insert();
record++;
if (docuRef.RecId && docuValueCur.RecId)
{
docuValue.clear();
buf2Buf(docuValueCur , docuValue);
docuValue.insert();
if(docuValue.RecId)
{
ttsBegin;
docuRef.selectForUpdate(true);
docuRef.ValueRecId = docuValue.RecId;
docuRef.update();
docuValue.selectForUpdate(true);
docuValue = DocuValue::writeDocuValue(docuref,filePath);
docuValue.update();
ttsCommit;
}
}
ttsCommit;
}
}
}
}
info(strFmt("Total attachments = %1",record));
}
catch (Exception::Error)
{
warning("An attachement could not be added to this item - %1", inventTableCur.ItemId);
}
}