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's taken me two hours to unwind from three frustrated hours of undoing a mess I created in DS HTML Composer.
I have four report parameter screens designed in HTML Composer. I needed to add a new control for a new parameter to these four screens. I had to jam this new one in between other existing ones, meaning I had to nudge the others out of the way. I've been at the HTML development game for so long and I am usually very careful, so I thought I'd save time by using the GUI on one screen and then copy the updated code to the other three. VERY BIG MISTAKE. It took me three hours to unravel this mess. I never reverted to backups because at each five minute interval I thought I was close to correcting things. One of the things I learned is: besides the four or five html and proprietary tags that make up one report parameter, which I made sure the name and id of were exactly the same on each screen, I overlooked the "compUid" which is what I believe to have messed everything up.
Lessons learned: NEVER, EVER COPY CODE. NEVER EVEN LOOK AT THE CODE. The only code that you can fairly safely play with is JavaScript you add manually.
I just can't see how DS HTML Composer is helpful. Each of my attempts to use this thing has ended in tears. Some people use Report Painter to start a report, then enhance and/or copy the generated code. This YOU CANNOT DO with HTML Composer.
If I had hand coded the parameter screens I would have used some kind of modular design, where adding the parameter to one module would have added it to all four (or 25) parameter screens. This would take me half an hour to complete.
I would love to chain a DS HTML Composer advocate to a PC for a month and watch them squirm when they have to revise html pages that they so easily pointed and clicked into existence...
Meanwhile there are so many annoyances with DS HTML Composer, some of which I have already commented on.
Why does a (one would assume, mature) version (7.7.03) generate such non-compliant html code? Why are html attribute values not enclosed by quotes (unless there's a blank in the value)? Here's one example: I have a button with a Dialogue Manager variable as the text value, this is how it's generated by the GUI
You have to enter the button text value as !IBI.AMP.label; ' (with a leading or trailing space) for it to generate code with quotes. You might as well put a leading AND trailing space to make sure the text is centered.
Why does a multi "column" radio button group mysteriously expand to wider than you've set it to?
Chained double list controls are not very intelligent.
All control validation has to be coded manually, and in v7.6.8 was difficult to add if you created a formless parameter screen (I don't know if this is different in v7.7.03).
Why do containers used to generate boxes around groups of controls mysteriously expand by one pixel?
After initially creating a parameter screen and linking it to a fex and assigning parameters to controls, you may need to add a new parameter and corresponding control. If you first create the control, a static dropdown list with three options for example, then reconnect to the fex from the submit button property and assign the new parameter to this newly created control - why do the three options get deleted? Why does an empty container get added, pushing the submit button out of where it was located?
Why does the documentation discuss "form" controls when you don't need a form to create a report parameter screen, and why can I not find any documentation about inserting a "Multiple Layer Form" or a "Single Layer Form" and what the difference between them is?
I'm sure I could go on and on...
How does one use an "unbound parameter", and how can it have a format of "D12.2" as the documentation states?
On the Parameters tab, why do the unbound parameter icons sometime overlay each other, so you have to move them one at a time to uncover one you're looking for?
Because I earn my bread and butter by being a WebFOCUS developer am I supposed to tolerate these features?
Thank you for tolerating my rant.
By the way, where are the Information Builders product people? I haven't read any I.B. replies to FocalPoint posts lately...
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
I think you could have saved some time and frustration with a good version management system. There are several available, but I personally vouch for either Subversion (http://subversion.tigris.org) or Mercurial (http://mercurial.selenic.com/). I've heard good things about GIT as well, but haven't used that yet.
It takes some time to get used to working with a version management system, but it helps quite a bit with problems like the one you were running into with those HTML changes. For starters, you can fairly easily check what changed since you started editing a file, revert back to an older version of such a file, or create a branch in which to experiment safely.
Have a look at them, it's tons better than keeping hundreds of backup copies around.
One thing we just realised is that it's helpful to commit files to the repository (the place where all revisions of all files are tracked) when we're reporting a bug to IBI, with a clear description of what's there. That way, if IBI gets back to us with questions (for example, a reproducible test case), we can find the original situation easily.
Regarding the problems you're running into, I can't say I disagree or haven't run into any of those issues.
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 :
It took me three hours to unravel this mess. I never reverted to backups because at each five minute interval I thought I was close to correcting things.
I've been there and done that!
quote:
If I had hand coded the parameter screens I would have used some kind of modular design, where adding the parameter to one module would have added it to all four (or 25) parameter screens. This would take me half an hour to complete.
Message for management: The GUI is not as smart as I am. I am clever and write clean, efficient code that is inexpensive to maintain. The GUI writes messy inefficient code that is very expensive to maintain. My page looks nicer and works better than the GUI's. Better product - lower cost.
- Since largely ceasing and desisting from the use of HTML Composer I have developed Javascript that allows me to transfer launch pages between test and production domains with the change of one variable. The domain, folder, dir, etc variables are defined once, near the top of the page, for each location, and one variable determines which location is referenced. I love it!
Rob
WebFocus 8201m on Windows; App Studio 8201; Procedures: WebFocus with SQL; HTML Parameter Pages & Dashboard; Output: Excel, HTML, & PDF.
Posts: 88 | Location: MI | Registered: July 23, 2009
Waz, that was exactly my reaction after reading Francis' "poem"!
Francis, I think we've all been there, done that and suffered like crazy. I am (for now) not required to use HTML composer so am not going through an even close level of frustration as yours with that tool (TOOL?).
Anyway, as there is no real escape, try to always make at least 3 backups of the .htm file before *any* change no matter how small, and keep them all!!!! Obviously this helps at nothing, but at least you could have wasted just 2.5 hours instead of 3 last night
Francis, seriously dude, roll your own. It's way easier than it looks.
In my opinion Dev Studio's HTML Composer has been exceptionally well-designed to Demo, not to use. It's great for showing off to a customer, but from a production standpoint it's a mess. It produces impenetrable source code that can't be maintained. The folks in New York aren't in a position to wrap their heads around that. Most haven't seen how the tool is used in the field, and the ones that have are powerless to make a change -- they can't come to the customer and say "you'll have an html coder do this part for you." It wouldn't sell.
I write all my own html source and code directly to the servlet jsp. It is wicked simple. Once you get a couple of basic concepts down you'll never go back to the html composer again.
J.This message has been edited. Last edited by: John_Edwards,
Posts: 1012 | Location: At the Mast | Registered: May 17, 2007
One thing though, Dev Studio does not allow me to open html files in EditPlus - the edit options I have are Edit in Composer, Edit in Text Editor, Edit in Associated Tool, Edit in Microsoft 2010 component (who would ever want to that?).
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
In Explorer, go to Tools/Folder Options/File Types, find HTM or HTML, click on Advanced, Edit Edit, and point to EditPlus, make sure you add/keep the %1 at the end of the action.
I have to echo what John_Edwards and others have said. HTML Composer is just a bear to work with due to the quirks and messy, mangled, inconsistent, non-standard code that it produces. I have been bent over by that "tool" one too many times and now I avoid it unless I have absolutely no choice. We have a large set of MRE pages that were made by IB consultants using the Composer and every time I'm asked to modify them I break into a cold sweat. I have also learned not to cut and paste in there either - it's a nightmare.
Just so you know - it's not you, man. You're not alone. The wailing and gnashing of teeth you hear directly to the South of your location are your WebFOCUS brethren all feeling your pain.
When using a GUI tool, one should never copy code. Afterall, you are using a GUI tool that generates code. If you want to copy code, then you are probably a sophiticated developer and should use Notepad to write your own code and call WFServlet when needed.
You can copy objects on the Design tab and then the tool adjusts the code behind those objects accordingly. The user of a GUI tool should not have to know anything about CompUid's and if you use the GUI, you don't need to know them. Francis, you copied code and not knowing the intricacies of our code, you missed this and got into a problem. Sorry that happened to you. Just don't copy code. Either use the GUI or don't.
Francis stated that the code is "non-compliant". Please tell me what is non-compliant about it? We use the Microsoft parser and it does not flag any issues with the code. Also, please explain what is unintelligent about the double-list control. Lastly, you can open cases for any validation routines you would like us to create.
David Glick Director WebFOCUS App Studio and WebFOCUS Developer Studio WebFOCUS Division Information Builders, Inc. Direct (917) 339-5560 Voice Mail (212) 736-6250 x3560 Fax (212) 947-5168 Email david_glick@ibi.com
In addition, the issue regarding noncompliant code seems to be referring to embedded blanks and quotes. As I said, we use the Microsoft parser and mshtml returns strings that do not contain embedded blanks, without quotes and it returns strings that have embedded blanks with quotes. We do not modify what it gives us.
Francis coded !IBI.AMP.label and then at runtime supplies a value with an embedded blank, "Run Deferred". This value should be passed with quotes. The value for this can always be passed with quotes and it would not be an issue.
The documentation incorrectly refers to controls as "form" controls. That will be fixed.
In the "Unbound Parameters" box, I cannot get the parameters to overlap unless I specifically drag them one on top of the other. After doing that, I can right-click and select Auto Arrange and that separates them.
I don't exactly follow the D12.2 comment. A parameter gets its format from the field name it is named after. So, if I have a parameter named &COUNTRY, and I am using the CAR file, the format would be A10. The documentation shows some sample formats in various places. It does not state that an unbound parameter has a format of D12.2.
Page 143 of the 7703 HTML Composer manual explains what a single-layer form and a multi-layer form is.
David Glick Director WebFOCUS App Studio and WebFOCUS Developer Studio WebFOCUS Division Information Builders, Inc. Direct (917) 339-5560 Voice Mail (212) 736-6250 x3560 Fax (212) 947-5168 Email david_glick@ibi.com
I learned my lesson regarding copying code - I admit this is my fault.
Regarding copying - can I copy a control and related labels and containers from one page to another? I can do this in Microsoft Word or Adobe Illustrator, is it possible between DS HTML Composer documents? If I have 15 documents to modify, must I go through the tedious task of adding the new components to each page one at a time?
When we speak of parameters , do we not speak of Dialogue Manager variables? I cannot figure out how to create a DM variable with a D12.2 format.
I'm sorry I used the term non compliant. Try passing the code through HTML Validator (http://validator.w3.org/). Who trusts Microsoft with standards?
Stick several double list controls in one screen. To be intelligent, they should each have a reset button. The "All" option is added via the GUI. When a single option is moved from the left to the right, the All option on the right is not moved to the left. When the user moves the All option to the left, after a few manipulations, it could easily get lost among the other options (in my opinion, it should always be the first option). The Search component should have a check-box to force case-sensitive or non-case sensitive searches (are we to assume the use will figure this out?)
quote:
!IBI.AMP.label and then at runtime supplies a value with an embedded blank, "Run Deferred". This value should be passed with quotes. The value for this can always be passed with quotes and it would not be an issue.
Are you suggesting that I enter "!IBI.AMP.label;" (include the double-quotes) in the Text property of the button? I never thought of that and I'd never assume a GUI interface would expect me to include code along with the text value.
Nice big window with lots of space for Unbound Parameters:
Lots of unbound parameters hidden under other unbound parameters:
"Auto Arrange" does not re-arrange the unbound parameters.
Multi "column" Radio button control - why does it expand to wider than it was previously set to?
According to the Dev Studio Online Help for Designing a User Interface for a Web Application with the HTML Composer:
quote:
Select Do not create a form to insert the form controls for each of the new parameters in separate locations on the HTML page.
Select New multiple layer form to insert the form controls for all of the new parameters inside one form element you can position anywhere on the HTML page. This form element also contains submit (run) and reset buttons. The multiple layer form contains group boxes around each element in the form. You may move and resize each element of the form control.
Select New single layer form to insert the form controls for all of the new parameters inside one form element you can position anywhere on the HTML page. This form element also contains submit (run) and reset buttons. The single layer form contains all of the elements within a single group box.
Thank for pointing me to the documentation, though this does not explain the real difference between a non-form document and a form document. I found that there is quite a difference in v7.6.8 - it was quite difficult to jam in a pre-submit validation function in a non-form document.
Thanks for taking the time to respond to my frustrations.This message has been edited. Last edited by: Francis Mariani,
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
In Explorer, go to Tools/Folder Options/File Types, find HTM or HTML, click on Advanced, Edit Edit, and point to EditPlus, make sure you add/keep the %1 at the end of the action.
Waz, many, many thanks for that. I'd been looking for an option to edit my files directly in my favourite Notepad++ from Developer Studio!!!
I invested some good time creating one about 3 years ago but wasn't careful enough to make a backup. After a series of clean ups and re-installations I ended up losing a few things including my customized language syntax for WF. I didn't try creating it again.
Click: Start -> Control Panel -> Default Programs -> Associate a file type or protocol with a Program.
Select ".fex" / ".htm" from the list, click "Change program..." and choose your editor of choice. If not listed, one can use "Browse ..." to pick any other, finish the process and voilà.This message has been edited. Last edited by: njsden,
Notepad++ provides syntax highlighting and comes pre-configured for many "common" languages. As WebFOCUS is not one of them, we can define our own customized syntax which ends up in that file.
Kofi, I finally managed to incorporate your syntax definitions in my local Notepad++ installation. I was having some issues importing it as it was but after manually playing with Notepad++ found out that symbols such as < and > have to be configured using their corresponding HTML entity. so <HTML> needed to be configured as <HTML> instead (the same for all HTML tags withing the config file) but it's all good now. Thanks again.