bamaer commented on PR #9000:
URL: https://github.com/apache/hop/pull/9000#issuecomment-6246942586

   Thanks @Adalennis, the format works well, and it's good to have the labels 
lined up with Hop Gui. I checked the tables against each action's `execute()` 
on current main (I read the code, didn't run the actions). A few rows say 
something the code doesn't do:
   
   **Fix before merge**
   
   1. **Pipeline / Workflow, Execute for every result row:** the rows are not 
passed on unchanged. Each run gets a single row and the list is cleared before 
every run (`ActionPipeline.java:385`, `ActionWorkflow.java:341`). So what goes 
on is the last run's rows, or the last input row. On Pipeline, *Clear results 
files before execution* also runs before every run, not once.
   2. **Workflow, Result rows:** the rows are replaced only when the child 
returns a non-empty list (`ActionWorkflow.java:560`). A child that returns no 
rows leaves the received rows in place.
   3. **Copy files:**
      - A file copied into a folder is not added to the result files, only 
file-to-file and folder-to-folder copies are (`ActionCopyFiles.java:385-403`).
      - A single file that fails to copy inside a pair is only logged, so the 
action can be true with 0 errors.
   4. **Mail:** the result is false whenever an error was counted, even when 
the message went out. With *Zip files*, a zip error sends the mail without the 
zip and returns false (`ActionMail.java:577-599`). A result file that doesn't 
exist is skipped without an error, so "false when a file could not be attached" 
only holds for errors at send time.
   5. **SFTP:**
      - It is also false when *Remove files after retrieval* fails. The file is 
downloaded and in the result files by then (`ActionSftp.java:427-429`).
      - On any failure, *Files retrieved* stays 0, even for files already 
downloaded.
      - With *Copy previous results to args*, the first field is matched 
exactly against the file names in the remote directory, and the wildcard is not 
used.
   6. **Simple evaluation:** an invalid regular expression isn't a false 
result. The exception leaves `execute()` and stops the workflow, the same as 
the Mail NOTE (`ActionSimpleEval.java:561`).
   
   **Worth fixing**
   
   - Simple evaluation: "no variable is set in *Variable name*" reads as "the 
variable is undefined". It means the *Variable name* field is empty.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to