cancel
Showing results for 
Search instead for 
Did you mean: 

有没有什么BAPI能读取出PPETI的BOM 信息(划掉)已通过CU50抓到BOM了!!!

百年寂寥
Explorer
0 Kudos
458

有没有什么BAPI、函数或者类,能读取出类似PPETI的物料清单?原计划是用BDC的方式读取,但是后台JOB不能使用。

我今天找到了一个方法,CL_PPEXICMP_CNTL->PV_READ_WITH_FILTER。如果有哪位大佬能告诉我,怎么实现PPETI插入特征值的效果,问题就解决了!

这么长时间都没人回答,我受不了了,CU50的解决方案放这里了!(我秃了,但是我变强了)

CU50首次运行有个弹窗,要求你选择一个工厂。

通过调试,发现在SAPLCUKO/LCUKOFU0/FORM UI_B0030中有这么一段代码

很明显,首次运行时,rcuko-werks和PARAMETER ID WRK都可能是空的,所以我们可以直接给WRK传个工厂来解决问题。

之后在录屏中,我发现SAP让特征值分配的操作,录屏和前台走了不同的屏幕。前台执行的屏幕是104,后台执行的屏幕是109

通过亿点点调试,我定位到函数CE_I_CONFIGURE,这里针对录屏操作、后台操作,进行了逻辑分流。所以这里直接强改系统代码(危险操作)

通过memory id,让指定程序不走109屏幕这段。

最后,我们将运行结果抓到手就可以了。定位到程序LM61OF41,调用函数MD_BEARBEITEN_KOMPONENTEN来进行结果的展示,我们直接将内表数据传出。

这边其实还能再加个退出程序的语句。

最后是参考代码

REPORT zcu50

NO STANDARD PAGE HEADING LINE-SIZE 255.

* Include bdcrecx1_s:

* The call transaction using is called WITH AUTHORITY-CHECK!

* If you have own auth.-checks you can use include bdcrecx1 instead.

INCLUDE bdcrecx1_s.

START-OF-SELECTION.

*====================start by jgabap at 30.07.2023 09:48:16====================*

EXPORT flag = 'X' TO MEMORY ID 'ZCU50'.

SET PARAMETER ID 'WRK' FIELD '一个不重要的工厂'.

*====================start by jgabap at 30.07.2023 09:48:16====================*

PERFORM open_group.

PERFORM bdc_dynpro USING 'SAPLCUKO' '0030'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RCUKO-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=GOON'.

PERFORM bdc_field USING 'RCUKO-MATNR'

'一个不重要的物料'.

PERFORM bdc_field USING 'RCUKO-WERKS'

'一个不重要的工厂'.

PERFORM bdc_field USING 'RCUKO-MENGE'

'1.000'.

PERFORM bdc_field USING 'RCUKO-DATUV'

'2023.07.30'.

PERFORM bdc_field USING 'RCUKO-PROCESS_SALES'

'X'.

PERFORM bdc_field USING 'RCUKO-RSBOM'

'X'.

PERFORM bdc_dynpro USING 'SAPLCEI0' '0104'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SUCHE'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RCTMS-MWERT(01)'.

PERFORM bdc_dynpro USING 'SAPLCLHU' '0600'.

PERFORM bdc_field USING 'BDC_CURSOR'

'CLHP-CR_STATUS_TEXT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=RETURN'.

PERFORM bdc_field USING 'CLHP-CR_STATUS_TEXT'

'用搜索按钮去查找某个关键的特性名称'.

PERFORM bdc_field USING 'D0600_MAX_HITS'

'50'.

PERFORM bdc_dynpro USING 'SAPLCEI0' '0104'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RCTMS-MWERT(01)'.

PERFORM bdc_field USING 'RCTMS-MWERT(01)'

'关键特性的特征值'.

PERFORM bdc_dynpro USING 'SAPLCEI0' '0104'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PAUF'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RCTMS-MWERT(01)'.

PERFORM bdc_dynpro USING 'SAPLM61Q' '0115'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EEXIT'.

PERFORM bdc_dynpro USING 'SAPLCEI0' '0104'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EEOT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RCTMS-MWERT(01)'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_transaction USING 'CU50'.

PERFORM close_group.

*====================start by jgabap at 30.07.2023 09:48:39====================*

* DATA: BEGIN OF mdpmi OCCURS 100.

* INCLUDE STRUCTURE mdpm.

* DATA: END OF mdpmi.

DATA mdpmi TYPE TABLE OF mdpm.

IMPORT mdpmi = mdpmi[] FROM MEMORY ID 'ZCU50_MDPMI'.

FREE MEMORY ID: 'ZCU50_MDPMI','ZCU50'.

*====================start by jgabap at 30.07.2023 09:48:39====================*

Accepted Solutions (1)

Accepted Solutions (1)

百年寂寥
Explorer
0 Kudos

补充一下,这种方法可以正常的在后台作业中运行,已通过测试了

Answers (0)