Focal Point Banner


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.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] How to create a file with fixed block attributes

Read-Only Read-Only Topic
Go
Search
Notify
Tools
[SOLVED] How to create a file with fixed block attributes
 Login/Join
 
Guru
posted
We're running an old release of FOCUS on a MVS/TSO mainframe. I have made a program to create a fixed block output file in a format of WP, but when I execute the program, my file comes out in a VB (Variable Block) format. I can't figure what is going on! If someone is willing to take a look at my program and JCL and tell me the error of my ways, I would be most grateful Again, this is on a mainframe, and the FOCUS we're using is mainframe FOCUS, Release 7.1.1

Here is the JCL:

//PREVCALS JOB (S22O,DBJ),'POS.REGISTER',
// MSGCLASS=A,MSGLEVEL=(1,1),CLASS=F,REGION=4M
/*NOTIFY SACADMIN.DJACKSON
/*ROUTE PRINT SACADMIN.DJACKSON
//SCR EXEC PGM=IEFBR14
//DD1 DD UNIT=DISK,VOL=SER=ACDW01,
// DSN=TSODBJ.AUDITPYC.STAFF.FILE,DISP=(MOD,DELETE)
//FOCSISP EXEC FOCPRO78,
// HOLDCYL=300,
// SORTCYL=300
//FOCSTEP.FOCEXEC DD DSN=TSODBJ.FOCUS.SOURCLIB,DISP=SHR
// DD DSN=FOCUS.TEST.SOURCLIB,DISP=SHR
// DD DSN=SISPLUS.FOC708R.SOURCLIB,DISP=SHR
// DD DSN=SISPLUS.FOCUS.SOURCLIB,DISP=SHR
// DD DSN=FOCUS65.PROD.FOCEXEC,DISP=SHR
//*
//FOCSTEP.SYSIN DD *
EX TESTXXA FISCALYR = 08,
DATE1 = 20070901,
DATE2 = 20080831,
FAC = 'Y',
PRINT = DJACKSON,
REQCOL = DIST,
REQOFF = INTERNAL AUDIT,
REQPERS = OSCAR SALAZAR,
RUNBY = DAVID JACKSON
FIN
//*
//EAFILE DD DSN=HRS.PROD.EAFILE,DISP=SHR,
// AMP='AMORG,BUFND=80,BUFNI=80'
//EBFILE DD DSN=HRS.PROD.EBFILE,DISP=SHR,
// AMP='AMORG,BUFND=80,BUFNI=80'
//EPFILE DD DSN=HRS.PROD.EPFILE,DISP=SHR,
// AMP='AMORG,BUFND=80,BUFNI=80'
//XFOC01 DD DSN=SISP.PROD.XFOC01,DISP=SHR,
// AMP='AMORG,BUFND=2,BUFNI=2'
//CAMPHRS DD DSN=SISPLUS.FOCUS.TABLES(CAMPHRS),DISP=SHR
//DEPT DD DSN=SISPLUS.FOCUS.TABLES(DEPT),DISP=SHR
//H934A DD UNIT=SYSDA,SPACE=(CYL,(300,10))
//H934B DD UNIT=SYSDA,SPACE=(CYL,(300,10))
//AUD001 DD UNIT=DISK,DSN=TSODBJ.AUDITPYC.STAFF.FILE,
// VOL=SER=ACDW01,
// DISP=(,KEEP),
// SPACE=(CYL,(150,1))
//AUD003 DD DSN=HRS.DBJ.ASGN,
// DISP=(NEW,CATLG,DELETE),
// UNIT=DISK,
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=0080,BLKSIZE=27920)
//*


and here is my program:

SET ASNAMES = ON
SET MSG = ON
SET LINES = 99999
SET PAGE = OFF
SET PAGE = NOPAGE
-SET &PRG = 'MAKEAUD';
-*
-INCLUDE FOCDEF
-*
DEFINE FILE EBFILE
LOCATION_CODE /A01 = EDIT(ASGN_DIV,'$$9');
END
-*
TABLE FILE EBFILE
SUM
FST.EMP_ID_210 AS 'EMPLOYEE_ID'
FST.JOB_CD_210 AS 'JOB_CODE'
FST.LOCATION_CODE AS 'LOCATION_CODE'
BY EMP_ID_210 NOPRINT
-*
WHERE ASGN_END_DT IS-FROM &BGNDATE TO &ENDDATE
ON TABLE HOLD AS AUDFILE1
END
-*
SET PAGE = OFF
SET PAGE = NOPAGE
DEFINE FILE AUDFILE1
BLANKLIN /A69 = ' ';
DATALINE /A80 = EMPLOYEE_ID | JOB_CODE | LOCATION_CODE |BLANKLIN;
END
-*
TABLE FILE AUDFILE1
PRINT
*
DATALINE AS ' '
BY EMPLOYEE_ID NOPRINT
WHERE EMPLOYEE_ID NE ' '
ON TABLE HOLD AS AUD003 FORMAT WP
-*
END
-RUN
-*
-EXIT


Thank you in advance.

This message has been edited. Last edited by: webmeister,


Mainframe FOCUS 7.0
VM/CMS and MVS/TSO
 
Posts: 250 | Registered: January 14, 2008Report This Post
Virtuoso
posted Hide Post
HOLD respects your DCBs, but SAVE trounces 'em -- and it's not surprising that HOLD FORMAT WP (which does not generate a MASTER) is treated like SAVE in this regard.

I guess you'll just have to copy it via iebgener in a subsequent step.
 
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005Report This Post
Silver Member
posted Hide Post
Webmeister,

Though I never tried with format WP, but would recommend you using SAVE instead of HOLD. It always worked on format ALPHA.

ON TABLE SAVE AS AUD003 FORMAT WP


-Shrikant


FOCUS 7.2.3
Platform: IBM system Z9 Business class
O/P formats: Flat files, excel and CSV files
 
Posts: 39 | Location: Hyderabad, India | Registered: April 28, 2007Report This Post
Expert
posted Hide Post
Haven't used MF in a while, but can you alloc the file in FOCUS, with a DYNAM ALLOC or TSO ALLOC ?, and then save it format WP ?.

The other option is to save FORMAT WP, write out a master to read it, and SAVE FORMAT ALPHA.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

 
Posts: 6347 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Report This Post
Expert
posted Hide Post
Just to re-emphasise Jack's comment above. FOCUS will overwrite the DCB information in certain circumstances so it doesn't matter what you try and do. In this situation, with FORMAT WP, your DCB information will be over written.

As Jack states, your probable best course of action is to IEBGENER or ICEGENER (rather then IEBCOPY) the file in a subsequent step.

T
 
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004Report This Post
Guru
posted Hide Post
I want to thank all of you who were so nice to respond and appreciate the various suggestions. Waz, you were right on....I used a DYNAM ALLOC in my FOCEXEC code, and that worked! What a weird quirk in FOCUS?

Again, thank you to all who offered help.


Mainframe FOCUS 7.0
VM/CMS and MVS/TSO
 
Posts: 250 | Registered: January 14, 2008Report This Post
Expert
posted Hide Post
I wish I have a mainframe to test this out, anyone got a spare one lying around ?


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

 
Posts: 6347 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Report This Post
Expert
posted Hide Post
From memory, another weird quirk between using TSO ALLOC and DYNAM ALLOC was that TSO ALLOC could be used to replace an allocation made within the JCL, whereas DYNAM ALLOC couldn't (or was it the other way around? Razzer).

Qualifying statement: This was a few years ago on something like 4.3.6 and MVS so it might be worth confirming by someone on a more recent release and O/S?

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
 
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004Report This Post
Silver Member
posted Hide Post
Tony,

DYNAM ALLOC can be used to replace an allocation made in JCLWink

-Shrikant


FOCUS 7.2.3
Platform: IBM system Z9 Business class
O/P formats: Flat files, excel and CSV files
 
Posts: 39 | Location: Hyderabad, India | Registered: April 28, 2007Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] How to create a file with fixed block attributes

Copyright © 1996-2020 Information Builders