このセクションでは、HTML to Natural の使用方法について説明します。このプログラムは、HTML ページを Natural サブプログラムに変換して Natural Web インターフェイスで使用できるようにします。
HTML to Natural を使用して HTML ページから Natural コードを生成することで、HTML 入力を Natural コードの変換形式に適応させる必要がなくなります。 この "HTML ページから変換したサブプログラム" は、追加した他のすべての Natural プログラムロジックとともにサーバーに移動できます。 HTML ページを再度変更する場合は、ソースに戻り、HTML ページを変換して再びサーバーに移動します。 この操作のほうが、HTML ページを変更するたびにブラウザで HTML を作成し、サーバーに移動し、Natural プログラムロジックを追加するという処理を繰り返すよりもはるかに簡単です。
このセクションでは、次のトピックについて説明します。
基本 Web ページが編集ツールを使用して設計されている場合は、Web から呼び出すことができる Natural サブプログラムにそのページを組み込むには、多少の労力が必要となります。
HTML to Natural では、HTML ページを入力として使用し、Natural サブプログラムを生成します。このサブプログラムは、Natural Web インターフェイスを使用して Natural Web サーバーエクステンションから呼び出すことができます。
16:00:13 ***** Web Interface Program Generator ***** 2006-01-09 - Main Menu - Library SYSWEB3 Generation type Code ............. B B Basic S Stand-alone T Transformation A Template Input file Library .......... SYSWEB3 Resource ......... Generated Natural object Library .......... SYSWEB3 Object type ...... N Object ........... Subroutine name .. Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Opt. Canc |
以下に参考情報を示します。
キー | 機能 | 説明 |
---|---|---|
PF1 | Help | カーソルが置かれているフィールドのヘルプ機能を呼び出します。 |
PF3 | Exit | プログラムを終了しコマンド行に戻ります。 |
PF10 | Opt. | オプション。 生成処理のオプションを指定します。 |
PF12 | Canc | 変更内容を保存せずにプログラムを終了します。 |
Enter | プログラムの生成を開始します。 |
Web から直接呼び出されるサブプログラム/サブルーチンを生成するには
生成のタイプとして[Basic]を選択します。
生成される Natural オブジェクトを選択します。
生成を開始します。
生成後、このページをインターネットから呼び出すことができます。ただし、このページにはデータが設定されていないため、ページの内容は空となります。
基本生成の例
生成される Natural サブプログラム(インターネットから直接呼び出し可能):
0010 * ----- GENERATED BY NATURAL WEB INTERFACE * Library .....: SYSPLWEB * Source Name .: BASIC * ----- DEFINE DATA PARAMETER USING W3PARM LOCAL USING W3CONST * ----- PRIVATE VARIABLES ----- * LOCAL * 1 W3VALUE (A250) END-DEFINE * ----- ERROR HANDLER ----- ON ERROR PERFORM W3ERROR ##W3ERROR PERFORM W3END ##RPC ESCAPE ROUTINE END-ERROR * ----- INITIALISE HTTP API ----- PERFORM W3INIT ##RPC * --- READ ENVIRONMENT --- * PERFORM W3READ-ENVIRONMENT-DYNAMIC 'varname' ' ' W3VALUE * set default value * IF *length(W3VALUE) = 0 THEN * W3VALUE := ?? * END-IF * ----- HEADER FOR SERVER ----- * PERFORM W3CONTENT-TYPE 'text/html' * * * Add your individual coding using W3* subroutines or * call your own subroutines. * * * ----- END HTTP ----- PERFORM W3END ##RPC * ----- END MAIN PROGRAM ----- * END
Web から直接呼び出されるサブプログラムを生成するには、次の手順に従います。
生成のタイプとして[Stand-alone]を選択します。
生成される Natural オブジェクトを選択します。
生成を開始します。
生成後、Natural Web インターフェイスを呼び出してページを表示できます。
スタンドアロン生成の例
生成される Natural サブプログラム(インターネットから直接呼び出し可能):
* ----- GENERATED BY NATURAL WEB INTERFACE * Library .....: SYSPLWEB * Source Name .: ALONE * ----- DEFINE DATA PARAMETER USING W3PARM LOCAL USING W3CONST * ----- PRIVATE VARIABLES ----- LOCAL 1 W3VALUE (A250) END-DEFINE * ----- ERROR HANDLER ----- ON ERROR PERFORM W3ERROR ##W3ERROR PERFORM W3END ##RPC ESCAPE ROUTINE END-ERROR * ----- INITIALISE HTTP API ----- PERFORM W3INIT ##RPC * ----- HEADER FOR SERVER ----- PERFORM W3CONTENT-TYPE 'text/html' * * --- READ ENVIRONMENT --- * PERFORM W3READ-ENVIRONMENT-DYNAMIC 'varname' ' ' W3VALUE * set default value * IF *length(W3VALUE) = 0 THEN * W3VALUE := ?? * END-IF * --- WRITE THE HEAD OF THE DOCUMENT --- PERFORM W3TEXT "<!DOCTYPE 'HTML PUBLIC-//W3C//DTD HTML 3.2//EN'>"- '<html>'- '<head>'- "<meta http-equiv='Content-Type' content='"- "text/html; charset=iso-8859-1'>"- '<title>SYSPLWEB/TEST</title>'- '</head>' * --- WRITE THE BODY OF THE DOCUMENT --- PERFORM W3TEXT '<body>'- '<h2>SYSPLWEB/TEST</h2>'- '<hr>' * PERFORM W3TEXT '<p>This is your output</p>' * COMPRESS '<hr>generated:' *DATE *TIME INTO W3VALUE PERFORM W3TEXT W3VALUE * --- END THE BODY OF THE DOCUMENT --- PERFORM W3TEXT '</body>'- '</html>' * * ----- END HTTP ----- PERFORM W3END ##RPC * ----- END MAIN PROGRAM ----- * END
Web から直接呼び出されるサブプログラム/サブルーチンを生成するには、次の手順に従います。
生成のタイプとして[Transformation]を選択します。
HTML タイプの入力ファイルを選択します。
生成先の Natural ライブラリを選択します。
生成するオブジェクトタイプを選択します。
生成される Natural オブジェクトを選択します。
生成を開始します。
生成後、Natural Web インターフェイスを呼び出してページを表示できます。
HTML ページで Natural を使用している場合は、Natural の特殊コーディングを HTML ページで直接指定できます。 生成後にプログラムを追加で変更する必要はありません。
HTML2NAT プログラムでは <NATURAL>
タグが認識されます。 <NATURAL>
と </NATURAL>
で囲まれたすべての行は、生成された Natural ソースオブジェクトにそのままコピーされます。
表示
<NATURAL> </NATURAL> |
以下に参考情報を示します。
以下の属性を使用して、プログラム内で移動したりプログラムから除外したりするコーディングセクションを定義します。
属性 | 説明 |
---|---|
DATA | <NATURAL DATA> または <NATURAL LDA> は、定義されたセクションをプログラムの DEFINE DATA LOCAL 部分に移動します。
|
LDA | |
GDA | <NATURAL GDA> は、定義されたセクションをプログラムの DEFINE DATA GLOBAL 部分に移動します。
|
SUB | <NATURAL SUB> は、定義されたセクションをプログラムの末尾に移動します。 これにより、インラインサブルーチンを指定できます。
|
NOT | <NATURAL NOT> は、定義されたセクションをプログラムから除外します。 これにより、プログラムによって生成されたページの一部のデザインを指定できます。
|
コーディング内の特定のセクションを非表示にするには、コメントタグ <!-- -->
を使用します。 コメントタグと <NATURAL NOT>
を使用すれば、定義済みのページを標準のブラウザで表示できます。 この方法は、ページを指定したり、ページの一部をダイナミックに置き換えたりする場合に役立ちます。
HTML2NAT の現在のバージョンでは、<NATURAL>
と </NATURAL>
だけでなく、<%
および %>
デリミタを使用してテキストと区別される ASP(Active Server Page)形式のスクリプトコマンドも使用できます。
Natural のサブプログラムを作成する場合は、次の Natural 固有の命令を使用する必要があります。
- 出力命令:
<%= ... %>
<% PERFORM W3HTML ... %>
タグの短縮形です。- サブプログラム命令:
<%SUB ... %>
<NATURAL SUB> ... </NATURAL>
タグと同等です。- グローバルデータエリア命令:
<%GDA ... %>
<NATURAL GDA> ... </NATURAL>
タグと同等です。- 命令:
<%LDA ... %>
<NATURAL LDA> ... </NATURAL>
タグと同等です。- 除外命令:
<%NOT ... %>
<NATURAL NOT> ... </NATURAL>
タグと同等です。- 処理命令:
<%@ LANGUAGE=NATURAL %>
使用言語が Natural であることを示します。
HTML ドキュメント:
<HTML><HEAD><TITLE> Example1 genNat </TITLE></HEAD><BODY><H2> Example1 genNat </H2><HR> <P>This is for your output </BODY></HTML>
生成される Natural サブプログラム:
* ----- SUBPROGRAM generated out of file: * ----- C:\example1.html DEFINE DATA PARAMETER USING W3PARM LOCAL USING W3CONST LOCAL * ----- PRIVATE VARIABLES ----- 1 W3VALUE (A250) END-DEFINE * * ----- ERROR HANDLER ----- ON ERROR PERFORM W3ERROR ##W3ERROR PERFORM W3END ##RPC ESCAPE ROUTINE END-ERROR * ----- INITIALIZE HTTP API ----- PERFORM W3INIT ##RPC * ----- HEADER FOR SERVER ----- PERFORM W3CONTENT-TYPE 'text/html' * * ----- MAIN PROGRAM ----- PERFORM W3TEXTLINE'<HTML><HEAD><TITLE>' PERFORM W3TEXTLINE 'Example genNat' PERFORM W3TEXTLINE'</TITLE></HEAD><BODY><H2>' PERFORM W3TEXTLINE 'Example genNat' PERFORM W3TEXTLINE '</H2><HR>' PERFORM W3TEXTLINE '<P>This is for your output' PERFORM W3TEXTLINE '</BODY></HTML> ' * ----- END HTTP API ----- PERFORM W3END ##RPC * ----- END MAIN PROGRAM ----- * * * ----- SUBROUTINES ----- END
HTML ドキュメント:
<HTML><HEAD><TITLE> Example2 genNat </TITLE></HEAD><BODY><H2> Example2 genNat </H2><HR> <P>This is for your output <HR> <P>generated at: <NATURAL NOT> Time/Date </NATURAL> <NATURAL><!-- PERFORM DOTIME --></NATURAL> <NATURAL SUB><!-- DEFINE SUBROUTINE DOTIME COMPRESS *TIME *DATE INTO #VALUE PERFORM W3TEXTLINE #VALUE END-SUBROUTINE --></NATURAL> <NATURAL DATA><!-- 1 #VALUE (A30) --></NATURAL> </BODY></HTML>
生成される Natural サブプログラム:
* ----- GENERATED BY NATURAL WEB INTERFACE * File ..........: E:\SAG\Natural\6.2\Fnat\SYSWEB\RES\example2.html * Library .......: SYSWEB * Source Name ...: EXAMPLE2 * Crunch Lines...: 1 * Save Source....: 1 * Line Length....: 128 * Long Constants.: 1 * ----- DEFINE DATA PARAMETER USING W3PARM LOCAL USING W3CONST 1 #VALUE (A30) * ----- PRIVATE VARIABLES ----- 1 W3VALUE (A250) END-DEFINE * * ----- ERROR HANDLER ----- ON ERROR PERFORM W3ERROR ##W3ERROR PERFORM W3END ##RPC ESCAPE ROUTINE END-ERROR * ----- INITIALIZE HTTP API ----- PERFORM W3INIT ##RPC * ----- HEADER FOR SERVER ----- PERFORM W3CONTENT-TYPE 'text/html' * * ----- MAIN PROGRAM ----- PERFORM W3TEXTLINE'<HTML><HEAD><TITLE>' PERFORM W3TEXTLINE 'Example2 genNat' PERFORM W3TEXTLINE'</TITLE></HEAD><BODY><H2>' PERFORM W3TEXTLINE 'Example2 genNat' PERFORM W3TEXTLINE '</H2><HR>' PERFORM W3TEXTLINE '<P>This is for your output' PERFORM W3TEXTLINE '<HR>' PERFORM W3TEXTLINE '<P>generated at:' PERFORM DOTIME PERFORM W3TEXTLINE '</BODY></HTML>' * ----- END HTTP API ----- PERFORM W3END ##RPC * ----- END MAIN PROGRAM ----- * * * ----- SUBROUTINES ----- DEFINE SUBROUTINE DOTIME COMPRESS *TIME *DATE INTO #VALUE PERFORM W3TEXTLINE #VALUE END-SUBROUTINE END
注意:
Natural プログラムの構文は、変換時にはチェックされません。
Web から直接呼び出されるテンプレートを使用してサブプログラム/サブルーチンを生成するには、次の手順に従います。
生成のタイプとして[Template]を選択します。
HTML タイプの入力ファイルを選択します。
生成するオブジェクトタイプを選択します。
生成される Natural オブジェクトを選択します。
生成を開始します。
生成後、Natural Web インターフェイスを呼び出してページを表示できます。
HTML ページに置換文字列を直接指定する必要があります。 置換文字列の先頭と末尾には特定の文字(例:$)を指定する必要があります(「オプション」を参照)。 文字列の名前(内容)は、変数名に関する Natural ルールに従う必要があります。 従わない場合は、サブルーチンで格納できません。
置換文字列の名前の先頭が "HTML" である場合は、ランタイムでの置換処理時に、"<"、">" などの保存されない文字が置き換えられます。
次の接頭辞が、ランタイムでの自動変換用に実装されています。
HTML
URL
XML
詳細については、サブルーチン W3REPLACE-AT-OUTPUT に関するドキュメントを参照してください。
HTML ドキュメント:
<HTML> <HEAD> <TITLE>Template Processing</TITLE> </HEAD> <BODY> <H2> Template Processing </H2> <P> <HR> <TABLE BORDER="0"> <TR><TD>Log-Time:</TD><TD>$log$<TD></TR> <TR><TD>HTTPs Extension:</TD><TD>$html-ext$<TD></TR> <TR><TD>Web Interface:</TD><TD>$html-ver$<TD></TR> </TABLE> <P> <TABLE BORDER='0' WIDTH='100%' CELLSPACING='0' CELLPADDING=5> <TR BGCOLOR='#00cc66'> <TD>$prog$ - $log$</TD> <TD ALIGN='RIGHT'>Natural</TD> </TR> </TABLE> </BODY></HTML>
生成される Natural サブルーチン(インターネットから呼び出されるサブプログラムから呼び出す必要がある):
* ----- GENERATED BY NATURAL WEB INTERFACE * File ........: E:\SAG\Natural\6.2\Fnat\SYSWEB\RES\templ.html * Library .....: SYSWEB * Source Name .: TEMPL * Delimiter ...: $ * ----- DEFINE DATA PARAMETER 1 log (A) DYNAMIC BY VALUE 1 html-ext (A) DYNAMIC BY VALUE 1 html-ver (A) DYNAMIC BY VALUE 1 prog (A) DYNAMIC BY VALUE END-DEFINE * * DEFINE SUBROUTINE e3templm * * ----- HEADER FOR SERVER ----- PERFORM W3CLEAR PERFORM W3CONTENT-TYPE 'text/html' * ----- MAIN PROGRAM ----- * --- LOAD THE HTML TEMPLATE --- PERFORM W3LOAD-RESOURCE ' ' 'e3templ.html' * * --- REPLACE PLACEHOLDER --- PERFORM W3REPLACE-AT-OUTPUT ' ' '$log$' log PERFORM W3REPLACE-AT-OUTPUT 'HTML' '$ext$' ext PERFORM W3REPLACE-AT-OUTPUT 'HTML' '$ver$' ver PERFORM W3REPLACE-AT-OUTPUT ' ' '$prog$' prog * ----- END MAIN PROGRAM ----- * END-SUBROUTINE * END
生成される Natural サブプログラム(インターネットから直接呼び出し可能):
* ----- GENERATED BY NATURAL WEB INTERFACE * File ........: E:\SAG\Natural\6.2\Fnat\SYSWEB\RES\templ.html * Library .....: SYSWEB * Source Name .: TEMPL * Delimiter ...: $ * ----- DEFINE DATA PARAMETER USING W3PARM LOCAL USING W3CONST LOCAL * ----- PRIVATE VARIABLES ----- 1 W3VALUE (A250) END-DEFINE * * ----- ERROR HANDLER ----- ON ERROR PERFORM W3ERROR ##W3ERROR PERFORM W3END ##RPC ESCAPE ROUTINE END-ERROR * ----- INITIALISE HTTP API ----- PERFORM W3INIT ##RPC * ----- HEADER FOR SERVER ----- PERFORM W3CONTENT-TYPE 'text/html' * * ----- MAIN PROGRAM ----- * --- LOAD THE HTML TEMPLATE --- PERFORM W3LOAD-RESOURCE 'SYSWEB' 'e3templ.html' * * --- REPLACE PLACEHOLDER --- PERFORM W3REPLACE-AT-OUTPUT ' ' '$log$' 'replace-string-1' PERFORM W3REPLACE-AT-OUTPUT 'HTML' '$ext$' 'replace-string-2' PERFORM W3REPLACE-AT-OUTPUT 'HTML' '$ver$' 'replace-string-3' PERFORM W3REPLACE-AT-OUTPUT ' ' '$prog$' 'replace-string-4' * ----- END HTTP ----- PERFORM W3END ##RPC * ----- END MAIN PROGRAM ----- * END
15:56:29 ***** HTML to Natural ***** 2006-01-09 User DEFAULT - Options - Library SYSWEB3 HTML File Delete unnecessary white space ............... Save <NATURAL NOT>..</NATURAL> at source ..... Generated Source Stow after generation ........................ X Use long constants ........................... X Natural line length .......................... 128 Template Delimiter .................................... $ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Canc |
以下に参考情報を示します。
フィールド | 説明 |
---|---|
Delete unnecessary white space |
オンにすると、空白、改行、タブなどの複数のスペース文字が減らされて単一のスペースに変換されます。 デフォルト値:オフ |
Save <NATURAL NOT> ... <NATURAL> in Source
|
オンにすると、 デフォルト値:オフ |
Stow after Generation |
オンにすると、生成が正常に完了した場合に生成プログラムが格納されます。 デフォルト値:オン |
Natural Line Length |
生成される Natural ソース行の長さで、最小値は 20、最大値は 246 です。 デフォルト値:72 |
Default Input File |
生成用に使用されるデフォルトの入力ファイルです。 デフォルト値:/nat/natc/611/samples/sysexxt |
キー | 機能 | 説明 |
---|---|---|
Enter | 変更内容を保存してプログラムを終了します。 | |
PF3 | Exit | コマンド行に戻ります。 |
PF12 | Canc | 変更内容を保存せずにプログラムを終了します。 |
このテストユーティリティは Natural Web インターフェイスのコンポーネントです。 HTTP サーバーを使用することなく、サブプログラムをローカルでチェックできます。 Web ページの転送パラメータはテストユーティリティに転送され、ビジネスロジックに直接ポストされます。 通信プラットフォームとしては、実際のリモート通信と同様に、RPC を使用できます。 処理の結果、目的の Web ページまたはエラーメッセージが表示されます。 Web ページは、選択したブラウザまたはビューアで表示できます。 エラーメッセージが表示された場合も、追加のテストルーチンを作成することなく、ローカルで簡単にビジネスロジックをデバッグできます。 リモートデバッグは不要です。
機能:
ローカルでアプリケーションチェックを実行します。
リモートデバッグが不要です。
エラーチェックが簡単です。
テストルーチンを追加作成が不要です。
以下に参考情報を示します。
アプリケーションを実行するには
プログラム WEB-ONL3 を開始します。
ライブラリ名とサブプログラム名を選択します。
オプション:パラメータを追加します。
[RPC]を選択します。
Enter キーを押します。
15:37:27 ***** Natural Web Online Test Utility 3 ***** 2006-01-09 - Main Menu - Library SYSWEB3 Library ............. SYSWEB3 Subprogram ......... NAT-ENV Transport ........... R Output text object .. WEB-OUT Output resource .... WEB-OUT Parameter Name Value Server: X 1: 2: 3: 4: 5: 6: 7: 8: 9: HTTP Method ......... GET Binary transport .... Input filename ..... Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Canc |
キー | 機能 | 説明 |
---|---|---|
Enter | 要求したサブプログラムの出力を受け取る処理を実行します。 WEB-ONL3 プログラム画面の下部にあるメッセージ行に処理のステータスが表示されます。 | |
PF3 | Exit | テストユーティリティを終了し、コマンド行に戻ります。 |
PF12 | Canc | キャンセル。 処理を停止します。 |