Publicado el :
Utilidad CREATION_INTERNE

Definición de Encabezados HTTP para SASjs/server

Este código también está disponible en: Deutsch English Français Español
En espera de validación
Attention : Este código requiere privilegios de administrador.
La macro `%mfs_httpheader` toma dos parámetros: `header_name` (el nombre del encabezado HTTP a definir) y `header_value` (el valor de este encabezado). Utiliza la variable global `sasjs_stpsrv_header_loc` para determinar la ubicación del archivo en el que escribir los encabezados. El proceso implica la asignación de un nombre de archivo lógico (`filename`), la apertura del archivo en modo de adición (`fopen` con 'A'), la escritura de la línea de encabezado (`fput`, `fwrite`) y finalmente el cierre (`fclose`) y la liberación (`filename`) del archivo. Se integran mecanismos de manejo de errores para verificar el éxito de las operaciones en los archivos. Este mecanismo permite una configuración dinámica de los encabezados HTTP por el propio código SAS©, especialmente para las solicitudes GET en el servidor SASjs.
Macros y archivos relacionados mencionados en la documentación:
  • `mcf_stpsrv_header.sas©` (macro relacionada)
  • ` @code_sas©_json/liblist.json` (documentando una macro `liblist` para listar las bibliotecas SAS©)
  • ` @code_sas©/_version.sas©` (macro de utilidad para la versión SAS©)
  • ` @code_sas©/mm_getdetails.sas©` (macro para extraer atributos y asociaciones de metadatos)
  • ` @code_sas©/print_macro_parameters.sas©` (macro para imprimir los parámetros de una macro)
  • ` @code_sas©_json/datastep_infile_trick.json` (documentando una técnica de delimitación de datos)
  • ` @html/SAS© Help Center_ accessPersonalCaslibs Action.html Help Center_ isAuthorized Action.html` (documentación sobre la acción `isAuthorized` de CAS).
Análisis de datos

Type : CREATION_INTERNE


La macro no consume datos SAS externos o internos (como SASHELP) como fuente para su procesamiento principal. Su objetivo es crear o modificar un archivo de texto en el sistema de archivos para influir en el comportamiento del servidor SASjs. La fuente de los datos de encabezado (nombre y valor) se proporciona a través de los parámetros de la macro.

1 Bloque de código
MACRO mfs_httpheader Data
Explicación :
Este bloque de código define la macro `%mfs_httpheader`. Declara variables globales y locales necesarias para la gestión de archivos. La macro comienza intentando asignar un fileref (`fref`) a la ruta del archivo especificada por la variable global `sasjs_stpsrv_header_loc`. Si esta operación falla, devuelve un error. Luego, abre este archivo en modo de adición (`A`) para añadir contenido sin sobrescribir el existente. En caso de que falle la apertura, también se informa de un error. La macro luego escribe el par `header_name: header_value` en el archivo, asegurándose de que los caracteres especiales se traten correctamente (`%str`). Después de la escritura, el archivo se cierra y el fileref se libera. Estas operaciones utilizan las funciones `%sysfunc` con las funciones de entrada/salida de archivos de SAS (`filename`, `fopen`, `fput`, `fwrite`, `fclose`).
¡Copiado!
1%macro mfs_httpheader(
2 header_name
3 ,header_value
4)/*/STORE SOURCE*/;
5%global sasjs_stpsrv_header_loc;
6%local fref fid i;
7 
8%IF %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %THEN %DO;
9 %put &=fref &=sasjs_stpsrv_header_loc;
10 %put %str(ERR)OR: %sysfunc(sysmsg());
11 %return;
12%END;
13 
14%let fid=%sysfunc(fopen(&fref,A));
15 
16%IF &fid=0 %THEN %DO;
17 %put %str(ERR)OR: %sysfunc(sysmsg());
18 %return;
19%END;
20 
21%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));
22%let rc=%sysfunc(fwrite(&fid));
23 
24%let rc=%sysfunc(fclose(&fid));
25%let rc=%sysfunc(filename(&fref));
26 
27%mend mfs_httpheader;
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.