Проблема с AmpScript с оператором IF
Я пытаюсь сделать поиск двух разных расширений данных в точной цели, используя ampscript. Пожалуйста, найдите пример кода, который я пытаюсь.
%%[
Var @rows
Set @rows=LookupRows("DataExtensionOne","Lead Owner","Nick")
FOR @y = 1 TO RowCount(@rows) DO
Set @currentRow = Row(@rows,@y)
Set @value = FIELD(@currentRow ,"LeadId")
Set @secondDERows = LookupRows("DataExtensionTwo","Gender","Male")
FOR @x = 1 TO RowCount(@secondDERows) DO
Set @currentRowInSecDE = Row(@secondDERows,@x)
Set @secValue = FIELD(@currentRowInSecDE ,"LeadId")
IF @value == @secValue THEN
Set @FirstName = FIELD(@currentRowInSecDE ,"FirstName")
/* Need to break out of the loop */
]%%
Кажется, что проверка условия If не выполняется @value == @secValue . Он не получает никакого значения для @FirstName. И какое утверждение следует использовать для выхода из цикла IF?
Кто-нибудь сталкивался с подобными проблемами? Пожалуйста, дайте мне знать.
2 ответа
Насколько я знаю, в Ampscript нет оператора разрыва.
В этом случае я бы установил логическое значение, которое проверяется как ложное в начале каждого цикла и устанавливается равным True, когда вы находите совпадение. Таким образом, после того, как вы сопоставитесь, вы все равно пройдете остаток цикла, но в них произойдет заметка.
%%[
Var @rows
Set @found_result = False
Set @rows=LookupRows("DataExtensionOne","Lead Owner","Nick")
FOR @y = 1 TO RowCount(@rows) DO
if not @found_result then
Set @currentRow = Row(@rows,@y)
Set @value = FIELD(@currentRow ,"LeadId")
Set @secondDERows = LookupRows("DataExtensionTwo","Gender","Male")
FOR @x = 1 TO RowCount(@secondDERows) DO
if not @found_result then
Set @currentRowInSecDE = Row(@secondDERows,@x)
Set @secValue = FIELD(@currentRowInSecDE ,"LeadId")
IF @value == @secValue THEN
Set @FirstName = FIELD(@currentRowInSecDE ,"FirstName")
Set @found_result = True
ENDIF
endif
NEXT @x
endif
NEXT @y
]%%
%%[
Var @rows
Set @found_result = False
Set @rows=LookupRows("DataExtensionOne","Lead Owner","Nick")
FOR @y = 1 TO RowCount(@rows) DO
if @found_result == "TRUE" then
Set @currentRow = Row(@rows,@y)
Set @value = FIELD(@currentRow ,"LeadId")
Set @secondDERows = LookupRows("DataExtensionTwo","Gender","Male")
FOR @x = 1 TO RowCount(@secondDERows) DO
if @found_result == "TRUE" then
Set @currentRowInSecDE = Row(@secondDERows,@x)
Set @secValue = FIELD(@currentRowInSecDE ,"LeadId")
IF @value == @secValue THEN
Set @FirstName = FIELD(@currentRowInSecDE ,"FirstName")
Set @found_result = True
ENDIF
endif
NEXT @x
endif
NEXT @y
]%%