Как запустить VB. NET с командой X в SAS через Enterprise - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь использовать следующие программы sas для преобразования нескольких файлов rtf в файлы pdf с помощью VB. NET (команда X). Он отлично работал в P C sas. Однако при использовании его в SAS Enterprise он не выдавал сообщения об ошибке, но не выполнял преобразование в PDF.

Кто-нибудь знает, что здесь происходит? Что мне делать, чтобы это снова заработало? Спасибо!

    %macro vbs_pdf(rtfname=,pdfname=);
        data _null_;
             length vbscmd $ 400;
             file "temp.vbs";
             put 'Dim ObjWord';
             put 'set objWord = CreateObject("Word.Application")';
             put 'objWord.Visible = True';
             vbscmd='objWord.Documents.Open("'|| "&rtfname" ||'")';
             put vbscmd;
             vbscmd='objWord.ActiveDocument.SaveAs "'||"&pdfname"||'", 17';
             put vbscmd;
             put 'objWord.ActiveDocument.Close(False)';
             put 'objWord.Application.Quit(False)';
        run;options noxwait;
        data _null_;
             command="START /WAIT CScript temp.vbs //NoLogo";
             call system(command);
             command2="DEL temp.vbs ";
             call system(command2);
        run;
    %mend;

    options noxwait;

    data &prefix._toc; 
         set &prefix._toc; 
    call symput('count',compress(put(_n_,best.)));
    run;
    proc sql noprint;
         select filename
         into : rtf1- :rtf&count
         from &prefix._toc;
    run;

    %macro cvtpdfs;
        %do i=1 %to &count;
        %let mypdf=%scan(&&rtf&i,1,'.');
        %vbs_pdf(rtfname=&file2path./&&rtf&i,pdfname=&curpath/documents/pdf/&mypdf..pdf);
        %end;
    %mend;

    %cvtpdfs; 

1 Ответ

0 голосов
/ 05 августа 2020

По умолчанию в SAS EG команды X отключены. В ваших файлах конфигурации SAS для EG вы увидите -NOXCMD. Вы увидите больше здесь: https://blogs.sas.com/content/sasdummy/2009/11/19/using-the-x-and-systask-commands-from-sas-enterprise-guide/

...