Dans l’espace de travail AEM Forms, les gestionnaires peuvent désormais accéder à toutes les tâches assignées aux personnes au sein de leur hiérarchie (rapports directs ou indirects) et y effectuer diverses opérations. Les tâches sont accessibles par l’intermédiaire de l’onglet Tâches de l’espace de travail AEM Forms. Les actions prises en charge pour les tâches de rapports directs sont :

Transférer

Transfère une tâche à partir d’un rapport direct vers n’importe quel utilisateur.

Demander

Demande une tâche d’un rapport direct.

Demander et ouvrir

Demander une tâche d’un rapport direct et l’ouvrir automatiquement dans la liste des tâches du gestionnaire.

Rejeter

Rejette une tâche transférée vers un rapport direct par un autre utilisateur. Cette option est disponible pour les tâches transférées vers un rapport direct par d’autres utilisateurs.

AEM Forms restreint l’accès d’un utilisateur aux seules tâches pour lesquelles cet utilisateur dispose d’un contrôle d’accès (ACL). Ceci permet de garantir que l’utilisateur ne puisse extraire que les tâches pour lesquelles il dispose de droits d’accès. En utilisant des services Web et des implémentations tiers pour définir la hiérarchie, une organisation peut personnaliser la définition des rapports directs et gestionnaires selon ses besoins.

  1. Créez un DSC. Pour plus d’informations, voir la section Developing Components for AEM Forms (Développement des composants d’AEM Forms) dans le guide Programmation avec AEM Forms.

  2. Dans le DSC, définissez une nouvelle SPI pour la gestion de hiérarchie afin de définir les rapports directs et la hiérarchie des utilisateurs d’AEM Forms. Voici un exemple de fragment de code Java™ :

    public class MyHierarchyMgmtService 
    { 
         /*
        Input : Principal Oid for a livecycle user
        Output : Returns true when the user is either the service invoker OR his direct/indirect report.
        */
        boolean isInHierarchy(String principalOid) {
    
        }
         
        /* 
        Input : Principal Oid for a livecycle user
        Output : List of principal Oids for direct reports of the livecycle user
        A user may get direct reports only for himself OR his direct/indirect reports.
        So the API is functionally equivalent to - 
        isInHierarchy(principalOid) ? <return direct reports> : <return empty list>
        */
        List<String> getDirectReports(String principalOid) {
    
        }
     
        /* 
        Returns whether a livecycle user has direct reports or not.
        It's functionally equivalent to -
        getDirectReports(principalOid).size()>0
        */
        boolean isManager(String principalOid) {
    
        }  
    }
  3. Créez un fichier component.xml. Veuillez vous assurer que spec-id est identique à l’extrait de code ci-dessous. Voici un exemple de fragment de code que vous pouvez réutiliser.

    <component xmlns="http://adobe.com/idp/dsc/component/document"> 
        <component-id>com.adobe.sample.SampleDSC</component-id> 
        <version>1.1</version> 
        <supports-export>false</supports-export> 
          <descriptor-class>com.adobe.idp.dsc.component.impl.DefaultPOJODescriptorImpl</descriptor-class> 
          <services> 
            <service name="MyHierarchyMgmtService" title="My hierarchy management service" orchestrateable="false"> 
            <auto-deploy service-id="MyHierarchyMgmtService" category-id="Sample DSC" major-version="1" minor-version="0" /> 
            <description>Service for resolving hierarchy management.</description> 
             <specifications> 
             <specification spec-id="com.adobe.idp.taskmanager.dsc.enterprise.HierarchyManagementProvider"/> 
             </specifications> 
            <specification-version>1.0</specification-version> 
            <implementation-class>com.adobe.sample.hierarchymanagement.MyHierarchyMgmtService</implementation-class> 
            <request-processing-strategy>single_instance</request-processing-strategy> 
            <supported-connectors>default</supported-connectors> 
            <operation-config> 
                <operation-name>*</operation-name> 
                <transaction-type>Container</transaction-type> 
                <transaction-propagation>supports</transaction-propagation> 
                <!--transaction-timeout>3000</transaction-timeout--> 
            </operation-config> 
            <operations> 
                <operation anonymous-access="true" name="isInHierarchy" method="isInHierarchy"> 
                    <input-parameter name="principalOid" type="java.lang.String" /> 
                    <output-parameter name="result" type="java.lang.Boolean"/> 
                </operation> 
                <operation anonymous-access="true" name="getDirectReports" method="getDirectReports"> 
                    <input-parameter name="principalOid" type="java.lang.String" /> 
                    <output-parameter name="result" type="java.util.List"/> 
                </operation> 
                <operation anonymous-access="true" name="isManager" method="isManager"> 
                    <input-parameter name="principalOid" type="java.lang.String" /> 
                    <output-parameter name="result" type="java.lang.Boolean"/> 
                </operation> 
                </operations> 
                </service> 
          </services>
    </component>
  4. Déployez DSC via Workbench. Redémarrez le service ProcessManagementTeamTasksService.

  5. Il se peut que vous ayez à actualiser votre navigateur ou à vous déconnecter/connecter de nouveau avec l’utilisateur.

L’écran suivant illustre l’accès aux tâches de rapports directs et les actions disponibles.

Accès aux tâches de rapports directs et actions à effectuer sur les tâches

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne