Saltar al contenido

BDC en control de mesa

Un Usuario hizo la siguiente pregunta

Hola,

¿Alguien puede ayudar con una ordenada expulsión paso a paso? Cómo hacer BDC para el control de la mesa. Una foto me ayudará a comprender más. Muchos enlaces aquí realmente no me ayudan.

Por favor, avíseme también qué hace que el control Table / Step Loop sea diferente de la forma normal de tener BDC en una pantalla normal si se usa SHDB para grabar.

9 respuestas

  • Hola,

    Sí, para el control de tabla, si desea obtener un número de registro N, debe especificar el NOMBRE DE CAMPO (NÚMERO DE FILA) en BDC, pero para la pantalla normal, solo necesita ejecutar el Nombre de campo.

    RV45A-MABNR (01) = 1000

    RV45A-MABNR (02) = 2000

    RV45A-MABNR (03) = 3000

    RV45A-MABNR (04) = 4000.

    Lo anterior sería un ejemplo de cuatro registros en el control de tabla para el campo MABNR.

    Todo lo mejor,

    Prashant

  • Ex miembro

    Hola seguro,

    compruebe que el enlace a continuación puede serle útil

    Control de tabla en BDC

    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

    También revise el enlace a continuación, puede obtener respuestas para todas sus preguntas.

    http://help.sap.com/saphelp_webas630/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm

    si es útil por favor marque los puntos

    Sobre,

    Naveen

  • Ex miembro

    Hola

    bien

    según tu pregunta hay dos cosas

    uno es la grabación BDC usando SDDB

    el segundo es reenviar esos datos al control de la tabla que diseñó usando se51.

    porque se le ha pedido que obtenga la foto, no se la puede entregar aquí, y no tengo un ejemplo que pueda resolver su problema de esta manera.

    sigue este proceso->

    1-Repetir usando el código td

    2-pase esa grabación a un informe

    3- escriba el informe de acuerdo a su requerimiento

    4-diseño del control de mesa en se51

    5-llame a esa pantalla en su informe usando

    PANTALLA DE LLAMADA

    6-pase los datos a la tabla de control

    Ya he respondido una segunda pregunta.

    gracias

    mrutyun

  • Ex miembro

    Hola seguro,

    prueba este código. en este código usé txn’ZCMAT ‘en este txn usé control de tabla.

    bdcrecx1 incluido.

    selección de inicio.

    hacer open_group.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0100’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘W_R3’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= OK1’.

    hacer bdc_field usando ‘W_R1’

    ».

    hacer bdc_field usando ‘W_R3’

    ‘X’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= ENTRAR’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= TABSTRIP1_FC1’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERSDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERNAM’

    ‘CHETAN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-PSTAT’

    ‘BIEN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-LAEDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-AENAM’

    ‘VISHNOI’.

    hacer bdc_field usando ‘ZMRO_MATDATA-VPSTA’

    ‘BIEN’.

    hacer bdc_field usando ‘ZMRO_STORAGE-LGORT’

    ‘X001’.

    hacer bdc_field usando ‘ZMRO_STORAGE-VMUML’

    ‘142.000’.

    hacer bdc_field usando ‘ZMRO_STORAGE-LFGJA’

    ‘2006’.

    hacer bdc_field usando ‘ZMRO_STORAGE-LABST’

    ’14 .000 ‘.

    hacer bdc_field usando ‘ZMRO_STORAGE-LFMON’

    ’10’.

    hacer bdc_field usando ‘ZMRO_STORAGE-VMLAB’

    ‘150.000’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= TC_PLANT_INSR’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERSDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERNAM’

    ‘CHETAN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-PSTAT’

    ‘BIEN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-LAEDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-AENAM’

    ‘VISHNOI’.

    hacer bdc_field usando ‘ZMRO_MATDATA-VPSTA’

    ‘BIEN’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= MOD’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERSDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-ERNAM’

    ‘CHETAN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-PSTAT’

    ‘BIEN’.

    hacer bdc_field usando ‘ZMRO_MATDATA-LAEDA’

    ’19 .07.2005 ‘.

    hacer bdc_field usando ‘ZMRO_MATDATA-AENAM’

    ‘VISHNOI’.

    hacer bdc_field usando ‘ZMRO_MATDATA-VPSTA’

    ‘BIEN’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘T_PLANT-KZDIE (04)’.

    hacer bdc_field usando ‘T_PLANT-WERKS (04)’

    ‘004’.

    hacer bdc_field usando ‘T_PLANT-XCHAR (04)’

    ‘t’.

    hacer bdc_field usando ‘T_PLANT-EKGRP (04)’

    ‘102’.

    hacer bdc_field usando ‘T_PLANT-DISMM (04)’

    ’14’.

    hacer bdc_field usando ‘T_PLANT-DISPO (04)’

    ’20’.

    hacer bdc_field usando ‘T_PLANT-KZDIE (04)’

    ‘t’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘/ EBACK’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= ENTRAR’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘= TABSTRIP1_FC2’.

    hacer bdc_field usando ‘ZMRO_MATDATA-MATNR’

    ‘100-100’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0200’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘/ EBACK’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘ZMRO_MATDATA-MATNR’.

    haga bdc_dynpro usando ‘SAPMZCMAT’ ‘0100’.

    hacer bdc_field usando ‘BDC_OKCODE’

    ‘/ EBACK’.

    hacer bdc_field usando ‘BDC_CURSOR’

    ‘% # AUTOTEXT003’.

    * realizar bdc_transaction usando ‘ZCMAT’.

    TRANSPORTE DE LA APLICACIÓN ‘ZCMAT’ UTILIZANDO BDCDATA

    MODO ‘A’

    Actualizar ‘A’

    MENSAJES EN MESSTAB.

    hacer close_group.

    Espero que te ayude.

    si es así, no otorgue puntos.

    con todos los buenos deseos

    Chetan Vishnoi

  • Ex miembro

    Hola

    Consulte el siguiente fragmento de código

    REPORT Y730_BDC5 .
    *HANDLING TABLE CONTROL IN BDC
    DATA : BEGIN OF IT_DUMMY OCCURS 0,
           DUMMY(100) TYPE C,
           END OF IT_DUMMY.
    DATA : BEGIN OF IT_XK01 OCCURS 0,
           LIFNR(10) TYPE C,
           BUKRS(4)  TYPE C,
           EKORG(4)  TYPE C,
           KTOKK(4)  TYPE C,
           NAME1(30) TYPE C,
           SORTL(10) TYPE C,
           LAND1(3)  TYPE C,
           SPRAS(2)  TYPE C,
           AKONT(6)  TYPE C,
           FDGRV(2)  TYPE C,
           WAERS(3)  TYPE C,
           END OF IT_XK01,
           BEGIN OF IT_BANK OCCURS 0,
           BANKS(3)  TYPE C,
           BANKL(10) TYPE C,
           BANKN(10) TYPE C,
           KOINH(30) TYPE C,
           LIFNR(10) TYPE C,
           END OF IT_BANK.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    
    CALL FUNCTION 'WS_UPLOAD'
     EXPORTING
       FILENAME                      = 'C:VENDOR.TXT'
       FILETYPE                      = 'ASC'
     TABLES
       DATA_TAB                      = IT_DUMMY.
    
    LOOP AT IT_DUMMY.
      IF IT_DUMMY-DUMMY+0(2) = '11'.
        IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
        IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
        IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
        IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
        IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
        IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
        IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
        IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
        IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
        IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
        IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
        APPEND IT_XK01.
      ELSE.
        IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
        IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
        IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
        IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
        IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
        APPEND IT_BANK.
      ENDIF.
    ENDLOOP.
    
    LOOP AT IT_XK01.
    REFRESH IT_BDCDATA.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-REF_LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  IT_XK01-LIFNR.
    perform bdc_field       using 'RF02K-BUKRS'
                                  IT_XK01-BUKRS.
    perform bdc_field       using 'RF02K-EKORG'
                                  IT_XK01-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'
                                  IT_XK01-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELX1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                  IT_XK01-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                  IT_XK01-SORTL.
    perform bdc_field       using 'LFA1-LAND1'
                                  IT_XK01-LAND1.
    perform bdc_field       using 'LFA1-SPRAS'
                                  IT_XK01-SPRAS.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-KOINH(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    DATA : FNAM(20) TYPE C,
           IDX      TYPE C.
      MOVE 1 TO IDX.
    LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
      CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKS.
    
      CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKL.
    
      CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKN.
    
      CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-KOINH.
      IDX = IDX + 1.
    ENDLOOP.
    
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-FDGRV'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFB1-AKONT'
                                  IT_XK01-AKONT.
    perform bdc_field       using 'LFB1-FDGRV'
                                  IT_XK01-FDGRV.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB5-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0310'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFM1-WAERS'
                                  IT_XK01-WAERS.
    perform bdc_dynpro      using 'SAPMF02K' '0320'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'WYT3-PARVW(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'XK01' USING IT_BDCDATA
                            MODE  'A'
                           UPDATE 'S'
                         MESSAGES INTO IT_BDCMSGCOLL.
    ENDLOOP.
    
    FORM BDC_DYNPRO USING PROG SCR.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM = PROG.
      IT_BDCDATA-DYNPRO  = SCR.
      IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND IT_BDCDATA.
    ENDFORM.
    
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-FNAM = FNAM.
      IT_BDCDATA-FVAL  = FVAL.
      APPEND IT_BDCDATA.
    ENDFORM.

    espero que esto ayude

    Anirban

  • Ex miembro

    naveen,

    Permítanme plantear mi pregunta de forma más directa. ¿Qué hace que el control BDC en la mesa sea diferente al BDC en la pantalla normal?

    ¿Es la grabación de desplazamiento hacia la izquierda / derecha y la página hacia arriba / abajo algo diferente en los controles de la tabla

  • Ex miembro

    Además de lo anterior, recuerde siempre que el desplazamiento horizontal no afecta la grabación, pero el desplazamiento vertical sí grabará.

    Por lo tanto, si necesita incluir 10 filas de datos en el control de la tabla y solo aparecen 5 filas en la pantalla, asegúrese de que su registro tenga una página hacia abajo después de completar 5 conjuntos de datos y luego incluya otras 5 filas.

    Sería una mejor idea registrar un retroceso de página después de cada conjunto de datos que se va a completar (esto es aplicable si el número de conjuntos que se va a completar es dinámico)

  • Ex miembro

    Hola Suresh,

    Mira lo siguiente,

    Bdc

    BDChttp: //www.sap-img.com/bdc.htm «> BDC>

    Sobre,

    Arun Sambargi.