<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating files based on Filename in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114550#M31683</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if this will solve everything, but it might. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The most obvious flaw in your program is trying to use a DATA step IF/THEN to control whether or not %LET executes.&amp;nbsp; %LET always executes.&amp;nbsp; If you examine your log, you will see that %PUT &amp;amp;TEXT_FLG; always writes Y.&amp;nbsp; To change that, change the second %LET statement to read:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('TEXT_FLG', 'Y');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move the final RUN statement earlier, just before testing for %IF &amp;amp;TEXT_FLG=Y.&amp;nbsp; That forces the DATA step to run before you check the value of &amp;amp;TEXT_FLG.&amp;nbsp; FILENAME statements are not part of a DATA step, anyway.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, move the %PUT statement to the very end of the macro.&amp;nbsp; If you leave it in its current location, it will write the value of &amp;amp;TEXT_FLG BEFORE the DATA step executes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 23 Jul 2012 18:00:06 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2012-07-23T18:00:06Z</dc:date>
    <item>
      <title>Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114546#M31679</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have a requirement based on store branches I have to create .csv files on to a drive.&lt;/P&gt;&lt;P&gt;I used Filename FTP to create .csv files on the drive,but the problem is certain branches does have empty files,in that case i do not want to create output files on the drive for that branch.&lt;/P&gt;&lt;P&gt;How can I achieve this?Please share your thoughts.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Jul 2012 01:31:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114546#M31679</guid>
      <dc:creator>renjithr</dc:creator>
      <dc:date>2012-07-21T01:31:39Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114547#M31680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could test if there is data before you execute the filename FTP. May be you should post your code so we can suggest some changes to it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Jul 2012 03:24:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114547#M31680</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2012-07-21T03:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114548#M31681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes. I can firstly check whether there are some obs in a dataset by using DICTIONARY.TABLES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2012 02:45:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114548#M31681</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-07-23T02:45:01Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114549#M31682</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Below is the code I am using:&lt;/P&gt;&lt;P&gt; %MACRO MCASPLT(MCA1,FNME1,F1);&lt;/P&gt;&lt;P&gt;DATA _NULL_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET DATAOT1.NBARI;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %LET TEXT_FLG=N;&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF MCA = "&amp;amp;MCA1" THEN DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %LET TEXT_FLG=Y;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %PUT &amp;amp;TEXT_FLG;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FILE &amp;amp;FNME1&amp;nbsp; DSD DLM=',';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PUT MCA MRN1 ADMDT DISDT &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;%IF &amp;amp;TEXT_FLG&amp;nbsp; =&amp;nbsp; Y&amp;nbsp; %THEN %DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %LET OUT_LRECL=8000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %LET CD=ISM\LG\NCAL\TEST;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %LET HLQO=HPS2.Y3012.XAAA.&amp;amp;F1..TXTOUT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %LET OUT_NAME=XAAA.&amp;amp;F1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILENAME NCHS01 "&amp;amp;HLQO" DISP=SHR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILENAME NCHS FTP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;OUT_NAME"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;HOST_PORT_USER_PASS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CD = "&amp;amp;CD"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LRECL = &amp;amp;OUT_LRECL&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATA _NULL_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INFILE NCHS01 SHAREBUFFERS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE NCHS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INPUT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PUT _INFILE_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; % END;&lt;/P&gt;&lt;P&gt; RUN;&lt;/P&gt;&lt;P&gt; %MEND;&lt;/P&gt;&lt;P&gt; %MCASPLT(ANTCH,DATAO02,ANTI);&lt;/P&gt;&lt;P&gt; %MCASPLT(FOLM,DATAO03,FOLS);&lt;/P&gt;&lt;P&gt; ENDSAS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the MCA value FOLM is not in my input file,but the ftp statement is creating an empty file in my ftp location.I dont want FTP an empty file.Please help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2012 15:41:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114549#M31682</guid>
      <dc:creator>renjithr</dc:creator>
      <dc:date>2012-07-23T15:41:49Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114550#M31683</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if this will solve everything, but it might. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The most obvious flaw in your program is trying to use a DATA step IF/THEN to control whether or not %LET executes.&amp;nbsp; %LET always executes.&amp;nbsp; If you examine your log, you will see that %PUT &amp;amp;TEXT_FLG; always writes Y.&amp;nbsp; To change that, change the second %LET statement to read:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('TEXT_FLG', 'Y');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move the final RUN statement earlier, just before testing for %IF &amp;amp;TEXT_FLG=Y.&amp;nbsp; That forces the DATA step to run before you check the value of &amp;amp;TEXT_FLG.&amp;nbsp; FILENAME statements are not part of a DATA step, anyway.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, move the %PUT statement to the very end of the macro.&amp;nbsp; If you leave it in its current location, it will write the value of &amp;amp;TEXT_FLG BEFORE the DATA step executes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2012 18:00:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114550#M31683</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-07-23T18:00:06Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114551#M31684</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First reverse the order of your INPUT and your FILE statements in the DATA step and see if it helps.&amp;nbsp; Perhaps if SAS stops on an empty input file before getting to the FILE statement it might not send anything to FTP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you get the FTP to work using FTP engine in the FILE statement in the DATA _NULL_ instead using the FILENAME statement.&lt;/P&gt;&lt;P&gt;That might make it more likely to skip writing the file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you really want the SHAREBUFFERS options on your INFILE statement as you are writing to a different output file?&amp;nbsp; Not sure this makes any difference for this problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2012 18:03:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114551#M31684</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-07-23T18:03:23Z</dc:date>
    </item>
    <item>
      <title>Re: Creating files based on Filename</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114552#M31685</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It looks like you are querying some obs rely on a condition . Here is an example . You need to vary it to suit your taste.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;%MACRO MCASPLT(sex,FNME1,F1);
proc sql;
create table temp as
 select * from sashelp.class 
&amp;nbsp; where sex="&amp;amp;sex" ;
quit;


%if &amp;amp;sqlobs ne 0 %then %do;
 proc print ;run;%end;

%MEND;

%mcasplt(F,FNME1,F1)

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2012 02:29:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-files-based-on-Filename/m-p/114552#M31685</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-07-24T02:29:14Z</dc:date>
    </item>
  </channel>
</rss>

