Ampscript BuildRowsetFromString() завершается ошибкой для одного элемента
Мне было поручено задание ExactTarget, в котором используется Ampscript. Пытаюсь учиться на ходу здесь. Смотрите фрагмент кода ниже:
%%[
Var @testString, @testOutput
Set @testString = Qwerty
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
TestOutput:%%= v(@testOutput) =%%
Код работает, если testString
содержит ~
, но когда нет ~
символ в строке, выход пуст. Это правильно по замыслу? Нужно ли добавлять условное выражение для проверки наличия ~
персонаж?
1 ответ
Это ожидаемое поведение. Одна только функция BuildRowsetFromString() не будет возвращать никакого значения при отображении, вам нужно будет использовать Row () и Field() для извлечения значения.
Используя ваш пример:
%%[
Var @testString, @testOutput
Set @testString = "Qwerty"
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
RowCount: %%=RowCount(@testOutput)=%%
TestOutput: %%=v(@testOutput)=%%
Функция RowCount() возвращает значение 1, фактически говоря, что она знает, что там есть хотя бы одна "строка". Чтобы отобразить это одно значение, вам нужно обернуть это значение с помощью Field() и Row ():
TestOutput: %%=Field(Row(@testOutput,1),1)=%%
Если вы хотите отобразить другие значения в строке, скажем, что вы передавали "Qwerty~Second~Third", вам нужно либо изменить число в функции Row (), либо выполнить цикл.
Рекомендации