前のページ|次のページ

FILENAMEステートメント、WebDAVアクセス方式

WebDAVプロトコルを使用してリモートファイルにアクセスできます。

該当要素: 任意の場所
カテゴリ: データアクセス
制限事項: Open VMSでは、WebDAVサーバーへのアクセスはサポートされません。

構文

引数

fileref

有効なファイル参照名を指定します。

ヒント ファイル参照名と外部ファイルの関連付けは、SASセッション終了まで維持されるか、または他のFILENAMEステートメントで関連付けの変更や関連付けの取り消しを実行するまで維持されます。ファイルに対するファイル参照名は必要に応じて何度でも変更できます。

WEBDAV

このアクセス方式を指定すると、WebDAV(Web Distributed Authoring and Versioning)を使用したファイルの読み込みや書き込みを、WebDAVサーバーが稼働しているネットワーク上のホストコンピュータとの間で実行できるようになります。

'external-file'

WebDAVサーバーからの読み込みや書き込みの対象となるファイルの名前を指定します。外部ファイルは次のいずれかの形式で指定する必要があります。

http://hostname/path-to-the-file
https://hostname/path-to-the-file
http://hostname:port/path-to-the-file
https://hostname:port/path-to-the-file
要件 HTTPS通信プロトコルを使用する場合、保護されたネットワーク通信を可能にするTLSまたはSSLプロトコルを使用する必要があります。詳細については、Encryption in SASを参照してください。
動作環境 外部ファイルの物理名を指定する方法の詳細については、各動作環境向けのSASドキュメントを参照してください。

WebDAVオプション

webdav-optionsには、次のいずれかを指定できます。

AUTHDOMAIN="auth-domain"

WebDAVサーバーへの接続に使用する認証ドメインメタデータオブジェクトの名前を指定します。認証ドメインは、明示的に認証情報(ユーザーIDとパスワード)を指定する必要がない場合に、認証情報を参照します。

管理者は、SAS管理コンソールのユーザーマネージャを使用してユーザー定義を作成する間に、認証ドメインの定義を作成します。認証ドメインは、プロキシサーバーまたはWebサーバーへのアクセスを提供する1つまたは複数のログインメタデータオブジェクトに関連付けられています。この認証ドメインは、SAS Metadata Serverを呼び出し、認証情報を返すBASE Engineによって解決されます。
要件 認証ドメインおよび関連付けられたログイン定義はメタデータリポジトリに格納する必要があります。また、メタデータオブジェクトを解決するには、Metadata Server を稼働させる必要があります。
auth-domainでは大文字と小文字が区別されます。また、二重引用符で囲んで指定する必要があります。
操作 AUTHDOMAIN=を指定する場合、USER=およびPASS=を指定する必要はありません。
参照項目 認証ドメインの作成および使用方法の詳細については、SAS Intelligence Platform:Security Administration Guideの認証情報の管理のセクションを参照してください。

DEBUG

デバッグ情報をSASログに書き込みます。

DEL_ALL

ディレクトリとそのすべてのメンバを削除します。

要件 DEL_ALLオプションを使用する際は、DIRオプションが必要です。
WebDAVアクセス方式のデフォルト動作は削除できるディレクトリのみを空にすることです。DEL_ALLオプションを使用して、空でないディレクトリを削除してください。
参照項目 DIR

DIR

ディレクトリファイルにアクセスできるようにします。external-file引数にディレクトリ名を指定してください。指定したホストに対して有効なディレクトリ構文を使用する必要があります。

ヒント ファイル名に拡張子を追加する方法については、FILEEXTオプションを参照してください。

ENCODING='encoding-value'

外部ファイルからの読み込みや外部ファイルへの書き込みに使用するエンコーディングを指定します。ENCODING=の値は、外部ファイルのエンコーディングが現在のセッションエンコーディングとは異なることを示しています。

外部ファイルからデータを読み込む場合は、指定したエンコーディングからセッションエンコーディングにデータがトランスコードされます。外部ファイルにデータを書き込む場合は、セッションエンコーディングから指定したエンコーディングにデータがトランスコードされます。
デフォルト SASでは、外部ファイルのエンコーディングがセッションエンコーディングと同じであるとみなします。
参照項目 XisError: No pubcode in link data found for nlsref

FILEEXT

DIRオプションを使用するときは、ファイル拡張子をファイル名に自動的に追加するように指定します。

