BDC处理时用到结构BDCDATA

   在使用BDC批量输入数据的时候,有两个系统结构是要经常使用的,一个是BDCDATA和BDCMSGCOLL。今天查了一些资料,先了解一下第一个结构BDCDATA。

   在SE11里看到BDCDATA包含五个字段,分别为:PROGRAM(BDC module pool)  DYNPRO(BDC Screen number)  DYNBEGIN(BDC screen start) FNAM(Field name)  FVAL(BDC field value)。这五个字段代表的意思在括号里面。

    我们在通过SM35录好屏幕之后,系统会字段产生一个包括五列若干行的表格。这里的五列就分别对应BDCDATA中的五个字段。bdc的工作原理,就是通过sm35记录的每个屏幕上输入的字段来实现批处理(批处理时,将变量赋值给FVAL,随着变量的改变,实现批处理)。

    通过sm35产生的那个表格其实相当于一个内部表,我们要做的就是把通过录屏产生的这些内容加到程序中的内部表中:定义内部表 data it_bdcdata type standard table of bdcdata.

          定义工作区域 data wa_bdcdata type bdcdata.

    因为要加入到内表中的值很多,所以建子程序。代码如下

   perform p_bdcdata using:'' '' '' '' '',

                            '' '' '' '' '',

                            '' '' '' '' ''.

将录屏产生的内部表中每一行的值填入到对应的''中取(有关鼠标位置的可以不管)

  form p_bdcdata using P_PROGRAM P_DYNPRO P_DYNBEGIN P_FNAM P_FVAL.

   clear wa_bdcdata.

   wa_bdcdata-program = P_PROGRAM.

   wa_bdcdata-dynpro =  P_DYNPRO.

   wa_bdcdata-dynbegin =  P_DYNBEGIN.

   wa_bdcdata-fnam =  P_FNAM.

   wa_bdcdata-fval =  P_FVAL.

   append wa_bdcdata into it_bdcdata.

  endform.

call transaction ‘TCODE’ USING it_bdcdata mode ‘A’.

进过上面这个字程序,录屏所产生的字段和ok-code,全部加到了内表it_bdcdata中。如果说我们要进行批处理的数据已经上传到了另外一个内表中,那么我只要loop这个内表,在loop中perform,将工作区域的值赋值给form中wa_bdcdata-fval 。这样就实现了一个简单的bdc处理。

原文地址:https://www.cnblogs.com/liaojunbo/p/2208253.html