20

You can add a custom pipeline step to perform the publishing. Below is an example of one that can publish either a specific item (e.g. the root item below which all your DEF items were imported) or an item in the pipeline context (e.g. each item as it's imported). As with all custom pipeline steps, you'll need to perform the following steps: Add a custom ...


9

When you create a new tenant it is disabled by default. You need to enable it. On the tenant item on Administration section you have a checkboxfield Enabled Please see below image: You can enabled or disabled a single pipeline batch. On the pipeline batch processor item on Administration section you have a checkboxfield Enabled Please verify if is ...


8

While a very detailed question, there are still quite many "it depends" open ends. I'm going to make some assumptions based on experience, and give you my view. I'll start by shaking the box to try and do some outside thinking ;-) Shaking the box You don't really want to do page level personalisation on 100k scaling to 1m product pages. You want to do it ...


8

Explanation of what is happening The PropertyValueReader simply reads the value of a property. Unless the property you are reading is already formatted as an ISO date, you cannot set that value on a Sitecore date field and expect that Sitecore will recognize the date. You must convert the value read from the property into an ISO date. When you write "the ...


8

I can suggest the following solution: You need to implement a custom field reader with a custom field converter: using Sitecore.DataExchange.DataAccess; namespace Example { public interface IBaseValueReader: IValueReader { string AttributeName { get; set; } } } AddressFieldReader: using System; using Sitecore.DataExchange.DataAccess;...


8

