Datos Maestros Acreedores (Proveedores)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • neox
    Junior Member
    • abr
    • 8

    #1

    Datos Maestros Acreedores (Proveedores)

    Alguién podría indicarme si hay alguna función o bapi para modificar dicho maestro.

    de antemano gracias.
  • microfth
    Junior Member
    • feb
    • 4

    #2
    A parte de realizar el tradicional batch input ( que es puto coñazo )
    - Puedes utilizar el programa RFBIKR00: Este programa precisa de un fichero de texto en un determinado formato y el ya te crea el juego de datos correspondiente. Puede ser una opción valida. Este programa lo utiliza la técnologia LSMW, por lo que puedes mirar algún manual de los que corren por ahí. Problemas: Sistema de direcciones.. campos no presentes (correo), logitud de campos (name1 en las adr es de distinto tamaño que en lfa1..)...
    - Si quieres cambiar el sistema de direcciones, existen algunas bapis: BAPI_ADDRESSORG_CHANGE, BAPI_ADDRESORG_SAVEREPLICA, ADDR_UPDATE, ADDR_COM_MAINTAIN, ADDR* pero ten encuenta que algunas de estas bapis modifican los datos de las ADR* pero no modifican los datos de la lfa1 -> Hay que actualizar (Ejemplos: telf1(lfa1), telf_number (adr2)).
    - Otra cosa que se me ocurre, y es la que yo he utilizado con buenos resultados, es modificar el modulo de funciones MASS_CREMAS01_CHANGE. Este modulo de funciones se utiliza en la xk99. pero con unos correctas modificaciones se puede realizar un autentico modulo de funciones que permita la modificación de proveedores (Tambien la carga). Permitira incluso las opciones de test y ejecucion real.

    Bueno ya te he dado algunas pistas...
    Un saludo
    DFG

    Comentario

    • regia_abap
      Junior Member
      • abr
      • 3

      #3
      Función MASS_CREMAS01_CHANGE

      Hola a Todos!

      Alguien sabe como se usa la función MASS_CREMAS01_CHANGE, o tiene algun ejemplo?

      Estoy confundida en como utilizar la estructura SELDATA

      Muchas Gracias!

      Comentario

      • microfth
        Junior Member
        • feb
        • 4

        #4
        Hola,
        Realmente despues de probar el uso de MASS_CREMAS01_CHANGE tuvo que realizar una copia de la misma puesto que necesitaba cambiar ciertas cosas del call transaction ( validaciones propias). Pero si te sirve:

        - SIMULACION DE TRANSACCION XK99:

        FORM rellenar_tablas_cremas using modo.
        data: p_lifnr(10),
        p_bukrs(10),
        p_ekorg(10).

        data: dy_line type ref to data.
        field-symbols: <row>.

        p_lifnr = 'LIFNR'.
        p_bukrs = 'BUKRS'.
        p_ekorg = 'EKORG'.

        create data dy_line like line of <table_list>.

        assign dy_line->* to <row>.

        perform inicializar_estructuras_carga.

        * rellenamos tablas con valores
        refresh t_slfa1.
        loop at t_lfa1.
        clear t_slfa1.
        move-corresponding t_lfa1 to t_slfa1.
        read table <table_list> into <row>
        with key (p_lifnr) = t_lfa1-lifnr.
        move-corresponding <row> to t_slfa1.
        append t_slfa1.
        endloop.
        refresh t_slfb1.
        loop at t_lfb1.
        clear t_slfb1.
        move-corresponding t_lfb1 to t_slfb1.
        read table <table_list> into <row>
        with key (p_lifnr) = t_lfb1-lifnr
        (p_bukrs) = t_lfb1-bukrs.
        move-corresponding <row> to t_slfb1.
        append t_slfb1.
        endloop.
        refresh t_slfm1.
        loop at t_lfm1.
        clear t_slfm1.
        move-corresponding t_lfm1 to t_slfm1.
        read table <table_list> into <row>
        with key (p_lifnr) = t_lfm1-lifnr
        (p_ekorg) = t_lfm1-ekorg.
        move-corresponding <row> to t_slfm1.
        append t_slfm1.
        endloop.
        wa_seldata-tabname = p_nivel.
        if p_nivel = C_LFA1.
        t_keyfieldnames = 'LIFNR'.
        append t_keyfieldnames.
        elseif p_nivel = C_LFB1.
        t_keyfieldnames = 'LIFNR'.
        append t_keyfieldnames.
        t_keyfieldnames = 'BUKRS'.
        append t_keyfieldnames.
        elseif p_nivel = C_LFM1.
        t_keyfieldnames = 'LIFNR'.
        append t_keyfieldnames.
        t_keyfieldnames = 'EKORG'.
        append t_keyfieldnames.
        endif.
        * Campos clave
        wa_seldata-keyfieldnames[] = t_keyfieldnames[].
        * Campos a modificar
        loop at t_fields_selected.
        clear t_fieldnames.
        t_fieldnames = t_fields_selected-fieldname.
        append t_fieldnames.
        endloop.
        wa_seldata-fieldnames[] = t_fieldnames[].
        append wa_seldata to l_seldata.
        * Modo Real o Modo Test
        l_testmode = modo.
        * Ejecución masiva XK99
        l_xk99 = 'X'.
        * MSG
        l_masssaveinfos = '000252'.
        l_nr_range_nr = '01'.
        l_object = 'MASS'.
        l_subobject = 'LFA1'.

        ENDFORM. " rellenar_tablas_cremas

        FORM ejecutar_modif_cremas .
        L_MASSSAVEINFOS = L_NUMBER.
        CALL FUNCTION 'ZYMASS_CREMAS01_CHANGE'
        EXPORTING
        SELDATA = l_seldata
        TESTMODE = l_testmode
        MASSSAVEINFOS = L_MASSSAVEINFOS
        XK99 = l_xk99
        IMPORTING
        MSG = t_msg
        TABLES
        SLFA1 = t_slfa1
        SLFAS = t_slfas
        SLFB1 = t_slfb1
        SLFB5 = t_slfb5
        SLFBK = t_slfbk
        SLFM1 = t_slfm1
        SLFM2 = t_slfm2
        SWYT1 = t_swyt1
        SWYT1T = t_swyt1t
        SWYT3 = t_swyt3.
        .


        ENDFORM. " ejecutar_modif_cremas

        Comentario

        • regia_abap
          Junior Member
          • abr
          • 3

          #5
          Muchas Gracias!

          Voy a revisarlo y te cuento

          Salu2!

          Comentario

          Trabajando...