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.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
Ah sorry, you're using WF 7.6.8. I was sure you were on 7.6.11, which uses the new approach with AJAX javascript calls to chain elements. I recall you were complaining about the same issue (HTML composer "upgrading" pages without asking) that I've been struggling with.
That version has a seperate Parameters tab in the composer where you do the chaining, so it doesn't matter whether a control is visible or not.
With your version, what you probably can do is create the hidden field as a text-field initially, chain it to the combobox, and then change the type-attribute of the text-field to 'hidden'.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
I think the best way to view the new parameters tab is as a view on the data-flow from the form to the next fex. There's no layout information in it.
Basically you have the hexagons that depict form controls (by name, so it's advisable to enter a name for your form controls in the Design tab) and ovals that depict parameters. If a parameter (oval) is connected to a form control (hexagon), then it's a bound parameter, if its not, then it is unbound and ends up in the 'unbound' box.
You can have form-controls that call a so called embedded procedure, which is a simple version of a TABLE FILE query. Don't try to be smart there, the system can't handle that well. If you need smart, use an external procedure instead or prepare a hold file before including the form and use that in the embedded procedure.
You can create new parameters using the right mouse button, while you can create new form elements in the Design tab.
You can chain form controls by selecting two form elements (first source, then target) and clicking the 'link' button in the toolbar.
Another thing worth knowing is that you can click the arrows connecting form controls and parameters as well as links between form controls, to set various properties. For example, which field a set of chained form-elements is filtered on.
It's really fairly intuitive once you're used to it (well, it is to me!), and quite powerful at the same time.
There are a few limitations though. For example, you can't set dynamic defaults (the current date in a calendar field, for example) using the GUI, and you can't set defaults for chained controls, because the values in their form-element depend on what their parent is set to. For our own use I created a set of Javascript libraries to handle that.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
Wep, What are your experiences in doing the chaining? It seems to me that when I have 2 parent fields and a child (child value depends on *BOTH* parent values), the chaining properties seem to reflect only one of the combinations' values. I.e. Both parents resolve a different parameter, but when clicking the properties of both, they don't change. Making me think that only one of these is supported.
- ABT
I've gotten this to work once in Dev, but am having a heck of a time recreating it in Prod.
I haven't had any need to chain multiple input controls to one target control yet, but I understand the use-cases for such. Doing such would allow to apply multiple WHERE conditions to the query in the target control, useful enough! It seems bugged though...
To elaborate, I created a test-case using the CAR database, connecting a dropdown with COUNTRY to CAR as well as one with SEATS. If you click the arrows linking either COUNTRY to CAR or SEATS to CAR, they both filter on the same field! That's not right... Changing the field that one of them filters on changes the other as well. That's obviously not what was intended.
Did you open a case with IBI for this yet? I could post my HTML file here, but the generated content rather obfuscates the issue, it's probably easier to see what's going wrong if someone tries to recreate the problem from scratch.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
Actually, my one set of chained drop-down list boxes works. I never thought I'd have to resort to chaining to pass a variable to fex that loads only one drop-down list boxe.
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
Apologies to Francis for hijacking his thread, but carrying on seems to be on-topic...
quote:
To elaborate, I created a test-case using the CAR database, connecting a dropdown with COUNTRY to CAR as well as one with SEATS. If you click the arrows linking either COUNTRY to CAR or SEATS to CAR, they both filter on the same field! That's not right... Changing the field that one of them filters on changes the other as well. That's obviously not what was intended.
Here are some more findings I have. The chained drop-downs seem to be aware of other variables in the environment. That is, in the FEX driving the first drop-down (one of the parents, we'll call her 'MOM', I do something similar to:
TABLE FILE CAR
PRINT
COUNTRY AS 'COUNTRY'
ON TABLE PCHOLD FORMAT XML
END
In my Child FEX (chained to 'MOM'), I am able to reference the field produced from MOM without specifying it.
TABLE FILE CAR
PRINT
MODEL AS 'MODEL'
WHERE COUNTRY EQ '&COUNTRY';
ON TABLE PCHOLD FORMAT XML
END
In my case, the other parent (umm, 'DAD' I guess) holds hardcoded values and I have to use the 'fills parameter' option to associate it, since I cannot specify in the fex the value/field being passed.
Secondly, in DAD, I HAVE to make sure he is marked as the Default Link (right-click chain between hardcoded Parent and Child, check 'Default link')
I am still wrestling with this, hope my finding help someone (they are inching me closer).
!!! Order of operations is important !!! 1. Go to the location you intend to be the final home of your application. If you intend to use a Dev or Test system to model, be aware that you will most likely have to completely rebuild it in your Production system. 2. Create a new HTML file and (on the Design tab) build controls on screen (drop-downs, etc). Must name them and give them a unique ID. 3. Add a 'Submit' button. 'Create Hyperlink' and point to the destination FEX. This references the report parameter fields needed to populate/associate for report run. 4. After completing the step above, delete all the form controls it added on the Design tab, leaving only the Submit button. 5. On the 'Parameters' tab, associate the controls to the unbound report parameters. Do this by dragging the hexagon HTML field control to the oval report parameter control (an arrow should form between). 6. For Dynamic Controls, do the following: 6a. Beginning at the logical 'Top-most' control, on the Parameters tab, left-click the corresponding hexagon. A pop-up appears. 6b. Select 'Dynamic', 'External Procedure'. 6c. Click the elipsis to find the procedure in the list. Now would be a good time to ensure your FEXes run and produce the intended outputs. !!! ON TABLE PCHOLD FORMAT XML !!! DO NOT use an 'AS NAME' in your data pull (FIELDNAME AS 'ANOTHERNAME' does not work as intended, at least for me, even with SET ASNAMES=ON (or OFF)).
7. For Chained Controls, do the following: !!! Ensure your dynamic FEXs to build the drop-downs USE THE SAME VARIABLE NAMES between each. If the second depends on a field called 'OrgEntityName' to come from the first, make sure the first holds a value called 'OrgEntityName'. Do not do "AS 'OrgEntityName'", see comment above. !!! When these variables are present in the environment, they seem to be automatically picked up for use/inclusion'. For this purpose, try not to have the same variable value floating around too often.
7a. If your chained control is 1 --> 1 (parent --> Child), fill in the Dynamic population properties for the parent only. Make sure the Value and Display fields are filled in properly. 7b. Drag the Parent hexagon to the Child, so a line is formed between. Click on this line and a Properties box will show. Repeat the step above to fill in the Dynamic field properties for the child. For the 'Resolves Parameter' field, associate the name of the field from the first hold file that the Child WHERE statement is looking for.
7c. If your chained control is a 2 --> 1 (Parent, Parent --> Child), fill in the Dynamic population properties for the parents only. Make sure the Value and Display fields are filled in properly for both. 7d. DO NOT DRAG the Parent hexagon to the Child as in other steps. Instead, click the one parent and CTRL + Click the child so that both are highlighted. 7e. Find the 'Add to Current Chain' icon (looks like a chain link with a yellow plus sign) and click it to form a connection between the two. Fill in as stated in 7b. Repeat same steps for other parent and child. This should allow you to seperate the 'Resolves Parameter' values.
7f. If you have one parent that is Dynamic and One that is Static, fill in the Dynamic Chain first. After, fill in the Static Chain. After, right-click the chain between the Static Parent and Child and choose to make this the Default chain. Make sure the Dynamic Parent to Child Properties have not gone away.
Other hints: For Static Fields, make one option a 'Select By...' display with a value of ERROR. You can exploit this to reset this field (and others in the chain). In my case, my second field was the Static one. I set the onChange event of my first field to the following: function cboEntity_onchange(ctrl) { document.GetElementByID(cboStaticDropDown).value = 'ERROR'; }
This way, if someone got to the last step and decided to start over, they would not have to reload the page. They just do the natural thing, select a new top-level value. My third level drop-down (the child to the Static and Dynamic parent) is coded to interpret the error value and loads the list with nothing.