Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP.
1 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses Beispiel veranschaulicht die einfachste Verwendung der DMSRVDATASVC-Prozedur, um ein SAS-Dataset (`dqsio.dfsample`) an einen DataFlux-Dienst ('analyse_de_donnees.ddf') zu senden und die Antwort in einem neuen SAS-Dataset (`work.outsrv1_basic`) zu speichern. Es enthält die wesentlichen Parameter wie Host, Port, Dienstname sowie Authentifizierung und ein Timeout. Die Eingabedaten werden mit einem DATA-Schritt und `datalines` erstellt, um die Autonomie des Beispiels zu gewährleisten.
Kopiert!
/* Préparation des données d'entrée */
libname dqsio "%sysfunc(pathname(WORK))";
DATA dqsio.dfsample;
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
INPUT ID $ Nom $ Prenom $ Ville $;
DATALINES;
001 Dupont Jean Paris
002 Martin Sylvie Lyon
003 Durand Pierre Marseille
004 Petit Claire Bordeaux
005 LeGrand Michel Toulouse
;
RUN;
/* Envoi des données d'entrée à un service DataFlux et réception de la sortie */
PROC DMSRVDATASVC
HOST='http://localhost' /* Hôte du DataFlux Data Management Server */
PORT=21036 /* Port du service */
SERVICE='analyse_de_donnees.ddf' /* Nom du service DataFlux */
DATA=dqsio.dfsample /* Jeu de données SAS en entrée */
OUT=work.outsrv1_basic /* Jeu de données SAS de sortie */
TIMEOUT=36 /* Délai d'attente du service en secondes */
USERID='utilisateur_test'/* Identifiant de l'utilisateur du service */
PASSWORD='motdepasse_test';/* Mot de passe de l'utilisateur du service */
RUN;
/* Affichage des premières lignes du jeu de données de sortie */
PROC PRINT DATA=work.outsrv1_basic(OBS=5);
TITLE "Sortie Basique du Service DataFlux";
RUN;
1
/* Préparation des données d'entrée */
2
LIBNAME dqsio "%sysfunc(pathname(WORK))";
3
4
DATA dqsio.dfsample;
5
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
6
INPUT ID $ Nom $ Prenom $ Ville $;
7
DATALINES;
8
001 Dupont Jean Paris
9
002 Martin Sylvie Lyon
10
003 Durand Pierre Marseille
11
004 Petit Claire Bordeaux
12
005 LeGrand Michel Toulouse
13
;
14
RUN;
15
16
/* Envoi des données d'entrée à un service DataFlux et réception de la sortie */
17
PROC DMSRVDATASVC
18
HOST='http://localhost'/* Hôte du DataFlux Data Management Server */
19
PORT=21036/* Port du service */
20
SERVICE='analyse_de_donnees.ddf'/* Nom du service DataFlux */
21
DATA=dqsio.dfsample /* Jeu de données SAS en entrée */
22
OUT=work.outsrv1_basic /* Jeu de données SAS de sortie */
23
TIMEOUT=36/* Délai d'attente du service en secondes */
24
USERID='utilisateur_test'/* Identifiant de l'utilisateur du service */
25
PASSWORD='motdepasse_test';/* Mot de passe de l'utilisateur du service */
26
RUN;
27
28
/* Affichage des premières lignes du jeu de données de sortie */
29
PROC PRINTDATA=work.outsrv1_basic(OBS=5);
30
TITLE "Sortie Basique du Service DataFlux";
31
RUN;
2 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses Zwischenbeispiel zeigt, wie zusätzliche Optionen für eine bessere Nachverfolgbarkeit und Timeout-Kontrolle verwendet werden können. Die Option `TIMEOUT` wird auf 120 Sekunden erhöht. Die Optionen `LOGFILE` und `STATUSFILE` werden verwendet, um detaillierte Informationen zur Dienstausführung und zum Status zu protokollieren, was für die Fehlerbehebung und Überwachung entscheidend ist. Der Inhalt dieser Dateien wird anschließend mit einfachen DATA-Schritten angezeigt, um deren Abfrage zu simulieren.
Kopiert!
/* Préparation des données d'entrée (identique à l'exemple 1) */
libname dqsio "%sysfunc(pathname(WORK))";
DATA dqsio.dfsample;
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
INPUT ID $ Nom $ Prenom $ Ville $;
DATALINES;
001 Dupont Jean Paris
002 Martin Sylvie Lyon
003 Durand Pierre Marseille
004 Petit Claire Bordeaux
005 LeGrand Michel Toulouse
;
RUN;
/* Envoi des données d'entrée avec gestion des logs et un timeout plus long */
PROC DMSRVDATASVC
HOST='http://localhost'
PORT=21036
SERVICE='validation_adresse.ddf' /* Autre service, par exemple */
DATA=dqsio.dfsample
OUT=work.outsrv2_log
TIMEOUT=120 /* Délai d'attente étendu */
LOGFILE="/tmp/dmsrv_log.txt" /* Spécifie un fichier de log pour le service */
STATUSFILE="/tmp/dmsrv_status.txt" /* Fichier pour le statut d'exécution */
USERID='utilisateur_test'
PASSWORD='motdepasse_test';
RUN;
/* Affichage des premières lignes du jeu de données de sortie */
PROC PRINT DATA=work.outsrv2_log(OBS=5);
TITLE "Sortie avec Fichiers de Log et Statut";
RUN;
/* Affichage du contenu du fichier de log (si créé) */
FILENAME mylog "/tmp/dmsrv_log.txt";
DATA _NULL_;
INFILE mylog;
INPUT;
PUT _INFILE_;
RUN;
/* Affichage du contenu du fichier de statut (si créé) */
FILENAME mystatus "/tmp/dmsrv_status.txt";
DATA _NULL_;
INFILE mystatus;
INPUT;
PUT _INFILE_;
RUN;
1
/* Préparation des données d'entrée (identique à l'exemple 1) */
2
LIBNAME dqsio "%sysfunc(pathname(WORK))";
3
4
DATA dqsio.dfsample;
5
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
6
INPUT ID $ Nom $ Prenom $ Ville $;
7
DATALINES;
8
001 Dupont Jean Paris
9
002 Martin Sylvie Lyon
10
003 Durand Pierre Marseille
11
004 Petit Claire Bordeaux
12
005 LeGrand Michel Toulouse
13
;
14
RUN;
15
16
/* Envoi des données d'entrée avec gestion des logs et un timeout plus long */
17
PROC DMSRVDATASVC
18
HOST='http://localhost'
19
PORT=21036
20
SERVICE='validation_adresse.ddf'/* Autre service, par exemple */
21
DATA=dqsio.dfsample
22
OUT=work.outsrv2_log
23
TIMEOUT=120/* Délai d'attente étendu */
24
LOGFILE="/tmp/dmsrv_log.txt"/* Spécifie un fichier de log pour le service */
25
STATUSFILE="/tmp/dmsrv_status.txt"/* Fichier pour le statut d'exécution */
26
USERID='utilisateur_test'
27
PASSWORD='motdepasse_test';
28
RUN;
29
30
/* Affichage des premières lignes du jeu de données de sortie */
31
PROC PRINTDATA=work.outsrv2_log(OBS=5);
32
TITLE "Sortie avec Fichiers de Log et Statut";
33
RUN;
34
35
/* Affichage du contenu du fichier de log (si créé) */
36
FILENAME mylog "/tmp/dmsrv_log.txt";
37
DATA _NULL_;
38
INFILE mylog;
39
INPUT;
40
PUT _INFILE_;
41
RUN;
42
43
/* Affichage du contenu du fichier de statut (si créé) */
44
FILENAME mystatus "/tmp/dmsrv_status.txt";
45
DATA _NULL_;
46
INFILE mystatus;
47
INPUT;
48
PUT _INFILE_;
49
RUN;
3 Codeblock
PROC DMSRVDATASVC / DATA STEP Data
Erklärung : Dieses fortgeschrittene Beispiel demonstriert eine Verarbeitungskette, die mehrere Aufrufe an den DataFlux-Dienst unter Verwendung von Makrovariablen für Flexibilität beinhaltet. Der erste Aufruf (`SERVICE_1`) normalisiert Namen, und seine Ausgabe (`work.outsrv3_normalized`) wird dann als Eingabe für einen zweiten Dienst (`SERVICE_2`) verwendet, der Postleitzahlen anreichert. Die Verwendung von Makrovariablen ermöglicht die einfache Parametrisierung von Verbindungsdetails und Dienstnamen, was in Produktionsumgebungen oder für automatisierte Tests nützlich ist.
Kopiert!
/* Préparation des données d'entrée (un sous-ensemble pour l'exemple) */
libname dqsio "%sysfunc(pathname(WORK))";
DATA dqsio.dfsample;
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
INPUT ID $ Nom $ Prenom $ Ville $;
DATALINES;
001 Dupont Jean Paris
003 Durand Pierre Marseille
005 LeGrand Michel Toulouse
;
RUN;
/* Définition de macro-variables pour le service et l'authentification */
%LET DMS_HOST = http://localhost;
%LET DMS_PORT = 21036;
%LET DMS_USER = utilisateur_avance;
%LET DMS_PASS = motdepasse_avance;
%LET SERVICE_1 = normalisation_noms.ddf;
%LET SERVICE_2 = enrichissement_cp.ddf;
/* Première exécution : Normalisation des noms */
PROC DMSRVDATASVC
HOST="&DMS_HOST" PORT=&DMS_PORT
SERVICE="&SERVICE_1"
DATA=dqsio.dfsample
OUT=work.outsrv3_normalized
USERID="&DMS_USER" PASSWORD="&DMS_PASS";
RUN;
/* Deuxième exécution : Enrichissement des codes postaux (avec les données normalisées) */
/* Supposons que le service 'enrichissement_cp.ddf' utilise la sortie du premier service */
PROC DMSRVDATASVC
HOST="&DMS_HOST" PORT=&DMS_PORT
SERVICE="&SERVICE_2"
DATA=work.outsrv3_normalized /* Utilise la sortie du premier service comme entrée */
OUT=work.outsrv3_final
USERID="&DMS_USER" PASSWORD="&DMS_PASS";
RUN;
/* Affichage des premières lignes du jeu de données final */
PROC PRINT DATA=work.outsrv3_final(OBS=5);
TITLE "Sortie des Services Multiples DataFlux (Avancé)";
RUN;
1
/* Préparation des données d'entrée (un sous-ensemble pour l'exemple) */
2
LIBNAME dqsio "%sysfunc(pathname(WORK))";
3
4
DATA dqsio.dfsample;
5
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
6
INPUT ID $ Nom $ Prenom $ Ville $;
7
DATALINES;
8
001 Dupont Jean Paris
9
003 Durand Pierre Marseille
10
005 LeGrand Michel Toulouse
11
;
12
RUN;
13
14
/* Définition de macro-variables pour le service et l'authentification */
15
%LET DMS_HOST = http://localhost;
16
%LET DMS_PORT = 21036;
17
%LET DMS_USER = utilisateur_avance;
18
%LET DMS_PASS = motdepasse_avance;
19
%LET SERVICE_1 = normalisation_noms.ddf;
20
%LET SERVICE_2 = enrichissement_cp.ddf;
21
22
/* Première exécution : Normalisation des noms */
23
PROC DMSRVDATASVC
24
HOST="&DMS_HOST" PORT=&DMS_PORT
25
SERVICE="&SERVICE_1"
26
DATA=dqsio.dfsample
27
OUT=work.outsrv3_normalized
28
USERID="&DMS_USER" PASSWORD="&DMS_PASS";
29
RUN;
30
31
/* Deuxième exécution : Enrichissement des codes postaux (avec les données normalisées) */
32
/* Supposons que le service 'enrichissement_cp.ddf' utilise la sortie du premier service */
33
PROC DMSRVDATASVC
34
HOST="&DMS_HOST" PORT=&DMS_PORT
35
SERVICE="&SERVICE_2"
36
DATA=work.outsrv3_normalized /* Utilise la sortie du premier service comme entrée */
37
OUT=work.outsrv3_final
38
USERID="&DMS_USER" PASSWORD="&DMS_PASS";
39
RUN;
40
41
/* Affichage des premières lignes du jeu de données final */
42
PROC PRINTDATA=work.outsrv3_final(OBS=5);
43
TITLE "Sortie des Services Multiples DataFlux (Avancé)";
44
RUN;
4 Codeblock
PROC DMSRVDATASVC / PROC CASUTIL / DATA STEP Data
Erklärung : Dieses Beispiel zeigt, wie die DMSRVDATASVC-Prozedur in eine SAS Viya/CAS-Umgebung integriert wird. Die Eingabedaten werden zunächst mit PROC CASUTIL in eine CAS-Tabelle (`mycas.dfsample_cas`) geladen. Anschließend wird diese CAS-Tabelle als Eingabe an die DMSRVDATASVC-Prozedur übergeben, und das Ausgabedataset wird direkt in CAS (`mycas.outsrv4_cas`) erstellt und gespeichert. Dies ermöglicht es, die Leistung und die verteilten Verarbeitungsfunktionen von CAS für die Datenvorbereitung und -analyse vor und nach dem Aufruf des DataFlux-Dienstes zu nutzen. Eine Bereinigung der CAS-Tabellen ist inbegriffen.
Kopiert!
/* Établissement d'une session CAS et création d'une bibliothèque CAS */
CAS;
libname mycas cas;
/* Chargement des données d'entrée vers CAS */
libname dqsio "%sysfunc(pathname(WORK))"; /* Assurez-vous que dqsio pointe vers un emplacement valide */
DATA dqsio.dfsample;
LENGTH ID $10 Nom $20 Prenom $20 Ville $15;
INPUT ID $ Nom $ Prenom $ Ville $;
DATALINES;
001 Dupont Jean Paris
006 Dubois Sophie Nice
007 Bernard Marc Rennes
;
RUN;
PROC CASUTIL;
LOAD DATA=dqsio.dfsample OUTCASLIB=mycas OUTCASF=dfsample_cas;
RUN;
QUIT;
/* Envoi des données CAS à un service DataFlux et réception de la sortie en CAS */
PROC DMSRVDATASVC
HOST='http://localhost'
PORT=21036
SERVICE='verification_profil.ddf'
DATA=mycas.dfsample_cas /* Utilise un jeu de données CAS en entrée */
OUT=mycas.outsrv4_cas /* La sortie est directement chargée en CAS */
TIMEOUT=60
USERID='utilisateur_cas'
PASSWORD='motdepasse_cas';
RUN;
/* Affichage des premières lignes du jeu de données CAS de sortie */
PROC PRINT DATA=mycas.outsrv4_cas(OBS=5);
TITLE "Sortie du Service DataFlux (Intégration CAS)";
RUN;
/* Nettoyage : Suppression des tables CAS */
PROC CASUTIL;
DROP TABLE=dfsample_cas CASLIB=mycas;
DROP TABLE=outsrv4_cas CASLIB=mycas;
RUN;
QUIT;
CAS DISCONNECT;
1
/* Établissement d'une session CAS et création d'une bibliothèque CAS */
2
CAS;
3
LIBNAME mycas cas;
4
5
/* Chargement des données d'entrée vers CAS */
6
LIBNAME dqsio "%sysfunc(pathname(WORK))"; /* Assurez-vous que dqsio pointe vers un emplacement valide */
/* Envoi des données CAS à un service DataFlux et réception de la sortie en CAS */
23
PROC DMSRVDATASVC
24
HOST='http://localhost'
25
PORT=21036
26
SERVICE='verification_profil.ddf'
27
DATA=mycas.dfsample_cas /* Utilise un jeu de données CAS en entrée */
28
OUT=mycas.outsrv4_cas /* La sortie est directement chargée en CAS */
29
TIMEOUT=60
30
USERID='utilisateur_cas'
31
PASSWORD='motdepasse_cas';
32
RUN;
33
34
/* Affichage des premières lignes du jeu de données CAS de sortie */
35
PROC PRINTDATA=mycas.outsrv4_cas(OBS=5);
36
TITLE "Sortie du Service DataFlux (Intégration CAS)";
37
RUN;
38
39
/* Nettoyage : Suppression des tables CAS */
40
PROC CASUTIL;
41
DROP TABLE=dfsample_cas CASLIB=mycas;
42
DROP TABLE=outsrv4_cas CASLIB=mycas;
43
RUN;
44
QUIT;
45
46
CAS DISCONNECT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.