Utilisation du référentiel AEM Forms | Adobe Experience Manager\nLes exemples et les échantillons de ce document sont réservés à l’environnement AEM Forms sur JEE.\nÀ propos du service Repository\nLe service Repository fournit du stockage de ressources et des services de gestion à AEM Forms. Lorsque des développeurs créent une application AEM Forms, ils peuvent déployer les ressources dans le référentiel plutôt que dans le système de fichiers. Les actifs peuvent être constitués de formulaires XML, de formulaires PDF (y compris de formulaires Acrobat), de fragments de formulaire, d’images, de profils, de stratégies, de fichiers SWF, DDX et WSDL, de schémas XML et de données de test.\nPrenons l’exemple de l’application Forms suivante nommée Applications/FormsApplication :\nNotez qu’un fichier nommé Loan.xdp se trouve dans le dossier Forms. Pour accéder à cette conception de formulaire, vous devez spécifier le chemin d’accès complet (y compris la version) : Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.\nPour plus d’informations sur la création d’une application Forms à l’aide de Workbench, voir Aide de Workbench.\nLe chemin d’accès à une ressource située dans le référentiel AEM Forms est le suivant :\nLes valeurs suivantes présentent quelques exemples de valeurs URI :\nVous pouvez parcourir le référentiel AEM Forms à l’aide d’un navigateur web. Pour parcourir le référentiel, saisissez l’URL suivante dans un navigateur web https://[server name]:[server port]/repository. Vous pouvez vérifier les résultats de démarrage rapide associés à la section Utilisation du référentiel AEM Forms à l’aide d’un navigateur web. Par exemple, si vous ajoutez du contenu au référentiel AEM Forms, vous pouvez afficher le contenu dans un navigateur web. (Voir Démarrage rapide (mode SOAP) : écrire une ressource en utilisant l’API Java.)\nL’API Repository fournit un certain nombre d’opérations que vous pouvez utiliser pour stocker et récupérer des informations du référentiel. Par exemple, vous pouvez obtenir une liste des ressources ou récupérer des ressources spécifiques stockées dans le référentiel lorsqu’une ressource est nécessaire dans le cadre du traitement d’une application.\nL’API Repository ne peut pas être utilisée pour interagir avec Content Services (obsolète). Pour interagir avec Content Services (obsolète), utilisez l’API Document Management.\nÀ l’aide de l’API Repository Service, vous pouvez accomplir les tâches suivantes :\nCréation de dossiers. Voir Création de dossiers.\nÉcrivez des ressources et leurs propriétés. Voir Écriture de ressources.\nRépertoriez les ressources d’une collection donnée ou associées à d’autres ressources. Voir Liste des ressources.\nLisez les ressources et leurs propriétés. Voir Lire les ressources.\nMettez à jour les ressources et leurs propriétés. Voir Mise à jour des ressources.\nRecherchez des ressources, y compris leur historique, les ressources associées et les propriétés. Voir Recherche de ressources.\nSpécifiez les relations entre les ressources. Voir Création de relations entre les ressources.\nGérez le contrôle d’accès aux ressources, notamment le verrouillage et le déverrouillage des ressources, ainsi que la lecture et l’écriture des listes de contrôle d’accès (ACL). Voir Verrouillage de ressources.\nSupprimez les ressources et leurs propriétés. Voir Suppression de ressources.\nAvec l’API Repository, vous ne pouvez pas gérer le contrôle d’accès aux ressources, rechercher des ressources ou définir des relations de ressources à l’aide d’un référentiel ECM.\nLorsqu’un PDF chiffré est écrit dans le référentiel, la fonction d’extraction de relation automatisée ne peut pas être utilisée. Dans le cas contraire, un PDF chiffré peut être stocké dans le référentiel et récupéré ultérieurement. Le récupérateur peut choisir de déchiffrer le PDF une fois qu’il a été récupéré dans le référentiel.\nPour plus d’informations sur le service Repository, voir Références des services pour AEM Forms.\nLes dossiers (collections de ressources) sont utilisés pour stocker des objets (fichiers ou ressources) dans des regroupements organisés. Les dossiers peuvent contenir des ressources et d’autres dossiers, également appelés sous-dossiers. Les ressources ne peuvent être stockées que dans un seul dossier à la fois.\nLes fichiers héritent des listes de contrôle d’accès (ACL) des dossiers et les sous-dossiers héritent des ACL de leurs dossiers parents. Par conséquent, les dossiers parents doivent exister avant de pouvoir créer des dossiers enfants. L’IDE permet d’interagir uniquement dossier par dossier, et non fichier par fichier. Vous ne pouvez pas modifier les dossiers et il n’est pas nécessaire de le faire : un dossier ne contient pas de données lui-même. Il s’agit plutôt uniquement d’un conteneur pour les ressources qui contiennent des données. La liste de contrôle d’accès par défaut est une autorisation de niveau système, ce qui signifie que les utilisateurs doivent disposer d’autorisations de niveau système (lecture, écriture, traversée, gestion des listes de contrôle d’accès) jusqu’à ce qu’une personne leur donne des autorisations pour un dossier particulier. Les listes de contrôle d’accès ne fonctionnent que dans l’IDE.\nPour créer un dossier, procédez comme suit :\nIncluez les fichiers de projet.\nCréez le client de service.\nCréez le dossier.\nRédigez le dossier dans le référentiel.\nIncluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services web, incluez les fichiers proxy.\nCréer le client de service\nAvant de pouvoir créer par programmation une collection de ressources, vous devez établir une connexion et fournir des informations d’identification. Pour ce faire, créez un client de service.\nAppelez la méthode du service Repository pour créer la collection de ressources et renseigner les informations d’identification dans la collection de ressources, y compris son UUID, son nom de dossier et sa description.\nÉcrire le dossier dans le référentiel\nAppelez la méthode du service Repository pour écrire la collection de ressources, en spécifiant l’URI du dossier cible.\nCréer des dossiers à l’aide de l’API Java\nCréer des dossiers à l’aide de l’API Web Service\nInclusion des fichiers de bibliothèque Java d’AEM Forms\nCréez un dossier à l’aide de l’API Repository Service (Java) :\nInclure les fichiers du projet\nIncluez des fichiers de projet dans le chemin de classe du projet Java.\nCréation du client de service\nCréez un objet ResourceRepositoryClient en utilisant son constructeur et en transmettant un objet ServiceClientFactory contenant des propriétés de connexion.\nPour créer une collection de ressources, vous devez d’abord créer un objet com.adobe.repository.infomodel.bean.RepositoryInfomodelFactoryBean.\nAppelez la méthode newResourceCollection de l’objet repositoryInfomodelFactoryBean et transmettez les paramètres suivants :\nIdentifiant UUID com.adobe.repository.infomodel.Id à affecter à la ressource.\nIdentifiant UUID com.adobe.repository.infomodel.Lid à affecter à la ressource.\nUn java.lang.String contenant le nom de la collection de ressources. Par exemple, FormsFolder.\nLa méthode renvoie un objet com.adobe.repository.infomodel.bean.ResourceCollection représentant le nouveau dossier.\nDéfinissez la description du dossier à l’aide de la méthode setDescription et transmettez le paramètre suivant :\nUn String qui décrit la collection de ressources. Dans cet exemple, "test Folder" est utilisé ..\nÉcriture du dossier dans le référentiel\nAppelez la méthode writeResource de l’objet ResourceRepositoryClient et transmettez l’URI du dossier et l’objet ResourceCollection. Par exemple, l’URI du dossier peut être la valeur suivante : /Applications/FormsApplication/1.0/.\nLa méthode renvoie une instance du nouvel objet com.adobe.repository.infomodel.bean.Resource créé. Par exemple, vous pouvez récupérer la valeur d’identifiant de la nouvelle ressource en appelant la méthode getId de l’objet com.adobe.repository.infomodel.bean.Resource.\nDémarrage rapide (mode SOAP) : créer un dossier à l’aide de l’API Java.\nCréez un dossier à l’aide de l’API Repository Service (Web Service) :\nCréez un assemblage client Microsoft .NET qui utilise le fichier WSDL du référentiel à l’aide de base64.\nRéférencez l’assemblage client Microsoft .NET.\nÀ l’aide de l’assemblage client .NET Microsoft, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials à l’aide d’un objet System.Net.NetworkCredential contenant le nom d’utilisateur et le mot de passe.\nCréez le dossier à l’aide du constructeur par défaut pour la classe ResourceCollection et transmettez les paramètres suivants :\nObjet Id, créé en appelant le constructeur par défaut pour la classe Id et affecté au champ id de l’objet Resource.\nObjet Lid, créé en appelant le constructeur par défaut pour la classe Lid et affecté au champ lid de l’objet Resource.\nChaîne contenant le nom de la collection de ressources et attribuée au champ name de l’objet Resource. Le nom utilisé dans cet exemple est "testfolder".\nChaîne contenant la description de la collection de ressources et attribuée au champe description de l’objet Resource. La description utilisée dans cet exemple est "test folder".\nAppelez la méthode writeResource de l’objet RepositoryServiceService et transmettez les paramètres suivants :\nChemin d’accès à l’emplacement où le dossier doit être créé.\nObjet ResourceCollection représentant le dossier.\nTransmettez null pour les deux autres paramètres.\nAppeler AEM Forms en utilisant le codage Base64\nÉcriture de ressources\nVous pouvez créer des ressources à un emplacement donné dans le référentiel. La taille de fichier naturelle est soumise aux restrictions de la base de données et au délai d’expiration de la session. Pour la configuration par défaut, les fichiers sont limités à 25 Mo. Pour augmenter ou réduire la taille maximale du fichier, vous devez modifier la configuration de la base de données.\nL’écriture de ressources équivaut à stocker des données dans le référentiel. Une fois que vous avez écrit une ressource dans le référentiel, elle devient accessible à tous les clients de l’écosystème de référentiel. Lorsque vous écrivez des ressources, telles que des schémas XML, des fichiers XDP et des fichiers XSD, dans le référentiel, le contenu est analysé en fonction du type MIME. Si le type MIME est pris en charge, l’analyseur détermine s’il existe une relation implicite avec d’autres contenus. Par exemple, si une feuille de style en cascade (CSS) comporte une URL relative qui fait référence à une page CSS commune, il est prévu que vous envoyiez également la page CSS commune dans le référentiel. La relation entre les deux ressources est stockée en tant que relation en attente pendant une période non ajustable de 30 jours. Lorsque vous envoyez la page CSS commune au référentiel au cours de la période de 30 jours, la relation est formée.\nLorsque vous créez une ressource, la liste de contrôle d’accès (ACL) est héritée du dossier parent. Le dossier racine dispose d’autorisations au niveau du système jusqu’à la création d’une ressource ou d’un dossier initial, auquel cas les autorisations ACL par défaut sont accordées à la ressource ou au dossier.\nVous pouvez écrire des ressources par programmation à l’aide de l’API Java ou Web Service Repository Service.\nPour écrire une ressource, procédez comme suit :\nCréez un client de service Repository.\nSpécifiez l’URI de la ressource à lire.\nLisez la ressource.\nAvant de pouvoir lire une ressource par programmation, vous devez établir une connexion et fournir des informations d’identification. Pour ce faire, créez un client de service.\nSpécifier l’URI du dossier cible pour la ressource\nCréez une chaîne contenant l’URI de la ressource à lire. La syntaxe comprend des barres obliques, comme dans cet exemple : « /chemin/dossier ».\nCréer la ressource\nAppelez la méthode du service Repository pour créer la ressource et renseignez la ressource avec des informations d’identification, y compris son UUID, son nom et sa description.\nDéfinir le contenu de la ressource\nAppelez la méthode du service Repository pour créer le contenu de la ressource et stocker ce contenu dans la ressource.\nÉcrire la ressource dans le dossier cible\nAppelez la méthode du service Repository pour écrire la ressource, en spécifiant l’URI du dossier cible.\nÉcrire des ressources à l’aide de l’API Java\nÉcrire des ressources à l’aide de l’API Web Service\nÉcrivez une ressource à l’aide de l’API Repository Service (Java) :\nIncluez les fichiers JAR client dans le chemin de classe de votre projet Java.\nSpécifiez l’URI du dossier cible pour la ressource.\nSpécifiez l’URI du dossier cible pour la ressource. Dans ce cas, comme la ressource appelée testResource est stockée dans le dossier nommé testFolder, l’URI du dossier est "/testFolder". L’URI est stocké en tant qu’objet java.lang.String.\nPour créer une ressource, vous devez d’abord créer un objet com.adobe.repository.infomodel.bean.RepositoryInfomodelFactoryBean.\nAppelez la méthode newResource de l’objet RepositoryInfomodelFactoryBean, qui crée un objet com.adobe.repository.infomodel.bean.Resource. Dans cet exemple, les paramètres suivants sont fournis :\nObjet com.adobe.repository.infomodel.Id, créé en appelant le constructeur par défaut pour la classe Id.\nObjet com.adobe.repository.infomodel.Lid, créé en appelant le constructeur par défaut pour la classe Lid.\njava.lang.String contenant le nom de fichier de la ressource.\nPour spécifier la description de la ressource, appelez la méthode setDescription de l’objet Resource et transmettez une chaîne contenant la description. Dans cet exemple, la description est "test resource".\nDéfinition du contenu de la ressource\nPour créer du contenu pour la ressource, appelez la méthode newResourceContent de l’objet RepositoryInfomodelFactoryBean, qui renvoie un objet com.adobe.repository.infomodel.bean.ResourceContent. Ajoutez du contenu à l’objet ResourceContent. Pour ce faire, dans cet exemple, les tâches suivantes doivent être réalisées :\nAppel de la méthode setDataDocument de l’objet ResourceContent et transmission de l’objet com.adobe.idp.Document\nAppel de la méthode setSize de l’objet ResourceContent et transmission de la taille en octets de l’objet Document\nAjoutez le contenu à la ressource en appelant la méthode setContent de l’objet Resource et en transmettant l’objet ResourceContent. Pour plus d’informations, voir Référence de l’API pour AEM Forms.\nEnregistrer la ressource dans le dossier cible\nAppelez la méthode writeResource de l’objet ResourceRepositoryClient et transmettez l’URI du dossier, ainsi que l’objet Resource.\nDémarrage rapide (mode SOAP) : écrire une ressource en utilisant l’API Java.\nÉcrivez une ressource à l’aide de l’API Repository Service (Web Service) :\nÀ l’aide de l’assemblage client .NET Microsoft, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials à l’aide de l’objet System.Net.NetworkCredential contenant le nom d’utilisateur et le mot de passe.\nSpécifiez l’URI du dossier cible pour la ressource. Dans ce cas, comme la ressource appelée testResource est stockée dans le dossier nommé testFolder, l’URI du dossier est "/testFolder". Si vous utilisez un langage compatible avec Microsoft .NET Framework (par exemple, C#), stockez lʼURI dans un objet System.String.\nPour créer une ressource, appelez le constructeur par défaut de la classe Resource. Dans cet exemple, les informations suivantes sont stockées dans lʼobjet Resource :\nUn objet com.adobe.repository.infomodel.Id, qui est créé en appelant le constructeur par défaut de la classe Id et affecté au champ id de lʼobjet Resource.\nUn objet com.adobe.repository.infomodel.Lid, qui est créé en appelant le constructeur par défaut de la classe Lid et affecté au champ lid de lʼobjet Resource.\nUne chaîne contenant le nom de fichier de la ressource, qui est attribuée au champ name de lʼobjet Resource. Le nom utilisé dans cet exemple est "testResource".\nUne chaîne contenant la description de la ressource, qui est affectée au champ description de lʼobjet Resource. La description utilisée dans cet exemple est "test resource".\nPour créer le contenu de la ressource, appelez le constructeur par défaut de la classe ResourceContent. Ajoutez ensuite du contenu à lʼobjet ResourceContent. Pour ce faire, dans cet exemple, les tâches suivantes doivent être réalisées :\nAffectation dʼun objet BLOB contenant un document au champ dataDocument de lʼobjet ResourceContent.\nAffectation de la taille en octets de lʼobjet BLOB au champ size de lʼobjet ResourceContent.\nAjoutez le contenu à la ressource en affectant lʼobjet ResourceContent au champ content de lʼobjet Resource.\nAppelez la méthode writeResource de lʼobjet RepositoryServiceService et transmettez lʼURI du dossier, ainsi que lʼobjet Resource. Transmettez null comme valeur pour les deux autres paramètres.\nVous pouvez découvrir des ressources en les répertoriant. Une requête est exécutée sur le référentiel pour rechercher toutes les ressources associées à une collection de ressources donnée.\nUne fois vos ressources organisées, vous pouvez inspecter la structure que vous avez créée en visualisant une branche particulière de la structure, comme vous le feriez dans un système d’exploitation.\nLa liste des ressources fonctionne par relation : les ressources sont membres de dossiers. L’appartenance est représentée par une relation de type « membre de ». Lorsque vous répertoriez les ressources dʼun dossier donné, vous recherchez les ressources qui sont associées à un dossier donné par la relation « membre de ». Les relations sont directionnelles : un membre d’une relation possède une source qui est un membre de la cible. La source est la ressource ; la cible est le dossier parent.\nPour plus d’informations sur le service Repository, consultez la section Références des services pour AEM Forms.\nPour répertorier les ressources, procédez comme suit :\nIndiquez le chemin dʼaccès au dossier.\nRécupérez la liste des ressources.\nInclusion des fichiers de projet\nCréation du client du service\nSpécification du chemin dʼaccès au dossier\nCréez une chaîne contenant le chemin dʼaccès au dossier comportant les ressources. La syntaxe comprend des barres obliques, comme dans l’exemple suivant : « /chemin/dossier ».\nRécupération de la liste des ressources\nAppelez la méthode du service Repository pour récupérer la liste des ressources, en spécifiant le chemin du dossier cible.\nListe des ressources à l’aide de l’API Java\nListe des ressources à l’aide de l’API de service Web\nRépertoriez les ressources à l’aide de l’API du service Repository (Java) :\nCréez un objet ResourceRepositoryClient à l’aide de son constructeur et en transmettant un objet ServiceClientFactory contenant des propriétés de connexion.\nDéfinition du chemin du dossier\nSpécifiez l’URI de la collection de ressources à interroger. Dans ce cas, son URI est "/testFolder". L’URI est stocké en tant qu’objet java.lang.String.\nAppelez la méthode listMembers de l’objet ResourceRepositoryClient et transmettez l’URI du dossier.\nLa méthode renvoie un java.util.List des objets com.adobe.repository.infomodel.bean.Resource qui constituent la source d’un com.adobe.repository.infomodel.bean.Relation de type Relation.TYPE_MEMBER_OF et qui ont l’URI de collecte de ressources comme cible. Vous pouvez effectuer une itération sur cette List pour récupérer chacune des ressources. Dans cet exemple, le nom et la description de chaque ressource s’affichent.\nInscription de ressources.\nDémarrage rapide (mode SOAP) : inscription de ressources à l’aide de l’API Java\nInscription de ressources à l’aide de l’API du service Repository (service Web) :\nCréez un assemblage client Microsoft .NET qui utilise le fichier WSDL du référentiel.\nÀ l’aide de l’assemblage client Microsoft .NET, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials à l’aide d’un objet System.Net.NetworkCredential contenant le nom d’utilisateur et le mot de passe.\nSpécifiez une chaîne contenant l’URI du dossier à interroger. Dans ce cas, son URI est "/testFolder". Lorsque vous utilisez un langage conforme au framework Microsoft .NET (C#, par exemple), stockez l’URI dans un objet System.String.\nAppelez la méthode listMembers de l’objet RepositoryServiceService et transmettez l’URI du dossier en tant que premier paramètre. Transmettez null pour les deux autres paramètres.\nLa méthode renvoie un tableau d’objets qui peuvent être convertis en objets Resource. Vous pouvez effectuer une itération sur le tableau d’objets pour récupérer chacune des ressources associées. Dans cet exemple, le nom et la description de chaque ressource s’affichent.\nInscription des ressources.\nVous pouvez récupérer des ressources à partir d’un emplacement donné dans le référentiel afin de lire leur contenu et leurs métadonnées. Le workflow est dirigé par un formulaire d’initialisation. Le processus a toutes les permissions nécessaires pour lire le formulaire. Le système récupère le formulaire de données et lit le contenu du référentiel. Le référentiel donne accès au contenu et aux métadonnées (la possibilité de savoir que la ressource existe).\nLe référentiel dispose des quatre types d’autorisations suivants :\nparcours : permet de répertorier les ressources, c’est-à-dire de lire les métadonnées de la ressource, mais pas leur contenu.\nlecture : permet de lire le contenu de la ressource.\nécriture : permet d’écrire du contenu de ressource.\ngestion des listes de contrôle d’accès (ACL) : permet de manipuler les ACL sur les ressources.\nLes utilisateurs ne peuvent exécuter des processus que si lʼautorisation leur en a été accordée. Les utilisateurs d’un IDE doivent disposer d’autorisations de parcours et de lecture pour se synchroniser avec le référentiel. Les listes de contrôle d’accès ne s’appliquent quʼau moment de la conception, car l’exécution se produit dans le contexte du système.\nVous pouvez lire les ressources par programmation à l’aide de l’API Java du service Repository ou de l’API de service web.\nPour plus d’informations sur le service Repository, consultez la section Référence des services pour AEM Forms.\nPour lire une ressource, procédez comme suit :\nInclure les fichiers du projet.\nSpécifier l’URI de la ressource à lire\nCréez une chaîne contenant l’URI de la ressource à lire. La syntaxe comprend des barres obliques, comme dans cet exemple : « /path/resource ».\nAppelez la méthode du service Repository pour lire la ressource, en spécifiant l’URI.\nLire les ressources à l’aide de l’API Java\nLire les ressources à l’aide de l’API de service web\nLire une ressource à l’aide de l’API du service Repository (Java) :\nCréez un objet ResourceRepositoryClient en utilisant son constructeur et en transmettant un objet ServiceClientFactory qui contient les propriétés de connexion.\nSpécifiez une valeur de chaîne qui représente l’URI de la ressource à récupérer. Par exemple, si la ressource s’appelle testResource et se trouve dans un dossier nommé testFolder, spécifiez /testFolder/testResource.\nAppelez la méthode readResource de l’objet ResourceRepositoryClient et transmettez l’URI de la ressource comme paramètre. Cette méthode renvoie une instance Resource qui représente la ressource.\nDémarrage rapide (mode SOAP) : lire une ressource à lʼaide de l’API Java\nLire une ressource à l’aide de l’API du service Repository (service web) :\nCréez un assemblage client Microsoft .NET qui utilise le fichier WSDL du référentiel. (Consultez la section Créer un assemblage client .NET qui utilise le codage Base64).\nRéférencez l’assemblage client Microsoft .NET. (Consultez la section Créer un assemblage client .NET qui utilise le codage Base64).\nÀ l’aide de l’assemblage client Microsoft .NET, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials en utilisant un objet System.Net.NetworkCredential contenant le nom d’utilisateur et le mot de passe.\nSpécifiez une chaîne contenant l’URI de la ressource à récupérer. Dans ce cas, comme la ressource nommée testResource se trouve dans le dossier au nom de testFolder, son URI est "/testFolder/testResource". Si vous utilisez un langage compatible avec Microsoft .NET Framework (par exemple, C#), stockez l’URI dans un objet System.String.\nAppelez la méthode readResource de l’objet RepositoryServiceService et transmettez l’URI de la ressource comme premier paramètre. Transmettez null pour les deux autres paramètres.\nMise à jour des ressources\nVous pouvez récupérer et mettre à jour le contenu des ressources dans le référentiel. Lorsque vous mettez à jour des ressources, le contrôle d’accès à ces ressources reste inchangé entre les versions. Lorsque vous effectuez une mise à jour, vous avez la possibilité d’incrémenter la version majeure. Si vous ne choisissez pas d’incrémenter la version majeure, la version mineure est automatiquement mise à jour.\nLorsque vous mettez à jour une ressource, la nouvelle version est créée en fonction des attributs de ressource spécifiés. Lorsque vous mettez à jour une ressource, vous spécifiez deux paramètres importants : l’URI cible et une instance de ressource contenant toutes les métadonnées mises à jour. Il est important de noter que même si vous ne modifiez pas un attribut donné (par exemple, le nom), cet attribut reste obligatoire dans lʼinstance que vous transmettez. Les relations créées lors de l’analyse du contenu sont ajoutées à la version spécifique et ne sont pas transférées, sauf indication contraire.\nPar exemple, si vous mettez à jour un fichier XDP qui contient des références à d’autres ressources, ces références supplémentaires seront également enregistrées. Supposons que la version 1.0 de form.xdp possède deux références externes : un logo et une feuille de style. Vous mettez à jour le fichier form.xdp, de sorte quʼil possède maintenant trois références : un logo, une feuille de style et un fichier de schéma. Lors de la mise à jour, le référentiel ajoute la troisième relation (au fichier de schéma) à sa table de relations en attente. Une fois que le fichier de schéma est présent dans le référentiel, la relation est automatiquement formée. Cependant, si la version 2.0 de form.xdp n’utilise plus le logo, la version 2.0 de form.xdp nʼaura pas de relation avec le logo.\nToutes les opérations de mise à jour sont de nature atomique et transactionnelle. Par exemple, si deux utilisateurs lisent la même ressource et décident tous deux de mettre à jour la version 1.0 vers la version 2.0, lʼun dʼeux réussira et lʼautre échouera, lʼintégrité du référentiel sera maintenue et les deux utilisateurs recevront un message confirmant le succès ou lʼéchec. Si la transaction n’est pas validée, elle sera restaurée en cas de défaillance de la base de données et expirera ou sera restaurée en fonction du serveur d’applications.\nVous pouvez mettre à jour les ressources par programmation à l’aide de l’API Java du service Repository ou de l’API de service web.\nPour mettre à jour une ressource, procédez comme suit :\nRécupérez la ressource à mettre à jour.\nMettez à jour la ressource.\nRécupération de la ressource à mettre à jour\nLisez la ressource. Pour plus d’informations, consultez la section Lecture des ressources.\nDéfinissez les nouvelles informations dans la ressource et appelez la méthode du service Repository pour mettre à jour la ressource : spécifiez l’URI, la ressource mise à jour et la manière dont les informations de version doivent être mises à jour.\nMise à jour des ressources à l’aide de l’API Java\nMise à jour des ressources à l’aide de l’API de service web\nPour mettre à jour une ressource à l’aide de l’API du service Repository (Java), procédez comme suit :\nRécupérer la ressource à mettre à jour\nSpécifier lʼURI de la ressource pour récupérer et lire la ressource. Dans cet exemple, l’URI de la ressource est "/testFolder/testResource".\nMettre à jour la ressource\nMettez à jour les informations de lʼobjet Resource. Pour mettre à jour la description dans cet exemple, appelez la méthode setDescription de lʼobjet Resource et transmettez la nouvelle chaîne de description comme paramètre.\nAppelez ensuite la méthode updateResource de lʼobjet ServiceClientFactory et transmettez les paramètres suivants :\nUn objet java.lang.String contenant l’URI de la ressource.\nLʼobjet Resource contenant les informations de la ressource mise à jour.\nUne valeur boolean indiquant s’il faut mettre à jour la version majeure ou mineure. Dans cet exemple, une valeur de true est transmise pour indiquer que la version majeure doit être incrémentée.\nDidacticiel de mise en route (mode SOAP) : mise à jour d’une ressource en utilisant l’API Java\nPour mettre à jour une ressource en utilisant l’API Repository (service web), procédez comme suit :\nIndiquez l’URI de la ressource à récupérer et lisez la ressource. Dans cet exemple, l’URI de la ressource est "/testFolder/testResource". Pour plus d’informations, voir Lire les ressources.\nMettez à jour les informations de l’objet Resource. Pour mettre à jour la description dans cet exemple, saisissez une nouvelle valeur dans le champ description de lʼobjet Resource.\nAppelez la méthode updateResource de lʼobjet RepositoryServiceService et transmettez les paramètres suivants :\nUn objet System.String contenant l’URI de la ressource.\nTransmettez null pour les deux paramètres restants.\nVous pouvez construire des requêtes utilisées pour rechercher des ressources dans le référentiel, y compris l’historique, les ressources associées et les propriétés.\nVous pouvez récupérer les ressources associées pour déterminer les dépendances entre un formulaire et ses fragments. Par exemple, si vous disposez d’un formulaire, vous pouvez déterminer les fragments ou les ressources externes qu’il utilise. Si vous disposez d’une image, vous pouvez également découvrir les formulaires qui l’utilisent. Vous pouvez également rechercher des ressources associées à l’aide du filtrage basé sur les propriétés. Par exemple, vous pouvez rechercher tous les formulaires qui utilisent une image avec un nom spécifié, ou trouver toute image utilisée par un formulaire avec un nom spécifié. Vous pouvez également effectuer une recherche à l’aide des propriétés des ressources. Par exemple, vous pouvez effectuer une requête pour trouver tous les formulaires ou ressources dont le nom commence par une chaîne de caractères donnée qui peut inclure les caractères génériques « % » et « _ ». Gardez à lʼesprit que les recherches basées sur les propriétés ne sont pas basées sur les relations : ces recherches partent du principe que vous avez des connaissances spécifiques sur une ressource donnée.\nInstructions de requête\nUne requête contient une ou plusieurs instructions associées à des conditions de façon logique. Une instruction est constituée d’un opérande gauche, d’un opérateur et d’un opérande droit. De plus, vous pouvez spécifier l’ordre de tri à utiliser pour les résultats de la recherche. Lʼordre de tri contient des informations équivalentes à une clause SQL ORDER BY et est composé dʼéléments qui contiennent les attributs sur lesquels la recherche a été basée, ainsi quʼune valeur indiquant si lʼordre ascendant ou descendant doit être utilisé.\nVous pouvez rechercher des ressources par programmation à l’aide de l’API Java du service Repository. Actuellement, il n’est pas possible d’utiliser l’API de service web pour rechercher des ressources.\nComportement de tri\nL’ordre de tri n’est pas respecté lors de l’appel de la méthode searchProperties de lʼobjet ResourceRepositoryClient et de la spécification dʼun ordre de tri. Prenons lʼexemple suivant : vous créez une ressource avec trois propriétés personnalisées, dont les noms d’attribut sont name, secondName et asecondName. Ensuite, vous créez un élément d’ordre de tri sur le nom de l’attribut et définissez la valeur ascending sur true.\nEnsuite, vous appelez la méthode searchProperties de lʼobjet ResourceRepositoryClient et transmettez l’ordre de tri. La recherche renvoie la bonne ressource, avec les trois propriétés. Toutefois, les propriétés ne sont pas triées par nom d’attribut. Elles sont retournées dans l’ordre dans lequel elles ont été ajoutées : name, secondName et asecondName.\nPour rechercher des ressources, procédez comme suit :\nSpécifiez le dossier cible de la recherche.\nIndiquez les attributs utilisés dans la recherche.\nCréez la requête utilisée dans la recherche.\nCréez lʼordre de tri des résultats de la recherche.\nRecherchez les ressources.\nRécupérez les ressources dans les résultats de la recherche.\nInclusion des fichiers du projet\nDéfinition du dossier cible de la recherche\nCréez une chaîne contenant le chemin d’accès de base à partir duquel effectuer la recherche. La syntaxe comprend des barres obliques, comme dans cet exemple : « /chemin/dossier ».\nSpécifier les attributs utilisés dans la recherche\nVous pouvez baser la recherche sur les attributs contenus dans les ressources. Spécifiez les valeurs des attributs sur lesquels effectuer la recherche.\nCréer la requête utilisée dans la recherche\nCréez une requête à l’aide d’instructions et de conditions. Chaque instruction spécifie l’attribut sur lequel baser la recherche, la condition à utiliser et la valeur d’attribut à utiliser dans la recherche.\nCréer l’ordre de tri des résultats de recherche\nL’ordre de tri est constitué d’éléments dont chacun contient l’un des attributs utilisés dans la recherche et une valeur indiquant si l’ordre croissant ou décroissant doit être utilisé.\nRecherchez les ressources à l’aide du dossier, de la requête et de l’ordre de tri. Indiquez en outre la profondeur de la recherche et une limite supérieure du nombre de résultats à renvoyer.\nRécupérer des ressources à partir du résultat de la recherche\nParcourez la liste des ressources renvoyée et extrayez les informations en vue d’un traitement ultérieur.\nRecherche de ressources à l’aide de l’API Java\nRecherchez une ressource à l’aide de l’API Repository Service (Java) :\nSpécifiez l’URI du chemin d’accès de base à partir duquel exécuter la recherche. Dans cet exemple, l’URI de la ressource est /testFolder.\nSpécification des attributs utilisés dans la recherche\nSpécifiez les valeurs des attributs sur lesquels effectuer la recherche. Les attributs existent dans un objet com.adobe.repository.infomodel.bean.Resource. Dans cet exemple, la recherche sera effectuée sur l’attribut name. Par conséquent, un java.lang.String contenant le nom de l’objet Resource est utilisé, lequel est testResource dans ce cas.\nCréation de la requête utilisée dans la recherche\nPour créer une requête, créez un objet com.adobe.repository.query.Query en appelant le constructeur par défaut pour la classe Query et ajoutez des instructions à la requête.\nPour créer une instruction, appelez le constructeur pour la classe com.adobe.repository.query.Query.Statement et transmettez les paramètres suivants :\nUn opérande gauche contenant la constante de l’attribut de ressource. Dans cet exemple, comme le nom de la ressource sert de base à la recherche, la valeur statique Resource.ATTRIBUTE_NAME est utilisée.\nUn opérateur contenant la condition utilisée dans la recherche de l’attribut. L’opérateur doit être l’une des constantes statiques de la classe Query.Statement. Dans cet exemple, la valeur statique Query.Statement.OPERATOR_BEGINS_WITH est utilisée.\nUn opérande droit contenant la valeur de l’attribut sur lequel effectuer la recherche. Dans cet exemple, l’attribut « name », une String contenant la valeur "testResource", est utilisé.\nIndiquez l’espace de nommage de l’opérande gauche en appelant la méthode setNamespace de l’objet Query.Statement et en transmettant l’une des valeurs statiques contenues dans la classe com.adobe.repository.infomodel.bean.ResourceProperty. Dans cet exemple, la valeur ResourceProperty.RESERVED_NAMESPACE_REPOSITORY est utilisée.\nAjoutez chaque instruction à la requête en appelant la méthode addStatement de l’objet Query et en transmettant l’objet Query.Statement.\nCréer lʼordre de tri des résultats de la recherche\nPour spécifier l’ordre de tri utilisé dans les résultats de la recherche, créez un objet com.adobe.repository.query.sort.SortOrder en appelant le constructeur par défaut de la classe SortOrder et ajoutez des éléments à l’ordre de tri.\nPour créer un élément pour l’ordre de tri, appelez l’un des constructeurs de la classe com.adobe.repository.query.sort.SortOrder.Element. Dans cet exemple, comme le nom de la ressource sert de base à la recherche, la valeur statique Resource.ATTRIBUTE_NAME est utilisée comme premier paramètre et lʼordre croissant (une valeur boolean de true) est spécifié comme deuxième paramètre.\nAjoutez chaque élément à lʼordre de tri en appelant la méthode addSortElement de l’objet SortOrder et en transmettant l’objet SortOrder.Element.\nPour rechercher des resources en fonction des propriétés des attributs, appelez la méthode searchProperties de l’objet ResourceRepositoryClient et transmettez les paramètres suivants :\nUne valeur String contenant le chemin d’accès de base à partir duquel exécuter la recherche. Dans ce cas, la valeur "/testFolder" est utilisée.\nLa requête utilisée dans la recherche.\nLa précision de la recherche. Dans ce cas, com.adobe.repository.infomodel.bean.ResourceCollection.DEPTH_INFINITE est utilisé pour indiquer que le chemin d’accès de base et tous ses dossiers doivent être utilisés.\nUne valeur int indiquant la première ligne à partir de laquelle sélectionner le jeu de résultats non paginés. Dans cet exemple, 0 est spécifié.\nUne valeur int indiquant le nombre maximal de résultats à renvoyer. Dans cet exemple, 10 est spécifié.\nLʼordre de tri utilisé dans la recherche.\nLa méthode renvoie une liste java.util.List d’objets Resource dans lʼordre de tri spécifié.\nRécupérer les ressources à partir des résultats de recherche\nPour récupérer les ressources contenues dans les résultats de recherche, il faut itérer au sein de List et convertir chaque objet en Resource afin d’extraire ses informations. Dans cet exemple, le nom de chaque ressource est affiché.\nDémarrage rapide (mode SOAP) : rechercher des ressources à l’aide de l’API Java\nCréer des relations entre les ressources\nVous pouvez spécifier des relations entre les ressources dans le référentiel. Il existe trois types de relations :\nDépendance : relation dans laquelle une ressource dépend d’autres ressources, ce qui signifie que toutes les ressources liées sont nécessaires dans le référentiel.\nAppartenance (système de fichiers) : relation dans laquelle une ressource est située dans un dossier donné.\nPersonnalisé : relation que vous spécifiez entre les ressources. Par exemple, si une ressource est devenue obsolète et qu’une autre ressource a été introduite dans le référentiel, vous pouvez spécifier votre propre relation de remplacement.\nVous pouvez créer vos propres relations personnalisées. Par exemple, si vous stockez un fichier HTML dans le référentiel et qu’il utilise une image, vous pouvez spécifier une relation personnalisée pour relier le fichier HTML avec l’image (puisque normalement seuls les fichiers XML sont associés aux images à l’aide d’une relation de dépendance définie par le référentiel). Un autre exemple de relation personnalisée est celui où vous souhaitez créer une vue différente du référentiel avec une structure de graphique cyclique au lieu d’une structure dʼarborescence. Vous pourriez définir un graphique circulaire ainsi quʼune visionneuse pour parcourir ces relations. Enfin, vous pouvez indiquer qu’une ressource remplace une autre ressource, même si les deux ressources sont complètement différentes. Dans ce cas, vous pouvez définir un type de relation en dehors de la plage réservée et créer une relation entre ces deux ressources. Votre application serait le seul client capable de détecter et de traiter la relation, et elle pourrait être utilisée pour effectuer des recherches sur cette relation.\nVous pouvez spécifier par programmation les relations entre les ressources à lʼaide de l’API Java ou de service web du service Repository.\nPour définir une relation entre deux ressources, procédez comme suit :\nSpécifiez les URI des ressources à relier.\nCréez la relation.\nSpécifier les URI des ressources à relier\nCréez des chaînes contenant les URI de la ressource à relier. La syntaxe comprend des barres obliques, comme dans cet exemple : « /chemin/ressource ».\nAppelez la méthode de service Repository pour créer et spécifier le type de relation.\nCréer des ressources de relation à l’aide de l’API Java\nCréer des ressources de relation à l’aide de l’API Web Service\nCréez des ressources de relation à l’aide de l’API Java Repository Service et effectuez les tâches suivantes :\nSpécification des URI des ressources à relier\nSpécifiez les URI des ressources à relier. Dans ce cas, comme les ressources sont appelées testResource1 et testResource2 et se trouvent dans le dossier nommé testFolder, leurs URI sont "/testFolder/testResource1" et "/testFolder/testResource2". Les URI sont stockés en tant qu’objets java.lang.String. Dans cet exemple, les ressources sont d’abord écrites dans le référentiel et leurs URI sont récupérés. Pour plus d’informations sur l’écriture d’une ressource, voir Écriture de ressources.\nCréation de la relation\nAppelez la méthode createRelationship de l’objet ResourceRepositoryClient et transmettez les paramètres suivants :\nURI de la ressource source.\nURI de la ressource cible.\nLe type de relation, qui est l’une des constantes statiques dans la classe com.adobe.repository.infomodel.bean.Relation. Dans cet exemple, une relation de dépendance est établie en spécifiant la valeur Relation.TYPE_DEPENDANT_OF.\nValeur boolean indiquant si la ressource cible est automatiquement mise à jour vers l’identifiant basé sur com.adobe.repository.infomodel.Id de la nouvelle ressource HEAD. Dans cet exemple, en raison de la relation de dépendance, la valeur true est spécifiée.\nVous pouvez également récupérer une liste des ressources associées pour une ressource donnée en appelant la méthode getRelated de l’objet ResourceRepositoryClient et en transmettant les paramètres suivants :\nL’URI de la ressource pour laquelle récupérer les ressources associées. Dans cet exemple, la ressource source ("/testFolder/testResource1") est spécifiée.\nValeur boolean indiquant si la ressource spécifiée est la ressource source dans la relation. Dans cet exemple, la valeur true est spécifiée, car c’est le cas.\nLe type de relation, qui est l’une des constantes statiques dans la classe Relation. Dans cet exemple, une relation de dépendance est spécifiée en utilisant la même valeur que celle utilisée précédemment : Relation.TYPE_DEPENDANT_OF.\nLa méthode getRelated renvoie un java.util.List des objets de Resource à travers lesquels vous pouvez effectuer une itération pour récupérer chacune des ressources associées, en projetant les objets contenus dans le List vers Resource comme vous le faites. Dans cet exemple, testResource2 doit se trouver dans la liste des ressources renvoyées.\nDémarrage rapide (mode SOAP) : créer des relations entre les ressources à l’aide de l’API Java.\nCréez des ressources de relation à l’aide de l’API Repository (Web Service) :\nÀ l’aide de l’assemblage client Microsoft .NET, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials à l’aide de l’objet System.Net.NetworkCredential contenant le nom d’utilisateur et le mot de passe.\nSpécifiez les URI des ressources à relier. Dans ce cas, comme les ressources sont nommées testResource1 et testResource2 et se trouvent dans le dossier nommé testFolder, leurs URI sont "/testFolder/testResource1" et "/testFolder/testResource2". Lors de l’utilisation d’un langage conforme à Microsoft .NET Framework (C#, par exemple), les URI sont stockés sous la forme d’un objet System.String. Dans cet exemple, les ressources sont d’abord écrites dans le référentiel et leurs URI sont récupérés. Pour plus d’informations sur l’écriture d’une ressource, voir Écriture de ressources.\nAppelez la méthode createRelationship de l’objet RepositoryServiceService et transmettez les paramètres suivants :\nLe type de relation. Dans cet exemple, une relation de dépendance est établie en spécifiant la valeur 3.\nValeur boolean indiquant si le type de relation a été spécifié. Dans cet exemple, la valeur true est spécifiée.\nValeur boolean indiquant si la ressource cible est automatiquement mise à jour vers l’identificateur basé sur Id de la nouvelle ressource HEAD. Dans cet exemple, en raison de la relation de dépendance, la valeur true est spécifiée.\nValeur boolean indiquant si la cible HEAD a été spécifiée. Dans cet exemple, la valeur true est spécifiée.\nTransmettez null pour le dernier paramètre.\nVous pouvez également récupérer une liste des ressources associées pour une ressource donnée en appelant la méthode getRelated de l’objet RepositoryServiceService et en transmettant les paramètres suivants :\nValeur boolean indiquant si la ressource spécifiée est la ressource source dans la relation. Dans cet exemple, la valeur true est spécifiée parce que c’est le cas.\nValeur boolean indiquant si la ressource source a été spécifiée. Dans cet exemple, la valeur true est fournie.\nTableau d’entiers contenant les types de relations. Dans cet exemple, une relation de dépendance est spécifiée en utilisant la même valeur dans le tableau que celle utilisée précédemment : 3.\nLa méthode getRelated renvoie un tableau d’objets qui peuvent être convertis en objets Resource par l’intermédiaire desquels vous pouvez effectuer une itération pour récupérer chacune des ressources associées. Dans cet exemple, testResource2 doit se trouver dans la liste des ressources renvoyées.\nVerrouiller les ressources\nVous pouvez verrouiller une ressource ou un ensemble de ressources pour une utilisation exclusive par un utilisateur particulier ou une utilisation partagée entre plusieurs utilisateurs. Un verrou partagé est une indication que quelque chose va se produire avec la ressource, mais cela n’empêche personne d’autre de prendre des mesures avec cette ressource. Un verrou partagé doit être considéré comme un mécanisme de signalisation. Un verrou exclusif signifie que l’utilisateur qui a verrouillé la ressource va la modifier. Le verrou garantit que personne d’autre ne peut le faire jusqu’à ce que l’utilisateur n’ait plus besoin d’accéder à la ressource et ait libéré le verrou. Si un administrateur de référentiel déverrouille une ressource, tous les verrous exclusifs et partagés de cette ressource sont automatiquement supprimés. Ce type d’action est destiné aux situations dans lesquelles un utilisateur n’est plus disponible et n’a pas déverrouillé la ressource.\nLorsqu’une ressource est verrouillée, une icône de verrouillage s’affiche lorsque vous affichez l’onglet Ressources situé dans Workbench, comme illustré ci-dessous.\nVous pouvez contrôler l’accès aux ressources par programmation à l’aide de l’API Java Repository Service ou de l’API Web Service.\nPour plus d’informations sur le service Forms, voir Références des services pour AEM Forms.\nPour verrouiller et déverrouiller des ressources, procédez comme suit :\nSpécifiez l’URI de la ressource à verrouiller.\nVerrouillez la ressource.\nRécupérez les verrous de la ressource.\nDéverrouiller la ressource\nSpécifier l’URI de la ressource à verrouiller\nCréez une chaîne contenant l’URI de la ressource à verrouiller. La syntaxe comprend des barres obliques, comme dans cet exemple : « /path/resource ».\nVerrouiller la ressource\nAppelez la méthode du service Repository pour verrouiller la ressource, en spécifiant l’URI, le type et la profondeur de verrouillage.\nRécupérer les verrous pour la ressource\nAppelez la méthode du service Repository pour récupérer les verrous de la ressource, en spécifiant l’URI.\nAppelez la méthode de service Repository pour déverrouiller la ressource, en spécifiant l’URI.\nVerrouiller les ressources à l’aide de l’API Java\nVerrouiller les ressources à lʼaide de l’API de service web\nVerrouiller les ressources à l’aide de l’API du service Repository (Java) :\nSpécifiez l’URI de la ressource à verrouiller. Dans ce cas, comme la ressource nommée testResource se trouve dans le dossier du nom de testFolder, son URI est "/testFolder/testResource". L’URI est stocké comme un objet java.lang.String.\nAppelez la méthode lockResource de l’objet ResourceRepositoryClient et transmettez les paramètres suivants :\nL’URI de la ressource.\nLa portée du verrouillage. Dans cet exemple, comme la ressource sera verrouillée pour une utilisation exclusive, la portée du verrouillage est spécifiée comme com.adobe.repository.infomodel.bean.Lock.SCOPE_EXCLUSIVE.\nLe niveau de verrouillage. Dans cet exemple, comme le verrouillage ne s’appliquera qu’à la ressource particulière et à aucun de ses membres ou enfants, le niveau de verrouillage est spécifié comme Lock.DEPTH_ZERO.\nLa version surchargée de la méthode lockResource qui nécessite quatre paramètres renvoie une exception. Veillez à utiliser la méthode lockResource qui nécessite trois paramètres, comme indiqué dans cette présentation.\nRécupérer les verrouillages de la ressource\nAppelez la méthode getLocks de l’objet ResourceRepositoryClient et transmettez l’URI de la ressource comme paramètre. La méthode renvoie une liste d’objets verrouillés par laquelle vous pouvez effectuer une itération. Dans cet exemple, le propriétaire, le niveau et la portée du verrouillage sont imprimés pour chaque objet en appelant les méthodes getOwnerUserId, getDepth et getType de chaque objet verrouillé, respectivement.\nAppelez la méthode unlockResource de l’objet ResourceRepositoryClient et transmettez l’URI de la ressource comme paramètre. Pour plus d’informations, consultez la section Référence de l’API AEM Forms.\nDémarrage rapide (mode SOAP) : verrouiller une ressource à l’aide de l’API Java\nPour verrouiller les ressources à l’aide de l’API du service Repository (service web), procédez comme suit :\nCréez un assemblage client Microsoft .NET qui utilise le WSDL Repository codé en Base64.\nSpécifiez une chaîne contenant l’URI de la ressource à verrouiller. Dans ce cas, comme la ressource nommée testResource se trouve dans le dossier testFolder, son URI est "/testFolder/testResource". Si vous utilisez un langage conforme à Microsoft .NET Framework (C#, par exemple), stockez l’URI dans un objet System.String.\nAppelez la méthode lockResource de l’objet RepositoryServiceService et transmettez les paramètres suivants :\nLa portée du verrouillage. Dans cet exemple, comme la ressource sera verrouillée pour une utilisation exclusive, la portée du verrouillage est fixée à 11.\nLe niveau de verrouillage. Dans cet exemple, comme le verrouillage ne s’applique qu’à la ressource particulière et à aucun de ses membres ou enfants, le niveau de verrouillage est fixé à 2.\nUne valeur int indiquant le nombre de secondes avant l’expiration du verrouillage. Dans cet exemple, la valeur de 1000 est utilisée.\nAppelez la méthode getLocks de l’objet RepositoryServiceService et transmettez l’URI de la ressource comme premier paramètre et null comme deuxième paramètre. La méthode renvoie un tableau object contenant des objets Lock par lesquels vous pouvez effectuer une itération. Dans cet exemple, le propriétaire, la profondeur et la portée du verrou sont imprimés pour chaque objet en accédant à chaque ownerUserId de l’objet Lock, les champs depth et type, respectivement.\nAppelez la méthode unlockResource de l’objet RepositoryServiceService et transmettez l’URI de la ressource comme premier paramètre et null pour le deuxième paramètre.\nSuppression des ressources\nVous pouvez supprimer des ressources par programmation d’un emplacement donné dans le référentiel à l’aide de l’API Java du service de référentiel (SOAP).\nLorsque vous supprimez une ressource, la suppression est en principe permanente, bien que, dans certains cas, les référentiels ECM puissent stocker les versions de la ressource en fonction de leurs mécanismes d’historique. Par conséquent, lors de la suppression d’une ressource, il est important de s’assurer que vous n’aurez plus besoin de cette dernière. La suppression d’une ressource est généralement motivée par la nécessité d’augmenter l’espace disponible dans la base de données. Vous pouvez supprimer une version d’une ressource, mais en le faisant, vous devez spécifier l’identificateur de la ressource, et non son identificateur logique (LID) ou son chemin d’accès. Si vous supprimez un dossier, tous éléments y contenus, notamment les sous-dossiers et les ressources, seront automatiquement supprimés.\nLes ressources connexes ne sont pas supprimées. Par exemple, si un formulaire utilise le fichier logo.gif et que vous supprimez logo.gif, une relation est stockée dans le tableau de relation en attente. Alternativement, en ce qui concerne l’obsolescence de la version, définissez l’état de l’objet de la dernière version sur obsolète.\nUne opération de suppression n’est pas compatible avec les transactions dans les systèmes ECM. Par exemple, si vous tentez de supprimer 100 ressources et que l’opération échoue sur la 50e ressource, les 49 premières instances seront supprimées, mais ce ne sera pas le cas pour le reste. Dans le cas contraire, le comportement par défaut est la restauration (non-engagement).\nLors de l’utilisation de la méthode com.adobe.repository.bindings.dsc.client.ResourceRepositoryClient.deleteResources() avec le référentiel ECM (EMC Documentum Content Server et IBM FileNet P8 Content Manager), la transaction ne sera pas restaurée si la suppression échoue pour l’une des ressources spécifiées, ce qui signifie que les fichiers qui ont été supprimés ne peuvent pas être restaurés.\nPour supprimer une ressource, procédez de la manière suivante :\nIndiquez l’URI de la ressource à supprimer.\nSupprimez la ressource.\nInclure des fichiers de projet\nSpécifier l’URI de la ressource à supprimer\nCréez une chaîne contenant l’URI de la ressource à supprimer. La syntaxe comprend des barres obliques, comme dans l’exemple suivant : « /chemin/ressource ». Si la ressource à supprimer est un dossier, la suppression sera récursive.\nAppelez la méthode du service Repository pour supprimer la ressource, en spécifiant l’URI.\nSupprimer des ressources à l’aide de l’API Java\nSuppression des ressources à l’aide de l’API de service web\nSupprimer des ressources à l’aide de l’API Java (SOAP)\nSupprimez une ressource à l’aide de l’API de référentiel (Java) :\nSpécification de l’URI de la ressource à supprimer\nSpécifiez l’URI de la ressource à récupérer. Dans ce cas, puisque la ressource désignée par testResourceToBeDeleted se trouve dans le dossier nommé testFolder, son URI est /testFolder/testResourceToBeDeleted. L’URI est stocké en tant qu’objet java.lang.String. Dans cet exemple, la ressource est d’abord écrite dans le référentiel, puis son URI est récupéré. Pour plus d’informations sur l’écriture d’une ressource, voir Écriture de ressources.\nSuppression de la ressource\nAppelez la méthode deleteResource de l’objet ResourceRepositoryClient et transmettez l’URI de la ressource en tant que paramètre.\nPour supprimer une ressource en utilisant l’API Repository (service web), procédez comme suit :\nÀ l’aide de l’assemblage client Microsoft .NET, créez un objet RepositoryServiceService en appelant son constructeur par défaut. Définissez sa propriété Credentials en utilisant un objet System.Net.NetworkCredential contenant le nom dʼutilisateur et le mot de passe.\nSpécifiez l’URI de la ressource à récupérer. Dans ce cas, comme la ressource nommée testResourceToBeDeleted se trouve dans le dossier testFolder, son URI est "/testFolder/testResourceToBeDeleted". Dans cet exemple, la ressource est d’abord écrite dans le référentiel, puis son URI est récupéré. Pour plus d’informations sur l’écriture d’une ressource, consultez la section Écriture des ressources.\nAppelez la méthode deleteResources de lʼobjet RepositoryServiceService et transmettez un tableau System.String contenant lʼURI de la ressource comme premier paramètre. Transmettez null pour le deuxième paramètre.\nEcommerce Integrations Automated Onboarding Theme Editor Dynamic Media Dynamic Forms Content Management System


