Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Est appelé une déclinaison d’entité le principe général de dupliquer une entité de contenu dans un contexte différent à celui d’origine.

Principes

Cette section décrit les différents principes de déclinaison où le projet est la seule variable.

Pour toutes déclinaisons par rapport à la notion de langue, merci de vous référer à la section traduction.

Un objet peut être décliné dans des projets et groupes si celui-ci possède les champs master, group et media :

  • la propriété group est obligatoirement déterminée, un objet comportant celle-ci sera toujours lié à un groupe;

  • le propriété media n’est pas obligatoirement déterminée :

    • si elle est remplie, l’objet appartient au projet et ne sera accessible et exploitable que depuis celui-ci.

    • si elle est vide, on dira que l’objet appartient au groupe uniquement.
      De manière générale, les objets de cette catégorie sont des objets que l’ont veut distribuer au sein du groupe où il seront déclinés. Les projets du groupe, suivant la configuration de l’application seront libres de les exploiter ou non.

Il existe plusieurs méthodes fonctionnelles pour décliner un objet dans un groupe suivant les variable de projet mais, techniquement, elles utilisent toutes ces champs pour fonctionner.

Elles peuvent par contre faire appel à d’autres propriété pour apporter d’autres fonctions.

L’ensemble des déclinaisons projet d’une même instance est présentée dans un onglet autres projets accessible depuis l’action de visualisation.

Pré-requis techniques à la déclinaison entre projets

Pour pouvoir copier un contenu dans un autre projet, il vous faut avoir installé les composants suivants :

  • un objet à copier doit hériter de l’objet contentobjet au moins les informations suivantes :

    • propriété master

    • propriété lang (non obligatoire)

    • propriété media

    • propriété mediagroup

  • le plugin produit WXM_Mediacore doit être activé et le paramètre isPushContentActive à "oui"

  • la sécurité doit permettre aux utilisateur de créer des objets (domaine objectdata et action insert)

Effectuer une déclinaison dans un projet

Dans le back-office, la fonctionnalité copier dans un autre projet permet d’effectuer aisément une déclinaison depuis la visualisation d’un objet :

  1. dans la barre d’outils, cliquez sur le bouton copier dans un autre projet
    topic fr d6bfeImage Removed

  2. une fenêtre va s’ouvrir où vous pouvez sélectionner jusqu’à trois actions :

    • effectuer une copie simple

    • proposer le contenu (cf. proposition de contenu)

    • imposer le contenu (cf. imposition de contenu)
      topic fr fc098Image Removed

  3. Sélectionnez les destinations du contenu.

  4. Paramétrage des nouveaux objets (étape optionnelle cf. paramètrage)

  5. Confirmez l’action à éffectuer

  6. Une page résultat présente les objets créés

Tip
La liste de sélection de projet ne présente que les projets où l’utilisateur peut créer des contenus et où il n’existe pas encore de déclinaison de ce contenu. Il est donc possible que la liste présentée soit vide dans certains cas.

Paramétrer facilement les étapes

Vous pouvez intervenir simplement sur l’étapier de déclinaison simplement via des étiquettes :

Sélection de l’action

La sélection de l’action dépend de plusieurs critères spécifiques à chacune de ces actions. La déclinaison d’un objet vers un autre projet sera toujours disponible, rendez vous dans les sections "imposition" et "proposition" pour obtenir plus d’informations sur leur activation.

Sélection des projets

La smalllist présentant les projets de destination utilise par défaut les champs ayant l’étiquette wxm_datapushcontent_field. Si aucun champs ne la possède, le fonctionnement standard s’applique.

La liste des projets affichés est celle où l’objet courant n’est pas décliné. Pour les objet configuré comme "objet de contenu" (cf paramètres et configuration d’objet), vous avez la possibilité d’appliquer un filtre automatique pour masquer les projets layout-driven et ainsi empécher, par exemple, les utilisateurs de pousser manuellement un objet dans un projet PAO. Ce filtre n’est pas actif par défaut. Pour l’activer vous devez changer la valeur du paramètre pushContentShowLayoutDrivenProjects du plugin WXM_MediaCore.

Liste de résultats

