Versions Compared

Key

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

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 Removed

  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 Removed

  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 Removed

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).

...

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 Added

  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 Added

  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 Added

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).

L’action de déclinaison projet est datapushcontent. Lors de la création, nous appelons les jsp suivantes :

/bov3/datapushcontent/initNotCopiedObjects.jsp

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

<%@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();
}
// on ne duplique pas les collections ofd'objets frontlink'de type objects are not duplicated
'frontlink';
notCopiedObjects.add("frontlink");
request.setAttribute("notCopiedObjects", notCopiedObjects);
%>
/bov3/datapushcontent/initForcedValues.jsp

initializes the initialise la java. 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

    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é.

    <%@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();
    }
    /*
    
    During
    Lors 
    a
    d'une 
    declination
    déclinaison, 
    we
    on veut 
    always
    systématiquement 
    want
    vider 
    to
    le 
    empty
    champs 
    the
    '
    tag' 
    field
    du
    
    of
     
    the
    produit 
    product
    pour 
    so
    que 
    that
    l'utilisateur 
    the
    ressaisisse 
    user
    les 
    re-enters
    associations 
    the
    de tag
    assossiations with project-specific information.
     avec
     des informations spécifiques au projet de destination
    */
    if (!forcedValues.containsKey("tag")) {
    forcedValues.put("tag", "");
    }
    request.setAttribute("forcedValues", forcedValues);

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

    • [objects/[object namenom d’objet]]/bov3/datapushcontent/forcedvalues/properties/[property native type natif de la propriété]/[property nature]/[property namenom de la propriété].jsp

    • [objects/[object namenom d’objet]]/bov3/datapushcontent/forcedvalues/properties/[property namenom de la propriété].jsp

    • [objects/[object namenom d’objet]]/bov3/datapushcontent/forcedvalues/properties/[property native type natif de la propriété]/[property type de la propriété].jsp

    topic fr 312d7 enImage Removed
    Within these JSPs, you can work with the following variables
    topic fr 312d7Image Added

    À l’intérieur de ces JSPs, vous disposez pour travailler des variables suivantes :

    form_object

    nature 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 relationshipde 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;

    forcedValues

    java.util.HashMap properties to force

    Standard errors

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

    Here are the error codes you may encounter

    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 :

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

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

    function_not_activates active

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

    object_not_found

    The object to translate does not existl’objet à traduire n’existe pas.

    not_authorized

    You 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 valuevous 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éfaut.