使用 pyrfc 获取 FAGLL03H 报告
Getting FAGLL03H report using pyrfc
这是SAP和pyrfc模块使用之间的混合问题。我需要每天使用 FAGLL03H
事务代码 (tcode) 将 G/L 报告复制到数据库中。现在,问题是 FAGLL03H
本身不是 table,而是 G/L 帐户行项目浏览器(G/L 视图),所以我需要访问该 Tcode 和传递一系列参数,以获取我们需要的信息。
- 如何使用 RFC 协议访问该 tcode 并生成报告?
- 是否可以通过 pyrfc 执行 (1)?
这是我用来咨询的代码tables:
import pyrfc
from pprint import PrettyPrinter
conn = pyrfc.Connection(ashost=...)
options = [{'TEXT': "FCURR = 'USD'"}]
pp = PrettyPrinter(indent=4)
ROWS_AT_A_TIME = 10
rowskips = 0
while True:
print(u"----Begin of Batch---")
result = conn.call('RFC_READ_TABLE', \
QUERY_TABLE='TCURR', \
OPTIONS=options, \
ROWSKIPS=rowskips, ROWCOUNT=ROWS_AT_A_TIME)
pp.pprint(result['DATA'])
rowskips += ROWS_AT_A_TIME
if len(result['DATA']) < ROWS_AT_A_TIME:
break
选中此项以获得所有特定表:
https://www.recercat.cat/bitstream/handle/2072/5419/PFCLopezRuizAnnex3.pdf?sequence=4
然后您可以从那里构建或创建报告(事务 SQ01)并通过 RSAQ_REMOTE_QUERY_CALL 执行。
您的业务需求应该决定您的代码,而不是相反。
- 不行
- 没有
你需要理解的重点是SAP transaction (tcode) and SAP RFC之间的区别。差异是巨大的,因此不可能以类似的方式使用它们。您正在尝试通过 RFC_READ_TABLE
像 table 一样调用 FAGLL03H 报告,但它不是 table,它更重要,它是一个事务。
SAP tcode 只不过是 SAP 中指向某个程序(通常是 GUI 程序)的快捷方式,可以包含 数百个 模块,包括支持 RFC 的模块。而且其中一些模块是内部的,没有等效的 RFC,因此不可能远程调用它们,至少但不是最后有必要知道如何调用它们(以什么顺序)以及传递哪些参数。
SAP RFC 就像是 ABAP 代码的容器(但也 a protocol 用于调用此代码),它实现了一些功能,可以是小块,例如转换字符大小写或转换度量单位,也可以是大块,例如发布财务文档和创建企业层次结构对象,如工作中心、成本中心、销售组织等。RFC 模块可以比作 Python 模块或 Java 方法,它们通常为一项任务实现, 通常不单独使用,而是与其他方法结合使用。
上述交易金额巨大,用于G/L账户线的输出,无法通过PyRFC调用。 PyRFC features 仅限于调用 FAGLL03H
包含的 RFC 模块。
您在这里唯一能做的就是找到 等价的 个功能模块,其中 returns 项与 FAGLL03H
相同。可能的候选人:
BAPI_GLX_GETDOCITEMS
FAGL_GET_OPEN_ITEMS_GL
FAGL_GET_OPEN_ITEMS_KU
FAGL_GET_OPEN_ITEMS_LI
FAGL_GET_OPEN_ITEMS
FKK_GL_LINE_ITEMS_SELECT
BAPI_AP_ACC_GETBALANCEDITEMS
BAPI_AR_ACC_GETBALANCEDITEMS
BAPI_AP_ACC_GETOPENITEMS
BAPI_AR_ACC_GETOPENITEMS
你应该尝试每一个并将输出与你的 tcode 进行比较,如果它是相同的。只有这样你才能使用 PyRFC 调用它们。
这是SAP和pyrfc模块使用之间的混合问题。我需要每天使用 FAGLL03H
事务代码 (tcode) 将 G/L 报告复制到数据库中。现在,问题是 FAGLL03H
本身不是 table,而是 G/L 帐户行项目浏览器(G/L 视图),所以我需要访问该 Tcode 和传递一系列参数,以获取我们需要的信息。
- 如何使用 RFC 协议访问该 tcode 并生成报告?
- 是否可以通过 pyrfc 执行 (1)?
这是我用来咨询的代码tables:
import pyrfc
from pprint import PrettyPrinter
conn = pyrfc.Connection(ashost=...)
options = [{'TEXT': "FCURR = 'USD'"}]
pp = PrettyPrinter(indent=4)
ROWS_AT_A_TIME = 10
rowskips = 0
while True:
print(u"----Begin of Batch---")
result = conn.call('RFC_READ_TABLE', \
QUERY_TABLE='TCURR', \
OPTIONS=options, \
ROWSKIPS=rowskips, ROWCOUNT=ROWS_AT_A_TIME)
pp.pprint(result['DATA'])
rowskips += ROWS_AT_A_TIME
if len(result['DATA']) < ROWS_AT_A_TIME:
break
选中此项以获得所有特定表:
https://www.recercat.cat/bitstream/handle/2072/5419/PFCLopezRuizAnnex3.pdf?sequence=4
然后您可以从那里构建或创建报告(事务 SQ01)并通过 RSAQ_REMOTE_QUERY_CALL 执行。 您的业务需求应该决定您的代码,而不是相反。
- 不行
- 没有
你需要理解的重点是SAP transaction (tcode) and SAP RFC之间的区别。差异是巨大的,因此不可能以类似的方式使用它们。您正在尝试通过 RFC_READ_TABLE
像 table 一样调用 FAGLL03H 报告,但它不是 table,它更重要,它是一个事务。
SAP tcode 只不过是 SAP 中指向某个程序(通常是 GUI 程序)的快捷方式,可以包含 数百个 模块,包括支持 RFC 的模块。而且其中一些模块是内部的,没有等效的 RFC,因此不可能远程调用它们,至少但不是最后有必要知道如何调用它们(以什么顺序)以及传递哪些参数。
SAP RFC 就像是 ABAP 代码的容器(但也 a protocol 用于调用此代码),它实现了一些功能,可以是小块,例如转换字符大小写或转换度量单位,也可以是大块,例如发布财务文档和创建企业层次结构对象,如工作中心、成本中心、销售组织等。RFC 模块可以比作 Python 模块或 Java 方法,它们通常为一项任务实现, 通常不单独使用,而是与其他方法结合使用。
上述交易金额巨大,用于G/L账户线的输出,无法通过PyRFC调用。 PyRFC features 仅限于调用 FAGLL03H
包含的 RFC 模块。
您在这里唯一能做的就是找到 等价的 个功能模块,其中 returns 项与 FAGLL03H
相同。可能的候选人:
BAPI_GLX_GETDOCITEMS
FAGL_GET_OPEN_ITEMS_GL
FAGL_GET_OPEN_ITEMS_KU
FAGL_GET_OPEN_ITEMS_LI
FAGL_GET_OPEN_ITEMS
FKK_GL_LINE_ITEMS_SELECT
BAPI_AP_ACC_GETBALANCEDITEMS
BAPI_AR_ACC_GETBALANCEDITEMS
BAPI_AP_ACC_GETOPENITEMS
BAPI_AR_ACC_GETOPENITEMS
你应该尝试每一个并将输出与你的 tcode 进行比较,如果它是相同的。只有这样你才能使用 PyRFC 调用它们。