无法从UploadFileWithIDSelector对象获取外部URL

时间:2017-01-04 20:09:43

标签: acumatica

我正在尝试创建一个打开选项卡的操作,将上传文件的外部URL插入选项卡,然后导航到该URL,就像用户单击“文件”按钮然后单击其中一个文件标题一样打开了包含文件内容的标签。

以下是我用来获取外部链接的代码。请注意,我将FileID存储为InventoryItem表中的扩展列,用于此示例:

PXView item = Base.Views["Item"];

InventoryItem item = PXSelect<InventoryItem, Where<InventoryItem.inventoryCD,
   Equal<Current<InventoryItem.inventoryCD>>>>
   .Select(Base, Base.Views["Item"].Cache.Current);

InventoryItemExt itemext = item.Cache.GetExtension<InventoryItemExt>(item);
UploadFileWithIDSelector fileInfo = PXSelect<UploadFileWithIDSelector,
   Where<UploadFileWithIDSelector.fileID, 
   Equal<Current<PX.Objects.IN.InventoryItemExt.usrDefaultSpecID>>>
   .Select(Base, itemext.UsrDefaultSpecID);

然后我尝试执行以下代码以使用ExternalLink打开页面:

throw new PXRedirectToUrlException(fileInfo.ExternalLink, ""); 

这会导致以下错误:

  

对象引用未设置为对象的实例。

DAC无法直接获取外部链接吗?有没有办法解决这个问题,以便检索外部链接?是否有另一种(可能更简单的)方法来检索上传文件的外部链接?

由于

1 个答案:

答案 0 :(得分:4)

您应该能够使用以下语法重定向到该文件:

throw new PXRedirectToUrlException(PXRedirectToFileException.BuildUrl(fileInfo.fileID), "");

考虑使用此语法进行重定向,因为您不需要消息:

throw new PXRedirectToFileException(fileInfo.fileID, true);