Sujet: Rencontre Lun 22 Déc - 17:52\nEtoile Orageuse chassait près des limites de son territoire, à proximité des Pierres de Lune. Elle préférait cet endroit, car les chats ennemis passaient souvent sans autorisation sur le territoire du Vent pour se rendre aux Pierres de Lune, et ainsi, elle pouvait leur barrer le passage.\nEtoile Orageuse repéra un mouvement infime à sa droite, sous les racines extérieures d'un arbre. Les battements de coeur rapides d'un rongeur se dissimulaient là-dedans.La bête devait être grosse et grasse, de quoi nourrir plusieurs personnes.\nLa meneuse s'accroupit, et se prépara à bondir.\nMais des bruissements de feuilles piétinées se firent entendre derrière elle.\nUn chat du clan du Tonnerre.\nEtoile Orageuse sortit ses griffes et se détourna.\nNon seulement elle avait raté sa proie, mais un ennemi était là où il ne devait pas l'être. Plus maintenant, mais dans la direction d'où il arrivait, il n'avait pu que traverser le territoire du Vent.\nSujet: Re: Rencontre Mar 23 Déc - 12:04\nEtoile d'Emeraude apperçut Etoile Orageuse . Il n'avait pas vuolu lui faire rater sa proie :\n-Excuse - moi de t'avoir fait rater ta proie , je ne le souhaiter pas ....\nEtoile d'Emeraude était gêné de lui avaoir fait rater sa proie de plus , il venait de traverser le clan du vent car son clan avait besoin de quelques souris et qu'il ne voulait pas trop tarder car l'un de ses geurriers soufrait , il venait de se faire attaquer par un chien .\nSujet: Re: Rencontre Mar 23 Déc - 15:14\n- As-tu une seule raison valable de traverser le territoire du Vent ? Ou bien dois-je te rappeller que la trêve n'a lieu que pendant l'Assemblée, et que la dernière vient de s'achever ? Tu n'es pas la bienvenue ici. Explique toi, ou bien je serais dans l'obligation de te chasser à coupe de griffe. Je n'hésiterai pas.\nEtoile Orageuse fixa la meneuse du Clan du Tonnerre dans les yeux. Elle mit toute la conviction qu'elle pouvait dans son regard, jusqu'à lui faire baisser les yeux. Bagarre en perspective ? Ou message important ?\nSujet: Re: Rencontre Mar 23 Déc - 15:39\n[ En théorie - je dis bien en théorie - Etoile d'Emeraude n'est pas sur tes terres. Je sais que je devrais vous laisser tranquilles toutes les deux mais les Hautes Pierres sont en terrain neutres si tu vois où je veux en venir Etoile Orageuse ... ]\nSujet: Re: Rencontre Mer 24 Déc - 16:13\n[ je sais, Etoile du Soir, mais si tu avais lyu plus attentivement, tu connaitrais les raisons de ma colère]\n- Vas-tu répondre, ou la honte te cloue sur place, au point que la parole t'ai quittée ?\nLa meneuse du Vent se tut. Etoile d'Emeraude ne répondait pas. Bien, plus que trois minutes. Sinon ... les griffes d'Etoile Orageuse étinceleraient au soleil, comme bien d'autres fois ...\nSujet: Re: Rencontre Dim 11 Jan - 12:27\n- Oui j'ai traversé ton clan et alors . est-ce que tu peux me le prouver ?\nQue j'ai bien traversé ton clan ...\nEtoile d'Emeraude sortit les griffes a son tour , si il fallait se battre , elle l'aurait fait avec plaisir , elle le ferait pour proteger son clan .\nSujet: Re: Rencontre Dim 11 Jan - 14:15\n- Bon. Je te laisse pour cette fois, mais quitte les terres du Vent tout de suite. J'ai d'autres chats à fouetter, navrée pour cette expression, alors va-t-en. A moins que tu ai quelque chose à me dire, ou que tu désires te battre ...\nEtoile Orageuse fixa Etoile d'Emeraude dans les yeux, et retroussa ses babines, de façon à montrer ses dents et à prouver à la meneuse qu'elle ne plaisantait pas.


