IBI S390 Focus v7.3.1 Preview Slides
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

IBI S390 Focus v7.3.1 Preview Slides

on

  • 1,690 views

 

Statistics

Views

Total Views
1,690
Views on SlideShare
1,690
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Welcome everyone. Before I begin I’d like to survey the room. By a show of hands, please tell me if your main FOCUS operating platform is VM?…MVS?…Anyone here using MSO? AS OF SEPT, 7.3 is due out by end of year. We’re getting close, but for now, any feature we discuss today could be modified in some way by the time we actually release. See slide 3 for details of how to progress through this presentation.
  • “ Here’s the list of features! There will be a test afterwards. Should I show that again?” See next slide for details of how to progress through this presentation. On Powerpoint XP, the slide timer will forward this slide to the next slide after 2 seconds. On previous Powerpoint versions, you have to press the slide-forward key (whichever one you use).
  • “Note the volume of features here. We will be going through every single one of them in extreme detail today. Only kidding. But we will cover a lot of them, and certainly all the ones you are interested in for your site or applications.” *** NOTE FOR PRESENTER *** The presentation is intended to go through a specific set of features first, then bring you back to this slide for then random selection of whatever is of interest. The key features are NOT in slide order – they are spread all over the presentation. So, USE THE “NEXT KEY FEATURE” button at the bottom left of the screens to move from key feature to key feature. If you click (or otherwise) anywhere else on any screen, it will just move to the next slide which is not the next key feature. The last key feature has the same button but takes you back to this slide. On some slides that have transitions within the slide, note that the Next Key Feature button slides in from the left after all transitions on that slide are done. Otherwise, it would be confusing if the Next Key Feature button appears up front – in the heat of presenting, you might not remember if that slide even has transitions. So if you clicked either the slide itself or the button, you might either jump to the next key feature prematurely, or move to the physically next slide by accident. This way, it only pops up when the slide is done. To modify the key features as set up (that is add, subtract or rearrange from the chain), you have to modify where the buttons’ hyperlinks go for the slides in question. Select the Next Key Feature object on the proper slide, right click it, select Action Settings, and follow the prompts to change its destination to the next slide you want. Run it to make sure each one chains to the right place and the last one chains back to this slide. Also, you should remove the button from any slide that is no longer in your chain. To add one to a different slide, just copy/paste one from any other slide and just change the target hyperlink as described above.
  • Let’s talk about new features for TABLE.
  • You will be allowed to do up to 16 FOLD-LINE requests in one request. Previously you were only allowed one. Each FOLD-LINE will be indented an additional two spaces.
  • Since day 1, a BY field shows the instance only on the first row. It was always an easy but annoying workaround to get it to show on every row. Like PRINT field BY FIELD NOPRINT. Now you can get it with a SET.
  • We’re adding the ability to use prefix operators such as MAX, MIN and CNT at the sub-total and total levels. In many cases this will forgo the need to do cumbersome formatting of RECAP and SUBHEAD/FOOT statements. One thing to be careful of is that these calculations are done post-retrieval so operators like CNT and AVG may calculate a bit differently than you’d expect. Let’s look at the following example…See how this report sums the counts of model at the sub and grand total levels. However, when we add the CNT prefix operator to count the models at the subtotal level, it is happening after summation and the count only sees 2 lines for each country and displays the count accordingly. This can be a very useful tool. You just need to be cognizant of whether you’re getting individual records or combined data, just as you do today when considering whether to use DEFINEs and COMPUTEs.
  • Who has not wanted this forever? Takes a little extra processing to determine the last page before it can put it on the first one. We’ll talk about &FOCNEXTPAGE next.
  • Now you can make consecutive reports look like one report by having control over the page numbering. You can SET the number of the first page of report to any number you wish with SET FOCFIRSTPAGE. You can also capture the last page of a report plus one from &FOCNEXTPAGE. Thus the SET in the example.
  • IN-GROUPS-OF has always been there to group ranges of values. But it only shows the lowest value of the range, with the highest value merely implied by the lowest value of the next range. So IN-RANGES-OF lets you show the low and high values of each range. Convenient.
  • 2 We’ve added a new variation for the display of negative numbers in this release. You can now have the minus sign appear to the right of the value instead of the traditional left side. This is now in addition to having the negative values either within brackets or shown with a CR or credit notation. I know of no syntax conflicts having a minus sign in a field’s format in a calculation.
  • Sometimes you’ve wanted to separate pages of a report by a Cover Page of sorts. Difficult to do. Now NEWPAGE makes it easy. I suppose you could also take advantage of the previous slides of FOCNEXTPAGE, etc. to do this, but still with more effort.
  • NF964 for more info Single Exponential Smoothing * Double Exponential Smoothing * Triple Exponential Smoothing * Linear Regression Column * Graphing
  • This next feature expands upon the FORECAST feature we introduced in our 7.2 release. Part of that feature was the ability to do a simple linear regression. We’ve now added the ability to perform multiple regression with up to 3 independent variables.
  • Another stylesheet enhancement is the alignment of the decimal point when field values are used in heading and footings. I’m sure many of us have built reports using NOPRINT and then using headings and footings to customize the look of the report. It can be hard to line up the decimal places when using proportional fonts. This feature takes care of that for you.
  • Until now, if you had multiple PDF or Post script reports you needed to print out it would involve downloading each individual report file and printing each separately. Now we give you the capability to stack these reports one after another in one file and it will display or print one after another. This is a real convenience when you need to ship multiple reports via a medium such as e-mail.
  • Many new STYLESHEET enhancements have been carried over from WebFOCUS.
  • This is an example of only one of them, showing the grid lines in a report.
  • Several improvements to performance have been added for 7.3. Let’s look.
  • There will be a new and more efficient DEFINE compiler introduced in 73. Instead of compiling every define in your focexec, we will now evaluate the request at TABLE time and only compile those Defines directly or indirectly called by the focexec (that is, one may be used only to calculate another that actually displays). The biggest impact comes with reports that aggregate a few fields that are created from a large number of DEFINEs This Expression Compiler only works for DEFINEs, it does not affect WHERE, COMPUTE in TABLE or COMPUTE in MODIFY. The old compiler - COMPUTE=NEW does affect these areas
  • You can now store up to 99 Master file descriptions in memory using the new SAVEDMASTERS setting. You will get savings from each subsequent TABLE request since the master does not need to be re-parsed. This is similar to the LOAD command we use today. With the LOAD command however you had to explicitly declare which masters you wanted to load to memory. This new feature manages the masters as you use them as the example shows. Does it work for masters on SU?
  • Better support of CLOB and VARCHAR fields via TX fields.
  • USERFCHK lets you control how much error checking is done for the out-format in the function formula. This is typically the last item in the formula. You can set it from OFF which will attempt to evaluate the function in most circumstances, all the way to FULL which attempts to fix any length problems including DEFINEs in an MFD.
  • READLIMIT is like RECORDLIMIT for a FOCUS file. It will ask the rdbms to extract only as many rows as is needed to pass back the requested number. So if you only ask for the first 2 rows of MPG>20 to be returned, the rdbms may have to look through 10,000 rows to find them, but only 2 will pass back. Before, it passed back all MPG>20 rows and, via RECORDLIMIT, we only took the first 2 – that was wasteful.
  • We continue to extend the reach of mainframe FOCUS beyond the mainframe itself, allowing you to move your data into formats used by other popular PC products in use today.
  • Here’s a feature I know many of you have been waiting awhile for. The Excel 2Kformat is far superior to the previous Excel format. As you can see from the example code shown, format Excel gives you just a simple dump of your data in columns and rows. No stylesheet formatting was supported and any sort totals or grand totals were ignored. Now, with Excel 2K, that has all changed. Stylesheet attributes are now supported as well as headings/footings. Sort break and grand totals are also displayed.
  • FOCUS has supported stylesheets that allowed to you to build presentation quality reports in HTML, PDF or Post Script format. Now we’re adding support for the Cascading StyleSheet standard, which will enhance your control of HTML reporting. You do this by creating a file that establishes the rules you want to apply and declare them within the stylesheet section of your focexec
  • We’ve added a number of enhancements to our Financial Modeling Language or FML as it is more commonly known. Over the years it has also been known as EMR or Enhanced Matrix Reporting and also as FRL or Financial Reporting Language. Whatever you know it as, this is probably one of the most flexible yet under-utilized features of the FOCUS product. It allows you to create an almost spreadsheet like report easily referencing columns and rows, ideal for standard reports such as Balance Sheet or Cash Flow statements. But I have used this for all types of reports over the years in both FOCUS and WebFOCUS. One of the nuisances has been the inability to directly refer to a data instance more than once. You had to assigned a label to the row and then refer to the label for later use. With the new setting of FORMULTIPLE, data rows may be referred to as many times as required within the request to aid in summation. If you want to do other arithmetic operations then you’ll still need to refer to labels but this is a long awaited enhancement and we’re happy to deliver it to you.
  • All this leads to the most exciting new feature we have in the FML area called FML Hierarchy. Until now, FML required you to explicitly state what was supposed to go onto every line of the report. This new feature allows you to dynamically generate FML code when joined with a table that represents a hierarchical relationship of your data, such as a chart of accounts or organization chart. The lower level data is mapped to its parent using new master file elements. The syntax drills down into this lower level and generates as many lines of code necessary for up to 99 levels deep in your structure. If you add or delete a department or account you no longer have to worry about changing your FML report to accommodate this. It can now happen automatically.
  • Pick up the FOR value of that row to use in a calculation on that row. In this example, FMLINFO picks up the row value of GL_ACCOUNT.
  • INDENT is like other row attributes like BAR, UNDERLINE, etc. This can be used on any FML report, not just FML Hierarchy.
  • Only for FML Hierarchy
  • In the past if you put data into a HOLD file and then queried that file you would not know if an instance was blank or null unless the original master file description included the MISSING=ON attribute. With the new SET command HOLDMISS you can force the MISSING ON attribute into each of the fields and then your subsequent queries will then show those instances that were truly null.
  • Many of us have used the NODATA setting to replace the default missing value of “dot” in a report. Whether it be 0 or N/A or some other value, we used this to give some clarity to the report. Unfortunately, if you held the data, the NODATA setting was not respected. This has been solved using a new setting, HNODATA. Now, when you hold your data in FORMAT ALPHA, the held file will carry forward the value of HNODATA.
  • By SETting NULL to ON, you can generate two consecutive commas in your HOLD file to depict a missing value, as opposed to a misleading blank.
  • Regular HOLD formats have always been generated in BINARY format where non-alpha data was not readable when editing the HOLD file. SAVE files always generated readable files, but no Master. Now you can tell FOCUS to put out the HOLD file in Alpha format with a Master.
  • The FOCUS and XFOCUS files structures are now more flexible than before.
  • What is XFOCUS? XFOCUS is essentially a much larger FOCUS database, suitable for true Data Warehouse size. It was initially conceived as a XML repository for documents to be used through our iWay offerings. But now we are releasing it as a full blown database. The FOCUS file limit is now 2-gig as of 7.2. The XFOCUS file size limit is now 16-gig. And since you can partition a FOCUS or XFOCUS database into 255 partitions, each up to 16-gig, you can have a 4 terabyte file – truly Data Warehouse size, right? Being virtually identical to FOCUS files with some changes we will discuss, you could easily convert your FOCUS databases today into XFOCUS databases without changing any of your application focexecs – it should be completely transparent to them. Just convert them using the existing REBUILD DUMP/LOAD utility.
  • Let’s compare FOCUS files with XFOCUS files. Since the page size is 4-times larger, you would think the physical file would grow by 4x – from 2-gig to 8-gig. But since the internal pointers were also made larger, we can actually count more pages now, so the 8-gig is actually 16-gig. Segment names were made larger to accommodate XML tags that we expect to generate as part of our ixte XML repository product.
  • No fancy or new conversion mechanisms needed. Just REBUILD and change the suffix.
  • Since the initial applications for such a large file are expected to be non-transactional, preferring bulk loads, the initial release of XFOCUS will not support SU. This and other items listed here not supported today may be added as we get feedback on the usage and need of the XFOCUS file size.
  • 17 17 An MDI of 3 dimensions is visually clear. More than that requires Einstein’s help. But it is certainly possible to do. [FORWARD] With a data point along each axis selected, they converge at a point somewhere within the cube, identifying the exact record instantly and follows that record’s pointer directly to the data. Very fast. We have seem 90% speed improvement on some benchmarks. One customer using MDI with FUSION where MDI began found a search of several hours dropped to 3 seconds!
  • Notice that in the Access file, we specified a 3-dimensional index of CAR, COUNTRY and MODEL. Recall the cube on the right. Now the TABLE does a WHERE on 2 of the 3 fields in the MDI. This is another bonus of an MDI - you can use any subset of the MDI. In a non-MDI situation, if you had CAR and COUNTRY just indexed, the TABLE would use the index on COUNTRY and search the rest sequentially through CAR. Now you see where MDI speed kicks in.
  • For XFOCUS files only, The Segment name can now be up to 64 characters long instead of the old limit of 8 characters. Could be useful for more descriptive names, since the ability to put a Description at the segment level is not available (yet – being discussed for the next release). Really needed right now for the XML repository.
  • In FOCUS files, though a fieldname may be up to 66 characters, those fields used also for indexes could only have names up to 8 characters. The redesigned File Directory Table (FDT) for the new XFOCUS allows the full field name to be used.
  • GROUP fields have been in common use in the rdbms interface world for many years, to merge consecutive fields into one logical field for simpler handling. It has actually worked for the most part for FOCUS files also for years, but it was never fully confirmed and advertised until now. Here it is.
  • You’ve been able to declare in your MFDs the dataset name of the file you’re using to avoid having to do an ALLOCATE. You’ll now also be able to declare a dataset name for each segment in a file. This is the same as using the LOCATION attribute but now you will not have to pre-allocate the LOCATION file.
  • We have a new MFD Fieldtype attribute. Fieldtype=R will tell FOCUS that this field should be treated as READ Only. Any requested via MODIFY or Maintain to update this field will be ignored. An example of a field you may want to assign this fieldtype to is a column that auto increments.
  • Another one of those output format variations. TAB puts out a flat file with tab characters as value separators. TABT that came out in 7.2 is identical except it also puts out a first record containing the name of the fields (like COMT that uses comma separators).
  • Other than TX fields, we never had a good representative for variable length fields of rdbms’s we talk to – which is all of them. Now, AnV is here. The ‘A’ is for alpha and the ‘n’ is from 1 to 4096 as usual. The added ‘V’ tells FOCUS that the field may vary in length up to the ‘n’ value. To accomplish this, AnV fields add an extra first byte to the value. This byte contains the numeric length of the actual string. So an A8V is actually 9 bytes long in storage. But it neither prints nor is it accessible by string-manipulation functions. For example, SUBSTR of the first character will skip that byte and give you the first position of the string itself. Remember, in determining what fits in a segment, FOCUS must assume the maximum in its initial calculations.
  • We are always raising limits all over FOCUS as people want to do more and more with it. Some limits have moved up incrementally, like number of fields in a report from 96 to 256 to 495 to 1024. Some limits have moved in one step from an absolute number to whatever your memory will allow.
  • Many of us have hit this limit. And everyone has worked around it, as shown here. Now you don’t have to. Programmers denied the hard limit of 17, and refused to explain it to us - let’s just be happy its gone.
  • We’re raising the limit on the number of files you can COMBINE in a MODIFY up to 63 from 16.
  • You’ll now be able to use strings greater than 80 characters in length using amper variable substitution.
  • Even without the new segment name limit of 64 characters, you were not able to specify the maximum possible string before. Now you’ve got it. You do need Wide Line Focexecs or Long Amper Variables to do this though.
  • We’ve raised the limit of the number of values retrievable by each ACROSS phrase from 95 to 1,056. You still may only have 5 ACROSS phrases per report request. As with 1,024 Verb Objects, there are certain limiting factors which may prevent you from reaching exactly 1,056. Hopefully between the two it will suffice for a while.
  • The number of verb objects you can reference goes up to 1,024 from 495. How many you can actually get in a specific report are subject to the limitations such as fields indirectly called in a via a DEFINE or a COMPUTE. Bless the person who can print a report with 1024 fields in it. This is really useful for one-shot extractions to a data warehouse. Those of you with Pooled Tables are still limited to 1024 total fields across all tables pooled.
  • Before, there just was not room for a SUBHEAD or SUBFOOT on every BY. And with the advent of WHEN, the need became even greater. So the limit is up’ed to 64 blocks of text, up to 32k total space.
  • With many fields to print and up to 5 lines of text per field in a heading, space ran out quickly for column titles. Now it is up to your memory capacity.
  • Partitions for external index was arbitrarily limited to 120. Now it can go up to the room available in your FCT during your session.
  • We’re adding a new system variable &FOCUSER to capture the current User ID. This is less cumbersome than the GETUSER function we use in 7.2 and prior releases.
  • Focexecs, masters and access files have always been limited to 80 character widths. This was always a natural mainframe limitation. But with other platforms in common use having no such limitations, and the increasing desire to run routines across platforms, we extended the allowable width of these files to 32k. That means that anything that syntactically does not require separate lines can be put on one line.
  • Here are some examples.
  • Since TED does not support >80 character files, we added IEDIT as a generic name to get you to the editor on your system, whether that is XEDIT on vm or ISPF on mvs, to work with the wide file lines. The convenience we added is several TED-like functions that you probably have learned to take advantage of with TED.
  • Now you can allocate the next generation data set with +1.
  • Several enhancements to MAINTAIN to talk about.
  • You can now reference your MAINTAIN only procedures under a separate DDNAME In MVS or FILETYPE in VM and execute them directly using the new MNTCON syntax. This makes it easier to identify MAINTAIN procedures from your other FOCEXECs.
  • We’ve added some new screening conditions for MAINTAIN procedures. These give you the ability to choose records that are NOT in a given list of values and also to mask out a portion of the value you are testing.
  • You’ll be able to issue certain FOCUS SETs within your MAINTAIN procedure. Here is the list of settable options:
  • Are there any questions? Please remember to fill out your evaluations. I’d appreciate any written comments for my own sake or suggestions to improve the presentation itself. I have my business card up here for anyone who wishes to take one. Thank you very much, please remember to stop by our booth and enjoy the rest of your time with us.