La smalllist présentant les objets nouvellement créés utilise par défaut les champs portant l’étiquette wxm_datapushcontent_field.

Si aucun champs ne cette étiquette alors le fonctionnement standard s’appliquera.

Mise à jour des attributions

topic fr 552c0Image Removed

Lors de l’action de déclinaison, le système crée un nouvel objet pour le contexte de projet sélectionné en dupliquant la source et en changeant certaines propriétés automatiquement :

  • le media sera celui de destination

  • si l’objet est lié à d’autres instances d’objet via la notion d’attribution (child, childmulti) et que ces objets sont aussi déclinables, le système va récupérer automatiquement les version équivalentes pour mettre à jour la propriété

Caution
Si aucun objet correspondant n’est découvert dans le contexte désiré, la propriété sera vide. Cela implique que si la propriété est obligatoire par sa configuration de structure, une erreur sera levée et l’action de déclinaison annulée pour ce projet. (cf. article sur les erreurs standards).
Caution
Nous n’effectuons pas de déclinaison en cascade : si vous désirez ce type de comportement vous devez faire des personnalisations.

Configurer manuellement une propriété lors de la déclinaison

Vous pouvez surcharger manuellement une propriété lors de la déclinaison. En effet, la création d’une déclinaison utilisant le module WmsUtils, forcées dans le nouvel objet ainsi qu’une java.util.HashSet des nous passons en paramètre une java.util.HashMap avec les valeurs qui seront objets de collection à ne pas dupliquer (par exemple des paragraphes).

...

The general principle of duplicate is called an entity declination, a content entity in a different context than the original one.

Principles

This section describes the different principles of declination where the project is the only variable.

For all variations in relation to the notion of language, please refer to section translation.

An object can be declined in projects and groups if it has the master, group and media fields:

  • The group property must be determined, an object containing this one will always be linked to a group

  • The media property is not necessarily determined:

    • If it is completed, the object belongs to the project and will be accessible and usable only from the project.

    • If it is empty, the object belongs to the group only.
      Generally speaking, objects in this category are objects that we want to distribute within the group where they will be declined. The projects of the group, according to the configuration of the application will be free to exploit them or not.

There are several functional methods for decaying an object in a group according to the project variables but, technically, they use all these fields to work.

However, they may use other properties to provide other functions.

All the project variations of the same instance are presented in an tab other projects accessible from the visualization action.

Technical prerequisites

To be able to copy content to another project, you must have installed the following components:

  • an object to be copied must inherit from the object contentobject at least the following information:

    • property master

    • property lang (not required)

    • property media

    • property mediagroup

  • The product plugin WXM_Mediacore must be enabled and the isPushContentActive parameter must be set to yes

  • Security must allow users to create objects (domain objectdata and insert action)

Execute a declination in a project

In the back-office, the copying to another project functionality allows you to easily perform a declination from the visualization of an object:

  1. in the toolbar, click the' copy to another project' button.
    topic fr d6bfeImage Added

  2. a window will open where you can select up to three actions:

    • make a single copy

    • propose the content (see content proposal)

    • impose content (see content imposition)
      topic fr fc098Image Added

  3. Select the content destinations

  4. Setting up the new objects (optional step see setting up the new objects)

  5. Confirm the action to be performed

  6. A result page shows the objects created

Tip
The project selection list only shows projects where the user can create content and where there is not yet a declination of that content. It is therefore possible that the list presented may be empty in some cases.

Easily set up the steps

You can simply intervene on the declination stepboard simply via labels:

Action selection

The selection of the action depends on several criteria specific to each of these actions. The declination of an object to another project will always be available, go to the "imposition" and "proposal" sections for more information on their activation.

Project selection

The smalllist showing destination projects uses fields with the label wxm_datapushcontent_field by default. If no field has it, the standard operation applies.

The list of displayed projects is the one where the current object is not declined. For objects configured as "content objects" (see settings and object configuration), you can apply an automatic filter to hide layout-driven projects and prevent, for example, users from manually pushing an object into a DTP project. This filter is not active by default. To enable it, you must change the value of the pushContentShowLayoutDrivenProjects parameter of the WXM_MediaCore plugin.

List of results

