首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有一种方法可以验证Salesforce.com的SOQL查询的语法而不执行它?

有没有一种方法可以验证Salesforce.com的SOQL查询的语法而不执行它?
EN

Stack Overflow用户
提问于 2012-01-30 05:28:44
回答 4查看 2.2K关注 0票数 4

我正在编写一个API,将非技术用户执行的操作转换为Salesforce.com SOQL、'UPSERT''DELETE'语句。是否有任何资源、库等可以验证生成的SOQL的语法?在我的公司里,我是唯一一个有SOQL经验的人,所以我想把它放到一组自动化测试中,以便其他增强(或修复) SOQL生成算法的开发人员知道它是否仍然正常工作。

我知道这里的一种解决方案就是进行这些集成测试。然而,出于三个原因,我宁愿避免这种情况:

  1. 我需要维护另一个Salesforce.com帐户用于测试,这样我们就不会超过我们的

请求上限。

  1. 当Salesforce.com.
  2. Those出现连接问题时,我们最终会追逐误报其他没有经验的开发人员可能需要弄清楚如何在

操作测试失败后清理测试Salesforce.com实例(这实际上意味着无论何时发生这种情况,我都需要清理实例)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-08 19:48:39

您可以使用SoqlBuilder library来解决您的问题。它为您生成SOQL,并且能够生成手动创建时非常容易出错的SOQL语句。它的语法很简单,我已经广泛地使用了它,几乎没有问题。

票数 2
EN

Stack Overflow用户

发布于 2012-09-06 06:03:24

我找到了另一种方法来做这件事。

Salesforce.com在这里用Backus-Noir Form (BNF)发布了他们的SOQL符号:http://www.salesforce.com/us/developer/docs/api90/Content/sforce_api_calls_soql_bnf_notation.htm

这意味着您可以使用支持BNF的语言识别工具来解析SOQL。最常用的工具之一ANTLR可以做到这一点,而且是免费的。遵循ANTLR示例,将SOQL语法传递到它的语法编译器中,以获得所需语言(C#、Java、Python等)的词法分析器和解析器。然后,您可以将要验证的实际SOQL语句传递到词法分析器中,然后将词法分析器标记传递到解析器中,以拆分SOQL语句。如果你的词法分析器或解析器失败,你的SOQL是无效的。

票数 2
EN

Stack Overflow用户

发布于 2012-01-30 06:28:37

我想不出在Salesforce之外做这件事的方法(即使在Apex,我现在也只有一个想法可能行不通),但我能想到两个可能会有帮助的建议:

  1. 通过运行查询来验证查询,但使用自定义web服务分批执行查询。例如,在Apex中编写一个web服务,它可以一次接受多达100个查询字符串,让它运行它们并返回结果。这将极大地减少API调用的数量,但是如果您期望在UI中设置一个试错类型,那么它当然不会起作用。
  2. 使用元数据API下拉所有对象及其字段的信息,并使用这些信息来验证至少查询中的字段是正确的。验证其他查询语法应该相对简单,尽管条件语句可能会变得有点棘手。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9056977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档