Développer avec RBS Change : Utilisation des workflows

  • 55303.1

    29/02/2012 17:55


    Mathias
    Rang : Expert
    Bonjour,

    je suis entrain de mettre en place un workflow personnalisé pour des documents générés côté FO par les utilisateurs.

    Je m'inspire largement de ce qui a été fait pour le document "modules_comment/comment".

    Après l'avoir ajouté à mon document, je n'étais plus à meme de le mettre à jour. Je l'ai supprimé complètement depuis le BO, et depuis impossible de le reprendre en compte... clear-all / compile all n'ont aucun effets...

    Je l'ai déclaré ainsi dans mon doc qui utilise les corrections :
     
    <statuses default="DRAFT" />
    
     <workflow start-task="HISTOIRE_VALIDATION">
        <parameter name="AFFECT_TASKS_TO_SUPER_ADMIN">true</parameter>
        <parameter name="NOTIFICATION_ACTIVATION">modules_septetunelieues/sendactivatetoauthor</parameter>
        <parameter name="NOTIFICATION_ERROR">modules_septetunelieues/sendcanceltoauthor</parameter>
      </workflow>


    et dans le fichier init.xml :
    <binding fileName="modules/notification/persistentdocument/import/notification_binding.xml" />
    
    <systemfolder module="workflow" relatedmodule="mymodule">
            <workflow starttaskid="HISTOIRE_VALIDATION" label="Validation des histoires">
            
                <places>
                    <startplace id="pStart" label="Histoire soumise par l'utilisateur" description="Histoire soumise"/>
                    <place id="p0" label="Contenu en attente" description="Contenu en attente" />
                    <place id="p1" label="Contenu accepté" description="Contenu accepté pour publication" />
                    <place id="p2" label="Contenu refusé" description="Contenu réfusé à la publication" />
    
                    <endplace id="pEnd" label="Validation terminée" description="Fin du workflow."/>
                </places>
                
                <transitions>
                    <transition id="t-1" label="Notification de l'admin" description="L'admin est alerté de la soumission de l'histoire."
                        taskid="HISTOIRE_VALIDATION"
                        trigger="AUTO"
                        creationnotification-refid="n0create"
                        actionname="septetunelieues_NotifyAdminWorkflowaction" />
                        
                    <transition id="t0" label="Histoire en attente de validation" description="Le contenu est validé ou refusé."
                        taskid="HISTOIRE_VALIDATION" 
                        trigger="AUTO" roleid="Validator"
                        actionname="septetunelieues_ValidateHistoireWorkflowaction" 
                        terminationnotification-refid="n0termination"
                        cancellationnotification-refid="n0cancellation" />              
                    
                    <transition id="t1" label="Activation de l'histoire" description="Le contenu a été validé, l'histoire peut être activée"
                        taskid="HISTOIRE_VALIDATION" 
                        trigger="AUTO"
                        actionname="septetunelieues_ActivateHistoireWorkflowaction" />
                    
                    <transition id="t2" label="Annulation de la publication d'une histoire" description="Le contenu a été refusé, l'histoire repasse en état brouillon."
                        taskid="HISTOIRE_VALIDATION" 
                        trigger="AUTO"
                        actionname="septetunelieues_CancelHistoireWorkflowaction" /> 
                </transitions>
                
                <arcs>
                    <arc direction="IN" place-refid="pStart" transition-refid="t-1" arctype="SEQ" />
                    
                    <arc direction="OUT" transition-refid="t-1" place-refid="p0" arctype="SEQ" />
                    <arc direction="IN" place-refid="p0" transition-refid="t0" arctype="SEQ" />
                    
                    <arc direction="OUT" transition-refid="t0"  place-refid="p2" arctype="EX_OR_SP" precondition="ACCEPTED" />
                    <arc direction="OUT" transition-refid="t0"  place-refid="p3" arctype="EX_OR_SP" precondition="REFUSED"  />
                    
                    <arc direction="IN" place-refid="p2" transition-refid="t1" arctype="SEQ" />
                    <arc direction="IN" place-refid="p3" transition-refid="t2" arctype="SEQ" />
                    
                    <arc direction="OUT" transition-refid="t1"  place-refid="pEnd" arctype="SEQ" />
                    <arc direction="OUT" transition-refid="t2"  place-refid="pEnd" arctype="SEQ" />
                </arcs>
            </workflow>     
        </systemfolder>
    


    Donc je me demande comment faire pour mettre à jour un workflow et est-ce que vous voyez un potentiel pb dans mon code ?

    merci !

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 55303.2 en réponse à 55303.1 écrit par Mathias

    04/03/2012 22:23


    Mathias
    Rang : Expert
    j'ai compris la mécanique... toujours utiliser la commande "import-data" et ça met à jour le fichier situé dans le dossier setup :).

    Par contre, j'a abandonné l'idée de mettre en place le workflow pour la 1ère release, étant donné que j'arrive à mes fins sans.

    Mon seul soucis, c'est que je n'arrive pas à intercepter l'évènement de la validation du document faite par le valideur en BO, afin d'envoyer une notification à l'utilisateur FO de la validation de son document.

    J'ai bien essayé d'implémenter comme indiqué ici : Réagir au changement de statut de publication

    les functions publicationStatusChanged (sur activate) ou onCorrectionActivated mais je n'ai pas réussi...

    c'est bien vers ces fonctions que je dois me tourner ?

    Édité par Jean-Michel 05/03/2012 11:03


    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 55303.3 en réponse à 55303.2 écrit par Mathias

    05/03/2012 13:27


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    C'est effectivement dans ces méthodes que vous pouvez agir, par contre sans connaître le code qui se place dedans, impossible de vous aider vraiment :(

    Par contre si vous souhaitez réagir à la publication, attention l'exemple se base les causes et non sur le statut en cours du document.

    Attention la méthode activate() n'aboutit pas forcément à un statut PUBLICATED, mais à un statut ACTIVE et si isPublishable() retourne true le statut du document devient PUBLICATED.

    Mais là encore ma réponse n'est pas idéale ignorant le contexte.

    En attendant je me note de revoir cette partie de la doc

    Édité par Jean-Michel 06/03/2012 11:16


    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 55303.4 en réponse à 55303.3 écrit par Jean-Michel

    05/03/2012 13:37


    Mathias
    Rang : Expert
    merci pour ces précisions ;)

    je vais continuer dans cette voie et je t'embêterai si j'ai des problèmes :)


    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1471 membres
Aucun membre connecté