Проблема с 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
]%%
Другие вопросы по тегам