Veröffentlicht am :
Datenqualität CREATION_INTERNE

PROC DMSRVPROCESSSVC

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Beispiel führt einen Verarbeitungsdienst auf einem DataFlux Data Management Server aus, der auf dem Standardport installiert ist. Die Option TIMEOUT gibt an, dass der Verarbeitungsdienst nach 360 Sekunden beendet wird, wenn er in diesem Zeitraum nicht abgeschlossen wird. Der Verarbeitungsdienst wird unter den in der Prozedur angegebenen Anmeldeinformationen ausgeführt. Der Verarbeitungsdienst wurde zuvor erstellt und auf den DataFlux Data Management Server hochgeladen.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) für Szenarien, in denen die Interaktion mit SAS-Daten gezeigt werden soll, auch wenn die Prozedur selbst einen externen Dienst aufruft.

1 Codeblock
PROC DMSRVPROCESSSVC
Erklärung :
Dieses Beispiel zeigt die einfachste Ausführung eines DataFlux-Verarbeitungsdienstes. Es gibt den Host (Standard localhost) und den Port des Data Management Servers sowie den Namen der auszuführenden Dienstdatei (.djf) an.
Kopiert!
1PROC DMSRVPROCESSSVC
2 HOST='http://localhost'
3 PORT=21036
4 SERVICE='mon_service_basique.djf';
5RUN;
2 Codeblock
PROC DMSRVPROCESSSVC
Erklärung :
Dieses Beispiel erweitert die Verwendung der Prozedur um Authentifizierungsinformationen (USERID und PASSWORD). Dies ist ein häufiges Szenario für Dienste, die einen sicheren Zugriff erfordern. HOST- und SERVICE-Werte sind hier Beispiele.
Kopiert!
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 Codeblock
PROC DMSRVPROCESSSVC Data
Erklärung :
Dieses Beispiel veranschaulicht die Verwendung der TIMEOUT-Option, die für langwierige Verarbeitungsdienste entscheidend ist. Ein kurzes Timeout wird definiert, um ein Szenario zu simulieren, in dem der Dienst nicht rechtzeitig antwortet. Der SAS-Code enthält auch einen DATA _NULL_-Schritt, um die automatische Makrovariable &SYSINFO. zu überprüfen, um festzustellen, ob die Prozedur einen Fehler, insbesondere eine Zeitüberschreitung, festgestellt hat, was eine programmgesteuerte Fehlerbehandlung ermöglicht.
Kopiert!
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 Codeblock
PROC DMSRVPROCESSSVC Data
Erklärung :
Dieses fortgeschrittene Beispiel veranschaulicht, wie die Prozedur DMSRVPROCESSSVC in einen SAS Viya-Workflow integriert werden kann, indem Makrovariablen verwendet werden, um die Ausführungsparameter zu dynamisieren. Abhängig von einer Umgebungsvariablen (z. B. 'PRODUCTION' oder 'DEVELOPPEMENT') werden Host, Port und Name des DataFlux-Dienstes angepasst. Dies simuliert eine notwendige Flexibilität in komplexen Bereitstellungen. Obwohl die Prozedur keinen CAS-Code direkt ausführt, wäre sie Teil einer Pipeline, in der Daten in CAS vorbereitet werden könnten, bevor sie vom DataFlux-Dienst verarbeitet werden, oder die Ergebnisse könnten wieder in CAS geladen werden.
Kopiert!
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. */
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.