我正在构建一个链接WordPress和Salesforce的插件,如下所示(在此处进行更新,以澄清该插件的功能):
salesforce_push
: 从WordPress向Salesforce发送数据。当在WordPress中创建/更新/删除新项目(可能是帖子、用户等,具体取决于地图设置)时,会发生这种情况,并且该数据会发送到Salesforce API以创建/更新/删除映射对象。根据项目的ID(例如,用户ID到联系人ID)进行映射salesforce_pull
: 检查Salesforce中应返回WordPress的已创建/更新/删除对象(基于地图设置)。例如,在Salesforce中更新联系人;这将更新WordPress中的相应用户有一个表链接对象类型(例如,用户到联系人)以及对象行(例如,特定用户ID到特定联系人ID)有两个wp_schedule_event
方法:一推一拉。上述方法向事件发送数据,然后进行处理(调用Salesforce API方法或WordPress方法来创建/更新/删除项目)。目前,情况如下:
我在WordPress(本地主机)中创建/更新/删除一个项目。下一次推送时,Salesforce也会发生同样的情况wp_schedule_event
跑步。例如,每隔5分钟,它会将新用户发送到Salesforce并为他们创建联系人,如果他们已经映射到WordPress用户,则会更新他们
我在Salesforce中创建/更新/删除映射项。下次拉动时wp_schedule_event
运行时,它从Salesforce API加载该项目的数据并将其发送到salesforce_pull
它将调用方法在WordPress中创建/更新/删除对象(这部分尚未完成)问题是:在#1中,根据WordPress活动创建或更新Salesforce项目时(salesforce_push
), 它还尝试调用salesforce_pull
方法,因为它意识到Salesforce中发生了一些变化。
这会创建一个无法满足的循环,因为每个系统都在尝试更新另一个系统。我一直在尝试确定在每个方法上运行哪种检查,以查看它是否刚刚被另一个方法调用,但到目前为止,我无法创建一个不停止系统中合法编辑的方法。
我想停止的活动如下:
WordPress用户更新个人资料,并将其发送给Salesforce并更新联系人
(这是目前发生的情况,需要明确。)
我希望允许的活动如下:
WordPress用户更新个人资料,并将其发送给Salesforce并更新联系人