RFC通过badi中的事件BP_event_raise在后台作业中失败。

2020-09-30 00:26发布

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

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


大家好,

我需要在ecc中提交数据库之后将GRN发布数据发送到非ecc系统,为此,我已通过调用事件FM:BP_EVENT_RAISE传递事件(在SM62和更高版本中创建)在方法MB_DOCUMENT_UPDATE的Badi MB_document_badi中编写了代码 此FM调用了将目标保留为RFC的后台作业...因此,这里的问题是一段时间的RFC成功,而有时却失败了,因为系统故障,我将sy-subrc = 1。 附加了"短转储"。 在PI端,他们无法看到来自ECC的任何消息。

请帮助我解决问题。

谢谢。

此致

Ramu

(62.5 kB)

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

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


大家好,

我需要在ecc中提交数据库之后将GRN发布数据发送到非ecc系统,为此,我已通过调用事件FM:BP_EVENT_RAISE传递事件(在SM62和更高版本中创建)在方法MB_DOCUMENT_UPDATE的Badi MB_document_badi中编写了代码 此FM调用了将目标保留为RFC的后台作业...因此,这里的问题是一段时间的RFC成功,而有时却失败了,因为系统故障,我将sy-subrc = 1。 附加了"短转储"。 在PI端,他们无法看到来自ECC的任何消息。

请帮助我解决问题。

谢谢。

此致

Ramu

(62.5 kB)
付费偷看设置
发送
5条回答
bbpeas
1楼-- · 2020-09-30 00:33

桑德拉,你好

请找到附件的Short dump .txt文件。

我的情况很奇怪,当我执行RFC时,RFC会执行几次,而在后台会失败。 使用JDBG调试后台作业,RFC正在从其他系统获得响应。 下面是我的RFC代码。

填写所有内部表并传递给RFC,如下所示。

此RFC是在一个自定义程序中编写的,该程序已分配给BG作业中的事件,该作业通过BP_event_raise调用,该事件又在物料主MGA00001出口中通过同一FM bp_event_raise调用。

呼叫功能'ZACC_M_I_MATERIAL_CREATEEXT'目的地'ECCTOPIRFCMAT'
桌子
it_mat_date = lt_mat_data
it_mat_sales = lt_sales
it_mat_plant = lt_plant
it_mat_taxcl = us = lt_plant_sloc
it_mat_desc = it_mat_desc
it_mat_uom = it_mat_uom
it_mat_upid1 = it_mat_upid1
it_mat_upid2 = it_mat_upid2
it_mat_upid3 = lt_upidskuloc
<1 >其他=3。
*要从Pharmanet接收状态并在SAP Custom表中更新
IF sy-subrc EQ0。
提交工作。

....从RFC保存状态,即在自定义表中保存it_status。

endif。

请帮助我解决问题。

感谢与问候,

Ramu dump.txt

clever101
2楼-- · 2020-09-30 00:42

因为您没有将短转储附加为。 txt压缩文件,我们看不到lv_msg1/lv_msg2变量的内容(可能它们包含失败的文本(system_failure = X消息lv_msg1/lv_msg2))

奄奄一息的小鱼
3楼-- · 2020-09-30 00:50

与其他类似 系统您缺少功能模块...还是拼写错误?

 |  CPI-C错误文本:"在主机iplpid上找不到Bean ZACC_M_I_MATERIAL_CREATEEXT,| 

下一行是

 ProgId = RFC_MAT:在ZACC_M_I_MATERIAL_CREA的查询中找不到对象" 
>

这使我认为RFC名称的大小可能受到限制,最多22个字符?

愤怒的猪头君
4楼-- · 2020-09-30 00:55

感谢回复..:)

我们的基础团队和PI检查了Program ID,他们为每个通信渠道使用了不同的ID。

即使我检查了上面的SAP注释,但是在这里我们的RFC是同步的,与任何idoc都不相关。 RFC只是选择数据并将其发送给第三方。

我仍然不知道是什么问题。.因为RFC随机失败和成功。

感谢您的帮助。

问候,

Ramu

亦是此间程序员
5楼-- · 2020-09-30 00:31

是的,128比22更合乎逻辑。尝试向不习惯在Base-2中思考的人解释一下:)

一周热门 更多>