2017-01-04 5 views
0

タブを開き、アップロードしたファイルの外部URLをタブに挿入し、ユーザーが[ファイル]ボタンをクリックしてクリックしたときと同じようにそのURLに移動するアクションを作成しようとしていますファイルのタイトルの1つであり、ファイルの内容でタブを開きました。UploadFileWithIDSelectorオブジェクトから外部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, ""); 

これにより、次のエラーが発生します。

Object reference not set to an instance of an object.

DACは外部リンクを直接取得できませんか?これを修正して外部リンクを取得する方法はありますか?アップロードされたファイルの外部リンクを取得する別の方法がありますか?

おかげ

+0

あなたの問題に関連していない可能性がありますが、現在の<>ではなくRequired <>を使用しているかのように、BQLクエリに引数を渡しています。それがうまくいくならば、あなたの現在のレコードが同じものであることを意味します。さらに、インベントリ項目を取得するための最初のクエリには、Required <>がインベントリCDを要求し、完全なオブジェクトは期待しないため、欠陥があります。 'InventoryItem item = Base.Item.Current;'と 'InventoryItemExt itemext = PXCache .GetExtension (item);あなたはあなたが望むものを得ることができます。 '、または引数のない最後の行だけを使用します。 – Philippe

答えて

4

あなたはこの構文を使用してファイルにリダイレクトすることができるはずです:あなたがメッセージを必要としないので、

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

がリダイレクトするために、この構文を使用して考えてみましょう:

throw new PXRedirectToFileException(fileInfo.fileID, true); 
+0

これはうまくいった!ありがとうございました。あなたがタイプではなく値を参照しているので、.fileIDは.FileIDでなければなりません。私は新しいPXRedirectToUrlException(PXRedirectToFileException.BuildUrl(fileInfo.FileID)、PXBaseRedirectException.WindowMode.NewWindow、 "");をスローして終了しました。顧客が新しいウィンドウでそれを望んでいたからです。あなたの助けをもう一度おねがいします! –

関連する問題