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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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