如何使用 IDOC 从 SAP 系统获取数据

How to get data from a SAP system using IDOC

我目前已经安装了 sap_netweaver_as_abap_751_sp02_ase_dev_edition,一切正常。

我的最终目标是在 SAP 中创建一些 tables(我将 SAP ASE 安装为数据库)并能够使用 java 访问它们(当然 sapidoc3.jar 和 sapjco3.jar).

直到这一刻,我才设法创建到 SAP 的连接并得到以下输出:

executing
Attributes:
DEST:                   mySAPSystem
OWN_HOST:               HS-SW-05
PARTNER_HOST:           vhcalnplci
SYSTNR:                 00
SYSID:                  NPL
CLIENT:                 001
USER:                   DEVELOPER   
LANGUAGE:               E
ISO_LANGUAGE:           EN
OWN_CODEPAGE:           4102
OWN_CHARSET:            UTF16
OWN_ENCODING:           utf-16
OWN_BYTES_PER_CHAR:     2
PARTNER_CODEPAGE:       4103
PARTNER_CHARSET:        UTF16
PARTNER_ENCODING:       utf-16
PARTNER_BYTES_PER_CHAR: 2
OWN_REL:                721
PARTNER_REL:            751 
PARTNER_TYPE:           3
KERNEL_REL:             749 
TRACE:                   
RFC_ROLE:               C
OWN_TYPE:               E
CPIC_CONVID:            00000000

STFC_CONNECTION finished:
Echo: Hello SAP
Response: SAP R/3 Rel. 751   Sysid: NPL      Date: 20180905   Time: 132841   
Logon_Data: 001/DEVELOPER/E

我还设法在 SAP 中创建了一个简单的 table,但现在我不明白如何使用 java 和我的 jars(无法进行任何选择或类似的事情)。

根据我在 Internet 上找到的内容,我了解到这些 table 存储在一个 IDOC 文件中,我应该以某种方式获取此 IDOC。

如果以前有人这样做过,也许可以给我一些关于如何从 SAP 数据库中获取日期的线索。

谢谢。

目前我只能给出一个笼统的答案,因为我觉得你必须通过其他帖子搜索详细的指南,IDOC 是如何工作的。

IDOC 既不是 table,也不是文件。它是一种与 SAP 交换数据的格式(SAP 还将它们存储在 IDOC tables 中,用于记录和恢复目的)。

您可以将 IDOC 发送给 SAP,也可以从 SAP 获取一个。例如,一个 IDOC 可以包含采购订单的数据。

要从 SAP 获取数据,您必须通过定义从 SAP 推送数据:

  • SAP 中的一些数据(采购订单、客户等),
  • 何时发送(立即或预定),
  • 如何通过 IDOC 将数据发送到您的 "java program",通过配置合作伙伴和端口(文件、HTTP、RFC...)

有WE20、WE21、BD64等交易码。

在试用系统上,除了飞行演示数据库,几乎没有真正的应用。您可以尝试用程序SAPBC_DATA_GENERATOR填充它,然后使用程序SAPBC_FILL_FLCUST_IDOC发送FLCUSTOMER_CREATEFROMDATA01.

类型的IDocs