Web開発FAQ

AS側における1行120バイト以内の記述制限を回避するには?

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');
}