2017-08-23 1 views
0

Je n'arrive pas à trouver comment mettre à jour correctement un champ personnalisé en utilisant l'API client Zendesk java, et le problème est que je ne suis pas sûr de la syntaxe de la commande.API client Zendesk java mise à jour CustomFieldValue

Je suis capable de mettre à jour les commentaires en utilisant les zendesk.createComment(), les balises, et d'autres champs, mais je n'arrive pas à comprendre la syntaxe des champs personnalisés.

comment Exemple:

{ 
Zendesk zd = new Zendesk.Builder(url) 
        .setUsername(uid) 
        .setPassword(pwd) 
        .build(); 
} 


private static void setComment(Zendesk zd, long inTicket, String inComment) 
     { 
     Comment cmt = new Comment(); 
     cmt.setBody(inComment); 
     cmt.setPublic(pubPriv); 
     zd.createComment(inTicket, cmt); 

     } 

Répondre

0

La mise à jour de champ personnalisé peut être accompli en utilisant l'exemple suivant

/* 
When a customer ftps a file to TCS we need to update the ZenDesk ticket 
with the file information. The file name is stored in the AddAttachment List 
custom field. This is a destructive field so it must be read first and the 
new data concatenated after a line feed then re-written. 
1) Read current field data 
2) concatenate line feed and new data onto old data 
3) Write new field data 
*/ 
long fieldNum = 25326406; 
showDebug("In addAttachmentList"); 
Ticket ticket = zd.getTicket(inTicket); 
List<CustomFieldValue> cfvl = ticket.getCustomFields(); 
for (int i = 0; i < cfvl.size(); i++) 
    { 
    if (cfvl.get(i).getId() == fieldNum) 
     { 
     showDebug("Original value: " + cfvl.get(i).getValue()); 
     cfvl.get(i).setValue(cfvl.get(i).getValue() + "\n" + inComment); 
     cfvl.get(i).setId(fieldNum); 
     ticket.setCustomFields(cfvl); 
     showDebug("After Update value: " + cfvl.get(i).getValue()); 
     zd.updateTicket(ticket); 
     } 
    } 
}