このフィールドは、他のフィールドと同様に API を介して利用できます。あなたの問題は、RecordTypes とは何の関係もありません (API を介してレコードを挿入する場合、ピックリスト値として任意の文字列を配置できます)。
それでは、チェックリストから始めましょう。これが役に立たない場合は、さらにオプションを検討します:)
- フィールドは「新しいタスク」ページに表示されていますか?
- [フィールドのアクセシビリティを表示] ボタンには何と表示されますか? (リンクに自分の組織 ID を入力してください。私は "na5" を使用しました)
- API 経由で接続するために使用する資格情報 (「システム管理者」など) のユーザーのプロファイルを知っていますか? 「フィールド レベル セキュリティの設定」で、このプロファイルがこのフィールドを表示でき (1 番目のチェックボックス)、読み取り専用としてマークされていない (2 番目のチェックボックス)ことを確認できますか?
- このフィールドのデフォルト値として「Call」を設定してみて、何が起こるか見てもらえますか?
- Salesforce.com Data Loader を使用して新しいタスクを挿入できますか? それが機能する場合、それ自体の API は問題なく (Data Loader も API を使用します)、問題はアプリのどこかにあることを意味します。
- ピックリストの可能な値を知るために、いわゆるメタデータにアクセスする必要がある場合は、describe() 呼び出しを使用できます。これで始められるはずですが、前に言ったように、私が覚えている限りでは、API を使用する場合、ピックリストの値は実際には適用されません。
- ばかげていますが... システム管理者がこのフィールドの値を変更するワークフローを追加していない場合は、システム管理者に相談してください。また、Task オブジェクトに「挿入前」のトリガーがあるかどうか、Apex 開発者に尋ねてください...
EDIT: Salesforce統合に問題があるすべてのユーザー(特に「新しいカスタムフィールドを作成しました。クエリはできるようですが、返された結果に表示されません」)には、さらにいくつかの手順があります:
Enterprise WSDL を使用している場合は、新しいコピーをダウンロードすることを忘れないでください。Java、C# など。新しいフィールドを表示するには、wsdl からクラスを再生成する (もう一度「消費する」) 必要があります。PHP ユーザーは心配する必要はありません (前回、「PHP ツールキット」ですべてが実行時に行われることを確認しました... もちろん、実際に WSDL から何かを生成した場合は、もう一度やり直してください)。しかし、PHP の場合、どうにかして WSDL をアプリにキャッシュできるようです。サーバーを再起動して、新しい wsdl が使用されていることを確認しますか?
予想よりも時間がかかりました (Apache Axis 2 は、私が Axis 1.x で使用したコードとはまったく異なるコードを生成します) + 他にも気を散らすものに遭遇しましたが、確認しました。
要するに、これは API を介して利用できる通常のフィールドであり、私にとっては機能します。
エンタープライズ WSDL に次のような行が含まれていることを確認してください。
<complexType name="Task">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="Account" nillable="true" minOccurs="0" type="ens:Account"/>
(...)
<element name="Type" nillable="true" minOccurs="0" type="xsd:string"/>
(...)
</sequence>
</extension>
</complexContent>
</complexType>
存在する場合は、そこから Java クラスを再生成してください。そうでない場合は、新しい WSDL をダウンロードしてください。
Apache Axis2 と enterprise.wsdl を使用して、次のようなサンプル コードを作成できました。
Task task = Task.Factory.newInstance();
task.setType("Alan's Email"); // Not a valid picklist value, just to prove that these don't matter when we use API.
task.setWhatId("0067000000AH3ME"); // An Opportunity Id ("Burlington Textiles" in my test org) to which this task will be related.
task.setStatus("Not Started");
task.setPriority("Normal");
task.setDescription("A new Task has been created with methods from Enterprise WSDL.");
テスト プロジェクト全体 (かなり大きい)をここからダウンロードできます。Axis 1.x スタイル (Salesforce API の例のほとんどは古い Axis を使用して記述されています) に慣れていると、コードが奇妙に見える可能性が高くなりますが、私にとってはうまくいったことを保証します。
それでも助けが必要な場合は、直接連絡する必要があると思いますか?
幸運を。