Cet exemple exécute un service de traitement sur un serveur DataFlux Data Management installé sur le port par défaut. L'option TIMEOUT spécifie que le service de traitement se terminera après 360 secondes s'il ne se termine pas dans ce délai. Le service de traitement est exécuté sous les informations d'identification spécifiées dans la procédure. Le service de traitement a été préalablement créé et téléchargé sur le serveur DataFlux Data Management.
Analyse des données
Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) pour les scénarios où l'on souhaite montrer l'interaction avec des données SAS, même si la procédure elle-même appelle un service externe.
1 Bloc de code
PROC DMSRVPROCESSSVC
Explication : Cet exemple montre l'exécution la plus simple d'un service de traitement DataFlux. Il spécifie l'hôte (localhost par défaut) et le port du serveur Data Management, ainsi que le nom du fichier de service (.djf) à exécuter.
Explication : Cet exemple étend l'utilisation de la procédure en incluant les informations d'authentification (USERID et PASSWORD). C'est un scénario courant pour les services nécessitant un accès sécurisé. Les valeurs HOST et SERVICE sont ici des exemples.
Explication : Cet exemple illustre l'utilisation de l'option TIMEOUT, cruciale pour les services de traitement longs. Un délai d'attente court est défini pour simuler un scénario où le service ne répond pas à temps. Le code SAS inclut également une étape DATA _NULL_ pour vérifier la macro-variable automatique &SYSINFO. afin de détecter si la procédure a rencontré une erreur, notamment un dépassement de délai, permettant une gestion programmatique des erreurs.
Copié !
/* Préparation de données factices si le service devait les consommer */
DATA work.raw_data;
INPUT ID $ Name $;
DATALINES;
101 Alice
102 Bob
103 Charlie
;
RUN;
%let service_name = 'analyse_transactions_longues.djf';
%let server_host = 'http://dm.dev.internal.com';
%let server_port = 21036;
%let user_id = 'admin_user';
%let user_pw = 'secure_pw';
PROC DMSRVPROCESSSVC
HOST=&server_host.
PORT=&server_port.
SERVICE=&service_name.
TIMEOUT=10 /* Définit un timeout court de 10 secondes pour simuler une défaillance ou un processus trop long */
USERID=&user_id.
PASSWORD=&user_pw.;
RUN;
/* Vérification du code de retour pour la gestion des erreurs */
DATA _NULL_;
IF &SYSINFO. NE 0 THEN DO;
PUT 'AVERTISSEMENT: Le service de traitement &service_name. sur &server_host. a expiré ou a échoué. Code SYSINFO: ' &SYSINFO.;
/* Des actions spécifiques peuvent être ajoutées ici, comme l'envoi d'une alerte */
END;
ELSE DO;
PUT 'INFO: Le service de traitement &service_name. s''est terminé avec succès.';
END;
RUN;
1
/* Préparation de données factices si le service devait les consommer */
TIMEOUT=10/* Définit un timeout court de 10 secondes pour simuler une défaillance ou un processus trop long */
22
USERID=&user_id.
23
PASSWORD=&user_pw.;
24
RUN;
25
26
/* Vérification du code de retour pour la gestion des erreurs */
27
DATA _NULL_;
28
IF &SYSINFO. NE 0 THENDO;
29
PUT 'AVERTISSEMENT: Le service de traitement &service_name. sur &server_host. a expiré ou a échoué. Code SYSINFO: ' &SYSINFO.;
30
/* Des actions spécifiques peuvent être ajoutées ici, comme l'envoi d'une alerte */
31
END;
32
ELSEDO;
33
PUT 'INFO: Le service de traitement &service_name. s''est terminé avec succès.';
34
END;
35
RUN;
4 Bloc de code
PROC DMSRVPROCESSSVC Data
Explication : Cet exemple avancé illustre comment la procédure DMSRVPROCESSSVC peut être intégrée dans un flux de travail SAS Viya en utilisant des macro-variables pour dynamiser les paramètres d'exécution. En fonction d'une variable d'environnement (par exemple, 'PRODUCTION' ou 'DEVELOPPEMENT'), l'hôte, le port et le nom du service DataFlux sont ajustés. Cela simule une flexibilité nécessaire dans des déploiements complexes. Bien que la procédure n'exécute pas directement du code CAS, elle ferait partie d'un pipeline où les données pourraient être préparées dans CAS avant d'être traitées par le service DataFlux, ou les résultats pourraient être rechargés dans CAS.
Copié !
/* Simulation de paramètres dynamiques qui pourraient être passés dans un environnement Viya/CAS */
%let environnement = 'PRODUCTION'; /* Peut être 'DEVELOPPEMENT', 'PRODUCTION' */
%let service_base_name = 'validation_adresse';
/* Logique conditionnelle pour déterminer l'hôte/port/service en fonction de l'environnement */
%if "&environnement." = "PRODUCTION" %then %do;
%let dm_host = 'http://prod.dmserver.sas.com';
%let dm_port = 21040;
%let service_to_run = "&service_base_name._prod.djf";
%end;
%else %do;
%let dm_host = 'http://dev.dmserver.sas.com';
%let dm_port = 21036;
%let service_to_run = "&service_base_name._dev.djf";
%end;
/* Création de données SAS d'entrée pour le service (le service DataFlux y accéderait via une bibliothèque ou un fichier partagé) */
DATA work.adresses_a_verifier;
INPUT ClientID $ Adresse $ CodePostal $;
DATALINES;
C001 "10 Rue de la Paix" 75001
C002 "25 Avenue des Champs" 75008
;
RUN;
/* Exécution du service de traitement avec les paramètres dynamiques */
PROC DMSRVPROCESSSVC
HOST=&dm_host.
PORT=&dm_port.
SERVICE=&service_to_run.
USERID='viya_svc_user'
PASSWORD='viya_svc_password_secure';
RUN;
/* Note : La procédure DMSRVPROCESSSVC elle-même n'est pas une procédure CAS.
C'est l'environnement SAS Viya qui permet de gérer et de déclencher de telles procédures
et de passer des paramètres de manière dynamique, potentiellement après des traitements CAS. */
1
/* Simulation de paramètres dynamiques qui pourraient être passés dans un environnement Viya/CAS */
2
%let environnement = 'PRODUCTION'; /* Peut être 'DEVELOPPEMENT', 'PRODUCTION' */
3
%let service_base_name = 'validation_adresse';
4
5
/* Logique conditionnelle pour déterminer l'hôte/port/service en fonction de l'environnement */
/* Création de données SAS d'entrée pour le service (le service DataFlux y accéderait via une bibliothèque ou un fichier partagé) */
18
DATA work.adresses_a_verifier;
19
INPUT ClientID $ Adresse $ CodePostal $;
20
DATALINES;
21
C001 "10 Rue de la Paix"75001
22
C002 "25 Avenue des Champs"75008
23
;
24
RUN;
25
26
/* Exécution du service de traitement avec les paramètres dynamiques */
27
PROC DMSRVPROCESSSVC
28
HOST=&dm_host.
29
PORT=&dm_port.
30
SERVICE=&service_to_run.
31
USERID='viya_svc_user'
32
PASSWORD='viya_svc_password_secure';
33
RUN;
34
35
/* Note : La procédure DMSRVPROCESSSVC elle-même n'est pas une procédure CAS.
36
C'est l'environnement SAS Viya qui permet de gérer et de déclencher de telles procédures
37
et de passer des paramètres de manière dynamique, potentiellement après des traitements CAS. */
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.