WEBEVENTフォームを呼び出す主な手段は、HandleEvent()というJavaScript関数です。WEBEVENTフォームからWAMフォームを呼び出すためのJavaScriptベースの手段として、それとよく似たHandleWAMEvent()という関数も用意されています。
WEBEVENTフォームからWAMフォームを呼び出すには、以下のようにします。
1.  提供されているHandleWAMEvent()というJavaScript関数を使用します。
     この関数を呼び出す方法は、HandleEvent()関数を呼び出す方法と同じです。
2.  パラメータは、HandleWAMEvent(WAM, Webroutine, TechServ, Form, Target, actionRequest, Partition, Language, optSessionKey, optDebugMode, "ASURNAME", "ASTDRENTRY", ...)のようになっていて、各フィールドに対応する可変数のパラメータの値をWebroutineに渡すことができます。ここでフィールド名の前に接頭辞を1文字付けることが重要です。この接頭辞は、Alphanumericフィールドの場合はA、Packedフィールドの場合はP、Signedフィールドの場合はS、RDMLXフィールドの場合はQです。この接頭辞は、WAMのWEBROUTINEにフィールド値を渡すときには必要ありませんが、フォームのフィールド値にアクセスする時は必須です。これはJavaScriptのHandleWebEvent()関数のセマンティックスと一貫性を持たせるためでもあります。
3.  HandleWAMEventのパラメータは、以下のとおりです。

WAM

ターゲットWAMの名前

Webroutine

ターゲットWEBROUTINEの名前

TechServ

使用するテクノロジ・サービス。デフォルト値のLANSA XHTMLテクノロジ・サービスの場合はnull。

Form

送信フォームのためのフィールド値を取得するフォームHTMLオブジェクト。(例:「MYFORM」という名前のフォームであればdocument.MYFORM) デフォルト値のLANSAフォームの場合はnull。

Target

ナビゲーションの結果が表示されるターゲットのiframe、frame、ウィンドウ。新しいページを呼び出す場合はnull。

actionRequest

nullの場合は、デフォルトの"cgi-bin/lansaweb"操作の要求。

Partition

WAMフォームを実行する区画。

Language

WAMを実行する言語。

optSessionKey

SessionKeyMethodがURLの場合、任意でセッション・キーを渡すことがが可能。それ以外はnull。

optDebugMode

デバッグURLキーワードを渡して、WAMのデバッグが可能。それ以外はnull。

 
4.  このJavaScript関数は、指定のFormパラメータ (またはFormがnullの場合はデフォルト値の"LANSA"フォーム) からフィールドの値を取得し、一時的なフォームを作成して、URLに送信されるこのフォームにフィールドと値を挿入します。そして、URLに対するHTTP postを実行します。HandleWebEvent()にパラメータとして渡すフィールド名にはすべて、フィールドのタイプを示す1文字の接頭辞を付ける必要があることに注意してください。WAMフィールド参照は接頭辞を必要としませんが、WEBEVENTファンクションは必要とします。したがって、このJavaScriptコードは、WEBEVENTフォームから指定のフィールド値を取得するときには1文字の接頭辞付きで取得しますが、WAMファンクションにフィールド名を送信するときには接頭辞なしで送信します。
5.  JavaScript関数のTargetパラメータは必須です。指定できる値は、中に組み込むiframeの名前、frameの名前、ウィンドウの名前のいずれかです。
6.  その結果、指定のフィールド値が渡されたWebroutineが実行され、Webroutineページがブラウザーに表示されます。Webroutineに値を設定するには、送信するフィールドがWEB_MAP FOR(*INPUTまたは*BOTH)で指定されていなければいけません。
*例*
*WEBEVENTフォームからWAMフォームを開始し、情報を渡す方法*
1.  ファンクションを作成して、以下のコードを貼り付けます。
 
