Comment paramétrer le cycle de vie - Gestion de la visibilité des Smarts Fields

Prérequis

Afin de pouvoir suivre ce guide, il faut préalablement avoir vu comment gérer les rendus d’un Smart Element.

Il faut aussi avoir créé le cycle de vie d’un Smart Element.

Comment procéder ?

  • Créer les masques

Créer le masque permettant de gérer la visibilité des Smart Fields pour les cuisiniers

npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Cuisinier --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
    <ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_CUISINIER" label="Plat_E2_Mask_Cuisinier" structure="PLAT">
        <ui:visibility-list>
            <ui:visibility field="consommable_title" value="S"/>
            <ui:visibility field="consommable_description" value="S"/>
            <ui:visibility field="consommable_price_incl_vat" value="R"/>
            <ui:visibility field="plat_type" value="R"/>
            <ui:visibility field="plat_validity_date" value="R"/>
        </ui:visibility-list>
    </ui:mask>
</smart:config>

Créer le masque permettant de gérer la visibilité des Smart Fields pour la direction

npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Directeur --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
    <ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_DIRECTEUR" label="Plat_E2_Mask_Directeur" structure="PLAT">
        <ui:visibility-list>
            <ui:visibility field="consommable_title" value="R"/>
            <ui:visibility field="consommable_description" value="R"/>
            <ui:visibility field="consommable_price_incl_vat" value="W"/>
            <ui:visibility field="plat_type" value="R"/>
            <ui:visibility field="plat_validity_date" value="W"/>
        </ui:visibility-list>
    </ui:mask>
</smart:config>
  • Référencer ces masques dans un contrôle de vue qu’il faut tout d’abord créer :
npx @anakeen/anakeen-cli createSetting --type ViewControl --name Plat_E2 --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">

    <ui:view-control xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="CVDOC_PLAT_E2" label="Plat_E2" structure="PLAT">
        <!--region View control configuration ======-->
        <ui:view-list>
            <ui:view name="EDIT_PLAT_E2_DIRECTEUR" label="Modifier" display-mode="edition" order="10" menu-displayed="false">
                <ui:mask ref="PLAT_E2_MASK_DIRECTEUR"/>
            </ui:view>
            <ui:view name="EDIT_PLAT_E2_CUISINIER" label="Modifier" display-mode="edition" order="20" menu-displayed="false">
                <ui:mask ref="PLAT_E2_MASK_CUISINIER"/>
            </ui:view>
        </ui:view-list>
        <!--endregion View control configuration ===-->
    </ui:view-control>

    <!--region Cvdoc views : Accesses ==========-->
    <smart:access-configuration name="CVDOC_PLAT_E2" label="Profil CVDOC" profil-type="CVDOC"
                                access-structure="PLAT" policy="SET">
        <smart:element-access access="EDIT_PLAT_E2_DIRECTEUR" account="role_direction"/>
        <smart:element-access access="EDIT_PLAT_E2_CUISINIER" account="role_cuisinier"/>
    </smart:access-configuration>
    <!-- endregion Cvdoc views : Accesses ==========-->
</smart:config>
  • Référencer et lier le contrôle de vue à l’étape voulue dans le fichier de configufation du Smart Element associé à la Smart Structure du workflow src/vendor/<vendorName>/<moduleName>/SmartStructures/Plat/PlatWorkflows/WdocPlatWorkflow/510-WdocPlatWorkflowSettings.xml





 
 
 




    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <!--Timer and Mail templates workflow references-->
    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <workflow:config xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0" name="WDOC_PLAT" structure="PLAT" model="WFAM_PLAT">
        <workflow:steps>
            <workflow:step ref="plat_e2">
                <workflow:view-control ref="CVDOC_PLAT_E2"/>
            </workflow:step>
        </workflow:steps>
        <workflow:transitions/>
    </workflow:config>

Résultat / Vérification

Créons un nouveau Plat puis avançons dans le workflow jusqu'à l'état A la carte afin de vérifier si les masques sont bien appliqués.

http://localhost:8080/api/v2/smart-elements/PLAT/views/!defaultCreation.html
  • Masque de la direction (en édition)

Edit Director

  • Masque des cuisiniers (en consultation)

View Cook

Astuce

Pour pouvoir créer un smart element dynamiquement (pendant une transition par exemple) vous pouvez utiliser la fonction createDocument().

Et ensuite ?

Comment paramétrer le cycle de vie - Envoi de mail