我正在编写一个API,将非技术用户执行的操作转换为Salesforce.com SOQL、'UPSERT'
和'DELETE'
语句。是否有任何资源、库等可以验证生成的SOQL的语法?在我的公司里,我是唯一一个有SOQL经验的人,所以我想把它放到一组自动化测试中,以便其他增强(或修复) SOQL生成算法的开发人员知道它是否仍然正常工作。
我知道这里的一种解决方案就是进行这些集成测试。然而,出于三个原因,我宁愿避免这种情况:
请求上限。
操作测试失败后清理测试Salesforce.com实例(这实际上意味着无论何时发生这种情况,我都需要清理实例)。
发布于 2012-02-08 19:48:39
您可以使用SoqlBuilder library来解决您的问题。它为您生成SOQL,并且能够生成手动创建时非常容易出错的SOQL语句。它的语法很简单,我已经广泛地使用了它,几乎没有问题。
发布于 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是无效的。
发布于 2012-01-30 06:28:37
我想不出在Salesforce之外做这件事的方法(即使在Apex,我现在也只有一个想法可能行不通),但我能想到两个可能会有帮助的建议:
https://stackoverflow.com/questions/9056977
复制相似问题