Is there something wrong with the ERASE command? Then there is the STATE 
filter. Something like:

PIPE literal fn ft fm | not state nodetails | locate w1 | spec /erase ofn oft 
ofm/ 1 | cms 

If the output fileid is based on the input fileid, you can use the record 
passed down the primary stream, the input to the state stage if there is no 
such file,  to construct it if you like.

Regards, 
Richard Schuh 

 

> -----Original Message-----
> From: CMSTSO Pipelines Discussion List 
> [mailto:[email protected]] On Behalf Of Paul Gilmartin
> Sent: Tuesday, November 23, 2010 2:43 AM
> To: [email protected]
> Subject: Treating absent files as empty
> 
> First, I'm restricted to minidisks; my sysprog is stuck 
> somewhere in the Twentieth Century.  But I'd like to be able 
> to delete an output file if the input file doesn't exist.  So:
> 
>     pipe literal wombat | > foo bar a
>    Ready; T=0.01/0.01 03:14:25
>     type foo bar a
>    wombat
>    Ready; T=0.01/0.01 03:14:35
> 
>     pipe hole | > foo bar a
>    Ready; T=0.01/0.01 03:14:51
> 
>     type foo bar a
>    DMSOPN002E File FOO BAR A not found
>    Ready(00028); T=0.01/0.01 03:14:58
> 
> Excellent! exactly what I wanted; an empty input stream 
> erases the output file.  Now a more complicated test:
> 
>     pipe literal wombat | > foo bar a
>    Ready; T=0.01/0.01 03:19:57
> 
>     pipe < none such a | > foo bar a
>    FPLDSR146E File "NONE SUCH A1" does not exist
>    FPLSCA003I ... Issued from stage 1 of pipeline 1
>    FPLSCA001I ... Running "< none such a"
>    Ready(00146); T=0.01/0.01 03:23:54
> 
>     type foo bar a
>    wombat
>    Ready; T=0.01/0.01 03:24:02
> 
> Ouch!  Because of the error (I guess), the output file is not erased.
> But, by trial and error, I can rescue it:
> 
>     pipe hole | append < none such a | > foo bar a
>    FPLDSR146E File "NONE SUCH A1" does not exist
>    FPLMSG002I ... Processing "callpipe (name Append/Preface 
> stagesep | escape ""
>    FPLMSG003I ... Issued from stage 2 of pipeline 1
>    FPLMSG001I ... Running "append < none such a"
>    FPLSCA004I ... Issued from stage 1 of pipeline 1 name 
> "Append/Preface"
>    FPLSCA001I ... Running "< none such a"
>    Ready(00146); T=0.01/0.01 03:25:37
> 
>     type foo bar a
>    DMSOPN002E File FOO BAR A not found
>    Ready(00028); T=0.01/0.01 03:25:45
> 
> ... back to what I want.  Is there a principle here I can rely on?
> Is there a better way to delete the output file if the input 
> file is nonexistent?
> 
> (The error messages are ugly.  But I'll live with them rather 
> than code a more complex pipeline.)
> 
> Thanks,
> gil
> 

Reply via email to