• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Получить Значение Поля В Столбце Data Table....

  • Автор темы ipopov
  • Дата начала
I

ipopov

Просьба не кидаться отходами сразу, но просто я уже ничего не понимаю.

Сделал data table как в примере, в data source выбрал документы скриптом

var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person");

Сделал в колонке вычисляемое поле со значением как в хелпе написано

return rowdoc.getItemValueString ("LastName")

Матерится "error 500" нещадно и однозначно на скрипт в вычисляемом поле. Если туда просто поставить что нить вида
return "bla bla bla"
то на странице в результате хорошо видно по количеству строк в таблице, что документы отбираются правильно и в нужном количестве.
Я понять не не могу, как мне до полей в документе достучаться?
 
Z

Zeka

Ща кофе допью, погадаю на кофейной гуще.

Покажи код xpage
 
I

ipopov

Ща кофе допью, погадаю на кофейной гуще.

Покажи код xpage

Погляди, погадай. Если вместо return "bla bla bla" поставить как написано в хелпе return rowdoc.getItemValueString("LastName") начинает ругаться error 500, что rowdoc не существует (это я уже в xmlных логах раскопал.....). Если оставить return "bla bla bla" то выдаст ровно столько строчек bla bla bla сколько есть документов в коллекшне.

<!--shcode--><pre><code class='xml'><?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:br></xp:br>
<xp:table>
<xp:tr>
<xp:td><xp:dataTable id="dataTable1" rows="30" style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="header" id="pager1">
</xp:pager>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footer" id="pager2">
</xp:pager>
</xp:this.facets>


<xp:this.value><![CDATA[#{java script:var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person")}]]></xp:this.value>
<xp:column id="column1">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{java script:return "bla bla bla"}]]></xp:this.value>
</xp:text>
<xp:this.facets>
<xp:span xp:key="header">Name</xp:span>
</xp:this.facets>
</xp:column>
<xp:column id="column2"></xp:column>
</xp:dataTable></xp:td>
</xp:tr>
</xp:table>


</xp:view>[/CODE]
 
I

ipopov

Вдогонку такой вопрос.
Есть 2 xpage'а.
Один: несколько полей и кнопка сабмита, создает документ. На некоторых полях включен Validation, чтоб пустыми не оставались.
Второй: viewpanel (с первым столбцом чекбоксов) и картинки "урна", на которую повешен simple action удаляющий выбранные документы.
По отдельности все замечательно.
Когда вставляю их рядом на третий xpage, при выборе документов чекбоксами и клике на "урну" отрабатывает validation полей и ничего не удаляется естественно......
У кнопки сабмита и "урны" на клик стоит partial update указывающий на viewpanel....
Не понимаю....
 
Z

Zeka

Погляди, погадай. Если вместо return "bla bla bla" поставить как написано в хелпе return rowdoc.getItemValueString("LastName") начинает ругаться error 500, что rowdoc не существует (это я уже в xmlных логах раскопал.....). Если оставить return "bla bla bla" то выдаст ровно столько строчек bla bla bla сколько есть документов в коллекшне.
надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>

Добавлено:
У кнопки сабмита и "урны" на клик стоит partial update указывающий на viewpanel....
На какой вьюпанел? На котором находятся и поля с валидацией и вьюв с кнопкой удаления? Чему тогда удивляться. Валидация срабатывает ВО ВСЕЙ рефрешуемой части ещё до выполнения акшинов. Если валидайия не прошла - ни один акшин не сработает.

Так что либо partial update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку "Process data without validation"
 
I

ipopov

надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>

Добавлено:
На какой вьюпанел? На котором находятся и поля с валидацией и вьюв с кнопкой удаления? Чему тогда удивляться. Валидация срабатывает ВО ВСЕЙ рефрешуемой части ещё до выполнения акшинов. Если валидайия не прошла - ни один акшин не сработает.

Так что либо partial update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку "Process data without validation"
нет. Я на один xpage сделал include page двух других. На одном Include поля с валидацией и сабмит, а на другом уже view panelс урной.

Добавлено:
надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>
update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку

"Process data without validation" -- спасло, как сам не углядел, не пойму, на поверхности.....спасибо.

А вот про переменную как то поподробнее можно, ничего не понял если честно.....
 
Z

Zeka

А вот про переменную как то поподробнее можно, ничего не понял если честно.....
так попробуй
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:br></xp:br>
<xp:table>
<xp:tr>
<xp:td><xp:dataTable var="rowdoc" id="dataTable1" rows="30" style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="header" id="pager1">
</xp:pager>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footer" id="pager2">
</xp:pager>
</xp:this.facets>


<xp:this.value><![CDATA[#{java script:var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person")}]]></xp:this.value>
<xp:column id="column1">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{java script:return "bla bla bla"}]]></xp:this.value>
</xp:text>
<xp:this.facets>
<xp:span xp:key="header">Name</xp:span>
</xp:this.facets>
</xp:column>
<xp:column id="column2"></xp:column>
</xp:dataTable></xp:td>
</xp:tr>
</xp:table>


</xp:view>
 
I

ipopov

YES!!!
Все заработало как часы.
Все, логика процесса до меня дошла.
Грит сенькс, как говорится.

P.S. если что, обращайтеся :) чем смогу помогу обязательно...

P.P.S. одного не могу понять.....почему в хелпе этого нет.....
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!