|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
jsonRpcService/CSJS->SSJS->CSJS ошибка запроса09.08.2016, 19:25. Показов 7317. Ответов 23
Метки нет (Все метки)
кнопка и сервис в файле (админы - где вы, невозможно так код постить уже)
в либе код такой (изгалялся по-разному, но до него даже не доходит) Код (Javascript): function rpcSetViewScope(xName:string, xVal:string){ try{ viewScope.put("\""+xName+"\"",xVal); return xVal; } catch (e) { return SSJS Error: + e.toString(); } } ошибка: Caused by: java.lang.ClassCastException: com.ibm.jscript.std.FunctionObject incompatible with com.ibm.jscript.std.ObjectObject at com.ibm.jscript.json.JsonJavaScriptFacto ry.getProperty(JsonJavaScriptFactory.jav a:87) это ответ сервера клиенту (браузеру) на POST (кот. по кнопке) Код (XML): <xe:jsonRpcService id="rpcScope" pathInfo="rpcScope" serviceName="rpcScope"> <xe:thys.methods> <xe:remoteMethod name="setViewScope" script="rpcSetViewScope"> <xe:thys.arguments> <xe:remoteMethodArg name="xName" type="string"></xe:remoteMethodArg> <xe:remoteMethodArg name="xVal" type="string"></xe:remoteMethodArg> </xe:thys.arguments> </xe:remoteMethod> </xe:thys.methods> </xe:jsonRpcService> <xp:button value="XHR" id="button1" onclick="xhr();"> <xp:eventHandler event="onclick" submit="false"> <xp:thys.script><![CDATA[try{ rpcScope.setViewScope("test","test").add Callback(function(xVal){ console.log("xVal:"+xVal);}); } catch (e) { alert(e.toString()); }]]></xp:thys.script> </xp:eventHandler></xp:button>
0
|
|
| 09.08.2016, 19:25 | |
|
Ответы с готовыми решениями:
23
Работа со строками viewpanel на csjs Set/get scope var через csjs Сторонние js убивают работу csjs хпагесов |
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 09.08.2016, 20:08 | |
|
прошу прощения, разобрался...
там же JS - надо было ф-цию нрмально описывать (как для JS) в script= у сервиса
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 10.08.2016, 13:12 | ||
|
наступил еще на грабли...:
- вызов ф-ции, посчему-то работает только для Static value (в динамике не - не могу передать массив (ни keys=[]; ни =new Array();... ) Код (Javascript): try{ var keys=new Array(); keys.push("one"); keys.push("two"); keys.push("three"); rpcScope.setViewScope("keys",keys).addCa llback(function(xVal){ try{ console.log("xVal:"+xVal); }catch (e){ alert(e.toString()); } }); } catch (e) { alert(e.toString()); } посылает
0
|
||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 10.08.2016, 15:37 | ||
|
не знаю - с чем это связанно - не нашел "в ваших тырнетах"
передавать можно объекты, массивы (JS) - нет т.е. можно передать Код (Javascript): try{ var keys={}; keys[1]="val1"; keys[2]="val2"; rpcScope.setViewScope("keys",keys).addCa llback(function(xVal){ try{ console.log("xVal:"+xVal); }catch (e){ alert(e.toString()); } }); } catch (e) { alert(e.toString()); } на выходе будет
не верю - что никто не хотел предать просто массив
0
|
||
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
|
| 11.08.2016, 09:26 | |
|
сервис правильно описали? Параметр нужно описать как массив
Приложил пример, у меня работает
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 11.08.2016, 09:57 | ||
уже тестил, отписаться не успел неприятность отладки в том, что жалуется на запрос (при таком сочетании)
0
|
||
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
||||||
| 11.08.2016, 13:55 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 11.08.2016, 14:06 | ||
Код (Javascript): function rpcSetViewScope(xName:string, xVal){ //return rpcGetChartData(); try{ var tmp=[]; for (var val in xVal){ tmp.push(xVal[val]); print("value:"+xVal[val]); } // viewScope.put(xName,tmp); return viewScope.get(xName); } catch (e) { return SSJS Error: + e.toString(); } } рскоментируем viewScope.put(xName,tmp); получим ошибку
0
|
||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 11.08.2016, 14:08 | |
|
в данном случае xVal из CSJS выше
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 11.08.2016, 14:12 | |
|
сервис
Код (XML): <xe:jsonRpcService id="jsonRpcService1" pathInfo="rpcScope" serviceName="rpcScope"> <xe:thys.methods> <xe:remoteMethod name="setViewScope" script="return rpcSetViewScope(xName,xVal);"> <xe:thys.arguments> <xe:remoteMethodArg name="xName" type="string"></xe:remoteMethodArg> <xe:remoteMethodArg name="xVal" type="list"></xe:remoteMethodArg> </xe:thys.arguments> </xe:remoteMethod> </xe:thys.methods> </xe:jsonRpcService>
0
|
|
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
|
| 11.08.2016, 14:28 | |
|
Ясно
У вас ошибка в том, что Вы возвращаете массив. Возвращать нужно либо строку либо ничего
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 11.08.2016, 14:59 | ||
или мы др-др не понимаем массив спокойно возвращается, но только не из viewScope (указанным способом) вот так Код (Javascript): return tmp;//viewScope[xName];//viewScope.get(xName); спокойно возвращает
0
|
||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 11.08.2016, 15:14 | |
|
др. словами:
запихнуть/вывести ассоциативный массив (аки map) - нет проблем с массивом (простым) - проблема вот так Код (Javascript): viewScope[xName]=xVal; return viewScope[xName];//viewScope.get(xName); споконо отработает, если на входе (xVal) - map
0
|
|
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
|
| 11.08.2016, 15:32 | |
|
И правда, там даже методы toString() по-разному отрабатывают. Один со скобками, другой без..
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 17.08.2016, 14:47 | |
|
дополню, сюда, итератор объектов...
почему - да патамочта в SSJS не будет работать более комфортный вариант Код (Javascript): Object.keys(myArray).length , кот. есть в CSJS (движок браузера посвежее будет ;) , чем rhino у домины) иногда "нужно" получить элементы объекта но не в порядке размещения, ассоциативный массив JS, в отличии от LS не будет соблюдать порядок внесения элементов (вот ведь "странно" ;), а "мы" так привыкли в LS) ассоциировать объекты, в таком случае, можно с номером (это коряво, но хоть что-то, если "надо" передавать именно ассоциативный массив), пример для SSJS: Код (Javascript): function rpcGetChartData(map){ Object.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; //.... var keyV:java.util.Vector=historyV(@Today()) ; for(var i=0; i<Object.size(map);i++){ keyV.addElement(map[i]); } где var map={};map[1]=...
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 25.08.2016, 12:44 | ||
|
очередные моя "плакать"...
сперва, как и в теме - возврат undefined - дефолтного рапера нет!
это какбэ странно теперь про даты - как их сравнивать, а хз - потому как штатно они, при сравнении приводятся к стрингу т.е. Код (Javascript): var dt:NotesDateTime, dt1:NotesDatetime; ... while (dt<=dt1){...} спросите - а чего я ожидал - приведения хотя бы к long (например - в ms) мало того, в приведенном типе toJavaDate, я не нашел методов before и after, в подсказке, но они есть ;) вопщем - цирк с конями и это к теме - на чем лучше писать бэкэнд (SSJS или java) - для меня ответ очевиден
0
|
||
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
||
| 28.08.2016, 16:03 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||
| 28.08.2016, 16:25 | ||
Код (Javascript): dt.toJavaDate().before(dt1) и странно что именно этот вариант не подсвечивается в коде(в том и неудовольствие)
0
|
||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 10.10.2016, 19:08 | |
|
тема будет всплывать ибо много "особенностей"
все они касаются вывода значений после вызова из CSJS к SSJS вот очередной экзерциз... Код (Javascript): var tmp=eval("#{javascript:return rpcSummaryMnth(viewScope.get(curyear), viewScope.get(curmonth), true)}"); хотеть - массив. в SSJS: Код (Javascript): var key:String=context.getUser().getCommonNa me()+"|"+year+@Right("00"+month,2); var entry:NotesViewEntry=entryByKey(vname, key); var v:java.util.Vector=entry.getColumnValues (); //forecast summary by month //return 2 years or 1 print("key:"+key); var tmp=$CONV.toArray(full?v.subList(2,25):v .subList(2,13)); получение массива из ч-л: https://openntf.org/XSnippets.... o-an-array засада будет при конвертации (хотя там "вроде" JS массив ;) ) для возврата клиенту. кастыль: Код (Javascript): var arr=new Array(); arr.push(0) for(var i=0; i<tmp.length; i++){ //to escape trouble with return to CSJS (json convert) arr.push(tmp[i]); } return arr;//$CONV.toArray(full?v.subList(2,25):v.sub List(2,13)); закоменченный возврат - выдаст ошибку конвертации (выдаст его в клиент! ответом на запрос)
0
|
|
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
|
|
| 11.10.2016, 21:27 | |
|
Во-первых, что бросилось в глаза - это eval, зачем он тут нужен? Ты итак выводишь текст
Во-вторых, если передать в функцию toArray лист(а передается именно лист, а не вектор), то она вернет [лист](см. исходный код функции). А не сконверченный в массив
0
|
|
| 11.10.2016, 21:27 | |
|
Помогаю со студенческими работами здесь
20
Rich text получить значение csjs Ошибка запроса System.Data.OleDb.OleDbException: "Ошибка синтаксиса (запятая) в выражении запроса Ssjs И Activexobject Обновление Полей В Ssjs SSJS а что у нас с датами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|