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.
It would be useful to know what you are really trying to achieve. What does &DIR do within the Maintain, and why do you think you need a Global variable?
The IBIF_cmd operates differently to IBIF_ex, there are approaches you can take to ameliorate the differences, but better to know what it is you are trying to achieve.
Alan. WF 7.705/8.007
Posts: 1451 | Location: Portugal | Registered: February 07, 2007
Let me provide more details on what I am trying to achieve. Maybe there is another way to do this. Basically I am trying to launch a maintain app but carrying the amper variables that user selected. Prior to launch the maintain application, user runs a fex file (see below) which basically calls a USE dynamically statement to a focus db. This amper variable &DIR shows on url. I have a number of folders with same focus db: /sample/fdb.foc /thisfolder/fdb.foc /thisfolder1/fdb.foc etc...
The fex file that is selected by user. I have put this fex in user profile (launchmnt) -DEFAULTS DIR=SAMPLE -SET &&DIR=&DIR; -SET &DB='F'|&&DIR; USE CLEAR USE &DB ON FOCSU01 AS DB READ END -RUN
User selects THISFOLDER as &DIR. However launching my maintain with: ibi_apps/WFServlet?IBIF_cmd=MNTCON+EX+MNTAPP&DIR=THISFOLDER&IBIS_connect=on&IBIC_user=launchmnt it never picks up selected THISFOLDER as &DIR by user. In my maintain app, I am using DIRP/a8 = IWC.GetAppCGIValue("DIR"); I see that DIRP is SAMPLE from default in user profile.
Maybe there is a better way to launch maintain while able to carry variable DIR.
This is my javascript code I use currently to launch from maintain.html
<script language=JavaScript> function run(appl) { var cmd = "/ibi_apps/WFServlet?IBIF_cmd=MNTCON+EX+fcstvpas&DIR=!IBI.AMP.DIR;&IBIS_connect=on&IBIC_user=" +appl; window.open(cmd, "maintain", "scrollbars=yes,resizable=yes"); }
The approach I would take is to create a focexec and call this focexec, instead of the maintain, with IBIF_ex and IBIC_user.
The focexec will call the Maintain with a MNTCON EX fcstvpas parm1.
Running the focexec this way should call the user profile, and the &&variable can be applied as parm1 in the MNTCON call.
Within the maintain you can use Sys_mgr functions (Sys_Mgr.Get_NameParm, Sys.Mgr.Get_InputParams_Count and Sys_Mgr.Get_PositionParm) to retrieve the parameter values.
I know the IBIF_ex approach works, but have never tried to use it to call a user profile in this way, though it should work.
Otherwise could this just be in the focexec called by the original call, rather than in the user profile, it seems to be straightforward enough.
.../WFServlet?IBIF_ex=mntcall&DIR=xxxxx
-*mntcall.fex
-INCLUDE mntcallinc
MNTCON EX fcstvpas &DIR
-*mntcallinc.fex
-DEFAULTS DIR=SAMPLE
-SET &&DIR=&DIR;
-SET &DB='F'|&&DIR;
USE CLEAR
USE
&DB ON FOCSU01 AS DB READ
END
-RUN
If you are using the FOCUS db direct within the maintain, that should be fine, but if you are running a focexec from within the maintain that uses the FOCUS db, that focexec needs to set up the USE again, so you will need to pass parameters to allow that to happen and -INCLUDE mntcallinc again. If you use the KEEP parameter on the call this only needs to be run once per maintain session, else run on each call.
Alan. WF 7.705/8.007
Posts: 1451 | Location: Portugal | Registered: February 07, 2007
Alan, thanks for the suggestion, actually my original code was based upon ibif_ex with what you suggested. It seems to work with version 6 or prior but no longer works with 7 version above. I am launching a maintain form so the initial launch page (/ibi_apps/WFServlet?IBIF_ex=rtlmainx&DIR=XXSAV01) form shows the correct directory but once I click on any maintain case, then it will loose the maintain page (http 405 blank page). I have also talked to ibi and it seems that I might have to launch with ?IBIF_cmd=MNTCON+EX+
If other suggestion, let me know. thanksThis message has been edited. Last edited by: paulux99,
This is a technique I have used successfully before with no issues. When you say you click on a maintain case, is that an event handler from a form to a Maintain case using IWCTrigger?
I presume this is persistent maintain.
Another approach would be to use -HTMLFORM after the -INCLUDE, utilising a self submitting call to IBIF_cmd. I've got the code somewhere, so can get it out if you need it.
Alan. WF 7.705/8.007
Posts: 1451 | Location: Portugal | Registered: February 07, 2007
Yes I have an event handler on a click to infer into a stack then show another form. then I get a blank page. I am on 7.7.03. This coding seems to work for me with my older version of focus 6 or earlier. Talking to ibi, they seem to say due to security concerns that ibif_ex does not work.
On another method, I have also tried with with -html include and it does not seem to work either. Maybe you can provide your coding or tell me me what could be wrong with the code below.
-*launchpage.htm function run(appl) { var cmd = "/ibi_apps/WFServlet?IBIF_ex=mntfcst&"; cmd = cmd + "DIR=!IBI.AMP.DIR;&FEX=" + appl; window.open(cmd, "maintain");