The smalllist presenting newly created objects uses by default fields labeled wxm_datapushcontent_field.

If no fields are shown on this label then the standard operation will apply.

Updating of allocations

topic fr 552c0 enImage Added

During the declination action, the system creates a new object for the selected project context by duplicating the source and changing some properties automatically:

  • the media will be the one of destination

  • If the object is linked to other object instances via the attribution notion (child, childmulti) and these objects are also declineable, the system will automatically retrieve equivalent versions to update the property.

Caution
If no matching object is found in the desired context, the property will be empty. This implies that if the property is required by its structure configuration, an error will be removed and the declination action cancelled for this project. (see article on standard errors).
Caution
We do not make a cascade declination: if you want this type of behavior you must customize it.

Manually configure a property during declination

You can manually override a property when declining. Indeed, the creation of a declination using the module WmsUtils, forced in the new object as well as a java.util.HashSet we pass in parameter a java.util.HashMap with the values which will be objects of collection not to duplicate (for example paragraphs).

The project declination action is datapushcontent. When creating, we call the following JSPs:

/bov3/datapushcontent/initNotCopiedObjects.jsp

initialise la initializes java.util.HashSet des objets à ne pas copier en cascade Vous pouvez personnaliser cette JSP dans votre san de cette façon hashSet objects not to be copied cascade. You can customize this JSP in your SAN this way:

<%@page pageEncoding="ISO-8859-15"%>
<%@taglib prefix="noheto" uri="/WEB-INF/noheto.tld" %>
<%@taglib prefix="c" uri="/WEB-INF/c.tld" %>
<%--
/san/bov3/datapushcontent/initNotCopiedObjects.jsp
--%>
<%
java.util.Set notCopiedObjects = (java.util.HashSet) request.getAttribute("notCopiedObjects");
if (notCopiedObjects == null) {
notCopiedObjects = new java.util.HashSet();
}
// oncollections neof' dupliquefrontlink' pastype lesobjects collectionsare d'objets de type 'frontlink';
not duplicated
notCopiedObjects.add("frontlink");
request.setAttribute("notCopiedObjects", notCopiedObjects);
%>
/bov3/datapushcontent/initForcedValues.jsp

initialise la initializes the java. util.HashMap et itère sur chaque propriétés de l’objet afin de les surcharger lors de la copie

