Lancement workflow via Javascript

cancel
Showing results for 
Search instead for 
Did you mean: 
sid
Member II

Lancement workflow via Javascript

Bonjour,

J'aimerais lancer mon Workflow avancé lors de l'insertion d'un document dans un répertoire.
J'ai donc créé dans ce but une règle dans ce répertoire qui exécute un javascipt :

var workflow = actions.create("start-workflow");
workflow.parameters.workflowName = "jbpm$wfbxValidation:Validation";
workflow.execute(document);

Cependant j'ai une erreur de type : Mandatory aspect has not been provided.
Merci de m'apporte quelques précisions.

Cordialement
8 Replies
skank
Member II

Re: Lancement workflow via Javascript

L'erreur veut tout simplement dire qu'il manque des données pour démarrer le workflow, plus précisément des aspects.

Vous n'avez pas copié tout l'exemple du wiki (http://wiki.alfresco.com/wiki/WorkflowAdministration#Step_7:_Integration_with_Rules_.28Optional.29) :

var workflow = actions.create("start-workflow");
workflow.parameters.workflowName = "jbpm$wf:review";
workflow.parameters["bpm:workflowDescription"] = document.name;
workflow.parameters["bpm:assignee"] = person;
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 7);
workflow.parameters["bpm:workflowDueDate"] = futureDate;
workflow.execute(document);

La variable "workflow" est du type "bpm:startTask", et si on regarde le code source (bpmModel.xml) :

<type name="bpm:startTask">
            <parent>bpm:workflowTask</parent>

            <properties>

                <!–  Description for the workflow as a whole –>
                <property name="bpm:workflowDescription">
                    <type>d:text</type>
                    <constraints>
                        <constraint ref="bpm:allowedDescriptionLength"/>
                    </constraints>
                </property>

                <!–  Due date for the workflow as a whole –>
                <property name="bpm:workflowDueDate">
                    <type>d:date</type>
                </property>

                <!–  Priority for the workflow as a whole –>
                <property name="bpm:workflowPriority">
                    <type>d:int</type>
                    <default>2</default>
                    <constraints>
                        <constraint ref="bpm:allowedPriority" />
                    </constraints>
                </property>

            </properties>

            <overrides>

                <property name="bpm:packageActionGroup">
                    <default>add_package_item_actions</default>
                </property>

                <property name="bpm:packageItemActionGroup">
                    <default>start_package_item_actions</default>
                </property>

            </overrides>

        </type>

On voit bien que ce type a besoin des propriétés "workflowDescription", "workflowDueDate" et "workflowPriority" (celle-ci n'est pas obligatoire, car si vous ne la renseignez pas, elle prend la valeur pas défaut).

Je vous conseille de lire le wiki et de regarder le code source avant de poser une question, car je ne pense pas que beaucoup de forumers prendront la peine de répondre aux questions de débutants (je parle en connaissance de cause, beaucoup de mes posts sont restés sans réponse…). Et on peut les comprendre, ça doit être lassant de répondre aux mêmes questions.

Bonne chance dans vos recherches.

Cordialement.
sid
Member II

Re: Lancement workflow via Javascript

Merci pour la réponse.

Il est vrai que je suis débutant …
Cependant le fait est que j'ai bien compris qu'il fallait remplir les propriétés du type "bpm:startTask" mais j'aimerais en fait que lors de l'insertion du document ce ne soit pas la prochaine tache qui soit lancé mais que les informations soient demandées à l'initiateur directement ( juste éviter de passer par le lancement manuel du workflow).

Cdt
skank
Member II

Re: Lancement workflow via Javascript

Je ne saisis pas bien… Vous voulez que l'initiateur choisissent ces infos dans un menu, c'est bien cela ? Pour ça, il faut configurer web-client-config-custom.xml
sid
Member II

Re: Lancement workflow via Javascript

J'ai bien modifier le contenu du fichier web-client-config-custom.xml, je voudrais que le worklow commence directement à l'insertion du document demandant ces informations au l'initiateur, sans passer par une attribution de tache ou par un lancement manuel
skank
Member II

Re: Lancement workflow via Javascript

Donc vous voulez que l'attribution de tâches soit automatique, avec tous les paramètres passés automatiquement ?
sid
Member II

Re: Lancement workflow via Javascript

Non justement pas, je veux qu'elles soient demandé à l'initiateur, mais directement lors de l'insertion du document.
skank
Member II

Re: Lancement workflow via Javascript

Ah d'accord. Pour ça, il va falloir modifier le dialog d'insertion de contenu (add-content dans web-client-config-dialogs). Je ne peux malheureusement pas vous aider beaucoup plus là-dessus, je ne suis qu'un débutant moi aussi…  :roll:

Si vous n'êtes pas déjà aller voir, il y a un bon tutorial sur le développement de dialog étendus : http://koossery-tech.developpez.com/tutoriels/java/ecm/alfresco-jbpm/exemple-implementation-workflow...
rguinot
Customer

Re: Lancement workflow via Javascript

cette page : http://wiki.alfresco.com/wiki/Workflow_REST_API et les rules peuvent peut être vous aider