Added unique&sample
parent
e10e5da9f2
commit
5539bc9d79
|
|
@ -0,0 +1,288 @@
|
|||
<?xml version="1.0"?>
|
||||
<AlteryxDocument yxmdVer="2022.3">
|
||||
<Nodes>
|
||||
<Node ToolID="1">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileInput.DbFileInput">
|
||||
<Position x="90" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Passwords />
|
||||
<File RecordLimit="" SearchSubDirs="False" FileFormat="0" OutputFileName="">Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv</File>
|
||||
<FormatSpecificOptions>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<IgnoreErrors>False</IgnoreErrors>
|
||||
<AllowShareWrite>False</AllowShareWrite>
|
||||
<ImportLine>1</ImportLine>
|
||||
<FieldLen>254</FieldLen>
|
||||
<SingleThreadRead>False</SingleThreadRead>
|
||||
<IgnoreQuotes>DoubleQuotes</IgnoreQuotes>
|
||||
<Delimeter>,</Delimeter>
|
||||
<QuoteRecordBreak>False</QuoteRecordBreak>
|
||||
<CodePage>28591</CodePage>
|
||||
</FormatSpecificOptions>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>products.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
<MetaInfo connection="Output">
|
||||
<RecordInfo>
|
||||
<Field name="Product_ID" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Name" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Category" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Cost" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Price" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
</RecordInfo>
|
||||
</MetaInfo>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileInput" />
|
||||
</Node>
|
||||
<Node ToolID="2">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
|
||||
<Position x="90" y="210" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<NumRows value="1" />
|
||||
<Fields>
|
||||
<Field name="Product_Category" />
|
||||
<Field name="New_Prod_Cat" />
|
||||
</Fields>
|
||||
<Data>
|
||||
<r>
|
||||
<c>Art & Crafts</c>
|
||||
<c>Art & Crafts & Hobbies</c>
|
||||
</r>
|
||||
</Data>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
|
||||
</Node>
|
||||
<Node ToolID="3">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.FindReplace.FindReplace">
|
||||
<Position x="354" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<FieldFind>Product_Category</FieldFind>
|
||||
<FieldSearch>Product_Category</FieldSearch>
|
||||
<ReplaceFoundField>New_Prod_Cat</ReplaceFoundField>
|
||||
<FindMode>FindAny</FindMode>
|
||||
<NoCase value="False" />
|
||||
<MatchWholeWord value="False" />
|
||||
<ReplaceMode>Replace</ReplaceMode>
|
||||
<ReplaceMultipleFound value="True" />
|
||||
<ReplaceAppendFields />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFindReplace" />
|
||||
</Node>
|
||||
<Node ToolID="5">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="522" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\FindReplaceTesting\Output\FindReplace.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>FindReplace.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="6">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Filter.Filter">
|
||||
<Position x="198" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Simple</Mode>
|
||||
<Simple>
|
||||
<Operator>=</Operator>
|
||||
<Field>Product_Category</Field>
|
||||
<Operands>
|
||||
<IgnoreTimeInDateTime>True</IgnoreTimeInDateTime>
|
||||
<DateType>fixed</DateType>
|
||||
<PeriodDate>2026-06-12 17:01:48</PeriodDate>
|
||||
<PeriodType>
|
||||
</PeriodType>
|
||||
<PeriodCount>0</PeriodCount>
|
||||
<Operand>Art & Crafts</Operand>
|
||||
<StartDate>2026-06-12 17:01:48</StartDate>
|
||||
<EndDate>2026-06-12 17:01:48</EndDate>
|
||||
</Operands>
|
||||
</Simple>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>[Product_Category] = "Art & Crafts"</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFilter" />
|
||||
</Node>
|
||||
<Node ToolID="7">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.FindReplace.FindReplace">
|
||||
<Position x="354" y="198" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<FieldFind>Product_Category</FieldFind>
|
||||
<FieldSearch>Product_Category</FieldSearch>
|
||||
<ReplaceFoundField>New_Prod_Cat</ReplaceFoundField>
|
||||
<FindMode>FindAny</FindMode>
|
||||
<NoCase value="False" />
|
||||
<MatchWholeWord value="False" />
|
||||
<ReplaceMode>Append</ReplaceMode>
|
||||
<ReplaceMultipleFound value="True" />
|
||||
<ReplaceAppendFields>
|
||||
<Field field="New_Prod_Cat" />
|
||||
</ReplaceAppendFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFindReplace" />
|
||||
</Node>
|
||||
<Node ToolID="8">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="522" y="198" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\FindReplaceTesting\Output\FindAppend.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>FindAppend.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
</Nodes>
|
||||
<Connections>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="6" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Output" />
|
||||
<Destination ToolID="3" Connection="Source" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="True" />
|
||||
<Destination ToolID="3" Connection="Targets" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Output" />
|
||||
<Destination ToolID="7" Connection="Source" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="True" />
|
||||
<Destination ToolID="7" Connection="Targets" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Output" />
|
||||
<Destination ToolID="5" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="7" Connection="Output" />
|
||||
<Destination ToolID="8" Connection="Input" />
|
||||
</Connection>
|
||||
</Connections>
|
||||
<Properties>
|
||||
<Memory default="True" />
|
||||
<GlobalRecordLimit value="0" />
|
||||
<TempFiles default="True" />
|
||||
<Annotation on="True" includeToolName="False" />
|
||||
<ConvErrorLimit value="10" />
|
||||
<ConvErrorLimit_Stop value="False" />
|
||||
<CancelOnError value="False" />
|
||||
<DisableBrowse value="False" />
|
||||
<EnablePerformanceProfiling value="False" />
|
||||
<RunWithE2 value="True" />
|
||||
<PredictiveToolsCodePage value="1252" />
|
||||
<DisableAllOutput value="False" />
|
||||
<ShowAllMacroMessages value="False" />
|
||||
<ShowConnectionStatusIsOn value="True" />
|
||||
<ShowConnectionStatusOnlyWhenRunning value="True" />
|
||||
<ZoomLevel value="0" />
|
||||
<LayoutType>Horizontal</LayoutType>
|
||||
<MetaInfo>
|
||||
<NameIsFileName value="True" />
|
||||
<Name>FIndReplaceTesting</Name>
|
||||
<Description />
|
||||
<RootToolName />
|
||||
<ToolVersion />
|
||||
<ToolInDb value="False" />
|
||||
<CategoryName />
|
||||
<SearchTags />
|
||||
<Author />
|
||||
<Company />
|
||||
<Copyright />
|
||||
<DescriptionLink actual="" displayed="" />
|
||||
<Example>
|
||||
<Description />
|
||||
<File />
|
||||
</Example>
|
||||
<WorkflowId value="fed6038b-5e82-4378-95cd-1e383904b239" />
|
||||
<Telemetry>
|
||||
<PreviousWorkflowId value="bb332445-f260-4a2f-8b54-334ebfc7bd48" />
|
||||
<OriginWorkflowId value="bb332445-f260-4a2f-8b54-334ebfc7bd48" />
|
||||
</Telemetry>
|
||||
</MetaInfo>
|
||||
<Events>
|
||||
<Enabled value="True" />
|
||||
</Events>
|
||||
</Properties>
|
||||
</AlteryxDocument>
|
||||
|
|
@ -0,0 +1,288 @@
|
|||
<?xml version="1.0"?>
|
||||
<AlteryxDocument yxmdVer="2022.3">
|
||||
<Nodes>
|
||||
<Node ToolID="1">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileInput.DbFileInput">
|
||||
<Position x="90" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Passwords />
|
||||
<File RecordLimit="" SearchSubDirs="False" FileFormat="0" OutputFileName="">..\Maven Toys Data\products.csv</File>
|
||||
<FormatSpecificOptions>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<IgnoreErrors>False</IgnoreErrors>
|
||||
<AllowShareWrite>False</AllowShareWrite>
|
||||
<ImportLine>1</ImportLine>
|
||||
<FieldLen>254</FieldLen>
|
||||
<SingleThreadRead>False</SingleThreadRead>
|
||||
<IgnoreQuotes>DoubleQuotes</IgnoreQuotes>
|
||||
<Delimeter>,</Delimeter>
|
||||
<QuoteRecordBreak>False</QuoteRecordBreak>
|
||||
<CodePage>28591</CodePage>
|
||||
</FormatSpecificOptions>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>products.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
<MetaInfo connection="Output">
|
||||
<RecordInfo>
|
||||
<Field name="Product_ID" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Name" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Category" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Cost" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Price" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
</RecordInfo>
|
||||
</MetaInfo>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileInput" />
|
||||
</Node>
|
||||
<Node ToolID="2">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
|
||||
<Position x="90" y="210" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<NumRows value="1" />
|
||||
<Fields>
|
||||
<Field name="Product_Category" />
|
||||
<Field name="New_Prod_Cat" />
|
||||
</Fields>
|
||||
<Data>
|
||||
<r>
|
||||
<c>Art & Crafts</c>
|
||||
<c>Art & Crafts & Hobbies</c>
|
||||
</r>
|
||||
</Data>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
|
||||
</Node>
|
||||
<Node ToolID="3">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.FindReplace.FindReplace">
|
||||
<Position x="354" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<FieldFind>Product_Category</FieldFind>
|
||||
<FieldSearch>Product_Category</FieldSearch>
|
||||
<ReplaceFoundField>New_Prod_Cat</ReplaceFoundField>
|
||||
<FindMode>FindAny</FindMode>
|
||||
<NoCase value="False" />
|
||||
<MatchWholeWord value="False" />
|
||||
<ReplaceMode>Replace</ReplaceMode>
|
||||
<ReplaceMultipleFound value="True" />
|
||||
<ReplaceAppendFields />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFindReplace" />
|
||||
</Node>
|
||||
<Node ToolID="5">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="522" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\FindReplace.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>FindReplace.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="6">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Filter.Filter">
|
||||
<Position x="198" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Simple</Mode>
|
||||
<Simple>
|
||||
<Operator>=</Operator>
|
||||
<Field>Product_Category</Field>
|
||||
<Operands>
|
||||
<IgnoreTimeInDateTime>True</IgnoreTimeInDateTime>
|
||||
<DateType>fixed</DateType>
|
||||
<PeriodDate>2026-06-12 17:01:48</PeriodDate>
|
||||
<PeriodType>
|
||||
</PeriodType>
|
||||
<PeriodCount>0</PeriodCount>
|
||||
<Operand>Art & Crafts</Operand>
|
||||
<StartDate>2026-06-12 17:01:48</StartDate>
|
||||
<EndDate>2026-06-12 17:01:48</EndDate>
|
||||
</Operands>
|
||||
</Simple>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>[Product_Category] = "Art & Crafts"</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFilter" />
|
||||
</Node>
|
||||
<Node ToolID="7">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.FindReplace.FindReplace">
|
||||
<Position x="354" y="198" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<FieldFind>Product_Category</FieldFind>
|
||||
<FieldSearch>Product_Category</FieldSearch>
|
||||
<ReplaceFoundField>New_Prod_Cat</ReplaceFoundField>
|
||||
<FindMode>FindAny</FindMode>
|
||||
<NoCase value="False" />
|
||||
<MatchWholeWord value="False" />
|
||||
<ReplaceMode>Append</ReplaceMode>
|
||||
<ReplaceMultipleFound value="True" />
|
||||
<ReplaceAppendFields>
|
||||
<Field field="New_Prod_Cat" />
|
||||
</ReplaceAppendFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxFindReplace" />
|
||||
</Node>
|
||||
<Node ToolID="8">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="522" y="198" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\FindAppend.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>FindAppend.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
</Nodes>
|
||||
<Connections>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="6" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Output" />
|
||||
<Destination ToolID="3" Connection="Source" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="True" />
|
||||
<Destination ToolID="3" Connection="Targets" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Output" />
|
||||
<Destination ToolID="7" Connection="Source" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="True" />
|
||||
<Destination ToolID="7" Connection="Targets" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Output" />
|
||||
<Destination ToolID="5" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="7" Connection="Output" />
|
||||
<Destination ToolID="8" Connection="Input" />
|
||||
</Connection>
|
||||
</Connections>
|
||||
<Properties>
|
||||
<Memory default="True" />
|
||||
<GlobalRecordLimit value="0" />
|
||||
<TempFiles default="True" />
|
||||
<Annotation on="True" includeToolName="False" />
|
||||
<ConvErrorLimit value="10" />
|
||||
<ConvErrorLimit_Stop value="False" />
|
||||
<CancelOnError value="False" />
|
||||
<DisableBrowse value="False" />
|
||||
<EnablePerformanceProfiling value="False" />
|
||||
<RunWithE2 value="True" />
|
||||
<PredictiveToolsCodePage value="1252" />
|
||||
<DisableAllOutput value="False" />
|
||||
<ShowAllMacroMessages value="False" />
|
||||
<ShowConnectionStatusIsOn value="True" />
|
||||
<ShowConnectionStatusOnlyWhenRunning value="True" />
|
||||
<ZoomLevel value="0" />
|
||||
<LayoutType>Horizontal</LayoutType>
|
||||
<MetaInfo>
|
||||
<NameIsFileName value="True" />
|
||||
<Name>FIndReplaceTesting</Name>
|
||||
<Description />
|
||||
<RootToolName />
|
||||
<ToolVersion />
|
||||
<ToolInDb value="False" />
|
||||
<CategoryName />
|
||||
<SearchTags />
|
||||
<Author />
|
||||
<Company />
|
||||
<Copyright />
|
||||
<DescriptionLink actual="" displayed="" />
|
||||
<Example>
|
||||
<Description />
|
||||
<File />
|
||||
</Example>
|
||||
<WorkflowId value="fed6038b-5e82-4378-95cd-1e383904b239" />
|
||||
<Telemetry>
|
||||
<PreviousWorkflowId value="bb332445-f260-4a2f-8b54-334ebfc7bd48" />
|
||||
<OriginWorkflowId value="bb332445-f260-4a2f-8b54-334ebfc7bd48" />
|
||||
</Telemetry>
|
||||
</MetaInfo>
|
||||
<Events>
|
||||
<Enabled value="True" />
|
||||
</Events>
|
||||
</Properties>
|
||||
</AlteryxDocument>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price,New_Prod_Cat
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99,Art & Crafts & Hobbies
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99,Art & Crafts & Hobbies
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99,Art & Crafts & Hobbies
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99,Art & Crafts & Hobbies
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99,Art & Crafts & Hobbies
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99,Art & Crafts & Hobbies
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99,Art & Crafts & Hobbies
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99,Art & Crafts & Hobbies
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts & Hobbies,$1.99,$3.99
|
||||
11,Etch A Sketch,Art & Crafts & Hobbies,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts & Hobbies,$13.99,$19.99
|
||||
19,Magic Sand,Art & Crafts & Hobbies,$13.99,$15.99
|
||||
25,PlayDoh Can,Art & Crafts & Hobbies,$1.99,$2.99
|
||||
26,PlayDoh Playset,Art & Crafts & Hobbies,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts & Hobbies,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts & Hobbies,$3.99,$10.99
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price,New_Prod_Cat
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99,Art & Crafts & Hobbies
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99,Art & Crafts & Hobbies
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99,Art & Crafts & Hobbies
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99,Art & Crafts & Hobbies
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99,Art & Crafts & Hobbies
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99,Art & Crafts & Hobbies
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99,Art & Crafts & Hobbies
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99,Art & Crafts & Hobbies
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts & Hobbies,$1.99,$3.99
|
||||
11,Etch A Sketch,Art & Crafts & Hobbies,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts & Hobbies,$13.99,$19.99
|
||||
19,Magic Sand,Art & Crafts & Hobbies,$13.99,$15.99
|
||||
25,PlayDoh Can,Art & Crafts & Hobbies,$1.99,$2.99
|
||||
26,PlayDoh Playset,Art & Crafts & Hobbies,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts & Hobbies,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts & Hobbies,$3.99,$10.99
|
||||
|
File diff suppressed because it is too large
Load Diff
|
|
@ -1,165 +1,4 @@
|
|||
Store_ID,Product_ID,Stock_On_Hand
|
||||
15,31,4
|
||||
15,32,16
|
||||
15,33,8
|
||||
15,34,7
|
||||
16,31,14
|
||||
16,32,7
|
||||
16,33,6
|
||||
16,34,2
|
||||
16,35,6
|
||||
17,31,20
|
||||
17,32,15
|
||||
17,33,27
|
||||
17,34,11
|
||||
18,31,4
|
||||
18,32,9
|
||||
18,33,9
|
||||
18,34,8
|
||||
18,35,10
|
||||
19,31,4
|
||||
19,32,5
|
||||
19,33,0
|
||||
19,34,15
|
||||
19,35,14
|
||||
20,31,10
|
||||
20,32,9
|
||||
20,33,28
|
||||
20,34,19
|
||||
21,31,19
|
||||
21,32,3
|
||||
21,33,16
|
||||
21,34,16
|
||||
22,31,34
|
||||
22,32,38
|
||||
22,33,8
|
||||
22,34,6
|
||||
22,35,2
|
||||
23,31,19
|
||||
23,32,11
|
||||
23,33,6
|
||||
23,34,18
|
||||
23,35,4
|
||||
24,31,10
|
||||
24,32,10
|
||||
24,33,4
|
||||
24,34,17
|
||||
24,35,19
|
||||
25,31,0
|
||||
25,32,10
|
||||
25,33,4
|
||||
25,34,23
|
||||
26,31,4
|
||||
26,32,2
|
||||
26,33,2
|
||||
26,34,17
|
||||
26,35,8
|
||||
27,31,13
|
||||
27,32,6
|
||||
27,33,7
|
||||
27,34,9
|
||||
28,31,18
|
||||
28,32,3
|
||||
28,33,9
|
||||
28,34,19
|
||||
42,31,11
|
||||
42,32,4
|
||||
42,33,18
|
||||
42,34,34
|
||||
42,35,13
|
||||
43,31,18
|
||||
43,32,38
|
||||
43,33,5
|
||||
43,34,7
|
||||
44,31,8
|
||||
44,32,29
|
||||
44,33,0
|
||||
44,34,22
|
||||
45,31,6
|
||||
45,32,6
|
||||
45,33,7
|
||||
45,34,3
|
||||
46,31,13
|
||||
46,32,8
|
||||
46,33,11
|
||||
46,34,24
|
||||
47,31,48
|
||||
47,32,6
|
||||
47,33,13
|
||||
47,34,3
|
||||
48,31,41
|
||||
48,32,7
|
||||
48,33,0
|
||||
48,34,39
|
||||
48,35,3
|
||||
49,31,51
|
||||
49,32,11
|
||||
49,33,15
|
||||
49,34,2
|
||||
49,35,19
|
||||
50,31,18
|
||||
50,32,9
|
||||
50,33,1
|
||||
50,34,17
|
||||
50,35,8
|
||||
29,31,3
|
||||
29,32,7
|
||||
29,33,6
|
||||
29,34,16
|
||||
30,31,20
|
||||
30,32,13
|
||||
30,33,10
|
||||
30,34,18
|
||||
31,31,39
|
||||
31,32,12
|
||||
31,33,20
|
||||
31,34,20
|
||||
32,31,4
|
||||
32,32,8
|
||||
32,33,13
|
||||
32,34,20
|
||||
33,31,7
|
||||
33,32,15
|
||||
33,33,9
|
||||
33,34,14
|
||||
33,35,18
|
||||
34,31,30
|
||||
34,32,19
|
||||
34,33,9
|
||||
34,34,17
|
||||
34,35,20
|
||||
35,31,74
|
||||
35,32,20
|
||||
35,33,14
|
||||
35,34,9
|
||||
36,31,6
|
||||
36,32,7
|
||||
36,33,21
|
||||
36,34,2
|
||||
36,35,12
|
||||
37,31,14
|
||||
37,32,0
|
||||
37,33,10
|
||||
37,34,13
|
||||
37,35,14
|
||||
38,31,17
|
||||
38,32,20
|
||||
38,33,9
|
||||
38,34,18
|
||||
38,35,2
|
||||
39,31,15
|
||||
39,32,5
|
||||
39,33,14
|
||||
39,34,4
|
||||
40,31,5
|
||||
40,32,7
|
||||
40,33,16
|
||||
40,34,5
|
||||
41,31,18
|
||||
41,32,29
|
||||
41,33,13
|
||||
41,34,15
|
||||
41,35,10
|
||||
1,31,7
|
||||
1,32,4
|
||||
1,33,2
|
||||
|
|
@ -224,3 +63,164 @@ Store_ID,Product_ID,Stock_On_Hand
|
|||
14,32,2
|
||||
14,33,2
|
||||
14,34,8
|
||||
29,31,3
|
||||
29,32,7
|
||||
29,33,6
|
||||
29,34,16
|
||||
30,31,20
|
||||
30,32,13
|
||||
30,33,10
|
||||
30,34,18
|
||||
31,31,39
|
||||
31,32,12
|
||||
31,33,20
|
||||
31,34,20
|
||||
32,31,4
|
||||
32,32,8
|
||||
32,33,13
|
||||
32,34,20
|
||||
33,31,7
|
||||
33,32,15
|
||||
33,33,9
|
||||
33,34,14
|
||||
33,35,18
|
||||
34,31,30
|
||||
34,32,19
|
||||
34,33,9
|
||||
34,34,17
|
||||
34,35,20
|
||||
35,31,74
|
||||
35,32,20
|
||||
35,33,14
|
||||
35,34,9
|
||||
36,31,6
|
||||
36,32,7
|
||||
36,33,21
|
||||
36,34,2
|
||||
36,35,12
|
||||
37,31,14
|
||||
37,32,0
|
||||
37,33,10
|
||||
37,34,13
|
||||
37,35,14
|
||||
38,31,17
|
||||
38,32,20
|
||||
38,33,9
|
||||
38,34,18
|
||||
38,35,2
|
||||
39,31,15
|
||||
39,32,5
|
||||
39,33,14
|
||||
39,34,4
|
||||
40,31,5
|
||||
40,32,7
|
||||
40,33,16
|
||||
40,34,5
|
||||
41,31,18
|
||||
41,32,29
|
||||
41,33,13
|
||||
41,34,15
|
||||
41,35,10
|
||||
42,31,11
|
||||
42,32,4
|
||||
42,33,18
|
||||
42,34,34
|
||||
42,35,13
|
||||
43,31,18
|
||||
43,32,38
|
||||
43,33,5
|
||||
43,34,7
|
||||
44,31,8
|
||||
44,32,29
|
||||
44,33,0
|
||||
44,34,22
|
||||
45,31,6
|
||||
45,32,6
|
||||
45,33,7
|
||||
45,34,3
|
||||
46,31,13
|
||||
46,32,8
|
||||
46,33,11
|
||||
46,34,24
|
||||
47,31,48
|
||||
47,32,6
|
||||
47,33,13
|
||||
47,34,3
|
||||
48,31,41
|
||||
48,32,7
|
||||
48,33,0
|
||||
48,34,39
|
||||
48,35,3
|
||||
49,31,51
|
||||
49,32,11
|
||||
49,33,15
|
||||
49,34,2
|
||||
49,35,19
|
||||
50,31,18
|
||||
50,32,9
|
||||
50,33,1
|
||||
50,34,17
|
||||
50,35,8
|
||||
15,31,4
|
||||
15,32,16
|
||||
15,33,8
|
||||
15,34,7
|
||||
16,31,14
|
||||
16,32,7
|
||||
16,33,6
|
||||
16,34,2
|
||||
16,35,6
|
||||
17,31,20
|
||||
17,32,15
|
||||
17,33,27
|
||||
17,34,11
|
||||
18,31,4
|
||||
18,32,9
|
||||
18,33,9
|
||||
18,34,8
|
||||
18,35,10
|
||||
19,31,4
|
||||
19,32,5
|
||||
19,33,0
|
||||
19,34,15
|
||||
19,35,14
|
||||
20,31,10
|
||||
20,32,9
|
||||
20,33,28
|
||||
20,34,19
|
||||
21,31,19
|
||||
21,32,3
|
||||
21,33,16
|
||||
21,34,16
|
||||
22,31,34
|
||||
22,32,38
|
||||
22,33,8
|
||||
22,34,6
|
||||
22,35,2
|
||||
23,31,19
|
||||
23,32,11
|
||||
23,33,6
|
||||
23,34,18
|
||||
23,35,4
|
||||
24,31,10
|
||||
24,32,10
|
||||
24,33,4
|
||||
24,34,17
|
||||
24,35,19
|
||||
25,31,0
|
||||
25,32,10
|
||||
25,33,4
|
||||
25,34,23
|
||||
26,31,4
|
||||
26,32,2
|
||||
26,33,2
|
||||
26,34,17
|
||||
26,35,8
|
||||
27,31,13
|
||||
27,32,6
|
||||
27,33,7
|
||||
27,34,9
|
||||
28,31,18
|
||||
28,32,3
|
||||
28,33,9
|
||||
28,34,19
|
||||
|
|
|
|||
|
|
|
@ -1,7 +1,7 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
3,Barrel O' Slime,Art & Crafts,$1.99,$3.99
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
6,Colorbuds,Electronics,$6.99,$14.99
|
||||
|
|
@ -28,5 +28,5 @@ Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
|||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
30,Rubik's Cube,Games,$17.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
100,Non-product,NoCat,$1,$1
|
||||
|
|
|
|||
|
|
|
@ -1,6 +1,6 @@
|
|||
Product_Category,Last_Product_Cost,Last_Product_Name
|
||||
Art & Crafts,20.99,PlayDoh Playset
|
||||
Electronics,20.99,Toy Robot
|
||||
Games,17.99,Rubik's Cube
|
||||
Games,17.99,"Rubik's Cube"
|
||||
Sports & Outdoors,14.99,Nerf Gun
|
||||
Toys,34.99,Lego Bricks
|
||||
|
|
|
|||
|
|
|
@ -0,0 +1,31 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
13,Gamer Headphones,Electronics,$14.99,$20.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
8,Deck Of Cards,Games,$3.99,$6.99
|
||||
14,Glass Marbles,Games,$5.99,$10.99
|
||||
16,Jenga,Games,$2.99,$9.99
|
||||
22,Monopoly,Games,$13.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
12,Foam Disk Launcher,Sports & Outdoors,$8.99,$11.99
|
||||
20,Mini Basketball Hoop,Sports & Outdoors,$8.99,$24.99
|
||||
21,Mini Ping Pong Set,Sports & Outdoors,$6.99,$9.99
|
||||
24,Nerf Gun,Sports & Outdoors,$14.99,$19.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
9,Dino Egg,Toys,$9.99,$10.99
|
||||
10,Dinosaur Figures,Toys,$10.99,$14.99
|
||||
15,Hot Wheels 5-Pack,Toys,$3.99,$5.99
|
||||
18,Lego Bricks,Toys,$34.99,$39.99
|
||||
23,Mr. Potatohead,Toys,$4.99,$9.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
20,Mini Basketball Hoop,Sports & Outdoors,$8.99,$24.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
9,Dino Egg,Toys,$9.99,$10.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
6,Colorbuds,Electronics,$6.99,$14.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
7,Dart Gun,Sports & Outdoors,$11.99,$15.99
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
13,Gamer Headphones,Electronics,$14.99,$20.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
6,Colorbuds,Electronics,$6.99,$14.99
|
||||
22,Monopoly,Games,$13.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
16,Jenga,Games,$2.99,$9.99
|
||||
8,Deck Of Cards,Games,$3.99,$6.99
|
||||
14,Glass Marbles,Games,$5.99,$10.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
7,Dart Gun,Sports & Outdoors,$11.99,$15.99
|
||||
24,Nerf Gun,Sports & Outdoors,$14.99,$19.99
|
||||
21,Mini Ping Pong Set,Sports & Outdoors,$6.99,$9.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
12,Foam Disk Launcher,Sports & Outdoors,$8.99,$11.99
|
||||
10,Dinosaur Figures,Toys,$10.99,$14.99
|
||||
15,Hot Wheels 5-Pack,Toys,$3.99,$5.99
|
||||
18,Lego Bricks,Toys,$34.99,$39.99
|
||||
23,Mr. Potatohead,Toys,$4.99,$9.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
13,Gamer Headphones,Electronics,$14.99,$20.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
8,Deck Of Cards,Games,$3.99,$6.99
|
||||
14,Glass Marbles,Games,$5.99,$10.99
|
||||
16,Jenga,Games,$2.99,$9.99
|
||||
22,Monopoly,Games,$13.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
12,Foam Disk Launcher,Sports & Outdoors,$8.99,$11.99
|
||||
20,Mini Basketball Hoop,Sports & Outdoors,$8.99,$24.99
|
||||
21,Mini Ping Pong Set,Sports & Outdoors,$6.99,$9.99
|
||||
24,Nerf Gun,Sports & Outdoors,$14.99,$19.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
9,Dino Egg,Toys,$9.99,$10.99
|
||||
10,Dinosaur Figures,Toys,$10.99,$14.99
|
||||
15,Hot Wheels 5-Pack,Toys,$3.99,$5.99
|
||||
18,Lego Bricks,Toys,$34.99,$39.99
|
||||
23,Mr. Potatohead,Toys,$4.99,$9.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
25,PlayDoh Can,Art & Crafts,$1.99,$2.99
|
||||
19,Magic Sand,Art & Crafts,$13.99,$15.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
20,Mini Basketball Hoop,Sports & Outdoors,$8.99,$24.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
9,Dino Egg,Toys,$9.99,$10.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
2,Animal Figures,Toys,$9.99,$12.99
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
28,Playfoam,Art & Crafts,$3.99,$10.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
32,Supersoaker Water Gun,Sports & Outdoors,$11.99,$14.99
|
||||
33,Teddy Bear,Toys,$10.99,$12.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
35,Uno Card Game,Games,$3.99,$7.99
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
6,Colorbuds,Electronics,$6.99,$14.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
7,Dart Gun,Sports & Outdoors,$11.99,$15.99
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
Product_ID,Product_Name,Product_Category,Product_Cost,Product_Price
|
||||
3,"Barrel O' Slime",Art & Crafts,$1.99,$3.99
|
||||
11,Etch A Sketch,Art & Crafts,$10.99,$20.99
|
||||
17,Kids Makeup Kit,Art & Crafts,$13.99,$19.99
|
||||
26,PlayDoh Playset,Art & Crafts,$20.99,$24.99
|
||||
27,PlayDoh Toolkit,Art & Crafts,$3.99,$4.99
|
||||
13,Gamer Headphones,Electronics,$14.99,$20.99
|
||||
34,Toy Robot,Electronics,$20.99,$25.99
|
||||
6,Colorbuds,Electronics,$6.99,$14.99
|
||||
22,Monopoly,Games,$13.99,$19.99
|
||||
30,"Rubik's Cube",Games,$17.99,$19.99
|
||||
16,Jenga,Games,$2.99,$9.99
|
||||
8,Deck Of Cards,Games,$3.99,$6.99
|
||||
14,Glass Marbles,Games,$5.99,$10.99
|
||||
5,Classic Dominoes,Games,$7.99,$9.99
|
||||
4,Chutes & Ladders,Games,$9.99,$12.99
|
||||
7,Dart Gun,Sports & Outdoors,$11.99,$15.99
|
||||
24,Nerf Gun,Sports & Outdoors,$14.99,$19.99
|
||||
21,Mini Ping Pong Set,Sports & Outdoors,$6.99,$9.99
|
||||
31,Splash Balls,Sports & Outdoors,$7.99,$8.99
|
||||
12,Foam Disk Launcher,Sports & Outdoors,$8.99,$11.99
|
||||
10,Dinosaur Figures,Toys,$10.99,$14.99
|
||||
15,Hot Wheels 5-Pack,Toys,$3.99,$5.99
|
||||
18,Lego Bricks,Toys,$34.99,$39.99
|
||||
23,Mr. Potatohead,Toys,$4.99,$9.99
|
||||
29,Plush Pony,Toys,$8.99,$19.99
|
||||
1,Action Figure,Toys,$9.99,$15.99
|
||||
|
|
|
@ -0,0 +1,439 @@
|
|||
<?xml version="1.0"?>
|
||||
<AlteryxDocument yxmdVer="2022.3">
|
||||
<Nodes>
|
||||
<Node ToolID="1">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileInput.DbFileInput">
|
||||
<Position x="102" y="90" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Passwords />
|
||||
<File RecordLimit="" SearchSubDirs="False" FileFormat="0" OutputFileName="">..\Maven Toys Data\products.csv</File>
|
||||
<FormatSpecificOptions>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<IgnoreErrors>False</IgnoreErrors>
|
||||
<AllowShareWrite>False</AllowShareWrite>
|
||||
<ImportLine>1</ImportLine>
|
||||
<FieldLen>254</FieldLen>
|
||||
<SingleThreadRead>False</SingleThreadRead>
|
||||
<IgnoreQuotes>DoubleQuotes</IgnoreQuotes>
|
||||
<Delimeter>,</Delimeter>
|
||||
<QuoteRecordBreak>False</QuoteRecordBreak>
|
||||
<CodePage>28591</CodePage>
|
||||
</FormatSpecificOptions>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>products.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<MetaInfo connection="Output">
|
||||
<RecordInfo>
|
||||
<Field name="Product_ID" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Name" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Category" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Cost" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Price" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
</RecordInfo>
|
||||
</MetaInfo>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileInput" />
|
||||
</Node>
|
||||
<Node ToolID="2">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Unique.Unique">
|
||||
<Position x="246" y="90" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<UniqueFields>
|
||||
<Field field="Product_Category" />
|
||||
</UniqueFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxUnique" />
|
||||
</Node>
|
||||
<Node ToolID="3">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Unique.Unique">
|
||||
<Position x="246" y="330" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<UniqueFields>
|
||||
<Field field="Product_Category" />
|
||||
<Field field="Product_Cost" />
|
||||
</UniqueFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxUnique" />
|
||||
</Node>
|
||||
<Node ToolID="4">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="570" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>First</Mode>
|
||||
<N>5</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>First 5 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="5">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="678" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Last</Mode>
|
||||
<N>5</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>Last 5 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="6">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="786" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Skip</Mode>
|
||||
<N>25</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>Skip 1st 25 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="7">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\UniqueByProductCat.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>UniqueByProductCat.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="8">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="186" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\DupeByProductCat.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>DupeByProductCat.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="9">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="318" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\UniqueByProductCatandCost.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>UniqueByProductCatandCost.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="10">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="426" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\DupeByProductCatandCost.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>DupeByProductCatandCost.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="11">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="570" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\ProductsFirst5.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsFirst5.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="12">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="678" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\ProductsLast5.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsLast5.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="13">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="786" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">Z:\Pyteryx\Alteryx_TestWorkflows\Unique&Sample\Output\expected\ProductsSkipFirst25.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsSkipFirst25.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
</Nodes>
|
||||
<Connections>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="2" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="3" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="4" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="5" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="6" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Unique" />
|
||||
<Destination ToolID="7" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Duplicates" />
|
||||
<Destination ToolID="8" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Unique" />
|
||||
<Destination ToolID="9" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Duplicates" />
|
||||
<Destination ToolID="10" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="4" Connection="Output" />
|
||||
<Destination ToolID="11" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="5" Connection="Output" />
|
||||
<Destination ToolID="12" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="Output" />
|
||||
<Destination ToolID="13" Connection="Input" />
|
||||
</Connection>
|
||||
</Connections>
|
||||
<Properties>
|
||||
<Memory default="True" />
|
||||
<GlobalRecordLimit value="0" />
|
||||
<TempFiles default="True" />
|
||||
<Annotation on="True" includeToolName="False" />
|
||||
<ConvErrorLimit value="10" />
|
||||
<ConvErrorLimit_Stop value="False" />
|
||||
<CancelOnError value="False" />
|
||||
<DisableBrowse value="False" />
|
||||
<EnablePerformanceProfiling value="False" />
|
||||
<RunWithE2 value="True" />
|
||||
<PredictiveToolsCodePage value="1252" />
|
||||
<DisableAllOutput value="False" />
|
||||
<ShowAllMacroMessages value="False" />
|
||||
<ShowConnectionStatusIsOn value="True" />
|
||||
<ShowConnectionStatusOnlyWhenRunning value="True" />
|
||||
<ZoomLevel value="0" />
|
||||
<LayoutType>Horizontal</LayoutType>
|
||||
<MetaInfo>
|
||||
<NameIsFileName value="True" />
|
||||
<Name>Unique&Sample</Name>
|
||||
<Description />
|
||||
<RootToolName />
|
||||
<ToolVersion />
|
||||
<ToolInDb value="False" />
|
||||
<CategoryName />
|
||||
<SearchTags />
|
||||
<Author />
|
||||
<Company />
|
||||
<Copyright />
|
||||
<DescriptionLink actual="" displayed="" />
|
||||
<Example>
|
||||
<Description />
|
||||
<File />
|
||||
</Example>
|
||||
<WorkflowId value="5f6574f2-33dc-4332-859c-8822ddf7eda2" />
|
||||
<Telemetry>
|
||||
<PreviousWorkflowId value="dab73b8e-2c9a-4fbc-865d-a67630a34d04" />
|
||||
<OriginWorkflowId value="dab73b8e-2c9a-4fbc-865d-a67630a34d04" />
|
||||
</Telemetry>
|
||||
</MetaInfo>
|
||||
<Events>
|
||||
<Enabled value="True" />
|
||||
</Events>
|
||||
</Properties>
|
||||
</AlteryxDocument>
|
||||
|
|
@ -0,0 +1,439 @@
|
|||
<?xml version="1.0"?>
|
||||
<AlteryxDocument yxmdVer="2022.3">
|
||||
<Nodes>
|
||||
<Node ToolID="1">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileInput.DbFileInput">
|
||||
<Position x="102" y="90" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Passwords />
|
||||
<File RecordLimit="" SearchSubDirs="False" FileFormat="0" OutputFileName="">..\Maven Toys Data\products.csv</File>
|
||||
<FormatSpecificOptions>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<IgnoreErrors>False</IgnoreErrors>
|
||||
<AllowShareWrite>False</AllowShareWrite>
|
||||
<ImportLine>1</ImportLine>
|
||||
<FieldLen>254</FieldLen>
|
||||
<SingleThreadRead>False</SingleThreadRead>
|
||||
<IgnoreQuotes>DoubleQuotes</IgnoreQuotes>
|
||||
<Delimeter>,</Delimeter>
|
||||
<QuoteRecordBreak>False</QuoteRecordBreak>
|
||||
<CodePage>28591</CodePage>
|
||||
</FormatSpecificOptions>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>products.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<MetaInfo connection="Output">
|
||||
<RecordInfo>
|
||||
<Field name="Product_ID" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Name" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Category" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Cost" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
<Field name="Product_Price" size="254" source="File: Z:\Pyteryx\Alteryx_TestWorkflows\Maven Toys Data\products.csv" type="V_String" />
|
||||
</RecordInfo>
|
||||
</MetaInfo>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileInput" />
|
||||
</Node>
|
||||
<Node ToolID="2">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Unique.Unique">
|
||||
<Position x="246" y="90" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<UniqueFields>
|
||||
<Field field="Product_Category" />
|
||||
</UniqueFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxUnique" />
|
||||
</Node>
|
||||
<Node ToolID="3">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Unique.Unique">
|
||||
<Position x="246" y="330" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<UniqueFields>
|
||||
<Field field="Product_Category" />
|
||||
<Field field="Product_Cost" />
|
||||
</UniqueFields>
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText />
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxUnique" />
|
||||
</Node>
|
||||
<Node ToolID="4">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="570" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>First</Mode>
|
||||
<N>5</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>First 5 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="5">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="678" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Last</Mode>
|
||||
<N>5</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>Last 5 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="6">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.Sample.Sample">
|
||||
<Position x="246" y="786" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<Mode>Skip</Mode>
|
||||
<N>25</N>
|
||||
<GroupFields orderChanged="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>Skip 1st 25 rows</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSample" />
|
||||
</Node>
|
||||
<Node ToolID="7">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="78" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\UniqueByProductCat.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>UniqueByProductCat.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="8">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="186" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\DupeByProductCat.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>DupeByProductCat.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="9">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="318" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\UniqueByProductCatandCost.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>UniqueByProductCatandCost.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="10">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="426" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\DupeByProductCatandCost.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>DupeByProductCatandCost.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="11">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="570" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\ProductsFirst5.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsFirst5.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="12">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="678" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\ProductsLast5.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsLast5.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
<Node ToolID="13">
|
||||
<GuiSettings Plugin="AlteryxBasePluginsGui.DbFileOutput.DbFileOutput">
|
||||
<Position x="450" y="786" />
|
||||
</GuiSettings>
|
||||
<Properties>
|
||||
<Configuration>
|
||||
<File MaxRecords="" FileFormat="0">.\Output\expected\ProductsSkipFirst25.csv</File>
|
||||
<Passwords />
|
||||
<Disable>False</Disable>
|
||||
<FormatSpecificOptions>
|
||||
<LineEndStyle>CRLF</LineEndStyle>
|
||||
<Delimeter>,</Delimeter>
|
||||
<ForceQuotes>False</ForceQuotes>
|
||||
<HeaderRow>True</HeaderRow>
|
||||
<CodePage>28591</CodePage>
|
||||
<WriteBOM>True</WriteBOM>
|
||||
</FormatSpecificOptions>
|
||||
<MultiFile value="False" />
|
||||
</Configuration>
|
||||
<Annotation DisplayMode="0">
|
||||
<Name />
|
||||
<DefaultAnnotationText>ProductsSkipFirst25.csv</DefaultAnnotationText>
|
||||
<Left value="False" />
|
||||
</Annotation>
|
||||
<Dependencies>
|
||||
<Implicit />
|
||||
</Dependencies>
|
||||
</Properties>
|
||||
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxDbFileOutput" />
|
||||
</Node>
|
||||
</Nodes>
|
||||
<Connections>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="2" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="3" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="4" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="5" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="1" Connection="Output" />
|
||||
<Destination ToolID="6" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Unique" />
|
||||
<Destination ToolID="7" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="2" Connection="Duplicates" />
|
||||
<Destination ToolID="8" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Unique" />
|
||||
<Destination ToolID="9" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="3" Connection="Duplicates" />
|
||||
<Destination ToolID="10" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="4" Connection="Output" />
|
||||
<Destination ToolID="11" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="5" Connection="Output" />
|
||||
<Destination ToolID="12" Connection="Input" />
|
||||
</Connection>
|
||||
<Connection>
|
||||
<Origin ToolID="6" Connection="Output" />
|
||||
<Destination ToolID="13" Connection="Input" />
|
||||
</Connection>
|
||||
</Connections>
|
||||
<Properties>
|
||||
<Memory default="True" />
|
||||
<GlobalRecordLimit value="0" />
|
||||
<TempFiles default="True" />
|
||||
<Annotation on="True" includeToolName="False" />
|
||||
<ConvErrorLimit value="10" />
|
||||
<ConvErrorLimit_Stop value="False" />
|
||||
<CancelOnError value="False" />
|
||||
<DisableBrowse value="False" />
|
||||
<EnablePerformanceProfiling value="False" />
|
||||
<RunWithE2 value="True" />
|
||||
<PredictiveToolsCodePage value="1252" />
|
||||
<DisableAllOutput value="False" />
|
||||
<ShowAllMacroMessages value="False" />
|
||||
<ShowConnectionStatusIsOn value="True" />
|
||||
<ShowConnectionStatusOnlyWhenRunning value="True" />
|
||||
<ZoomLevel value="0" />
|
||||
<LayoutType>Horizontal</LayoutType>
|
||||
<MetaInfo>
|
||||
<NameIsFileName value="True" />
|
||||
<Name>Unique&Sample</Name>
|
||||
<Description />
|
||||
<RootToolName />
|
||||
<ToolVersion />
|
||||
<ToolInDb value="False" />
|
||||
<CategoryName />
|
||||
<SearchTags />
|
||||
<Author />
|
||||
<Company />
|
||||
<Copyright />
|
||||
<DescriptionLink actual="" displayed="" />
|
||||
<Example>
|
||||
<Description />
|
||||
<File />
|
||||
</Example>
|
||||
<WorkflowId value="5f6574f2-33dc-4332-859c-8822ddf7eda2" />
|
||||
<Telemetry>
|
||||
<PreviousWorkflowId value="dab73b8e-2c9a-4fbc-865d-a67630a34d04" />
|
||||
<OriginWorkflowId value="dab73b8e-2c9a-4fbc-865d-a67630a34d04" />
|
||||
</Telemetry>
|
||||
</MetaInfo>
|
||||
<Events>
|
||||
<Enabled value="True" />
|
||||
</Events>
|
||||
</Properties>
|
||||
</AlteryxDocument>
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
from __future__ import annotations
|
||||
import csv
|
||||
import io
|
||||
from pathlib import Path
|
||||
from typing import Dict
|
||||
import xml.etree.ElementTree as ET
|
||||
|
|
@ -76,8 +78,8 @@ class OutputDataTool(BaseTool):
|
|||
header = header_val.lower() != "false"
|
||||
line_end = (opts.findtext("LineEndStyle") or "LF").strip().upper()
|
||||
eol = "\r\n" if line_end == "CRLF" else "\n"
|
||||
df.write_csv(str(path), separator=delim, include_header=header,
|
||||
line_terminator=eol)
|
||||
force_quotes = (opts.findtext("ForceQuotes") or "False").lower() == "true"
|
||||
self._write_csv_alteryx(df, path, delim, header, eol, force_quotes)
|
||||
elif fmt == 25: # Excel
|
||||
df.write_excel(str(path))
|
||||
elif fmt == 2: # Parquet
|
||||
|
|
@ -89,3 +91,40 @@ class OutputDataTool(BaseTool):
|
|||
print(f"[Output] YXDB write not supported; wrote Parquet to {fallback}")
|
||||
else:
|
||||
df.write_csv(str(path))
|
||||
|
||||
@staticmethod
|
||||
def _write_csv_alteryx(
|
||||
df: pl.DataFrame,
|
||||
path: Path,
|
||||
delim: str,
|
||||
header: bool,
|
||||
eol: str,
|
||||
force_quotes: bool,
|
||||
) -> None:
|
||||
"""Write CSV matching Alteryx quoting behaviour.
|
||||
|
||||
Alteryx quotes a field when it contains the delimiter, a newline,
|
||||
a double-quote, or a single-quote (apostrophe). We replicate that
|
||||
by using Python's csv module with a custom quoting function.
|
||||
"""
|
||||
# Characters that trigger quoting (beyond csv.QUOTE_MINIMAL's default set)
|
||||
_needs_quote_chars = frozenset({delim, '"', "'", '\n', '\r'})
|
||||
|
||||
def _needs_quoting(val: str) -> bool:
|
||||
return force_quotes or any(c in _needs_quote_chars for c in val)
|
||||
|
||||
with open(path, "w", newline="", encoding="utf-8") as f:
|
||||
if header:
|
||||
f.write(delim.join(df.columns) + eol)
|
||||
for row in df.iter_rows():
|
||||
parts: list[str] = []
|
||||
for val in row:
|
||||
if val is None:
|
||||
parts.append("")
|
||||
else:
|
||||
s = str(val)
|
||||
if _needs_quoting(s):
|
||||
# Escape embedded double-quotes by doubling them
|
||||
s = '"' + s.replace('"', '""') + '"'
|
||||
parts.append(s)
|
||||
f.write(delim.join(parts) + eol)
|
||||
|
|
|
|||
|
|
@ -5,37 +5,163 @@ from tools.base import BaseTool
|
|||
|
||||
|
||||
class FindReplaceTool(BaseTool):
|
||||
"""Look up values in a Find/Replace table and replace matching fields."""
|
||||
"""Look up values in a Find/Replace table and replace or append matching fields.
|
||||
|
||||
Alteryx FindReplace connections:
|
||||
- "Targets" (dest anchor) = the data to search in
|
||||
- "Source" (dest anchor) = the find/replace lookup table
|
||||
|
||||
Key XML config elements:
|
||||
- FieldSearch : field in Target data to search
|
||||
- FieldFind : field in Source data with the find values
|
||||
- ReplaceFoundField : field in Source data with the replacement values
|
||||
- ReplaceMode : "Replace" (overwrite searched field) or "Append" (add new columns)
|
||||
- ReplaceAppendFields: which fields from Source to append (Append mode)
|
||||
- FindMode : "FindAny" (substring), "FindAll" (all occurrences)
|
||||
- NoCase : case-insensitive matching
|
||||
- MatchWholeWord : whole-word matching
|
||||
"""
|
||||
|
||||
def execute(self, inputs: Dict[str, pl.DataFrame]) -> Dict[str, pl.DataFrame]:
|
||||
target = inputs.get("Target", inputs.get("Input", pl.DataFrame()))
|
||||
find_df = inputs.get("Find", inputs.get("Replace", pl.DataFrame()))
|
||||
# Targets = the data being searched; Source = the lookup table
|
||||
target = inputs.get("Targets", inputs.get("Target", inputs.get("Input", pl.DataFrame())))
|
||||
source = inputs.get("Source", inputs.get("Find", inputs.get("Replace", pl.DataFrame())))
|
||||
|
||||
if target.is_empty() or find_df.is_empty() or self.config is None:
|
||||
if target.is_empty() or source.is_empty() or self.config is None:
|
||||
return {"Output": target}
|
||||
|
||||
field = self._cfg("Field", "") or ""
|
||||
find_field = self._cfg("FindField", "") or ""
|
||||
replace_field = self._cfg("ReplaceField", "") or ""
|
||||
whole_word = (self._cfg("WholeWord", "False") or "False").lower() == "true"
|
||||
# Read config (support both old and new XML element names)
|
||||
search_field = self._cfg("FieldSearch", "") or self._cfg("Field", "") or ""
|
||||
find_field = self._cfg("FieldFind", "") or self._cfg("FindField", "") or ""
|
||||
replace_field = self._cfg("ReplaceFoundField", "") or self._cfg("ReplaceField", "") or ""
|
||||
replace_mode = (self._cfg("ReplaceMode", "Replace") or "Replace").strip()
|
||||
no_case = (self._cfg_attr("NoCase", "value", "False") or "False").lower() == "true"
|
||||
whole_word = (self._cfg_attr("MatchWholeWord", "value", "False") or "False").lower() == "true"
|
||||
|
||||
if not (field and find_field and replace_field):
|
||||
if not (search_field and find_field and replace_field):
|
||||
return {"Output": target}
|
||||
|
||||
find_values = find_df[find_field].cast(pl.String).to_list()
|
||||
replace_values = find_df[replace_field].cast(pl.String).to_list()
|
||||
# Build the lookup mapping: find_value → replace_value
|
||||
find_values = source[find_field].cast(pl.String).to_list()
|
||||
replace_values = source[replace_field].cast(pl.String).to_list()
|
||||
lookup = dict(zip(find_values, replace_values))
|
||||
|
||||
if replace_mode == "Append":
|
||||
return self._do_append(target, source, search_field, find_field,
|
||||
replace_field, lookup, no_case, whole_word)
|
||||
else:
|
||||
return self._do_replace(target, search_field, lookup, no_case, whole_word)
|
||||
|
||||
def _do_replace(
|
||||
self,
|
||||
target: pl.DataFrame,
|
||||
search_field: str,
|
||||
lookup: dict,
|
||||
no_case: bool,
|
||||
whole_word: bool,
|
||||
) -> Dict[str, pl.DataFrame]:
|
||||
"""Replace mode: overwrite the searched field in-place with replacement values."""
|
||||
|
||||
def _replace_fn(val: str | None) -> str | None:
|
||||
if val is None:
|
||||
return None
|
||||
for find, rep in lookup.items():
|
||||
if whole_word:
|
||||
import re
|
||||
val = re.sub(r"\b" + re.escape(find) + r"\b", rep, val)
|
||||
flags = re.IGNORECASE if no_case else 0
|
||||
val = re.sub(r"\b" + re.escape(find) + r"\b", rep, val, flags=flags)
|
||||
elif no_case:
|
||||
# Case-insensitive substring replace
|
||||
import re
|
||||
val = re.sub(re.escape(find), rep, val, flags=re.IGNORECASE)
|
||||
else:
|
||||
val = val.replace(find, rep)
|
||||
return val
|
||||
|
||||
series = target[field].cast(pl.String).map_elements(_replace_fn, return_dtype=pl.String)
|
||||
return {"Output": target.with_columns(series.alias(field))}
|
||||
series = target[search_field].cast(pl.String).map_elements(_replace_fn, return_dtype=pl.String)
|
||||
return {"Output": target.with_columns(series.alias(search_field))}
|
||||
|
||||
def _do_append(
|
||||
self,
|
||||
target: pl.DataFrame,
|
||||
source: pl.DataFrame,
|
||||
search_field: str,
|
||||
find_field: str,
|
||||
replace_field: str,
|
||||
lookup: dict,
|
||||
no_case: bool,
|
||||
whole_word: bool,
|
||||
) -> Dict[str, pl.DataFrame]:
|
||||
"""Append mode: keep the original target field unchanged;
|
||||
add columns from the Source table for matching rows."""
|
||||
|
||||
# Determine which fields from Source to append
|
||||
append_fields: list[str] = []
|
||||
append_el = self.config.find("ReplaceAppendFields") if self.config is not None else None
|
||||
if append_el is not None:
|
||||
for field_el in append_el.findall("Field"):
|
||||
fname = field_el.attrib.get("field", "")
|
||||
if fname:
|
||||
append_fields.append(fname)
|
||||
|
||||
# Default: if no explicit append fields, append the replace field
|
||||
if not append_fields:
|
||||
append_fields = [replace_field]
|
||||
|
||||
def _match_fn(val: str | None) -> str | None:
|
||||
"""Return the replacement value if the find pattern matches, else None."""
|
||||
if val is None:
|
||||
return None
|
||||
for find, rep in lookup.items():
|
||||
if whole_word:
|
||||
import re
|
||||
flags = re.IGNORECASE if no_case else 0
|
||||
if re.search(r"\b" + re.escape(find) + r"\b", val, flags=flags):
|
||||
return rep
|
||||
elif no_case:
|
||||
if find.lower() in val.lower():
|
||||
return rep
|
||||
else:
|
||||
if find in val:
|
||||
return rep
|
||||
return None
|
||||
|
||||
# For each append field, compute the matched value
|
||||
result = target
|
||||
for af in append_fields:
|
||||
if af == replace_field:
|
||||
# The replacement value from the lookup
|
||||
matched = target[search_field].cast(pl.String).map_elements(
|
||||
_match_fn, return_dtype=pl.String
|
||||
)
|
||||
result = result.with_columns(matched.alias(af))
|
||||
elif af in source.columns:
|
||||
# For other Source columns, do a similar lookup
|
||||
af_lookup = dict(zip(
|
||||
source[find_field].cast(pl.String).to_list(),
|
||||
source[af].cast(pl.String).to_list(),
|
||||
))
|
||||
|
||||
def _af_match(val: str | None, _lookup=af_lookup) -> str | None:
|
||||
if val is None:
|
||||
return None
|
||||
for find, rep in _lookup.items():
|
||||
if whole_word:
|
||||
import re
|
||||
flags = re.IGNORECASE if no_case else 0
|
||||
if re.search(r"\b" + re.escape(find) + r"\b", val, flags=flags):
|
||||
return rep
|
||||
elif no_case:
|
||||
if find.lower() in val.lower():
|
||||
return rep
|
||||
else:
|
||||
if find in val:
|
||||
return rep
|
||||
return None
|
||||
|
||||
matched = target[search_field].cast(pl.String).map_elements(
|
||||
_af_match, return_dtype=pl.String
|
||||
)
|
||||
result = result.with_columns(matched.alias(af))
|
||||
|
||||
return {"Output": result}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ class SampleTool(BaseTool):
|
|||
return df.head(n)
|
||||
if mode == "Last":
|
||||
return df.tail(n)
|
||||
if mode == "Skip":
|
||||
return df.slice(n, len(df) - n) if n < len(df) else pl.DataFrame(schema=df.schema)
|
||||
if mode == "Sample":
|
||||
if n <= 0:
|
||||
return df
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ class UniqueTool(BaseTool):
|
|||
return {"Unique": df, "Duplicate": pl.DataFrame()}
|
||||
|
||||
key_fields = [
|
||||
f.attrib["name"]
|
||||
f.attrib["field"]
|
||||
for f in self.config.findall("UniqueFields/Field")
|
||||
if f.attrib["name"] in df.columns
|
||||
if f.attrib.get("field", "") in df.columns
|
||||
]
|
||||
if not key_fields:
|
||||
key_fields = df.columns
|
||||
|
|
@ -29,9 +29,11 @@ class UniqueTool(BaseTool):
|
|||
unique_df = (
|
||||
df.filter(pl.col("__row_idx__").is_in(first_idx_list))
|
||||
.drop("__row_idx__")
|
||||
.sort(key_fields)
|
||||
)
|
||||
dup_df = (
|
||||
df.filter(~pl.col("__row_idx__").is_in(first_idx_list))
|
||||
.drop("__row_idx__")
|
||||
.sort(key_fields)
|
||||
)
|
||||
return {"Unique": unique_df, "Duplicate": dup_df}
|
||||
return {"Unique": unique_df, "Duplicates": dup_df}
|
||||
|
|
|
|||
Loading…
Reference in New Issue