Au niveau de la logistique externe, le système de distribution de San Miguel est très large. L'entreprise distribue ses produits aux Philippines, et dans plusieurs autres pays de l'Asie du sud-est. Elle est également présente aux Etats-Unis, et en Europe (notamment en France).\nAux Philippines, ils disposent de 5 points d'installations principaux (Pampaga; Metro Manilla; Bacolod; Mandaue; Davao).\nLa société maintient un réseau de cinq brasseries locales qui sont stratégiquement situés dans les trois principales îles des Philippines: Luzon, Visayas et Mindanao.\nI. Méthodes de distribution des produits\nII. Commercialisation et ventes\n[...] Vous pouvez faire face à des pénuries de productions suite à des hausses de la demande, dans n'importe quelles parties du pays. Cela aide aussi la compagnie à veiller à ce que le produit soit fraichement livré dans les grandes surfaces, et tout cela à un prix optimal. Vous avez 3 projets en construction d'usines d'embouteillages aux Philippines. Votre Société dispose donc d'un système de distribution de grande envergure et efficace dans les Philippines, qui est basé sur des brasseries situées stratégiquement mais également sur la gestion efficace des prestataires de services sous traitants. [...]\n[...] Vous ne vendez pas vos produits sur votre site internet. Cependant, on peut en acquérir sur les sites marchands de distributeur, qui livrent à domicile. On peut souligner l'augmentation de vos ventes exportées qui ont doublé en 2012, ce qui a entraîné 11% de hausse des volumes de production. Services: Les différentes plateformes présentes sur les territoires permettent une livraison rapide et assure un service optimal en cas de pénuries de stocks. Il existe même une flotte à la disposition de votre entreprise pour pouvoir transporter les produits encore plus rapidement. [...]\n[...] Votre Groupe maintient une force de ventes d'environ 656 dans ces cinq pays, avec 18 points de vente dans les régions chinoises (Guangzhou, Foshan Grand, Baoding), sept en Thaïlande, quatre au Vietnam et cinq en Indonésie. En Thaïlande, toutes les ventes locales sont fait à travers le service marketing du Groupe, San Miguel Marketing Thaïlande Limited tandis qu'en Indonésie, la distribution de produits se fait par Jangkar Delta Indonésie une filiale de votre Groupe. La force de vente de votre Société San Miguel vous permettent de pouvoir négocier des tarifs au près des gestionnaires particuliers de stocks. [...]\n[...] Votre société maintient un réseau de cinq brasseries locales qui sont stratégiquement situés dans les trois principales îles des Philippines: Luzon, Visayas et Mindanao. Vos Société possède des brasseries dans chacune de ces villes : Valenzuela City, Metro Manille, San Fernando City, Pampanga; Mandaue City, Cebu; Bacolod City,Negros Occidental, et Darong, Sta. Cruz, Davao del Sur. Ces différentes brasseries ont acquises des normes ISO diverses depuis le début de leurs implantations. Vous avez développé votre produit dans différents pays grâce à l'acquisition d'une licence, au Népal et au Royaume-Uni. [...]


