0

slaesforce と統合する MVC アプリケーションがあります。そして、それは正常に機能しており、MVC アプリケーションで Web 参照として/として使用され、salesforce データに正常にアクセスする WSDL が提供されています。今、私はセールスフォースサンドボックスを使用する必要がある状況にあります.

したがって、Salesforce から生成された 2 つの WSDL があり、1 つは本番用、もう 1 つはサンドボックス用です。ただし、両方が同じオブジェクトを持っているため、両方を MVC プロジェクトに同時に追加することはできません。

私がする必要があるのは、ある条件で Webservice Url または何かを変更して、Production WSDL を 1 回使用し、Sandbox WSDL を別の時間に使用することです。

だから、それはこのようなものになります

//The Action used in salesforce site to send submit order email
public string SendSubmitOrderEmail(string opportunityId,bool isSandbox)
{
   if(isSandbox)
   {
      SforceService sf = new SforceService();
      sf.Url = "https://test.salesforce.com/services/Soap/";
   }
   else
   {
      SforceService sf = new SforceService();
      sf.Url = "https://login.salesforce.com/services/Soap/";
   }
}     

または、webconfig で Web サービスの設定を変更できますか?

<applicationSettings>
<ItineraryBuilder.Properties.Settings>
  <setting name="ItineraryBuilder_SalesForceService_SforceService"
    serializeAs="String">
    <value>https://login.salesforce.com/services/Soap/c/25.0/0DFd00Wa6</value>
  </setting>
</ItineraryBuilder.Properties.Settings>
</applicationSettings>

方法がわからない。

助けてくれてありがとう。

4

2 に答える 2

0

エンドポイント URL (およびユーザー名、パスワードなどのその他の構成情報) を外部プロパティ ファイルに設定する必要があります。コードは、このキーと値のプロパティ ファイルにアクセスして、エンドポイント URL と構成情報を取得し、salesforce に接続します。

url=https://test.salesforce.com/services/Soap/

ユーザー名=blah@blah.org.sandbox

パスワード=blahxxxx12345sxxx

理想的には、sandbox/dev (dev.properties) と production (prod.properties) 用に別々のプロパティ ファイルを用意し、ビルド システム (maven など) が実行場所に基づいて適切なプロパティ ファイルを選択する必要があります。

URL をハードコーディングしたり、コード内で環境を決定したりすることは、できる限り避けてください。上記の手法は、Java、C++、Python などの oop 言語で機能するはずです。

これが理にかなっていることを願っています!

アヌプ

于 2012-08-29T10:23:41.517 に答える
0

皆さんありがとう、

実行時に Web 参照を更新すると正常に動作します

SforceService sf = new SforceService();
sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6"

私が間違っていたのは、「sf」が接続の作成に使用されるAPIクラスに渡されなかったことです。

ここで別の質問で解決策を得ました

C# (MVC) を使用して web.config applicationSettings をプログラムで更新する

再度、感謝します。

于 2012-08-31T04:34:18.617 に答える