Salesforce 接收错误';函数表达式无效';对于InsertData ampscript函数

Salesforce 接收错误';函数表达式无效';对于InsertData ampscript函数,salesforce,salesforce-marketing-cloud,ampscript,Salesforce,Salesforce Marketing Cloud,Ampscript,我正在使用营销云页面将联系人/潜在客户记录从数据扩展同步到相应的销售云活动(作为活动成员)。这部分工作正常。但是,当我尝试使用InsertData函数将信息写入数据扩展时,收到一个错误。当我将InsertData函数添加到代码中时,我得到了以下信息 以下是我的InsertData代码: InsertData('SubscriptionSyncLog', 'SyncTime', @localTime, 'UniqueId', @uniqueId, 'LookupValue', @rowValue

我正在使用营销云页面将联系人/潜在客户记录从数据扩展同步到相应的销售云活动(作为活动成员)。这部分工作正常。但是,当我尝试使用InsertData函数将信息写入数据扩展时,收到一个错误。当我将InsertData函数添加到代码中时,我得到了以下信息

以下是我的InsertData代码:

InsertData('SubscriptionSyncLog',
'SyncTime', @localTime, 
'UniqueId', @uniqueId,
'LookupValue', @rowValue, 
'SubscriptionId', @subscriptionId, 
'CampaignId', @campaignId, 
'Message', @outcome
)
以下是整个云页面代码:

<!---------------------DEBUGGING SCRIPT START--------------------->

<script runat="server" type="text/javascript">
Platform.Load("core","1"); 
try {
</script>

<!---------------------------AMPSCRIPT---------------------------->

%%[

/*---------------------------SYNC RECORDS ISSUBSCRIBED = TRUE---------------------------*/

/**************SC CAMPAIGN, DE AND ROWS TO LOOK UP*******************/
var @rows, @row, @rowCount, @i, @subCentreDE, @rowValue, @columnValue, @campaignMemberId, @localTime

set @subCentreDE = "ChosenSubscription" /* DE to look for */
set @columnValue = "IsSubscribed" /* DE column to look for */
set @rowValue = "True" /* DE row value to look for */
set @rows = LookupOrderedRows(@subCentreDE,3000,"Email Asc",@columnValue,@rowValue)
set @rowCount = rowcount(@rows) /* Count the total rows found */

output(concat("<br>Row,Outcome,CampaignMemberId,Email,UniqueId,Record Type,SubscriptionId,CampaignId,IsSubscribed,Date Synced"))

/*******************CHECK IF ROWS ARE FOUND***************************/

if @rowCount > 0 then 
    
  /*************************ROWS FOUND***********************************/
  /*****ADD EACH RECORD FROM THE DE TO THE SC CAMPAIGN IF NOT FOUND******/
  
  for @i = 1 to @rowCount do

var @email, @uniqueId, @idField, @campaignMemberRow, @campaignMemberRows, @subscriptionId, @campaignId, @outcome
set @row = row(@rows, @i) /* get row based on counter */
set @email = field(@row,"email")
set @uniqueId = field(@row,"uniqueId")
set @subscriptionId = field(@row,"subscriptionId")

/***************MAP SUBSCRIPTION ID TO SC CAMPAIGN ID******************/

set @rows2 = LookupRows('Subscription','SubscriptionId',@subscriptionId)
set @rowCount2 = rowcount(@rows2) /* Count the total rows found */

if @rowCount > 0 then
    
    set @row2 = row(@rows2, 1)
    set @campaignId = field(@row2,"CampaignId")

endif

if not empty(@uniqueId) then

  /************IDENTIFY IF THE RECORD IS A CONTACT OR LEAD***************/
    if Substring(@uniqueId, 1,3) == "00Q" then

        set @idField = "LeadId"

        elseif Substring(@uniqueId, 1,3) == "003" then

        set @idField = "ContactId"

        else

        set @idField = "invalid"
        output(concat("<br>Invalid @uniqueId: ", @uniqueId)) 
        
    endif
 
    /*********CHECK IF THE UNIQUE ID AND CAMPAIGN ID IS VALID************/
    
    set @outcome = "Invalid uniqueId or no campaignId mapped to subscription. Check the DE named: Subscription"

    if @idField != "invalid" and (not empty(@campaignId)) then

        /******************SEARCH FOR RECORD IN CAMPAIGN*********************/
        var @campaignMemberStatus
        set @campaignMemberRows = RetrieveSalesforceObjects('CampaignMember', "Id, Status", 'CampaignId', '=', @campaignId, @idField, "=", @uniqueId)
        
        /***********************CHECK IF RECORD FOUND**************************/
        if RowCount(@campaignMemberRows) == 0 then
        
            /****************RECORD NOT FOUND, ADD TO CAMPAIGN*******************/
            set @campaignMemberId = CreateSalesforceObject(
            'CampaignMember', 3,
            'CampaignId', @campaignId,
            @idField, @uniqueId,
            'Status','Subscribed'
            )
            
            set @localTime = DateAdd(NOW(), 19, "H")
            set @outcome = "Added campaign member with status: Subscribed"
        
            elseif RowCount(@campaignMemberRows) > 0 then

            /*************RECORD FOUND, CHECK CAMPAIGN MEMBER STATUS*************/
            set @campaignMemberRow = Row(@campaignMemberRows, 1)
            set @campaignMemberId = Field(@campaignMemberRow, "Id")
            set @campaignMemberStatus = Field(@campaignMemberRow, "Status")

            if @campaignMemberStatus != "Subscribed" then
                
                /*************UPDATE CAMPAIGN MEMBER STATUS TO SUBSCRIBED************/
                UpdateSingleSalesforceObject('CampaignMember', @campaignMemberId, 'Status', 'Subscribed')
                
                set @localTime = DateAdd(NOW(), 19, "H")*/
                set @outcome = "Updated campaign member with status: Subscribed" 

                else
                
                /**************CAMPAIGN MEMBER STATUS ALREADY SUBSCRIBED*************/
                set @localTime = DateAdd(NOW(), 19, "H")
                set @outcome = "Skipped - campaign member up to date"

            endif
           
        endif

    endif

endif   

/***************WRITE TO PROCESS LOGGING DATA EXTENSION**************/
InsertData('SubscriptionSyncLog',
'SyncTime', @localTime, 
'UniqueId', @uniqueId,
'LookupValue', @rowValue, 
'SubscriptionId', @subscriptionId, 
'CampaignId', @campaignId, 
'Message', @outcome
)

]%%

<!------------------------DEBUGGING VALUES------------------------>

<br>%%=v(@i)=%%,%%=v(@outcome)=%%,%%=v(@campaignMemberId)=%%,%%=v(@email)=%%,%%=v(@uniqueId)=%%,%%=v(@idField)=%%,%%=v(@subscriptionId)=%%,%%=v(@campaignId)=%%,%%=v(@rowValue)=%%,%%=v(@localTime)=%%

%%[ next @i ]%%

%%[ else ]%%

No rows found

%%[ endif ]%%


<!----------------------DEBUGGING SCRIPT END---------------------->

<script runat="server">
}catch(e){
 Write(Stringify(e));
}
</script>

平台荷载(“核心”、“1”);
试一试{
%%[
/*---------------------------同步记录ISSUBSCRIBED=TRUE---------------------------*/
/**************要查找的SC活动、DE和行*******************/
var@rows、@row、@rowCount、@i、@subcentre、@rowValue、@columnValue、@campaignMemberId、@localTime
设置@subcentred=“ChosenSubscription”/*DE以查找*/
设置@columnValue=“IsSubscribed”/DE要查找的列*/
设置@rowValue=“True”/DE要查找的行值*/
设置@rows=LookupOrderedRows(@subcentre,3000,“Email Asc”,@columnValue,@rowValue)
设置@rowCount=rowCount(@rows)/*计算找到的总行数*/
输出(concat(“
行,结果,活动成员ID,电子邮件,唯一ID,记录类型,订阅ID,活动ID,已订阅,已同步日期”)) /*******************检查是否找到行***************************/ 如果@rowCount>0,则 /*************************找到的行数***********************************/ /*****如果未找到,则将DE中的每条记录添加到SC活动中******/ 对于@i=1到@rowCount do var@email、@uniqueId、@idField、@campaignMemberRow、@campaignMemberRows、@subscriptionId、@campaignId、@outcome 设置@row=row(@rows,@i)/*基于计数器获取行*/ 设置@email=字段(@行,“电子邮件”) 设置@uniqueId=字段(@行,“uniqueId”) 设置@subscriptionId=字段(@row,“subscriptionId”) /***************将订阅ID映射到SC活动ID******************/ 设置@rows2=LookupRows('Subscription','SubscriptionId',@SubscriptionId) 设置@rowCount2=rowcount(@rows2)/*计算找到的总行数*/ 如果@rowCount>0,则 设置@row2=行(@rows2,1) 设置@campaignId=field(@row2,“campaignId”) 恩迪夫 如果不为空(@uniqueId),则 /************确定记录是联系人还是潜在客户***************/ 如果子字符串(@uniqueId,1,3)=“00Q”,则 设置@idField=“LeadId” elseif子串(@uniqueId,1,3)=“003”然后 设置@idField=“ContactId” 其他的 set@idField=“无效” 输出(concat(“
无效@uniqueId:,@uniqueId)) 恩迪夫 /*********检查唯一ID和活动ID是否有效************/ set@output=“无效的唯一ID或没有映射到订阅的活动ID。请检查取消命名的:订阅” 如果@idField!=“无效”且(非空(@campaignId)),则 /******************搜索活动中的记录*********************/ var@activememberstatus 设置@campaignMemberRows=RetrieveSalesforceObjects('CampaignMember','Id,Status','CampaignId','=',@CampaignId,@idField,“=”,@uniqueId) /***********************检查是否找到记录**************************/ 如果RowCount(@ActivityMemberRows)==0,则 /****************未找到记录,请添加到活动*******************/ 设置@campaignMemberId=CreateSalesforceObject( “竞选成员”,3, “CampaignId”,@CampaignId, @idField,@uniqueId, “状态”,“已订阅” ) set@localTime=DateAdd(NOW(),19,“H”) set@output=“已添加状态为:已订阅的活动成员” elseif RowCount(@ActivityMemberRows)>0则 /*************找到记录,检查活动成员状态*************/ 设置@campaignMemberRow=Row(@campaignMemberRows,1) 设置@campaignMemberId=字段(@campaignMemberRow,“Id”) 设置@campaignMemberStatus=字段(@campaignMemberRow,“状态”) 如果@campaignMemberStatus!=“已订阅”,则 /*************将活动成员状态更新为已订阅************/ UpdateSingleSalesforceObject('CampaignMember',@campaignMemberId','Status','Subscribed') set@localTime=DateAdd(NOW(),19,“H”)*/ set@output=“状态为:已订阅的已更新活动成员” 其他的 /**************活动成员状态已订阅*************/ set@localTime=DateAdd(NOW(),19,“H”) set@output=“跳过-活动成员最新” 恩迪夫 恩迪夫 恩迪夫 恩迪夫 /***************写入到进程日志数据扩展**************/ InsertData('SubscriptionSyncLog', “同步时间”,@localTime, “UniqueId”、@UniqueId、, “LookupValue”,@rowValue, “SubscriptionId”,@SubscriptionId, “CampaignId”,@CampaignId, '消息',@outcome ) ]%%
%%=v(@i)=%,%%=v(@outcome)=%,%%=v(@campionmemberid)=%,%%=v(@email)=%,%%=v(@uniqueId)=%,%%=v(@idField)=%,%%=v(@subscriptionId)=%,%%=v(@campionid)=%,%%=v(@rowValue)=%,%%=v(@localTime)=% %%[下一个@i]% %%[其他]% 找不到行 %%[endif]% }捕获(e){ 编写(字符串化(e)); }
下面是我正在向其写入数据的和数据扩展的屏幕截图


谢谢

继续并发布页面。错误仅出现在预览中