Anwendungsentwicklung

Anwendungen entwickeln und SAS in andere Umgebungen integrieren: Entwickeln von Web-Oberflächen mit SAS/Intrnet und SAS/AppDevStudio, Integration von SAS-Technologie in Java- und .Net-Anwendungen mit SAS Integration Technologies, Client-Server-Betrieb mit SAS/CONNECT, Anwendungsentwicklung mit SAS/AF und SAS/FSP, Entwicklung eigener SAS-Prozeduren mit SAS/TOOLKIT.

HTML-Mail aus SAS: Absenderinformation

Hallo,

wünsche ein schönes Neues Jahr und beginne es mal mit einem Luxusproblem.

Beim HTML-Mailversand aus SAS heraus wird der Absender folgendermassen in Outlook angezeigt:

UserID@ap4711.unternehmen.com im Auftrag von Grohmann, Friederike

Gibt es eine Möglichkeit, diese Information zu unterdrücken, d.h. nur den Absender-Namen in der Mail anzuzeigen?

FILENAME mail EMAIL
to = "&mailadr."
from = "&mailadr."
SUBJECT="Programm '&_CLIENTTASKLABEL' per &JJ.&MM. &Meldung.";

DATA _NULL_;
FILE mail;

Software mit integrierter SAS-Sprache

Hallo,

habe mal gehört, dass es eine kostenlose Software mit der Entwicklungsumgebung mit integrierten Elementen der SAS-Sprache gibt. Hat jemand was davon gehört?

Java & Sas

Hallo Sas-Community,

ich nutze eine Java Anwendung, um auf SAS Dateien zuzugreifen. Dazu verwende ich den com.sas.rio.MVADriver Treiber, baue eine JDBC Verbindung auf und nutze die Standard Java-SQL-Connection um Abfragen auszuführen.

Meine Frage: Unterstützt SAS tatsächlich preparedStatements? Ich habe bei einigen einfachen Tests keinen nennenswerten Geschwindigkeitsvorteil bemerken können.

Viele Grüße,
Jens

XML-Chunks mit SAS

Hallo zusammen,

ich arbeite selber nicht mit SAS, suche aber nach einem Hinweis, wie man folgendes Problem lösen kann.
Ich habe einen recht einfachen Report, der eigentlich nur eine Liste von Nummern enthält.
Jede Zeile des Reports muss in jeweils eine XML-Datei gepackt werden.

Also z.B.

AuftragsId
123456
111111
222222
333333

-> Auftrag123456.xml
-> Auftrag111111.xml
-> Auftrag222222.xml
-> Auftrag333333.xml

Codeanalse

Hallo zusammen,

Ich würde gerne - ausgehend von Enterprise Guide Projekten mit vielen Code-Blöcken - aus dem SAS-Code eine "Ablaufstruktur" als Graph (Visio, graphml, svg, ...) erzeugen, in der die Eingangsdaten als Kästen, verbunden mit Pfeilen zum Code (data step, proc call, macro call) und die wiederum mit Pfeilen zu den Ausgangsdaten dargestellt sind.

Für

data test;
set x;
where ;
run;

Sollte also
x -> data step -> test

Mailversand aus SAS auf Basis einer Excel-Liste

Hallo,
ich habe ein Programm mit Macros geschrieben, dass auf Basis einer Excel-Liste mit je einer Mailadresse pro Zeile und der Angabe "CC" bzw. "An" (Variable Prio) die Ergebnisse eines SAS-Programmes als Mail versenden soll. Der Mailverteiler kann sich öfters ändern, daher wird die Anzeil Zeilen/Mailadressen jeweils ermittelt.
Bei Interesse...es funktioniert.

WARNING: Parallel WHERE evaluation suppressed ...

Hallo,

ich bekomme ständig die Fehlermeldung

WARNING: Parallel WHERE evaluation suppressed due to sort order on table(see SPDSEV1T/SPDSEV2T macro variables).

Ich habe allerdings keine Ahnung, weshalb diese Meldung kommt, was sie mir sagen soll und wie ich sie ggfs. eliminieren kann.

Weiß jemand mehr?

Grüße aus S
Wolfram Theurer

Grenzen von SAS 8.2

Morgen liebes Forum,
ich habe beim Kompilieren eines SCL-Programms folgende Meldung erhalten:

ERROR: Overflow has occurred; evaluation is terminated.
ERROR: Out of memory.

Das SCL-Programm hat 10002 Zeilen, incl Kommentarzeilen. Löscht man min 10 Zeilen, ist Kompilieren wieder möglich.

Das SAS 8.2 läuft aus einer SunFire 440, Solaris 9, mit folgendem Config-File:

-path !SASROOT/hotfix/sasexe
-sasscript (!SASROOT/misc/connect)
-sasautos ( '!SASROOT/sasautos' )
-sashelp ( '!SASROOT/hotfix/sashelp' '!SASROOT/sascfg' '!SASROOT/sashelp' )
-maps !SASROOT/maps

Bedingte Abarbeitung von Code

Guten Tag,

ich möchte ein SAS-Programm zweimal im Monat laufen lassen. Einmal wird ein kompletter Datenbestand verarbeitet und einmal nur ein Teil davon. Da das Programm beides Mal dasselbe tut, soll der Teil, der die zusätzlichen Daten aufruft nur dann laufen, wenn komplett verarbeitet werden soll.

Beispiel:

/* SAS-Befehle, Macro-Definition */
......

/* Aufruf der Verarbeitung */
%Berechnungs(Daten1);
%Berechnungs(Daten2);
%Berechnungs(Daten3);

/* Programmende */

Ich habe nun mit einigen Varianten versucht, den zweiten und dritten Aufruf nur dann auszuführen, wenn er benötigt wird. Z.B.:

Makros "überschreiben" und "Parent"-Makro rufen?

Hat jemand eine Idee, wie man ein existierendes Makro neu definieren und aus dem neuen Makro das alte rufen kann, ähnlich wie in objektorientierten Sprachen eine überschriebene Methode ihre Parent-Methode rufen kann?

Ziel ist also so etwas:

%macro x; /* alt */
%put Ich tu was.;
%mend;

%macro x; /* neu */
%x; /* hier soll aber die ALTE Version gerufen werden! */
%put Ich tu was zusätzliches.;
%mend;

Inhalt abgleichen