Function Options(*DIRECT *webevent)* Define Field(#searchwam) Type(*char) Length(1)Define Field(#wamname) Type(*char) Length(9)Define Field(#webrname) Type(*char) Length(20)Define Field(#techserv) Type(*char) Length(21) Define Field(#frametgt) Type(*char) Length(20)Define Field(#currlang) Type(*char) Length(4) Default(*language)* Group_By Name(#webform) Fields((#stdrentry *hidden) (#frametgt *noid) #surname #searchwam (#currlang *hidden) (#partition *hidden) (#wamname *hidden) (#webrname *hidden) (#techserv *hidden))* Change Field(#wamname) To(<{*}your wam name{*}>)Change Field(#webrname) To(<{*}your wam webroutine name{*}>)Change Field(#frametgt) To(<{*}your iframe name{*}>)Change Field(#stdrentry) To(N)* Request Fields(#webform) Exit_Key(*no) Menu_Key(*no) Prompt_Key(*no)
* 
 
2.  <{*}your wam name{*}>、 <{*}your wam name{*}> 、 <{*}your iframe name>{*}をそれぞれ適切な名前に置き換えます。
     この場合、WAMは、デフォルトのLANSA:XHTMLテクノロジ・サービスと同じ区画に存在していなければならず、同じ言語で実行しなければなりません。そうでなければ、{*}#techserv、#currlang、#partition{*}の各フィールドの値を変更してください。
3.  LANSA Webエディターを使用して、InputタイプのVisualコンポーネントを作成し、FRAMETGTという名前を付けます。 
4.  コンポーネントのページにもFRAMETGTという名前を付けます。
5.  新しいページを作成して、以下のコードを貼り付けます。
<iframe style="width:600px; height:400px" name='<RDML MERGE="FRAMETGT">'></iframe>
 
6.  ページをFRAMETGTとして保存します。
7.  LANSA Webファンクション・エディターを使用して、InputタイプのVisualコンポーネントを作成し、SEARCHWAMという名前を付けます。 
8.  コンポーネントのページにもSEARCHWAMという名前を付けます。
9.  新しいページを作成して、以下のコードを貼り付けます。
 
<button onclick="return HandleWAMEvent('<RDML MERGE="WAMNAME">', '<RDML MERGE="WEBRNAME">', '<RDML MERGE="TECHSERV">', null, '<RDML MERGE="TARGET">', null, '<RDML MERGE="PARTITION">', '<RDML MERGE="CURRLANG">', null, null, 'ASURNAME', 'ASTDRENTRY' )">Search</button>
 <script type="text/javascript">
//<!\[CDATA\[
function CreateTempForm(ownerDoc)
\{
   var oTempForm = ownerDoc.createElement("form");
\\
   if (oTempForm != null)
   \{
      if (typeof oTempForm.setAttribute === "function")
      \{
         oTempForm.setAttribute("method", "post");
      \}
      else
      \{
         oTempForm = ownerDoc.createElement("<form method=\"post\"></form>");
      \}
   \}
   return oTempForm;
\}
\\
function HandleWAMEvent(WAM, WebRoutine, techServ, Form, Target, actionRequest, Partition, Language, optSessionKey, optDebugMode /*, field1, field2, etc...*/)
\{
   if (Form == null)
   \{
      Form = document.LANSA;
   \}
   if (techServ == null)
   \{
      techServ = "LANSA:XHTML";
   \}
\\
   var oTempForm = CreateTempForm(Form.ownerDocument);
\\
   if (oTempForm != null)
   \{
      Form.ownerDocument.body.appendChild(oTempForm);
      var argLen = arguments.length;
\\
      if (argLen > 10)
      \{
         for (var index = 10; index < argLen; index++)
         \{
            var fieldNameWithPrefix = arguments\[index\];
            var fieldName = fieldNameWithPrefix.substr(1, fieldNameWithPrefix.length - 1);
            for (var ind = fieldNameWithPrefix.length; ind < 10; ind++)
            \{
               fieldNameWithPrefix += " ";
            \}
            var fieldValue = Form.elements\[fieldNameWithPrefix\].value;
            InsertHidden(oTempForm, fieldName, fieldValue);
         \}
      \}
\\
      // Add STDANCHOR if available
      var anchorField = Form.elements\["ASTDANCHOR"\];
      if (anchorField != null)
      \{
         InsertHidden(oTempForm, "STDANCHOR", anchorField.value);
      \}
\\
      var prevAction = oTempForm.action;
      var prevTarget = oTempForm.target;
\\
      var action = "";
      if (actionRequest == null || actionRequest.length <= 0)
      \{
         actionRequest = "/cgi-bin/lansaweb";
      \}
      action += actionRequest + "?wam=" + WAM + "&webrtn=" + WebRoutine + "&ml=" + techServ + "&part=" + Partition + "&lang=" + Language;
      if (optDebugMode != null && optDebugMode.length > 0)
      \{
         action += "&debug=" + optDebugMode;
      \}
      if (optSessionKey != null)
      \{
         action += "&sid=" + optSessionKey;
      \}
      oTempForm.action = action;
      \\
      if (Target != null)
      \{
         oTempForm.target = Target;
      \}
      oTempForm.submit();
      setTimeout(function() \{
            oTempForm.action = prevAction;
            oTempForm.target = prevTarget;
            oTempForm.parentNode.removeChild(oTempForm);
         \}, 100);
   \}
   return false;
\}
\\
function InsertHidden(Form, FieldName, FieldValue)
\{
   if (Form == null)
   \{
      return;
   \}
\\
   var field = Form.elements\[FieldName\];
\\
   if (field == null)
   \{
      var elem = Form.document.createElement("input");
\\
      if (elem != null)
      \{
         elem.setAttribute("type", "hidden");
         elem.setAttribute("name", FieldName);
         elem.setAttribute("value", FieldValue);
         Form.appendChild(elem);
      \}
   \}
   else
   \{
      field.value = FieldValue;
   \}
\}
//\]\]>
</script>
 
10. ページをSEARCHWAMとして保存します。
11. WEBEVENTファンクションをコンパイルして、HTMLを生成します。
12. 上のWEBEVENTサンプルをブラウザーで実行します。検索ボタンをクリックすると、WAMNAMEとWEBRNAMEの各フィールドで指定したWAMとWEBROUTINEが呼び出されます。WEBROUTINEの実行によって生成されるHTML応答が、WEBEVENTの検索ボタンと同じページにあるFRAMETGTコンポーネントに表示されます。