Vous pouvez personnaliser un champs de deux manières :

  • si vous indiquez en tant que clé le nom ou la position de la propriété: vous surchargerez la propriété de manière globale, c’est-à-dire qu’elle sera appliquée quelle que soit la nature de l’objet.

  • si vous indiquez en tant que clé [nom d’objet].[nom de propriété ou indice] : vous surchargerez la propriété de manière fine, c’est-à-dire qu’elle ne sera appliquée que pour la nature de l’objet précisé

    HashMap utility and iter on each object’s properties to overload them when copying.

    You can customize a field in two ways:

    • if you specify the name or position of the property as a key:
      you will overload the property globally, i. e. it will be applied regardless of the nature of the object.

    • if you specify as key[object name].property name or index]:
      you will overload the property in a fine way, i.e. it will be applied only for the nature of the specified object.

      <%@page pageEncoding="ISO-8859-15"%>
      <%@taglib prefix="noheto" uri="/WEB-INF/noheto.tld" %>
      <%@taglib prefix="c" uri="/WEB-INF/c.tld" %>
      <%--
      /san/bov3/datapushcontent/initForcedValues.jsp
      --%>
      <%
      java.util.Map forcedValues = (java.util.Map) request.getAttribute("forcedValues");
      if (forcedValues == null) {
      forcedValues = new java.util.HashMap();
      }
      /*
      
    Lors
    • During 
    d'une
    • a 
    déclinaison
    • declination, 
    on
    • we 
    veut
    • always 
    systématiquement
    • want 
    vider
    • to 
    le
    • empty 
    champs
    • the' 
    '
    • tag' 
    du
    • field of 
    produit
    • the 
    pour
    • product 
    que
    • so 
    l'utilisateur
    • that
      
    ressaisisse
    • the 
    les
    • user 
    associations
    • re-enters 
    de
    • the tag 
    avec
    • assossiations with 
    des informations spécifiques au projet de
    • project-specific information.
      destination
      */
      if (!forcedValues.containsKey("tag")) {
      forcedValues.put("tag", "");
      }
      request.setAttribute("forcedValues", forcedValues);

    Vous pouvez aussi personnaliser les propriétés par champs en surchargeant les propriétés de cette façon You can also customize properties by fields by overloading the properties in this way:

    • [objects/[nom d’objetobject name]]/bov3/datapushcontent/forcedvalues/properties/[property native type natif de la propriété]/[property nature]/[nom de la propriétéproperty name].jsp

    • [objects/[nom d’objetobject name]]/bov3/datapushcontent/forcedvalues/properties/[nom de la propriétéproperty name].jsp

    • [objects/[nom d’objetobject name]]/bov3/datapushcontent/forcedvalues/properties/[property native type natif de la propriété]/[property type de la propriété].jsp

    topic fr 312d7Image Removed
    À l’intérieur de ces JSPs, vous disposez pour travailler des variables suivantes
    topic fr 312d7 enImage Added

    Within these JSPs, you can work with the following variables:

    form_object

    nature de l’objet courant en court de déclinaison;

    activeRefererObject

    objet de référence en court de déclinaison;

    itemValue

    CTObjectField correspondant à la propriété courante;

    colfield

    nom de la propriété courante;

    nature

    nature de l’objet pointé dans le cadre d’une relation d’attribution;of the current object in short declination

    activeRefererObject

    reference object in declination

    itemValue

    CTObjectField corresponding to the current property

    colfield

    name of the current property

    nature

    nature of the object pointed out in the context of an attribution relationship

    forcedValues

    java.util.HashMap des propriétés à forcer.

    Erreurs standards

    Lors d’une déclinaison projet, les erreurs sont affichées dans la liste des résultats.

    Voici les codes d’erreur que vous pouvez rencontrez

    properties to force

    Standard errors

    During a project declination, errors are displayed in the results list.

    Here are the error codes you may encounter:

    la fonction de déclinaison projet est désactivée. Vous devez en référer à votre administrateur
    not_connected

    votre Your session a expirée, il faut vous reconnecterhas expired, you need to log in again.

    function_not_active activates

    The project declination function is disabled. You must refer to your administrator.

    object_not_found

    l’objet à traduire n’existe pasThe object to translate does not exist.

    not_authorized

    vous n’avez pas les droits nécessaires pour voir l’instance le projet de destination doit être accessible à l’utilisateur. Vérifiez qu’il a bien accès à celui-ci; la sécurité est testée dans les initialisations de l’action datatranslate, par défaut nous testons l’action view du domaine objectdata, vérifiez les règles de sécurité ou surchargez ce booléen avec une règle spécifique à vos développements.

    not_compliant

    l’objet demandé n’a pas les propriétés nécessaires pour la fonction de déclinaison (cf. pré-requis techniques)

    mandatoryFields

    l’objet n’a pu être créé car certains champs obligatoires sont vides. Cette erreur est souvent levée car une correspondance n’a pu être découverte sur une association. La valeur associée à cette erreur est la liste des champs qui sont vides.
    Il faut décliner les associations avant de décliner l’objet demandé.+ L’erreur est levée par une obligation structurelle. Si cette obligation n’est que fonctionnelle, vous pouvez créer une facette pour la rendre obligatoire uniquement en contribution back-office.
    Personnalisez le champs pour gérer une valeur par défautYou don’t have the necessary rights to see the instance. The destination project must be accessible to the user, make sure that he has access to it.
    Security is tested in the init of the datatranslate action, by default we test the action view of the objectdata domain, check the security rules or overload this boolean with a rule specific to your developments.

    not_compliant

    The requested object does not have the necessary properties for the declination function (see technical prerequisites).

    mandatoryFields

    The object could not be created because some mandatory fields are empty. This error is often solved because a match could not be found on an association. The value associated with this error is the list of fields that are empty.
    Decline the associations before declassifying the requested object.
    The error is removed by a structural obligation. If this obligation is only functional, you can create a facet to make it mandatory only as a back-office contribution.
    Customize the field to manage a default value.