The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
Execution Order seems not to work. Any wait neccessary...?
thomas_wiedmann
Member Posts: 60 Maven
Execution Order seems not to work after "Execute Program". "Execute Program" (PHP Script inside) do two things. I have added a "sleep(1)" at the end of the PHP Script (wait 1 second). But this has no effect.
<?php
// echo 'start php';
$aData = array();
$sData = null;
$sData = file_get_contents('M:/Scannen-AS/rapidminer-php-input.csv');
$aData = explode(PHP_EOL,$sData);
asort($aData);
$sData = implode(PHP_EOL,$aData);
// fwrite(STDOUT, $sData);
file_put_contents('M:/Scannen-AS/rapidminer-php-output.csv',$sData);
sleep(1);
?>
a) read a files and reorder it
b) write a new file with the ordered data
After this "Load File" give me an Error. But the missing file exist. If I run the process a second time (without delete the work files directory) the process seems to work.
Pic. Working file directory
Any help?
Thanks!
Thomas
Tagged:
0
Best Answer
-
MartinLiebig Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,533 RM Data Scientist
Hi @thomas_wiedmann,
as a side node. I can recommend the Delay and the Subprocess operators to enforce execution order.
Best,
Martin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany0
Answers
Ok, I think this is related to a path issue.
Windows has this type of directory structure M:\Path\to\file, whereas the error is saying it can't find M:/Path/to/file. Does the file reside on a windows machine but it's pathed differently?
@Thomas_Ott
Okay, I will check this again, but like I wrote. If I run the process a second time "Open File" found the "old" file (rapidminer-php-output.csv) without any change of directory separator "\" or "/" . So I think, this is not the reason...
Thanks!
Thomas
Ok, I have chanced "\" to "/" inside the "Open File". But I get the same error
RapidMiner change "../.../.." to "..\...\.." inside the error message.
Thanks!
Thomas
Hmm, that is interesting. So if you opened the saved file and try and run it, it crashes. The second time you run it, it works? If that's the case, it might be a bug of sorts.
Hi @Thomas_Ott
If I locked the "old" rapidminer-php-output.csv the PHP Script inside "Execute Programm" can't write.
Thanks!
Thomas
Hi @thomas_wiedmann,
Attached is a screenshot what @mschmitz was talking about.
This way you can omit 'sleep' in your PHP script. The Delay value is in ms. And by moving Open File and Read CSV into a Subprocess you can easily enforce the execution order.
Hope this helps,
Edin
@Thomas_Ott
@mschmitz
Yes, this seems to work, I will check how long the shortes "Delay" is neccessary
Thanks!
Thomas
Hi @thomas_wiedmann,
is there any reason why you have a subprocess *and* Open file & Read CSV?
The proposed solution uses the Subprocess Operator only because it has an input port and therefore can be connected.
Best,
Edin
@Edin_Klapic
Yes, I found no way get the piped data inside PHP like described here:
https://community.rapidminer.com/t5/Getting-Started-Forum/Looking-for-a-sample-to-execute-PHP-using-Execute-Program/m-p/46575#M1850
So I decide to use real files to pipe data thru "Execute Program" (PHP Script). PHP found no data on STDIN and waits forever.
Maybe I make a mistake using PIPE, but I did'nt found it.
Regards,
Thomas