3

We have implemented XPM with Tridion 2013 SP1 and DXA 1.2 and disabled "Session Preview" as well. Most of the business use cases are functional.

I am running into the following situation. The publisher edits content (at a global level) using a site level publication (site1). Once editing is completed, the publisher does finish editing and the content / page is pushed to our staging website, within the context of the same publication (i.e; everything with site1)

When the publisher is trying to modify another site level publication (site2) inheriting the same content, the XPM interface shows the old content (published) vs. the updated content (in the CM). The publisher can see the updated content only when they try to edit the global component. It is misleading to the publisher, obviously.

Is there some setting that we am missing which would overcome the above scenario? Any thoughts or feedback appreciated.

Update:

Based on the responses, the OOTB approach would be to enable Session Preview. I am updating the question with "Update Preview" enabled in the XPM interface as well.

When I click on 'Update Preview', the XPM interface does NOT throw any errors but it does NOT update the preview as well.

I am receiving the ONLY one WARNING for the following ODATA service (regarding storageTransactionId). No errors or warning in the CM server. Should we do configure the service differently when the storage factory is database vs. file-system?

2017-02-14 09:10:23,186 DEBUG AbstractMethodHandler - Original publication ID for write method parameter [non_entity] is 255.
2017-02-14 09:10:23,186 DEBUG AbstractMethodHandler - Session-publication ID for write method parameter [non_entity] is 284.
2017-02-14 09:10:23,201 DEBUG ReadMethodHandler - Session returned a result for method: findBinaryByPrimaryKey.
2017-02-14 09:10:23,201 DEBUG SessionManagerImpl - Activity on session: 84e12bfb-e137-4a18-8b20-4418cd663184, extending session lifetime until: Tue Feb 14 09:11:23 CST 2017.
2017-02-14 09:10:23,201 DEBUG JPAPreviewSessionDAO - Retrieving PreviewSession by sessionId: 84e12bfb-e137-4a18-8b20-4418cd663184
2017-02-14 09:10:23,201 DEBUG SessionServiceImpl - PreviewSession already exists, updating with PreviewSession [sessionId=84e12bfb-e137-4a18-8b20-4418cd663184, expirationDate=Tue Feb 14 09:11:23 CST 2017]
2017-02-14 09:10:23,201 DEBUG JPAPreviewSessionDAO - Updating PreviewSession: PreviewSession [sessionId=84e12bfb-e137-4a18-8b20-4418cd663184, expirationDate=Tue Feb 14 09:11:23 CST 2017]
2017-02-14 09:10:23,201 DEBUG ODataWebserviceHandler - Commiting webService transaction.
2017-02-14 09:10:23,201 INFO  StorageManagerFactory - Committing storage transaction: 60742d32-850a-471c-b180-8949269416fc
2017-02-14 09:10:23,201 WARN  LocalThreadTransaction - Could not remove the storageTransactionId 60742d32-850a-471c-b180-8949269416fc from the current thread, because there was another storageTransactionId: null
2017-02-14 09:10:23,201 DEBUG LocalThreadTransaction - Received a set on the new method with value: null
2017-02-14 09:10:23,217 DEBUG ODataService - Adding header to response: X-Preview-Session-Token with value: RwFslE4wuKvGI+z3YJLFZLXSphgRxJ0QrA4abtY8XGcP7lUfT80W0F7fi5ND4AVO
2017-02-14 09:10:23,217 DEBUG AmbientRuntime - Ambient Data context initialization.
2017-02-14 09:10:23,217 DEBUG AmbientRuntime - Ambient Data context initialization.
4
  • 1
    "It is misleading to the publisher, obviously." is mainly because you have 'disabled "Session Preview" as well.'. If there a business case for this? is there a technical reason for this? otherwise you will simply need to rebuild some of the functionality that Session Preview affords you OOTB. Commented Feb 14, 2017 at 12:17
  • After your update, am I correctly understanding that it works? Is your question now if you should be worried about the warning or not? By the way, if it works, you will want to turn off the debug level, since that will slow down everything. Commented Feb 15, 2017 at 7:20
  • @BartKoopman, My bad. Typo above. After I enable Session Preview; when I click on 'Update Preview', the XPM interface does NOT throw any errors but it does NOT update the preview as well. No errors in the CM or ODATA service except the above WARNING.
    – Shiva
    Commented Feb 15, 2017 at 14:44
  • So it seems you don't have Session Preview correctly working. Commented Feb 15, 2017 at 15:18

2 Answers 2

5

Your question is:

Is there some setting that we am missing which would overcome the above scenario?

The answer to that simply is:

Yes you missed setting up Session Preview, i.e. you deliberately disabled it for whatever reason. Without a working Session Preview, you will not see the up to date content on a Page after its content has been changed, unless that Page is published.

XPM should notify the editor about out of sync content, but I guess that is failing because of the inherited content in your case. Really Session Preview is what would solve the problem here.

1
  • Thanks Bart for the feedback. I have updated my question above with Session Preview enabled as well.
    – Shiva
    Commented Feb 14, 2017 at 16:30
3

One idea would be to implement a 'soft' notification system where somebody could get notified if a Global Component is modified and also published in any site. (ie. it's ready for prime time). The publisher role would get a link to the staging item and component, and also their local page (with the outdated component). Maybe there is also a link in the notification (email or dashboard) that publishes the page to their local (site2) Staging site? This could also be done automagically if the business rule is consistent enough and avoid notifying people to perform steps.

But I guess what you would like is the 'session preview' feature that tells someone "this Component version is out of date, do you want to Update Preview (ie. publish to staging)". Without XPM, you always go straight to the Component in the Backend and edit it there. It is a bit of over-engineering, but you could possibly re-implement the 'check if the Components on this page are the latest versions' and then give a button to publish to staging and a message in the notification center. That would involve writing a GUI Extension and use the Core Service to get the Components on the page, and check the publish time with the last update time. It's not a trivial thing to do, but it would satisfy your requirement without installing session preview.

Or, you could just install session preview.

1
  • Thanks Rob for your suggestions. I am looking to pursue a more OOTB approach. I have updated my question above with Session Preview enabled as well.
    – Shiva
    Commented Feb 14, 2017 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.