1

Salesforce.com 用の Novell Identity Manager ドライバを開発しており、Salesforce.com プラットフォームをよりよく理解しようとしています。

私は今まで本当に良い成功を収めてきました。SFDC からほとんど任意のオブジェクト クラスを読み取り、それらの eDirectory オブジェクトを作成できます。これはすべて完了し、うまく機能しています。(パブリッシャー チャネル)。クエリ イベントをマッピングすると、ほとんどすべてがパブリッシャー チャネルで機能し始めました。

現在、eDirectory で変更が発生したときにイベントを SFDC (加入者チャネル) に送り返す作業を行っています。

私は SOAP API で upsert() 関数を使用しています。Novell Identity Manager を使用すると、基本的に SOAP ドキュメントを作成し、作成した結果を確認できます。(XSLT で実行するか、さまざまな許可されたトークンを使用して、DirXML スクリプトでドキュメントを作成できます。私はこれまでのところうまく機能している DirXML スクリプトを使用しています。)

そのコメントの結論は、SOAP ドキュメントを作成して、それを見て、正しく理解していることを確認できるということです。これは通常、サンプル コードが通常提供する Java/C++ アプローチとは異なります。この方法ではるかに視覚的に。

upsert() について、私が完全には理解していないことがいくつかあります。そのようなイベントが発生した場合、値を空白にする方法を知っています。ノード内に、次の<urn:sObjects>ようなノードを追加します (名前空間が既に宣言されていると仮定します)。

<urn1:fieldsToNull>FieldName</urn1:fieldsToNull>

値 (AttrValue) を属性 (FieldName) に追加する方法を知っています。次のようなノードを追加します。

<FieldName>AttrValue</FieldName>

これはすべて機能し、非常に簡単です。

私が持っている質問は、SFDC の値を多値にできるかということです。eDirectory では、変更される複数の値を持つ属性は、次の 2 つの方法で発生する可能性があります。

  • すべての値を削除して、新しいセットを再度追加できます。
  • 削除された単一の値は、その種のイベント (remove-value) として送信されるか、1 回の操作で多くの値が削除されます。

SFDC を見ると、単一のエントリ : または ; に格納されているように見えるマルチピックリスト属性しか表示されません。区切られています。SFDC で異なる方法で管理される別の種類の多値属性はありますか? もしそうなら、SOAP API を介してどのように操作するのでしょうか?

これらの複数選択リストを単一の文字列にマップするか、文字列の複数値属性にマップするかを決定する必要があります。最初の方法の方が簡単で、2 番目の方法の方が便利です...うーん...選択肢...

参考文献:

  • ドキュメントがどのように見えるべきかを理解するために、サンプル SOAP メッセージのページを使用してきました。
  • Apex Explorerは、データベースを参照してクエリをテストするためのキック ツールです。DBVisualizerが JDBC 接続データベースに対して行うのと同じように。これがなかったらもっと大変だったでしょう!
  • SoapUiも必要で、素敵なツールです!
4

1 に答える 1

2

私の知る限り、複数選択リスト以外に複数値フィールドはありません (そして、セミコロンで区切られた文字列にマップされます)。通常、データに複数の値を関連付ける必要がある場合、プラットフォームは別の (場合によっては新しい、カスタム) テーブルとの適切な関係を作成することをお勧めします。

私が考えることができる他の唯一の「珍しい」ことは、特定のオブジェクト (ケース、リード、おそらく他の何か) の OwnerId フィールドを使用して、ユーザーまたはキューレコードを指す方法です。従来のデータベースの外部キー関係に慣れていると、奇妙に見えます。ただし、一度に値が 1 つしかないため、これは求めているものと同じではありません。

もちろん、表示しているユーザーのロケールに応じて、データベースに表示される値に驚かれることもあります (システム管理者プロファイルがオランダ語で Systeembeheerder になるなど)。ただし、これは依然として単一の値であり、クエリ結果が返される直前にオンザフライで変換されます。

SFDC との SOAP 統合を実行する必要があったとき、私は常に WSDL ファイルを使用してきました。ほとんどの場合、Apache Axis を使用してそれらから生成された Java コードで問題ありませんでした。SOAP メッセージを自分で手作りするのは、ちょっとハードコアなようです。クラス、例外、およびいくつかのすぐに使用できる統合方法のいずれかで使用できるこれらすべてのものの作成よりも、XML の視覚化を好むと確信していますか? 彼らが WSDL を変更する場合は、そこからクラスを再生成するだけで済みます。一方、SOAP メッセージ作成ライブラリへの変更は苦痛かもしれません...

于 2010-04-27T12:04:17.290 に答える