Saltar al contenido

Error de disparo SAS en el programa SAS ejecutado desde SAS-EG

Solución:

Puedes intentar usar:

put 'ERROR:' '/*customize error text here*/';

Si desea dejar de ejecutar el paso de datos, puede usar stop declaración, por ejemplo:

DATA _NULL_;
   IF prxmatch("/^TBDLZLd{4}_[A-Z]/",&tablename_in) eq 0 then do;
       put 'ERROR:' "table name &tablename_in" does not match;
       stop; 
   END;
RUN;

Si tiene macros y desea obtener un mensaje de ERROR en el paso de ejecución de macros, puede usar %put:

%put ERROR: /*customize error text here*/;

Gracias @Tom

Tenga en cuenta el “truco” de romper la palabra ERROR (put ‘ERR’ ‘OR:’...) en dos partes solo es necesario si está utilizando una búsqueda tonta de sus registros en busca de errores. Los mensajes de error SAS normales en el registro siempre aparecen al principio de la línea. SAS / Studio, por ejemplo, no marca falsamente las líneas de programa que contienen ERROR como si fueran errores reales.

Gracias @MichaelKersten

Otro buen truco para NOTAS, ADVERTENCIAS y ERRORES de varias líneas es reemplazar el “:” con un “-” para la segunda línea y las consecutivas. Ejemplo:

%put WARNING: first line of warning; 
%put WARNING- second line of warning;

Utilizar el ABORT CANCEL declaración. El paso de datos dejará de ejecutarse y los siguientes pasos del código enviado no se procesarán.

Por ejemplo:

data _null_;
  set sashelp.class;
  if name = "John" then do;
    put 'ERR' 'OR: My error message';
    abort cancel;
  end;
run;

* This step is not done due to earlier ABORT CANCEL;
data _null_;
  set sashelp.class;
  where name like 'J%';
run;

De ayuda:

CANCELAR

provoca la cancelación de la ejecución de las declaraciones enviadas. Las acciones dependen del método de operación.

  • modo por lotes y modo no interactivo

    • finaliza todo el programa SAS y el sistema SAS.
    • escribe un mensaje de error en el registro SAS.
  • entorno de ventanas y modo de línea interactiva

    • borra solo el programa presentado actualmente.
    • no afecta a otros programas enviados posteriormente.
    • escribe un error en el registro SAS.
  • servidor de espacio de trabajo y servidor de proceso almacenado

    • borra solo el programa enviado actualmente.
    • no afecta a otras llamadas de envío posteriores.
    • escribe un mensaje de error en el registro SAS.
  • Servidor de aplicaciones SAS IntrNet

    • crea una ejecución separada para cada solicitud y envía el código de solicitud. Un argumento CANCEL en el código de solicitud borra el código enviado actual pero no termina la ejecución o la sesión SAS.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *