rfc 查表 pyrfc sap lips 获取 dn 信息

331 篇文章 3 订阅
48 篇文章 3 订阅

超过 72 个字符,另起一行

SAPJCOFunction_0.Request{/RFC_READ_TABLE/TABLES/OPTIONS/item[1]/TEXT} =AUFNR EQ '000000700023' OR AUFNR EQ '000000700003'

SAPJCOFunction_0.Request{/RFC_READ_TABLE/TABLES/OPTIONS/item[2]/TEXT} =OR AUFNR EQ '000000700006' OR AUFNR EQ '000000700007'

SAPJCOFunction_0.Request{/RFC_READ_TABLE/TABLES/OPTIONS/item[3]/TEXT} =OR AUFNR EQ '000000700011' OR AUFNR EQ '000000700005'

在这里插入图片描述
多行这样写,注意用 AND OR sql 语句连接
options = [{'TEXT': "VBELN EQ '%s'" % dn }, {'TEXT': "AND VBELN EQ '%s'" % dn }]

参考
https://answers.sap.com/questions/4063340/rfcreadtable-options—text-length.html

注意 options = [{'TEXT': "VBELN EQ '%s'" % dn }]

TEXT 最大长度 72 个字符,为 sql 查询语言,不能用 = 要用 EQ,并且语句用 AND
比如

"VBELN EQ '123' AND MATNR EQ '456'"
def query_lips_detail(dn):
    with pyrfc.Connection(**conn_params) as conn:


        options = [{'TEXT': "VBELN EQ '%s'" % dn  }]
        print(options)

        # 执行查询
        result = conn.call('RFC_READ_TABLE', QUERY_TABLE='LIPS', OPTIONS=options, DELIMITER='|',
                           FIELDS=['MATNR', 'MEINS'])

        # 处理查询结果
        unit_name_dict = {}
        if 'DATA' in result:
            data = result['DATA']
            fields = result['FIELDS']

            # print(fields)
            # 输出查询结果
            print(data)
            for item in data:
                material = item['WA'].split('|')[0].strip()
                unit_name = item['WA'].split('|')[1].strip()
                unit_name_dict[material] = unit_name
        else:
            print('查询结果为空')
        print(unit_name_dict)
        return unit_name_dict

参考
https://success.jitterbit.com/design-studio/design-studio-reference/connectors/sap-connector/guide-to-using-rfc-read-table-to-query-sap-tables/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值