Python通过RFC_READ_TABLE连接SAP查询表时如何设置多个OPTIONS条件
Python连接SAP RFC_READ_TABLE多过滤条件设置方法
你使用的RFC_READ_TABLE函数的OPTIONS参数支持两种多条件配置方式:
方式1:短条件直接拼接
如果所有过滤条件拼接后总长度不超过72字符(SAP对OPTIONS单行的长度限制),直接在同一个TEXT值里用AND/OR逻辑运算符拼接多个条件即可。
修改示例代码中的options部分如下:
# 示例:同时满足仓库号为376、存储类型为P01、创建日期晚于2024年1月1日三个条件 options = [{ 'TEXT': "LGNUM = '376' AND VLTYP = 'P01' AND QDATU >= '20240101'"}]
方式2:长条件拆分为多行
如果过滤条件过长超过72字符,你可以把完整的WHERE条件拆分为多个短字符串,按顺序放到OPTIONS列表中,SAP会自动按顺序拼接所有TEXT内容为完整过滤条件:
options = [ {'TEXT': "LGNUM = '376' AND VLTYP = 'P01' AND QDATU >= '20240101'"}, {'TEXT': " AND (NLPLA LIKE 'A%' OR QNAME = 'ADMIN')"} # 注意开头留空格,避免和上一行末尾拼接出错 ]
注意事项
- 所有SAP表的字段值如果是字符/日期类型,需要用单引号包裹,日期值格式为
YYYYMMDD - 拆分多行条件时,注意行和行拼接的位置不要把关键字、字段名、值拆断,建议逻辑运算符放在下一行开头并预留空格
- 多逻辑运算时可通过括号明确优先级,避免执行结果不符合预期
内容的提问来源于stack exchange,提问作者felix12
相关产品推荐
相关产品推荐

