<?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 File in use error in SAS Email macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/File-in-use-error-in-SAS-Email-macro/m-p/920556#M362553</link>
    <description>&lt;DIV&gt;Hi Friends&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Need some help here. Getting file in use error. Also there is gap between html body and table which needs to be reduced. Any help appreciated..&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;libname WBG '/sasdata/WBG/';&lt;/DIV&gt;&lt;DIV&gt;%let input_path = "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/";&lt;/DIV&gt;&lt;DIV&gt;%let input_filename2 = REF_And_ESC_Pending_Report.xlsx;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc import replace datafile= "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/REF_And_ESC_Pending_Report.xlsx"&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;out=Cheque_referral&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DBMS=XLSX;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;range="REF And ESC Pending Report$A10:K30000";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GETNAMES=yes;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc import replace datafile= "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/RM_Team_Mapping.xlsx"&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;out=RM_Team_Mapping&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DBMS=XLSX;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GETNAMES=yes;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;delete from Cheque_referral where 'S.No.'n like '%End%';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;delete from Cheque_referral where 'S.No.'n='';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;create table WBG.Cheque_referral as&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select A.*,B.'Staff ID'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.'Staff Name'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.'Line manager'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.Lead,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.Staff_Email,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.RM_Email from Cheque_referral&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;A left join RM_Team_Mapping B on A.RMCODE=B.'RM code'n&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;where SUBSTR(A.RMCODE,1,3) IN ('COR','GOV','GOV') and A.RMCODE in ('COR100063','COR100018');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct RM_Email into :toList separated by ' ' from WBG.Cheque_referral;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Data Cheque_referral_Email;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set WBG.Cheque_referral;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct Staff_Email,count(distinct Staff_Email) into :Staff_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct Staff_Email,count(distinct Staff_Email) into :Staff_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct RM_Email,count(distinct RM_Email) into :RM_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=Staff_Email;&lt;/DIV&gt;&lt;DIV&gt;%let cntsep1 = %sysfunc(count(&amp;amp;Staff_Email,|));&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=RM_Email;&lt;/DIV&gt;&lt;DIV&gt;%let cntsep2 = %sysfunc(count(&amp;amp;RM_Email,|));&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=cntsep2;&lt;/DIV&gt;&lt;DIV&gt;%let cntemail = %eval(&amp;amp;cntsep1+1);&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=cntemail;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/*&lt;/DIV&gt;&lt;DIV&gt;%macro t;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;%do i =1 %to &amp;amp;cntemail;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%let EMAIL=%scan(&amp;amp;Staff_Email,&amp;amp;i,'|');&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=EMAIL;&lt;/DIV&gt;&lt;DIV&gt;%let RM_EMAIL=%scan(&amp;amp;RM_Email,&amp;amp;i,'|');&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=RM_EMAIL;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;*/&lt;/DIV&gt;&lt;DIV&gt;%macro t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;proc sql;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%do i = 1 %to &amp;amp;cntemail;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%let EMAIL = %scan(&amp;amp;Staff_Email, &amp;amp;i, '|');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%let RM_EMAIL = %scan(&amp;amp;RM_Email, &amp;amp;i, '|');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;data _null_;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;filename mail email&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;From=('CIBGServiceQuality_SAS@adcb.com')&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;to=("&amp;amp;EMAIL")&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;cc=("&amp;amp;RM_Email")&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;subject="INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL NOTIFICATION"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;attach=("/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/REF_And_ESC_Pending_Report.xlsx" content_type='xlsx')&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;type='text/html';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ods html body=mail style=RTF options(vspace="NO");&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style parskip / fontsize = 1pt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; proc odstext;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;p "Dear &amp;amp;EMAIL," / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;p 'Seeking your kind attention to the below pending cheque in Referral queue. The details are appended in below table for your easy reference. Kindly clear the same in case you wish to proceed.' / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; run;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PROC REPORT DATA=WBG.Cheque_referral(where=(Staff_Email="&amp;amp;EMAIL")) nowd HEADLINE HEADSKIP&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(report)={background=whitex font_face="Arial" font_size=9pt just=left}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(column)={background=white CELLHEIGHT=2.5% font_face="Arial" font_size=9pt just=left}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(header)={foreground=white&amp;nbsp; font_face="Arial" font_size=10pt just=left background=green};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;columns 'S.No.'n QUEUENAME BUSINESSCATEGORY PROFITCENTER RMCODE RMNAME CUSTOMERNAME CUSTACCOUNTNO AMOUNT ODTODATPOSTING REFERREDREASON;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Proc odstext;&lt;/DIV&gt;&lt;DIV&gt;p "Note: This is an automated email from SAS." / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;p "Any questions please reach out to CIBG Service quality Team." / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;p "Thankyou," / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;data _null_;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;file mail;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;html&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;body&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;span style="font-size: 10pt; font-family: Arial, serif;"&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Dear &amp;amp;EMAIL,&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Seeking your kind attention to the below pending cheque in Referral queue. The details are appended in below table for your easy reference. Kindly clear the same in case you wish to proceed.&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Note: This is an automated email from SAS.&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Any questions please reach out to CIBG Service quality Team.&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Thanks and Regards,&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;CIBG Service quality Team&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/span&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/body&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/html&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ods html close;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%end;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;%mend t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%t;&lt;/DIV&gt;</description>
    <pubDate>Sat, 16 Mar 2024 16:00:37 GMT</pubDate>
    <dc:creator>SASUserRocks</dc:creator>
    <dc:date>2024-03-16T16:00:37Z</dc:date>
    <item>
      <title>File in use error in SAS Email macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/File-in-use-error-in-SAS-Email-macro/m-p/920556#M362553</link>
      <description>&lt;DIV&gt;Hi Friends&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Need some help here. Getting file in use error. Also there is gap between html body and table which needs to be reduced. Any help appreciated..&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;libname WBG '/sasdata/WBG/';&lt;/DIV&gt;&lt;DIV&gt;%let input_path = "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/";&lt;/DIV&gt;&lt;DIV&gt;%let input_filename2 = REF_And_ESC_Pending_Report.xlsx;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc import replace datafile= "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/REF_And_ESC_Pending_Report.xlsx"&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;out=Cheque_referral&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DBMS=XLSX;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;range="REF And ESC Pending Report$A10:K30000";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GETNAMES=yes;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc import replace datafile= "/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/RM_Team_Mapping.xlsx"&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;out=RM_Team_Mapping&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DBMS=XLSX;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GETNAMES=yes;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;delete from Cheque_referral where 'S.No.'n like '%End%';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;delete from Cheque_referral where 'S.No.'n='';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;create table WBG.Cheque_referral as&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select A.*,B.'Staff ID'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.'Staff Name'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.'Line manager'n,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.Lead,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.Staff_Email,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;B.RM_Email from Cheque_referral&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;A left join RM_Team_Mapping B on A.RMCODE=B.'RM code'n&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;where SUBSTR(A.RMCODE,1,3) IN ('COR','GOV','GOV') and A.RMCODE in ('COR100063','COR100018');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct RM_Email into :toList separated by ' ' from WBG.Cheque_referral;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Data Cheque_referral_Email;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set WBG.Cheque_referral;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct Staff_Email,count(distinct Staff_Email) into :Staff_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct Staff_Email,count(distinct Staff_Email) into :Staff_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select distinct RM_Email,count(distinct RM_Email) into :RM_Email separated by '|',:c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from Cheque_referral_Email;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=Staff_Email;&lt;/DIV&gt;&lt;DIV&gt;%let cntsep1 = %sysfunc(count(&amp;amp;Staff_Email,|));&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=RM_Email;&lt;/DIV&gt;&lt;DIV&gt;%let cntsep2 = %sysfunc(count(&amp;amp;RM_Email,|));&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=cntsep2;&lt;/DIV&gt;&lt;DIV&gt;%let cntemail = %eval(&amp;amp;cntsep1+1);&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=cntemail;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/*&lt;/DIV&gt;&lt;DIV&gt;%macro t;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;%do i =1 %to &amp;amp;cntemail;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%let EMAIL=%scan(&amp;amp;Staff_Email,&amp;amp;i,'|');&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=EMAIL;&lt;/DIV&gt;&lt;DIV&gt;%let RM_EMAIL=%scan(&amp;amp;RM_Email,&amp;amp;i,'|');&lt;/DIV&gt;&lt;DIV&gt;%put &amp;amp;=RM_EMAIL;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;*/&lt;/DIV&gt;&lt;DIV&gt;%macro t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;proc sql;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%do i = 1 %to &amp;amp;cntemail;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%let EMAIL = %scan(&amp;amp;Staff_Email, &amp;amp;i, '|');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%let RM_EMAIL = %scan(&amp;amp;RM_Email, &amp;amp;i, '|');&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;data _null_;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;filename mail email&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;From=('CIBGServiceQuality_SAS@adcb.com')&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;to=("&amp;amp;EMAIL")&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;cc=("&amp;amp;RM_Email")&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;subject="INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL NOTIFICATION"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;attach=("/SASAnalytics/WBG/CorporateSupport/INWARD &amp;amp; IN-HOUSE CHEQUE REFERRAL/REF_And_ESC_Pending_Report.xlsx" content_type='xlsx')&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;type='text/html';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ods html body=mail style=RTF options(vspace="NO");&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style parskip / fontsize = 1pt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; proc odstext;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;p "Dear &amp;amp;EMAIL," / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;p 'Seeking your kind attention to the below pending cheque in Referral queue. The details are appended in below table for your easy reference. Kindly clear the same in case you wish to proceed.' / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; run;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PROC REPORT DATA=WBG.Cheque_referral(where=(Staff_Email="&amp;amp;EMAIL")) nowd HEADLINE HEADSKIP&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(report)={background=whitex font_face="Arial" font_size=9pt just=left}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(column)={background=white CELLHEIGHT=2.5% font_face="Arial" font_size=9pt just=left}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;style(header)={foreground=white&amp;nbsp; font_face="Arial" font_size=10pt just=left background=green};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;columns 'S.No.'n QUEUENAME BUSINESSCATEGORY PROFITCENTER RMCODE RMNAME CUSTOMERNAME CUSTACCOUNTNO AMOUNT ODTODATPOSTING REFERREDREASON;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Proc odstext;&lt;/DIV&gt;&lt;DIV&gt;p "Note: This is an automated email from SAS." / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;p "Any questions please reach out to CIBG Service quality Team." / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;p "Thankyou," / style=[fontsize=11pt];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;data _null_;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;file mail;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;html&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;body&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;span style="font-size: 10pt; font-family: Arial, serif;"&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Dear &amp;amp;EMAIL,&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Seeking your kind attention to the below pending cheque in Referral queue. The details are appended in below table for your easy reference. Kindly clear the same in case you wish to proceed.&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Note: This is an automated email from SAS.&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Any questions please reach out to CIBG Service quality Team.&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;br&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;Thanks and Regards,&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;p&amp;gt;CIBG Service quality Team&amp;lt;/p&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/span&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/body&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;put '&amp;lt;/html&amp;gt;';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ods html close;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;%end;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;%mend t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;%t;&lt;/DIV&gt;</description>
      <pubDate>Sat, 16 Mar 2024 16:00:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/File-in-use-error-in-SAS-Email-macro/m-p/920556#M362553</guid>
      <dc:creator>SASUserRocks</dc:creator>
      <dc:date>2024-03-16T16:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: File in use error in SAS Email macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/File-in-use-error-in-SAS-Email-macro/m-p/920593#M362569</link>
      <description>&lt;P&gt;You have an unnecessary PROC SQL in your macro, but that's mostly cosmetic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have the ODS destination to the email file reference open while you try to use it in a DATA _NULL_ step. Do everything through ODS. As far as I can see, that DATA step only duplicates what you already do with ODSTEXT.&lt;/P&gt;</description>
      <pubDate>Sun, 17 Mar 2024 09:35:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/File-in-use-error-in-SAS-Email-macro/m-p/920593#M362569</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2024-03-17T09:35:03Z</dc:date>
    </item>
  </channel>
</rss>

