Funcion para tablas

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • brujop
    Junior Member
    • nov
    • 29

    #1

    Funcion para tablas

    Buenas tardes alguno de uds conoce de alguna funcion para tabla que se pueda utilizar en vez de los tradicionales select

    CALL FUNCTION 'K_COEP_INSERT' "Updating line item COEP
    EXPORTING
    * epskz = 'X' " tka07-epskz Ind. whether planned line items ar
    * totals_update = 'X' " tka07-epskz Indicator 'update totals records'
    vrgng = " cobk-vrgng Transaction
    TABLES
    cobk_tab = " cobk Table of the document headers to b
    coep_tab = " coep Table of the COEP records to be wr
    . " K_COEP_INSERT

    Algo parecido a esto.

    Les agradezco de antemano
  • manu_lolo27
    Member
    • mar
    • 90

    #2
    Hola, la funcion 'K_COEP_INSERT' (por lo visto) se utiliza para modificar una posición de una partidas COEP, esto no quiere decir que solo vas a modificar una tabla (si es estandar sap, puede modificar 1 o varias tablas) esta es la mejor forma de modificar cualquier objeto si lo haces programando, estas funciones se llaman BAPI (hay manuales) depende de lo que quieras hacer, puedes utilizar la BAPI que sea necesario, NO PARA TODO HAY BAPIS,

    No se si te he ayudado, sino, danos mas informacion
    saludos
    Manuel H.

    Comentario

    • brujop
      Junior Member
      • nov
      • 29

      #3
      Funcion para tabla

      Gracias por responder lo sucedido es lo siguiente, recien me pidieron en el trabajo modificar la siguiente consulta:

      SELECT coep~belnr coep~buzei coep~vrgng cobk~budat coep~objnr coep~wkgbtr coep~mbgbtr coep~matnr cobk~refbn cobk~aworg coep~meinb cobk~awtypcoep~perio coep~gjahr coep~wrttp coep~kstar coep~parob coep~uspob coep~beknz coep~werks coep~wogbtr coep~owaer coep~megbtr
      INTO CORRESPONDING FIELDS OF TABLE ti_cobk_coep3
      FROM coep
      INNER JOIN cobk ON coep~mandt = cobk~mandt AND coep~kokrs = cobk~k okrs AND coep~belnr = cobk~belnr
      WHERE cobk~budat IN so_budat AND
      coep~kokrs EQ 'GAND' AND
      coep~wrttp EQ '04' AND
      coep~lednr EQ '00' AND
      coep~objnr IN r_objnr AND
      coep~vrgng NE 'KOAO'.

      Averiguando y ayudado por otros amigos modifique la consulta a esto:


      SELECT mandt kokrs belnr buzei perio wogbtr wkgbtr megbtr mbgbtr lednr objnr gjahr wrttp kstar
      vrgng parob uspob beknz owaer meinb werks matnr
      FROM COEP
      INTO TABLE ti_coep
      WHERE objnr IN r_objnr AND
      kokrs EQ 'GAND' AND
      wrttp EQ '04' AND
      lednr EQ '00' AND
      vrgng NE 'KOAO'.

      NOTA: AWORG NO EXISTE,

      SORT ti_coep BY mandt kokrs belnr.
      DELETE ADJACENT DUPLICATES FROM ti_coep COMPARING mandt kokrs belnr.

      SELECT mandt kokrs belnr budat awtyp aworg
      FROM COBK
      INTO TABLE ti_cobk
      FOR ALL ENTRIES IN ti_coep
      WHERE budat IN so_budat and
      kokrs EQ 'GAND'.
      SORT ti_cobk BY mandt kokrs belnr.

      LOOP AT ti_coep into st_coep.
      READ TABLE INTO ti_cobk WITH KEY mandt = st_cobk-mandt and st_cobk-kokrs and
      st_cobk-belnr binary search.

      IF sy-subrc = 0.
      MOVE-CORRESPONDING st_cobk to st_coep.
      APPEND st_coep to ti_coep.
      ENDIF.

      IF sy-subrc = 0.
      MOVE-CORRESPONDING st_coepto st_cobk.
      APPEND st_cobk to ti_cobk.
      ENDIF.
      ENDLOOP.

      Probe la consulta pero aun no corre el programa, tambien me indicaron que seria bueno utilizar funciones.

      Es por eso que recurro a ustedes expertos, y les pregunto si la consulta que modifique esta bien hecha, que le falta, y si habria alguna funcion que pueda reemplazarla.

      Muchas gracias por su atención.

      Comentario

      Trabajando...