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.
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í.
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!
/* 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 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!
/* 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. */
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.