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.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I am trying to create a generic launch FEX for all my reports so that they can pick a report from a dropdown list and the fex runs it.
And we want to keep the code in MRE because it is in a secured DOMAIN. So I used the -INCLUDE which works great when if the INCLUDED Fex is on the server. But when it is MRE, executed I receive:
(FOC227) THE FOCEXEC PROCEDURE CANNOT BE FOUND: app/rpt900ds_Sec_Roles
I have read dozens of posts on this topic and still cannot get this to work.
Here is what I have tried so far:
I have added and removed MRNOEDIT. I have added and removed "app/". I have added mydomain/app. I have added and removed ".fex". I have moved the include to "other".
Nothing works. Please help!This message has been edited. Last edited by: knegrotto,
So does this generic launch fex also exist within MRE or is it just a server procedure accessed from an HTML page externally from somewhere? If it's the latter, there are several parameters that need to be passed, telling WF that the procedure exists within the MRE structure and allowing it to be run outside of MRE. That being said, I do not think that your approach will work. You can't just -INCLUDE code from any old MRE domain from server procedure and expect WF to find it somewhere in MRE. The -INCLUDE only works if the calling fex and the -INCLUDED fes exists in the same domain, OR you specify the domain using the app/ AND the MRE user ALSO has access to that domain.
Try publishing a procedure that exists within MRE and then look at the generated HTML. This will show you all of the information that is necessary to get this to work. You'll also need to add IBIMR_drill=RUNNID to access the procedure from outside of MRE.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
Yes. As I stated in the subject title I am trying to access an MRE Fex from another MRE Fex.
And they are in the same domain which should work.
I already tried specifying the DOMAIN/app along with many other variations. I have read many posts on the subject and tried all the suggestions.
I did get it to work by moving the target code outside of MRE. But that was discouraged because the code needs to be secured in the MRE DOMAIN.This message has been edited. Last edited by: knegrotto,
If all of the procedures are in the same domain, just pre-populate IBIMR_domain, IBIMR_action, IBIMR_sub_action, and IBIMR_folder. Then use your drop-down box to populate IBIMR_fex (and javascript to populate OBIF_ex with the same value) instead of your &P_REPORT_FEX parm. No need to pass anything to a separate procedure. Clicking on submit will execute the selected procedure.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
and the Javascript that sets the intial and then selected values for the fex:
function init()
{
document.clmstats.IBIMR_fex.value="app/rpt1.fex";
document.clmstats.IBIF_ex.value="app/rpt1.fex";
}
function RptSelect() {
if (document.clmstats.RPTFEX(0).checked)
{ document.clmstats.IBIMR_fex.value="app/rpt1.fex"
document.clmstats.IBIF_ex.value="app/rpt1.fex"
}
else
if (document.clmstats.RPTFEX(1).checked)
{ document.clmstats.IBIMR_fex.value="app/rpt2.fex"
document.clmstats.IBIF_ex.value="app/rpt2.fex"
}
}
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
It just does not work, because, according to this ancient posting, -INCLUDE &RPT_NAME, "the MRE Dialogue Manager processing is NOT the FULL D.M., but only provides variable substitution."
So, you could try this instead. It's tedious if you have a lot of programs and the program name must be 12 characters or less.
-SET &ECHO=ALL;
-TYPE HELLO FROM PROGRAM testing_program_1.fex - start of report
-DEFAULT &P_REPORT_FEX = 'test23';
-GOTO &P_REPORT_FEX.EVAL
-testaa
-INCLUDE testaa
-GOTO END_REP
-test23
-INCLUDE test23
-GOTO END_REP
-testpgm2
-INCLUDE testpgm2
-GOTO END_REP
-END_REP
-TYPE HELLO FROM PROGRAM testing_program_1.fex - End of report
If you program names are more than 12 characters, pass a short name as the GOTO label name and put the long name in the INCLUDE statement.
Very tedious, but it works.
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
We use this technique as well for some batch processing where procedures are "queued" in a processing file and run nightly. The main job reads the values of the fex names in as parameters and then -INCLUDES the appropriate fex using separate labeled sections as demonstrated by Francis.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
Thanks everyone. I have abandoned trying to INCLUDE an MR FEX. But I did find some simple code from BlueZone that does just what I wanted on the forum at the following link. [SOLVED] Executing an MRE fex from an external HTML page
One thing I did find that gave me fits was the way tha MRE handles (or doesn't handle) uppercase characters in object names. You can create a new FEX with upper case in the name and it will display in upper case. But if you look at the file name (preceeded by app/) it has only lower case. Once I cleaned that up by using only lower case, everything worked like a dream.
UPDATE: I found that the code was opening a new window and closing my original HTML page. I resolved this by replacing
location.href = url;
with
window.open(url,'_blank');
Now the user can close the new window and run another repoer from the menu.This message has been edited. Last edited by: knegrotto,