Текущее время: Вт, июл 29 2025, 23:28

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Есть ли метод GET POST в BSP?
СообщениеДобавлено: Ср, окт 10 2007, 09:50 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
Привет всем!
Задача такая, в BSP программе получить значение переменной передаваемой в адресной строке.
То есть, в URL
http://tom.snos.ru:1080/sap(bD1ydSZjPTAyMA==)/bc/bsp/sap/zsm50/default.htm?srv=tom_SLV_20

есть передаваемая переменная srv = tom_SLV_20.

Как ее отловить в BSP отчете?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 10 2007, 12:57 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
POST метод есть, а вот GET...
Интересно, есть ли метод который возвращает строку URL.
Один нашел:
data: getstr type string.
getstr = page->get_page_url( ).

Но он получает URL не полностью только до .../default.htm
Он берет это значение с сервера BSP.

При нажатии ссылки надо вызвать другой BSP документ и передать ему часть переменных.
Попробую так: <a href="other_doc.htm" onclick="<% perem1=val1, perem2=val2.%>"> Интересно сработает. А в аттрибутах страницы other_doc.htm опишу эти переменные.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, окт 13 2007, 02:22 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
В общем случае я бы рекомендовал использовать POST. Мне так больше нравится :)
Что касается GET - используйте метод объекта navigation (класс cl_bsp_navigation) set_parameter в событии OnInputProcessing вашей BSP страницы.

UPD: У атрибутов обязательно должна стоять галка Auto. Иначе значения не передадутся.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 07:48 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
А как пользоваться методами не подскажешь?
В OnInputProcessing первой страницы я написал:

data: test type string.
navigation->set_parameter(test, 'Hi from first page!').

Ругается на синтаксис.

Вот описание метода:
method set_parameter
importing
name type string
value type any optional
------дополнение-----------
Вот таким образом ошибок нету, но все равно не работает )
data: test type string.
test = 'Hi from first page!'.
navigation->set_parameter( test ).

Параметр test во второй странице описан, поставлена отметка "auto".
Метод post по отношению ко второй странице работает нормально, а вот get не хочет. Может я неправильно описываю код?
OnInputProcessing первой страницы будет вызываться при нажатии на ссылку на первой странице?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 07:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Damir написал(а):
data: test type string.
navigation->set_parameter(test, 'Hi from first page!').

Ругается на синтаксис.

Внутри круглых скобочек должен быть пробел.
Кроме того, имя параметра, test, нужно чем-то заполнять.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 08:03 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
И еще почему то метод navigation->set_parameter( test ) работает только в окне OnInputProcessing, а в основном тексте кода не работает, вызывает ошибку "The field navigation is unknown" )


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 08:12 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
sibrin написал:
Внутри круглых скобочек должен быть пробел.
Кроме того, имя параметра, test, нужно чем-то заполнять.

Насчет пробела я догадался )... Судя по описанию метода, там передаются 2 параметра, но как их правильно синтаксически описать?
navigation->set_parameter( test , 'Hi from 1-st page!') - так ошибка: Сomma without preceding colon (after NAVIGATION->SET_PARAMETER( ?).
В помощи сказано, если второй параметр опустить, то значение возмется из поля формы с таким же именем. Но так как формы у меня нету, я хочу непосредественно в методе передать значение.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 09:07 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
navigation->set_parameter( name = 'test' value = 'Hi from first page!' )
. вот так правильно использовать метод. Только параметры все равно не передаются...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 09:39 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Damir, у той страницы, куда передается параметр, должен быть объявлен атрибут с тем же именем и галкой Auto.
Тогда все будет работать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 09:48 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
Там есть аттрибут с этим именем, и "авто" тоже стоит ) Похоже дело в другом, OnInputProcessing работает для полей ввода. А у меня полей ввода нет, есть просто ссылка на другую страницу, в которую я хочу передать параметр.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 10:20 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, фев 08 2007, 11:44
Сообщения: 52
Поля ввода здесь ни при чём. Как ты переходишь на другую страницу после установки параметров ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 12:16 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
Вот одна из ссылок, которые стоят на страничке default.htm
<a href="default.htm?srv=<%= sl-name %>"> <%= sl-name %> </a>

sl-name одно из значений tom_SLV_20, tom_SLV_21.

То есть, вначале при запуске страницы отображаются данные первого доступного сервера (в нашем случае червера tom_SLV_20), одновременно формируются ссылки на данные других серверов.

