2012-01-25 16 views
2

私は、定義済みのユーザー名とパスワードを使用して、更新されたStageNameを外部Webサービスに送信する必要があるSalesForce Opportunityにトリガーを書き込もうとしています。質問がある http://mydomain.com/webservice/index.php?username=MY_USERNAME&password=MY_PASS&stage=opportunityNewStageWebサービスからAPEXトリガーを作成することは可能ですか?

::私はケースにMY_USERNAMEとMY_PASSを保存することができますどこに私はこれを使用したい

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顧客をトリガし、インストール後にそれらを設定できるようにしますか? WebサービスAPIを使用してトリガーをデプロイすることができ、ユーザーを保管してサーバーを渡すことができる、私は赤色のAPEXコード・デベロッパーズ・ガイドです。出来ますか? 私のサーバーで私はPHPを使用しています。

私は私の質問ではっきりと願っています。

答えて

3

おそらくユーザー名とパスワードusing custom settingsを保存してください。これにより、管理者はユーザー名とパスワードの値を簡単に設定できます。それはデータベース操作を保持しているとして、あなたがトリガー内部からコールアウトをすることはできません

注意、代わりにあなたが@futureアノテーションを使用して、別のクラスのグローバル/公共の方法であなたのコールアウトを配置する必要があります。

@future public void DoMyCallout(list<id> liOpportunities) 
{ 
    // load your oppties if need be, then do the callout 
} 

@futureこのメソッドは非同期に実行されるため、トリガーから呼び出すことができますが、別のスレッドで実行され、進行中のデータベース操作を保持しません。

+0

いいですが、カスタム設定フィールドの作成を自動化できますか、SalesForce管理者に頼らざるを得ませんか? – bksi

+0

あなたは管理者に頼らざるを得ませんが、ログインがあればAPIを使ってログインできます。 –

関連する問題