/****************************************************************************** * Programme : PROC DMSRVPROCESSSVC * Reference : PROCDMF449 * Source : https://www.wearecas.eu/en/sampleCode/PROCDMF449 ******************************************************************************/ /* --- BLOC 1 --- */ PROC DMSRVPROCESSSVC HOST='http://localhost' PORT=21036 SERVICE='mon_service_basique.djf'; RUN; /* --- BLOC 2 --- */ PROC DMSRVPROCESSSVC HOST='http://prod.dmserver.com' PORT=21036 SERVICE='nettoyage_donnees_client.djf' USERID='sasuser' PASSWORD='mypassword123'; RUN; /* --- BLOC 3 --- */ /* 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; /* --- BLOC 4 --- */ /* 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. */