First, there is a REXX Newsgroup that might be more helpful.

To sign up  - if you have not done so - go to the bottom of this webpage:  
http://www2.marist.edu/htbin/wlvindex?TSO-REXX


Second, why use EXECIO instead of ISPF LM functions?
What do your dataset attibutes look like?  Primary space, secondary space?  
Who-all is using this file (is it shared or not shared?)

E37 is pretty descriptive.  But I also see you are using DTS Software.  Perhaps 
you need to alter the rules in ACC so you can add more space?  PDS cannot 
spanned volumes, PDSE maybe??? (I forget but maybe not)

Perhaps you need to increase your space allocation on the  file.  As you 
add/del members you leave "gas" - a good COMPRESS helps files that have a lot 
of add/del of members.

Lizette



-----Original Message-----
>From: George Shedlock <geo...@shedlock.org>
>Sent: Aug 26, 2013 11:21 AM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Rexx Execio to PDS
>
>Gentle Listers;
>
>I am trying to write a Rexx routine that takes in 3 arguments. First is DSN, 
>second is Member name, third is a string of text. The string of text is the 
>concatenation of lines delimited by a ";". (ex. "line1;line2;line3").
>
>This code fails:
>
>Write_Member:                                                           
>  MyDSN = ARG(1)                                                        
>  MyMember = ARG(2)                                                     
>  MyArg = ARG(3)                                                        
>  outstem.=0                                                            
>  dsnname = MyDSN || '(' || MyMember || ')'                             
>  Say 'The dsname is: {'dsnname'}'                                      
>  do forever                                                            
>      parse var MyArg  thisword ';' MyArg                               
>      if thisword='' then leave                                         
>      thisword = Left(thisword,80)                                      
>      parse value outstem.0+1 thisword with t outstem.t =1 outstem.0 .  
>      end                                                               
>  Say 'Number of lines written: 'outstem.0                              
>  "ALLOC DA('"dsnname"') F(Pdsout) OLD REUSE"                           
>  "EXECIO * DISKW Pdsout (STEM outstem. FINIS"                          
>  "FREE F(Pdsout)"                                                      
>  Return                                                                
>
>Failure:
>
>The dsname is: :HLQ.TEST(MEM3):                                               
>Number of lines written: 3                                                     
>  
>ACC20210-A ADDVOL FOR DD=PDSOUT DSN=HLQ.TEST VOL=S92248 POOL=TSOPOOL EXT=16   
>ACC20628-A DATA SET IS PARTITIONED                                             
>  
>System abend code E37, reason code 00000004.                                   
>  
>Abend in host command EXECIO or address environment routine TSO.               
>  
>EXECIO error while trying to GET or PUT a record.                              
>  
>
>This code works:
>
>Write_Member:                                                              
>  MyDSN = ARG(1)                                                           
>  MyMember = ARG(2)                                                        
>  MyArg = ARG(3)                                                           
>  outstem.=0                                                               
>  dsnname = MyDSN || '(' || MyMember || ')'                                
>  Say 'The dsname is: {'dsnname'}'                                         
>  "ALLOC FI(PDS) DA('"dsnname"') OLD reuse"                                
>  do forever                                                               
>      parse var MyArg  thisword ';' MyArg                                  
>      if thisword='' then leave                                            
>      thisword = Left(thisword,80)                                         
>      parse value outstem.0+1 thisword with t outstem.t =1 outstem.0 .     
>      PUSH thisword                                                        
>      "EXECIO 1 DISKW PDS "                                                
>      end                                                                  
>  "EXECIO 0 DISKW PDS (FINIS"                                              
>  Say 'Number of lines written: 'outstem.0                                 
>  "FREE FI(PDS)"
>   Return            
>
>The objective is to pass a stem for the third argument. 
>
>Any suggestions on how to use the Execio with the stem value?
>
>Show me the error of my ways.
>
>George                                                          
>
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to