Salesforce 接收错误';函数表达式无效';对于InsertData ampscript函数
我正在使用营销云页面将联系人/潜在客户记录从数据扩展同步到相应的销售云活动(作为活动成员)。这部分工作正常。但是,当我尝试使用InsertData函数将信息写入数据扩展时,收到一个错误。当我将InsertData函数添加到代码中时,我得到了以下信息 以下是我的InsertData代码: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('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));
}
下面是我正在向其写入数据的和数据扩展的屏幕截图
谢谢 继续并发布页面。错误仅出现在预览中