As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only. Moving forward, myibi is our community platform to learn, share, and collaborate. We have the same Focal Point forum categories in myibi, so you can continue to have all new conversations there. If you need access to myibi, contact us at email@example.com and provide your corporate email address, company, and name.
Is it POssible to run two or more fex program together, in any possible manner.
I have a main program main.fex in which i need to call 3 child program and i would like to excute these child program simultaneously so that it reduces the total time need for the whole report to complete. In usual manner we use -INCLUDE to include the child in main program, but this wouldn't run the program in parallel.This message has been edited. Last edited by: Kerry,
WebFocus 5.2.5 HP-UX(UNIX) EXCEL, HTML, PDF and OLAP
The problem with SPAWN is that it can only be called from a DEFINE or COMPUTE so it's not going help MKS's problem.
What MKS does not say if the 3 called procedures are generating 3 outputs or if they are processing to supply data for the "whole report"
If it’s the 1st then it’s not possible as an edastart session cannot return output to a browser.
The major issue with parallel running is that you must wait for all to complete before you can finalize The output. This means that they need to be executed with a loop that checks for completion of each Component.
The only real way to do this is via an edastart –f passing it a script or edastart –x passing it a command And you must remember that these will not generate output to the browser they can only generate hold files.
What’s more there are a number of issues that you need to take into account.
1. edastart -f/-x do not execute any profiles e.g. site.wfs, edasprof.prf etc.
2. They will use the directory from where the edastart is called as the ‘edatemp’ directory so you must ensure that unique names are used for any hold files.
3. They will not know any variables that have been set in the parent procedure; they must be passed via the calling process if you want to use them.
As Waz says 50K rows is peanuts from a WebFOCUS perspective, unless you are using ridiculous Cross platform JOINs.
My advice is, the pain and aggravation associated with trying to do this is so great don’t bother trying.
"Is it possible to run two or more fex program together, in any possible manner."
Is this to run online (with the eventual output directed to the browser) -- or batch (scheduled in Reportcaster)?
For an online report, here is a method I used several years ago.
Have the "parent" fex return an initial html page, which on load submits N forms, one for each of the "child" fexes, to run them in parallel. That allows them to run in parallel, on individual "agents" in WFRS. Each of those N forms directs its output to a separate iframe in the initial page, which (on load) runs a function located in the parent document. That function bumps a counter, and if the counter has reached N submits a request to run the final report fex, which utilizes the outputs of the child processes and produces the final output (replacing the initial html page)
Essentially, the initial html page is acting as a controller (which is why this method cannot work in batch), initiating all the parallel processes, and allowing the last one in to turn on the lights.
The child proceeses have to be designed so that (a) their output remains accessible to the final report exec; (b) they operate independently of each other; and (c) multiple users can exercise this structure without interfering with each other. -- but that is true in any event.This message has been edited. Last edited by: j.gross,
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
But in Internet explorer there is a limitation of 2 parallel execution
Ram, "That's not entirely correct" (Sorry just re-watched Independance Day).
The limit is on the number of parallel downloads to the browser, not the requests to generate the downloads. If you have multiple iFrames requesting data it will take the first 2 or 6 as default for download then automatically download the next 2 or 6 (browser version dependant).
Jack, Hidden iFrame approach + script counter. Never thought of that. Now that Foccache is available, That's got to be much more viable and easy.