Sd_customer_maintain_all

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • koli
    Junior Member
    • nov
    • 2

    #1

    Sd_customer_maintain_all

    hola,

    alguien podria decirme como usar la bapi SD_CUSTOMER_MAINTAIN_ALL
    para que me modifique los datos de un registro, por ejemplo, los datos de tipo bancario.

    he mirado en la transaccion BAPI pero no no he encontrado documentacion acerca de esta bapi.

    Gracias.
  • Edd_401
    Senior Member
    • may
    • 119

    #2
    Bapi

    Esta es la bapi, todo lo que tienes que hacer es pasarle los datos:
    Espero te sirva el ejemplo....

    En este ejemplo de un cliente existente se modfifican sus datos GENERALES y los datoa para FI.

    SALUDOS

    *Llenando TI_KNA1.
    CLEAR TI_KNA1.

    MOVE-CORRESPONDING DATA_CUSTOMER TO TI_KNA1.

    IF NOT DATA_CUSTOMER-SORTL IS INITIAL.
    TI_KNA1-SORTL = DATA_CUSTOMER-SORTL.
    ELSE.
    TI_KNA1-SORTL = 'PV'.
    ENDIF.

    TI_KNA1-KTOKD = 'SA00'.
    TI_KNA1-SPRAS = SY-LANGU.
    TI_KNA1-MCOD1 = DATA_CUSTOMER-NAME1.
    TI_KNA1-MCOD2 = DATA_CUSTOMER-NAME2.
    TI_KNA1-MCOD3 = DATA_CUSTOMER-ORT01.
    TEL2 = DATA_CUSTOMER-TELF2.
    MAIL = DATA_CUSTOMER-KNURL.
    INTERLOC = DATA_CUSTOMER-INTERLOC.
    * TI_KNA1-WERKS = W_WERKS.
    *Llenando TI_KNB1.
    CLEAR TI_KNB1.
    TI_KNB1-BUKRS = SOC.
    TI_KNB1-ZUAWA = '001'.
    TI_KNB1-AKONT = '0000121000'.
    TI_KNB1-ZTERM = 'SA00'.
    TI_KNB1-FDGRV = 'E1'.

    *Llenando TI_KNVV.
    CLEAR TI_KNVV.
    TI_KNVV-VKORG = W_VKORG.
    TI_KNVV-VTWEG = '01'. "Venta directa
    TI_KNVV-SPART = '04'. "Servicio
    TI_KNVV-KALKS = '1'. "Grupo std del cliente
    TI_KNVV-PLTYP = '05'. "Cliente normal
    TI_KNVV-AWAHR = '100'.
    TI_KNVV-ANTLF = '9'.
    TI_KNVV-KZAZU = 'X'. "Agrupamiento
    TI_KNVV-VSBED = '01'. "Estandar
    TI_KNVV-WAERS = 'MXN'. "Moneda
    TI_KNVV-KTGRD = '01'. "Ingresos nacional
    TI_KNVV-ZTERM = 'SA00'. "Grupo de cuentas
    TI_KNVV-KVGR1 = '1'. "Grupo
    TI_KNVV-VWERK = W_WERKS.

    *Impuestos
    TT_XKNVI-ALAND = 'MX'.
    TT_XKNVI-TATYP = 'MWST'.
    TT_XKNVI-TAXKD = '1'.
    APPEND TT_XKNVI.
    TT_XKNVI-ALAND = 'MX'.
    TT_XKNVI-TATYP = 'ZMPV'.
    TT_XKNVI-TAXKD = '1'.
    APPEND TT_XKNVI.
    TT_XKNVI-ALAND = 'MX'.
    TT_XKNVI-TATYP = 'ZMWS'.
    TT_XKNVI-TAXKD = '1'.
    APPEND TT_XKNVI.
    TT_XKNVI-ALAND = 'MX'.
    TT_XKNVI-TATYP = 'ZTIP'.
    TT_XKNVI-TAXKD = '1'.
    APPEND TT_XKNVI.

    *Llenando ADRN (Direccion).
    CLEAR: TI_BAPPIADDR1.
    TI_BAPPIADDR1-NAME = DATA_CUSTOMER-NAME1.
    TI_BAPPIADDR1-NAME_2 = DATA_CUSTOMER-NAME2.
    TI_BAPPIADDR1-NAME_3 = DATA_CUSTOMER-NAME3.
    TI_BAPPIADDR1-NAME_4 = DATA_CUSTOMER-NAME4.
    TI_BAPPIADDR1-CITY = DATA_CUSTOMER-ORT01.
    TI_BAPPIADDR1-POSTL_COD1 = DATA_CUSTOMER-PSTLZ.
    TI_BAPPIADDR1-STREET = DATA_CUSTOMER-STRAS.
    TI_BAPPIADDR1-STR_SUPPL1 = DATA_CUSTOMER-STR_SUPPL1. "COLONIA
    TI_BAPPIADDR1-STR_SUPPL2 = DATA_CUSTOMER-STR_SUPPL2.
    TI_BAPPIADDR1-COUNTRY = DATA_CUSTOMER-LAND1.
    TI_BAPPIADDR1-LANGU = SY-LANGU.
    TI_BAPPIADDR1-REGION = DATA_CUSTOMER-REGIO.

    IF NOT DATA_CUSTOMER-SORTL IS INITIAL.
    TI_BAPPIADDR1-SORT1 = DATA_CUSTOMER-SORTL.
    ELSE.
    TI_BAPPIADDR1-SORT1 = 'PV'.
    ENDIF.
    TI_BAPPIADDR1-TEL1_NUMBR = DATA_CUSTOMER-TELF1.
    TI_BAPPIADDR1-C_O_NAME = 'POSTVENTA'.

    *Creando Cliente para PV
    CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
    EXPORTING
    I_KNA1 = TI_KNA1
    I_KNB1 = TI_KNB1
    I_KNVV = TI_KNVV
    I_BAPIADDR1 = TI_BAPPIADDR1
    I_MAINTAIN_ADDRESS_BY_KNA1 = 'X'
    PI_POSTFLAG = 'X'
    IMPORTING
    E_KUNNR = V_KUNNR
    TABLES
    T_XKNVI = TT_XKNVI
    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.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'.
    Sapero prodigio ! ! !

    Comentario

    • Cristofer Valdez
      Junior Member
      • may
      • 15

      #3
      Uso de esta bapi.

      Saludos! me podrian ayudar por favor con un ejemplo simple para agregar un cliente nuevo usando esta bapi??

      Comentario

      • Drako
        Member
        • nov
        • 60

        #4
        Originalmente publicado por Cristofer Valdez
        Saludos! me podrian ayudar por favor con un ejemplo simple para agregar un cliente nuevo usando esta bapi??
        Tal vez ya no ayude pero aun asi lo dejo por si a alguien mas le sirve, yo use este metodo..

        DATA: w_address TYPE bapikna101,
        w_copyref TYPE bapikna102,
        w_ret TYPE bapireturn,
        g_new_clte TYPE kunnr.

        w_address-name = 'NOMBRE'.
        w_address-street = 'CALLE'.
        w_address-postl_code = 'codigo_postal'.
        w_address-city = 'municipio'.
        w_address-region = 'region/ESTADO'.
        w_address-country = 'PAIS'.
        w_address-countryiso = 'MX'.
        w_address-langu = 'ES'.

        w_copyref-distr_chan = 'Z1'.
        w_copyref-division = 'Z1'.
        w_copyref-salesorg = '0083'.
        w_copyref-ref_custmr = '0301126007'.

        *BREAK-POINT.
        CALL FUNCTION 'BAPI_CUSTOMER_CREATEFROMDATA'
        EXPORTING
        pi_address = w_address
        pi_copyreference = w_copyref
        IMPORTING
        * CUSTOMERNO =
        pe_customer = g_new_clte
        return = w_ret.
        IF g_new_clte IS NOT INITIAL.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
        wait = abap_on.
        ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        ENDIF.
        Drako

        Comentario

        Trabajando...