|
#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. |
#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'. |
#3
|
|||
|
|||
Uso de esta bapi.
Saludos! me podrian ayudar por favor con un ejemplo simple para agregar un cliente nuevo usando esta bapi??
|
#4
|
||||
|
||||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|