2016-06-10 5 views
2

Ich versuche, die Smartsheet-API 2.0 in Java zu verwenden, um ein vorhandenes Blatt in ein neues Blatt in einem vorhandenen Ordner zu kopieren. Ich möchte die Daten, Anhänge und Diskussionen einbeziehen. Ich habe versucht, den include-Parameter auf SheetCopyInclusion.ALL sowie auf SheetCopyInclusion.DATA, SheetCopyInclusion.ATTACHMENTS und SheetCopyInclusion.DISCUSSIONS zu setzen. Das Blatt kopiert, aber nie die Daten.Kopieren Sie ein Blatt in Smartsheet mit Java API

Hier ist mein Code:

Token token = new Token(); 
token.setAccessToken(accessToken); 

Smartsheet smartsheet = new SmartsheetBuilder().setAccessToken(token.getAccessToken()).build(); 

ContainerDestination myCopiedSheet = new ContainerDestination.AddContainerDestinationBuilder() 
    .setDestinationType(DestinationType.FOLDER) 
    .setDestinationId(backupFolderId) 
    .setNewName("My Copied Sheet") 
    .build(); 

smartsheet.sheetResources().copySheet(sourceSheetId, myCopiedSheet, EnumSet.of(SheetCopyInclusion.ALL)); 

Jede mögliche Unterstützung auf, warum die Daten nicht kopiert werden würde geschätzt. Vielen Dank.

Antwort

1

T R ist ein Problem mit der SheetCopyInclusion-Enumeration. Statt "return super.toString();" Die toString-Funktion in SheetCopyInclusion sollte den Einschluss String zurückgeben. Wenn Sie das SDK von der Quelle erstellen, können Sie toString in SheetCopyInclusion.java ändern:

@Override 
public String toString() { 
    return inclusion; 
    //return super.toString(); 
} 

Ich werde eine Pull-Anforderung an den Java-SDK mit einem Fix einreichen.

+0

Dank @timwells! Ich benutze die Smartsheet-JAR-Datei und möchte die Quelle lieber nicht ändern, wenn ich nicht muss. Gibt es noch eine andere Option? Ich denke darüber nach, eine Java-Befehlszeile auszuführen, die den curl-Befehl ausführt, um ein Blatt zu kopieren. –