【发布时间】:2010-04-27 20:04:17
【问题描述】:
我正在为 Salesforce.com 开发 Novell Identity Manager 驱动程序,并试图更好地了解 Salesforce.com 平台。
迄今为止,我取得了非常好的成功。我可以从 SFDC 中读取几乎任意对象类,并为它们创建 eDirectory 对象,等等。这一切都已完成并且运行良好。 (发布者频道)。一旦我把 Query 事件映射出来,几乎所有东西都开始在 Publisher Channel 中工作了。
我现在正致力于在 eDirectory 中发生更改时将事件发送回 SFDC(订阅者通道)。
我在 SOAP API 中使用 upsert() 函数,并且使用 Novell Identity Manager,您基本上可以构建 SOAP 文档,并且可以在构建它时看到结果。 (您可以在 XSLT 中执行此操作,也可以使用各种允许的令牌在 DirXML Script 中构建文档。我正在使用 DirXML Script,它目前运行良好。)。
该评论的结果是我可以构建 SOAP 文档,查看它,以确保我做对了。这通常不同于示例代码通常提供的 Java/C++ 方法。这种方式更直观。
关于 upsert() 有几件事我并不完全理解。我知道如何清空一个值,我应该得到那种事件。在<urn:sObjects> 节点内,添加一个类似的节点(假设您已经声明了命名空间):
<urn1:fieldsToNull>FieldName</urn1:fieldsToNull>
我知道如何为属性(FieldName)添加一个值(AttrValue),添加一个像这样的节点:
<FieldName>AttrValue</FieldName>
所有这些都有效并且非常简单。
我的问题是,SFDC 中的值可以是多值的吗?在 eDirectory 中,多值属性被更改,可以通过两种方式发生:
- 可以删除所有值,并重新添加新集合。
- 删除的单个值可以作为那种事件(remove-value)发送,也可以在一次操作中删除多个值。
查看 SFDC,我只看到似乎存储在单个条目中的多选项列表属性:或;划定的。在 SFDC 中是否有另一种以不同方式管理的多值属性?如果是这样,如何通过 SOAP API 操作它?
我仍然需要决定是否要将这些多选项列表映射到单个字符串或字符串的多值属性。第一种方法更简单,第二种方法更有用……嗯……选择……
一些参考资料:
- 我一直在使用页面 Sample SOAP messages 来了解文档的外观。
- Apex Explorer 是一个用于浏览数据库和测试查询的踢球工具。就像DBVisualizer 对 JDBC 连接的数据库所做的一样。如果没有它,这将变得更加困难!
- SoapUi 也是必需的,而且是一个可爱的工具!
【问题讨论】:
标签: soap salesforce identity-management novell-idm