IBM Books

解説書


汎用関数

汎用関数は、Net.Data による Web ページの作成を援助する関数であり、 他のカテゴリーには適合しません。汎用関数は次のとおりです。

DTW_ADDQUOTE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

入力ストリングの単一引用符を 2 つの単一引用符と置き換えます。

構文

@DTW_ADDQUOTE(stringIn, stringOut)

@DTW_rADDQUOTE(stringIn)

@DTW_mADDQUOTE(stringMult, stringMult2, ..., stringMultn)


表 27. DTW_ADDQUOTE のパラメーター
データ型 パラメーター 用途 説明
ストリング stringIn IN 変数またはリテラル・ストリング。DTW_mADDQUOTE は複数の入力ストリングをもつことができます。
ストリング stringOut OUT stringIn の変更形式が含まれている変数。
ストリング stringMult INOUT

  • 入力の場合: ストリングが含まれている変数。

  • 出力の場合: すべての単一引用符 (') 文字が 2 つの単一引用符文字と置き換えられた入力ストリングが含まれている変数。

戻りコード

表 28. DTW_ADDQUOTE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

入力が Web ブラウザーから取得される場合に、この関数をすべての SQL INPUT ステートメントに使用するものと考えてみます。 たとえば、以下の例のように O'Brien をラストネームとして入力すると、 単一引用符がエラーになることがあります。

INSERT INTO USER1.CUSTABLE (LNAME, FNAME)
VALUES ('O'Brien', 'Patrick')

DTW_ADDQUOTE 関数を使用すると、SQL ステートメントを変更してエラーを防止することができます。

INSERT INTO USER1.CUSTABLE (LNAME, FNAME)
VALUES ('O''Brien', 'Patrick')

例 1: エクストラ単一引用符を OUT パラメーターに追加します。

@DTW_ADDQUOTE(string1,string2)

例 2 エクストラ単一引用符を関数呼び出しの戻り値に追加します。

@DTW_rADDQUOTE("The title of the article is 'Once upon a time'")

例 3: エクストラ単一引用符を関数呼び出しの各 INOUT パラメーターに追加します。

@DTW_mADDQUOTE(string1,string2)

例 4: DB2 表に挿入するデータにエクストラ単一引用符を挿入します。

%FUNCTION(DTW_SQL) insertName(){
INSERT INTO USER1.CUSTABLE (LNAME,FNAME)
VALUES ('@DTW_rADDQUOTE(lastname)', '@DTW_rADDQUOTE(firstname)')
%}

DTW_CACHE_PAGE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X







目的

マクロ処理の結果として生成された、部分的または完全な Web ページをキャッシュします。

構文

@DTW_CACHE_PAGE(cacheid, url, age, status)


表 29. DTW_CACHE_PAGE のパラメーター
パラメーター 用途 説明
cache_id IN ページを入れるキャッシュを識別するストリング変数。
cached_page_ID IN 後続の DTW_CACHE_PAGE キャッシュ要求でキャッシュ・ページを見付けるために使用する識別子が含まれているストリング変数。 このストリングを URL にすることができます。
age IN 時間の長さ (秒数) が含まれているストリング変数。 このパラメーターは、 ページの有効期限が切れたかどうかを決定します。 ページが age よりも古い場合には、このページはブラウザーに送信されません。

age が -1 として指定され、ページがキャッシュに入っていると、 Net.Data は、それの経過日数とは無関係に、それをキャッシュから直接 Web ブラウザーに送信します。 Net.Data は、キャッシュ内でページの置換は行いません。

status OUT キャッシュ・ページの状態を示すストリング変数。使用できる値は小文字です。

  • ok: 出力ページは、マクロの実行が終了したときにキャッシュされます。

  • new: ページはキャッシュに入っていません。

  • renew: ページはキャッシュに入っていますが、有効期限が切れています。

  • no_cache: 指定されたキャッシュ識別子が存在しません。 このキャッシュ識別子は、キャッシュ構成ファイルに定義されていなければなりません。 ユーザー・マクロは、 ページのキャッシングを行わなくても実行を継続することができます。

  • inactive: ユーザーが指定したキャッシュが、 非活動状態としてマークされています。 ユーザー・マクロは、 ページのキャッシングを行わなくても実行を継続することができます。

  • busy: ユーザー・マクロがこの実行の前に DTW_CACHE_PAGE 組み込み関数を発行しました。 ユーザー・マクロは実行を継続することができます。

  • error: キャッシュと通信しようとしているときにエラーが起きました。

戻りコード

表 30. DTW_CACHE_PAGE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1002 入力パラメーターに、 ヌルで終わる文字からなるストリング値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。
1007 パラメーターに無効な値が含まれています。

使用上の注意

  1. DTW_CACHE_PAGE() を起動すると、この関数は指定されたページをキャッシュから取り出し、 それを、あたかもマクロから生成された出力ページであるかのように、Web ページに送信しようとします。 このページが見付かり、まだ有効期限が切れていなければ、 Net.Data はマクロ処理を停止し、マクロを終了し、 キャッシュ・ページを Web ブラウザーに送信します。

    要求されたページがキャッシュに入っていないか、 または既存のキャッシュ・ページが age の値よりも古ければ、 Net.Data は新規の出力ページを生成します。マクロが正常に完了すると、Net.Data は新規ページをブラウザーに送信し、このページをキャッシュします。

  2. ほとんどのキャッシング・アプリケーションでは、マクロの先頭で DTW_CACHE_PAGE() を指定して、 マクロ実行時に生成されるすべての Web ページをキャッシュします。 この手法により、マクロの更新時におけるマクロの保守が容易になります。 たとえば、 関数がマクロの中間に入っていたりすると、 マクロの始めの部分で HTML レポート・セクションを追加するときに、 この関数を見過ごす可能性があります。 Net.Data は新規のレポート出力をキャッシュしません。さらに、 この方法を使用するとパフォーマンスも向上します。 それは、ページのキャッシングを決定するときに、 Net.Data がそれ以降のすべての処理を停止するからです。

    拡張キャッシング・アプリケーションの場合は、マクロの先頭ではなく、 処理時の特定の時点でキャッシングを決定しなければならないときに、 関数をマクロの指定位置に配置することができます。 たとえば、照会または関数呼び出しからいくつの行が戻されたかに基づいて、 キャッシングの決定を行わなければならない場合があります。

例 1: マクロの先頭に DTW_CACHE_PAGE() 関数を入れて、 すべての HTML 出力を取り込みます。

%IF (customer_status == "Classic")
 @DTW_CACHE_PAGE("mymacro.mac", "http://www.mypage.org", "-1", status)
  %ENDIF 
 % DEFINE { ...%}
 
...
 
%HTML (OUTPUT) {
 <title>This is the page title
 </head>
 <body>
 <center>
 This is the Main Heading
 <p>It is $(time). Have a nice day!
 </body>
 </html>
  
%} 

例 2: キャッシングの決定が HTML 出力の予期サイズに依存しているため、 関数を HTML ブロックに入れます。

%DEFINE { ...%}
 
...
 
%FUNCTION(DTW_SQL) count_rows(){
  select count(*) from customer
 %REPORT{
%ROW{
  @DTW_ASSIGN(ALL_ROWS, V1)
%}
%}
%}
 
%FUNCTION(DTW_SQL) all_customers(){
 select * from customer
%}
 
%HTML (OUTPUT) {
  <html>
 <head>
 <title>This is the customer list
 </head>
  <body>
 
@count_rows()
 
 %IF ($(ALL_ROWS) > "100")
 @DTW_CACHE_PAGE("mymacro.mac", "http://www.mypage.org", "-1", status)
  %ENDIF
 
@all_customers() 
 
  </body>
  </html>
%}

この例では、HTML の予期サイズに基づいて、ページのキャッシングまたは検索を行います。 HTML 出力ページは、 データベース表に 101 行以上含まれているときにのみキャッシングの価値があると考えられます。 Net.Data は、マクロを実行した後、常に、 OUTPUT ブロックのテキスト This is the customer list をブラウザーに送信します。 関数呼び出しの後に続く行 @count_rows() は、 IF ブロックの条件が満たされたときにキャッシングまたは検索されます。 両方の部分が組み合わさって、完全な Net.Data 出力ページが形成されます。

例 3: キャッシュ ID とキャッシュ・ページ ID を動的に検索します。

%HTML (OUTPUT) {
 %IF (customer == "Joe Smith")
 
@DTW_CACHE_PAGE(@DTW_rGETENV("DTW_MACRO_FILENAME"), @DTW_rGETENV("URL"),"-1", status)
 
  %ENDIF
 
...
 
  <html>
 <head>
 <title>This is the page title</title>
 </head>
  <body>
  <center>
 <h3>This is the Main Heading</h3>
 <p>It is @DTW_rDATE(). Have a nice day!
  </body>
  </html>
 
%}

DTW_DATE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

指定された形式の現行システム日付を戻します。

構文

@DTW_DATE(format, stringOut)

@DTW_DATE(stringOut)

@DTW_rDATE(format)

@DTW_rDATE()


表 31. DTW_DATE のパラメーター
データ型 パラメーター 用途 説明
ストリング format IN データ形式を指定する変数またはリテラル・ストリング。有効な形式としては、以下のものがあります。

D - 年通算日 (001-366)

E - 欧州日付形式 (dd/mm/yy)

N - 一般日付形式 (dd mon yyyy)

O - 順序日付形式 (yy/mm/dd)

S - 標準日付形式 (yyyymmdd)

U - 米国日付形式 (mm/dd/yy)

デフォルトは N です。

ストリング stringOut OUT 指定形式の日付が含まれている変数。

戻りコード

表 32. DTW_DATE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。
1007 パラメーターに無効な値が含まれています。

例 1: 一般日付形式

@DTW_DATE(results)

例 2: 欧州日付形式

@DTW_DATE("E", results)

例 3: 米国日付形式

%HTML(report){
<P>This report created on @DTW_rDATE("U").

DTW_EXIT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

即時にマクロから出ることを指定します。Net.Data は、 DTW_EXIT() が Web ブラウザーに呼び出される前に生成された Web ページをいずれも送信します。

構文

@DTW_EXIT()

戻りコード

表 33. DTW_EXIT の戻りコード
戻りコード 説明
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。

使用上の注意

  1. DTW_EXIT() を使用することにより、マクロ処理を即時に停止します。この手法を用いると、 Net.Data がファイル全体の処理に費やす時間が短縮できます。

  2. DTW_EXIT() 関数を追加する前に、マクロ全体が構文的に正しいことを確認してください。 DTW_EXIT() を使用すると、Net.Data は、 この関数への呼び出しを検出したときにマクロの処理を停止するようになります。 これにより、DTW_EXIT() 関数が処理された後で発生したエラーをキャッチできなくなることがあります。

例 1: マクロを終了します。

%HTML(cache_example) {
 
 <html>
 <head>
 <title>This is the page title</title>
 </head>
 <body>
 <center>
 <h3>This is the Main Heading</h3>
 <!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
 <! Joe Smith sees a very short page                   !>
 <!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
 %IF (customer == "Joe Smith")
 
@DTW_EXIT()
 
%ENDIF
 
...
 
</body>
</html>
 %}

DTW_GETCOOKIE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

指定された Cookie の値を戻します。

構文

@DTW_GETCOOKIE(IN cookie_name, OUT cookie_value)

@DTW_rGETCOOKIE(IN cookie_name)


表 34. DTW_GETCOOKIE のパラメーター
データ型 パラメーター 用途 説明
ストリング cookie_name IN cookie の名前を指定する変数またはリテラル・ストリング。
ストリング cookie_value OUT ユーザー状態情報などの関数が検索する cookie の値を含む変数。

OS/400 および OS/390 ユーザーの場合: cookie の値が URL スタイルのエンコードを含む場合 (たとえば "%20")、cookie の値は、値が戻される前に復号されます。

ワークステーション・ユーザーの場合: cookie の値が URL スタイルのエンコードを含む場合 (たとえば "%20")、cookie の値は、値が戻される前に復号されることは ありません

戻りコード

表 35. DTW_GETCOOKIE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1002 入力パラメーターに、 ヌルで終わる文字からなるストリング値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。
8000 cookie が検出できません。

使用上の注意

2 つの異なる HTTP 要求にて cookie を定義し検索してください。 cookie が表示されるのは、クライアントに送信された後だけであるため、 同じ HTTP 要求で定義された cookie を入手しようとすると、 予期しない結果を受け取る可能性があります。

例 1: ユーザー ID 情報とパスワード情報を含む cookie を検索します。

@DTW_GETCOOKIE("mycookie_name_for_userID", userID)
@DTW_GETCOOKIE("mycookie_name_for_password", password)

例 2: ユーザー情報を集める前に、 ユーザーのための cookie が存在するかどうかを判別します。

  %MESSAGE {
    8000 : "" : continue
%}
 
%HTML(welcome) {
  <html>
  <body>
  <h1>Net.Data Club</h1>
  @DTW_GETCOOKIE("NDC_name", name)
  %IF ($(RETURN_CODE) == "8000") %{ The cookie is not found. %}
  <form method="post" action="remember">
  <p>Welcome to the club. Please enter your name.<br>
  <input name="name">
  <input type="submit" value="submit"><br>
  </form>
  %ELSE
  <p>Hi, $(name). Welcome back.
  %ENDIF
  </body>
  </html>
  %}

HTML ウェルカム・セクションでは、 cookie NDC_name が存在するかどうかを検査します。 cookie が存在する場合には、ブラウザーに個別設定されたあいさつが表示されます。 cookie が存在しない場合には、ユーザー名を要求するプロンプトがブラウザーに表示され、 そのユーザー名を HTML remember セクションに通知します。 以下のように、このセクションはユーザー名を cookie NDC_name に設定します。

%HTML(remember) {
  <html>
  <body>
  <H1>Net.Data Club</H1>
  @DTW_SETCOOKIE("NDC_name", name, "expires=Wednesday, 01-Dec-2010 00:00:00;path=/")
  <p>Thank you.
  <p><a href="welcome">Come back</a>
  </body>
  </html>
  %}

DTW_GETENV


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

指定された環境変数の値を戻します。

構文

@DTW_GETENV(envVarName, envVarValue)

@DTW_rGETENV(envVarName)


表 36. DTW_GETENV のパラメーター
データ型 パラメーター 用途 説明
ストリング envVarName IN 変数またはリテラル・ストリング。
ストリング envVarValue OUT envVarName に指定された環境変数の値。この値が見付からないと、 ヌル・ストリングが戻されます。

戻りコード

表 37. DTW_GETENV の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

ENVVAR ステートメントを使用して、環境変数の値を参照することもできます。 詳しくは、 ENVVAR ステートメント を参照してください。

例 1: OUT パラメーター上の PATH ステートメントの値を戻します。

@DTW_GETENV(myEnvVarName, myEnvVarValue)

例 2 PATH ステートメントの値を戻します。

@DTW_rGETENV(myPath)

例 3: サーバー・プロトコルの値を戻します。

The server is @DTW_rGETENV("SERVER_PROTOCOL").

DTW_GETINIDATA


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

指定された構成変数の値を戻します。

構文

@DTW_GETINIDATA(iniVarName, iniVarValue)

@DTW_rGETINIDATA(iniVarName)


表 38. DTW_GETINIDATA のパラメーター
データ型 パラメーター 用途 説明
ストリング iniVarName IN 変数またはリテラル・ストリング。
ストリング iniVarValue OUT iniVarName に指定された構成変数の値。

戻りコード

表 39. DTW_GETINIDATA の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

  1. 構成ファイルにない構成変数が指定されていると、 Net.Data は空ストリングを戻します。

  2. OS/390、OS/2、Windows NT、および UNIX ユーザーの場合: ENVIRONMENT ステートメントと同様、構成パス変数 (MACRO_PATH、EXEC_PATH、および INCLUDE_PATH) も、 この呼び出しで検索することはできません。

  3. OS/400 ユーザーの場合: ENVIRONMENT ステートメントは、 この呼び出しで検索することはできません。

例 1: Net.Data パス変数値を戻します。

@DTW_GETINIDATA(myEnvVarName, myEnvVarValue)

DTW_HTMLENCODE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

選択した文字を、HTML 文字エスケープ・コードを使用してエンコードします。

構文

@DTW_HTMLENCODE(stringIn, stringOut)

@DTW_rHTMLENCODE(stringIn)


表 40. DTW_HTMLENCODE のパラメーター
データ型 パラメーター 用途 説明
ストリング stringIn IN 変数またはリテラル・ストリング。
ストリング stringOut OUT 特定の文字が HTML 文字エスケープ・コードによって置き換えられた変更入力ストリングが含まれている変数。

戻りコード

表 41. DTW_HTMLENCODE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

  1. この関数を使用し、 Web ブラウザーに HTML として解釈させたくない文字データをエンコードすることができます。たとえば、 適切なエスケープ・コードを使用することにより、「より小 (<)」および「より大 (>)」などの文字を表示することができます。通常ブラウザーは、 これらの文字を HTML タグの構成要素として解釈します。

  2. 表 42 は、DTW_HTMLENCODE 関数によってエンコードされた文字を示しています。


    表 42. HTML の文字エスケープ・コード
    文字 名前 コード
    SPACE スペース &#32;
    " 二重引用符 &#34;
    # 番号記号 &#35;
    % パーセント &#37;
    & アンパーサンド &#38;
    [ 左大括弧 &#40;
    ] 右大括弧 &#41;
    + プラス &#43;
    \ スラッシュ &#47;
    : コロン &#58;
    ; セミコロン &#59;
    < より小 (LT) &#60;
    = 等しい &#61:
    > より大 (GT) &#62:
    ? 疑問符 &#63:
    @ アットマーク &#64;
    / 円記号 &#92;
    ^ カラット &#94;
    { 左中括弧 &#123;
    | 縦線 &#124;
    } 右中括弧 &#125;
    ~ ティルド &#126;

例 1: スペース文字をエンコードします。

@DTW_HTMLENCODE(string1,string2)

例 2: スペース、'より小' 符号、および等号をエンコードします。

@DTW_rHTMLENCODE("X <= 10")

DTW_QHTMLENCODE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

@DTW_HTMLENCODE と同じ機能を実行しますが、 単一引用符 (') を &#39; としてエンコードもします。 DTW_QHTMLENCODE が使用する HTML 文字エスケープ・コードが、表 42 に示されています。

構文

@DTW_QHTMLENCODE(stringIn, stringOut)

@DTW_rQHTMLENCODE(stringIn)


表 43. DTW_QHTMLENCODE のパラメーター
データ型 パラメーター 用途 説明
ストリング stringIn IN 変数またはリテラル・ストリング。
ストリング stringOut OUT 特定の文字が HTML 文字エスケープ・コードによって置き換えられた、 変更形式 stringIn が含まれている変数。

戻りコード

表 44. DTW_QHTMLENCODE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

例 1: アポストロフィとスペースをエンコードします。

@DTW_QHTMLENCODE(string1,string2)

例 2: アポストロフィ、スペース、およびアンパーサンドをエンコードします。

@DTW_rQHTMLENCODE("John's & Jane's")

DTW_SENDMAIL


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

電子メール (e-mail) メッセージを動的に作成し、送信します。

構文

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy, IN ReplyTo, IN Organization)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy, IN ReplyTo)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message)


表 45. DTW_SENDMAIL のパラメーター
データ型 パラメーター 用途 説明
ストリング sender IN 作成者のアドレスを指定する変数またはリテラル・ストリング。 このパラメーターは必須です。有効な形式は、次のとおりです。

  • 名前 <user@domain>

  • <user@domain>

  • user@domain
ストリング recipient IN このメッセージの送信先の電子メール・アドレスを指定する変数またはリテラル・ストリング。 この値には、コンマ (,) で区切られた複数の受信側を含むことができます。このパラメーターは必須です。 有効な recipient の形式は次のとおりです。

  • 名前 <user@domain>

  • <user@domain>

  • user@domain
ストリング message IN 電子メール・メッセージのテキストを含む変数またはリテラル・ストリング。 このパラメーターは必須です。
ストリング subject IN 対象行のテキストを含む変数またはリテラル・ストリング。 これはオプション・パラメーターです。 ヌル・ストリング ("") を指定して、追加のパラメーターを指定する必要があります。
ストリング CarbonCopy IN 電子メール・アドレスまたは追加の受信側の名前と電子メールアドレスを含む変数またはリテラル・ストリング。 この値には、コンマ (,) で区切られた複数の追加の受信側を含むことができます。 有効な受信側形式については、 Recipient パラメーターを参照してください。 これはオプション・パラメーターです。 ヌル・ストリング ("") を指定して、追加のパラメーターを指定する必要があります。
ストリング BlindCarbonCopy IN 電子メール・アドレスまたは追加の受信側の名前と電子メールアドレスを含む変数またはリテラル・ストリング。 ただし、受信側は電子メールのヘッダーには表示されません。 この値には、コンマ (,) で区切られた複数の追加の受信側を含むことができます。 有効な受信側形式については、 Recipient パラメーターを参照してください。 これはオプション・パラメーターです。 ヌル・ストリング ("") を指定して、追加のパラメーターを指定する必要があります。
ストリング ReplyTo IN このメッセージの応答を返す電子メール・アドレスを含む変数またはリテラル・ストリング。 これはオプション・パラメーターです。ヌル・ストリング ("") を指定して、 追加のパラメーターを指定する必要があります。有効な ReplyTo の形式は次のとおりです。

  • 名前 <user@domain>

  • <user@domain>

  • user@domain
ストリング Organization IN sender の編成名を含む変数またはリテラル・ストリング。 これはオプション・パラメーターです。

戻りコード

表 46. DTW_SENDMAIL の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1002 入力パラメーターに、 ヌルで終わる文字からなるストリング値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
7000 指定した SMTP サーバーに Net.Data が接続できません。
7001 Net.Data が電子メール・メッセージを指定した SMTP サーバーに中継しようとした際に、 SMTP エラーが発生しました。
7002 指定された SMTP サーバーが、 拡張シンプル・メール転送プロトコル (SMTP) をサポートしません。

使用上の注意

  1. オプションの構成変数 DTW_SMTP_SERVER を使用して、 電子メール・メッセージを送信するために使用する SMTP サーバーを指定することができます。 このパラメーター値は、ホスト名、IP アドレス、またはノード名といずれかとすることができます。 この変数を定義しないと、 Net.Data は SMTP サーバーとしてローカル・ホストを使用します。この変数に関する詳細については、Net.Data 管理およびプログラミングの手引き の構成の章を参照してください。

  2. OS/400、OS/2、Windows NT、および UNIX ユーザーの場合: SMTP (標準シンプル・メール転送プロトコル) サーバーは、 7 ビット・データ (米国 ASCII 文字など) しか受け入れません。メッセージに 8 ビット文字が入っている場合は、 ESMTP (拡張シンプル・メール転送プロトコル) サーバーを指定することをお勧めします。 ESMTP は、8 ビット文字を受け入れます。Net.Data は、8 ビット・データを 7 ビット・データにエンコードしません。ESMTP サーバーにアクセスできない場合は、 電子メール・メッセージから 8 ビット文字をすべて取り除いてください。

    Net.Data for OS/390 ユーザーの場合、 SMTP サーバーへの電子メール・メッセージを変更する必要はありません。

  3. 文字セット・サポート:

  4. 以下のリストでは、Net.Data が電子メール・メッセージを送信しない条件について説明しています。

例 1 : 単一の電子メール・メッセージを作成し送信する関数呼び出し

@DTW_SENDMAIL("<ibmuser1@ibm.com>", "<ibmuser2@ibm.com>", "There is a meeting at 9:30.", 
"Status meeting")

DTW_SENDMAIL 関数は、以下の情報を含む電子メール・メッセージを送信します。

Date: Mon, 3 Apr 1998 09:54:33 PST
To: <ibmuser2@ibm.com>
From: <ibmuser1@ibm.com>
Subject: Status meeting
 
There is a meeting at 9:30.
 

Date の情報はシステム日時関数を使用して構成され、 SMTP 固有のデータ形式で形式化されます。

例 2 : 複数の受信者側、カーボン・コピーと受信停止カーボン・コピーの受信者側、 および会社名を含む電子メール・メッセージを作成し送信する関数呼び出し

@DTW_SENDMAIL("IBM User 1 <ibmuser1@ibm.com>", "IBM User 2 <ibmuser2@ibm.com>, 
IBM User 3 <ibmuser3@ibm.com>, IBM User 4 <ibmuser4@ibm.com>", "There is a meeting at 9:30.", 
"Status meeting", "IBM User 5 <ibmuser5@ibm.com>", "IBM User 6 <ibmuser6@ibm.com", 
"meeting@ibm.com", "IBM")

DTW_SENDMAIL 関数は、以下の情報を含む電子メール・メッセージを送信します。

Date: Mon, 3 Apr 1998 09:54:33 PST
To: IBM User 2 <ibmuser2@ibm.com>, IBM User 3 <ibmuser3@ibm.com>, IBM User 4 <ibmuser4@ibm.com>
CC: IBM User 5 <ibmuser5@ibm.com>
BCC: IBM User 6 <ibmuser6@ibm.com>
From: IBM User 1 <ibmuser1@ibm.com>
ReplyTo: meeting@ibm.com
Organzation: IBM
Subject: Status meeting
 
There is a meeting at 9:30.

例 3: Web 形式インターフェースを経由して電子メールを作成し送信するマクロ

  %HTML(start) {
  <html>
  <body>
  <h1>Net.Data E-Mail Example</h1>
  <form method="post" action="sendemail">
  <p>To:<br><input name="recipient"><p>
  Subject:<br><input name="subject"><p> 
  Message:<br><textarea name=message rows=20 cols=40>
  </textarea><p>
  <input type="submit" value="Send E-mail"><br>
</form>
  </body>
  </html>
  %}
 
  %HTML(sendemail) {
  <html>
  <body>
  <h1>Net.Data E-Mail Example</h1>
  @DTW_SENDMAIL("Net.Data E-mail Service <netdata@us.ibm.com>", recipient, message, subject)
  <p>E-mail has been sent out.
  </body>
  </html>
  %}

このマクロは、Web 形式インターフェースを経由して電子メールを送信します。 HTML 開始セクションには、受信側の電子メール・アドレス、主題、 およびメッセージを入力することができる形式が表示されます。 ユーザーが「電子メールの送信」ボタンをクリックすると、 HTML (sendemail) セクションで指定される受信側に、メッセージが送信されます。 このセクションでは DTW_SENDMAIL を呼び出し、 Web 形式から獲得したパラメーターを使用して、 送信側と受信側だけでなく、電子メールの内容も判別します。 電子メールを送信してしまうと、 確認通知が表示されます。

例 4 : SQL 照会を使用して、受信側のリストを判別するマクロ

%Function(DTW_SQL) mailing_list(IN message) {
  SELECT EMAIL_ADDRESS FROM CUSTOMERS WHERE ZIPCODE='CA'
%REPORT {
      Sending out product information to all customers who live in California...<P>
%ROW {
        @DTW_SENDMAIL("John Doe Corp. <John.Doe@doe.com>", V1, message, "New Product Release")
        E-mail sent out to customer $(V1).<BR>
      %}
    %}
  %}

このマクロは、 顧客データベースから出された SQL 照会の結果で判別される顧客の指定したグループに、 自動化された電子メール・メッセージを送信します。 SQL 照会は、顧客の電子メール・アドレスも検索します。 電子メールの内容は message の値で判別され、 静的または動的であることができます (たとえば、ほかの SQL 照会を使用して、 製品のバージョン番号またはさまざまなオファリングの価格を動的に指定することができます)。

DTW_SETCOOKIE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

クライアント・システムで cookie の設定をする JavaScript コードを生成します。

構文

@DTW_SETCOOKIE(IN cookie_name, IN cookie_value, IN advanced_options)

@DTW_SETCOOKIE(IN cookie_name, IN cookie_value)


表 48. DTW_SETCOOKIE のパラメーター
データ型 パラメーター 用途 説明
ストリング cookie_name IN cookie の名前を指定する変数またはリテラル・ストリング
ストリング cookie_value IN cookie の値を指定する変数またはリテラル・ストリング

セミコロン、コンマ、およびスペースを cookie_value のパーツとして使用しないでください。これらが必要な場合は、Net.Data 関数 DTW_rURLESCSEQ を使用して、 DTW_SETCOOKIE に渡す前に、特殊文字を含むストリングを処理します。たとえば、次のようにします。

@DTW_SETCOOKIE("my_cookie_name", 
  @DTW_rURLESCSEQ("my cookie value"))
ストリング advanced_options IN セミコロンで区切られた任意選択の属性を含むストリングで、cookie を定義するために使用します。 属性には以下のものがあります。

expires = date
cookie の有効な存続時間を定義する日付ストリングを指定します。 有効期限が切れた cookie は、保管されたり検索されたりしなくなります。
構文:

weekday, DD-month-YYYY HH:MM:SS GMT

ここで、

weekday
曜日の完全な名前を指定します。

DD
その月の日付を数値で指定します。

month
その月の省略語を 3 文字で指定します。

YYYY
西暦を 4 文字の数字で指定します。

HH:MM:SS
タイム・スタンプを時間、分、秒の順序で指定します。

domain = domain_name
cookie のドメイン属性を指定し、ドメイン属性のマッチングに使用します。

path = path
cookie が有効なドメイン内で URL のサブセットを指定します。

secure
cookie がセキュア・チャネルだけを経由して HTTPS サーバーに送信されることを指定します。

secure オプションが指定されていないと、 cookie は非セキュア・チャネルを経由して送信される場合があります。セキュア・オプションを指定すれば、ブラウザーは cookie を暗号化する必要も、 また DTW_SETCOOKIE ステートメントを含むページが SSL 上で送信されることを確認する必要もありません。

拡張オプションに関する追加情報は、 http://home.netscape.com にある Netscape cookie 仕様を参照してください。

戻りコード

表 49. DTW_SETCOOKIE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1002 入力パラメーターに、 ヌルで終わる文字からなるストリング値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。

使用上の注意

  1. クライアントである Web ブラウザーが Java Script をサポートしていない場合には、 ブラウザーは cookie を設定しません。

  2. DTW_SETCOOKIE が Java Script コードを生成するので、 <SCRIPT> または <NOSCRIPT> HTML 要素の内側で DTW_SETCOOKIE を呼び出さないでください。

  3. cookie を検索するには、DTW_GETCOOKIE() 関数を使用します。 cookie の定義方法については、DTW_GETCOOKIE を参照してください。

  4. 2 つの異なる HTTP 要求しい cookie を定義し検索します。 cookie が表示されるのは、クライアントに送信された後だけであるため、 同じ HTTP 要求で定義された cookie を入手しようとすると、 予期しない結果を受け取る可能性があります。

例 1: セキュア高機能オプションとともに、 ユーザー ID 情報およびパスワード情報を含む cookie を定義します。

@DTW_SETCOOKIE("mycookie_name_for_userID", "User1")
@DTW_SETCOOKIE("mycookie_name_for_password", "sd3dT", "secure")

例 2: 有効期限高機能オプションを含む cookie を定義します。

@DTW_SETCOOKIE("mycookie_name_for_userID", "User1",
   "expires=Wednesday 01-Dec-2010 00:00:00")
@DTW_SETCOOKIE("mycookie_name_for_password", "sd3dT", 
   "expires=Wednesday, 01-Dec-2010 00:00:00;secure")

関数呼び出しは 1 行に指定しなくてはなりません。 この例では、フォーマットの都合上、改行してあります。

例 3: ユーザー情報を集める前に、 ユーザーのための cookie が存在するかどうかを定義します。

%HTML(welcome) {
  <html>
  <body>
  <h1>Net.Data Club</h1>
  @DTW_GETCOOKIE("NDC_name", name)
  %IF ($(RETURN_CODE) == "8000") %{ The cookie is not found. %}
  <form method="post" action="remember">
  <p>Welcome to the club. Please enter your name.<br>
  <input name="name">
  <input type="submit" value="submit"><br>
</form>
%ELSE
  <p>Hi, $(name). Welcome back.
  %ENDIF
  </body>
  </html>
  %}

HTML (welcome) セクションでは、cookie NDC_name が存在するかどうかを検査します。 cookie が存在する場合には、ブラウザーに個別設定されたあいさつが表示されます。 cookie が存在しない場合には、ユーザー名を要求するプロンプトがブラウザーに表示され、 そのユーザー名を HTML (remember) セクションに通知します。 このセクションでは、以下のように、ユーザー名を cookie NDC_name に記録します。

%HTML(remember) {
  <html>
  <body>
  <H1>Net.Data Club>
  @DTW_SETCOOKIE("NDC_name", name, "expires=Wednesday, 01-Dec-2010 00:00:00;path=/")
  <p>Thank you.
  <p><a href="welcome">Come back</a>
  </body>
  </html>
  %}

DTW_SETENV


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

指定値をもつ環境変数を割り当て、前の値を戻します。

構文

@DTW_SETENV(envVarName, envVarValue, prevValue)

@DTW_rSETENV(envVarName, envVarValue)


表 50. DTW_SETENV のパラメーター
データ型 パラメーター 用途 説明
ストリング envVarName IN 環境変数を表す変数またはリテラル・ストリング。
ストリング envVarValue IN 環境変数が割り当てられた値が含まれている変数またはリテラル・ストリング。
ストリング prevValue OUT 前の環境変数値が含まれている変数。

戻りコード

表 51. DTW_SETENV の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

環境変数の以前の値が検出できなければ、 空ストリングが戻されます。

例 1: 前のパスの値を戻します。

@DTW_SETENV("PATH", "myPath", prevValue)

例 2: 前のパスの値を戻し、PATH の値を割り当てます。

@DTW_rSETENV("PATH",
"myPath")

DTW_TIME


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

現行システム時刻を指定された形式で戻します。

構文

@DTW_TIME(stringIn, stringOut)

@DTW_TIME(stringOut)

@DTW_rTIME(stringIn)

@DTW_rTIME()


表 52. DTW_TIME のパラメーター
データ型 パラメーター 用途 説明
ストリング stringIn IN 時刻形式を指定する変数またはリテラル・ストリング。有効な形式は、次のとおりです。

C - 常用時間 (12 時間クロックを使用する hh:mmAM/PM)

L - 現地時間 (hh:mm:ss)

N - 標準時間 (24 時間クロックを使用する hh:mm:ss。デフォルト)

X - 拡張時間 (24 時間クロックを使用する hh:mm:ss.ccc。 ccc はミリ秒数)

H - 午前 0 時以降の時間数

M - 午前 0 時以降の分数

S - 午前 0 時以降の秒数

ストリング stringOut OUT 指定形式の時刻が含まれている変数。

戻りコード

表 53. DTW_TIME の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。
1007 パラメーターに無効な値が含まれています。

例 1: 24 時間クロック形式。

@DTW_TIME(results)

例 2: 常用時刻形式。

@DTW_TIME("C", results)

例 3: 関数呼び出しにより、午前 0 時以降の分数を戻します。

@DTW_rTIME("M")

例 4: 関数呼び出しにより、デフォルトの時刻とデータ形式を戻します。

%REPORT{
<P>This report was created at @DTW_rTIME(), @DTW_rDATE().
%}

DTW_URLESCSEQ


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

URL に使用できない選択文字をエスケープ値 (URL エンコード・コードとも呼ばれます) と置き換えます。

構文

@DTW_URLESCSEQ(stringIn, stringOut)

@DTW_rURLESCSEQ(stringIn)


表 54. DTW_URLESCSEQ のパラメーター
データ型 パラメーター 用途 説明
ストリング stringIn IN 変数またはリテラル・ストリング。
ストリング stringOut OUT 対応する 16 進エスケープ値に置き換えられる URL に使用できない文字をもつ入力ストリングが含まれている変数。

戻りコード

表 55. DTW_URLESCSEQ の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

この関数を使用して、表 56 にリストされている任意の文字を他のマクロまたは HTML ブロックに渡します。


表 56. URL の文字エスケープ値
文字 名前 コード
SPACE スペース %20
" 二重引用符 %22
# 番号記号 %23
% パーセント %25
& アンパーサンド %26
+ プラス %2B
\ 円記号 %2F
: コロン %3A
; セミコロン %3B
< より小 (LT) %3C
= 等しい %3D
> より大 (GT) %3E
? 疑問符 %3F
@ アットマーク %40
[ 左大括弧 %5B
/ スラッシュ %5C
] 右大括弧 %5D
^ カラット %5E
{ 左中括弧 %7B
| 縦線 %7C
} 右中括弧 %7D
~ ティルド %7E

例 1: string1 内のスペースとアンパーサンドをそのエスケープ値に置き換え、結果を string2 に割り当てます。

@DTW_URLESCSEQ(string1,string2)

例 2: スペースおよびアンパーサンド文字をそのエスケープ・コードに置き換えます。

@DTW_rURLESCSEQ("Guys &
Dolls")

例 3: ROW ブロックの DTW_rURLESCSEQ を使用し、 スペースとアットマークをそのエスケープ・コードに置き換えます。

%ROW{
<P><a href="fullRpt.mac/input?name=@DTW_rURLESCSEQ(V1)&email=@DTW_rULRESCSEQ(V2)">
$(V1)</a>
%}

アプリケーション・ユーザーが名前 "Patrick O'Brien" をクリックすると、 名前と電子メール・アドレスに指定された値が URL の照会ストリング内にフローし、 Net.Data が fullrpt.mac マクロの入力セクションを実行します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]