Creación de clientes en tx FD01 con SD_CUSTOMER_MAINTAIN_ALL

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • shinharold
    Junior Member
    • jun
    • 15

    #1

    Creación de clientes en tx FD01 con SD_CUSTOMER_MAINTAIN_ALL

    Hola foro.


    estoy creando clientes masivamente en la transacción FD01 para esto cargo un archivo plano y luego actualizo la transacción usando la bapi SD_CUSTOMER_MAINTAIN_ALL, pero me esta generando errores por el area de ventas, me pide obligatorios VKORG, VTWEG, SPART, a pesar que estos no se visualizan en la transacción FD01.

    alguien, ha trabajado con esta Bapi, o tiene una idea de que puede estar pasando ?.

    posteo el codigo para que me ayuden.



    *&---------------------------------------------------------------------*
    *& Form FILL_CUSTOMER
    *&---------------------------------------------------------------------*
    * llena las tablas de la bapi
    *----------------------------------------------------------------------*
    * --> p1 text
    * <-- p2 text
    *----------------------------------------------------------------------*
    FORM FILL_CUSTOMER.
    CLEAR: GST_KNA1, GST_KNB1, GST_KNVV, GST_BAPIADDR1, GST_BAPIADDR2,
    GST_ADD_ON_DATA, GC_KUNNR, GST_KNA2, GC_SD_CUST_1321_DONE.

    REFRESH: GTI_XKNAS, GTI_XKNBK, GTI_XKNB5, GTI_XKNEX, GTI_XKNVA, GTI_XKNVD,
    GTI_XKNVK, GTI_XKNVL, GTI_XKNVP, GTI_XKNZA, GTI_YKNAS, GTI_YKNBK,
    GTI_YKNEX, GTI_YKNVA, GTI_YKNVD, GTI_YKNVI, GTI_YKNVK, GTI_YKNVL,
    GTI_YKNZA, GTI_UPD_TXT, GTI_YKNB5, GTI_YKNVP, GTI_XKNVI.

    *GTI_XKNBK (contiene las actualizaciones a los bancos)

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT = GS_EXCELTABLINE-KUNNR
    IMPORTING
    OUTPUT = GS_EXCELTABLINE-KUNNR.



    IF GS_EXCELTABLINE-VKORG <> SPACE AND " ORGANIZACIÓN DE VENTAS
    GS_EXCELTABLINE-VTWEG <> SPACE. " CANAL DE DISTRIBUCIÓN
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNA1."METI LA MANO AQUI.

    *//comprobación, para saber si KNVV es obligatorio
    * IF GS_EXCELTABLINE-KTOKD = 'C103' OR
    * GS_EXCELTABLINE-KTOKD = 'C105' OR
    * GS_EXCELTABLINE-KTOKD = 'C106' OR
    * GS_EXCELTABLINE-KTOKD = 'C107'.
    *
    * CLEAR: GST_KNVV.
    ** REFRESH: KNVV.
    * ELSE.
    * MOVE-CORRESPONDING GST_KNA1 TO GST_KNVV.
    * MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNVV.
    * ENDIF.
    MOVE-CORRESPONDING GST_KNA1 TO GST_KNVV.
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNVV.
    GST_KNVV-ZTERM = GS_EXCELTABLINE-ZTERM.

    IF GST_KNA1-LAND1 NE 'CO'.
    GST_KNVV-PVKSM = 'A'.
    ENDIF.
    ENDIF.

    GST_BAPIADDR1-SORT1 = GS_EXCELTABLINE-SORTL.


    MOVE-CORRESPONDING GST_KNA1 TO GST_KNB1.
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNB1.

    GST_KNB1-ERDAT = SY-DATUM.
    GST_KNB1-ERNAM = SY-UNAME.

    GST_MAINTAIN_ADDRESS_BY_KNA1 = 'X'.
    GST_FORCE_EXT_NU_RANGE = ' '.
    GST_POSTFLAG = 'X'.

    GST_ADD_ON_DATA-CHANGED = 'X'.
    GST_ADD_ON_DATA-KUNNR = GS_EXCELTABLINE-KUNNR.


    *//comprobación, para saber si KNVV es obligatorio
    * IF GS_EXCELTABLINE-KTOKD = 'C103' OR
    * GS_EXCELTABLINE-KTOKD = 'C105' OR
    * GS_EXCELTABLINE-KTOKD = 'C106' OR
    * GS_EXCELTABLINE-KTOKD = 'C107'.
    *
    * CLEAR: GST_KNVV.
    ** REFRESH: KNVV.
    * ELSE.
    * MOVE-CORRESPONDING GST_KNA1 TO GST_KNVV.
    * MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNVV.
    * ENDIF.
    MOVE-CORRESPONDING GST_KNA1 TO GST_KNVV.
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GST_KNVV.


    MOVE-CORRESPONDING GST_KNA1 TO GTI_XKNVK.
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GTI_XKNVK.
    APPEND GTI_XKNVK.

    * MOVE-CORRESPONDING GST_KNA1 TO T_XKNBK.
    * MOVE-CORRESPONDING GS_EXCELTABLINE TO T_XKNBK.
    * APPEND T_XKNBK.

    MOVE-CORRESPONDING GST_KNA1 TO GTI_XKNVP.
    MOVE-CORRESPONDING GS_EXCELTABLINE TO GTI_XKNVP.
    APPEND GTI_XKNVP.

    * MOVE-CORRESPONDING GST_KNA1 TO T_YKVVP.
    * MOVE-CORRESPONDING GS_EXCELTABLINE TO T_YKVVP.
    * APPEND T_YKVVP.

    CLEAR GTI_XKNVK.
    CLEAR GTI_XKNVP.
    CLEAR GTI_XKNBW.
    CLEAR GTI_XKNVI.
    REFRESH GTI_XKNVK.
    REFRESH GTI_XKNVP.
    REFRESH GTI_XKNBW.
    REFRESH GTI_XKNVI.

    SELECT SINGLE *
    FROM KNA1
    WHERE KUNNR = GST_KNA1-KUNNR.
    IF SY-SUBRC = 0.
    G_C_EXISTE = 'X'.
    GTI_XKNBW-KZ = 'U'.
    GTI_XKNVP-KZ = 'U'.
    GTI_XKNVI-KZ = 'U'.
    ELSE.
    G_C_EXISTE = ' '.
    GTI_XKNBW-KZ = 'I'.
    GTI_XKNVP-KZ = 'I'.
    GTI_XKNVI-KZ = 'I'.
    ENDIF.




    * IF NOT gs_exceltabline-witht0 IS INITIAL.
    * PERFORM indicadores USING GTI_XKNBW-kz
    * gs_exceltabline-bukrs
    * gs_exceltabline-kunnr
    * gs_exceltabline-witht0
    * gs_exceltabline-wt_withcd0
    * gs_exceltabline-wt_agent0
    * gs_exceltabline-wt_agtdf0
    * gs_exceltabline-wt_agtdt0.
    * ENDIF.
    IF NOT gs_exceltabline-witht_01 IS INITIAL.
    PERFORM indicadores USING GTI_XKNBW-kz
    gs_exceltabline-bukrs
    gs_exceltabline-kunnr
    gs_exceltabline-witht_01
    gs_exceltabline-wt_withcd_01
    gs_exceltabline-wt_agent_01
    gs_exceltabline-wt_agtdf_01
    gs_exceltabline-wt_agtdt_01.
    ENDIF.
    IF NOT gs_exceltabline-witht_02 IS INITIAL.
    PERFORM indicadores USING GTI_XKNBW-kz
    gs_exceltabline-bukrs
    gs_exceltabline-kunnr
    gs_exceltabline-witht_02
    gs_exceltabline-wt_withcd_02
    gs_exceltabline-wt_agent_02
    gs_exceltabline-wt_agtdf_02
    gs_exceltabline-wt_agtdt_02.
    ENDIF.
    IF NOT gs_exceltabline-witht_03 IS INITIAL.
    PERFORM indicadores USING GTI_XKNBW-kz
    gs_exceltabline-bukrs
    gs_exceltabline-kunnr
    gs_exceltabline-witht_03
    gs_exceltabline-wt_withcd_03
    gs_exceltabline-wt_agent_03
    gs_exceltabline-wt_agtdf_03
    gs_exceltabline-wt_agtdt_03.
    ENDIF.
    IF NOT gs_exceltabline-witht_04 IS INITIAL.
    PERFORM indicadores USING GTI_XKNBW-kz
    gs_exceltabline-bukrs
    gs_exceltabline-kunnr
    gs_exceltabline-witht_04
    gs_exceltabline-wt_withcd_04
    gs_exceltabline-wt_agent_04
    gs_exceltabline-wt_agtdf_04
    gs_exceltabline-wt_agtdt_04.
    ENDIF.


    IF gs_exceltabline-vkorg NE space AND " Organización de ventas
    gs_exceltabline-vtweg NE space. " Canal de distribución
    GTI_xknvi-kunnr = gs_exceltabline-kunnr.
    GTI_xknvi-aland = 'CO'. "gs_exceltabline-land1. " 'CO'. "gs_exceltabline-aland.
    GTI_xknvi-tatyp = 'MWST'."gs_exceltabline-tatyp.
    GTI_xknvi-taxkd = gs_exceltabline-taxkd.
    APPEND GTI_xknvi.
    ENDIF.
    *
    GTI_UPD_TXT-kunnr = gs_exceltabline-kunnr.
    * GTI_UPD_TXT-parnr = gs_exceltabline-parnr.
    GTI_UPD_TXT-bukrs = gs_exceltabline-bukrs.
    GTI_UPD_TXT-vkorg = gs_exceltabline-vkorg.
    GTI_UPD_TXT-vtweg = gs_exceltabline-vtweg.
    GTI_UPD_TXT-spart = gs_exceltabline-spart.
    GTI_UPD_TXT-upd_a = GTI_XKNBW-kz.
    GTI_UPD_TXT-upd_b = GTI_XKNBW-kz.
    GTI_UPD_TXT-upd_v = GTI_XKNBW-kz.
    GTI_UPD_TXT-upd_ap = GTI_XKNBW-kz.
    APPEND GTI_UPD_TXT.
    * move-corresponding gs_exceltabline to t_xknvd.
    * APPEND t_xknvd.
    MOVE-CORRESPONDING gs_exceltabline TO GST_BAPIADDR1.
    MOVE gs_exceltabline-name TO GST_BAPIADDR1-name. "Nombre 1
    * MOVE gs_exceltabline-c_o_name TO GST_BAPIADDR1-c_o_name. "Nombre 2
    MOVE gs_exceltabline-NAME3 to GST_BAPIADDR1-NAME_3. "nombre 3
    MOVE gs_exceltabline-NAME4 to GST_BAPIADDR1-NAME_4. "nombre 4
    MOVE gs_exceltabline-stras TO GST_BAPIADDR1-street. " Calle y nº
    MOVE gs_exceltabline-LAND1 TO GST_BAPIADDR1-country. " Pais
    MOVE gs_exceltabline-ORT01 TO GST_BAPIADDR1-city. " Población city_1
    MOVE gs_exceltabline-regio TO GST_BAPIADDR1-region. " Población city_1
    MOVE gs_exceltabline-SORT2 TO GST_BAPIADDR1-SORT2. "campo de ordenamiento 2
    * MOVE gs_exceltabline-land1 TO GST_BAPIADDR1-country. " Pais
    MOVE gs_exceltabline-spras TO GST_BAPIADDR1-langu. " Clave de idioma
    * MOVE gs_exceltabline-tel1_numbr TO GST_BAPIADDR1-tel1_numbr. " 1º número de teléfono
    * MOVE gs_exceltabline-tel1_ext TO GST_BAPIADDR1-tel1_ext. " Extensión1 C10 "se cambio a 6
    * MOVE gs_exceltabline-fax_extens TO GST_BAPIADDR1-fax_number. " Extension2
    * MOVE gs_exceltabline-telfx TO GST_BAPIADDR1-fax_extens. " Nº telefax
    MOVE gs_exceltabline-AD_SMTPADR TO GST_BAPIADDR1-e_mail. " Dirección de correo
    MOVE gs_exceltabline-DEFLT_COMM TO GST_BAPIADDR1-COMM_TYPE. " tipo comunicacíon.

    * CLEAR GST_BAPIADDR1-e_mail.
    MOVE-CORRESPONDING gs_exceltabline TO GST_BAPIADDR2.

    MOVE gs_exceltabline-anred TO GST_BAPIADDR2-title_p. "tratamiento
    MOVE gs_exceltabline-name1 TO GST_BAPIADDR2-lastname. " Nombre 1
    MOVE gs_exceltabline-stras TO GST_BAPIADDR2-street. " Calle y nº
    MOVE gs_exceltabline-LAND1 TO GST_BAPIADDR2-NAMCOUNTRY. " Pais
    MOVE gs_exceltabline-ort01 TO GST_BAPIADDR2-city. " Población city_1
    MOVE gs_exceltabline-name2 TO GST_BAPIADDR2-middlename. " Nombre 2
    MOVE gs_exceltabline-regio TO GST_BAPIADDR2-region. " Población city_1
    MOVE gs_exceltabline-telf1 TO GST_BAPIADDR2-tel1_numbr. " 1º número de teléfono.
    MOVE gs_exceltabline-BBBNR TO GST_BAPIADDR2-tel1_ext. " Extensión1 tel1.
    MOVE gs_exceltabline-telfx TO GST_BAPIADDR2-fax_number. " fax.
    MOVE gs_exceltabline-BBSNR TO GST_BAPIADDR2-fax_extens. " Extensión1 fax.
    MOVE gs_exceltabline-AD_SMTPADR TO GST_BAPIADDR2-e_mail. " Dirección de correo
    MOVE gs_exceltabline-land1 TO GST_BAPIADDR2-country. " Pais
    MOVE gs_exceltabline-spras TO GST_BAPIADDR2-langu_p. " Clave de idioma
    * MOVE gs_exceltabline-SORTL TO GST_BAPIADDR2-SORT1_P. " sort1.
    MOVE gs_exceltabline-SORT2 TO GST_BAPIADDR2-SORT2_P. " sort2.


    MOVE-CORRESPONDING GTI_UPD_TXT TO GST_BAPIADDR1.
    MOVE-CORRESPONDING GTI_UPD_TXT TO GST_BAPIADDR2.


    ENDFORM. " FILL_CUSTOMER




    *&---------------------------------------------------------------------*
    *& Form RUN_BAPI
    *&---------------------------------------------------------------------*
    * llamado a la bapi que actualiza la transacción
    *----------------------------------------------------------------------*
    * <--P_G_RC text
    *----------------------------------------------------------------------*
    FORM RUN_BAPI CHANGING FP_RC.

    * DATA: WA_ADR6 TYPE ADR6.

    CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
    EXPORTING
    I_KNA1 = GST_KNA1
    I_KNB1 = GST_KNB1
    I_KNVV = GST_KNVV
    I_BAPIADDR1 = GST_BAPIADDR1
    I_BAPIADDR2 = GST_BAPIADDR2
    I_MAINTAIN_ADDRESS_BY_KNA1 = ' '
    I_KNB1_REFERENCE = ' '
    I_FORCE_EXTERNAL_NUMBER_RANGE = ' '
    I_NO_BANK_MASTER_UPDATE = ' '
    I_CUSTOMER_IS_CONSUMER = ' '
    I_RAISE_NO_BTE = ' '
    PI_POSTFLAG = ' '
    PI_CAM_CHANGED = ' '
    PI_ADD_ON_DATA = GST_ADD_ON_DATA
    I_FROM_CUSTOMERMASTER = ' '
    IMPORTING
    E_KUNNR = GC_KUNNR
    O_KNA1 = GST_KNA2
    E_SD_CUST_1321_DONE = GC_SD_CUST_1321_DONE
    TABLES
    * T_XKNAS = GTI_XKNAS
    * T_XKNBK = GTI_XKNBK
    * T_XKNB5 = T_XKNB5
    * T_XKNEX = T_XKNEX
    * T_XKNVA = T_XKNVA
    * T_XKNVD = T_XKNVD
    T_XKNVI = GTI_XKNVI
    * T_XKNVK = T_XKNVK
    * T_XKNVL = T_XKNVL
    * T_XKNVP = T_XKNVP
    * T_XKNZA = T_XKNZA
    * T_YKNAS = T_YKNAS
    * T_YKNBK = T_YKNBK
    * T_YKNB5 = T_YKNB5
    * T_YKNEX = T_YKNEX
    * T_YKNVA = T_YKNVA
    * T_YKNVD = T_YKNVD
    * T_YKNVI = T_YKNVI
    * T_YKNVK = T_YKNVK
    * T_YKNVL = T_YKNVL
    * T_YKNVP = T_YKNVP
    * T_YKNZA = T_YKNZA
    * T_UPD_TXT = T_UPD_TXT
    EXCEPTIONS
    CLIENT_ERROR = 1
    KNA1_INCOMPLETE = 2
    KNB1_INCOMPLETE = 3
    KNB5_INCOMPLETE = 4
    KNVV_INCOMPLETE = 5
    KUNNR_NOT_UNIQUE = 6
    SALES_AREA_NOT_UNIQUE = 7
    SALES_AREA_NOT_VALID = 8
    INSERT_UPDATE_CONFLICT = 9
    NUMBER_ASSIGNMENT_ERROR = 10
    NUMBER_NOT_IN_RANGE = 11
    NUMBER_RANGE_NOT_EXTERN = 12
    NUMBER_RANGE_NOT_INTERN = 13
    ACCOUNT_GROUP_NOT_VALID = 14
    PARNR_INVALID = 15
    BANK_ADDRESS_INVALID = 16
    TAX_DATA_NOT_VALID = 17
    NO_AUTHORITY = 18
    COMPANY_CODE_NOT_UNIQUE = 19
    DUNNING_DATA_NOT_VALID = 20
    KNB1_REFERENCE_INVALID = 21
    CAM_ERROR = 22
    OTHERS = 23.

    IF SY-SUBRC <> 0.
    IF SY-SUBRC EQ 1.
    SY-MSGV3 = 'client_error'.
    ENDIF.
    IF SY-SUBRC EQ 2.
    SY-MSGV3 = 'kna1_incomplete'.
    ENDIF.
    IF SY-SUBRC EQ 3.
    SY-MSGV3 = 'knb1_incomplete'.
    ENDIF.
    IF SY-SUBRC EQ 4.
    SY-MSGV3 = 'knb5_incomplete'.
    ENDIF.
    IF SY-SUBRC EQ 5.
    SY-MSGV3 = 'knvv_incomplete'.
    ENDIF.
    IF SY-SUBRC EQ 6.
    SY-MSGV3 = 'kunnr_not_unique'.
    ENDIF.
    IF SY-SUBRC EQ 7.
    SY-MSGV3 = 'sales_area_not_unique'.
    ENDIF.
    IF SY-SUBRC EQ 8.
    SY-MSGV3 = 'sales_area_not_valid'.
    ENDIF.
    IF SY-SUBRC EQ 9.
    SY-MSGV3 = 'insert_update_conflict'.
    ENDIF.
    IF SY-SUBRC EQ 10.
    SY-MSGV3 = 'number_assignment_error'.
    ENDIF.
    IF SY-SUBRC EQ 11.
    SY-MSGV3 = 'number_not_in_range'.
    ENDIF.
    IF SY-SUBRC EQ 12.
    SY-MSGV3 = 'number_range_not_extern'.
    ENDIF.
    IF SY-SUBRC EQ 13.
    SY-MSGV3 = 'number_range_not_intern'.
    ENDIF.
    IF SY-SUBRC EQ 14.
    SY-MSGV3 = 'account_group_not_valid'.
    ENDIF.
    IF SY-SUBRC EQ 15.
    SY-MSGV3 = 'parnr_invalid'.
    ENDIF.
    IF SY-SUBRC EQ 16.
    SY-MSGV3 = 'bank_address_invalid'.
    ENDIF.
    IF SY-SUBRC EQ 17.
    SY-MSGV3 = 'tax_data_not_valid'.
    ENDIF.
    IF SY-SUBRC EQ 18.
    SY-MSGV3 = 'no_authority'.
    ENDIF.
    IF SY-SUBRC EQ 19.
    SY-MSGV3 = 'company_code_not_unique'.
    ENDIF.
    IF SY-SUBRC EQ 20.
    SY-MSGV3 = 'dunning_data_not_valid'.
    ENDIF.
    IF SY-SUBRC EQ 21.
    SY-MSGV3 = 'knb1_reference_invalid'.
    ENDIF.
    IF SY-SUBRC EQ 22.
    SY-MSGV3 = 'cam_error '.
    ENDIF.
    IF SY-SUBRC EQ 23.
    SY-MSGV3 = 'OTHERS'.
    ENDIF.

    FP_RC = SY-SUBRC.

    * muestra mensaje de error
    WRITE: / 'Error en Cliente'(074), GO_STCD1, '. Error'(075),
    SY-MSGID, SY-MSGNO, SY-MSGV1(20), SY-MSGV3(30), SY-MSGV4.
    ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'
    IMPORTING
    RETURN = GT_RETURN.
    SELECT SINGLE *
    FROM KNBW
    WHERE BUKRS = GS_EXCELTABLINE-BUKRS AND
    KUNNR = GC_KUNNR.
    IF SY-SUBRC <> 0.
    LOOP AT GTI_XKNBW.
    GTI_XKNBW-KUNNR = GC_KUNNR.
    MODIFY GTI_XKNBW.
    ENDLOOP.
    CALL FUNCTION 'FI_WT_CUSTOMER_UPDATE'
    TABLES
    T_XKNBW = GTI_XKNBW
    T_YKNBW = GTI_YKNBW.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'
    IMPORTING
    RETURN = GT_RETURN.
    ENDIF.
    *//consulta de cliente por nit, confirmación de existencia.
    IF NOT GO_STCD1 IS INITIAL.
    SELECT SINGLE KUNNR
    INTO GC_KUNNR
    FROM KNA1
    WHERE STCD1 = GO_STCD1.

    IF SY-SUBRC = 0.
    * //llamado de grabación para campos especiales.
    PERFORM ACTUALIZA_SUSTOMER.

    * //limpiamos las variables de cliente.
    CLEAR: GC_KUNNR, GO_STCD1.
    ENDIF.
    ENDIF.

    ENDIF.

    * verifica si hubo mensajes de error en la verificacion
    LOOP AT GT_RETURN WHERE TYPE EQ 'E' OR TYPE EQ 'A'.
    WRITE: / GT_RETURN-TYPE, GT_RETURN-MESSAGE.
    ENDLOOP.

    ENDFORM. " RUN_BAPI





    gracias a todo aquel o aquella que me pueda ayudar.

    saludos.
  • rubenl
    Member
    • oct
    • 38

    #2
    Hola,

    Por lo que se ve, esa BAPI es para crear al cliente (deudor) en todas sus vistas y la transaccion FD01 solo es para crear los datos a nivel company code, ese puede ser el problema. Espero sea de ayuda.

    Saludos...

    Comentario

    • DCErick
      Moderator
      • mar
      • 1090

      #3
      Esos campos son campos clave de la tabla KNVV, prueba llamando la BAPI sin pasarle la estructura KNVV.

      Código:
      I_KNVV = GST_KNVV
      Como ya dijeron, esta BAPI es para darle mantenimeinto a todas las vistas, en tu caso la estructura KNVV es del area de ventas y esos campos que te pide son obligatorios, en fin esa estructura es opcional entonces yo creo que no debe de tener problemas al no mandarla.
      -------------------
      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

      Comentario

      • shinharold
        Junior Member
        • jun
        • 15

        #4
        Señores, muchas gracias por sus respuestas.

        Rubenl, lo que dices es cierto, aunque revisando el programa de esa transacción encontre que si usa esta Bapi, y aun mas esta transacción actualiza casi todas las mismas tablas, excepto KNVV.

        DCerick, ya intente quitandole esa tabla y enviandola en blanco pero para el primer caso genrar el error 804 cam_error, y en la segunda genera un dump por ASSERT condition was violated


        me tiene pensando hacer a parte una grabación para esta transacción.

        quedo abierto a mas sugerencias y comentarios.

        saludos

        Harold Toro Henao

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Comentas que esa BAPI es usada en esa transacción, recomiendo que pongas un break point en donde es llamada la bapi, entres a la transacción llenes los datos y le des guardar así podras ver que datos son los necesarios para mandar llamar la BAPI
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          • mig.guilarte
            Junior Member
            • oct
            • 3

            #6
            Hola shinharold,

            Pudiste resolver usando esta función?? estoy en el mismo caso, yo probé y me dejo crear sin pasar por parametros la estructura KNVV.

            call function 'SD_CUSTOMER_MAINTAIN_ALL'
            exporting
            i_kna1 = i_kna1
            i_knb1 = i_knb1
            * I_KNVV =
            i_bapiaddr1 = addr1_data
            i_maintain_address_by_kna1 = 'X'
            pi_postflag = 'X'
            pi_cam_changed = 'X'
            importing
            e_kunnr = kunnr
            o_kna1 = kna1
            e_sd_cust_1321_done = e_sd_cust_1321_done
            exceptions
            client_error = 1
            kna1_incomplete = 2
            knb1_incomplete = 3
            knb5_incomplete = 4
            knvv_incomplete = 5
            kunnr_not_unique = 6
            sales_area_not_unique = 7
            sales_area_not_valid = 8
            insert_update_conflict = 9
            number_assignment_error = 10
            number_not_in_range = 11
            number_range_not_extern = 12
            number_range_not_intern = 13
            account_group_not_valid = 14
            parnr_invalid = 15
            bank_address_invalid = 16
            tax_data_not_valid = 17
            no_authority = 18
            company_code_not_unique = 19
            dunning_data_not_valid = 20
            knb1_reference_invalid = 21
            cam_error = 22
            others = 23
            .
            Saludos.
            ==Miguel==

            Comentario

            Trabajando...