When converter gets separator value from field its value is "\\r\\n" and at the end your result is "Address1\r\n\City\r\nState\r\nZip". Just add your custom converter. [SupportedIds("[YOUR TEMPLATE ID]")] public class CollectionToStringNewLIneConverter : BaseItemModelConverter<IValueReader> { public CollectionToStringNewLIneConverter(...


7

You can use Field Value Transformer for Write on Sitecore Value Accessor Set. This approach allows you to create a single solution not only for CRM and also for all providers where the source value is Boolean and you need to convert it to Sitecore Checkbox type. Before to run a writer for Sitecore Field Value Writer transformer converts its value to a right ...


6

After lot of investigation, I have seen that the Branch Template cannot be used since I get the following error: Template is invalid (cdbb9572-14b6-4ea2-818e-bb6c15beda94) The reason is because of the Add Method from the namespace Sitecore.Services.Infrastructure.Sitecore.Data.ItemRepository Below is the Code for creating the item: public Guid Add(...


6

I was able to solve this. Navigate to your Sitecore Azure Toolkit path in Powershell and run the following after unblocking all the files. Import-Module .\tools\Sitecore.Cloud.Cmdlets.psm1 Import-Module .\tools\Sitecore.Cloud.Cmdlets.dll And now we can use the commands to create the WDP for the Sitecore Module like Data Exchange Framework by running this ...


6

You can check your log files - Sitecore logs the information about installed Sitecore Modules when the application starts: One more option: assuming that you installed DEF in that environment you will see that information in core database under /sitecore/system/Packages/Installation history/Data Exchange Framework node. There will be one or more nodes with ...


5

Data Exchange Framework is an ETL tool that is configured using Sitecore. It provides the ability to define synchronization processes that read data from a source system, transform the data into a format that is compatible with a target system, then write the transformed data to the target system. xConnect is a new API for getting data in and out of xDB. It ...


5

Unfortunately Dynamics CRM cannot send request to Sitecore to notify that entity was deleted. You can add a custom solution like "Clean Up Sync" pipeline batch to send a request to determine whether Dynamics Crm Entity exists by Sitecore record Id, if no remove record. Option 1 Read Sitecore Records Pipeline: Get All Sitecore Records Step Iterate Step -> [...


5

You need to create Value Reader Converter: public class BoolToCheckboxValueReaderConverter : BaseItemModelConverter<ItemModel, IValueReader> { private BoolToCheckboxFieldReader _reader = (BoolToCheckboxFieldReader)null; private static readonly Guid TemplateId = Guid.Parse("{C3C9E93C-F197-4FBD-820D-DCB565707AF7}"); public ...


5

Override InProcItemModelRepository class. Create patch file to override item model repository. Have look at Sitecore.DataExchange.Local.config There is configuration to specify item model repository. <dataExchange> <tenantRepository type="Sitecore.DataExchange.Repositories.Tenants.SitecoreTenantRepository, Sitecore.DataExchange"> ...


5

The best option would be to create your own Sitecore.DataExchange.Providers.Sc.Processors.PipelineSteps.ResolveSitecoreItemStepProcessor class by decompiling (use DotPeek or ILSpy tools) Sitecore.DataExchange.Providers.Sc.dll and using this instead of OOTB Processor class. There is a DoSearch method there. You also need to create your own Repository ...


5

Sitecore.DataExchange.Plugins.PipelineBatchSummary class has a property EntitySubmitedCount This property is used in ShowPipelineBatchStatusCommand: PipelineBatchSummary pipelineBatchSummary2 = pipelineBatchSummary1; DateTime dateTime; if (pipelineBatchSummary2 != null) { dateTime = pipelineBatchSummary2....


5

I have figured a way: On the Read Contacts from Dynamics Pipeline there is a field "Filter Expression". If I create my custom condition "Where contact is my Test User" with one string condition inside to check the contact id - I can include that into the pipeline. Worked for me.


4

It's not clear to me exactly what you are trying to do, but it sounds like you ran a process to read data from CRM and write that data to Sitecore. Some of that data no longer exists in CRM, so you want to remove the data from Sitecore in order to keep CRM and Sitecore in sync. If this is what you want to accomplish, the first thing you need to do is to ...


4

Case Click a button "Run Pipeline Batch". The command is triggered to run Pipeline Batch and disable the button. Pipeline Batch has been completed (in your case publishing) The "Run Pipeline Batch" button is still disabled. Why it happens? "Run Pipeline Batch" command overrides method " ShouldEnableButton". This method checks whether job finished or not. ...


4

Did some consultancy a few years ago in the travel business - they pushed their data into Sitecore but I'm quite sure they would never do that again.. I would try to go for a hybrid solution where you store some information in Sitecore and keep some (or a lot) in the PMS only. To decide what to sync I would consider: try to keep as much "pages" as ...


4

In order to get customer id you have to change your accessor template to It should be something like this And if the value Guid type you can use transformer Guid to String.


4

As I understand from the answer and code example that Resolve Sitecore Item Pipeline Step is used. This resolver does not resolve languages unlike default language. It means it does not read language(s) from the plugin. Select Languages Pipeline Step assigns language(s) to SelectedLanguagesSettings plugin. Resolve Multilanguage Sitecore Item Dictionary ...


4

So, if in order to get additional detail you have to send a new request by id, I can propose 2 options. Option 1 Create Pipeline step processor that gets all data and loops through them in order to get/send additional request to get data detail by id. (see 4) Next example demonstrates how to sync all Experience Groups. Option 2 Create two ...


4

Sitecore DEF will use index queries to identify the existing items. If you get duplicates and your DEF configuration seems ok, you can run process and check your search logs. Those should list the queries that are performed for identification. If you test those queries against your index (by default the sitecore_master_index and I don't know of any setting ...


3

As the presentation details are stored in fields I wouldn't see why you couldn't use the Sitecore Data Exchange Framework to overwrite them. You'll have to create the right mapping to the field. Info about the mapping can be found here: http://integrationsdn.sitecore.net/DataExchangeFramework/v1.1/getting-started/mapping/index.html But I really doubt that ...


3

Try this. Add references: Sitecore.DataExchange.Local,Sitecore.Services.Core,Sitecore.Services.Infrastructure, Sitecore.Services.Infrastructure.Sitecore. Create a custom repository class based on InProcItemModelRepository. public class CustomRepository : InProcItemModelRepository { public override Guid Create(string itemName, Guid templateId, Guid ...


3

The one of the way do not forget enable tenants or pipeline batches before running you can use a custom extension - "Gutters for Sitecore Data Exchange Framework".


3

Check your Sitecore Item Field Value Accessor Items (the Sitecore Provider items that you created to point at the Sitecore fields that the data should map to) to make sure that you have not set the "Language" field. This field should only be set for multi-language mappings, otherwise the errors in the OP will be logged. Note that I have filed a Sitecore ...


3

When querying for the contacts, the search usually goes through the xConnect Search role to search the xDB Index. If you are not getting results, you might want to check to make sure that your contacts are in the index. Checking Contacts To check if contacts are in the index, you should visit your Solr web admin portal. From there, you would run a query. ...


3

Us we figured out from comments the problem was in the converter for created custom pipeline step. The fix is to specify supported template id for the converter. [SupportedIds("[TEMPLATE ID]")]


Only top voted, non community-wiki answers of a minimum length are eligible