代码之家  ›  专栏  ›  技术社区  ›  geoffc

在Salesforce.com中,您可以拥有多值属性吗?

  •  1
  • geoffc  · 技术社区  · 15 年前

    我正在为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>

    我知道如何向属性(fieldname)添加值(attrvalue),添加节点,例如:

    <FieldName>AttrValue</FieldName>

    所有这些都是可行的,而且非常直接。

    我的问题是,sfdc中的值可以是多值的吗?在edirectory中,更改的多值属性有两种方式:

    • 可以删除所有值,并重新添加新集。
    • 删除的单个值可以作为该类型的事件(删除值)发送,也可以在一个操作中删除多个值。

    查看sfdc,我只看到似乎存储在单个条目中的多picklist属性:或;分隔。在sfdc中是否有另一种不同的多值属性管理?如果是这样,如何通过SOAP API来操作它?

    我仍然需要决定是将这些多选取列表映射到单个字符串,还是字符串的多值属性。第一种方法更容易,第二种方法更有用…六羟甲基三聚氰胺六甲醚。。。选择。。。

    一些参考文献:

    1 回复  |  直到 15 年前
        1
  •  2
  •   eyescream    15 年前

    据我所知,除了多选选择列表(它们映射到分号分隔的字符串)之外,没有多值字段。通常,如果需要将多个值与数据关联,平台会鼓励您与另一个(可能是新的、自定义的)表创建适当的关系。

    我能想到的另一个“不寻常”的事情是,某些对象(case、lead,或者其他一些对象)上的ownerID字段如何被用来指向用户或队列记录。当您习惯于使用传统数据库中的外键关系时,会显得很奇怪。但这与你要求的不同,因为一次只有一个值。

    当然,有时您可能会对数据库中的值感到惊讶,这取决于查看用户的区域设置(例如,系统管理员配置文件在荷兰语中变为系统管理员配置文件)。但这仍然是一个单一的值,在将查询结果返回给您之前就进行了动态转换。

    当我不得不与SFDC进行SOAP集成时,我总是使用WSDL文件,而且大部分时间都很好,用Apache轴生成了Java代码。你自己手工制作的肥皂信息似乎…哇,有点硬核。您确定您更喜欢将XML可视化,而不是创建类、异常和所有这些现成的东西来使用吗? integration 方法?如果他们要更改WSDL,我只需要从中重新生成类;而对SOAP消息创建库的更改可能会很痛苦…

    推荐文章