SAP程序调用函数CUAB_DISPLAY_CD_CONFIGURATION取订单配置变更时的注意事项

在对程序具体跟踪到没条数据的时候,发现有少量的意向订单没有配置号,而导致传进函数的配置号参数为空,这个时候函数就一致运行不出来而占用系统内存导致。
解决方案:在取订单的配置号(VBAP-CUOBJ)的时候,加上非空的判断即可。
代码摘录如下:
 DATA: l_cuobj LIKE vbap-cuobj .

 REFRESH: it_cdhdr , it_pos_conf , pos_conf .
 change_rec-neutr_charac = 'X' .
 change_rec-neutr_value = '' .
 change_rec-no_display = 'X' .
 SELECT SINGLE cuobj
   INTO l_cuobj
   FROM vbap
   WHERE vbeln = vbeln AND
         posnr = posnr .
 IF sy-subrc = 0 AND l_cuobj IS NOT INITIAL.
   FREE: it_cdhdr,it_pos_conf,pos_conf.
   CALL FUNCTION 'CUAB_DISPLAY_CD_CONFIGURATION'
     EXPORTING
       i_instance     = l_cuobj
       i_change_rec   = change_rec
     IMPORTING
       e_tab_cdhdr    = it_cdhdr
       e_tab_pos_conf = it_pos_conf
     EXCEPTIONS
       no_data        = 1
       internal_error = 2
       OTHERS         = 3.

   LOOP AT it_pos_conf INTO wa_pos_conf .
     pos_conf = wa_pos_conf .
     READ TABLE it_cdhdr INTO wa_cdhdr
     WITH KEY changenr = wa_pos_conf .
     IF sy-subrc = 0 .
       MOVE-CORRESPONDING wa_cdhdr TO pos_conf .
     ENDIF .
     APPEND pos_conf .
   ENDLOOP .

 ENDIF .

你可能感兴趣的:(ABAP开发,sap,function,table)