From af7a65ad917f8bc040e4e54a126dff4e17e35448 Mon Sep 17 00:00:00 2001 From: Maxim Klakov Date: Tue, 4 Jul 2017 11:52:16 +0300 Subject: [PATCH 1/4] Selfie logger added (DEF 2.0 only) Selfie logger is a Pipeline Step, where you can setup Object Location and list of Value Accessors, and it will write all desired values of Source/Target object to its "SelfieField" every time it runs. very useful to test some new readers and resolvers. Please note: DEF 2.0 is not released as nuget package yet, so I've added lib folder. Should be changed to packages in future. --- .../SelfieLoggerPipelineStepConverter.cs | 58 ++++ .../SelfieLogger/SelfieLoggerSettings.cs | 15 + .../SelfieLogger/SelfieLoggerStepProcessor.cs | 80 +++++ ...core.DataExchange.Examples.Sitecore.csproj | 70 +++++ .../packages.config | 4 + .../templates/Data Exchange/Tools.item | 52 ++++ .../Data Exchange/Tools/Examples.item | 52 ++++ .../Tools/Examples/Pipeline Steps.item | 52 ++++ .../Pipeline Steps/Selfie Logger.item | 73 +++++ .../Selfie Logger/Accessors.item | 59 ++++ .../Accessors/ObjectLocation.item | 87 ++++++ .../Accessors/ValueAccessors.item | 87 ++++++ .../Selfie Logger/Endpoints.item | 221 +++++++++++++ .../Selfie Logger/Endpoints/EndpointTo.item | 291 ++++++++++++++++++ .../Pipeline Steps/Selfie Logger/Selfie.item | 52 ++++ .../Selfie Logger/Selfie/SelfieField.item | 66 ++++ .../Selfie Logger/__Standard Values.item | 66 ++++ Sitecore.DataExchange.Examples.sln | 10 +- lib/README.txt | 6 + ...ore.DataExchange.Examples.Sitecore-0.1.zip | Bin 0 -> 47532 bytes ...itecore.DataExchange.Examples.Sitecore.xml | 131 ++++++++ 21 files changed, 1530 insertions(+), 2 deletions(-) create mode 100644 Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerPipelineStepConverter.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerSettings.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerStepProcessor.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj create mode 100644 Sitecore.DataExchange.Examples.Sitecore/packages.config create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ObjectLocation.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ValueAccessors.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints/EndpointTo.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie/SelfieField.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/__Standard Values.item create mode 100644 lib/README.txt create mode 100644 sitecore packages/Sitecore.DataExchange.Examples.Sitecore-0.1.zip create mode 100644 sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml diff --git a/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerPipelineStepConverter.cs b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerPipelineStepConverter.cs new file mode 100644 index 0000000..526a695 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerPipelineStepConverter.cs @@ -0,0 +1,58 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.SelfieLogger +{ + using System; + using System.Linq; + using Converters.PipelineSteps; + using DataAccess; + using Extensions; + using Models; + using Plugins; + using Repositories; + using Services.Core.Model; + + public class SelfieLoggerPipelineStepConverter : BasePipelineStepConverter + { + public const string EndpointTo = "EndpointTo"; + public const string ValueAccessors = "ValueAccessors"; + public const string ObjectLocation = "ObjectLocation"; + + private static readonly Guid TemplateId = Guid.Parse("{B4B7D23D-1994-4B4F-B512-53305AFAAE07}"); + + public SelfieLoggerPipelineStepConverter(IItemModelRepository repository) : base(repository) + { + SupportedTemplateIds.Add(TemplateId); + } + protected override void AddPlugins(ItemModel source, PipelineStep pipelineStep) + { + AddEndpointSettings(source,pipelineStep); + AddSelfieSettings(source, pipelineStep); + } + private void AddEndpointSettings(ItemModel source, PipelineStep pipelineStep) + { + var settings = new EndpointSettings(); + var endpointTo = ConvertReferenceToModel(source, EndpointTo); + if (endpointTo != null) + { + settings.EndpointTo = endpointTo; + } + pipelineStep.AddPlugin(settings); + } + + private void AddSelfieSettings(ItemModel source, PipelineStep pipelineStep) + { + var settings = new SelfieLoggerSettings + { + ObjectLocation = GetStringValue(source, ObjectLocation), + SelfItemId = source.GetItemId() + }; + + var accessors = ConvertReferencesToModels(source, ValueAccessors); + if (accessors != null) + { + settings.ValueAccessors = accessors.ToList(); + } + + pipelineStep.AddPlugin(settings); + } + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerSettings.cs b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerSettings.cs new file mode 100644 index 0000000..4e700eb --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerSettings.cs @@ -0,0 +1,15 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.SelfieLogger +{ + using System; + using System.Collections.Generic; + using DataAccess; + + public class SelfieLoggerSettings : IPlugin + { + public List ValueAccessors { get; set; } + public string ObjectLocation { get; set; } + public Guid SelfItemId { get; set; } + public const string SelfieField = "SelfieField"; + + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerStepProcessor.cs b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerStepProcessor.cs new file mode 100644 index 0000000..21739ea --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/SelfieLogger/SelfieLoggerStepProcessor.cs @@ -0,0 +1,80 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.SelfieLogger +{ + using System; + using System.Linq; + using Contexts; + using DataAccess; + using Extensions; + using Models; + using Processors.PipelineSteps; + using Providers.Sc.Plugins; + using Services.Core.Diagnostics; + + public class SelfieLoggerStepProcessor : BasePipelineStepProcessor + { + + public override void Process(PipelineStep pipelineStep, PipelineContext pipelineContext, ILogger logger) + { + if (pipelineStep == null) + { + throw new ArgumentNullException(nameof(pipelineStep)); + } + + if (pipelineContext == null) + { + throw new ArgumentNullException(nameof(pipelineContext)); + } + + var endpointSettings = pipelineStep.GetEndpointSettings(); + + if (endpointSettings == null) + { + return; + } + + var repositorySettings = endpointSettings.EndpointTo.GetPlugin(); + var repository = repositorySettings?.ItemModelRepository; + + if (repository == null) + { + return; + } + var selfieLoggerSettings = pipelineStep.GetPlugin(); + + if (selfieLoggerSettings == null) + { + return; + } + + var itemId = selfieLoggerSettings.SelfItemId; + var itemModel = repository.Get(itemId); + + itemModel[SelfieLoggerSettings.SelfieField] += Environment.NewLine + DateTime.Now.ToString("t") + " : "; + + var objectLocation = selfieLoggerSettings.ObjectLocation; + var objectModel = GetObjectFromPipelineContext(objectLocation, pipelineContext, logger); + + if ((objectLocation == null) || (objectLocation == String.Empty) || (objectModel == null)) + { + itemModel[SelfieLoggerSettings.SelfieField] += "No object set;"; + repository.Update(itemId, itemModel); + return; + } + if (selfieLoggerSettings.ValueAccessors.Any()) + { + var i = 0; + foreach (var valueAccessor in selfieLoggerSettings.ValueAccessors) + { + var data = valueAccessor.ValueReader.Read(objectModel, new DataAccessContext()); + if (data.WasValueRead) + { + itemModel[SelfieLoggerSettings.SelfieField] += ( i > 0 ? ", " : String.Empty) + data.ReadValue; + } + i++; + } + repository.Update(itemId, itemModel); + } + } + + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj b/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj new file mode 100644 index 0000000..320bc29 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {583CD139-3B8E-479C-9F29-43BA41501324} + Library + Properties + Sitecore.DataExchange.Examples.Sitecore + Sitecore.DataExchange.Examples.Sitecore + v4.6.2 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\lib\Sitecore.DataExchange.dll + False + + + ..\lib\Sitecore.DataExchange.DataAccess.dll + False + + + ..\lib\Sitecore.DataExchange.Providers.Sc.dll + False + + + ..\packages\Sitecore.Services.Core.8.1.151003\lib\NET45\Sitecore.Services.Core.dll + False + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sitecore.DataExchange.Examples.Sitecore/packages.config b/Sitecore.DataExchange.Examples.Sitecore/packages.config new file mode 100644 index 0000000..3b5f5cf --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools.item new file mode 100644 index 0000000..13ee35c --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools.item @@ -0,0 +1,52 @@ +----item---- +version: 1 +id: {28397B3B-520A-4B6E-84DF-FEC36D65B39F} +database: master +path: /sitecore/templates/Data Exchange/Tools +parent: {2E83FEC6-4E19-41F7-B375-81C67AC7A03A} +name: Tools +master: {00000000-0000-0000-0000-000000000000} +template: {0437FEE2-44C9-46A6-ABE9-28858D9FEE8C} +templatekey: Template Folder +created: 20170506T203128Z + +----version---- +language: en +version: 1 +revision: f420da6b-7589-4af9-aa0a-8feaa63d9265 + +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170506T203128Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +f420da6b-7589-4af9-aa0a-8feaa63d9265 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170506T203128Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\Admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples.item new file mode 100644 index 0000000..337463e --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples.item @@ -0,0 +1,52 @@ +----item---- +version: 1 +id: {630690A7-7EE8-4819-B79A-0A828D8525F6} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples +parent: {28397B3B-520A-4B6E-84DF-FEC36D65B39F} +name: Examples +master: {00000000-0000-0000-0000-000000000000} +template: {0437FEE2-44C9-46A6-ABE9-28858D9FEE8C} +templatekey: Template Folder +created: 20170704T072359Z + +----version---- +language: en +version: 1 +revision: b81f4bed-547a-4a10-8d19-663e475506e3 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170704T072359Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +b81f4bed-547a-4a10-8d19-663e475506e3 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170704T072359Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps.item new file mode 100644 index 0000000..1775d69 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps.item @@ -0,0 +1,52 @@ +----item---- +version: 1 +id: {511E680F-67D3-4888-8751-62754AF34DE3} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps +parent: {630690A7-7EE8-4819-B79A-0A828D8525F6} +name: Pipeline Steps +master: {00000000-0000-0000-0000-000000000000} +template: {0437FEE2-44C9-46A6-ABE9-28858D9FEE8C} +templatekey: Template Folder +created: 20170704T072430Z + +----version---- +language: en +version: 1 +revision: fb699b97-52a4-46bb-8194-38842336fb1d + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170704T072430Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +fb699b97-52a4-46bb-8194-38842336fb1d +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170704T072430Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger.item new file mode 100644 index 0000000..52cac33 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger.item @@ -0,0 +1,73 @@ +----item---- +version: 1 +id: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger +parent: {511E680F-67D3-4888-8751-62754AF34DE3} +name: Selfie Logger +master: {00000000-0000-0000-0000-000000000000} +template: {AB86861A-6030-46C5-B394-E8F99E8B87DB} +templatekey: Template +created: 20170621T141744Z + +----field---- +field: {12C33F3F-86C5-43A5-AEB4-5598CEC45116} +name: __Base template +key: __base template +content-length: 38 + +{A5E99924-3695-4656-9CE3-7AA410F25073} +----field---- +field: {F7D48A55-2158-4F02-9356-756654404F73} +name: __Standard values +key: __standard values +content-length: 38 + +{A17C053D-2931-47FA-9054-00ACA2CF16C1} +----field---- +field: {06D5295C-ED2F-4A54-9BF2-26228D113318} +name: __Icon +key: __icon +content-length: 24 + +office/32x32/element.png +----version---- +language: en +version: 1 +revision: d0441b50-7628-4cc3-88ef-bffc75a6c69b + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T141744Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +d0441b50-7628-4cc3-88ef-bffc75a6c69b +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170704T072442Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors.item new file mode 100644 index 0000000..cdcd6e9 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors.item @@ -0,0 +1,59 @@ +----item---- +version: 1 +id: {A4F3810B-ABF3-487C-B81B-BEC410F388A7} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors +parent: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +name: Accessors +master: {00000000-0000-0000-0000-000000000000} +template: {E269FBB5-3750-427A-9149-7AA950B49301} +templatekey: Template section +created: 20170621T144222Z + +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 2 + +50 +----version---- +language: en +version: 1 +revision: 525242b7-40c3-4f3e-9809-0947573635db + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160401T163952Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +525242b7-40c3-4f3e-9809-0947573635db +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ObjectLocation.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ObjectLocation.item new file mode 100644 index 0000000..9134faf --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ObjectLocation.item @@ -0,0 +1,87 @@ +----item---- +version: 1 +id: {3F895959-186F-44F0-842F-A75FDB7E6251} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ObjectLocation +parent: {A4F3810B-ABF3-487C-B81B-BEC410F388A7} +name: ObjectLocation +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170621T144222Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 8 + +Droplist +----field---- +field: {1EB8AE32-E190-44A6-968D-ED904C794EBF} +name: Source +key: source +content-length: 84 + +/sitecore/system/Settings/Data Exchange/Framework/Pipeline Context Storage Locations +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +300 +----version---- +language: en +version: 1 +revision: 7961e16e-5bb0-473a-a913-7b1be5be624f + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 15 + +Object Location +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 64 + +Location where the object that the identifier value is read from +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160305T015906Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +7961e16e-5bb0-473a-a913-7b1be5be624f +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ValueAccessors.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ValueAccessors.item new file mode 100644 index 0000000..092fb27 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ValueAccessors.item @@ -0,0 +1,87 @@ +----item---- +version: 1 +id: {41C1C908-432F-49F1-AA23-816FCD149738} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Accessors/ValueAccessors +parent: {A4F3810B-ABF3-487C-B81B-BEC410F388A7} +name: ValueAccessors +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170621T144222Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 8 + +Treelist +----field---- +field: {1EB8AE32-E190-44A6-968D-ED904C794EBF} +name: Source +key: source +content-length: 160 + +query:./ancestor-or-self::*[@@templateid='{327A381B-59F8-4E88-B331-BEBC7BD87E4E}']//descendant-or-self::*[@@templateid='{ADD2D00A-784B-492F-94CB-971303DF4019}'] +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +100 +----version---- +language: en +version: 1 +revision: 67846a10-71e9-4b89-bfa4-1234941db80b + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 17 + +Value Accessor(s) +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 43 + +Component used to read the identifier value +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160218T203034Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +67846a10-71e9-4b89-bfa4-1234941db80b +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints.item new file mode 100644 index 0000000..3021848 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints.item @@ -0,0 +1,221 @@ +----item---- +version: 1 +id: {8FC7AE38-4AFC-4EAD-BECE-BDEFF15B9E93} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints +parent: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +name: Endpoints +master: {00000000-0000-0000-0000-000000000000} +template: {E269FBB5-3750-427A-9149-7AA950B49301} +templatekey: Template section +created: 20170621T150959Z + +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 2 + +25 +----version---- +language: da +version: 1 +revision: 0ed0a125-fed5-42b5-be64-a672a8090590 + +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 11 + +Slutpunkter +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T200928Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +0ed0a125-fed5-42b5-be64-a672a8090590 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070909Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: de-DE +version: 1 +revision: c0935b2f-202f-4ae6-acc2-cbdcf9eca8d0 + +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 9 + +Endpunkte +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T200954Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +c0935b2f-202f-4ae6-acc2-cbdcf9eca8d0 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070912Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: en +version: 1 +revision: 61e31e6a-bc74-4189-9d11-33b7620eafd9 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160413T180628Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +61e31e6a-bc74-4189-9d11-33b7620eafd9 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: ja-JP +version: 1 +revision: 959f2d23-9905-419e-9d5d-234a3385ff2f + +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 7 + +エンドポイント +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T201013Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +959f2d23-9905-419e-9d5d-234a3385ff2f +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070917Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints/EndpointTo.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints/EndpointTo.item new file mode 100644 index 0000000..0f20ae2 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints/EndpointTo.item @@ -0,0 +1,291 @@ +----item---- +version: 1 +id: {A17A67C7-4554-4F82-A435-4EA4021B0EE0} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Endpoints/EndpointTo +parent: {8FC7AE38-4AFC-4EAD-BECE-BDEFF15B9E93} +name: EndpointTo +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170621T150959Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 8 + +Droptree +----field---- +field: {1EB8AE32-E190-44A6-968D-ED904C794EBF} +name: Source +key: source +content-length: 169 + +query:./ancestor-or-self::*[@@templateid='{327A381B-59F8-4E88-B331-BEBC7BD87E4E}']//descendant-or-self::*[@@templateid='{6F05FFD0-4C1B-44AE-87E5-B015E1DAC352}']/Sitecore +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +100 +----version---- +language: da +version: 1 +revision: 777fc912-1269-4e72-a345-9931b4b10179 + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 10 + +EndpointTo +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 10 + +EndpointTo +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 40 + +Slutpunkt for Sitecore-elementmodellager +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T200930Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +777fc912-1269-4e72-a345-9931b4b10179 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070909Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: de-DE +version: 1 +revision: 52989c0e-660a-4c91-bade-422b3249b360 + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 12 + +EndpunktNach +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 13 + +EndpunkteNach +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 43 + +Endpunkt für Sitecore-Itemmodell-Repository +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T200955Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +52989c0e-660a-4c91-bade-422b3249b360 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070912Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: en +version: 1 +revision: ea6c18e4-ba04-409f-bd9d-2f5c8c6b8568 + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 11 + +Endpoint To +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 43 + +Endpoint for Sitecore item model repository +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160413T180628Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +ea6c18e4-ba04-409f-bd9d-2f5c8c6b8568 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin +----version---- +language: ja-JP +version: 1 +revision: e563c5a4-852e-48ed-a2ec-c6d4358ac9d6 + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 10 + +EndpointTo +----field---- +field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB} +name: __Display name +key: __display name +content-length: 10 + +EndpointTo +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 32 + +Sitecore アイテム モデル レポジトリーのエンドポイント +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\Admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170210T201014Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\Admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +e563c5a4-852e-48ed-a2ec-c6d4358ac9d6 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170614T070917Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie.item new file mode 100644 index 0000000..6cb9490 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie.item @@ -0,0 +1,52 @@ +----item---- +version: 1 +id: {6747BF38-F550-4CCC-86FD-1727264CDCC1} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie +parent: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +name: Selfie +master: {00000000-0000-0000-0000-000000000000} +template: {E269FBB5-3750-427A-9149-7AA950B49301} +templatekey: Template section +created: 20170621T143430Z + +----version---- +language: en +version: 1 +revision: 0571953f-4280-4997-9a14-f9ddbad9f4f2 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T143430Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +0571953f-4280-4997-9a14-f9ddbad9f4f2 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie/SelfieField.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie/SelfieField.item new file mode 100644 index 0000000..6641336 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie/SelfieField.item @@ -0,0 +1,66 @@ +----item---- +version: 1 +id: {937E0D4B-811B-43AE-94B8-AA6516F5A761} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/Selfie/SelfieField +parent: {6747BF38-F550-4CCC-86FD-1727264CDCC1} +name: SelfieField +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170621T143430Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 15 + +Multi-Line Text +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +100 +----version---- +language: en +version: 1 +revision: b2426e1d-ca3b-4c75-9d2a-e712d1190418 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T143430Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +b2426e1d-ca3b-4c75-9d2a-e712d1190418 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/__Standard Values.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/__Standard Values.item new file mode 100644 index 0000000..8d61d4a --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/__Standard Values.item @@ -0,0 +1,66 @@ +----item---- +version: 1 +id: {A17C053D-2931-47FA-9054-00ACA2CF16C1} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Selfie Logger/__Standard Values +parent: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +name: __Standard Values +master: {00000000-0000-0000-0000-000000000000} +template: {B4B7D23D-1994-4B4F-B512-53305AFAAE07} +templatekey: Selfie Logger +created: 20170621T141911Z + +----field---- +field: {3F895959-186F-44F0-842F-A75FDB7E6251} +name: ObjectLocation +key: objectlocation +content-length: 23 + +Pipeline Context Source +----field---- +field: {3C7F78CC-0C5C-4076-80EF-9A49FDA5FF96} +name: ConverterType +key: convertertype +content-length: 127 + +Sitecore.DataExchange.Examples.Sitecore.SelfieLogger.SelfieLoggerPipelineStepConverter, Sitecore.DataExchange.Examples.Sitecore +----field---- +field: {A83A2EB2-BFA1-4D3F-9F17-0CC6C9A91C42} +name: ProcessorType +key: processortype +content-length: 119 + +Sitecore.DataExchange.Examples.Sitecore.SelfieLogger.SelfieLoggerStepProcessor, Sitecore.DataExchange.Examples.Sitecore +----version---- +language: en +version: 1 +revision: 5a92f7da-f149-4a49-8d2d-64717f504cd5 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T141911Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +5a92f7da-f149-4a49-8d2d-64717f504cd5 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170704T074645Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.sln b/Sitecore.DataExchange.Examples.sln index 1da0398..b054ca8 100644 --- a/Sitecore.DataExchange.Examples.sln +++ b/Sitecore.DataExchange.Examples.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26403.7 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.DataExchange.Providers.FileSystem", "Sitecore.DataExchange.Providers.FileSystem\Sitecore.DataExchange.Providers.FileSystem.csproj", "{69AD3967-FDB6-455D-9F86-C69485836BB8}" EndProject @@ -16,6 +16,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.DataExchange.Examp EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleMenuMaker", "ConsoleMenuMaker\ConsoleMenuMaker.csproj", "{52048797-6500-45EC-A3D6-071104E93E50}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.DataExchange.Examples.Sitecore", "Sitecore.DataExchange.Examples.Sitecore\Sitecore.DataExchange.Examples.Sitecore.csproj", "{583CD139-3B8E-479C-9F29-43BA41501324}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -38,6 +40,10 @@ Global {52048797-6500-45EC-A3D6-071104E93E50}.Debug|Any CPU.Build.0 = Debug|Any CPU {52048797-6500-45EC-A3D6-071104E93E50}.Release|Any CPU.ActiveCfg = Release|Any CPU {52048797-6500-45EC-A3D6-071104E93E50}.Release|Any CPU.Build.0 = Release|Any CPU + {583CD139-3B8E-479C-9F29-43BA41501324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {583CD139-3B8E-479C-9F29-43BA41501324}.Debug|Any CPU.Build.0 = Debug|Any CPU + {583CD139-3B8E-479C-9F29-43BA41501324}.Release|Any CPU.ActiveCfg = Release|Any CPU + {583CD139-3B8E-479C-9F29-43BA41501324}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/lib/README.txt b/lib/README.txt new file mode 100644 index 0000000..929e91a --- /dev/null +++ b/lib/README.txt @@ -0,0 +1,6 @@ +Please copy here following libruaries from your Sitecore.DataExchage 2.0 packages, +as they are not available on feeds yet: + +Sitecore.DataExchange.dll +Sitecore.DataExchange.DataAccess.dll +Sitecore.DataExchange.Providers.Sc.dll \ No newline at end of file diff --git a/sitecore packages/Sitecore.DataExchange.Examples.Sitecore-0.1.zip b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore-0.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..67f0e034e1cf81aa6a741eab466a6ce8d2244fcb GIT binary patch literal 47532 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 YO9ci1000010096w00018xc~qF08hOTPXGV_ literal 0 HcmV?d00001 diff --git a/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml new file mode 100644 index 0000000..67149db --- /dev/null +++ b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml @@ -0,0 +1,131 @@ + + + + Sitecore.DataExchange.Examples.Sitecore + Maxim Klakov + 0.1 + + + + + + + + + + + True + + + + /master/sitecore/templates/Data Exchange/Tools/{28397B3B-520A-4B6E-84DF-FEC36D65B39F}/invariant/0 + + False + + + + + + + Skip + Clear + + + + + + + + + Tools folder just in case it does not exist + + + master + {630690A7-7EE8-4819-B79A-0A828D8525F6} + False + + + + + + + Undefined + Undefined + + + + + + + + + + Simple + + + CreatedFilter + + + + + + ModifiedFilter + + + + + + + True + + + + + + Created + + + + Modified + + + + + + + + Examples folder with items + + + + /bin/Sitecore.DataExchange.Examples.Sitecore.dll + + + + / + + + + + Overwrite + Undefined + + + + + + + + + Sitecore DataExchange Exapmples dll + + + + + + + + + + + From 72f7c330b5498f1439fe6dccb7b18e9da6083840 Mon Sep 17 00:00:00 2001 From: Maxim Klakov Date: Thu, 6 Jul 2017 11:42:57 +0300 Subject: [PATCH 2/4] Logger Pipeline Step added to Sitecore.DataExchange.Examples.Sitecore package. It logs values of Source/Target object to Pipeline batch log file. Values are defined with the list of Value Accessors. --- .../LoggerPipelineStepConverter.cs | 43 +++++++++ .../LoggerPipelineStep/LoggerSettings.cs | 11 +++ .../LoggerPipelineStep/LoggerStepProcessor.cs | 66 +++++++++++++ ...core.DataExchange.Examples.Sitecore.csproj | 3 + .../Rules/Data Exchange - Example Tool.item | 82 +++++++++++++++++ .../Tools/Examples/Pipeline Steps/Logger.item | 73 +++++++++++++++ .../Pipeline Steps/Logger/Accessors.item | 59 ++++++++++++ .../Logger/Accessors/ObjectLocation.item | 87 ++++++++++++++++++ .../Logger/Accessors/ValueAccessors.item | 87 ++++++++++++++++++ .../Logger/__Standard Values.item | 66 +++++++++++++ ...ore.DataExchange.Examples.Sitecore-0.1.zip | Bin 47532 -> 63366 bytes 11 files changed, 577 insertions(+) create mode 100644 Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerPipelineStepConverter.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerSettings.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerStepProcessor.cs create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ObjectLocation.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ValueAccessors.item create mode 100644 Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/__Standard Values.item diff --git a/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerPipelineStepConverter.cs b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerPipelineStepConverter.cs new file mode 100644 index 0000000..9e41e11 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerPipelineStepConverter.cs @@ -0,0 +1,43 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.LoggerPipelineStep +{ + using System; + using System.Linq; + using global::Sitecore.DataExchange.Converters.PipelineSteps; + using global::Sitecore.DataExchange.DataAccess; + using global::Sitecore.DataExchange.Models; + using global::Sitecore.DataExchange.Repositories; + using global::Sitecore.Services.Core.Model; + + public class LoggerPipelineStepConverter : BasePipelineStepConverter + { + public const string ValueAccessors = "ValueAccessors"; + public const string ObjectLocation = "ObjectLocation"; + + private static readonly Guid TemplateId = Guid.Parse("{CCC46873-79B8-4DE0-9061-81715C9B9847}"); + + public LoggerPipelineStepConverter(IItemModelRepository repository) : base(repository) + { + SupportedTemplateIds.Add(TemplateId); + } + protected override void AddPlugins(ItemModel source, PipelineStep pipelineStep) + { + AddSelfieSettings(source, pipelineStep); + } + + private void AddSelfieSettings(ItemModel source, PipelineStep pipelineStep) + { + var settings = new LoggerSettings + { + ObjectLocation = GetStringValue(source, ObjectLocation) + }; + + var accessors = ConvertReferencesToModels(source, ValueAccessors); + if (accessors != null) + { + settings.ValueAccessors = accessors.ToList(); + } + + pipelineStep.AddPlugin(settings); + } + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerSettings.cs b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerSettings.cs new file mode 100644 index 0000000..e10cd49 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerSettings.cs @@ -0,0 +1,11 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.LoggerPipelineStep +{ + using System.Collections.Generic; + using DataAccess; + + public class LoggerSettings : IPlugin + { + public List ValueAccessors { get; set; } + public string ObjectLocation { get; set; } + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerStepProcessor.cs b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerStepProcessor.cs new file mode 100644 index 0000000..821f0fe --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/LoggerPipelineStep/LoggerStepProcessor.cs @@ -0,0 +1,66 @@ +namespace Sitecore.DataExchange.Examples.Sitecore.LoggerPipelineStep +{ + using System; + using System.Linq; + using Contexts; + using DataAccess; + using Models; + using Processors.PipelineSteps; + using Services.Core.Diagnostics; + + public class LoggerStepProcessor : BasePipelineStepProcessor + { + + public override void Process(PipelineStep pipelineStep, PipelineContext pipelineContext, ILogger logger) + { + if (pipelineStep == null) + { + throw new ArgumentNullException(nameof(pipelineStep)); + } + + if (pipelineContext == null) + { + throw new ArgumentNullException(nameof(pipelineContext)); + } + + var loggerSettings = pipelineStep.GetPlugin(); + + if (loggerSettings == null) + { + return; + } + + var logMessage = String.Empty; + + logMessage += DateTime.Now.ToString("t") + " : "; + + var objectLocation = loggerSettings.ObjectLocation; + var objectModel = GetObjectFromPipelineContext(objectLocation, pipelineContext, logger); + + if ((objectLocation == null) || (objectLocation == String.Empty) || (objectModel == null)) + { + logMessage += "No object set;"; + } + else + { + if (loggerSettings.ValueAccessors.Any()) + { + var i = 0; + foreach (var valueAccessor in loggerSettings.ValueAccessors) + { + var data = valueAccessor.ValueReader.Read(objectModel, new DataAccessContext()); + if (data.WasValueRead) + { + logMessage += (i > 0 ? ", " : String.Empty) + data.ReadValue; + } + i++; + } + } + } + logger.Info(logMessage + Environment.NewLine); + return; + + } + + } +} diff --git a/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj b/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj index 320bc29..a52c35c 100644 --- a/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj +++ b/Sitecore.DataExchange.Examples.Sitecore/Sitecore.DataExchange.Examples.Sitecore.csproj @@ -54,6 +54,9 @@ + + + diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool.item new file mode 100644 index 0000000..f7dc1d1 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool.item @@ -0,0 +1,82 @@ +----item---- +version: 1 +id: {B7F5FAD7-0A58-4D9D-98D2-78136F198728} +database: master +path: /sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool +parent: {FF0BC016-2D01-4F55-A020-EF6FC2FE7559} +name: Data Exchange - Example Tool +master: {00000000-0000-0000-0000-000000000000} +template: {664E5035-EB8C-4BA1-9731-A098FCC9127A} +templatekey: Insert Options Rule +created: 20170706T081430Z + +----field---- +field: {FA307B86-DA2A-44BD-887D-E2057CDB4948} +name: Rule +key: rule +content-length: 485 + + + + + + + + + + + +----version---- +language: en +version: 1 +revision: 8c4205ee-b2b5-4e89-9a01-45291b19ae76 + +----field---- +field: {9E0287D9-AF90-41AD-8D36-332375E194D6} +name: Name +key: name +content-length: 76 + +Add insert options for the xConnect provider for the Data Exchange Framework +----field---- +field: {52807595-0F8F-4B20-8D2A-CB71D28C6103} +name: __Owner +key: __owner +content-length: 14 + +sitecore\admin +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170207T134944Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +8c4205ee-b2b5-4e89-9a01-45291b19ae76 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170706T081819Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger.item new file mode 100644 index 0000000..c2488e2 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger.item @@ -0,0 +1,73 @@ +----item---- +version: 1 +id: {CCC46873-79B8-4DE0-9061-81715C9B9847} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger +parent: {511E680F-67D3-4888-8751-62754AF34DE3} +name: Logger +master: {00000000-0000-0000-0000-000000000000} +template: {AB86861A-6030-46C5-B394-E8F99E8B87DB} +templatekey: Template +created: 20170706T080546Z + +----field---- +field: {12C33F3F-86C5-43A5-AEB4-5598CEC45116} +name: __Base template +key: __base template +content-length: 38 + +{A5E99924-3695-4656-9CE3-7AA410F25073} +----field---- +field: {F7D48A55-2158-4F02-9356-756654404F73} +name: __Standard values +key: __standard values +content-length: 38 + +{FF6E6EDC-5834-4727-A577-A66618CF3A61} +----field---- +field: {06D5295C-ED2F-4A54-9BF2-26228D113318} +name: __Icon +key: __icon +content-length: 24 + +office/32x32/element.png +----version---- +language: en +version: 1 +revision: 98d27954-6dc7-4765-b656-5152abb166be + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T141744Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +98d27954-6dc7-4765-b656-5152abb166be +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170706T080557Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors.item new file mode 100644 index 0000000..f17c566 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors.item @@ -0,0 +1,59 @@ +----item---- +version: 1 +id: {B9C2F698-2991-4382-9A0D-92A3A021956F} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors +parent: {CCC46873-79B8-4DE0-9061-81715C9B9847} +name: Accessors +master: {00000000-0000-0000-0000-000000000000} +template: {E269FBB5-3750-427A-9149-7AA950B49301} +templatekey: Template section +created: 20170706T080546Z + +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 2 + +50 +----version---- +language: en +version: 1 +revision: 525242b7-40c3-4f3e-9809-0947573635db + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160401T163952Z +----field---- +field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F} +name: __Created by +key: __created by +content-length: 14 + +sitecore\admin +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +525242b7-40c3-4f3e-9809-0947573635db +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ObjectLocation.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ObjectLocation.item new file mode 100644 index 0000000..094fdba --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ObjectLocation.item @@ -0,0 +1,87 @@ +----item---- +version: 1 +id: {E8A43638-885D-4217-9A8F-7C072C9D2D48} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ObjectLocation +parent: {B9C2F698-2991-4382-9A0D-92A3A021956F} +name: ObjectLocation +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170706T080546Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 8 + +Droplist +----field---- +field: {1EB8AE32-E190-44A6-968D-ED904C794EBF} +name: Source +key: source +content-length: 84 + +/sitecore/system/Settings/Data Exchange/Framework/Pipeline Context Storage Locations +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +300 +----version---- +language: en +version: 1 +revision: 7961e16e-5bb0-473a-a913-7b1be5be624f + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 15 + +Object Location +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 64 + +Location where the object that the identifier value is read from +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160305T015906Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +7961e16e-5bb0-473a-a913-7b1be5be624f +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ValueAccessors.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ValueAccessors.item new file mode 100644 index 0000000..09b34c8 --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ValueAccessors.item @@ -0,0 +1,87 @@ +----item---- +version: 1 +id: {F90429EE-EECD-42AB-921A-F3DED9198B3A} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/Accessors/ValueAccessors +parent: {B9C2F698-2991-4382-9A0D-92A3A021956F} +name: ValueAccessors +master: {00000000-0000-0000-0000-000000000000} +template: {455A3E98-A627-4B40-8035-E683A0331AC7} +templatekey: Template field +created: 20170706T080546Z + +----field---- +field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32} +name: Type +key: type +content-length: 8 + +Treelist +----field---- +field: {1EB8AE32-E190-44A6-968D-ED904C794EBF} +name: Source +key: source +content-length: 160 + +query:./ancestor-or-self::*[@@templateid='{327A381B-59F8-4E88-B331-BEBC7BD87E4E}']//descendant-or-self::*[@@templateid='{ADD2D00A-784B-492F-94CB-971303DF4019}'] +----field---- +field: {BE351A73-FCB0-4213-93FA-C302D8AB4F51} +name: Shared +key: shared +content-length: 1 + +1 +----field---- +field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E} +name: __Sortorder +key: __sortorder +content-length: 3 + +100 +----version---- +language: en +version: 1 +revision: 67846a10-71e9-4b89-bfa4-1234941db80b + +----field---- +field: {19A69332-A23E-4E70-8D16-B2640CB24CC8} +name: Title +key: title +content-length: 17 + +Value Accessor(s) +----field---- +field: {9541E67D-CE8C-4225-803D-33F7F29F09EF} +name: __Short description +key: __short description +content-length: 43 + +Component used to read the identifier value +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20160218T203034Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +67846a10-71e9-4b89-bfa4-1234941db80b +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170621T151105Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/__Standard Values.item b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/__Standard Values.item new file mode 100644 index 0000000..4cec2db --- /dev/null +++ b/Sitecore.DataExchange.Examples.Sitecore/serialization/master/sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/__Standard Values.item @@ -0,0 +1,66 @@ +----item---- +version: 1 +id: {FF6E6EDC-5834-4727-A577-A66618CF3A61} +database: master +path: /sitecore/templates/Data Exchange/Tools/Examples/Pipeline Steps/Logger/__Standard Values +parent: {CCC46873-79B8-4DE0-9061-81715C9B9847} +name: __Standard Values +master: {00000000-0000-0000-0000-000000000000} +template: {CCC46873-79B8-4DE0-9061-81715C9B9847} +templatekey: Logger +created: 20170706T080546Z + +----field---- +field: {E8A43638-885D-4217-9A8F-7C072C9D2D48} +name: ObjectLocation +key: objectlocation +content-length: 23 + +Pipeline Context Source +----field---- +field: {3C7F78CC-0C5C-4076-80EF-9A49FDA5FF96} +name: ConverterType +key: convertertype +content-length: 127 + +Sitecore.DataExchange.Examples.Sitecore.LoggerPipelineStep.LoggerPipelineStepConverter, Sitecore.DataExchange.Examples.Sitecore +----field---- +field: {A83A2EB2-BFA1-4D3F-9F17-0CC6C9A91C42} +name: ProcessorType +key: processortype +content-length: 119 + +Sitecore.DataExchange.Examples.Sitecore.LoggerPipelineStep.LoggerStepProcessor, Sitecore.DataExchange.Examples.Sitecore +----version---- +language: en +version: 1 +revision: d54aa7c7-4b48-4973-9ca6-7eede16c2257 + +----field---- +field: {25BED78C-4957-4165-998A-CA1B52F67497} +name: __Created +key: __created +content-length: 16 + +20170621T141911Z +----field---- +field: {8CDC337E-A112-42FB-BBB4-4143751E123F} +name: __Revision +key: __revision +content-length: 36 + +d54aa7c7-4b48-4973-9ca6-7eede16c2257 +----field---- +field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522} +name: __Updated +key: __updated +content-length: 16 + +20170706T080939Z +----field---- +field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A} +name: __Updated by +key: __updated by +content-length: 14 + +sitecore\admin diff --git a/sitecore packages/Sitecore.DataExchange.Examples.Sitecore-0.1.zip b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore-0.1.zip index 67f0e034e1cf81aa6a741eab466a6ce8d2244fcb..5e6c5b70fbdd495a5ca6b8f0293855924f6ddde5 100644 GIT binary patch literal 63366 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 Du2I&v literal 47532 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 YO9ci1000010096w00018xc~qF08hOTPXGV_ From 9eafb87c8fc93c86313b7ba785e4e68cd20162cb Mon Sep 17 00:00:00 2001 From: Maxim Klakov Date: Thu, 6 Jul 2017 18:21:23 +0300 Subject: [PATCH 3/4] Web Handlers project added Pipline Batch Runner handler added - it allows you to run batch without UI interaction. --- ...e.DataExchange.Examples.WebHandlers.config | 7 ++ .../README.txt | 13 +++ .../RunPipelineBatchHandler.cs | 38 +++++++ .../RunPipelineBatchRunner.cs | 47 +++++++++ ...e.DataExchange.Examples.WebHandlers.csproj | 95 ++++++++++++++++++ Sitecore.DataExchange.Examples.sln | 6 ++ ...itecore.DataExchange.Examples.Sitecore.xml | 14 +++ ....DataExchange.Examples.WebHandlers-0.1.zip | Bin 0 -> 4030 bytes ...core.DataExchange.Examples.WebHandlers.xml | 63 ++++++++++++ 9 files changed, 283 insertions(+) create mode 100644 Sitecore.DataExchange.Examples.WebHandlers/App_Config/Sitecore/Sitecore.DataExchange.Examples.WebHandlers.config create mode 100644 Sitecore.DataExchange.Examples.WebHandlers/README.txt create mode 100644 Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchHandler.cs create mode 100644 Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchRunner.cs create mode 100644 Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj create mode 100644 sitecore packages/Sitecore.DataExchange.Examples.WebHandlers-0.1.zip create mode 100644 sitecore packages/Sitecore.DataExchange.Examples.WebHandlers.xml diff --git a/Sitecore.DataExchange.Examples.WebHandlers/App_Config/Sitecore/Sitecore.DataExchange.Examples.WebHandlers.config b/Sitecore.DataExchange.Examples.WebHandlers/App_Config/Sitecore/Sitecore.DataExchange.Examples.WebHandlers.config new file mode 100644 index 0000000..566ddf6 --- /dev/null +++ b/Sitecore.DataExchange.Examples.WebHandlers/App_Config/Sitecore/Sitecore.DataExchange.Examples.WebHandlers.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Sitecore.DataExchange.Examples.WebHandlers/README.txt b/Sitecore.DataExchange.Examples.WebHandlers/README.txt new file mode 100644 index 0000000..6e9869d --- /dev/null +++ b/Sitecore.DataExchange.Examples.WebHandlers/README.txt @@ -0,0 +1,13 @@ +You'll need to add to web.config: + + ... + + + + + ... + + + +than can be runned via HTTP requests: +http:///-/pipelinebatchhandler/?id={} \ No newline at end of file diff --git a/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchHandler.cs b/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchHandler.cs new file mode 100644 index 0000000..247f58c --- /dev/null +++ b/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchHandler.cs @@ -0,0 +1,38 @@ +using System.Web; + +namespace Sitecore.DataExchange.Examples.WebHandlers +{ + using System; + using System.Web.SessionState; + + public class RunPipelineBatchHandler : IHttpHandler, IRequiresSessionState + { + /// + /// You will need to configure this handler in the Web.config file of your + /// web and register it with IIS before being able to use it. For more information + /// see the following link: http://go.microsoft.com/?linkid=8101007 + /// + #region IHttpHandler Members + + public bool IsReusable + { + get { return false; } + } + + public void ProcessRequest(HttpContext context) + { + var id = context.Request.Params["id"]; + var name = RunPipelineBatchRunner.RunPipelineBatch(id); + if (!string.IsNullOrEmpty(name)) + { + context.Response.Write(name + " is now running.."); + } + else + { + context.Response.Write("Cannot run this batch"); + } + } + + #endregion + } +} diff --git a/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchRunner.cs b/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchRunner.cs new file mode 100644 index 0000000..22d0e65 --- /dev/null +++ b/Sitecore.DataExchange.Examples.WebHandlers/RunPipelineBatchRunner.cs @@ -0,0 +1,47 @@ + +namespace Sitecore.DataExchange.Examples.WebHandlers +{ + using System; + using Data; + using Local.Commands; + using Shell.Framework.Commands; + + public static class RunPipelineBatchRunner + { + public static readonly ID BatchGuid = ID.Parse("{3564BC3C-6AD3-4D8F-83B5-03EB1478793D}"); + + public static string RunPipelineBatch(string id = null) + { + var comm = new RunPipelineBatchCommand(); + ID batchId; + + if (!string.IsNullOrEmpty(id)) + { + try + { + batchId = ID.Parse(id); + } + catch (Exception e) + { + return null; + } + } + else + { + batchId = BatchGuid; + } + + Data.Items.Item batchItem = Configuration.Factory.GetDatabase("master").GetItem(batchId); + + if (batchItem != null) + { + CommandContext context = new CommandContext(batchItem); + + comm.Execute(context); + + return batchItem.DisplayName; + } + return null; + } + } +} diff --git a/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj b/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj new file mode 100644 index 0000000..5db1303 --- /dev/null +++ b/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj @@ -0,0 +1,95 @@ + + + + + Debug + AnyCPU + {8E4018FF-4777-4A37-B9F2-352D6E611B02} + Library + Properties + Sitecore.DataExchange.Examples.WebHandlers + Sitecore.DataExchange.Examples.WebHandlers + v4.6.2 + 512 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + Always + + + Always + + + + + + + + + ..\packages\Sitecore.CMS.Core.API.11.0.0-r00318\lib\net462\Sitecore.Abstractions.dll + False + + + ..\packages\Sitecore.CMS.Core.API.11.0.0-r00318\lib\net462\Sitecore.Client.dll + False + + + ..\lib\Sitecore.DataExchange.dll + False + + + ..\lib\Sitecore.DataExchange.DataAccess.dll + False + + + ..\lib\Sitecore.DataExchange.Local.dll + False + + + ..\lib\Sitecore.DataExchange.Providers.Sc.dll + False + + + ..\packages\Sitecore.CMS.Core.API.11.0.0-r00318\lib\net462\Sitecore.Kernel.dll + False + + + ..\packages\Sitecore.CMS.Core.API.11.0.0-r00318\lib\net462\Sitecore.Publishing.WebDeploy.dll + False + + + + + + + \ No newline at end of file diff --git a/Sitecore.DataExchange.Examples.sln b/Sitecore.DataExchange.Examples.sln index b054ca8..e9a1944 100644 --- a/Sitecore.DataExchange.Examples.sln +++ b/Sitecore.DataExchange.Examples.sln @@ -18,6 +18,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleMenuMaker", "Console EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.DataExchange.Examples.Sitecore", "Sitecore.DataExchange.Examples.Sitecore\Sitecore.DataExchange.Examples.Sitecore.csproj", "{583CD139-3B8E-479C-9F29-43BA41501324}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.DataExchange.Examples.WebHandlers", "Sitecore.DataExchange.Examples.WebHandlers\Sitecore.DataExchange.Examples.WebHandlers.csproj", "{8E4018FF-4777-4A37-B9F2-352D6E611B02}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -44,6 +46,10 @@ Global {583CD139-3B8E-479C-9F29-43BA41501324}.Debug|Any CPU.Build.0 = Debug|Any CPU {583CD139-3B8E-479C-9F29-43BA41501324}.Release|Any CPU.ActiveCfg = Release|Any CPU {583CD139-3B8E-479C-9F29-43BA41501324}.Release|Any CPU.Build.0 = Release|Any CPU + {8E4018FF-4777-4A37-B9F2-352D6E611B02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E4018FF-4777-4A37-B9F2-352D6E611B02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E4018FF-4777-4A37-B9F2-352D6E611B02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E4018FF-4777-4A37-B9F2-352D6E611B02}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml index 67149db..e10747a 100644 --- a/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml +++ b/sitecore packages/Sitecore.DataExchange.Examples.Sitecore.xml @@ -119,6 +119,20 @@ Sitecore DataExchange Exapmples dll + + + /master/sitecore/system/Settings/Rules/Insert Options/Rules/Data Exchange - Example Tool/{B7F5FAD7-0A58-4D9D-98D2-78136F198728}/invariant/0 + + False + + + + + + + + Insert Option + diff --git a/sitecore packages/Sitecore.DataExchange.Examples.WebHandlers-0.1.zip b/sitecore packages/Sitecore.DataExchange.Examples.WebHandlers-0.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..f6378478ce418028e126b55c6dfe40c6b90c5ca5 GIT binary patch literal 4030 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 literal 0 HcmV?d00001 diff --git a/sitecore packages/Sitecore.DataExchange.Examples.WebHandlers.xml b/sitecore packages/Sitecore.DataExchange.Examples.WebHandlers.xml new file mode 100644 index 0000000..06b5404 --- /dev/null +++ b/sitecore packages/Sitecore.DataExchange.Examples.WebHandlers.xml @@ -0,0 +1,63 @@ + + + + Sitecore.DataExchange.Examples.WebHandlers + Maxim Klakov + 0.1 + + + + + You'll need to add to web.config: + <handlers> + ... + +<add verb="*" path="pipelinebatchhandler.ashx" type="Sitecore.DataExchange.Examples.WebHandlers.RunPipelineBatchHandler, Sitecore.DataExchange.Examples.WebHandlers" name="Sitecore_DataExchange_Examples_WebHandlers_runPipelineBatch" /> + + ... + </handlers> + + +Than handler can be runned via HTTP requests: +http://<sitename>/-/pipelinebatchhandler/?id={<Pipeline Batch GUID>} + + + + + + True + + + + /App_Config/Sitecore/Sitecore.DataExchange.Examples.WebHandlers.config + /bin/Sitecore.DataExchange.Examples.WebHandlers.dll + + + + / + + + + + Undefined + Undefined + + + + + + + + + DLL and Config + + + + + + + + + + + From 3f2e58be2664ee69b540f8e54376ee23c39ce90d Mon Sep 17 00:00:00 2001 From: Maxim Klakov Date: Thu, 6 Jul 2017 18:51:11 +0300 Subject: [PATCH 4/4] ashx file removed from project --- .../Sitecore.DataExchange.Examples.WebHandlers.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj b/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj index 5db1303..414e58c 100644 --- a/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj +++ b/Sitecore.DataExchange.Examples.WebHandlers/Sitecore.DataExchange.Examples.WebHandlers.csproj @@ -40,9 +40,6 @@ Always - - Always - @@ -84,6 +81,9 @@ + + +