Recherche

Rechercher des composants depuis un processus.

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>