AS側における1行120バイト以内の記述制限を回避するには、
どのようにすれば良いのでしょうか?
STRCGIDBGにてディバッグ・モードで実行したときに限り、1行の長さが120バイトを超えると
警告メッセージが現われます。
これはAS/400では改行キーも含んで1行が120バイト以下であるという
仕様に従っていることに依ります。
(詳細はAS/400「TCP/IP 機能とインターネット」の90頁をご参照ください。)
また、RPGエンジンが120バイトの超過分を切り捨てるようなことはありません
(RPGエンジンでは512バイトまで処理できるようにしています)が、ディバッグ・モードをいっそうスムーズに実行するためにも適度に改行を行い、1行を120バイト以内に収めたHTMLテンプレートを
作成したいものです。
しかし長大なURIを含むJavaScriptなど、単純に改行しただけではうまく機能しなくなる場合もあります。
function CrtNewWindow(url){ PARA='/cgi-bin/COMCGI?@TEMPLATE=/WWWALIAS/HTMLDIR/INDEX.HTML&@FORMAT=INIT&FORMNO=FORMNUM&CODE=JOG101010&UNAME=OFFICEQUATTRO&STATUS=OWNER'; window.open(PARA, '_blank','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,close=yes,width=250,height=460,top=200,left=700'); }
例えば上記のようなJavaScriptであれば次のように、あらかじめ120バイト以内に収まるよう分断した文字列をマージさせることで、120バイト制限を回避できます。
【加工後のJavaScript例】
function CrtNewWindow(url){ PARA='/cgi-bin/COMCGI?@TEMPLATE=/WWWALIAS/HTMLDIR/INDEX.HTML&@FORMAT=INIT'; PARA+='&FORMNO=FORMNUM&CODE=JOG101010&UNAME=OFFICEQUATTRO&STATUS=OWNER'; window.open(PARA, '_blank','toolbar=no,location=no,status=no, menubar=no,scrollbars=no,close=yes,width=250,height=460'+', top=200,left=700'); }