I'm working on implementing a three step workflow for my company's Sitecore 8.2 installation.
Originally I had the final step set up to not have any action or command because we want to manually publish. But, manually publishing does not seem to remove the final workflow state.
Screenshot of the items workflow state after manually publishing
Then when I edit the item, it doesn't move back to the draft state. It's my understanding that when you publish an item that made it to the final workflow state version 1 is created, and editing that item should create a new version and restart the workflow. Is this correct?
After realizing that manually publishing does nothing, I tried setting up a command and action on the final workflow step:
Screenshot of final workflow step command & action
But this does nothing. Is it possible to set up a workflow action to publish? Or is the out of box auto-publish action the only option?
Why are the items getting stuck in this final step and how do I fix this?
Edit: The workflow was getting stuck because I am an admin. When using the roles I set up for Content Author and Approver, I was finally able to get the item to start version 2. I would still like to know if it's possible to set up a command and action to publish? Or is this not necessary if we want to manually publish anyway?
I think i know the issue. I had similar issue while setting up my sitecore workflow and i solved it with some changes in the security settings.
I wrote a blog just now about how to setup Sitecore Workflow. Here is the link for that:
https://tectraveleat.wordpress.com/2018/06/01/sitecore-workflow-setup-v8u2-v9-0-1/
In your case, since you have already setup everything. You might want to take a look at the "Assign security permissions to the roles" section of the blog.
Also, it is necessary to give the roles/users permissions to the datasource. From what i understand, you have setup everything properly, except a minor security permission at the workflow level.
Let me know if this helps. If not, can you share your workflow setup and permissions for the roles? I can take a look at it and see it i can help.
You can follow sample workflow of sitecore. Workflow publish state is final state. It can not move to draft. This process of workflow like this: Draft -> Approved -> Published. Workflow done at here.
If you wanna create version or make page to draft you have to edit it. If you still wanna your page published -> draft, you can custom pipeline of command in workflow. But this solution have many risks, I asked Sitecore support before and they answer it just their logic and you can custom if you want.
Related
The end result:
After publishing an item, all versions will be visible in the WEB DB, instead of the default behaviour of only having the latest item version.
I'm using Sitecore 8.2.170407
After reading this article, I tried to do several things:
Remove both RemoveOtherVersions and PublishTestingVersions processors by doing a <patch:delete />. That did not work
Add my own patch file, which inherits Sitecore.Publishing.Pipelines.PublishVersion.Processors.RemoveOtherVersions and hides/overrides the base Process method. The new method will do nothing.
Image of patch class and Image of patch config
That didn't work either.
Tried removing the whole <publishVersion> pipeline, but that gave an exception when trying to publish an item.
I've not been able to find a solutions anywhere else. I know a similar question has been asked here, but that was in Sitecore 6
Have any of you been in the same situation before? How did you solve the issue?
If you need more information, please let me know.
Thanks in advance
You can't.
The linked answer you provide is still valid. Sitecore "web" database (any database which is a publishing target) stores one and only one version. To modify this, you're going to need to reinvent your own publishing process.
Based on your clarification, it seems what you want to use is standard Sitecore versioning with specified publish start dates to put up a particular version.
All of the versions would live in your master database, and you would regularly run publishes through the publishing agent or some other means in order to send the appropriate version to the web database on the correct date.
Your authors can preview what the page would look like on a particular date using the date picker in the preview mode.
I am trying to find the best mechanism to flag items (which are currently being edited) to prevent them from going live during a full site publish. I don't want to use the built in "Never Publish" as this will un-publish the item, whereas i want the current item to stay live. We are not using workflow elsewhere, so putting it on every item for this feels excessive. We are using 7.5.
Thanks
You don't really need to put the workflow on "Every" item, just set it on standard value of item template, and it will be assigned to all items.
I can't think of any other way than using sitecore workflow, this is how how Sitecore works.
Workflows if your best bet, you can change the workflow steps to go directly from Draft to Approved if you want o avoid the Awaiting Publish step. You only need to set the workflow on the Standard Values of a base template that all other templates inherit.
Once you have workflow enabled, Sitecore will also automatically version Items. This allows you to set the Publishable flag on individual versioned Items.
If you don't want to use workflows for some reason, you can also create a new version of an Item from the Versions tab. Uncheck the Publishable option of the latest version until you are ready (from the Publish tab > Restrictions > Change).
I've been happily developing away on a Sitecore project for the last couple of months. This evening I did what I have done 100 times, smart published the entire site so that I could view it from the web DB as an end user.
When I navigated to the site I discovered that all of my content is gone. All rendering elements are there, but anything in the /sitecore/content tree is missing on the page. Gone. Empty. Nada.
Everything looks fine when I'm logged in and viewing in Page Editor.
I've done several smart publishes and still the same. I was going to try a republish of everything, but after reading the warning dialog I thought I'd wait until I understand what happened.
This is a pretty disconcerting thing. Any one have any ideas?
Check your root or home item , make sure it is in publishable state and check if it published. If the root item is gone your will not see anything on the site.
There are multiple things you will want to check on your root node where content is missing:
Workflow state: If there is only one version, but the workflow state was changed to a non-final version manually, it will not be published.
Publishing Restrictions Publishable state: If the 'Publishable' checkbox has been disabled for any item or version, that item/version will not publish.
Publishing Restrictions by Date: If a date-based publishing restriction has been applied to the item or versions, the item may have been removed because it is no longer in a publishable date range.
If this is on Sitecore 7.2, i think there is a bug where content items just disappear:
http://maxslabyak.com/sitecore/3-new-sitecore-v7-2-bugs-need-know-go-live/
To Fix it, set this setting Publishing.PublishEmptyItems to true
Hope this helps
We have upgraded Sitecore to 7.1, but we are experiencing a problem with publishing.
We create a new item in the master database in English, then we publish this item, switch to the web database to check if it's there, which it is, however... The item does not have a version! Therefore the item is not displaying on the website.
Any ideas as to what could be causing this?
Thanks.
I was having the same issue with Sitecore 8+ where i was able to add language specific content but couldn't publish it. Figured out how to resolve it
1) First Language needs to be registered in \sitecore\system\languages by defining the language to be use.
2) Publish these language items first before publishing content else the behavior will be the same.
3) After publishing languages, then publish the content. In the publish window you will see the language under "Publishing language" section and select the language to publish the content.
Make sure that parent items have a version as well and are also in final state if they are part of a workflow.
I had problems with publishing because I didn't have a language version in one of my parents. In my case it was a parent folder under the content node.
Hope it helps.
Al
Please try republishing your entire site. In some cases, a part of the tree hierarchy might be missing in the Web DB, due to which, publishing the child nodes wouldnt work. Republishing the site can eliminate this chance.
This has been resolved.
It turns out that the SQL server did not have enough space for a full publish. A full publish had been attempted and failed due to the lack of space on the SQL server. subsequently this had corrupted the database.
We had to restore an earlier version of the database and ensure the SQL server had plenty of space for the full publish to finish.
I ran into this issue earlier with my Sitecore 7.2 upgrade. The key here is to ensure the items, templates and layouts (associated with the item) all has appropriate language+versions in master db. In my case, we were also using Partial Language fallback and needed to make that was working proper as well.
Once you identify the item (with missing versions), add them and republish the whole item. For few template types I noticed Sitecore was still not publishing properly. Ex: Items based off Sublayout Folder template. The fix was easy in this case as I changed the template type to Folder and republished.
Also switch to web database in sitecore client and ensure you are able to preview the item (from web db)
Hope this helps.
While items that have reached a final workflow state can be easily published to the WEB database using, for example, a scheduled task that calls PublishManager.PublishSmart, I would like to be able to publish the latest version of all items that are in any workflow state to a different publishing target (for internal preview), essentially bypassing workflow.
What would you recommend to be the most efficient way to perform this, keeping in mind that this needs to happen a few times a day on a schedule and not every time an item is modified and/or changes workflow state?
How would that recommendation change if I changed the requirement by saying that only items that are in some (final and/or not final) specific workflow state (e.g. pending approval and approved) need to be published to the preview publishing target on a schedule?
See this blog post by Alex Shyba: http://sitecoreblog.alexshyba.com/2010/09/publish-to-pre-production-web-database.html. That workflow provider plus a standard publish agent should get you what you are looking for.
You may just want to configure a site that points at the Master database. See this stackoverflow answer on setting up a preview site: Preview site for Sitecore editors
Publish in the context of a site (as defined in web.config under <sites>) that has enableworkflows=false.
Untested, but something like:
using (new SiteContextSwitcher(SiteContextFactory.GetSiteContext("system"))) // workflows not enabled
{
var options = new PublishOptions(Context.ContentDatabase, Factory.GetDatabase("web"), PublishMode.Smart, null, DateTime.Now);
options.PublishingTargets.Clear();
options.PublishingTargets.Add("internal preview");
new Sitecore.Publishing.Publisher(options).Publish();
}
See this answer to the opposite problem!