Php 从webservice制作APEX触发器-可能吗?
i、 我试图在SalesForce Opportunity中编写一个触发器,它必须使用预定义的用户名和密码将更新的StageName发送到外部Web服务 以下是示例代码:Php 从webservice制作APEX触发器-可能吗?,php,web-services,salesforce,apex-code,Php,Web Services,Salesforce,Apex Code,i、 我试图在SalesForce Opportunity中编写一个触发器,它必须使用预定义的用户名和密码将更新的StageName发送到外部Web服务 以下是示例代码: trigger isStageChanged on Opportunity (after update) { for (Opportunity o : Trigger.new) { Opportunity beforeUpdate = System.Trigger.oldMap.get(o.Id);
trigger isStageChanged on Opportunity (after update) {
for (Opportunity o : Trigger.new) {
Opportunity beforeUpdate = System.Trigger.oldMap.get(o.Id);
if(beforeUpdate.StageName != o.StageName) {
// Call WS
}
}
}
“呼叫ws”指使用链接,如:
问题是:如果我想在不同的SalesForce客户上使用此触发器,并让他们在安装后进行配置,我可以将我的\u用户名和\u密码存储在哪里?
当我阅读《APEX代码开发人员指南》时,我意识到我可以使用Web服务API来部署触发器,这样我就可以存储用户并将其传递到服务器上。可能吗?
在我的服务器上,我正在使用php
我希望我的问题很清楚。您可能应该存储用户名和密码。这将允许管理员使用他们提供的值轻松配置用户名和密码 请注意,您不能从触发器内部进行调用,因为它会占用数据库操作,相反,您需要使用@future注释将调用放入另一个类的公共/全局方法中:
@future public void DoMyCallout(list<id> liOpportunities)
{
// load your oppties if need be, then do the callout
}
@future public void domaycallout(列出liOpportunities)
{
//如果需要,加载您的机会,然后进行调用
}
@future
表示此方法将异步运行,因此您可以从触发器调用它,但它将在另一个线程中运行,因此不会中断正在进行的数据库操作。这很好,但我是否可以自动创建自定义设置字段,或者我必须依赖SalesForce管理员?您必须依赖管理员-尽管如果您有登录名,您可以通过API进行登录。