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.
Can all this be done with a simple push down stack of the current line to be executed.
For reasons unknown, this might be harder than I think - if so could someone post reasons.
It may be because fixing this is not seen as a selling point - however when I show other programmers the -GOTO based syntax in DM, people start to dismiss wf as a cosmetic job on some Mainframe dinosaur language.
Server: WF 7.6.2 ( BID/Rcaster) Platform: W2003Server/IIS6/Tomcat/SQL Server repository Adapters: SQL Server 2000/Oracle 9.2 Desktop: Dev Studio 765/XP/Office 2003 Applications: IFS/Jobscope/Maximo
Posts: 888 | Location: Airstrip One | Registered: October 06, 2006
DM HAS been around since the dinosaur mainframe days - early 80's I think. The FOCUS core language and DM are still the heart of the WF product - and there's really nothing wrong with that at all.
I suppose you could always request CASE/subroutine DM usage as a new feature - makes sense to me.
All these years I still hear people bad mouth FOCUS. These are the same people who also think PERL, PHP, Python are also "dinosaur" languages and are also probably the ones who think anything without a GUI isn't worth using as a programming tool.
It's just different.
WebFOCUS 7.6.6/TomCat/Win2003,SQL Server 2005,Oracle
Posts: 125 | Location: New England | Registered: February 20, 2007
I suppose that's the better thing can be done - freeze this language. It's good enough for some tasks, but many times I've thought how much better if instead of DM was some modern dynamic-typed language.
Python, Perl, Ruby, server-side JavaScript, Lua - all are good enough.
Maybe like embeddable module allowing substitute DM, maybe like in CGI-scripts - first comment is about script-language (by default - DM)
WF 7.6.2, WinNT/2K, MSSQL 2K, MSOLAP 2K, BID
Posts: 79 | Location: Moscow | Registered: April 27, 2007
Between Alan and Jodye one can have all the constructs that one might need. Also, never forget that DM is a pre-processor, a sort of "conditional assembly" that generates the code that will later run against data files. The whole concept of DM is a very powerful one and very few languages can match it. As for those who look down upon GOTOs, let them try to do with their tools what WF can do with DM.
And a little caveat for Jodye. I know that DM will accept -IF &X=1 THEN GOTO ... but the correct syntax is -IF &X EQ 1 THEN GOTO ... Also a semi-colon should not appear after a label. One day, a "tighter" version of WF might not accept it and then OUCH!
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF
Posts: 1980 | Location: Tel Aviv, Israel | Registered: March 23, 2006
HERE'S the link to the doc on looping http://documentation.informationbuilders.com/masterinde..._lang436/02cat97.htm the REPEAT WHILE might be work exploring, john. i agree whole-heartedly with jodye and alan et.al., DM (being careful to distinguish DM Dialogue Manager from DM Data Migrator) is infinitely flexible and pricelessly valuable, and Danny's well-said explanation that "its a 'pre-processor' that actually structures the code" puts this tool in the proper perspective for the newbies.
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
I agree on some user complain that DM is not so easy if you are used to modern tools, but a good start would be reading the manuals and ask for a proper course before diving into the coding.
Frank
prod: WF 7.6.10 platform Windows, databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7 test: WF 7.6.10 on the same platform and databases,IE7
Posts: 2387 | Location: Amsterdam, the Netherlands | Registered: December 03, 2006
Why not try to think like a Focus programmer, learn and use DM. With a little imagination you can accomplish anything.
I agree with you wholeheartedly: DM is for the WF magicians: there is no limit. Add to that techniques such as "McGuyver" and "alternate masters" and it is an always renewed challenge with much gratification.
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF
Posts: 1980 | Location: Tel Aviv, Israel | Registered: March 23, 2006
I agree that you can build all modern computing structures with an IF and a GOTO but it is messy and error prone in that logic has to be reversed which is why those new structures were created.
Alan B
Your construct is fine if you have one level of invocation; you would need a stack structure to fully implement psuedo-perform. But your example is very clear in showing how simple it would be for IBI developers to implement.
There is no reason why modern constructs cannot be entered into dm. It is merely a pre-processor of which many languages make use eg C, PL/1 etc but a pre-processor is doubly ideal for an interpreted language since you have code that writes code.
Again out of the box great thinking to come up with using REPEAT WHILE as a simple if block (you would have to disable the condition in the block at some point to ensure only one iteration).
The problem I find with this is that it confuses someone who is maintaining your code and unless it is a standard becomes very difficult to justify.
The other type of IF block I use (got idea off forum) is
-SET &CMNT = IF condition THEN ' ' ELSE '-*' ; &CMNT.EVAL code1 &CMNT.EVAL code2 ...This message has been edited. Last edited by: hammo1j,
Server: WF 7.6.2 ( BID/Rcaster) Platform: W2003Server/IIS6/Tomcat/SQL Server repository Adapters: SQL Server 2000/Oracle 9.2 Desktop: Dev Studio 765/XP/Office 2003 Applications: IFS/Jobscope/Maximo
Posts: 888 | Location: Airstrip One | Registered: October 06, 2006
Hallo all! Excuse me, my post was not right thread.
But my opinion remains the same - DM is ... (it's just a simple preprocessing language. Maybe TOO simple)
I can't understand about "dinosaurs" - most of modern languages influenced by Scheme, Lisp, Smalltalk I can't understand this "Think like FOCUS programmer".
I'm a fan of FOCUS - it's really powerful language. I'm not a fan of DM. And FOCUS is NOT easy, DM IS easy.
And it's so easy today to find good embeddable dynamic-typing language. With good IO, elegant syntax, powerful string manipulations.
WF 7.6.2, WinNT/2K, MSSQL 2K, MSOLAP 2K, BID
Posts: 79 | Location: Moscow | Registered: April 27, 2007
While I am not opposed to change, I believe that the adage "If it ain't broke, don't fix it" applies very well. They could add some additional functionality to DM that may make some things easier - and then you have more DM commands that you needs to know i.e. more complexity. I could simply ignore the new stuff if I chose to do so.
With the handful of DM commands that currently exist, all of the funtionality mentioned above can be accomplished. It has existed for thirty-some years with little change, which can be said for VERY few languages/software packages. The highly complex applications I have created simply would not be possible without DM, so in my mind, the FOCUS language and DM are inseparable.
Like butter and toast - if I can't have butter on my toast, I'll skip the toast for today.
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
As one who got started with those 'oldies' like BAL, RPG, Fortran, PL/1, COBOL, Clist, and EXEC (and never got into the new stuff like Java, Perl, C, and C++), I think of DM as the programming language that writes your program code.
Programming your program ... what a concept, what flexability, what power!
WIN/2K running WF 7.6.4 Development via DevStudio 7.6.4, MRE, TextEditor. Data is Oracle, MS-SQL.
Posts: 154 | Location: NY | Registered: October 27, 2005
Don't know about the purity of DM, but it certainly enables the good old-fashioned focus users to do whatever they need to do. And yes, maybe it would be nice to have some funtionality added that could make our life a little bit easier. Until then we;l just keep on using our existing knowledge of the language and be happy with it.
GamP
- Using AS 8.2.01 on Windows 10 - IE11.
in Focus since 1988
Posts: 1961 | Location: Netherlands | Registered: September 25, 2007
I'm a fan of python. And I'm thinking now about writing python-FOCUS bridge. Python for IO, SOAP, string manipulation (generation FOCUS statements on fly, master-file definitions on fly, SQL on fly) , FOCUS - for databases and final output.
When I get results, I'll wrote about this.
Best regards, Alex
WF 7.6.2, WinNT/2K, MSSQL 2K, MSOLAP 2K, BID
Posts: 79 | Location: Moscow | Registered: April 27, 2007
And a little caveat for Jodye. I know that DM will accept -IF &X=1 THEN GOTO ... but the correct syntax is -IF &X EQ 1 THEN GOTO ... Also a semi-colon should not appear after a label.
You know what.. I have a nasty habit of sometimes using EQ and sometimes =. It gets me into trouble all the time. And I always use a semicolon with a label and it always works. I guess it is not required though.
I agree with everyone else. DM feels like it is super old... with the gotos. But you can accomplish anything.
Reminds me of learning BASIC in school. Hey anyone else remember LOGO? Man I used to have fun with that in 1983 or so...
I too, would very much like to see a PERFORM command in Dialog Manager.
I've gotten used to that type of program structuring in Maintain and other languages.
I believe that it promotes better code, both for ease of design, writing, self documentation, and later maintenance. Sure I can write programs with -GOTO's, but I've never been happy with them since I got used to performs, functions, procedures, and such. If IBI can expand DM without a lot of pain, they should do so.
Its not like they have a Microsoft-like lock on the BI market, they need to do all they can to make WebFocus a better product, for many types of programmers !
Tony, A roundabout way to say, toungue-in-cheek, that in 99% of the procedures, a PERFORM is not really necessary. Wouldn't you agree? BTW, coming to the Summit?
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF
Posts: 1980 | Location: Tel Aviv, Israel | Registered: March 23, 2006