NOTE: IF YOU WISH TO REPORT A NEW BUG, PLEASE POST A NEW QUESTION AND TAG AS "BUG REPORT". THANK YOU.

The sub-processes child to parent link does not work if you use "<" or ">" sign in the name.

hbajpaihbajpai Member Posts: 102 Unicorn
I think this has to do with the XML backend, I have shared the XML of a mocked-up process.
In the below image the parent subprocess link does not work. For sake of clarity the actual name of the subprocess was "Play <= Yes"


However, if I remove the "<" sign it works as shown in the below image.



Also, in terms of functionality it would be great if Rapidminer Studio supports subprocess child to parent navigation via mouse forward-back buttons.

<?xml version="1.0" encoding="UTF-8"?><process version="9.5.001">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="9.5.001" 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="retrieve" compatibility="9.5.001" expanded="true" height="68" name="Retrieve Golf" width="90" x="112" y="34">
        <parameter key="repository_entry" value="//Samples/data/Golf"/>
      </operator>
      <operator activated="true" class="subprocess" compatibility="9.5.001" expanded="true" height="82" name="Play &lt;= Yes" width="90" x="313" y="34">
        <process expanded="true">
          <operator activated="true" class="filter_examples" compatibility="9.5.001" expanded="true" height="103" name="Filter Examples" width="90" x="45" 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="Play.equals.yes"/>
            </list>
            <parameter key="filters_logic_and" value="true"/>
            <parameter key="filters_check_metadata" value="true"/>
          </operator>
          <operator activated="true" class="filter_example_range" compatibility="9.5.001" expanded="true" height="82" name="Filter Example Range" width="90" x="179" y="34">
            <parameter key="first_example" value="1"/>
            <parameter key="last_example" value="3"/>
            <parameter key="invert_filter" value="false"/>
          </operator>
          <operator activated="true" class="subprocess" compatibility="9.5.001" expanded="true" height="82" name="Play = Yes 2" width="90" x="447" y="34">
            <process expanded="true">
              <operator activated="true" class="filter_example_range" compatibility="9.5.001" expanded="true" height="82" name="Filter Example Range (2)" width="90" x="179" y="34">
                <parameter key="first_example" value="1"/>
                <parameter key="last_example" value="3"/>
                <parameter key="invert_filter" value="false"/>
              </operator>
              <connect from_port="in 1" to_op="Filter Example Range (2)" to_port="example set input"/>
              <connect from_op="Filter Example Range (2)" from_port="example set output" to_port="out 1"/>
              <portSpacing port="source_in 1" spacing="0"/>
              <portSpacing port="source_in 2" spacing="0"/>
              <portSpacing port="sink_out 1" spacing="0"/>
              <portSpacing port="sink_out 2" spacing="0"/>
            </process>
          </operator>
          <connect from_port="in 1" to_op="Filter Examples" to_port="example set input"/>
          <connect from_op="Filter Examples" from_port="example set output" to_op="Filter Example Range" to_port="example set input"/>
          <connect from_op="Filter Example Range" from_port="example set output" to_op="Play = Yes 2" to_port="in 1"/>
          <connect from_op="Play = Yes 2" from_port="out 1" to_port="out 1"/>
          <portSpacing port="source_in 1" spacing="0"/>
          <portSpacing port="source_in 2" spacing="0"/>
          <portSpacing port="sink_out 1" spacing="0"/>
          <portSpacing port="sink_out 2" spacing="0"/>
        </process>
      </operator>
      <connect from_op="Retrieve Golf" from_port="output" to_op="Play &lt;= Yes" to_port="in 1"/>
      <connect from_op="Play &lt;= Yes" from_port="out 1" 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>


Best,
Harshit
0
0 votes

Scheduled for Release · Last Updated

[update 9 Mar 2020: Fixed. Should be in next release.] RM-4350

Comments

  • PaulMSimpsonPaulMSimpson Member Posts: 8 Contributor II
    Interesting, yes, that looks like an issue, that I'm sure the engineers at RM will figure out. In the meantime, you can use the HTML tag for "<", which is "&lt;" , in the name.
     
    While it shows up as "&lt;" when you are looking at that subprocess, that HTML tag changes to the "<" once inside that subprocess.

    And, once inside the child subprocess, the parent subprocess link works, again with the "<" showing up in the name.


    ---------------------------------------------------------------------------------

    --------------------------------------------------------------------------------

  • hbajpaihbajpai Member Posts: 102 Unicorn
    @PaulMSimpson
    Thanks for a quick workaround, this helps for sure. In my actual deployment, I replaced it with less than as the words.  ;) 
    I thought that I should bring it up to RM Dev team.
    Best,
    Harshit
  • sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
    hi @hbajpai yes I actually hesitated before pushing this to dev as TBH I thought there was a workaround (thx @PaulMSimpson). I'm going to just cc @Marco_Boeck and see what he has to say...
  • Marco_BoeckMarco_Boeck Administrator, Moderator, Employee, Member, University Professor Posts: 1,993 RM Engineering
    Hi,

    the buttons to navigate are indeed very simple HTML <a> tags. By using <> you're creating an invalid syntax and thus breaking them. We can escape the name in the future, then the problem should go away. Scott, can you create a bug ticket for this, please?

    Regards,
    Marco
  • sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
    done
  • Pavithra_RaoPavithra_Rao Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 123 RM Data Scientist
    @Marco_Boeck
    Is there a way to extend similar functionality to the Execute Process within a Process?

    For example: In the process below, if I double click on 'Execute 01 Text pre-processing' it opens up that process, but there's no way to navigate back to the parent process in the UI.

    Its a much easier way to navigate to the parent process when we have tons of Executeprocess operators in one process. I have been asked by many users asking for this.


Sign In or Register to comment.