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

2 sap abap idoc

我目前安装了sap_netweaver_as_abap_751_sp02_ase_dev_edition,一切正常.

我的最终目标是在SAP中创建一些表(我将SAP ASE安装为DB)并且能够使用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
Run Code Online (Sandbox Code Playgroud)

我还设法在SAP中创建一个简单的表,但是现在我不明白如何使用java和我的jar从该表中接收信息(不可能做出任何选择或类似的事情).

从我在互联网上发现的东西,我已经知道这些表存储在一个IDOC文件中,我应该得到这个IDOC.

如果某人之前已经这样做了,也许可以给我一些关于如何从SAP数据库中获取日期的线索.

谢谢.

San*_*ssi 6

现在,我只能给出一般答案,因为我觉得你必须通过其他帖子搜索详细的指南,IDOC如何运作.

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

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

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

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

有WE20,WE21,BD64等交易代码.

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

  • JCO用于RFC通信,您可以使用它.读取数据库表的一个通用RFC函数是RFC_READ_TABLE.你可以玩它(可能你会在WWW中找到JCO片段).当然,出于安全考虑,通常在实际系统中禁止使用它.顺便说一句,您也可以直接使用连接到SAP的数据库,无需通过SAP. (3认同)