我正在尝试创建一个打开选项卡的操作,将上传文件的外部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无法直接获取外部链接吗?有没有办法解决这个问题,以便检索外部链接?是否有另一种(可能更简单的)方法来检索上传文件的外部链接?
由于
答案 0 :(得分:4)
您应该能够使用以下语法重定向到该文件:
throw new PXRedirectToUrlException(PXRedirectToFileException.BuildUrl(fileInfo.fileID), "");
考虑使用此语法进行重定向,因为您不需要消息:
throw new PXRedirectToFileException(fileInfo.fileID, true);