Veröffentlicht am :
Dienstprogramm CREATION_INTERNE

Definition von HTTP-Headern für SASjs/server

Dieser Code ist auch verfügbar auf: English Español Français Deutsch
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Makro `%mfs_httpheader` akzeptiert zwei Parameter: `header_name` (der Name des festzulegenden HTTP-Headers) und `header_value` (der Wert dieses Headers). Es verwendet die globale Variable `sasjs_stpsrv_header_loc`, um den Speicherort der Datei zu bestimmen, in die die Header geschrieben werden sollen. Der Prozess umfasst das Zuweisen eines logischen Dateinamens (`filename`), das Öffnen der Datei im Anhängemodus (`fopen` mit 'A'), das Schreiben der Headerzeile (`fput`, `fwrite`) und schließlich das Schließen (`fclose`) und Freigeben (`filename`) der Datei. Fehlerbehandlungsmechanismen sind integriert, um den Erfolg der Dateioperationen zu überprüfen. Dieser Mechanismus ermöglicht eine dynamische Konfiguration der HTTP-Header durch den SAS©-Code selbst, insbesondere für GET-Anfragen an den SASjs-Server.
Verwandte Makros und Dateien, die in der Dokumentation erwähnt werden:
  • `mcf_stpsrv_header.sas©` (verknüpftes Makro)
  • ` @code_sas©_json/liblist.json` (Dokumentation eines `liblist`-Makros zum Auflisten von SAS©-Bibliotheken)
  • ` @code_sas©/_version.sas©` (Dienstprogramm-Makro für die SAS©-Version)
  • ` @code_sas©/mm_getdetails.sas©` (Makro zum Extrahieren von Metadatenattributen und -assoziationen)
  • ` @code_sas©/print_macro_parameters.sas©` (Makro zum Drucken von Makroparametern)
  • ` @code_sas©_json/datastep_infile_trick.json` (Dokumentation einer Technik zur Datenbegrenzung)
  • ` @html/SAS© Help Center_ accessPersonalCaslibs Action.html Help Center_ isAuthorized Action.html` (Dokumentation zur CAS-Aktion `isAuthorized`).
Datenanalyse

Type : CREATION_INTERNE


Das Makro verwendet keine externen oder internen SAS-Daten (wie SASHELP) als Quelle für seine Hauptverarbeitung. Sein Ziel ist es, eine Textdatei im Dateisystem zu erstellen oder zu ändern, um das Verhalten des SASjs-Servers zu beeinflussen. Die Quelle der Header-Daten (Name und Wert) wird über die Makroparameter bereitgestellt.

1 Codeblock
MACRO mfs_httpheader Data
Erklärung :
Dieser Codeblock definiert das Makro `%mfs_httpheader`. Es deklariert globale und lokale Variablen, die für die Dateiverwaltung erforderlich sind. Das Makro beginnt mit dem Versuch, einen Fileref (`fref`) dem durch die globale Variable `sasjs_stpsrv_header_loc` angegebenen Dateipfad zuzuweisen. Schlägt dieser Vorgang fehl, wird ein Fehler zurückgegeben. Anschließend wird diese Datei im Anhängemodus (`A`) geöffnet, um Inhalte hinzuzufügen, ohne vorhandene zu überschreiben. Bei einem Fehler beim Öffnen wird ebenfalls ein Fehler gemeldet. Das Makro schreibt dann das Paar `header_name: header_value` in die Datei, wobei sichergestellt wird, dass Sonderzeichen korrekt verarbeitet werden (`%str`). Nach dem Schreiben wird die Datei geschlossen und der Fileref freigegeben. Diese Operationen verwenden die `%sysfunc`-Funktionen mit den SAS-Datei-E/A-Funktionen (`filename`, `fopen`, `fput`, `fwrite`, `fclose`).
Kopiert!
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;
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.