1

我正在尝试使用 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'])
4

1 回答 1

1

在 ABAP SQL(AKA Open SQL)中,“不等于”对应于 operator <>。使用 pyrfc,它将是:

options = [{ 'TEXT': "QNAME <> '' and LGNUM = '586' and VLTYP = 'GPA' and NLTYP = 'PD2'"},
{ 'TEXT': " and QDATU = '20160422'" }]

请注意,有两行,因为.TEXT中只有 72 个字符RFC_READ_TABLE。如果您有超过 72 个字符,则将条件拆分为几行,就像解释这里一样,RFC_READ_TABLE即将用空格填充每一行以获得正好 72 个字符,并将整理所有行而不进行任何转换以形成 WHERE 子句。

于 2021-06-17T09:08:53.720 回答