2017-01-04 2 views
0

탭을 열고, 업로드 한 파일의 외부 URL을 탭에 삽입하고, 사용자가 파일 버튼을 클릭 한 다음 해당 URL을 탐색하는 것과 같은 작업을 만들려고합니다. 파일의 제목 중 하나는 파일의 내용이있는 탭을 열었습니다.UploadFileWithIDSelector 객체에서 외부 URL을 가져올 수 없습니다.

다음은 외부 링크를 얻는 데 사용한 코드입니다.

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, ""); 

나는 FileID에이 예를 들어 InventoryItem의 테이블에서 확장 컬럼으로 저장되어 있습니다 그 결과 다음 오류가 발생합니다.

Object reference not set to an instance of an object.

DAC에서 외부 링크를 직접 가져올 수 없습니까? 이것을 수정하여 외부 링크를 검색 할 수있는 방법이 있습니까? 업로드 된 파일의 외부 링크를 검색하는 다른 방법이 있습니까?

감사

+0

:

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

당신이 메시지를 필요로하지 않기 때문에 리디렉션이 구문을 사용하는 것이 좋습니다 아마도 문제와 관련이 없지만 현재 <>가 아닌 필수 <>를 사용하는 것처럼 BQL 쿼리에 인수를 전달합니다. 그게 효과가 있다면, 현재 기록이 당신이 지정하는 것과 동일하다는 것을 의미합니다. 또한 인벤토리 항목을 가져 오는 첫 번째 쿼리에는 필수 <>가 전체 개체가 아니라 인벤토리 CD를 기대할 때 결함이 있습니다. 'InventoryItem item = Base.Item.Current;'및'InventoryItemExt itemext = PXCache .GetExtension (item); 당신이 원하는 것을 얻을 수 있습니다. '또는 인수가없는 마지막 행에서만. – Philippe

답변

4

이 구문을 파일로 리디렉션 할 수 있어야한다 :

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

이것이 효과가 있습니다! 고맙습니다. 형식이 아닌 값을 참조하기 때문에 .fileID는 .FileID 여야합니다. 나는 새로운 PXRedirectToUrlException (PXRedirectToFileException.BuildUrl (fileInfo.FileID), PXBaseRedirectException.WindowMode.NewWindow, ""); 던지기를 사용하여 끝냈다; 고객이 새 창에서이를 원했기 때문입니다. 도와 주셔서 다시 한번 감사드립니다! –

관련 문제