写了一个接口,接口中使用CALL TRANSACTION的方法录的BDC,使用事务码“CO11N”进行报工。
在sap中运行测试是没有问题的,但是外部调用的时候,debug发现运行到CALL TRANSACTION语句的时候就会直接退出,有没有大神指导这是什么情况。
下面是代码:
FUNCTION z_rfc_002.
"----------------------------------------------------------------------
*""本地接口:
*" IMPORTING
*" VALUE(I_AUFNR) TYPE AUFNR
*" VALUE(I_VORNR) TYPE VORNR
*" VALUE(I_MENGE) TYPE MENGE_D
*" EXPORTING
*" VALUE(O_MESSAGE) TYPE CHAR40
*"----------------------------------------------------------------------
DATA:
lv_aufnr TYPE afrud-aufnr,
lv_vornr TYPE afrud-vornr,
lv_mode TYPE c VALUE 'N',
ls_message TYPE bdcmsgcoll,
lt_message TYPE STANDARD TABLE OF bdcmsgcoll.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_aufnr
IMPORTING
output = lv_aufnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_vornr
IMPORTING
output = lv_vornr.
CLEAR: gt_bdcdata,lt_message.
PERFORM bdc_dynpro USING 'SAPLCORU_S' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'AFRUD-AUFNR'
lv_aufnr. "订单号
PERFORM bdc_field USING 'AFRUD-VORNR'
lv_vornr. "工序号
PERFORM bdc_field USING 'AFRUD-LMNGA'
i_menge. "发料数量
PERFORM bdc_dynpro USING 'SAPLCORU_S' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
- PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
- PERFORM bdc_field USING 'BDC_OKCODE'
-
'=YES'.
CALL TRANSACTION 'CO11N' USING gt_bdcdata
MODE lv_mode UPDATE 'S' MESSAGES INTO lt_message.LOOP AT lt_message INTO ls_message WHERE msgtyp = 'E'.
MESSAGE ID ls_message-msgid
TYPE ls_message-msgtyp NUMBER ls_message-msgnr
WITH ls_message-msgv1 ls_message-msgv2
ls_message-msgv3 ls_message-msgv4
INTO o_message.
EXIT.
ENDLOOP.IF o_message IS INITIAL.
o_message = '发料成功!'.
ENDIF.
ENDFUNCTION.