forum.bitel.ru
http://forum.bitel.ru/

передача параметра из экшена в скрипт
http://forum.bitel.ru/viewtopic.php?f=19&t=8472
Страница 1 из 2

Автор:  skyb [ 19 сен 2013, 07:32 ]
Заголовок сообщения:  передача параметра из экшена в скрипт

есть переписанный экшен
ActionNewContract
Код:
String AccountId = getParameter( "AccountId");
ContractParameterManager cpm = new ContractParameterManager( con );
super.doAction();
int cid = Integer.valueOf(XMLUtils.selectText(rootNode, "contract/@id"));
cpm.updateTextParam(cid, 78, AccountId, 0);

На событие договор создан вешаю скрипт, как передать AccountId в этот скрипт?

Автор:  dimOn [ 19 сен 2013, 11:09 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

эм... никак, разумеется.
почему бы не вычитывать в скрипте этот добавленный в договор параметр ?

Автор:  skn [ 19 сен 2013, 11:35 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

добавить в запрос ..&AccountId=значение

Автор:  skyb [ 19 сен 2013, 11:36 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
добавить в запрос ..&AccountId=значение

Да не, я его получаю замечательно и записываю в параметр договора. Мне нада его потом поймать на событие договор создан

Автор:  skyb [ 19 сен 2013, 11:37 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

dimOn писал(а):
эм... никак, разумеется.
почему бы не вычитывать в скрипте этот добавленный в договор параметр ?

делаю так
Код:
            Connection con = connectionSet3.getConnection();
            int cid = event1.getContractId();
            ContractParameterManager cpm = new ContractParameterManager( con );
            String AccountId = cpm.getStringParam(cid, 78);
            print ("AccountId " + AccountId);

но print выдает null

Автор:  skn [ 19 сен 2013, 11:38 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

1) сравните cid при записи параметра и чтения
2) славе база есть?

Автор:  Cromeshnic [ 19 сен 2013, 11:55 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

Мб параметр пишется уже в Action_afterEvent, т.е. после того, как договор создан и событие выстрелило

Автор:  skyb [ 19 сен 2013, 11:58 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
1) сравните cid при записи параметра и чтения
2) славе база есть?

нет нету слейва, да, сравнивал, все верно

Автор:  dimOn [ 19 сен 2013, 12:07 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

а, ну так событие ContractCreatedEvent синхронное, т.е. оно сработает раньше, конечно, чем код (добавляющий параметр), который размещён ПОСЛЕ его генерации. потому параметра там ещё нету.
так что никак всё равно.
зачем нужен этот код в событии вообще? если можно сюда же всё это дописать.

Автор:  skn [ 19 сен 2013, 18:27 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

Димон предлагал после кода
Код:
super.doAction();
int cid = Integer.valueOf(XMLUtils.selectText(rootNode, "contract/@id"));
cpm.updateTextParam(cid, 78, AccountId, 0);
добавить код который в скрипте обработчика события "Договор создан"
тогда туда не нужно будет передавать параметр AccountId

Автор:  skyb [ 19 сен 2013, 18:28 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

Читал из файла данные и потом записывал их, не правильно это

Подскажите как из POST запроса разбирать xml структуру и получать параметры?

Автор:  skyb [ 19 сен 2013, 18:29 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
Димон предлагал после кода
Код:
super.doAction();
int cid = Integer.valueOf(XMLUtils.selectText(rootNode, "contract/@id"));
cpm.updateTextParam(cid, 78, AccountId, 0);
добавить код который в скрипте обработчика события "Договор создан"
тогда туда не нужно будет передавать параметр AccountId

попробовал, но там с перетиранием файла проблемы, которые не получилось решить.

думаю лучше читать из POST запроса структуру и там параметры выдирать, вопрос как?

Автор:  skn [ 19 сен 2013, 19:21 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

а задача то какая? трудно что то советовать не зная целей.

Автор:  skyb [ 19 сен 2013, 19:30 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
а задача то какая? трудно что то советовать не зная целей.

идет обращение к сторонней системе по HttpClient, система возвращает данные в виде xml дерева, вот данные с него нужно получить

Автор:  skn [ 19 сен 2013, 21:26 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

что то не понял, вы вызываете акшен создания договора, передаете ему код записи во внешней системе, а затем лезете во внешнюю систему с этим кодом что бы загрузить оставшие данные? если так, то почему бы не предать все данные сразу, а не только код?

Автор:  skyb [ 20 сен 2013, 04:37 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn да, именно так. Проблема в том что там ограниченное число данных передать можно

Автор:  skn [ 20 сен 2013, 05:10 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skyb писал(а):
skn да, именно так. Проблема в том что там ограниченное число данных передать можно


кто сказал? я про ограничения не слышал...
например, ту же xml передать можно без проблем

Автор:  skyb [ 20 сен 2013, 07:11 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
skyb писал(а):
skn да, именно так. Проблема в том что там ограниченное число данных передать можно


кто сказал? я про ограничения не слышал...

ограничения в системе которая отдает параметры, их чета 4 штуки передать можно и все, так то был бы идеальный вариант
skn писал(а):
например, ту же xml передать можно без проблем

эм, а как?

Автор:  skn [ 20 сен 2013, 12:23 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

какие четыре? accountId же смогли добавить?
дописать к запросу еще например
Код:
&xml=<данные хмл закодированные urlencoding>

а потом получить getParameter( "xml")

Автор:  skyb [ 20 сен 2013, 13:23 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
какие четыре? accountId же смогли добавить?
дописать к запросу еще например
Код:
&xml=<данные хмл закодированные urlencoding>

а потом получить getParameter( "xml")

это будет xml который нада будет распарсить? или как?

Автор:  Artur [ 20 сен 2013, 13:55 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

Конечно, это же строка.
Сперва нужно будет декодить эту строку, а потом распарсить. В первом случае использовать URLDecoder.decode(), а во втором XMLUtils.parseDocument().

Автор:  skn [ 20 сен 2013, 14:26 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skyb писал(а):
skn писал(а):
какие четыре? accountId же смогли добавить?
дописать к запросу еще например
Код:
&xml=<данные хмл закодированные urlencoding>

а потом получить getParameter( "xml")

это будет xml который нада будет распарсить? или как?

как вариант так, а можете просто десяток параметров добавить
Код:
&param1=value1&param2=value2&param3=value3...&paramN=valueN

Автор:  skyb [ 20 сен 2013, 14:55 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn это было бы идеально, просто проблема в том что система много параметров передать не может

Автор:  dimOn [ 20 сен 2013, 15:31 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

значит, надо передать одним параметром где разделить каким-либо разделителем, или xml или один из 58 других способов. в чём в данный момент вопрос заключается?

Автор:  skn [ 20 сен 2013, 15:46 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skyb писал(а):
skn это было бы идеально, просто проблема в том что система много параметров передать не может


какая система не может? внешняя или биллинг?

Автор:  skyb [ 20 сен 2013, 16:33 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

внешняя

Автор:  skyb [ 20 сен 2013, 17:00 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

dimOn писал(а):
значит, надо передать одним параметром где разделить каким-либо разделителем, или xml или один из 58 других способов. в чём в данный момент вопрос заключается?

ещё ограничение по символам в url

Автор:  skn [ 20 сен 2013, 17:11 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skyb писал(а):
dimOn писал(а):
значит, надо передать одним параметром где разделить каким-либо разделителем, или xml или один из 58 других способов. в чём в данный момент вопрос заключается?

ещё ограничение по символам в url


на этот случай есть метод POST

Автор:  skyb [ 20 сен 2013, 17:12 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

skn писал(а):
skyb писал(а):
dimOn писал(а):
значит, надо передать одним параметром где разделить каким-либо разделителем, или xml или один из 58 других способов. в чём в данный момент вопрос заключается?

ещё ограничение по символам в url


на этот случай есть метод POST

По подробней пожалуйста

Автор:  dimOn [ 20 сен 2013, 17:26 ]
Заголовок сообщения:  Re: передача параметра из экшена в скрипт

Совершенно бессмысленно что-то советовать, если непонятно не только что нужно в итоге, но даже в чём конкретно проблема в данный момент.

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/