我正在創建一個應用程序以將掃描文檔附加到SAP文檔,但是我在該過程中遇到了一些問題。我正在使用SAP BO 9 PL8,並發現下面的問題:使用SAP Business One中的DI API附加文件時出錯9
當我嘗試在更新方法中使用現有附件(使用attachments2對象)添加新附件行時,DI嘗試檢查舊行,並且該文件可能不存在於原始源路徑中。所以,更新方法報告錯誤。我使用以下代碼:
Attachments2 oAtt = oCompany.GetBusinessObject(BoObjectTypes.oAttachments2);
if (oAtt.GetByKey(doc.AttachmentEntry))
{
oAtt.Lines.Add();
oAtt.Lines.FileName = oAttNew.Lines.FileName;
oAtt.Lines.FileExtension = oAttNew.Lines.FileExtension;
oAtt.Lines.SourcePath = oAttNew.Lines.SourcePath;
oAtt.Lines.Override = BoYesNoEnum.tYES;
if (oAtt.Update() != 0)
throw new Exception(oCompany.GetLastErrorDescription());
}
SAP中有一些文檔有附件選項卡,但通過DI無法訪問此功能。例如物料主數據(oItems)或庫存轉移(oStockTransfer)。它們具有與Documents對象類似的AttachmentEntry字段,但對象沒有用於添加附件的屬性,所以我必須爲這些文檔創建一個活動。
Documents doc = oCompany.GetBusinessObject(oType);
doc.GetByKey(int.Parse(docEntry));
doc.AttachmentEntry = oAtt.AbsoluteEntry;
StockTransfer oStock = .oCompany.GetBusinessObject(BoObjectTypes.oStockTransfer);
// oStock.AttachmentEntry = oAtt.AbsoluteEntry FAIL
當我修改LandedCost對象中的AttachmentEntry屬性時,當我嘗試更新它時,該對象失敗。如果對象已經有附件(手動添加),則在新行中添加新附件。第一種情況的錯誤是:找不到匹配的記錄(ODBC -2028)。當我強制一個catch塊時,我得到這個其他信息:「1320000126 - 不正確的更新標題字段」。我使用下面的代碼:
LandedCostsService service = oCompany.GetCompanyService().GetBusinessService(ServiceTypes.LandedCostsService);
LandedCostParams oParam = service.GetDataInterface(LandedCostsServiceDataInterfaces.lcsLandedCostParams);
LandedCost oLandedCost = service.GetDataInterface(LandedCostsServiceDataInterfaces.lcsLandedCost);
oParam.LandedCostNumber = int.Parse(docEntry);
oLandedCost = service.GetLandedCost(oParam);
if (oAtt.GetByKey(oLandedCost.AttachmentEntry)) {
// Code similar to first code block I posted
}
else
{
if (oAttNew.Add() != 0)
throw new Exception(oCompany.GetLastErrorDescription());
oAtt.GetByKey(int.Parse(oCompany.GetNewObjectKey()));
oLandedCost.AttachmentEntry = oAtt.AbsoluteEntry;
try
{
service.UpdateLandedCost(oLandedCost);
}
catch (Exception ex)
{
throw new Exception(ex.Message + oCompany.GetLastErrorDescription());
}
}
我需要知道我在做什麼錯,或者如果我需要聯繫SAP來通知這些DI問題。我希望你能幫助我。提前致謝。
問候, 佩德羅