Текущее время: Чт, авг 07 2025, 21:09

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Ср, июн 17 2015, 15:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Добрый день.
Через трансформации делала перевод обычных документов в excel.

И тут понадобилось сделать не линейную таблицу (список позиций из фактуры), а вложенный список (позиции фактуры сгруппированы по разным поставкам, номер поставки - подзаголовок списка).
Пытаюсь сделать это через условие в strans, которое находится внутри цикла
(т.е. внутри <xsl:template match="two_row">...</xsl:template>)
Вот это условие:
<xsl:if test="not(D_N='')">
.... </xsl:if>
Условие срабатывает, я проверяла.
Только вот вопрос в том, что если однажды заполнить это самое D_N (строка в abap: CONCATENATE xml_result
'<D_N>' 'XXX' </D_N> INTO xml_result ), то потом оно все время заполнено.

Вопрос: как мне его очистить?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 18 2015, 10:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Добрый день.

Как Вы вызываете шаблон и передаете в него параметры?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 18 2015, 11:07 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
CALL TRANSFORMATION (trans)
SOURCE XML xml_result
RESULT XML result_xml_str.
trans - имя трансформации.

xml_result - собранная (через concatenate) строка xml


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 18 2015, 11:28 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А...
Я что-то предположил, что внутри основного шаблона вызывается еще один шаблон.
Попробуйте завести переменную в трансформации и положить в неё значение.

что-то типа
<xsl:variable name="i_var" select="<параметр>"/>

и поработать с переменной.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 18 2015, 16:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Lars, спасибо за совет.
Но что-то я делаю явно не так - присвоение переменной параметру
<xsl:variable name="i_var" select="D_N"/>
судя по поведению системы ничего не дает,
а когда я пытаюсь i_var вывести, чтоб посмотреть, присвоилось все-таки там что-то или нет,
<Cell ss:StyleID="s27"><Data ss:Type="String"><xsl:value-of select="i_var"/></Data></Cell>
то выводится "пусто"....
Видимо, "с наскока" это одолеть невозможно :(


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 18 2015, 18:57 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Честно говоря, не видя трансформацию и передаваемую строку, действительно, сложновато )

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Чт, июн 25 2015, 18:46 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 28 2006, 16:02
Сообщения: 114
Имейте ввиду, что переменную в xslt объявить можно и присвоить ей значение можно. Но изменить нельзя.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр  Тема решена
СообщениеДобавлено: Пт, июл 10 2015, 13:46 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Проблема была решена .
Оказалось, что нужно каждый раз при формировании любой строки заполнять значения всех переменных, которые проверяются в if.
То есть указывать в программе CONCATENATE xml_result '<D_N>' ' ' </D_N> INTO xml_result, если сейчас строку с D_N выводить не нужно, а потом, при проверке ее в трансформации, if будет срабатывать правильно (<xsl:if test="not(D_N='')">.... </xsl:if>).
Вроде просто, но кто бы знал, что нужно указывать переменную и в той строке (том узле xml), где выводить ее (переменную) не нужно...


Последний раз редактировалось Наташа Пт, июл 10 2015, 13:48, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация и ABAP: как обнулить параметр
СообщениеДобавлено: Пт, июл 10 2015, 13:46 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
<ошибочный дубль>


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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