IBI S390 Focus v7.3.1 Preview Slides Presentation Transcript

  • 1. DN 9602 000.0001 Information Builders October, 2003 1 FOCUS 7.3 Product Update Note: Until 7.3 is officially released, features listed in this presentation are subject to change or removal.
  • 2. FOCUS Release 7.3 – Parade of New Features Parade of New Features TABLE REPORTING Multiple FOLD-LINEs Display BY value on every row Prefixes on summary lines Display last page # on all pages Display PAGE n OF max IN-RANGES-OF Right-side minus sign display Create cover pages Extensions to FORECAST Multivariate regression forecast NORMSINV and NORMSDST Decimal alignment in headings Multiplereports in one PDF/PS Text field enhancements Stylesheet enhancements PERFORMANCE BOOSTERS New DEFINEs Compiler Parse masters only once User function argument checker Optimized TX search in rdbms DB2 FETCH FIRST n ROWS OUTPUT MECHANISMS Working with EXCEL 2000 Cascading Stylesheets FML Hierarchy Reuse FOR values in FML Use FOR value in calculations FML INDENT Indenting FML hierarchy NODATA char in HOLD Missing values in HOLD SET NULL=ON HOLD in alpha or binary DATABASE and MASTER XFOCUS database Long segment names Long index names Multi-dimensional index (MDI) GROUPs in FOCUS masters DATASET at segment level Read-only fields in master TAB-delimited files Varchar support - AnV RAISED LIMITS Unlimited IF/THEN/ELSE 63 MODIFY COMBINEs Long amper variables Long qualified fieldnames More ACROSS values Increased row size for rdbms 1024 display fields More sort headings/footings Increased column title space More external index partitions OPERATING SYSTEM &FOCUSER userid variable Wide line files and IEDIT Relative GDG +1
  • 3. FOCUS Release 7.3 – Parade of New Features OUTPUT MECHANISMS 20 Working with EXCEL 2000 21 – Cascading Stylesheets 22 FML Hierarchy 23 – Reuse FOR values in FML 24 – Use FOR value in calculations 25 – FML INDENT 26 – Indenting FML Hierarchy 27 Missing values in HOLD 28 NODATA char in HOLD 29 HOLD in alpha or binary TABLE REPORTING 01 Multiple FOLD- LINEs 02 Display BY value on every row 03 Prefixes on summary lines 04 Displaying PAGE n OF max 05 First page and last page #s 06 IN-RANGES-OF 07 Right-side minus sign display 08 Create cover pages 09 Extensions to FORECAST 10 Multivariate regression forecast 11 NORMSINV and NORMSDST 12 Decimal alignment in headings 13 Multiple reports in one PDF/PS 14 Stylesheet enhancements DATABASE and MASTER 45 XFOCUS database 46 – Long segment names 47 – Long index names 48 Multi-dimensional index (MDI) 49 GROUPs in FOCUS masters 50 DATASET at segment level 51 Read-only fields in master 52 TAB-delimited files 53 Varchar support - AnV PERFORMANCE BOOSTERS 15 New DEFINEs Compiler 16 Parse masters only once 17 User function argument checker 18 Optimized TX search in rdbms 19 DB2 FETCH FIRST n ROWS RAISED LIMITS 36 Unlimited IF/THEN/ELSE 37 63 MODIFY COMBINEs 38 Long amper variables 39 Long qualified fieldnames 40 More ACROSS values 41 1024 display fields 42 More sort headings/footings 43 Increased column title space 44 More external index partitions MAINTAIN 33 MNT filetype /extension 34 FOCUS SETs from Maintain 35 New screening in MAINTAIN OPERATING SYSTEM 30 &FOCUSER userid variable 31 Wide line files and IEDIT 32 Relative GDG +1 Next Slide Next Key Feature
  • 4. TABLE REPORTING TABLE Reporting FOCUS 7.3
  • 5. Multiple FOLD-LINE
    • Specify up to 16 FOLD-LINE clauses in a TABLE request
    TABLE FILE PRINT field1 field2 field3 FOLD-LINE field4 field5 field6 field7 FOLD-LINE field8 field9 END RESULT field1 field2 field3 field4 field5 field6 field7 field8 field9 Indent 2 spaces
  • 6. Show BY Values on Every Line SET BYDISPLAY
    • Display the sort field values on all lines of a report
    • For STYLE’d output only, including EXL2K, HTML, PDF, PS
    • Avoid the PRINT FNAME … BY FNAME NOPRINT game
    SET BYDISPLAY=ON TABLE FILE CENTHR PRINT LNAME PLANT BY FNAME UNDER-LINE ON TABLE HOLD FORMAT EXL2K END FNAME LNAME PLANT ----- ----- ----- DAVID SMITH SOUTH DAVID JONES NORTH DAVID MCKNIGHT EAST --------------------------- MARK SMITH WEST MARK GREENSPAN NORTH TABLE FILE CENTHR PRINT LNAME PLANT BY FNAME UNDER-LINE ON TABLE HOLD FORMAT EXL2K END FNAME LNAME PLANT ----- ----- ----- DAVID SMITH SOUTH JONES NORTH MCKNIGHT EAST --------------------------- MARK SMITH WEST GREENSPAN NORTH Next Key Feature
  • 7. Prefix Operators on Summary Lines
    • Use with SUBTOTAL, SUB-TOTAL, RECOMPUTE and SUMMARIZE at both the sort break and grand total levels
    • Summed values become the detail lines in the report:
    • ASQ. AVE. SUM. CNT. FST. LST. MAX. MIN.
    MODEL COUNTRY CAR COUNT ------- --- ----- ITALY ALFA ROMEO 3 MASERATI 1 *TOTAL ITALY 4 W GERMANY AUDI 1 BMW 6 *TOTAL W GERMANY 7 TOTAL 11 TABLE FILE CAR SUM CNT.MODEL BY COUNTRY BY CAR ON COUNTRY SUB-TOTAL WHERE COUNTRY IS 'ITALY' OR 'W GERMANY' END CNT. MODEL MODEL COUNTRY CAR COUNT ------- --- ----- ITALY ALFA ROMEO 3 MASERATI 1 *TOTAL ITALY 2 W GERMANY AUDI 1 BMW 6 *TOTAL W GERMANY 2 TOTAL 4 Count of instances after Summarization Space after the prefix (syntax requirement) Back to Feature List DONE Total of all Counts
  • 8. Capture the Last Page of a Report TABLASTPAGE Notes: &FOCNEXTPAGE is set to TABLASTPAGE TABLE FILE CAR HEADING &quot;PAGE <TABPAGENO OF <TABLASTPAGE </1&quot; SUM DCOST BY COUNTRY PAGE-BREAK ON TABLE HOLD FORMAT HTML ON TABLE SET STYLE * TYPE=REPORT,FONT=ARIAL,$ ENDSTYLE END Page 4 of 4 Page 3 of 4 Page 2 of 4 Page 1 of 4 REPORT
    • Supported for FORMAT HTML/PDF/PS only
  • 9. Capture and Adjust Page Numbers FOCFIRSTPAGE and &FOCNEXTPAGE
    • FOCFIRSTPAGE – SET variable declares the first page number of a report
    • &FOCNEXTPAGE – reserved amper variable set to one greater than the last page number of the last report
    Page 5 Page 3 TABLE FILE PRINT … HEADING “ PAGE <TABPAGENO “ END -RUN (&FOCNEXTPAGE automatically set to 4) SET FOCFIRSTPAGE = &FOCNEXTPAGE TABLE FILE PRINT … HEADING “ PAGE <TABPAGENO “ END Page 2 Page 1 REPORT 1 Page 4 REPORT 2 Make multiple reports look like one! Next Key Feature
  • 10. Display the Entire Range IN-RANGES-OF
    • Display the min and max of a range of values
    • Similar to IN-GROUPS-OF
    TABLE FILE EMPLOYEE PRINT LAST_NAME BY CURR_SAL IN-RANGES-OF 5000 END CURR_SAL LAST_NAME -------- --------- 5000.00 - 9999.99 SMITH GREENSPAN 10000.00 - 14999.99 STEVENS SMITH 15000.00 - 19999.99 JONES MCCOY MCKNIGHT TABLE FILE EMPLOYEE PRINT LAST_NAME BY CURR_SAL IN-GROUPS-OF 5000 END CURR_SAL LAST_NAME -------- --------- 5000.00 SMITH GREENSPAN 10000.00 STEVENS SMITH 15000.00 JONES MCCOY MCKNIGHT IN-GROUPS-OF (for comparison)
  • 11. Right-Side Minus (-) Display Option
    • Put the minus sign on the right side of negative numbers
    TABLE FILE PRINT FIELDA/ I 8 FIELDB/ I 8B FIELDC/ I 8R FIELDD/ I 8- BY COUNTRY END COUNTRY FIELDA FIELDB FIELDC FIELDD ENGLAND -123 (123) 123 CR 123- FRANCE -1234 (1234) 1234 CR 1234- GERMANY -2 (2) 2 CR 2- RUSSIA -125 (125) 125 CR 125- Bracket negative Default negative Right-side negative Credit negative
  • 12. Create Cover Pages NEWPAGE
    • Pagebreak after a subhead or before a subfoot
    • Create a “cover page” for each section
    TABLE FILE CENTORD SUM LINEPRICE AS ‘ ‘ QUANTITY AS ‘ ' BY REGION NOPRINT PAGE-BREAK BY STATE AS ‘ ' ON REGION SUBHEAD NEWPAGE &quot;<REGION REGION&quot; END PAGE 1 EAST REGION PAGE 2 CT $16,238,158.37 65,979 DC $70,928,546.26 274,714 DE $2,500,849.39 10,226 MA $34,010,314.29 131,956 MD $24,978,362.10 94,827 PAGE 3 NORTH REGION PAGE 4 IA $2,469,227.24 10,068 IL $34,444,984.60 134,351 IN $12,477,236.78 50,124 KS $2,136,103.34 7,870 MI $47,979,137.95 191,671
  • 13. FORECAST Extensions
    • EXPAVE “bootstraps” the last real data value as a factor in every predicted value
    • Double and triple exponential smoothing for trends and seasonal adjustments
    • SUM with REGRESS creates a new report column with the regression based on the summed values
    • GRAPH facility supports FORECAST
    Single Exponential Smoothing * Double Exponential Smoothing * Triple Exponential Smoothing * Linear Regression Column * Graphing * ON TRANSDATE RECAP SEASONAL/D10.1 = FORECAST (TRANS,1,3, 'SEASONAL ' , 3,3,1000,1);
  • 14. Perform Multi-Variate Regression Forecasting REGRESS
    • REGRESS method derives a best-fit linear equation for a set of numeric data points
    • Can be based on 1, 2 or 3 independent variables
    • Creates a new column in the report
    DEFINE FILE GGSALES SDATE/YYM = DATE; SYEAR/Y = SDATE; END TABLE FILE GGSALES PRINT BUDUNITS AS ‘Budget,Units’ UNITS AS ‘Unit,Sales’ BUDDOLS AS ‘Budget,Dollars’ DOLLARS AS ‘Dollar,Sales’ WHERE CATEGORY EQ ‘Coffee’ WHERE REGION EQ ‘West’ WHERE UNITS GT 1670 AND UNITS LT 1700 END Budget Unit Budget Dollar Units Sales Dollars Sales EST ------ ----- ------- ------ ----- 1796 1696 17960 25440 24428 1825 1695 23725 25425 23018 1613 1685 22582 18535 20954 1568 1682 23520 25230 20167 1665 1678 21645 23492 22021 1457 1671 21855 20052 19528 1662 1674 24930 18414 21043 1653 1694 21489 16940 21611 ON TABLE RECAP EST/F8 = REGRESS (3,BUDUNITS,UNITS, BUDDOLS, DOLLARS);
  • 15. NORMSINV and NORMSDST Functions
    • NORMSINV – Returns upper boundary of standard normal curve (inverse of NORMSDST)
    NORMSD/D12.5 = NORMSDST ( Z, ‘D8’); NORMSI/D12.5 = NORMSINV (NORMSD,’D8’); SIZE/D12 = NORMSI * STDEV + MEAN; Equivalent to the Excel functions NORMSDST - Calculates cumulative standard normal distribution function
  • 16. Decimal Alignment in Headings
    • Align decimal points in a multi-line heading or footing
    • Supported for FORMAT HTML/PDF/PS reports only
    TABLE FILE BY REGION NOPRINT SUBHEAD &quot;SALES FOR: <REGION &quot; &quot; &quot; &quot;Units: <JUNITS&quot; &quot;Dollar Sales: <JDOLLARS&quot; &quot;Budgeted Sales: <JBUDDOLLARS&quot; ON TABLE SET PAGE-NUM OFF ON TABLE HOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * TYPE = REPORT, GRID=OFF, $ TYPE=SUBHEAD, ITEM=1, WIDTH=1.5,$ TYPE= SUBHEAD , ITEM=2, WIDTH=2, JUSTIFY=DECIMAL(1), $ END SALES FOR: Midwest Units: 905,045. Dollar Sales: 11,400,665.00 Budgeted Sales: 11,194,373.00000 SALES FOR: Northeast Units: 916,675. Dollar Sales: 11,392,310.00 Budgeted Sales: 11,576,932.00000 SALES FOR: Southeast Units: 935,232. Dollar Sales: 11,710,379.00 Budgeted Sales: 11,807,981.00000 HEADING, FOOTING, SUBHEAD, SUBFOOT, TABHEADING, TABFOOTING
  • 17. Compound Reports in one PDF/PS File OPEN/CLOSE
    • Combine multiple reports into a single PDF or PS file
    • Make separate pages or one continuous report
    • Combine any output formats with PDF/PS
    TABLE TABLE TABLE PDF EXL2K HTML PDF ON TABLE PCHOLD FORMAT {PDF/PS} { OPEN/CLOSE } NOBREAK Next Key Feature
  • 18. Stylesheet Enhancements
    • Cascading Stylesheets
    • Compound Reports in one PDF / PS file
    • GRID = ON / FILL / OFF
    • WRAP = ON / OFF
    • PAGECOLOR = color
    • STYLE = [+/-] UNDERLINESET
    • SET PSPAGESETUP = ON / OFF
    • SET STYLEMODE = PAGED
    • Row/Cell Borders With Style/Color
    • Stylesheet Macros
    • Conditional Styling
    • TOPGAP / BOTTOMGAP Around Report
    • Heading / Footing Element Alignment
    • Styling capabilities of WebFOCUS are now in mainframe FOCUS
    Direct from WebFOCUS
  • 19. Stylesheet Enhancements Example
    • TABLE FILE GGSALES
    • SUM UNITS DOLLARS
    • ON TABLE HOLD FORMAT HTML
    • ON TABLE SET PAGE_NUM OFF
    • ON TABLE SET STYLE *
    • TYPE=REPORT, GRID=FILL ,$
    • END
    Next Key Feature
  • 20. PERFORMANCE BOOSTERS Performance Boosters FOCUS 7.3
  • 21. New Compiler for DEFINEs SET DEFINES
    • New, more efficient compiler
    • Compiles only the DEFINES needed to run the request
    • Compiles at runtime of TABLE, not at DEFINE parsing
    SET DEFINES = COMPILED DEFINE FILE CAR CNTRY3/A3 = EDIT(COUNTRY,’999’); PROFIT = RCOST – DCOST ; FEET = LENGTH / 12 ; END TABLE FILE CAR PRINT LENGTH RCOST DCOST FEET PROFIT BY COUNTRY BY CAR BY MODEL END Compiles FEET and PROFIT but not CNTRY3 Next Key Feature
  • 22. Parse Masters Only Once SET SAVEDMASTERS
    • Up to 99 parsed masters may be stored in memory
    • Most effective with large MFDs reused many times during one session or job
    CODE SET SAVEDMASTERS=3 TABLE FILE CAR TABLE FILE EMPLOYEE TABLE FILE CAR TABLE FILE PERSONEL TABLE FILE JOBS TABLE FILE EMPLOYEE EFFECT IN MEMORY Stores CAR Stores EMPLOYEE Re-uses CAR; moves it to top of list Stores PERSONEL Stores JOBS (drops EMPLOYEE) Re-stores EMPLOYEE (drops CAR) Next Key Feature
  • 23.
    • IF criteria can now reference RDBMS variable character data types
      • VARCHAR, LONG VARCHAR, and CLOB – now up to 32K
      • Described in the Master with USAGE=TX, ACTUAL=TX
    • Read-only selection performed by RDBMS improves performance
    • Must use CONTAINS or OMITS against a TX field
    • In the SQL, CONTAINS becomes LIKE, and OMITS becomes NOT LIKE
    Optimize RDBMS Variable Length Character Data and Increase Row Size DONE FOCUS DB2 CLOB Field TX Field FILENAME=EMPINFO , SUFFIX=SQLDS ,$ SEGNAME=EMPINFO ,SEGTYPE=S0,$ FIELD=EMP_ID ,ALIAS=EID ,USAGE=A9 ,ACTUAL=A9 ,$ FIELD=LAST_NAME ,ALIAS=LN ,USAGE=A15 ,ACTUAL=A15 ,$ . . . . FIELD=JOBDESC, ALIAS=JDSC, USAGE=TX50, ACTUAL=TX ,$ FIELD=ED_HRS ,ALIAS=OJT ,USAGE=F6.2 ,ACTUAL=F4 ,$ TABLE FILE EMPINFO PRINT EMP_ID LN FN DPT CJC IF JOBDESC CONTAINS 'PR' END SELECT 1.&quot;EID&quot;,T1.&quot;LN&quot;,T1.&quot;FN&quot;,T1.&quot;DPT&quot;,T1.&quot;CJC&quot; FROM USER1.&quot;EMPINFO&quot; T1 WHERE (T1.&quot;JDSC&quot; LIKE '%PR%') FOR FETCH ONLY; FOCUS DB2 CLOB Field TX Field RDBMS column name
  • 24. Pre-Check Subroutine Arguments SET USERFCHK
    • Verify and fix arguments of FOCUS functions or DEFINE functions
    • Adjust the level of error checking of parameter lengths and type specifications
    • SET USERFCHK = ON / FULL / OFF / ALERT
      • ON (default) Attempts to fix a length problem.
      • If fixed, displays a warning; if not, displays an error
      • FULL Same as ON but also checks functions in MFD
      • OFF Turns verification off except in extreme cases
      • ALERT Same as OFF but a warning message is issued
    ADDRESS/A30 = ‘1600 PENNSYLVANIA AVENUE’; TOKEN3/A3 = GETTOK (ADDRESS, 20, 3, ' ', 10, TOKEN); (FOC36335) PARAMETER LENGTH CONFLICT IN FUNCTION name ARG number
  • 25. Support for READLIMIT in DB2 V7.1 FETCH FIRST n ROWS
    • TABLE FILE CAR
    • PRINT MPG SEATS BY MODEL
    • IF MPG GT 20
    • IF READLIMIT EQ 2
    • END
    SELECT T1.”MODEL”,T1.”MPG”,T1.”SEATS” FROM USER1.”CAR” T1 ORDER BY T1.”MODEL” FETCH FIRST 2 ROWS ONLY;
    • Allow DB2 to limit rows returned
    • Acts like RECORDLIMIT, but handled by DB2
    DONE
  • 26. OUTPUT MECHANISMS Output Mechanisms FOCUS 7.3
  • 27. Working with Excel 2000 HOLD FORMAT EXL2K
    • Supports most StyleSheet attributes
    • Allows for full report formatting
    • Displays heading, footings, subtotals
    TABLE FILE CAR HEADING &quot;FORMAT EXCEL OUTPUT </1&quot; SUM DEALER_COST BY COUNTRY SUBTOTAL MULTILINES BY CAR ON TABLE SET STYLE * TYPE=HEADING,STYLE=BOLD+ITALIC,$ TYPE=DATA,COLOR=RED,$ ENDSTYLE ON TABLE HOLD AS OUTEXC FORMAT EXCEL END TABLE FILE CAR HEADING &quot;FORMAT EXL2K OUTPUT </1&quot; SUM DEALER_COST BY COUNTRY SUBTOTAL MULTILINES BY CAR ON TABLE SET STYLE * TYPE=HEADING,STYLE=BOLD+ITALIC,$ TYPE=DATA,COLOR=RED,$ ENDSTYLE ON TABLE HOLD AS OUT2K FORMAT EXL2K END Also HOLD FORMAT EXCEL97 Next Key Feature DONE
  • 28. Cascading Style Sheets
    • Define formatting in statements called rules.
      • Example: BODY {background: yellow}
    • Control line height and letter spacing
    • Exercise more control over positioning items in a report
    • Generate more concise HTML output
    TYPE=REPORT, CSSURL=http://websrv2/css/report01.css, $ TYPE=HEADING, CLASS=headText, $ TYPE=TITLE, CLASS=reportTitles, $ TYPE=DATA, CLASS=lowCost, WHEN=N3 LT 27, $ BODY {font-family:Arial, sans-serif} TABLE {border:0} TD {border:0} reportTitles {font-weight:bolder; background:lightblue;} lowCost {color:green; font-style:italic;} headText {font-family:Times New Roman, serif; font-size:larger;text-lign:center} Stylesheet Commands External CSS File
  • 29. Reuse FOR Values on Multiple FML Rows FORMULTIPLE
    • Allows use of data value as the FOR object unlimited times
    • Reduces the need for RECAP statements to duplicate previous data lines
    DEALER_COST ----------- ENGLAND 37,853 FRANCE 4,631 ITALY 41,235 W GERMANY 54,563 TOTAL 138,282 TABLE FILE CAR SUM DEALER_COST FOR COUNTRY ENGLAND LABEL R1 OVER FRANCE LABEL R2 OVER ITALY LABEL R3 OVER ‘ W GERMANY’ LABEL R4 OVER RECAP R5=R1+R2+R3+R4; AS TOTAL END SET FORMULTIPLE=ON TABLE FILE CAR SUM DEALER_COST FOR COUNTRY ENGLAND OVER FRANCE OVER ITALY OVER ‘ W GERMANY ’ OVER ENGLAND OR FRANCE OR ITALY OR ‘W GERMANY’ AS TOTAL END Use Label References Reuse FOR objects DONE
  • 30. FML Hierarchy
    • Dynamically generate FML code based on a hierarchical relationship, such as a chart of accounts or org chart
    • Up to 99 levels deep
    • Two new Master File elements: PROPERTY, REFERENCE
    FIELDNAME =PRODUCT_MEMBER ,E04 ,A7 ,A07 ,$ FIELDNAME =PRODUCT_CAPTION ,E05 ,A18 ,A18 , PROPERTY = CAPTION , REFERENCE =PRODUCT_MEMBER, $ FIELDNAME =PRODUCT_PARENT ,E06 ,A7 ,A07 , PROPERTY = PARENT_OF , REFERENCE =PRODUCT_MEMBER, $ Used for “AS” name Parent Data Info Field Link
  • 31. Use FML Row Information FMLINFO Function
    • Returns the FOR value of a row in an FML report
    • Use in COMPUTE for drilldowns, sign changes, etc.
    Actual PRINT_AMT FORV ACTION Gross Margin -25,639,223 25,639,223 2000 CHANGED Sales Revenue -62,362,490 62,362,490 2100 CHANGED Retail Sales -49,355,184 49,355,184 2200 CHANGED Mail Order Sales -6,899,416 6,899,416 2300 CHANGED Cost Of Goods Sold 36,723,267 36,723,267 2500 UNCHANGED Variable Material Costs 27,438,625 27,438,625 2600 UNCHANGED SET FORMULTIPLE = ON JOIN ACCOUNT IN CENTGL TO ALL ACCOUNT IN CENTSYSF TABLE FILE CENTGL SUM NAT_AMOUNT/D10 AS ‘ ‘ COMPUTE PRINT_AMT/D10 = IF FMLINFO('FORVALUE','A7') LT '2500‘ THEN - NAT_AMOUNT ELSE NAT_AMOUNT ; COMPUTE FORV /A4 = FMLINFO('FORVALUE', 'A4') ; COMPUTE ACTION/A9 = IF FORV LT '2500' THEN 'CHANGED' ELSE 'UNCHANGED‘ ; FOR GL_ACCOUNT 2000 WITH CHILDREN 2 ADD AS CAPTION END Make PRINT_AMT the negative of NAT_AMOUNT for accounts < 2500 CENTGL contains the hierarchy for CENTSYSF hardcoded
  • 32. Indenting FML Reports INDENT
    • Indent FML tags, labels or captions by a specific amount
    TABLE FILE CENTGL PRINT GL_ACCOUNT_PARENT AS ‘Parent’ FOR GL_ACCOUNT 1000 AS 'Not Indented‘ OVER 2000 INDENT 5 AS 'Indented 5‘ OVER 3000 GET CHILDREN 2 INDENT 5 AS 'Hierarchy Indented 5' END Parent ------ Not Indented 1000 Indented 5 1000 Hierarchy Indented 5 3000 Hierarchy Indented 5 3100 Hierarchy Indented 5 3100 Hierarchy Indented 5 3100 Hierarchy Indented 5 3000 Hierarchy Indented 5 3200 Hierarchy Indented 5 3200 Explanation The label of the second row for tag value 3000 is indented five spaces. The GET CHILDREN phrase causes the first line of the FML hierarchy to indent seven spaces (five + two).
  • 33. Indenting FML Hierarchy SET BLANKINDENT
    • Specify the indentation between FML hierarchy levels
    • Valid in HTML, PDF and Postscript reports
    • Indents captions 0.125 or ‘n’ units per normal space
    • Use in conjunction with stylesheet commands SQUEEZE and POSITION
    SET BLANKINDENT = OFF | ON | number
  • 34. Differentiate Missing Data in HOLD File SET HOLDMISS
    • Distinguish in HOLD files between missing data and default values (blank for character data and zero for numeric data)
    TABLE FILE CAR SUM DCOST BY COUNTRY ACROSS SEATS ON TABLE HOLD FORMAT ALPHA END ENGLAND 11719 14940 11194 FRANCE 4631 ITALY 36320 4915 JAPAN 5512 W GERMANY 6000 48563 ENGLAND 11719 14940 11194 FRANCE . . 4631 ITALY 36320 4915. JAPAN . 5512. W GERMANY . 6000 48563 SET HOLDMISS=ON Blanks replaced by Missing character
  • 35. Declare NODATA Character for HOLD Files SET HNODATA
    • NODATA – Substitutes for missing data in a report
    • HNODATA – Same functionality for files created using HOLD FORMAT ALPHA
    SET ALL=ON TABLE FILE CAR PRINT WARRANTY BY CAR ON TABLE HOLD FORMAT ALPHA END ALFA ROMEO AUDI 12 MONTHS OR 20000 MILES BMW DATSUN 12 MONTHS OR 12000 MILES JAGUAR 12 MONTHS OR 12000 MILES JENSEN 12000 MILES OR 12 MONTHS MASERATI PEUGEOT 12 MONTHS ON 12000 MILES TOYOTA 12 MONTHS OR 12500 MILES TRIUMPH 12 MONTHS OR 12000 MILES HOLD FILE FOCEXEC SET HOLDMISS=ON SET HNODATA=BLANK Forces MISSING Attribute ALFA ROMEO BLANK AUDI 12 MONTHS OR 20000 MILES BMW BLANK DATSUN 12 MONTHS OR 12000 MILES JAGUAR 12 MONTHS OR 12000 MILES JENSEN 12000 MILES OR 12 MONTHS MASERATI PEUGEOT 12 MONTHS ON 12000 MILES TOYOTA 12 MONTHS OR 12500 MILES TRIUMPH 12 MONTHS OR 12000 MILES Truly blank value
  • 36. Represent Missing Values in HOLD Files SET NULL=ON
    • Propogate missing values to HOLD files with visually consecutive delimiters
    • HOLD Formats COM, COMT, TAB, TABT only
    SET NULL = ON TABLE FILE PRINT FIELD1 FIELD2 FIELD3 ON TABLE HOLD FORMAT COMT END “ NEW YORK”,2,3 “ NEW YORK”,0,1 “ NEW YORK”,0,0 “ NEW YORK”,,3 “ NEW YORK”,2, “ NEW YORK”,, Both fields present FIELD2 is zero Both fields are zero FIELD2 is missing FIELD3 is missing Both fields are missing Next Key Feature
  • 37. Create HOLD Files in Alphanumeric Format SET HOLDFORMAT
    • Create HOLD files in alphanumeric format
    • FTP hold files to the PC
    SET HOLDFORMAT = BINARY / ALPHA Binary Data Alpha Data Default
  • 38. DATABASE AND MASTER Database and Master FOCUS 7.3
  • 39. XFOCUS Database
    • XFOCUS database file may grow to 16 gigabytes
    • With partitioning, up to 4 terabytes for data warehousing
    • No change to focexecs
    • Convert with standard REBUILD
    Will be activated via SET XFC=ON in subsequent 7.3 Service Pack XFOCUS Database FOCUS Database
  • 40. XFOCUS Database Comparison Chart
    • FOCUS DATABASE
    • 4K page size
    • Alpha fields up to A3964
    • Up to 2-gig per physical file
    • Up to 255 2-gig partitions
    • Up to ½ terabyte total size
    • Segment names up to 8 chars
    • Index field names up to 12 chars
    • Page 1 contains FDT and data
    • XFOCUS DATABASE
    • 16k page size; 2X as many pages
    • Alpha fields up to A4096
    • Up to 16-gig per physical file
    • Up to 255 16-gig partitions
    • Up to 4 terabytes total size
    • Segment names up to 64 chars
    • Index field names up to 66 chars
    • Page 1 dedicated to FDT
    More records per page More pages per file Larger files Reduced i/o Fewer partitions TRUE DATA WAREHOUSE - - - - - - - -
  • 41. XFOCUS Database Replacing Legacy Files FILE=filename, SUFFIX=FOCUS SEGNAME= FILE=filename, SUFFIX=XFOCUS SEGNAME= Converting is easy! Just REBUILD! DUMP LOAD
  • 42. XFOCUS Database For Data Warehousing
    • All FOCUS syntax and capabilities work with XFOCUS files,
    • except as follows (may be supported in later releases):
    • Maintain
    • HLI calls
    • Sink machine (SU)
    • External Index and Multi-Dimensional Index (MDI)
    • Static cross references (KU, KL, KM)
      • Permitted, but indexes not resolved (acts as DKU/DKM)
    XFOCUS Database is oriented toward Data Warehouse applications rather than transactional updates Next Key Feature
  • 43. High Performance Multi-Dimensional Index – MDI CAR COUNTRY MODEL MDI provides virtually instant access to the data you need MDIs can have more than 3 dimensions MDI has been in use for years in our FUSION product DONE
  • 44. High Performance Multi-Dimensional Index – MDI (FOCUS and XFOCUS Files)
    • REBUILD MDINDEX
    • creates new MDIs, or adds new partitions to an existing MDI
    • MASTERNAME CAR
    • DATANAME 'CARACX1 FOCUS M'
    • DATANAME 'CARACX2 FOCUS M'
    • DATANAME 'CARACX3 FOCUS M'
    • MDILOCATION CARMDI
      • TARGET_OF ORIGIN
      • DIMENSION CAR
      • DIMENSION COUNTRY
      • DIMENSION MODEL
      • DATANAME 'CARMDI MDI M'
    TABLE FILE CAR PRINT BODYTYPE SEATS WHERE CAR EQ 'JAGUAR' WHERE COUNTRY EQ 'ENGLAND' END Unlike RDBMS Clustered index, MDI fields can be in any order and all fields need not be used ACCESS FILE Next Key Feature
  • 45. Long Segment Names in XFOC Files
    • SEGNAME = VERYLONG NAMEFORASEGMENT,SEGTYPE=…,$
    Pre 7.3 7.3 SEGNAME = VERYLONGNAMEFORASEGMENT ,SEGTYPE=…,$ Error generated 8 char max Now 64 char max
    • Up to 64 characters long
  • 46. Long Index Names in XFOC Files
    • FIELD = VERYLONGNAME FORANINDEX,, I5, INDEX=I ,$
    Pre 7.3 7.3 FIELD = VERYLONGNAMEFORANINDEX ,, I5, INDEX=I ,$ Error generated 12 char max Now 66 char max Now, index names can be the full length of field names
    • Up to 66 characters long
  • 47. GROUP Fields in Master Now for FOCUS Files Too Index a group for JOIN and MODIFY Consecutive fields in a master that represent a logical collection, such as Firstname, Middle initial, Lastname TABLE FILE EMPGROUP PRINT EMP_ID LAST FIRST HIRED BY FULLNAME NOPRINT WHERE FULLNAME GT 'CROSS/BARBARA/991102' END Group length = LAST+ FIRST+HIRED (HIRED is integer with internal length of 4) Components may be separated by slashes What is a GROUP? Next Key Feature FILENAME=EMPLOYEE, SUFFIX=FOC SEGNAME=EMPINFO, SEGTYPE=S1 FIELDNAME=EMP_ID, ,FORMAT=A9,$ GROUP = FULLNAME , ,FORMAT= A29 ,$ FIELDNAME= LAST , , FORMAT= A15 ,$ FIELDNAME= FIRST , , FORMAT= A10 ,$ FIELDNAME= HIRED ,, FORMAT= I6 YMD,$
  • 48. Physical Name of LOCATION File DATASET At Segment Level
    • DATASET attribute already available at the file level in a FOCUS Master File
    • Now specify the physical file name of a LOCATION segment , or a cross-referenced segment with field redefinitions
    XYZ2 XYZ1 XYZ2 XYZ3 FILE = ... , DATASET SEGNAME = BODY,SEGTYPE=S1,PARENT=CARREC, LOCATION=BODYSEG , DATASET='USER1.XYZ2.FOCUS' ,$ FIELDNAME=BODYTYPE,TYPE,A12,$ FIELDNAME=SEATS,SEAT,I3,$ FIELDNAME=DEALER_COST,DCOST,D7,$ DATASET was already available on the FILE level Segment now in its own physical file
  • 49. Read-only Fields in Master FIELDTYPE = R
    • FIELDTYPE=R identifies a field as read-only
      • UPDATE issued for a read-only field is ignored by MODIFY and MAINTAIN
    • Supports relational data sources with auto-increment columns (automatically incremented by the RDBMS)
      • IDENTIFY or timestamp columns in DB2
    FILE=MNTAUTO , SUFFIX=SQLMSS ,$ SEGNAME=MNTAUTO, SEGTYPE=S0 ,$ FIELD=CONTROL ,CONTROL ,I11 ,I4 ,MISSING=OFF, FIELDTYPE=R ,$ FIELD=LASTNAME ,LAST ,A12 ,A12,MISSING=OFF,$ FIELD=FIRSTNAME,FIRST ,A12 ,A12,MISSING=OFF,$ FIELD=ITEM ,ITEM ,A20 ,A20,MISSING=OFF,$ FIELD=AMOUNT ,AMOUNT ,P19 ,P10,MISSING=OFF,$
  • 50. Read Tab-Delimited Files SUFFIX = TAB
    • Tab-delimited files for output or input
    • Create using HOLD FORMAT TAB
    • Similar to TABT, without leading column heading record
    FILE=TAB1 , SUFFIX=TAB SEGNAME=TAB1 ,SEGTYPE=S01 FIELDNAME =CATEGORY ,E01 ,A8 ,A08 ,$ FIELDNAME =COPIES ,E02 ,I3 ,A03 ,$ FIELDNAME =TITLE ,E03 ,A39 ,A39 ,$ FIELDNAME =WHOLESALEPR ,E04 ,F6.2 ,A06 ,$ TABLE FILE MOVIES PRINT COPIES TITLE WHOLESALEPR BY CATEGORY IF CATEGORY EQ 'ACTION' OR 'CHILD‘ ON TABLE HOLD AS TAB1 FORMAT TAB END ACTION > 2 > JAWS > 10.99 ACTION > 3 > ROBOCOP > 11.50 ACTION > 4 > TOTAL RECALL > 11.99 ACTION > 2 > TOP GUN > 9.99 ACTION > 3 > RAMBO III > 10.99 CHILD > 1 > SMURFS, THE > 10.00 CHILD > 2 > SHAGGY DOG, THE > 29.99 > implies tab
  • 51. Varchar Support AnV Field Format
    • V
    A n A1V – A4096V A5 = ‘ABC’; A5V = ‘ABC’; A B C 3 A B C 5 bytes 6 bytes DB2 varchar Number of non-blank bytes FUNCTIONS LENV LOCASV POSITV SUBSTV TRIMV UPCASV ??? TX vs. AnV ???
  • 52. RAISED LIMITS Raised Limits FOCUS 7.3
  • 53. Unlimited IF/THEN/ELSE DEFINE or COMPUTE FL /A2= IF (VALUE EQ 1) THEN ‘A’ ELSE IF (VALUE EQ 2) THEN ‘B’ ELSE IF (VALUE EQ 3) THEN ‘C’ ELSE . . . . IF (VALUE EQ 16) THEN ‘P’ ELSE IF (VALUE EQ 17 ) THEN ‘Q’ ELSE ‘NO’; FL = IF (FL NE ‘NO’) THEN FL ELSE IF (VALUE EQ 18 ) THEN ‘R’ ELSE IF (VALUE EQ 19) THEN ‘S’ ELSE . . . . IF (VALUE EQ 33 ) THEN ‘H’ ELSE ‘NO’; FL = IF (FL NE ‘NO’) THEN FL ELSE . . . . Now you don’t have to! Unlimited IF/THEN/ELSEs in one calculation (limited by memory) Ever hit that magic number? 17 If/Then/Else’s in one statement Next Key Feature
  • 54. 63 COMBINEs for MODIFY
    • Up to 64* total segments in a COMBINE structure
      • Non-root segments lower the # of files to COMBINE
    SYSTEM segment File 1 Root segment File 63 Root segment File 2 Root segment File 3 Root segment . . . File Sub-structure COMBINE file1 AND file2 AND file3 AND …. file63 AS ONEBIG FOCUS creates imaginary root segment, which counts as one *The old limit was 16 COMBINEs
  • 55. Long Amper Variables
    • Amper variables (& or &&) may now be up to 32k chars
      • Use in -READ, -WRITE, or argument on EX
    • Up to 4K chars per –SET calculation
    • Up to 32K total space for all local ampers (&)
    -SET &PART1 = ‘123456789 1 123456789 2 123456789 3 ’; -SET &PART2 = ‘123456789 4 123456789 5 123456789 6 ’; -SET &PART3 = ‘123456789 7 123456789 8 123456789 9 ’; -SET &PARTX = &PART1 | &PART2 | &PART3 ; TABLE FILE CAR PRINT CARPART IF CARPART EQ &PARTX Previously gave line overflow errors due to >80 substitution
  • 56. Long Qualified Field Names
    • FIELD/A1 = LONGFILENAME.LONGSEGMENTNAME.LONGFIELDNAME ;
    Up to 64 chars Up to 64 chars* Up to 66 chars Up to 196 total characters (including dots) Specify via Wide-Lines focexecs or amper variable substitution 64-character segment names only in XFOC files. Segment names in FOC files remain up to 8 chars. *
    • Compound length limit raised to accommodate the longest name for all components
  • 57. More ACROSS Values
    • Number of displayable ACROSS field values increased from 95 to 1,056
    MODEL CAR BB CC DD EE FF GG HH …… TT UU VV WW XX JAG 10 22 5 C9 11 P2 …… 9 12 63 DF 1 BMW 9 159 25 XU P4 1 P2 …… 7 32 -- DE 2 Up to 1,056 ACROSS field values
  • 58. 1,024 Display Fields
    • Number if fields in a single or pooled TABLE request increased from 495 to approximately 1,024
      • Excludes sort fields
      • MATCH limited to 495
    • Actual maximum for a specific report is influenced by:
      • Hidden fields (NOPRINT)
      • Temporary fields (COMPUTE and DEFINE)
      • Internal fields, like TABPAGENO
      • The size of the fields
      • Field references in headings and footings
    Great for extracts to Data Warehouse! What else?
  • 59. More Sort Headings and Footings
    • Now up to 32K reserved for sort headings and footings
    • Up to 64 total SUBHEADs and SUBFOOTs
      • Great power combined with WHEN
    • Up to 64 nested headings
    • Independent of area reserved for HEADING and FOOTING
    BY COUNTRY BY CAR BY MODEL ON COUNTRY SUBHEAD “TEXT FOR ENGLAND” WHEN COUNTRY EQ ‘ENGLAND’ ON COUNTRY SUBHEAD “TEXT FOR FRANCE” WHEN COUNTRY EQ ‘FRANCE’ . . . .
  • 60. Increased Space for Column Titles
    • Automatically adjusts to memory available
    • Initialized to 6K bytes
  • 61. More External Index Partitions
    • External Index partitions increased from 120 to 240 max
    • Dependent on File Control Table* spares during session
    • (External Index file up to 2gig)
    USE ORDERS1 AS ORDERS ORDERS2 AS ORDERS . . . ORDERS150 AS ORDERS ORDERS151 AS ORDERS ORDERS152 AS ORDERS END REBUILD EXTERNAL INDEX NEW ORDIDX ORDERS L_SHIPDATE NO NO THEN Create 152 concatenated partitions Build the new external index *FCT for FOCUS, Fusion, external index, MDI files
  • 62. OPERATING SYSTEM Operating System FOCUS 7.3
  • 63. Get User Name from Amper Variable &FOCUSER
    • System amper (&) variable retrieves the logon ID
    • Use instead of the GETUSER function
    • Supported anywhere an amper variable can be used
    • Ok in MODIFY, but not in Compiled MODIFY. Why not??
      • USER/A8 = ‘&FOCUSER’;
      • “ Report run by &FOCUSER”
      • IF EDIT(&FOCUSER,’$$$$9999’) . . .
    Examples:
  • 64. Wide Lines for Focexecs, Masters, Access Files
    • Lrecl >80 for focexecs, masters, access files
    • Up to 32K wide
    • Entire TABLE or SQL statement on one line
    • Continuous lines for:
      • HEADINGs and FOOTINGs
      • CRTFORM
      • Comments
      • ’ EX’ argument strings
      • Long amper variables
      • Function parameter list
    • Some commands require separate lines
      • MODIFY syntax, END, HEADING and its text
  • 65. Wide Lines for Focexecs, Masters, Access Files Examples DEFINE FILE CAR FIELD/A4096 = ‘ ABC D E F G H I J …………………… T U V W XYZ ’ ; TABLE FILE CAR PRINT FIELD1 FIELD2 F I E L D 3 ………………… F I E L D1024 -* Pass a long argument EX SOMEFOC ‘VERY L E NG T H Y ……………… … … S T R I NG ’ SEGMENT=….. FIELD=AC,,A4, IN D EX = I , ……………… … …, A C C EPT,TITLE,$ In the Master
  • 66. Call Your System Editor for Wide-line Files IEDIT
    • Work with files of lrecl > 80
      • Needed for Wide Lines which TED does not support
    • Call to your system editor (XEDIT or ISPF)
      • Your editor profiles and macros remain in force
    • Several TED-like conveniences
      • IEDIT with no argument recalls last-run focexec
      • File displays at line number of last error
      • RUN command saves and executes the focexec
  • 67. Relative GDG + 1
    • Relative GDG (Generation DataSet) may be a positive number as well as negative number
    • ‘ Plus’ creates a new generation entry in the catalog to be generated later with HOLD or SAVE
    DYNAM ALLOC FILE DYNHLD DS ABCD.GDG.FIX (+1) NEW CATLG
  • 68. MAINTAIN MAINTAIN Enhancements FOCUS 7.3
  • 69. MAINTAIN Filetype Extension
    • MAINTAIN procedures can have a file extension of “MAINTAIN” instead of FOCEXEC (for both MVS and CMS)
    • MNTCON is required to work with MAINTAIN procedures that have their own extensions
    MNTCON EX maintproc MNTCON COMPILE maintproc MNTCON RUN maintproc //MAINTAIN DD=myqual.MAINTAIN.DATA,DISP=SHR maintproc MAINTAIN A1 MVS JCL VM will look for the new extension still FOCCOMP
  • 70. New Screening Conditions for MAINTAIN
    • NOT_IN – true when a field is not in a list of values
    • e.g. For All Next Country Where Country NOT_IN (&quot;ENGLAND&quot;,&quot;FRANCE&quot;);
    • EQ_MASK and NE_MASK – Compares a database field to a computed field using wildcard character ($)
      • Example: Compute afld/a8=&quot;$$$LAND&quot;; For All Next Country Where Country EQ_MASK afld ;
    FOR ALL NEXT fields [INTO stackname] WHERE field NOT_IN list (‘item1’, ‘item2’ [,…] ) EQ_MASK mask NE_MASK mask CONTAINS string OMITS string “ MASK” may contain ‘$’ wildcards Ex : ABC$E$$G looks for any character in those positions
  • 71. FOCUS SETs from MAINTAIN
      • Use SYS_MGR.FOCSET function to pass a SET option and its value
      • Example: SYS_MGR.FOCSET(&quot;CDN&quot;,&quot;ON&quot;);
    Settable Options EMGSRV MESSAGE WARNING TRACEON TRACEOFF TRACEUSER CDN COMMIT DEFCENT YRTHRESH DATEDISPLAY NODATA LANGUAGE USER PASS
  • 72. THANK YOU Thank you ! Start
  • 73. FOCUS 7.3 Presentation Selected Features in order of discussion
    • Index Feature Handout
    • (45) XFOCUS Database Page 10 (bottom left)
    • (48) Multi-Dimensional Index (MDI) Page 11 (bottom left)
    • (20) Working with EXCEL 2000 Page 7 (bottom left)
    • (14) STYLESHEET enhancements Page 5 (top right)
    • (04) Displaying PAGE n OF max Page 2 (bottom right)
    • (49) GROUPS in FOCUS Masters Page 12 (bottom left)
    • (36) Unlimited IF/THEN/ELSE Page 14 (top left)
    • (16) Parse masters only once Page 5 (top right)
    • (02) Display BY value on every row Page 2 (top right)
    • (13) Multiple reports in one PDF/PS Page 5 (top left)
    • (15) New DEFINEs compiler Page 6 (top left)
    • (27) Missing value in HOLD Page 9 (top right)
    • (03) Prefixes on summary lines Page 2 (bottom left)