2017-02-16 6 views
0

스마트 시트 API의 attachemnt에 문제가 있습니다.스마트 시트 API 첨부 파일

그것은 파일 경로 형식이 라인

smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\TEST\M-TST-12346\M-TST-12346-TV.pdf", "application/pdf") 

어떤 도움이 좋지 않을까 지원되지 않습니다 것을 말해 유지

! 아마도

Public Sub GetSheetsInWorkspace(workspaceID As Int64) 
     Dim workspace As Workspace 
     workspace = smartSheet.WorkspaceResources.GetWorkspace(workspaceID, Nothing, Nothing) 
     Dim folder As Folder 
     folder = smartSheet.FolderResources.GetFolder(5398922303694724, Nothing) 
     Dim sheets As List(Of Sheet) 
     sheets = folder.Sheets 
     For Each sheet In sheets 
      If sheet.Name = "ALAN S. INPUT" Then 
       Dim id 
       id = sheet.Id 
       smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\TEST\M-TST-12346\M-TST-12346-TV.pdf", "application/pdf") 
      End If 
     Next 
    End Sub 

답변

1

AttachFile의 두 번째 매개 변수는 행 번호가 아니라 rowId입니다. 귀하의 '찾을 수 없음'오류가 행이 발견되지 않았기 때문이라고 생각합니다. 첫 번째 행의 ID를 얻으려면 SheetResources.GetSheet()를 호출하여 Row 객체 컬렉션을 가져와야합니다. BTW

은 슬래시 하지는 그것 ROWID를 생각하기 시작

try 코드이

mySheet = ss.SheetResources.GetSheet(sheetId, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing) 
Dim rowId As Long 
rowId = mySheet.Rows.First.Id 
ss.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, "C:\tmp\test.pdf", "application/pdf") 
+0

그건 정확히 내가 알아 낸 것입니다. 시트에서 시트에서 rowId를 가져올 수 있다고 생각했지만 그 값은 유지되지 않고 행 값이 아닙니다. 대신 행 정보를 보유한 SheetResources에서 시트를 그라데이션 처리해야했습니다. 도움 주셔서 감사합니다. –

1

당신이 SDK의 일부로 제공 년대 integration test code에 무슨 일을하는지 비교하는 것이 도움이 될 것?

Attachment attachment = smartsheet.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, path, null); 

... 경로의 값이 다음과 같이 정의된다 : 즉, I가 링크 한 파일의 AttachFileAndUrlToRow 방법은 행에 첨부 파일을 추가하기 위해이 라인을 포함

    : 당신이 게시 한 코드에 그 테스트 코드를 비교 는

    string path = "../../../IntegrationTestSDK/TestFile.txt";

    , 나는 몇 가지 차이점을 발견

  • 코드에서 파일 경로에 (단일) 백 슬래시 (\)를 사용하는 반면 SDK 테스트 코드는 슬래시 (/)를 사용합니다.
  • 드라이브 매핑 (N : \)을 사용하는 경로를 지정하는 반면 SDK 테스트 코드는 마지막 매개 변수 (application/pdf)에 대한 값으로 전달하는 상대 경로
  • 을 지정하지만 SDK 테스트 코드는 마지막 매개 변수에 null을 지정합니다.

아마도 문제 해결의 첫 번째 단계, 탈출 path-- 즉 파일에서 백 슬래시의 각으로, 각각의 발생에 백 슬래시를 추가

smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\\TEST\\M-TST-12346\\M-TST-12346-TV.pdf", "application/pdf") 

을 그 해결되지 않는 경우 문제는, 아마도 (SDK를 테스트 코드가 수행하는 작업과 일치) 슬래시 각 백 슬래시를 변경해보십시오 :

smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:/TEST/M-TST-12346/M-TST-12346-TV.pdf", "application/pdf") 

또한 (문제에 대한 가능성과 무관하지만) - - rowID가1 값을 전달하는 것 같습니다. rowId은 GUID 여야합니다 (예 : 4583173393803140과 같은 것).

+0

임처럼 VB 문자열에서 탈출해야합니다. 경로를 올바른 경로로 변경하면 경로가 마음에 들지만 "Not Found"오류가 발생합니다. 경로가 아니라 ... "찾을 수 없습니다".나는 이것이 rowID와 관련이 있다고 생각한다. 내가 잡을 수는 있지만 시트에 0 행이 있다는 것을 알려주고 있습니다. 좀 더 파헤 치려고. 귀하의 의견을 보내 주셔서 감사합니다! 나중에 업데이트 할 것입니다 –

+0

지금 알 수 있습니다. Row.ID를 얻으려면 SheetResources를 열어야했다. 고마워요 !! –

관련 문제