Skip to main content

Copy field value from Web database to Master database using Powershell

Recently, we encountered an instance where we need to copy a particular field value from Sitecore Web database to Master database in a peculiar case.   

I wrote a simple PowerShell script which did the trick. Here is the script and the same can be modified on the case to case basis. Here are the steps.
 1.Filter and select the Sitecore items based on a template id for particular type of items from both master database and web database.
2. Loop through the list and find a matching item based on the item id from Master DB and Web DB. 3. Edit the match which common in both the database.

$pagetempId='{349F8A57-BA39-42DD-A82F-671641D05812}'
$path="/sitecore/content/MySite/Press/News"
$itemsmaster=Get-ChildItem master:$path -recurse | where-object { $_.'TemplateId' -eq $pagetempId}
$itemsweb=Get-ChildItem web:$path -recurse | where-object { $_.'TemplateId' -eq $pagetempId}

foreach($itemweb in $itemsweb)
{
  foreach($itemmaster in $itemsmaster)
  {
     if($itemmaster.Id -eq $itemweb.Id)
     {
         #write-host 'master id: ' $itemmaster.Id "web id: " $itemweb.Id
         #write-host 'master Title' $itemmaster.Title "web Title" $itemweb.Title
          $itemmaster.Editing.BeginEdit()
           $itemmaster["EventStartDate"] = $itemweb["EventStartDate"]
           $itemmaster["EventEndDate"] = $itemweb["EventEndDate"]
          $itemmaster.Editing.EndEdit() | Out-Null
           #write-host 'master: Start ' $itemmaster.EventStartDate "web: start " $itemweb.EventStartDate
           #write-host 'master: End' $itemmaster.EventEndDate "web: end " $itemweb.EventEndDate
           break
     }
  }
}

The above script helped me to copy the field value  EventStartDate and EventEndDate from Web DB to Master without much effort.

Please let me know if you have any queries or comments on this.

Comments

Popular posts from this blog

Sitecore 9.3 Installation | Common Issues and Resolutions

Recently, I have installed and setup Sitecore 9.3 on another machine. I faced similar/same kind of issues which I faced earlier. Thought, it would be helpful to the Sitecore Community if I capture and document them along with resolution steps I which took and be successful in settting up. Here are few of them I could document them. 1. Failed to start service 'Sitecore Marketing Automation Engine - sitecore93xconnect.dev.local-MarketingAutomationService (sitecore93xconnect.dev.local-MarketingAutomationService)'. Solution : This issue occurs because of non-self-signed certificates, hence please follow the below steps to resolve your issue. Execute below PowerShell script to find out if there are any non-self-signed certificates: 1. Open the PowerShell Console (Admin mode recommended) 2. Execute below command Get-Childitem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject} 3. If it shows any results listing any non-self-signed certificates...

Custom Fields in Sitecore (Custom DropLink, DropTree, MultiList, TreeList and Required Field Validator)

Custom Fields in Sitecore Just thought to share few of the custom Sitecore fields that I have created for one of the sample project. This may help the community memebers to easily incorporate them into their project if they need any of them. Here are few. 1. Custom DropLink using Sitecore.Data.Items; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Web; namespace SitecoreCustom.Web.Extensions.CustomFields { public class CustomDropLink : Sitecore.Shell.Applications.ContentEditor.LookupEx { protected override void DoRender(System.Web.UI.HtmlTextWriter output) { this.ExcludeItems(); base.DoRender(output); } private void ExcludeItems() { Item item = Sitecore.Context.ContentDatabase.GetItem(base.ItemID); var LinkedField= Sitecore.StringUtil.ExtractParamete...

GraphQL for Sitecore: A beginner walkthrough

If you are a beginner in GraphQL and you are looking step-by-step by process to setup GraphQL API on Sitecore, please proceed further and setup up GraphQL API for Sitecore Before we jump start Sitecore GraphQL API, let us start some basic introduction of GraphQL. What is GraphQL GraphQL is a query language GraphQL provides a complete and understandable description of the data in your API It gives the power to ask exactly what you need and nothing more Designed to support the needs of the front-end Strongly typed, self-documenting Bandwidth efficient Easy real-time data Sitecore GraphQL API The Sitecore GraphQL API is a generic GraphQL service platform on top of Sitecore. It hosts your data and presents it through GraphQL queries. The API supports real-time data using GraphQL subscriptions Get GraphQL by installing the JSS server components package Sitecore GraphQL does not have any GraphQL endpoints defined by default Define at least one endpoint to use the GraphQL...