[SalesForce] AMPScript for loop and SSJS

As the subject says, I would like to use two line of SSJS code in a for loop like in the example:

VAR @listAddress, @nameChosen, @Counter, @i, @AddressRow, 
SET @listAddress = RetrieveSalesforceObjects('Object__c', 'Id, Name', 
                                                  'Name', '=', @nameChosen)

IF @Counter > 0 THEN
    FOR @i = 1 to @Counter DO
        SET @AddressRow = Row(@listAddress, @i)
        SET @fieldRetrieved = Field(@AddressRow, 'Field__c')
            <script language="javascript" runat="server">
                var str = Variable.getValue("@fieldRetrieved ");
                var obj = {field : str};
                listRecord.push(obj);
            </script>
      NEXT @i
 ENDIF

Is it possibile that I am getting an error because I can't mix AMPScript for loop and SSJS?

Best Answer

You're missing the core library and some AMPscript block tags. You'll need that to execute the proprietary functions:

<script language="javascript" runat="server">
    Platform.Load("Core","1");
</script>
%%[

VAR @listAddress, @nameChosen, @Counter, @i, @AddressRow, 
SET @listAddress = RetrieveSalesforceObjects('Object__c', 'Id, Name','Name', '=', @nameChosen)

IF @Counter > 0 THEN

    FOR @i = 1 to @Counter DO

        SET @AddressRow = Row(@listAddress, @i)
        SET @fieldRetrieved = Field(@AddressRow, 'Field__c')

        ]%%

        <script language="javascript" runat="server">

            try {

              var str = Variable.getValue("@fieldRetrieved ");
              var obj = {field : str};
              listRecord.push(obj);

            } catch (e) {

              Write("<br>e: " + Stringify(e));

            }
        </script>

        %%[

      NEXT @i

 ENDIF

]%%

Reference

Related Topic