如何解决使用 Python 通过 RFC_READ_TABLE 连接 SAP 系统时如何设置 SAP 表字段 NOT NULL
我正在尝试使用 python connect SAP 系统获取数据。在这里,我对如何过滤一个特定字段不是空的有疑问?
例如下图,如何过滤字段QNAME不为空。在SAP中,我们可以轻松设置。 非常感谢!
table = 'LTAP'
options = [{ 'TEXT': "LGNUM = '586'" and "VLTYP = 'GPA'" and "NLTYP = 'PD2'"}]
fields = ['TANUM','VLTYP','VLPLA','NLTYP','NLPLA','QDATU','QNAME']
pp = PrettyPrinter(indent=4)
rowskips = 0
print("----Begin of Batch---")
result = conn.call("RFC_READ_TABLE",QUERY_TABLE = table,DELIMITER='|',FIELDS = fields,\
OPTIONS = options,ROWSKIPS = rowskips,ROWCOUNT = 50 )
pp.pprint(result['DATA'])
解决方法
在 ABAP SQL(又名 Open SQL)中,“不等于”对应于运算符 <>
。使用 pyrfc,它将是:
options = [{ 'TEXT': "QNAME <> '' and LGNUM = '586' and VLTYP = 'GPA' and NLTYP = 'PD2'"},{ 'TEXT': " and QDATU = '20160422'" }]
注意有两行,因为 TEXT
在 RFC_READ_TABLE
中只有 72 个字符。如果您有超过 72 个字符,将条件分成几行,如解释 here,即 RFC_READ_TABLE
将用空格填充每一行以获得恰好 72 个字符,并将整理所有行而不进行任何转换形成 WHERE 子句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。