MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 15/01/09, 00:22:25
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
Unhappy BAPI_COMMIT_WORK no borra memoria de la BAPI URGE!!!!1



hOLA,

Uso 'bapi_price_conditions'
para modificar REGISTROS DE CONDICIONES en SD.
Tengo que modificar muchos en un mismo porgrama...

EL CASO es que meto un registro a la BAPI...
HAGO EL COMMIT WORK ( function BAPI_TRANSACTION_COMMIT)
Y al meter una serie de registros me explota en DUMP por unA VARIABLE
que guada un OFFSET...
No se me borran las variables ni las tablas de la memoria, osea al llamar a la BAPI DE nuevo me doy cuenta que los objetos del grupo de funciones que llama la BAPI NO ESTAN INICIADOS...

ALGUIEN SABE ALGUN TRUCO PARA ESTO???
gracias de antemano... pego algo de codigo a ver si ayuda

******************************************
loop at KONV_H where VBELN = TABLA_ALV-VBELN
and KNUMH = TABLA_ALV-KNUMH.

perform BAPI_CONDICIONES tables IT_RET2.
if IT_RET2[] is not INITIAL.
read table IT_RET2 with key TYPE = 'E' transporting no fields.

if SY-SUBRC = 0.
else.
*********************************************************************************
** Hemos comprobado dentro de esta condición el cambio de fecha en
**condiciones
** para saber si informarlo en el mensaje y tambien, actualizamos tabla, para
** mostrarla en la pantalla siguiente, correctamente

call function 'BAPI_TRANSACTION_COMMIT'
*EXPORTING
* WAIT = 5
importing
RETURN = WA_RET2.
endif.
clear: IT_RET2. refresh: IT_RET2.

endif.


*&---------------------------------------------------------------------*
*& Form BAPI_CONDICIONES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form BAPI_CONDICIONES tables IT_RET2." CHANGING IT_RET2.
*____________________________________________________________________*
* ESTRUCTURAS PARA LA BAPI DE ACTUALIZCION Y CRACCION CONDICIONES PRECIO*
*====================================================================*
*VAROABLES
* DATA SELECCION(2) TYPE C.
* DATA T_SELECCION(15) TYPE C.
* DATA: ESCALAS(13) TYPE C.
* DATA: CANTIDAD(13) TYPE C.
* DATA: UNIDADES(6) TYPE C.
data: POS type I.
* T_POS(02) TYPE C.
* DATA: T_KSTBM(15) TYPE C,
* T_KBETR(15) TYPE C,
* T_KONMS(15) TYPE C.
*
data: TABLA(3) type C.
* DATA: c_varkey(100) TYPE C.

* DATA COPY_SYTABIX LIKE SY-TABIX.
*--------------------------------------------------------------------*
* structures
data: WA_CONDCT type BAPICONDCT.
data: WA_CONDHD type BAPICONDHD.
data: WA_CONDIT type BAPICONDIT.
data: WA_CONDQS type BAPICONDQS.
data: WA_CONDVS type BAPICONDVS.
data: WA_RET2 type BAPIRET2.
data: WA_KNUMHS type BAPIKNUMHS.
data: WA_MEM_INITIAL type CND_MEM_INITIAL.

data: IT_CONDCT type table of BAPICONDCT.
data: IT_CONDHD type table of BAPICONDHD.
data: IT_CONDIT type table of BAPICONDIT.
data: IT_CONDQS type table of BAPICONDQS.
data: IT_CONDVS type table of BAPICONDVS.
* data: IT_RET2 type table of BAPIRET2.
data: IT_KNUMHS type table of BAPIKNUMHS.
data: IT_MEM_INITIAL type table of CND_MEM_INITIAL.

data: OPERACION(3) type C, "'009'.
NREGISTRO like VBAK-KNUMV."ZESTTAR-KNUMH. " '$000000001'.

data: KONV_H_M type standard table of KONM with header line.

NREGISTRO = KONV_H-KNUMH. "TARIFAS-KNUMV EN MM Y TABLA_ALV-KNUMV EN SD.

*****************
*TABLA IT_CONDCT.*" TI_BAPICONDCT STRUCTURE BAPICONDCT
*A965 ö A598
*****************
*nota:
*operacion:
*004 = modificar
*009 = crear


