Java アプリケーションで Salesforce API を使用して Enterprise WSDL にアクセスする必要があります。誰でもこれを手伝ってもらえますか?
2 に答える
Salesforce WSDL は、API ではなく、Salesforce UI でのみ使用できます。次の場所で入手できます。
セットアップ| 開発| API
アプリケーションがさまざまなオブジェクトとフィールドのセットで動作する必要があるため、実行時に Enterprise WSDL を取得する必要がある場合は、代わりに Partner WSDL を使用する必要があります。実行時にすべてのオブジェクトとフィールドの説明を取得し、動的 API 呼び出しを行うことができます。事前にもう少し作業が必要ですが、より柔軟で回復力のあるアプリケーションになります。将来、オブジェクトとフィールドが変更された場合、アプリケーションは WSDL を再利用することなく引き続き機能します。
WSDL は、(私の知る限り) Salesforce API からは利用できません。ただし、適切な情報があれば、REST 呼び出しを介して利用できます。まず、OAuth ハンドシェイクまたはユーザー名/パスワード + セキュリティ トークン ハンドシェイクのいずれかによって生成されたセッション トークンが必要です。また、WSDL を生成した Apex クラスの名前も必要です。これら 2 つのことで、GET を実行できます。必要な GET 構造については、次の疑似コードを参照してください。
GET https://<SANDBOX_INSTANCE_URL>/services/wsdl/class/<APEX_WSDL_CLASS_NAME>?isdtp=p1
Headers:
'Cookie' : 'sid=<SESSION_TOKEN>'
編集: これが Enterprise/Partner WSDL とカスタム Apex クラスから生成された WSDL の両方で機能することを確認しました。
v41.0 以降、これらの WSDL には次の汎用 URL を使用できます。
- パートナー: https://<SANDBOX_INSTANCE_URL>/soap/wsdl.jsp
- 頂点: https://<SANDBOX_INSTANCE_URL>/services/wsdl/apex
- メタデータ: https://<SANDBOX_INSTANCE_URL>/services/wsdl/metadata
- ツール: https://<SANDBOX_INSTANCE_URL>/services/wsdl/tooling
- ツール (列挙型): https://<SANDBOX_INSTANCE_URL>/services/wsdl/tooling?enumStyle=ALL_STRONG