Supprimer une Pièce Jointe

1
0
-1

Bonjour,

Je voudrais savoir comment supprimer une pièce jointe de Bonita?

Merci

Bonita version: 5.9.1 Java Version: 7 Operating System: Windows 7

1 answer

1
+1
-1
This one is the BEST answer!

Bonjour, à priori, avec la méthode deleteDocuments de la runtimeAPI Cldt, RP

Comments

Submitted by othmane791 on Fri, 07/04/2014 - 16:43

je l'ai déjà essayé mais ça n'a pas fonctionné

Submitted by renaud.pichot on Mon, 07/07/2014 - 15:50

Pouvez vous préciser ? Avez vous des messages d'erreur ?

QueryRuntimeAPI api = apiAccessor.getQueryRuntimeAPI()
RuntimeAPI runapi = apiAccessor.getRuntimeAPI()

DocumentSearchBuilder dsb = new DocumentSearchBuilder();
dsb.criterion(DocumentIndex.PROCESS_INSTANCE_UUID).equalsTo(processInstance.getUUID().toString());
DocumentResult res = api.searchDocuments(dsb, 0, 1000);

List doclist = res.getDocuments();
for (i=0;i<doclist.size();i++)
{
runapi.deleteDocuments(true,(res.getDocuments().get(0)).getUUID())
}

référence

Submitted by othmane791 on Mon, 07/07/2014 - 19:35

justement, j'ai trouvé cette solution mais ce n'est pas indiqué comment l'utiliser: comme un script Groovy ou carrément créer un connecteur java ? sinn pour ton code , je dois ajouter les imports n'est ce pas ?

Merci

Submitted by othmane791 on Mon, 07/07/2014 - 23:16

je l'ai testé comme un connecteur Script Groovy mais ça n'a pas fonctionné, d'après le code il doit logiquement chercher tous les docs attach de l'instance et les supprimer, mais je les (les fichiers joint) retrouve toujours dans leurs emplacement "C:\BOS-5.9.1\studio\workspace\bonita\client\tenants\default\tmp\web\common"

import org.ow2.bonita.search.DocumentSearchBuilder;
import org.ow2.bonita.facade.runtime.AttachmentInstance;
import org.ow2.bonita.search.DocumentResult;
import org.ow2.bonita.search.DocumentSearchBuilder;
import org.ow2.bonita.search.index.DocumentIndex;
import org.ow2.bonita.facade.QueryRuntimeAPI;
import org.ow2.bonita.facade.RuntimeAPI;
import org.ow2.bonita.services.Document;
import org.ow2.bonita.facade.runtime.impl.DocumentImpl;


QueryRuntimeAPI api = apiAccessor.getQueryRuntimeAPI()
RuntimeAPI runapi = apiAccessor.getRuntimeAPI()
 
DocumentSearchBuilder dsb = new DocumentSearchBuilder();
dsb.criterion(DocumentIndex.PROCESS_INSTANCE_UUID).equalsTo(processInstance.getUUID().toString());
DocumentResult res = api.searchDocuments(dsb, 0, 1000);
 
List doclist = res.getDocuments();
for (i=0;i<doclist.size();i++)
{
runapi.deleteDocuments(true,(res.getDocuments().get(0)).getUUID())
}
Submitted by aCordier on Tue, 07/08/2014 - 10:22

...

Submitted by renaud.pichot on Wed, 08/20/2014 - 16:01

Bonjour, en effet l'appel à l'API retire les documents de l'instance du processus: il ne détruit pas physiquement les fichiers temporaires créés lors de l'upload du fichier (il s'agit d'une configuration server à mettre en place), il les retire de la base de données interne utilisée par le moteur bonita.

Notifications