Principe
Les JavaDelegates décrits dans cette section exécutent une recherche de composants d’une catégorie donnée et permettent d’exploiter les résultats trouvés. Les mêmes fonctionnalités de recherche que les services exposés par FlowerDocs Core peuvent être utilisées (tri, agrégations, pagination…).
Construction d’une requête
Afin d’exécuter une recherche, il est nécessaire de fournir une requête : un objet
SearchRequest. Cette requête doit être instanciée à l’aide d’une activité de type Script.
<bpmn:scriptTask id="Task_0mpwuyr" name="Build request" scriptFormat="javascript" camunda:resultVariable="request">
<bpmn:script>
var criterion = CriterionBuilder.field(FlowerFields.CLASS_ID).value("Bill").build();
var filterClause = FilterClauseBuilder.init().criterion(criterion).build();
SearchRequestBuilder.init().filter(filterClause).max(500).build()
</bpmn:script>
</bpmn:scriptTask>
Exécution d’une recherche
Nom: Composant / Rechercher
Expression: ${searchComponentDelegate}
Ce JavaDelegate exécute la requête construite. L’objet
SearchResponse obtenu est stocké dans une variable du processus.
Clé | Nom | Description |
---|---|---|
category |
Catégorie de composants | Catégorie des composants à rechercher |
request |
Recherche | Expression permettant d’obtenir l’objet SearchRequest à exécuter |
output |
Variable de sortie | Nom de la variable de sortie dans laquelle est stocké la réponse |
<bpmn:serviceTask id="Activity_19wjj5v" name="Search" camunda:modelerTemplate="com.flower.docs.bpmn.SearchComponent" camunda:delegateExpression="${searchComponentDelegate}">
<bpmn:extensionElements>
<camunda:field name="category">
<camunda:expression>DOCUMENT</camunda:expression>
</camunda:field>
<camunda:field name="request">
<camunda:expression>${request}</camunda:expression>
</camunda:field>
<camunda:field name="outputVariable">
<camunda:expression>response</camunda:expression>
</camunda:field>
</bpmn:extensionElements>
</bpmn:serviceTask>
Export des résultats de recherche
Nom: Composant / Exporter une recherche
Expression: ${exportSearchResultsDelegate}
Ce JavaDelegate exécute la requête construite et exporte les résultats obtenus dans un fichier au format CSV. L’identifiant de ce fichier temporaire est stocké dans une variable du processus.
Clé | Nom | Description |
---|---|---|
category |
Catégorie de composants | Catégorie des composants à rechercher |
search |
Recherche | Expression permettant d’obtenir l’objet SearchRequest à exécuter |
locale |
Locale | Locale utilisée pour transformer les résultats |
output |
Variable de sortie | Nom de la variable de sortie dans laquelle est stocké l’identifiant du fichier généré |
<bpmn:serviceTask id="Activity_19wjj5v" name="Export" camunda:delegateExpression="${exportSearchResultsDelegate}">
<bpmn:extensionElements>
<camunda:field name="category">
<camunda:expression>DOCUMENT</camunda:expression>
</camunda:field>
<camunda:field name="search">
<camunda:expression>${request}</camunda:expression>
</camunda:field>
<camunda:field name="locale">
<camunda:expression>fr</camunda:expression>
</camunda:field>
<camunda:field name="outputVariable">
<camunda:expression>response</camunda:expression>
</camunda:field>
</bpmn:extensionElements>
</bpmn:serviceTask>