Guide - 7.8 Migration Enhanced Content Sharing

1 Introduction

Enhanced Content Sharing allows you to make changes to content that has been shared from a different source. These changes include:

  • Deviate from the shared page composition - Makes it possible to assign different components to shared slots
  • Apply other values to shared configuration parameters such as Freestyle HTML, Image references etc.

This document is split into two parts.

The first part guides you through the necessary database migration for the feature. It does not introduce new API or API changes done to existing CMS parts. Based on the assumption that predominantly database administrators or technical consultants with a database background should read this document.

Second part will briefly explain how you can allow changes and hide contents of a shared slot with the new enhanced sharing approach. That part is targeted to consultants with knowledge of previous versions of Intershop Commerce Suite.

2 Database Migration

You can execute the database migration by using the DBmigrate command line tool. The migration preparer is registered as Class1 in bc_pmc's migration-to-12.0.0.0.properties. You can invoke it via following commands or automatically without any further command line switches.

OSCommand
Windows
dbmigrate --force-exec-id=bc_pmc:12.0.0.0:Class1
Linux
dbmigrate.sh --force-exec-id=bc_pmc:12.0.0.0:Class1

Migration produces data to transform existing data into semantically equal new data. A customized UUID calculation for new data is done based on UUID of the existing record. This is to ensure that in a data replication environment the UUID calculation is deterministic.

3 Bring Me Up To Date

3.1 Changes To Slots And Placeholders

In the former days it was merely possible to place pagelets on top of shared content. Configuration parameters of shared pagelets could not be changed at all.

Additionally, it was possible to specify individual "Allow changes" and "Allow hiding" settings for each slot on organization level. Specifying how the slot should behave when rendered or edited.

On sharing receiver level one could decide to completely hide the contents of a shared slot when checking 'hidden'. Provided that the master allowed the hiding via above mentioned setting.

With Enhanced Content Sharing in place shared content can now also be changed on the sharing receiver's side. Above settings are reduced to one check box only, that is "Allow changes". Simply click on theicon behind a slot to find these options. The owner of the slot (be it at organization or channel level) can decide to make a slot read only. By doing so the user decides what can be done with the slot in sharing scenarios.

Hiding contents of a slot can simply be done if the slot is not read only (alias: changes are allowed). The user just has to click on 'Overwrite' button and remove the contents of the slot, therefore making the slot empty in this particular context.

3.2 Import Export Changes

In bc_pmc.xsd PageletSlotSharingInformationType and PageletSlotSharingInformationBaseType are now deprecated. That means you should refrain from using import sources that contain elements like this:

<enfinity
xmlns="http://www.intershop.com/xml/ns/enfinity/6.5/bc_pmc/impex"
xmlns:dt="http://www.intershop.com/xml/ns/enfinity/6.5/core/impex-dt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.intershop.com/xml/ns/enfinity/6.5/bc_pmc/impex staticfiles/definition/bc_pmc.xsd
http://www.intershop.com/xml/ns/enfinity/6.5/core/impex-dt dt.xsd">

        <!-- Start -->    
    <pagelet-slot-sharing-information 
        definition-name="..."
        parent-pagelet-id="..."
        domain="..."
        hidden="..."
        read-only="..."/>
        <!-- End -->


</enfinity>


<enfinity
xmlns="http://www.intershop.com/xml/ns/enfinity/6.5/bc_pmc/impex"
xmlns:dt="http://www.intershop.com/xml/ns/enfinity/6.5/core/impex-dt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.intershop.com/xml/ns/enfinity/6.5/bc_pmc/impex staticfiles/definition/bc_pmc.xsd
http://www.intershop.com/xml/ns/enfinity/6.5/core/impex-dt dt.xsd">
    <shared-pagelet-component id="..." domain="...">
        [..]

        <!-- Start -->
        <shared-slots>
        <slot definition-name="..." hidden="..." read-only="..."/>
        </shared-slots>
        <!-- End -->

    </shared-pagelet-component>
</enfinity>

Note

Intershop removes deprecated elements after 2 minor releases.

Currently the export will not produce theses elements at all. New import sources therefore will not contain these elements.

If the import comes across these elements it will call the setter method for property read-only and hidden on the given slot. For more detailed information see the following section.

3.3 SlotSharingInfo Is Now Deprecated

Former Slot API

public boolean isHidden(Domain domain);
public void setHidden(boolean hiddenFlag, Domain domain);
public void setReadOnly(boolean readOnlyFlag, Domain domain);
public boolean isReadOnly(Domain domain);
public boolean isHideable();
public void setHideable(boolean aFlag);

has been changed to behave according to these rules.

  1. If the domain parameter of the write method is unequal to the slot's owning domain, nothing will be changed to the internal state.
  2. If the domain parameter of the write method is equal to the slot's owning domain, the internal state will be changed accordingly.
  3. isHidden(Domain) will perform a lookup to find out whether a slot is made empty for the given domain (e.g., someone has clicked 'Overwrite' for that particular domain).
  4. isHideable() and setHideable(boolean) will return the slot object's state of column 'HIDEABLEFLAG'.

All methods of above Slot API are deprecated and will be removed.

Note

Intershop removes deprecated elements after 2 minor releases.

The pipelet UpdateSlotVisibility is also deprecated.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Tickets