Visiter la Maison d'Izieu durant les vacances - Maison d'Izieu\nVisiter la Maison d’Izieu durant les vacances\ndu samedi 19 octobre au dimanche 3 novembre 2019\nsur les jours et heures d’ouverture du mémorial\nVISITES ACCOMPAGNÉES EN SEMAINE\nà 15h30 les lundis, mardis, jeudis et vendredis durant les vacances scolaires\nLa Maison d’Izieu propose une visite de la maison accompagnée par un médiateur pour découvrir le lieu de vie des enfants, leurs lettres, leurs portraits.\nVISITES ACCOMPAGNÉES LES WEEK-ENDS ET JOURS FÉRIÉS (1er novembre)\nà 14h30 et 15h30 : visites de la maison\nà 16h30 : visites de l’exposition permanente sur la thématique\n« Justice et mémoire : le procès K. Barbie »\nATELIER-VISITE POUR LES ENFANTS DE 8 À 13 ANS\nLes mercredis 23 et 30 octobre, à 14h30\nCet atelier-visite est dédié aux enfants de 8 à 13 ans accompagnés de leurs parents. Il est adapté à l’âge de chaque enfant et permet de découvrir le parcours des enfants juifs et de leur famille durant la Seconde Guerre mondiale. La première partie est consacrée à 45 minutes d’atelier, la seconde à la visite de la maison, lieu de mémoire où sont rassemblés les dessins et lettres des enfants.\ndurée : 1h30 sur inscription (20 enfants maximum) à l’adresse reservation@www.memorializieu.eu\nBillet d’entrée sur le site : normal 7 € / réduit 5 euros ;\nSupplément visites accompagnées : La maison 2 € / La maison + un thème de l’exposition 3 € /\natelier-visite pour les enfants 2 €\nGroupe à partir de 20 personnes 6 €