WA_CONDCT-OPERATION = '004'."OPERACION.
WA_CONDCT-COND_NO = NREGISTRO.
WA_CONDCT-TABLE_NO = KONV_H-KOTABNR."KNUMH. "tabla ESTABA EN
WA_CONDCT-APPLICATIO = KONV_H-KAPPL. "V PARA SD; M EN MM.
WA_CONDCT-COND_TYPE = KONV_H-KSCHL. "'ZCS0'.
WA_CONDCT-COND_USAGE = KONV_H-KVEWE. "'A'.
WA_CONDCT-VARKEY = KONV_H-VAKEY. "c_varkey.
WA_CONDCT-VALID_FROM = KONV_H-KOTABNR_DATAB. "'20091101'.
WA_CONDCT-VALID_TO = TABLA_ALV-VENDDAT. "KONV_H-DATBI. "'
append WA_CONDCT to IT_CONDCT.
*____________________________________________________________________*
*****************
*" TI_BAPICONDHD STRUCTURE BAPICONDHD
*KONH
*****************
WA_CONDHD-OPERATION = '004'.
WA_CONDHD-COND_NO = NREGISTRO.
WA_CONDHD-SD_DOC = KONV_H-VBELN.
WA_CONDHD-ITM_NUMBER = KONV_H-KPOSN.
WA_CONDHD-CREATED_BY = SY-UNAME.
WA_CONDHD-CREAT_DATE = SY-DATUM.
WA_CONDHD-COND_USAGE = KONV_H-KVEWE. "'A'. "si es 'E' crea una WA_CONDHD-TABLE_NO = KONV_H-
WA_CONDHD-APPLICATIO = KONV_H-KAPPL. "'M'.
WA_CONDHD-VARKEY = KONV_H-VAKEY. " c_varkey.

WA_CONDHD-VALID_TO = TABLA_ALV-VENDDAT."KONV_H-DATBI
WA_CONDHD-VALID_FROM = KONV_H-DATAB. "'20091101'.
*READ TABLE I_KONDAT WITH key VBELN = TABLA_ALV-VBELN.
*indice = sy-tabix.
*if sy-SUBRC = 0.
WA_CONDHD-COND_TYPE = KONV_H-KSCHL. "'ZCS0'.
*endif. "'ZSC0'.
append WA_CONDHD to IT_CONDHD.


case KONV_H-KSCHL.
when 'ZXL1'.
**********************
*" TI_BAPICONDIT STRUCTURE BAPICONDIT
**********************
WA_CONDIT-OPERATION = '004'. "023 los datos no se han de importar.'"OPERACION.
WA_CONDIT-COND_NO = NREGISTRO.
WA_CONDIT-SD_DOC = KONV_H-VBELN.
WA_CONDIT-ITM_NUMBER = KONV_H-KPOSN.
WA_CONDIT-COND_COUNT = KONV_H-KOPOS. "'01'.
WA_CONDIT-APPLICATIO = KONV_H-KAPPL."'M'.
WA_CONDIT-COND_TYPE = KONV_H-KSCHL. "'ZSC0'.
WA_CONDIT-SCALETYPE = KONV_H-KNPRS."'A'. "Clase de escala
WA_CONDIT-SCALEBASIN = KONV_H-KZBZG. "'C'. "Indicador:
WA_CONDIT-SCALE_QTY = KONV_H-KPEIN. "I_TARIFAS-
WA_CONDIT-COND_P_UNT = KONV_H-KPEIN. "I_TARIFAS-
WA_CONDIT-COND_UNIT = KONV_H-KMEIN. "Unidad de medida
WA_CONDIT-CALCTYPCON = KONV_H-KRECH. "'C'. "Regla de
WA_CONDIT-COND_VALUE = KONV_H-KBETR. "Importe de moneda
WA_CONDIT-CONDCURR = KONV_H-WAERS. "Unidad de


append WA_CONDIT to IT_CONDIT.


when 'ZXP1'.

select * into corresponding fields of table KONV_H_M
from KONM
for all entries in KONV_H
where KNUMH = KONV_H-KNUMH
and KNUMH = NREGISTRO."NREGISTRO.
delete adjacent duplicates from KONV_H_M.

WA_CONDIT-OPERATION = '004'. "023 los datos no se han de imp
WA_CONDIT-COND_NO = NREGISTRO.
WA_CONDIT-SD_DOC = KONV_H-VBELN.
WA_CONDIT-ITM_NUMBER = KONV_H-KPOSN.
WA_CONDIT-COND_COUNT = KONV_H-KOPOS. "'01'.
WA_CONDIT-APPLICATIO = KONV_H-KAPPL."'M'.
WA_CONDIT-COND_TYPE = KONV_H-KSCHL. "'ZSC0'.
WA_CONDIT-SCALETYPE = KONV_H-KZBZG."'B'. "Clase de e
WA_CONDIT-SCALEBASIN = KONV_H-KNPRS."'C'. "Indicador:

