Attachment field

Renseigner un champ pièce jointe

Il est plus délicat d’ajouter un champ pièce jointe en SDK dans un écran personnalisé que dans un process, voici comment faire.

Exemple sur un Wizard

Il s’agit tout d’abord de créer un élément Wizard contenant un champ de type MultipleFileField. Il faut simplement ajouter un field de type “pièces jointes” dans l’écran (form, sheet, wizard, …) :

<field name="fldFiles" label="LG_ExportDmWizard_PAGE1_fldFiles" ctrl="com.axemble.vdp.ui.core.document.fields.MultipleFileField" mandatory="false" mode="read"/>

Il faut ensuite créer la classe provider qui étend BaseWizardProvider et ajouter dans la méthode activate le code suivant :

IAbstractField fldFiles = document.getAbstractFieldByName("fldFiles");

File fileZip = new File("D:/public/monFichier.zip");
TempUploadFile tempUploadFile = new TempUploadFile(fileZip.getName(), fileZip.getParentFile());
InputStream is = new FileInputStream(fileZip);
OutputStream os = tempUploadFile.getOutputStream();
StreamUtils.Copy(is, os);
StreamUtils.CloseSafe(is);
StreamUtils.CloseSafe(os);

Collection<TempUploadFile> cTempUploadFile = new ArrayList<TempUploadFile>();
cTempUploadFile.add(tempUploadFile);
fldFiles.setValue(cTempUploadFile);

Source : https://wiki.myvdoc.net/xwiki/bin/view/Dev+Floor/HowToFillaFieldInAnAttachmentWizard