操作 自動呼び出しマクロ機能では、拡張子.SASが常にファイルアクセス方式に渡されます。この拡張子は自動呼び出しマクロライブラリ内のファイルを開くときに使用されます。DATAステップでは、拡張子.DATAが常に渡されます。自動呼び出しマクロライブラリに対してファイル参照名を定義し、そのライブラリにあるファイルの拡張子が.SASの場合、FILEEXTオプションを使用します。ライブラリに拡張子を持つファイルが存在しない場合は、FILEEXTオプションを使用しないでください。たとえば、DATAステップで入力ファイルにファイル参照名を定義し、そのファイルXの拡張子が.DATAの場合、ファイルX.DATAを読み込むためにFILEEXTオプションを使用します。INFILEまたはFILEステートメントを使用する場合は、大文字と小文字を維持するためにメンバ名と拡張子を引用符で囲みます。
ヒント INFILEまたはFILEステートメントでファイルの拡張子を指定すると、FILEEXTオプションは無視されます。
参照項目 LOWCASE_MEMNAMEオプション

LOCALCACHE=”directory name

サーバーファイルのローカルコピーを格納するための一時ディレクトリを作成するディレクトリを指定します。各ファイル参照名には固有のサブディレクトリがあります。ディレクトリを指定しない場合、SAS WORKディレクトリにサブディレクトリが作成されます。一時ファイルはSASプログラムが終了するときに削除されます。

デフォルト SAS WORKディレクトリ

LOCKDURATION=n

WebDAVファイル参照名を使用して書き込むファイルをロックする時間(分)を指定します。SASプログラムが正常に終了すると、ファイルのロックは解除されます。SASプログラムに問題が発生すると、指定した時間が経過した後にロックが解除されます。

デフォルト 30分

LOWCASE_MEMNAME

自動呼び出しマクロを使用して、WebDAVサーバーから小文字のディレクトリ名やメンバ名を取得できるようにします。

制限事項 SAS自動呼び出しマクロを使用して名前を取得するときは、常に大文字のディレクトリメンバ名を探します。大文字と小文字が混在するディレクトリ名やメンバ名はサポートされていません。
参照項目 FILEEXTオプション

LRECL=lrecl

このlreclには、データの論理レコード長を指定します。

デフォルト 256
操作 かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。

MKDIR="new-directory-name"

external-fileオプションに指定された親ディレクトリから作成される新規ディレクトリを指定します。

要件 指定したホストに対して有効なディレクトリ構文を使用する必要があります。
DIRオプションはMKDIRオプションと一緒に使用してください。
filename bankname webdav "http://webserver.com/parentdir/" 
   dir mkdir="testdir1" user="myid" pass="xxxx";

MOD

ファイルを更新モードに設定し、ファイルの最後に更新内容を追加します。

PASS='password'

このpasswordには、USERオプションで指定したユーザー名とともに使用するパスワードを指定します。パスワードでは大文字と小文字が区別されます。また、一重引用符か二重引用符で囲んで指定する必要があります。

別名 PASSWORD=, PW=, PWD=
ヒント 暗号化されたパスワードを使用する場合、テキスト文字列を隠すためにPWENCODEプロシジャを使用します。次に、暗号化されたパスワードをPASS=オプションに入力します。詳細についてはXisError: No pubcode in link data found for procを参照してください。

PROMPT

必要に応じて、ユーザーのログオンパスワードの入力を求めるプロンプトを表示するように指定します。

操作 USER=、PASS=、PROMPTの3つのオプションをすべて指定すると、USER=オプションとPASS=オプションはPROMPTオプションより優先されます。PROMPTオプションを指定してUSER=またはPASS=オプションを指定しない場合、ユーザーIDとパスワードの入力を求めるプロンプトが表示されます。

PROXY=url

プロキシサーバーのURL(Uniform Resource Locator)を次のどちらかの形式で指定します。

http://hostname/
http://hostname:port/

RECFM=recfm

このrecfmには、次の2つのレコード形式のどちらかを指定します。

S

ストリームレコード形式です。データはイメージ(バイナリ)モードで転送されます。

ENCODING=UTF8またはその他のUnicodeエンコーディングの場合は特に、PDFまたはその他のバイナリファイルに対してRECFM=Sを指定することをお勧めします。指定しなかった場合、ファイルの先頭にバイトオーダーマーク(BOM)が書き込まれ、正しくないコンテンツの種類が生成されます。
ヒント 読み込むデータ量は、現在のLRECLの値またはINFILEステートメントに指定したNBYTE=変数の値で制御されます。NBYTE=オプションには、読み込まれるデータ量に等しくなる変数を指定します。このデータ量は、LRECLに指定した値に等しいか、それ以下の値にする必要があります。PDFやGIFなどのサイズの大きいバイナリファイルの転送時に問題が発生しないようにするには、NBYTE=1に設定して1度に1バイトずつ転送するようにします。
参照項目 INFILEステートメントのNBYTE=オプション