При нажатии на ссылку <a href="default.htm?srv=<%= sl-name %>"> <%= sl-name %> </a> вызывается эта же страничка, но ей должны передаться параметры, а именно название сервера, данные которого мы хотим отобразить.
То есть, при нажатии на ссылку должно сработать какое-то событие, внутри которого идет передача параметра. OnInputProcessing у меня не работает.
--------------------------------------------------
И еще, почему-то обработчик событий не видит переменные описанные в основном тексте программы.
----------------------------------------------------------
Приведу текст программы и обработчика:
------------------DEFAULT.HTM-------------------------------
<%@page language="abap"%>
<% data:
wptab type table of wpinfo,
wa type wpinfo,
server(40) type c,
test2 type string,
i type i,
col type i,
withcpu type TSKH_DUMMY-WITH_CPU,
servlist type table of MSXXLIST,
sl type MSXXLIST,
e_services type MSXXLIST-MSGTYPES value 255,
getstr type string.
*-------------
CALL function 'TH_SERVER_LIST'
EXPORTING
services = e_services
TABLES
list = servlist
EXCEPTIONS
OTHERS = 1.
read table servlist into sl index 1.
"getstr = page->get_page_url( ).
server = sl-name.
test2 = test.
*------------- %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Рабочие процессы</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body BGCOLOR="#eeeedd" >
<%= test2 %>
<table border="1" cellspacing="0" bordercolor="#999999">
<tr bgcolor="#99ccee"><td with="100">Сервер</td><td with="150">Хост</td><td with="100">Статус</td></tr>
<% i = 1.col = 0.
while sy-tabix <> 0.
read table servlist into sl index i.
if sy-tabix <> 0.%>
<% if col = 0. %>
<tr bgcolor="#ccffcc">
<% col = 1.
else. %>
<tr bgcolor="#ffffcc">
<% col = 0. endif. %>
<td><a href="default.htm?srv=<%= sl-name %>"> <%= sl-name %> </a></td>
<td> <%= sl-host %> </td>
<td> <%= sl-state %> </td>
</tr>
<% endif.
i = i + 1. endwhile. %>
</table>
<% withcpu = 0.
CALL FUNCTION 'TH_WPINFO'
EXPORTING
srvname = server
with_cpu = withcpu
TABLES
wplist = wptab
EXCEPTIONS
OTHERS = 1.
%>
<p>&nbsp;</p>
<table border="1" cellspacing="0" bordercolor="#999999">
<tr bgcolor="#99ccee">
<td>№</td><td>Тип</td><td>ИдП</td><td>Статус</td><td>Прич.</td><td>Зап.</td><td>Ошб.</td>
<td>Вр.</td><td>Отчет</td><td>Мдт</td><td>Пользов.</td><td>Операц</td><td>Таблица</td>
</tr>
<% i = 1.col = 0.
while sy-tabix <> 0.
read table wptab into wa index i.
if sy-tabix <> 0.%>
<% if col = 0. %>
<tr bgcolor="#ccffcc">
<% col = 1.
else. %>
<tr bgcolor="#ffffcc">
<% col = 0. endif. %>
<td> <%= wa-wp_no %> </td>
<td> <%= wa-wp_typ %> </td>
<td> <%= wa-wp_pid %> </td>
<td> <%= wa-wp_status %> </td>
<% if wa-wp_waiting <> ''.%>
<td> <%= wa-wp_waiting %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<td> <%= wa-wp_restart %> </td>
<% if wa-wp_dumps <> ''.%>
<td> <%= wa-wp_dumps %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_eltime <> ''.%>
<td> <%= wa-wp_eltime %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_mandt <> ''.%>
<td> <%= wa-wp_mandt %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_bname <> ''.%>
<td> <%= wa-wp_bname %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_report <> ''.%>
<td> <%= wa-wp_report %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_action <> ''.%>
<td> <%= wa-wp_action %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
<% if wa-wp_table <> ''.%>
<td> <%= wa-wp_table %> </td>
<% else. %><td>&nbsp;</td><% endif. %>
</tr>
<% endif.
i = i + 1. endwhile. %>
</table>
</body>
</html>
----------------OnInputProcessing---------------------------------------
navigation->set_parameter( name = 'test' value = 'Hi from first page!' )
.
------------------Attrubutes--------------------------------
test type string, 'auto' - 'X'.
----------------------------------------------------
Программа должна при нажатии на ссылку присвоить в test2 значение test и отобразить на экране.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 13:24 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
OnInputProcessing реагирует только на кнопку. Стоило мне добавить форму с кнопкой, как параметры передаются нормально. Но действия при нажатии на ссылку (как мне надо), не отрабатывают. Придется около каждой строчки ставить кнопку ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 13:40 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, фев 08 2007, 11:44
Сообщения: 52
Чтобы работал приведенный выше код замени в URL
Code:
<td><a href="default.htm?srv=<%= sl-name %>"> <%= sl-name %> </a></td>

переменную srv на test и будет тебе счастье 8)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 15 2007, 13:45 
Специалист
Специалист

Зарегистрирован:
Пт, фев 16 2007, 09:49
Сообщения: 157
Спасибо за помощь! Ща попробуем! ;-)
А я уж вариант со скрытыми формами сделал, вместо ссылок у меня маленькие кнопочки ), тоже работает, но хотелось бы со ссылками.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB