Publicado el :
Calidad de datos CREATION_INTERNE

PROC DMSRVPROCESSSVC

Este código también está disponible en: Deutsch English Français
En espera de validación
Este ejemplo ejecuta un servicio de procesamiento en un servidor DataFlux Data Management instalado en el puerto predeterminado. La opción TIMEOUT especifica que el servicio de procesamiento finalizará después de 360 segundos si no concluye en ese período. El servicio de procesamiento se ejecuta bajo las credenciales especificadas en el procedimiento. El servicio de procesamiento ha sido previamente creado y cargado en el servidor DataFlux Data Management.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) para escenarios donde se desea mostrar la interacción con datos SAS, aunque el procedimiento en sí invoca un servicio externo.

1 Bloque de código
PROC DMSRVPROCESSSVC
Explicación :
Este ejemplo muestra la ejecución más simple de un servicio de procesamiento DataFlux. Especifica el host (localhost por defecto) y el puerto del servidor Data Management, así como el nombre del archivo de servicio (.djf) a ejecutar.
¡Copiado!
1PROC DMSRVPROCESSSVC
2 HOST='http://localhost'
3 PORT=21036
4 SERVICE='mon_service_basique.djf';
5RUN;
2 Bloque de código
PROC DMSRVPROCESSSVC
Explicación :
Este ejemplo extiende el uso del procedimiento incluyendo la información de autenticación (USERID y PASSWORD). Es un escenario común para servicios que requieren acceso seguro. Los valores HOST y SERVICE son ejemplos aquí.
¡Copiado!
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 Bloque de código
PROC DMSRVPROCESSSVC Data
Explicación :
Este ejemplo ilustra el uso de la opción TIMEOUT, crucial para servicios de procesamiento prolongados. Se establece un tiempo de espera corto para simular un escenario en el que el servicio no responde a tiempo. El código SAS también incluye un paso DATA _NULL_ para verificar la macrovariable automática &SYSINFO. y así detectar si el procedimiento encontró un error, incluyendo un tiempo de espera excedido, permitiendo una gestión programática de errores.
¡Copiado!
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 Bloque de código
PROC DMSRVPROCESSSVC Data
Explicación :
Este ejemplo avanzado ilustra cómo el procedimiento DMSRVPROCESSSVC puede integrarse en un flujo de trabajo de SAS Viya utilizando macrovariables para dinamizar los parámetros de ejecución. Dependiendo de una variable de entorno (por ejemplo, 'PRODUCTION' o 'DEVELOPPEMENT'), el host, el puerto y el nombre del servicio DataFlux se ajustan. Esto simula la flexibilidad necesaria en implementaciones complejas. Aunque el procedimiento no ejecuta directamente código CAS, formaría parte de un pipeline donde los datos podrían prepararse en CAS antes de ser procesados por el servicio DataFlux, o los resultados podrían recargarse en CAS.
¡Copiado!
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. */
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.