8 Replies Latest reply: Oct 22, 2013 12:48 PM by Traci Dukes RSS

    Rule 1 does not have the required join function

      Is there error reference guide anywhere.  I have no idea what this error could mean. 

      Says 'The join rule "Rule Rule_1 does not have the required join function.

      This join operator's contents look the same as all the other joins in the dataflow.

      Thanks Traci




        • Re: Rule 1 does not have the required join function

          Attach a screen shot of the rules editor content within this join operator.

          • Re: Rule 1 does not have the required join function

            +1 John


            Traci, "Rule" errors refer to the 'Rules Editor'.  Open up the "Join 3" Operator by double-clicking it, and take a screenshot of it. This error is saying there is something wrong inside there.



              • Re: Rule 1 does not have the required join function

                John & Paul,  Thanks for your quick response.  I had to get that done so I ended up doing two dataflows.

                I may attempt it again when I get a minute.

                  But here is the scenario, I have a payroll file, some of the records have a matching employment record in my database, others do not.  If they do not I need to write a Employment record and also a payroll detail record.

                I was trying to do this using the multi-transform operator.  I have not yet used that operator.  My question is since I have to have the employment record written before the detail and I need the employment id from the employment record for the detail record, if I have the employment record as the write for the first transform, will it exist and the time I read that file to write the detail?  Maybe this is why my dataflow was throwing errors?


                Thanks Traci

                  • Re: Rule 1 does not have the required join function

                    Perhaps.  It is still hard to say without seeing Rule_1 inside of your "Join 3" operator. That is what the error was specifically pointing to.


                    However, you don't need a separate DataFlow for what you are trying to accomplish. Only another step in the current DataFlow.  Steps occur in order, and do not start until the previous Step is complete.  So you can write the Employment records in the first Step, and then retrieve the IDs from those records and write the Detail records in the next Step.

                    • Re: Rule 1 does not have the required join function

                      I think you made the correct design decision.  It is unlikely that in a single dataflow step you would be able to control the order in which records are written to different database tables.  And it certainly would be difficult, most likely impossible, to control the write operations such that constraints on the database tables could be satisfied.


                      There is nothing wrong with developing this application as a pairing of two dataflows, but you could have accomplished the same objective as a pairing of two steps within the same dataflow.  You could run each step individually or in sequence.  The nice thing about this approach is that you keep the processing together in a common dataflow rather than needing to track two individual dataflows.


                      But, in the end, either approach is perfectly fine.




                      Using the multi-transform operator requires a higher skill level with datascript than other operators.  You can accomplish the same processing with a copy operator where each output stream leads to a separate transform operator.  This approach is easier to code, although it is a bit less efficient.