WA_CONDIT-SCALE_QTY = KONV_H-KSTBM. "KONV_H-KPEIN. "Cantidad
WA_CONDIT-COND_P_UNT = KONV_H-KPEIN. "
WA_CONDIT-COND_UNIT = KONV_H-KMEIN. "Unidad de medida
WA_CONDIT-CALCTYPCON = KONV_H-KRECH. "'C'. "Regla de
WA_CONDIT-COND_VALUE = KONV_H-KBETR. "Importe de moneda
WA_CONDIT-CONDCURR = 'EUR'."KONV_H_M-KONWA.

append WA_CONDIT to IT_CONDIT.

POS = 1.
****************
*SORT I_TARIFAS BY NTARIFA ASCENDING.
* Estructura BAPI de KONM con nombres de campo en inglés
****************
clear: KONV_H_M.
loop at KONV_H_M. " where KOPOS <> 1.
*" TI_BAPICONDQS STRUCTURE BAPICONDQS
WA_CONDQS-OPERATION = '004'."OPERACION."con '005' funciona bien.
WA_CONDQS-SD_DOC = KONV_H-VBELN. "'$000000001'. "documento
WA_CONDQS-ITM_NUMBER = KONV_H-KPOSN. "10.
WA_CONDQS-COND_NO = NREGISTRO. "Nº registro condición
WA_CONDQS-COND_COUNT = KONV_H_M-KOPOS.
WA_CONDQS-LINE_NO = KONV_H_M-KLFN1. "
WA_CONDQS-SCALE_QTY = KONV_H_M-KSTBM."100000. "Cantidad de la condición de base de escala
WA_CONDQS-COND_UNIT = 'M3'.

WA_CONDQS-CURRENCY = KONV_H_M-KBETR.
WA_CONDQS-CONDCURR = 'EUR'. " KONV_H-KONWA.
append WA_CONDQS to IT_CONDQS.

add 1 to POS.

clear: KONV_H_M.
endloop.
clear: KONV_H_M. refresh: KONV_H_M.
endcase.


data: IS_CRMSFK like BAPICRMSFK.
concatenate
WA_CONDCT-COND_USAGE "KONV_H-KVEWE
WA_CONDCT-COND_NO " NREGISTRO
'01'"WA_CONDCT-
KONV_H-DATBI " WA_CONDCT-VALID_TO
into IS_CRMSFK-SFA_KEY_P.

* MOVE WA_CONDCT-VARKEY TO is_crmsfk-SFA_KEY_P.
move WA_CONDCT-COND_NO to IS_CRMSFK-LINE_NO."NREGISTRO

BREAK SE04524.

call function 'CND_MAP_KNUMH_EXTRACT_MAPPING'
exporting
PI_BAPICRMSFK = IS_CRMSFK.

call function 'CND_MAP_KNUMH_OLD_SET'
exporting
PI_KVEWE = WA_CONDCT-COND_USAGE
PI_KNUMH_TMP = WA_CONDCT-COND_NO
PI_DATBI = KONV_H-KOTABNR_DATBI.

call function 'CND_MAP_KNUMH_READ_DB'.

call function 'BAPI_PRICES_CONDITIONS'
* EXPORTING
* PI_initialmode = 'X'
* PI_BLOCKNUMBER =
tables
TI_BAPICONDCT = IT_CONDCT
TI_BAPICONDHD = IT_CONDHD
TI_BAPICONDIT = IT_CONDIT
TI_BAPICONDQS = IT_CONDQS
TI_BAPICONDVS = IT_CONDVS
TO_BAPIRET2 = IT_RET2 "it_ret2
TO_BAPIKNUMHS = IT_KNUMHS
TO_MEM_INITIAL = IT_MEM_INITIAL
exceptions
UPDATE_ERROR = 1
others = 2.
Responder Con Cita
  #2  
Viejo 06/08/09, 16:34:08
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
Que onda brother!, oye pues yo estoy implementando esa bapi y ya la tengo casi lista, pero tengo una preguntota, este campo: COND_NO que es el N° de registro de la condicón pues como lo obtienes? lo que pasa es que supuestamente se tiene que crear al crear el registro, o sea que se tiene que dejar en blanco para que se genere, pero si lo dejo en blanco no me crea nada! en cambio si le pongo un valor si m crea el registro...
Bueno esa es mi duda, gracias de antemano.
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #3  
Viejo 29/08/11, 13:54:48
sanchezgc sanchezgc is offline
Junior Member
 
Fecha de Ingreso: mar 2008
Mensajes: 9
Intenta meter en un include zupdate.

la sentencia set update task local.

Colocala el include antes o despues de la bapi. pruebalo a mi me funcionó.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 17:20:44.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web