Publié le :
Qualité de données CREATION_INTERNE

PROC DMSRVPROCESSSVC

Ce code est également disponible en : Deutsch English Español
En attente de validation
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.
Copié !
1PROC DMSRVPROCESSSVC
2 HOST='http://localhost'
3 PORT=21036
4 SERVICE='mon_service_basique.djf';
5RUN;
2 Bloc de code
PROC DMSRVPROCESSSVC
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.
Copié !
1PROC DMSRVPROCESSSVC
2 HOST='http://prod.dmserver.com'
3 PORT=21036
4 SERVICE='nettoyage_donnees_client.djf'
5 USERID='sasuser'
6 PASSWORD='mypassword123';
7RUN;
3 Bloc de code
PROC DMSRVPROCESSSVC Data
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é !
1/* Préparation de données factices si le service devait les consommer */
2DATA work.raw_data;
3 INPUT ID $ Name $;
4 DATALINES;
5101 Alice
6102 Bob
7103 Charlie
8;
9RUN;
10 
11%let service_name = 'analyse_transactions_longues.djf';
12%let server_host = 'http://dm.dev.internal.com';
13%let server_port = 21036;
14%let user_id = 'admin_user';
15%let user_pw = 'secure_pw';
16 
17PROC DMSRVPROCESSSVC
18 HOST=&server_host.
19 PORT=&server_port.
20 SERVICE=&service_name.
21 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.;
24RUN;
25 
26/* Vérification du code de retour pour la gestion des erreurs */
27DATA _NULL_;
28 IF &SYSINFO. NE 0 THEN DO;
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 ELSE DO;
33 PUT 'INFO: Le service de traitement &service_name. s''est terminé avec succès.';
34 END;
35RUN;
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é !
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 */
6%IF "&environnement." = "PRODUCTION" %THEN %DO;
7 %let dm_host = 'http://prod.dmserver.sas.com';
8 %let dm_port = 21040;
9 %let service_to_run = "&service_base_name._prod.djf";
10%END;
11%ELSE %DO;
12 %let dm_host = 'http://dev.dmserver.sas.com';
13 %let dm_port = 21036;
14 %let service_to_run = "&service_base_name._dev.djf";
15%END;
16 
17/* 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é) */
18DATA work.adresses_a_verifier;
19 INPUT ClientID $ Adresse $ CodePostal $;
20 DATALINES;
21C001 "10 Rue de la Paix" 75001
22C002 "25 Avenue des Champs" 75008
23;
24RUN;
25 
26/* Exécution du service de traitement avec les paramètres dynamiques */
27PROC 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';
33RUN;
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.