无法从Y报告中的COSP和COSS中检索存档数据

2020-09-08 11:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,
我们正在一个数据归档项目中,并已通过对象PP_ORDER归档了一些生产订单。
现在我们有一个Y报告,其中已从已归档的表COSP和COSS中获取数据。
因此,我们正在修改报告以获取归档数据。
在信息结构SAP_PP_ORDER001中,我们可以在表COSP和COSS中找到归档记录。

在报告中,我们使用以下功能模块:
1。 AS_API_INFOSTRUC_FIND
2。 AS_API_READ
3。 ARCHIVE_READ_OBJECT
4。 ARCHIVE_GET_TABLE

我们的问题是,前三个功能模块给出的输出正确,但是功能模块ARCHIVE_GET_TABLE
无法从COSP和COSS中获取数据。

下面是代码:

呼叫功能'ARCHIVE_GET_TABLE'" #EC *
导出
ARCHIVE_HANDLE = L_HANDLE
RECORD_STRUCTURE ='COSP'
ALL_RECORDS_OF_OBJECT ='X'
AUTOMATIC_CONVERSION ='X'
表格
TABLE = CT_COSP
例外情况
END_OF_OBJECT = 1
INTERNAL_ERROR = 2
WRONG_ACCESS_TO_ARCHIVE = 3
其他=4。
ENDIF。


将CT_COSP的行追加到IT_COSP_ARCH。

内部表CT_COSP中没有数据。

请帮助。

此致

Srijit。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,
我们正在一个数据归档项目中,并已通过对象PP_ORDER归档了一些生产订单。
现在我们有一个Y报告,其中已从已归档的表COSP和COSS中获取数据。
因此,我们正在修改报告以获取归档数据。
在信息结构SAP_PP_ORDER001中,我们可以在表COSP和COSS中找到归档记录。

在报告中,我们使用以下功能模块:
1。 AS_API_INFOSTRUC_FIND
2。 AS_API_READ
3。 ARCHIVE_READ_OBJECT
4。 ARCHIVE_GET_TABLE

我们的问题是,前三个功能模块给出的输出正确,但是功能模块ARCHIVE_GET_TABLE
无法从COSP和COSS中获取数据。

下面是代码:

呼叫功能'ARCHIVE_GET_TABLE'" #EC *
导出
ARCHIVE_HANDLE = L_HANDLE
RECORD_STRUCTURE ='COSP'
ALL_RECORDS_OF_OBJECT ='X'
AUTOMATIC_CONVERSION ='X'
表格
TABLE = CT_COSP
例外情况
END_OF_OBJECT = 1
INTERNAL_ERROR = 2
WRONG_ACCESS_TO_ARCHIVE = 3
其他=4。
ENDIF。


将CT_COSP的行追加到IT_COSP_ARCH。

内部表CT_COSP中没有数据。

请帮助。

此致

Srijit。

付费偷看设置
发送
3条回答
小c菟菟
1楼-- · 2020-09-08 12:02

有任何例外吗?

您看过功能模块文档和示例程序吗?

追夢秋陽
2楼-- · 2020-09-08 12:01

大家好,

我知道这是很老的帖子。 我遇到了同样的问题,尝试通过SDN找到解决方案,但没有运气:(我从SARI事务开始调试,因为SARI提供了与销售文档有关的所有信息。在执行SARI时,程序首先调用' ARCHIVE_GET_TABLE 的FM来获取前21个表的详细信息,而我可以直接访问这些表。状态,成本等表未添加到前21个表中。

稍后在代码中,找到另一个FM' ARCHIVE_GET_INFORMATION ',它提取了实际的FM名称,该名称可以从您要查找的存档文件夹中获取数据。 以下是标准代码

通话功能" ARCHIVE_GET_INFORMATION"
     出口
       archive_handle = v_handle
     桌子
       used_classes = lt_classes。
 
此处的

lt_class包含3个字段。 我们在其中寻找第一和第三字段。 第一个字段(CLASS)保存FM起始字(稍后需要将其与archive_get_table串联。请进一步阅读......),第三个字段包含其对应的表名。

例如:我正在寻找COSS表。 因此,我深入探讨了表类型的第三个字段。 在CLASS字段" K_KOSTS"下找到了COSS(实际上,在K_KOSTS下,我的数据包含14个表信息,其中包括COBK,COEJ,COEP,COSS,COSP等。)一旦找到表,就需要连接该类 名称为" ARCHIVE_GET_TABLE "。

因此,如果您要查找COSS,则其对应的类为K_KOSTS。 因此,用于检索COSS的FM是' K_KOSTS_ARCHIVE_GET_TABLE '。 您可以以其他方式找到其他人并在程序中使用它。

就我而言,我正在寻找JEST和JSTO。 我在STATUS类下找到了这些表。 因此,对我而言,FM为' STATUS_ARCHIVE_GET_TABLE '。

我知道这是一篇很老的文章,但是,如果有人在寻找答案,我真的希望这会有所帮助。

干杯
Nachi.RM

黑丝骑士
3楼-- · 2020-09-08 12:06

嗨,

我同意Nachi.RM的评论。

另一个 方法,如果要使实现通用,则可以使用下面的功能模块代替" ARCHIVE_GET_TABLE"。

调用功能'ARCIS_ARCHIVE_GET_TABLE_WO_CON'"

导出

iv_archive_handle = L_HANDLE

iv_structure_name ='COSP'

et_data = CT_COSP

end_of_object = 1
内部错误= 2
wrong_access_to_archive = 3
OTHERS = 4。

一周热门 更多>