現在、販売プロセスにSalesforceを使用しています。これには、ユーザーに「アカウント管理システム」へのサインアップ、詳細、ドキュメントの送信、および管理者によるレビューの取得を試みることが含まれます。これはSF以外のPHPシステム全体であり、「チェリー」と呼びましょう。
現在行っていることは次のとおりです。Cherryはアカウントを追跡しますが、発生したことはすべてSalesForceに送信されるため、営業担当者は連絡先のリストを持っています。Cherryで何かが変更されると、SalesForceで更新されます。たとえば、顧客がCherryの管理者によってレビューされたときに、SFリードをアカウントに変換します。(この後もSFデータを更新しますが、これはすでに顧客であるため、それほど重要ではありません)
CherryからSFに情報を送信するには、「SforceEnterpriseClient.php」APIライブラリを使用し、そのライブラリが提供するCreate / Update/Deleteメソッドを呼び出します。正直に言うと他に方法があるかどうかはわかりませんが、私たちのニーズは非常に単純です。リードを作成し、フィールドを更新して、アカウントに変換するだけです。
私の問題は、営業担当者が時間依存のワークフローを使用して、数日ごとにリードを自動的に電子メールで送信したり、あるステータスから別のステータスに変更したりすることを望んでいることです。ただし、リードがこれらのワークフローの1つに「取得」されると、レコードはロックされ(アクションが実行されるまで、通常は何日もかかります)、APIを介してレコードを操作しようとすると(更新、特に「convertlead」)、エラーRECORD_IN_USE_BY_WORKFLOWで失敗します。
現在、これはかなり一般的なシナリオのようです(APIを使用してレコードを更新することと、時間依存のワークフローを使用することの両方)。実際、SalesForceを使用することの全体的なポイントはワークフローであるように思われるので、これが失敗するのと同じくらい基本的なことにはかなり驚いています...
したがって、基本的な質問は....-この問題を回避する明白な方法はありますか?(他のAPIを使用していますか?ワークフローで何か別のことをしていますか?)
-そうでない場合、リードをワークフローから「切り離す」方法はありますか?(またはどういうわけかそのレコードのロックを解除します)
-そうでない場合、SalesForce側でより多くのプログラミングを意味する回避策はありますか?
ダニエル、本当にありがとうございました