Build up a process to get capacity data
ehcor
New Altair Community Member
Hello Community,
I don't know RapidMiner very well and have some questions and challenges. It would be great if someone could help me with that topic:
Please find attached the CSV file with example values. The file I'm working with is about 1.000.000 examples and 22 attributes.
I generate an attribute which counts the days between start and finish. There are various things I would like to solve:
- How can I find out how much is produced in which period on which manufacturing line?
- Can I display the capacity utilization of the production line?
- For example, production line 1 can only produce 500 units per day. How can I determine when a production line is overloaded?
I don't know RapidMiner very well and have some questions and challenges. It would be great if someone could help me with that topic:
Please find attached the CSV file with example values. The file I'm working with is about 1.000.000 examples and 22 attributes.
I generate an attribute which counts the days between start and finish. There are various things I would like to solve:
- How can I find out how much is produced in which period on which manufacturing line?
- Can I display the capacity utilization of the production line?
- For example, production line 1 can only produce 500 units per day. How can I determine when a production line is overloaded?
Tagged:
0
Best Answers
-
HI @ehcor,
Interesting project !
I propose the following process :<?xml version="1.0" encoding="UTF-8"?><process version="9.1.000-BETA2"> <context> <input/> <output/> <macros/> </context> <operator activated="true" class="process" compatibility="9.1.000-BETA2" expanded="true" name="Process"> <parameter key="logverbosity" value="init"/> <parameter key="random_seed" value="2001"/> <parameter key="send_mail" value="never"/> <parameter key="notification_email" value=""/> <parameter key="process_duration_for_mail" value="30"/> <parameter key="encoding" value="SYSTEM"/> <process expanded="true"> <operator activated="true" class="read_csv" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Read CSV" width="90" x="45" y="34"> <parameter key="csv_file" value="C:\Users\Lionel\Downloads\RapidMiner_example.csv"/> <parameter key="column_separators" value=";"/> <parameter key="trim_lines" value="false"/> <parameter key="use_quotes" value="true"/> <parameter key="quotes_character" value="""/> <parameter key="escape_character" value="\"/> <parameter key="skip_comments" value="true"/> <parameter key="comment_characters" value="#"/> <parameter key="starting_row" value="2"/> <parameter key="parse_numbers" value="true"/> <parameter key="decimal_character" value="."/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="date_format" value="dd.MM.yyyy"/> <parameter key="first_row_as_names" value="false"/> <list key="annotations"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="encoding" value="windows-1252"/> <parameter key="read_all_values_as_polynominal" value="false"/> <list key="data_set_meta_data_information"> <parameter key="0" value="Factory.true.integer.attribute"/> <parameter key="1" value="Material.true.integer.attribute"/> <parameter key="2" value="Material_Description.true.polynominal.attribute"/> <parameter key="3" value="User.true.polynominal.attribute"/> <parameter key="4" value="Department.true.polynominal.attribute"/> <parameter key="5" value="Mfg_Line.true.polynominal.attribute"/> <parameter key="6" value="Order.true.integer.attribute"/> <parameter key="7" value="Order_quantity.true.polynominal.attribute"/> <parameter key="8" value="Baseunit.true.polynominal.attribute"/> <parameter key="9" value="Scrap.true.integer.attribute"/> <parameter key="10" value="Scheduled_start.true.date.attribute"/> <parameter key="11" value="Scheduled_finish.true.date.attribute"/> </list> <parameter key="read_not_matching_values_as_missings" value="false"/> <parameter key="datamanagement" value="double_array"/> <parameter key="data_management" value="auto"/> </operator> <operator activated="true" class="set_macros" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Set Macros" width="90" x="179" y="34"> <list key="macros"> <parameter key="startDate" value="Jan 30,2017"/> <parameter key="endDate" value="Dec 30,2020"/> <parameter key="department" value="Prod2"/> </list> </operator> <operator activated="true" class="filter_examples" compatibility="9.1.000-BETA2" expanded="true" height="103" name="Filter Examples" width="90" x="313" y="34"> <parameter key="parameter_expression" value=""/> <parameter key="condition_class" value="custom_filters"/> <parameter key="invert_filter" value="false"/> <list key="filters_list"> <parameter key="filters_entry_key" value="Department.equals.%{department}"/> </list> <parameter key="filters_logic_and" value="true"/> <parameter key="filters_check_metadata" value="true"/> </operator> <operator activated="true" class="extract_macro" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Extract Macro" width="90" x="472" y="34"> <parameter key="macro" value="numExamples"/> <parameter key="macro_type" value="number_of_examples"/> <parameter key="statistics" value="average"/> <parameter key="attribute_name" value=""/> <list key="additional_macros"/> </operator> <operator activated="true" class="concurrency:loop" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Loop" width="90" x="606" y="34"> <parameter key="number_of_iterations" value="%{numExamples}"/> <parameter key="iteration_macro" value="iteration"/> <parameter key="reuse_results" value="true"/> <parameter key="enable_parallel_execution" value="true"/> <process expanded="true"> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (4)" width="90" x="45" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (5)" width="90" x="179" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes (4)" width="90" x="313" y="34"> <list key="function_descriptions"> <parameter key="capacity" value="if((date_before(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_start) == true && date_before(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_start) == true)|| (date_after(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_finish) == true && date_after(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_finish) == true),0,Order_quantity)"/> </list> <parameter key="keep_all" value="true"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (6)" width="90" x="514" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (7)" width="90" x="648" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <connect from_port="input 1" to_op="Nominal to Date (4)" to_port="example set input"/> <connect from_op="Nominal to Date (4)" from_port="example set output" to_op="Nominal to Date (5)" to_port="example set input"/> <connect from_op="Nominal to Date (5)" from_port="example set output" to_op="Generate Attributes (4)" to_port="example set input"/> <connect from_op="Generate Attributes (4)" from_port="example set output" to_op="Date to Nominal (6)" to_port="example set input"/> <connect from_op="Date to Nominal (6)" from_port="example set output" to_op="Date to Nominal (7)" to_port="example set input"/> <connect from_op="Date to Nominal (7)" from_port="example set output" to_port="output 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="source_input 2" spacing="0"/> <portSpacing port="sink_output 1" spacing="0"/> <portSpacing port="sink_output 2" spacing="0"/> </process> </operator> <operator activated="true" class="parse_numbers" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Parse Numbers" width="90" x="740" y="34"> <parameter key="attribute_filter_type" value="single"/> <parameter key="attribute" value="capacity"/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="nominal"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="file_path"/> <parameter key="block_type" value="single_value"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="single_value"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="decimal_character" value=","/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="unparsable_value_handling" value="fail"/> </operator> <operator activated="true" class="aggregate" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Aggregate" width="90" x="901" y="34"> <parameter key="use_default_aggregation" value="false"/> <parameter key="attribute_filter_type" value="all"/> <parameter key="attribute" value=""/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="attribute_value"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="time"/> <parameter key="block_type" value="attribute_block"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="value_matrix_row_start"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="default_aggregation_function" value="average"/> <list key="aggregation_attributes"> <parameter key="capacity" value="sum"/> </list> <parameter key="group_by_attributes" value="Department"/> <parameter key="count_all_combinations" value="false"/> <parameter key="only_distinct" value="false"/> <parameter key="ignore_missings" value="true"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes" width="90" x="1035" y="34"> <list key="function_descriptions"> <parameter key="start_date" value="%{startDate}"/> <parameter key="end_date" value="%{endDate}"/> </list> <parameter key="keep_all" value="true"/> </operator> <connect from_op="Read CSV" from_port="output" to_op="Set Macros" to_port="through 1"/> <connect from_op="Set Macros" from_port="through 1" to_op="Filter Examples" to_port="example set input"/> <connect from_op="Filter Examples" from_port="example set output" to_op="Extract Macro" to_port="example set"/> <connect from_op="Extract Macro" from_port="example set" to_op="Loop" to_port="input 1"/> <connect from_op="Loop" from_port="output 1" to_op="Parse Numbers" to_port="example set input"/> <connect from_op="Parse Numbers" from_port="example set output" to_op="Aggregate" to_port="example set input"/> <connect from_op="Aggregate" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/> <connect from_op="Generate Attributes" from_port="example set output" to_port="result 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="sink_result 1" spacing="0"/> <portSpacing port="sink_result 2" spacing="0"/> </process> </operator> </process>
To execute this process, you have to set in the Set Macros operator parameters:
- your "start date" (with strict respect of the format of the date of your existing date attributes "Scheduled_start" and "Scheduled_finish"
ie 'Apr 18,2018')
- your "end date" (same rule as the "start date")
- the "department" name you want to calculate the capacity (ie Prod1, Prod2 etc.)
Warning : your "end date" must be strictly later than your "start date".........(I know it's logical, but I precise it because RM can raise an error or deliver some false results in this case)
I have to make a few clarifications :
There are particular cases where your "start date" or your "end date" can be set between the
"Scheduled_start" and the "Scheduled_finish" dates of one of a production period.
In this case, I made a simplifying hypothesis : I count the total production between the "Scheduled_start" and the "Scheduled_finish" dates
which overestimates the final total calculated capacity of a production department...(in deed, in this case, only a part of the scheduled production is in reality produced...)
Rigorously, in these particular cases, I think that you have to linearly interpolate the production ==> This may be an improvment of the process...
In the end, after setting and executing the process, you obtain results like that :
You can test this process with your whole dataset and tell me what do you think.
Hope it helps,
Regards,
Lionel1 -
HI @ehcor
Here an updated version of the process with the calculation of the capacity for 2 production lines :<?xml version="1.0" encoding="UTF-8"?><process version="9.1.000-BETA2"> <context> <input/> <output/> <macros/> </context> <operator activated="true" class="process" compatibility="9.1.000-BETA2" expanded="true" name="Process"> <parameter key="logverbosity" value="init"/> <parameter key="random_seed" value="2001"/> <parameter key="send_mail" value="never"/> <parameter key="notification_email" value=""/> <parameter key="process_duration_for_mail" value="30"/> <parameter key="encoding" value="SYSTEM"/> <process expanded="true"> <operator activated="true" class="read_csv" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Read CSV" width="90" x="45" y="34"> <parameter key="csv_file" value="C:\Users\Lionel\Downloads\RapidMiner_example.csv"/> <parameter key="column_separators" value=";"/> <parameter key="trim_lines" value="false"/> <parameter key="use_quotes" value="true"/> <parameter key="quotes_character" value="""/> <parameter key="escape_character" value="\"/> <parameter key="skip_comments" value="true"/> <parameter key="comment_characters" value="#"/> <parameter key="starting_row" value="2"/> <parameter key="parse_numbers" value="true"/> <parameter key="decimal_character" value="."/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="date_format" value="dd.MM.yyyy"/> <parameter key="first_row_as_names" value="false"/> <list key="annotations"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="encoding" value="windows-1252"/> <parameter key="read_all_values_as_polynominal" value="false"/> <list key="data_set_meta_data_information"> <parameter key="0" value="Factory.true.integer.attribute"/> <parameter key="1" value="Material.true.integer.attribute"/> <parameter key="2" value="Material_Description.true.polynominal.attribute"/> <parameter key="3" value="User.true.polynominal.attribute"/> <parameter key="4" value="Department.true.polynominal.attribute"/> <parameter key="5" value="Mfg_Line.true.polynominal.attribute"/> <parameter key="6" value="Order.true.integer.attribute"/> <parameter key="7" value="Order_quantity.true.polynominal.attribute"/> <parameter key="8" value="Baseunit.true.polynominal.attribute"/> <parameter key="9" value="Scrap.true.integer.attribute"/> <parameter key="10" value="Scheduled_start.true.date.attribute"/> <parameter key="11" value="Scheduled_finish.true.date.attribute"/> </list> <parameter key="read_not_matching_values_as_missings" value="false"/> <parameter key="datamanagement" value="double_array"/> <parameter key="data_management" value="auto"/> </operator> <operator activated="true" class="set_macros" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Set Macros" width="90" x="179" y="34"> <list key="macros"> <parameter key="startDate" value="Jan 30,2017"/> <parameter key="endDate" value="Dec 30,2020"/> <parameter key="department" value="Prod2"/> <parameter key="department_2" value="Prod1"/> </list> </operator> <operator activated="true" class="filter_examples" compatibility="9.1.000-BETA2" expanded="true" height="103" name="Filter Examples" width="90" x="313" y="34"> <parameter key="parameter_expression" value=""/> <parameter key="condition_class" value="custom_filters"/> <parameter key="invert_filter" value="false"/> <list key="filters_list"> <parameter key="filters_entry_key" value="Department.equals.%{department}"/> <parameter key="filters_entry_key" value="Department.equals.%{department_2}"/> </list> <parameter key="filters_logic_and" value="false"/> <parameter key="filters_check_metadata" value="true"/> </operator> <operator activated="true" class="extract_macro" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Extract Macro" width="90" x="472" y="34"> <parameter key="macro" value="numExamples"/> <parameter key="macro_type" value="number_of_examples"/> <parameter key="statistics" value="average"/> <parameter key="attribute_name" value=""/> <list key="additional_macros"/> </operator> <operator activated="true" class="concurrency:loop" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Loop" width="90" x="606" y="34"> <parameter key="number_of_iterations" value="%{numExamples}"/> <parameter key="iteration_macro" value="iteration"/> <parameter key="reuse_results" value="true"/> <parameter key="enable_parallel_execution" value="true"/> <process expanded="true"> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (4)" width="90" x="45" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (5)" width="90" x="179" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes (4)" width="90" x="313" y="34"> <list key="function_descriptions"> <parameter key="capacity" value="if((date_before(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_start) == true && date_before(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_start) == true)|| (date_after(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_finish) == true && date_after(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_finish) == true),0,Order_quantity)"/> </list> <parameter key="keep_all" value="true"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (6)" width="90" x="514" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (7)" width="90" x="648" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <connect from_port="input 1" to_op="Nominal to Date (4)" to_port="example set input"/> <connect from_op="Nominal to Date (4)" from_port="example set output" to_op="Nominal to Date (5)" to_port="example set input"/> <connect from_op="Nominal to Date (5)" from_port="example set output" to_op="Generate Attributes (4)" to_port="example set input"/> <connect from_op="Generate Attributes (4)" from_port="example set output" to_op="Date to Nominal (6)" to_port="example set input"/> <connect from_op="Date to Nominal (6)" from_port="example set output" to_op="Date to Nominal (7)" to_port="example set input"/> <connect from_op="Date to Nominal (7)" from_port="example set output" to_port="output 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="source_input 2" spacing="0"/> <portSpacing port="sink_output 1" spacing="0"/> <portSpacing port="sink_output 2" spacing="0"/> </process> </operator> <operator activated="true" class="parse_numbers" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Parse Numbers" width="90" x="740" y="34"> <parameter key="attribute_filter_type" value="single"/> <parameter key="attribute" value="capacity"/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="nominal"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="file_path"/> <parameter key="block_type" value="single_value"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="single_value"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="decimal_character" value=","/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="unparsable_value_handling" value="fail"/> </operator> <operator activated="true" class="aggregate" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Aggregate" width="90" x="901" y="34"> <parameter key="use_default_aggregation" value="false"/> <parameter key="attribute_filter_type" value="all"/> <parameter key="attribute" value=""/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="attribute_value"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="time"/> <parameter key="block_type" value="attribute_block"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="value_matrix_row_start"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="default_aggregation_function" value="average"/> <list key="aggregation_attributes"> <parameter key="capacity" value="sum"/> </list> <parameter key="group_by_attributes" value="Department"/> <parameter key="count_all_combinations" value="false"/> <parameter key="only_distinct" value="false"/> <parameter key="ignore_missings" value="true"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes" width="90" x="1035" y="34"> <list key="function_descriptions"> <parameter key="start_date" value="%{startDate}"/> <parameter key="end_date" value="%{endDate}"/> </list> <parameter key="keep_all" value="true"/> </operator> <connect from_op="Read CSV" from_port="output" to_op="Set Macros" to_port="through 1"/> <connect from_op="Set Macros" from_port="through 1" to_op="Filter Examples" to_port="example set input"/> <connect from_op="Filter Examples" from_port="example set output" to_op="Extract Macro" to_port="example set"/> <connect from_op="Extract Macro" from_port="example set" to_op="Loop" to_port="input 1"/> <connect from_op="Loop" from_port="output 1" to_op="Parse Numbers" to_port="example set input"/> <connect from_op="Parse Numbers" from_port="example set output" to_op="Aggregate" to_port="example set input"/> <connect from_op="Aggregate" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/> <connect from_op="Generate Attributes" from_port="example set output" to_port="result 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="sink_result 1" spacing="0"/> <portSpacing port="sink_result 2" spacing="0"/> </process> </operator> </process>
More generally if you want study 4, 5, 6 etc. production lines, you have to :
- add the corresponding macros in the Set Macros operator :
- add the corresponding filters in the Filter Examples operator and check match any at the bottom :
I hope it helps,
Regards,
Lionel5
Answers
-
Hi @ehcor,
I'm not sure to understand, but the Aggregate operator can maybe help you :
you have to set first your Order_quantity as real and set decimal caracter as ",".
Set the Aggregate operator like that :
aggregation attribute : Order_quantity
aggregation function : sum
group by attributes : select Mfg_Line
"Can I display the capacity utilization of the production line" ==> how is defined the "capacity utilization of a prod.line" ?
If the solution above does not answer to your need, can you be more explicit on what you want to obtain ?
Hope it helps,
Regards,
Lionel
5 -
Thank you very much for your answer!
I converted the Ord_Quantity into a real and summed it up, that was no problem. Thanks!
I would now like include the schedule start and schedule finish attributes. Is it possible to obtain a time-differentiated statement?
For example: Between 1.1.2018-30.06.2018, x products were produced on the production line 1.
0 -
Hi again @ehcor,
By adding the attributes Scheduled_finish and Scheduled_start in the group by attributes parameter, it helps ?
Regards,
Lionel2 -
That's already going in the right direction.
Is it now possible to name a period of your choice and view the capacity utilization there?With the current evaluation I get a list with over 200000 entries, because there are very many different date specifications. I want to know the sum of the quantity for a certain product in a certain period.For example
between 01.01.2018 and 30.03.2018 with the quantity as sum on productionline 1.
between 30.03.2018 and 01.06.2018 with the quantity as sum on productionline 2.
...0 -
HI @ehcor,
Interesting project !
I propose the following process :<?xml version="1.0" encoding="UTF-8"?><process version="9.1.000-BETA2"> <context> <input/> <output/> <macros/> </context> <operator activated="true" class="process" compatibility="9.1.000-BETA2" expanded="true" name="Process"> <parameter key="logverbosity" value="init"/> <parameter key="random_seed" value="2001"/> <parameter key="send_mail" value="never"/> <parameter key="notification_email" value=""/> <parameter key="process_duration_for_mail" value="30"/> <parameter key="encoding" value="SYSTEM"/> <process expanded="true"> <operator activated="true" class="read_csv" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Read CSV" width="90" x="45" y="34"> <parameter key="csv_file" value="C:\Users\Lionel\Downloads\RapidMiner_example.csv"/> <parameter key="column_separators" value=";"/> <parameter key="trim_lines" value="false"/> <parameter key="use_quotes" value="true"/> <parameter key="quotes_character" value="""/> <parameter key="escape_character" value="\"/> <parameter key="skip_comments" value="true"/> <parameter key="comment_characters" value="#"/> <parameter key="starting_row" value="2"/> <parameter key="parse_numbers" value="true"/> <parameter key="decimal_character" value="."/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="date_format" value="dd.MM.yyyy"/> <parameter key="first_row_as_names" value="false"/> <list key="annotations"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="encoding" value="windows-1252"/> <parameter key="read_all_values_as_polynominal" value="false"/> <list key="data_set_meta_data_information"> <parameter key="0" value="Factory.true.integer.attribute"/> <parameter key="1" value="Material.true.integer.attribute"/> <parameter key="2" value="Material_Description.true.polynominal.attribute"/> <parameter key="3" value="User.true.polynominal.attribute"/> <parameter key="4" value="Department.true.polynominal.attribute"/> <parameter key="5" value="Mfg_Line.true.polynominal.attribute"/> <parameter key="6" value="Order.true.integer.attribute"/> <parameter key="7" value="Order_quantity.true.polynominal.attribute"/> <parameter key="8" value="Baseunit.true.polynominal.attribute"/> <parameter key="9" value="Scrap.true.integer.attribute"/> <parameter key="10" value="Scheduled_start.true.date.attribute"/> <parameter key="11" value="Scheduled_finish.true.date.attribute"/> </list> <parameter key="read_not_matching_values_as_missings" value="false"/> <parameter key="datamanagement" value="double_array"/> <parameter key="data_management" value="auto"/> </operator> <operator activated="true" class="set_macros" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Set Macros" width="90" x="179" y="34"> <list key="macros"> <parameter key="startDate" value="Jan 30,2017"/> <parameter key="endDate" value="Dec 30,2020"/> <parameter key="department" value="Prod2"/> </list> </operator> <operator activated="true" class="filter_examples" compatibility="9.1.000-BETA2" expanded="true" height="103" name="Filter Examples" width="90" x="313" y="34"> <parameter key="parameter_expression" value=""/> <parameter key="condition_class" value="custom_filters"/> <parameter key="invert_filter" value="false"/> <list key="filters_list"> <parameter key="filters_entry_key" value="Department.equals.%{department}"/> </list> <parameter key="filters_logic_and" value="true"/> <parameter key="filters_check_metadata" value="true"/> </operator> <operator activated="true" class="extract_macro" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Extract Macro" width="90" x="472" y="34"> <parameter key="macro" value="numExamples"/> <parameter key="macro_type" value="number_of_examples"/> <parameter key="statistics" value="average"/> <parameter key="attribute_name" value=""/> <list key="additional_macros"/> </operator> <operator activated="true" class="concurrency:loop" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Loop" width="90" x="606" y="34"> <parameter key="number_of_iterations" value="%{numExamples}"/> <parameter key="iteration_macro" value="iteration"/> <parameter key="reuse_results" value="true"/> <parameter key="enable_parallel_execution" value="true"/> <process expanded="true"> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (4)" width="90" x="45" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (5)" width="90" x="179" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes (4)" width="90" x="313" y="34"> <list key="function_descriptions"> <parameter key="capacity" value="if((date_before(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_start) == true && date_before(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_start) == true)|| (date_after(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_finish) == true && date_after(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_finish) == true),0,Order_quantity)"/> </list> <parameter key="keep_all" value="true"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (6)" width="90" x="514" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (7)" width="90" x="648" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <connect from_port="input 1" to_op="Nominal to Date (4)" to_port="example set input"/> <connect from_op="Nominal to Date (4)" from_port="example set output" to_op="Nominal to Date (5)" to_port="example set input"/> <connect from_op="Nominal to Date (5)" from_port="example set output" to_op="Generate Attributes (4)" to_port="example set input"/> <connect from_op="Generate Attributes (4)" from_port="example set output" to_op="Date to Nominal (6)" to_port="example set input"/> <connect from_op="Date to Nominal (6)" from_port="example set output" to_op="Date to Nominal (7)" to_port="example set input"/> <connect from_op="Date to Nominal (7)" from_port="example set output" to_port="output 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="source_input 2" spacing="0"/> <portSpacing port="sink_output 1" spacing="0"/> <portSpacing port="sink_output 2" spacing="0"/> </process> </operator> <operator activated="true" class="parse_numbers" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Parse Numbers" width="90" x="740" y="34"> <parameter key="attribute_filter_type" value="single"/> <parameter key="attribute" value="capacity"/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="nominal"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="file_path"/> <parameter key="block_type" value="single_value"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="single_value"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="decimal_character" value=","/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="unparsable_value_handling" value="fail"/> </operator> <operator activated="true" class="aggregate" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Aggregate" width="90" x="901" y="34"> <parameter key="use_default_aggregation" value="false"/> <parameter key="attribute_filter_type" value="all"/> <parameter key="attribute" value=""/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="attribute_value"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="time"/> <parameter key="block_type" value="attribute_block"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="value_matrix_row_start"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="default_aggregation_function" value="average"/> <list key="aggregation_attributes"> <parameter key="capacity" value="sum"/> </list> <parameter key="group_by_attributes" value="Department"/> <parameter key="count_all_combinations" value="false"/> <parameter key="only_distinct" value="false"/> <parameter key="ignore_missings" value="true"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes" width="90" x="1035" y="34"> <list key="function_descriptions"> <parameter key="start_date" value="%{startDate}"/> <parameter key="end_date" value="%{endDate}"/> </list> <parameter key="keep_all" value="true"/> </operator> <connect from_op="Read CSV" from_port="output" to_op="Set Macros" to_port="through 1"/> <connect from_op="Set Macros" from_port="through 1" to_op="Filter Examples" to_port="example set input"/> <connect from_op="Filter Examples" from_port="example set output" to_op="Extract Macro" to_port="example set"/> <connect from_op="Extract Macro" from_port="example set" to_op="Loop" to_port="input 1"/> <connect from_op="Loop" from_port="output 1" to_op="Parse Numbers" to_port="example set input"/> <connect from_op="Parse Numbers" from_port="example set output" to_op="Aggregate" to_port="example set input"/> <connect from_op="Aggregate" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/> <connect from_op="Generate Attributes" from_port="example set output" to_port="result 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="sink_result 1" spacing="0"/> <portSpacing port="sink_result 2" spacing="0"/> </process> </operator> </process>
To execute this process, you have to set in the Set Macros operator parameters:
- your "start date" (with strict respect of the format of the date of your existing date attributes "Scheduled_start" and "Scheduled_finish"
ie 'Apr 18,2018')
- your "end date" (same rule as the "start date")
- the "department" name you want to calculate the capacity (ie Prod1, Prod2 etc.)
Warning : your "end date" must be strictly later than your "start date".........(I know it's logical, but I precise it because RM can raise an error or deliver some false results in this case)
I have to make a few clarifications :
There are particular cases where your "start date" or your "end date" can be set between the
"Scheduled_start" and the "Scheduled_finish" dates of one of a production period.
In this case, I made a simplifying hypothesis : I count the total production between the "Scheduled_start" and the "Scheduled_finish" dates
which overestimates the final total calculated capacity of a production department...(in deed, in this case, only a part of the scheduled production is in reality produced...)
Rigorously, in these particular cases, I think that you have to linearly interpolate the production ==> This may be an improvment of the process...
In the end, after setting and executing the process, you obtain results like that :
You can test this process with your whole dataset and tell me what do you think.
Hope it helps,
Regards,
Lionel1 -
You can also use Date to Numerical operator to extract some higher levels of aggregation from your date data, and then use that in your Aggregate process. For example, you could extract the year, quarter, and month, all as numbers, and then aggregate at each of those levels as desired.1
-
@lionelderkrikor
Thank you so much! Thats awesome! I can't thank you enough!!!
It takes about 15 minutes to go through the file (normal laptop, not highend). I've to run that process on my own maschine. I think that will be much faster.
It's exactly what I was looking for. Just one questions to extend that process: The result is now from one Mfg_Line. Would it be possible to get for example two or three mfg_lines results at once?
The same time period, but in result different Mfg_lines enumerated with the respective sum?
E.g.:
Prod1 --> Sum X --> Start date end date
Prod 2 --> Sum Y --> Same Start and end date
Prod 3 --> Sum Z --> Same Start and end date1 -
HI @ehcor
Here an updated version of the process with the calculation of the capacity for 2 production lines :<?xml version="1.0" encoding="UTF-8"?><process version="9.1.000-BETA2"> <context> <input/> <output/> <macros/> </context> <operator activated="true" class="process" compatibility="9.1.000-BETA2" expanded="true" name="Process"> <parameter key="logverbosity" value="init"/> <parameter key="random_seed" value="2001"/> <parameter key="send_mail" value="never"/> <parameter key="notification_email" value=""/> <parameter key="process_duration_for_mail" value="30"/> <parameter key="encoding" value="SYSTEM"/> <process expanded="true"> <operator activated="true" class="read_csv" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Read CSV" width="90" x="45" y="34"> <parameter key="csv_file" value="C:\Users\Lionel\Downloads\RapidMiner_example.csv"/> <parameter key="column_separators" value=";"/> <parameter key="trim_lines" value="false"/> <parameter key="use_quotes" value="true"/> <parameter key="quotes_character" value="""/> <parameter key="escape_character" value="\"/> <parameter key="skip_comments" value="true"/> <parameter key="comment_characters" value="#"/> <parameter key="starting_row" value="2"/> <parameter key="parse_numbers" value="true"/> <parameter key="decimal_character" value="."/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="date_format" value="dd.MM.yyyy"/> <parameter key="first_row_as_names" value="false"/> <list key="annotations"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="encoding" value="windows-1252"/> <parameter key="read_all_values_as_polynominal" value="false"/> <list key="data_set_meta_data_information"> <parameter key="0" value="Factory.true.integer.attribute"/> <parameter key="1" value="Material.true.integer.attribute"/> <parameter key="2" value="Material_Description.true.polynominal.attribute"/> <parameter key="3" value="User.true.polynominal.attribute"/> <parameter key="4" value="Department.true.polynominal.attribute"/> <parameter key="5" value="Mfg_Line.true.polynominal.attribute"/> <parameter key="6" value="Order.true.integer.attribute"/> <parameter key="7" value="Order_quantity.true.polynominal.attribute"/> <parameter key="8" value="Baseunit.true.polynominal.attribute"/> <parameter key="9" value="Scrap.true.integer.attribute"/> <parameter key="10" value="Scheduled_start.true.date.attribute"/> <parameter key="11" value="Scheduled_finish.true.date.attribute"/> </list> <parameter key="read_not_matching_values_as_missings" value="false"/> <parameter key="datamanagement" value="double_array"/> <parameter key="data_management" value="auto"/> </operator> <operator activated="true" class="set_macros" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Set Macros" width="90" x="179" y="34"> <list key="macros"> <parameter key="startDate" value="Jan 30,2017"/> <parameter key="endDate" value="Dec 30,2020"/> <parameter key="department" value="Prod2"/> <parameter key="department_2" value="Prod1"/> </list> </operator> <operator activated="true" class="filter_examples" compatibility="9.1.000-BETA2" expanded="true" height="103" name="Filter Examples" width="90" x="313" y="34"> <parameter key="parameter_expression" value=""/> <parameter key="condition_class" value="custom_filters"/> <parameter key="invert_filter" value="false"/> <list key="filters_list"> <parameter key="filters_entry_key" value="Department.equals.%{department}"/> <parameter key="filters_entry_key" value="Department.equals.%{department_2}"/> </list> <parameter key="filters_logic_and" value="false"/> <parameter key="filters_check_metadata" value="true"/> </operator> <operator activated="true" class="extract_macro" compatibility="9.1.000-BETA2" expanded="true" height="68" name="Extract Macro" width="90" x="472" y="34"> <parameter key="macro" value="numExamples"/> <parameter key="macro_type" value="number_of_examples"/> <parameter key="statistics" value="average"/> <parameter key="attribute_name" value=""/> <list key="additional_macros"/> </operator> <operator activated="true" class="concurrency:loop" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Loop" width="90" x="606" y="34"> <parameter key="number_of_iterations" value="%{numExamples}"/> <parameter key="iteration_macro" value="iteration"/> <parameter key="reuse_results" value="true"/> <parameter key="enable_parallel_execution" value="true"/> <process expanded="true"> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (4)" width="90" x="45" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="nominal_to_date" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Nominal to Date (5)" width="90" x="179" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_type" value="date"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes (4)" width="90" x="313" y="34"> <list key="function_descriptions"> <parameter key="capacity" value="if((date_before(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_start) == true && date_before(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_start) == true)|| (date_after(date_parse_custom(%{startDate},"MMM dd,YYYY"),Scheduled_finish) == true && date_after(date_parse_custom(%{endDate},"MMM dd,YYYY"),Scheduled_finish) == true),0,Order_quantity)"/> </list> <parameter key="keep_all" value="true"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (6)" width="90" x="514" y="34"> <parameter key="attribute_name" value="Scheduled_start"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <operator activated="true" class="date_to_nominal" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Date to Nominal (7)" width="90" x="648" y="34"> <parameter key="attribute_name" value="Scheduled_finish"/> <parameter key="date_format" value="MMM dd,YYYY"/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <parameter key="keep_old_attribute" value="false"/> </operator> <connect from_port="input 1" to_op="Nominal to Date (4)" to_port="example set input"/> <connect from_op="Nominal to Date (4)" from_port="example set output" to_op="Nominal to Date (5)" to_port="example set input"/> <connect from_op="Nominal to Date (5)" from_port="example set output" to_op="Generate Attributes (4)" to_port="example set input"/> <connect from_op="Generate Attributes (4)" from_port="example set output" to_op="Date to Nominal (6)" to_port="example set input"/> <connect from_op="Date to Nominal (6)" from_port="example set output" to_op="Date to Nominal (7)" to_port="example set input"/> <connect from_op="Date to Nominal (7)" from_port="example set output" to_port="output 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="source_input 2" spacing="0"/> <portSpacing port="sink_output 1" spacing="0"/> <portSpacing port="sink_output 2" spacing="0"/> </process> </operator> <operator activated="true" class="parse_numbers" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Parse Numbers" width="90" x="740" y="34"> <parameter key="attribute_filter_type" value="single"/> <parameter key="attribute" value="capacity"/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="nominal"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="file_path"/> <parameter key="block_type" value="single_value"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="single_value"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="decimal_character" value=","/> <parameter key="grouped_digits" value="false"/> <parameter key="grouping_character" value=","/> <parameter key="infinity_representation" value=""/> <parameter key="unparsable_value_handling" value="fail"/> </operator> <operator activated="true" class="aggregate" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Aggregate" width="90" x="901" y="34"> <parameter key="use_default_aggregation" value="false"/> <parameter key="attribute_filter_type" value="all"/> <parameter key="attribute" value=""/> <parameter key="attributes" value=""/> <parameter key="use_except_expression" value="false"/> <parameter key="value_type" value="attribute_value"/> <parameter key="use_value_type_exception" value="false"/> <parameter key="except_value_type" value="time"/> <parameter key="block_type" value="attribute_block"/> <parameter key="use_block_type_exception" value="false"/> <parameter key="except_block_type" value="value_matrix_row_start"/> <parameter key="invert_selection" value="false"/> <parameter key="include_special_attributes" value="false"/> <parameter key="default_aggregation_function" value="average"/> <list key="aggregation_attributes"> <parameter key="capacity" value="sum"/> </list> <parameter key="group_by_attributes" value="Department"/> <parameter key="count_all_combinations" value="false"/> <parameter key="only_distinct" value="false"/> <parameter key="ignore_missings" value="true"/> </operator> <operator activated="true" class="generate_attributes" compatibility="9.1.000-BETA2" expanded="true" height="82" name="Generate Attributes" width="90" x="1035" y="34"> <list key="function_descriptions"> <parameter key="start_date" value="%{startDate}"/> <parameter key="end_date" value="%{endDate}"/> </list> <parameter key="keep_all" value="true"/> </operator> <connect from_op="Read CSV" from_port="output" to_op="Set Macros" to_port="through 1"/> <connect from_op="Set Macros" from_port="through 1" to_op="Filter Examples" to_port="example set input"/> <connect from_op="Filter Examples" from_port="example set output" to_op="Extract Macro" to_port="example set"/> <connect from_op="Extract Macro" from_port="example set" to_op="Loop" to_port="input 1"/> <connect from_op="Loop" from_port="output 1" to_op="Parse Numbers" to_port="example set input"/> <connect from_op="Parse Numbers" from_port="example set output" to_op="Aggregate" to_port="example set input"/> <connect from_op="Aggregate" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/> <connect from_op="Generate Attributes" from_port="example set output" to_port="result 1"/> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="sink_result 1" spacing="0"/> <portSpacing port="sink_result 2" spacing="0"/> </process> </operator> </process>
More generally if you want study 4, 5, 6 etc. production lines, you have to :
- add the corresponding macros in the Set Macros operator :
- add the corresponding filters in the Filter Examples operator and check match any at the bottom :
I hope it helps,
Regards,
Lionel5 -
Thank you very much!1