Skip to Content
0
Former Member
Dec 06, 2006 at 11:45 AM

Incredible!! Internal table data from memory ID depends of the SHDB !!!!

133 Views

Hi everyone, this is my first post in SDN. I can't think in more options to resolve this problem, can anyone help me?

I'm updating a report that in one of this forms mading a new shdb instead of the one that already exist and after that there is the line <b>IMPORT itab_mdez FROM MEMORY ID 'ZMD04'</b>. ZMD04 isn't in <b>TPARA</b> table and there is no EXPORT for this in any place.

But the worst is that when i comment the new shdb that i made for the old one, the IMPORT works and the internal table <b>itab_mdez</b> has one or more lines.

Any idea?

There's the form with the problem.

FORM z_exec_md04 .
  DATA: vg_texto(50), v_count TYPE i. "local declaration
  w_mode = 'N'. "process mode

  REFRESH: itab_mdez_comp.

  LOOP AT itab_matcent.
    vg_tabix = sy-tabix.

*   User message
    CONCATENATE text-m03 itab_matcent-matnr
                text-m04 itab_matcent-werks
           INTO vg_texto.

    ADD 1 TO v_count.
    IF v_count = 100. v_count = 1. ENDIF.
    mensagem vg_texto v_count.

    REFRESH: t_bdc.

    PERFORM preenche_tela USING:
                   'X' 'SAPMM61R'      '0300',
                   ' ' 'RM61R-MATNR'   itab_matcent-matnr,
                   ' ' 'RM61R-WERKS'   itab_matcent-werks,
                   ' ' 'BDC_OKCODE'    '=ENTR'.

    PERFORM preenche_tela USING:
                   'X' 'SAPMM61R'      '0710',
                   ' ' 'BDC_OKCODE'    '=REFR'.

    PERFORM preenche_tela USING:
                   'X' 'SAPMM61R'      '0710',
                   ' ' 'BDC_OKCODE'    '=BACK'.


*    This SHDB is the new one, made for me, commented.
*    When i use this instead of the little one, the internal table isnt imported
*    from the memory id.

*    PERFORM preenche_tela USING:
*            'X'  'SAPMM61R'     '0300',
*            ' '  'BDC_OKCODE'   '=FILT',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       0301INCLUDE300',
*            ' '  'BDC_CURSOR'   'RM61R-DFILT',
*            ' '  'RM61R-MATNR'  itab_matcent-matnr,
*            ' '  'RM61R-WERKS'  itab_matcent-werks,
*            ' '  'RM61R-DFILT'  'X'.
*
*    PERFORM preenche_tela USING:
*            'X'  'SAPMM61R'     '0300',
*            ' '  'BDC_OKCODE'   '=FACT',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       0301INCLUDE300',
*            ' '  'BDC_CURSOR'   'RM61R-ERGBZ',
*            ' '  'RM61R-ERGBZ'  'ZBLOQQM'.
*
*    PERFORM preenche_tela USING:
*            'X'  'SAPMM61R'     '0300',
*            ' '  'BDC_OKCODE'   '=ENTR',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       0301INCLUDE300',
*            ' '  'BDC_CURSOR'   'RM61R-MATNR'.
*
*    PERFORM preenche_tela USING:
*            'X'  'SAPMM61R'     '0710',
*            ' '  'BDC_OKCODE'   '=REFR'.
*
*    PERFORM preenche_tela USING:
*            'X'  'SAPMM61R'     '0710',
*            ' '  'BDC_OKCODE'   '=BACK',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       0800INCLUDE8XX',
*            ' '  'BDC_CURSOR'   'RM61R-MATNR',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       1200INCLUDE12XX',
*            ' '  'BDC_SUBSCR'   'SAPMM61R       0750INCLUDE1XX'.

    REFRESH: messtab.

*   Execute the transaction
    CALL TRANSACTION 'MD04' USING  t_bdc
                            MODE   w_mode
                            UPDATE 'S'
                            MESSAGES INTO messtab.

    CLEAR: itab_mdez. REFRESH: itab_mdez.
    IMPORT itab_mdez FROM MEMORY ID 'ZMD04'.

* In this time, when i put a break in the line above, if the shdb is the little and
* old one, i have lines in itab_mdez imported from zmd04. If i'm using the biggest
* and new shdb, made for myself, itab_mdez didn't import anything.

    LOOP AT itab_mdez.
      CLEAR: itab_mdez_comp.
      itab_mdez_comp = itab_mdez.
      itab_mdez_comp-matnr = itab_matcent-matnr.
      itab_mdez_comp-werks = itab_matcent-werks.
      APPEND itab_mdez_comp.
    ENDLOOP.

  ENDLOOP.
  FREE MEMORY id 'ZMD04'.
ENDFORM.

Thanks any help and regards,

Giovani