про диалоги посмотри всю ветку
про viewScope:
1 viewScope (и др. Scope)- серверная переменная, а "метод" у тебя описан в "клиенте"
2 в "клиенте" (CSJS) можно выполнить серверный (SSJS) скрипт: #{javascript:
тут серверный скрипт}
3 в этом скрипте получаешь свой viewScope:
var myVar = #{javascript:viewScope.get("scopeVar")}
или var myVar = #{javascript:viewScope.scopeVar}
scopeVar - твоя запомненная переменная
4 а можешь в SSJS, там, где запоминаешь viewScope, параллельно записать его в поле, чтобы использовать в методе (CSJS) - взять значение из поля (value (editableField) или innerHTML (computedField), в зависимости, что за поле у тебя
Метод описан не в клиенте а в классе.
Для наглядности
<xp:button id="button1" value="Добавит родительскую заявку">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[XSP.openDialog('#{id:dialog1}')]]></xp:this.script>
</xp:eventHandler></xp:button>
открываем диалог
<xe:dialog id="dialog1" title="Родительская заявка">
<xe:dialogContent id="dialogContent1"><xp:table style="width:100.0%"><xp:tr>
<xp:td style="width:25.0%;text-align:right">Номер:</xp:td>
<xp:td>
<xp:inputText id="inputText21"></xp:inputText></xp:td></xp:tr><xp:tr>
<xp:td style="text-align:right">Год:</xp:td>
<xp:td>
<xp:inputText id="inputText22"></xp:inputText></xp:td></xp:tr></xp:table></xe:dialogContent>
<xe:dialogButtonBar id="dialogButtonBar1">
<xp:button id="button2" value="Добавить">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="viewPanel1">
<xp:this.script><![CDATA[alert('Добрый день')]]></xp:this.script>
<xp:this.action><![CDATA[#{javascript:claim.insertParentClaim("111111111", "22222222")}]]></xp:this.action>
</xp:eventHandler></xp:button></xe:dialogButtonBar></xe:dialog>
По кнопке добавить мне надо вызвать метод insertParentClaim и вывести его результат на Xpages.
И когда вместо 111111111 беру из диалога значение getComponent("inputText21").getValue() все время первый раз по кнопке идет Null