V

可変長レコード形式(デフォルト設定)です。この形式では、レコードの長さが異なります。また、レコードはテキスト(ストリーム)モードで転送されます。

ヒント LRECLの値よりも大きいレコードは切り捨てられます。
デフォルト V

USER='username'

このusernameはURLサーバーにログオンするために使用されます。ユーザーIDでは大文字と小文字が区別されます。また、一重引用符か二重引用符で囲んで指定する必要があります。

別名 UID=

詳細

基本

WebDAVサーバーにアクセスしてファイルを更新すると、ファイルはWebDAVサーバーから処理を実行するローカルディスクストレージに取得されます。処理が完了すると、ファイルは格納先のWebDAVサーバーに送信されます。このファイルは、送信後にローカルディスクから削除されます。
URLが“http”ではなく“https”で始まるときは、TLS (Transport Layer Security)プロトコルが使用されます。TLSとその先行プロトコルであるSSL (Secure Sockets Layer)は、インターネット経由で通信セキュリティを提供するために設計された暗号化プロトコルです。また、TLSおよびSSLプロトコルは、ネットワークデータのプライバシー、データ整合性、認証を提供します。さらに、TLSは、暗号化サービスを提供する以外にも、クライアントおよびサーバー認証を実行するほか、メッセージ認証コードを使用してデータ整合性を確保します。TLSプロトコルを使うと、クライアント/サーバーアプリケーションは、盗聴や改ざんを防ぐために設計された方法を通じて、ネットワーク通信が行えるようになります。TLSは、すべての主要ブラウザでサポートされています。
アクセス先のWebDAVサーバーの名前は、そのサーバーに対して作成されたTLSまたはSSL証明書の名前と一致する必要があります。UNIXおよびz/OS動作環境の場合、TLSまたはSSL証明書は、ASCIIファイルに保存し、SSLCALISTLOC=システムオプションで参照する必要があります。SSLCALISTLOC=システムオプションでは、信頼チェーンにおけるすべての信頼された証明機関(CA)の公開証明書を含む単一ファイルの場所が指定されます。Windows動作環境では、TLSまたはSSL証明書は、コンピュータの証明書ストアにインポートする必要があります。
注: TLSに関する説明はすべて、先行プロトコルであるSSLに対しても適用されます。
注: WebDAVサーバーではディレクトリレベルとファイルレベルの両方で権限のレベルを定義します。WebDAVアクセス方式では、これらの権限が適用されます。たとえば、ファイルが読み取り専用で使用できる場合、ユーザーはそのファイルを変更することはできません。
動作環境の情報: FILENAMEステートメントを使用する場合は、動作環境固有の情報が必要になります。WebDAVアクセス方式の詳細はここに記載されていますが、ファイル名の指定方法の詳細については、各動作環境向けのSASドキュメントを参照してください。

SharePointのファイルへの書き込み

FILENAMEステートメント、WebDAVアクセス方式を使用して、SharePointドキュメントライブラリのファイルへの書き込みができます。SharePointサイトのファイルに書き込みをするには、SHAREPOINT_COMP_MODE環境変数を設定してください。
その環境変数の構文は次のようになります。
SHAREPOINT_COMP_MODE write-value

write-value

は次の値のどれかになります。

1 | YES | TRUE

SharePointドキュメントライブラリにファイルが書き込めると指定します。

0 | NO | FALSE

SharePointドキュメントライブラリにファイルが書き込めないと指定します。

デフォルト 0
この環境変数は様々な方法で設定できます(たとえば、コードやautoexecファイルや設定ファイルなど)。SET=システムオプションを使用して環境変数を設定する例は次のようになります。
options set=sharepoint_comp_mode 1;
SharePoint環境変数を設定しないと、SharePointサーバーはSASが送るデータを受け付けてくれません。エラーは返されず、書き込みしようとしたファイルも使用できません。
注: SharePoint 2003はサポートしていません。

例1: Webサイトのファイルへのアクセス

この例では、サイトwww.mycompany.comにあるファイルrawFile.txtにアクセスします。
filename foo webdav 'https://www.mycompany.com/production/files/rawFile.txt'
   user='wong' pass='jd75ld';
data _null_;
   infile foo;
   input a $80.;
run;

例2: プロキシサーバーの使用

この例では、プロキシサーバーotherwebsvr:80を使用してファイルacctgfile.datにアクセスします。
filename foo webdav 'https://webserver.com/webdav/acctgfile.dat' 
   user='sanchez' pass='239sk349exz'
   proxy='http://otherwebsvr.com:80';
