Ver Mensaje Individual
  #2  
Viejo 01/08/08, 18:25:19
Avatar de Edd_401
Edd_401 Edd_401 is offline
Senior Member
 
Fecha de Ingreso: may 2007
Mensajes: 119
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'.
Responder Con Cita