Php 从webservice制作APEX触发器-可能吗?

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);

i、 我试图在SalesForce Opportunity中编写一个触发器,它必须使用预定义的用户名和密码将更新的StageName发送到外部Web服务

以下是示例代码:

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进行登录。