ᐅ Avis Balsamik 2019 : 551 Avis en Septembre 2019 (Page 22)\nAvis Balsamik au 23 Septembre 2019\nBRIGITTE L13 avis Inscrit depuis le 08/05/2013\nLa reprise de DAXON a été une réussite car élargie vers d'autres catégories d'acheteurs potentiels. Ils ont l'air d'être plus rapide en traitement et en livraison que leur prédécesseur. (pourvu que cela dure)) Jusqu'à présent sur tout ce que j'ai commandé, je n'ai pas été déçue. J'ai même retourné une paire de chaussures car ma prothèse ne rentrait pas. J'ai été très vite remboursée sur mon compte.\n1er achat chez ce marchand\nJ'ai commande pour la première fois chez ce marchand des sous vêtements de marque "Eminence" Livraison en 3 jours Produit de bonne qualité conforme a mon attente a un pris défiant toute concurrence\nVaxelaire M3 avis Inscrit depuis le 21/11/2013\nBon vendeur, pas du tout déçus.\nirène L9 avis Inscrit depuis le 15/12/2011\nlivraison faite à peu près en temps et en heure, la marchandise reçue correspondait à ce que j'avais commandée et reste toujours satisfaite, même si l'enseigne a changé de nom\nCHRISTINE P6 avis Inscrit depuis le 16/01/2008\ndéçu par le produit le remboursement a été rapide\nDepuis des années je commande chez DAXON et je ne suis jamais déçue. Les produits sont de bonnes qualité et les prix a peu près raisonnable. Je recommande ce site les retours sont faciles au point relais.\ncomme d'habitude, toujours aussi satisfaite de mon achat. rapidité d'envoi du colis, les emballages sont très correct.\nsophie R9 avis Inscrit depuis le 15/09/2012\ntoujours satisfait de tout\nles articles sont toujours de bonne qualité et tout est nickel\nqualité a prix compétitfs\nIl fait bien regarder ce que l'on achete car les produits sont un peu vieillots à mon goût. Par contre avec les promotions régulières les prix sont très interessants et je trouve toujours quelque chose pour me faire plaisir sans sortir de chez moi.\nLeroux D9 avis Inscrit depuis le 02/02/2012\nmalgré le changement, toujours bien\nje trouve des articles qui me conviennent mais je m'y dirige plutot en période de soldes sinon c'est trop cher pour mon budget étudiante. en revanche on y trouve très facilement les classiques\nmichelle a5 avis Inscrit depuis le 02/12/2013\nAurélie A13 avis Inscrit depuis le 26/12/2012\nCe site est très bien de part sa diversité de tailles (jusqu'au 4XL pour certains modèles), son choix et ses réductions. Par exemple ma commande atteignait 120 € et je n'ai payé que 70 € ! Les frais de port sont gratuits à partir de 69 € (en point relai) et le délai de livraison est très rapide (2 jours). Je recommande !\nMONIQUE G2 avis Inscrit depuis le 01/04/2013\nbonnes réductions toujours agréable\nDOMINIQUE P71 avis Inscrit depuis le 10/02/2009\ntres bonne marchandise les article arrive tres vite je recommande se site\nBalsamik remplace Daxon, site sur lequel j'avais l'habitude de commander régulièrement. Je vais donc maintenant passer commande sur Balsamik, le site est remis à jour, plus coloré, plus clair. Les prix sont restés stables, la collection plus moderne, des coloris plus au goût du jour. Des réductions avantageuses et la livraison est rapide.\nodile p24 avis Inscrit depuis le 07/01/2013\nlivraison rapide bien emballer je suis satisfaite du produit\nHélène G48 avis Inscrit depuis le 24/01/2009\nCommande s'est très bien passée ; je l'ai faite le dimanche et j'ai été livrée le jeudi qui a suivi, donc 4 jours; très appréciable. Vêtements semblent être de bonne qualité et agréables à porter. Cependant était inscrit :livraison gratuite dès 69 euros d'achat/ J'ai acheté pour 78,68 euros et j'ai coché pour avoir la newsletter(étant ma 1ère commande)et j'avais 10 euros de réduction sur 1ère commande. On me les a déduits mais j'ai payé la livraison car mon total était de 68,78 avec la réduction des 10 euros alors que le site dit : dès 69 D'ACHAT !!! je me suis plainte mais il ne m'ont pas donné la livraison gratuite !!! alors j'estime que c'est de la publicité mensongère.devrait dire Total doit être 69 euros ou supérieur !!!\nMathilde D12 avis Inscrit depuis le 23/02/2008\nNouveau site pour Damart\nAprès avoir tester le nouveau site pour les produits de marque Damart j'ai été agréablement surprise du choix sur le site et des nombreuses autres marques présentes, ce qui facilite nettement les achats en ligne et fais baisser les frais de port.\nMARINE A20 avis Inscrit depuis le 15/09/2009\nAnciennement Daxon, impeccable, livraison rapide, des produits la redoute moins chers que la redoute elle-même en utilisant des codes promos trouvés sur igraal ... produit de bonne qualité , à recommander\nreçu en temps et en heure et bonne marchandise\noperaitalian1 avis Inscrit depuis le 09/07/2010\nBonjour, je suis cliente chez Daxon depuis des années et ai toujours été satisfaite maintenant cela devient Balsamik tout est compliqué, c'est très désagréable et je vous informe que vous me perdez définitivement comme cliente\nmartine g73 avis Inscrit depuis le 02/01/2013\nj'avais l'habitude de commander sur daxon et j'étais livré en 48 heures au relais colis, don cpour ma première commande un peu déçu, je ne serai livré que samedi; commande de mardi soir sinon le site est agréable, plus moderne\nmag197011 avis Inscrit depuis le 14/05/2013\nJe viens de découvrir ce site en cherchant des bottes sur internet. J'ai été assez déçue... Le site n'est pas très attrayant je trouve car pas très décoré. De plus, les réductions ne vont que jusqu'à 30% ce qui est peu comparé à de nombreux sites.\nLe site nous propose des vêtements, chaussures ou accessoires pour hommes et femmes à des prix très corrects. On y retrouve de grandes marques comme ADIDAS ou DIM. La livraison est gratuite dès 69 € d'achat et le cashback est de 4%.