session actionstatus

Suivi d'un job de résumé de données en cours

Scénario de test & Cas d'usage

Contexte Métier

Un analyste de données lance un résumé statistique sur une table de ventes. L'opération étant potentiellement longue, il la lance en asynchrone et souhaite pouvoir vérifier son état d'avancement depuis une autre session sans interrompre son travail.
À propos du Set : session

Gestion de l'état de la session CAS.

Découvrir toutes les actions de session
Préparation des Données

Création d'une table de ventes simulée dans la librairie CASUSER.

Copié !
1PROC CAS;
2 dataStep.runCode / code='data casuser.SALES_DATA;
3 do transaction_id = 1 to 50000;
4 sale_amount = 100 + rand("INTEGER", 1, 500);
5 product_id = "P" || put(rand("INTEGER", 1, 20), z3.);
6 output;
7 end;
8run;';
9RUN;

Étapes de réalisation

1
Lancement d'une action 'summary' de longue durée de manière asynchrone et récupération de l'UUID de la session.
Copié !
1PROC CAS;
2 SESSION.startSession RESULT=r_sess name='long_job_session';
3 job_uuid = r_sess['session'];
4 PRINT 'UUID de la session du job: ' job_uuid;
5 
6 /* Lancer l'action summary de manière asynchrone dans cette session */
7 SIMPLE.summary / TABLE='SALES_DATA', SESSION=job_uuid, async='summary_task';
8RUN;
2
Vérification du statut de l'action asynchrone depuis la session principale en utilisant son UUID.
Copié !
1PROC CAS;
2 /* La variable 'job_uuid' doit contenir la valeur obtenue à l'étape 1 */
3 SESSION.actionstatus / uuid=job_uuid;
4RUN;

Résultat Attendu


La sortie de la dernière étape doit afficher une table contenant le statut de l'action 'simple.summary'. Le statut peut être 'running' ou 'completed', indiquant que l'action `actionstatus` a réussi à interroger la session cible et à rapporter un état cohérent.