data _null_;
   infile foo;
   input a $80.;
run;

例3: 新ディレクトリメンバへの書き込み

この例では、ファイルSHOESをディレクトリTESTINGに書き込みます。
filename writeit webdav
   "https://webserver.com:8443/webdav/testing/"
    dir user="webuser" pass=XXXXXXXXX;
    data _null_;
       file writeit(shoes);
       set sashelp.shoes;
       put region $25. product $14.;
    run;

例4: ディレクトリメンバからの読み込み

この例では、ファイルをSHOESをディレクトリTESTING1から読み込みます。
filename readit webdav
   "https://webserver.com:8443/webdav/testing1/"
   dir user="webuser" pass=XXXXXXXXX;
   data shoes;
      length region $25  product $14;
      infile readit(shoes);
      input region $25. product $14.;
   run;

例5: 自動呼び出しマクロライブラリとしてWebDAVの場所を使用する

デフォルトでは、自動呼び出しマクロ機能はファイル名が大文字であるとみなします。この例では、自動呼び出しマクロライブラリWRITEITにあるファイルMYTESTにアクセスします。
filename writeit webdav
   "https://webserver.com/webdav/macrolib"
      dir fileext user="webuser" pass=XXXXXXXXX;
options SASAUTOS=(writeit);
/* expects a file called MYTEST.SAS */
%MYTEST;

例6: 小文字の自動呼び出しマクロメンバへのアクセス

次の例では、自動呼び出しマクロライブラリLISTにあるファイルtestmem.sasにアクセスします。名前に小文字を使用したファイルにアクセスするため、LOWCASE_MEMNAMEオプションが使用されています。
filename list webdav "https://t1234.na.fyi.com:8443/accounting/"
   dir fileext user="xxxxx" pass="xxxxx" LOWCASE_MEMNAME;
options sasautos=(list);
%testmem;

例7: %INCLUDEステートメントとマクロ呼び出しを使用した小文字の自動呼び出しマクロメンバへのアクセス

次の例では、自動呼び出しマクロライブラリMYTESTにあるファイルtestmem.sasにアクセスします。%%INCLUDEステートメントを使用してこのファイルにアクセスしているため、大文字小文字の区別は保持されます。
filename mytest webdav "https://t1234.na.fyi.com:8443/payroll/"
   dir user="xxxxxx" pass="xxxxx";
%include mytest(testmem.sas) /source2;
%testmem;
ファイル名が大文字の場合、%INCLUDEステートメントでのファイル名の参照やマクロの呼び出しには大文字を使用する必要があります。
%include mytest(TESTMEM.SAS) /source2;
%TESTMEM;

例8: 大文字小文字を名前に含むファイルへのアクセス

次の例では、productionディレクトリからファイルfileNOextにアクセスします。このファイルはINFILEステートメントで使用されているので、大文字小文字の区別は保持され、ファイルの拡張子は無視されます。
filename test webdav "https://t1234.na.fyi.com:8443/production"
     dir user="xxxxxx" pass="xxxxx";
data _null_;
   infile test('fileNOext');
   input;
   list;
run;

例9: FILEEXTオプションを使用してファイル拡張子を自動的に追加する

次の例では、salesディレクトリからファイルtestmem.sasにアクセスします。FILEEXTオプションによって、.DATAがファイル拡張子として自動的に追加されます。読み込まれるメンバ名はtestmem.DATAになります。
filename listing webdav "https://t1234.na.fyi.com:8443/sales"
     dir fileext user="xxxxxx" pass="xxxxx";
data _null_;
   infile listing(testmem);
   input;
   list;
run;

例10: 数字を含むディレクトリの削除

この例では、newusersディレクトリは数字を含んでおり、ディレクトリの削除は失敗します。
filename newusers webdav "https://t1234.na.fyi.com:8443/production"
     dir user="xxxxxx" pass="xxxxx";

/**** cannot delete newusers because it has members ****/
data _null_;
   rc=fdelete("newusers");
   put rc=;
run;

/ **** can delete newusers because del_all in filename statement ****/
次の例では、FILENAMEステートメントにDEL_ALLオプションがついており、newusersディレクトリを削除することができます。
filename newusers webdav "https://t1234.na.fyi.com:8443/production"
     dir user="xxxxxx" pass="xxxxx" del_all;

/ **** can delete newusers because del_all option ****/
data _null_;
   rc=fdelete("newusers");
   put rc=;
run;

関連項目:

XisError: No pubcode in link data found for secref
システムオプション:
XisError: No pubcode in link data found for secref
前のページ|次のページ|ページの先頭へ