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 03/06/08, 15:22:57
javibest javibest is offline
Senior Member
 
Fecha de Ingreso: ene 2007
Mensajes: 185
Modificar campo BSEG-XREF3

Hola.

Estoy intentando modificar un documento contable, con las funciones
'CHANGE_DOCUMENT'
'CHANGEDOCUMENT_OPEN'
'CHANGEDOCUMENT_SINGLE_CASE'
'CHANGEDOCUMENT_CLOSE'

pero la verdad es que no consigo que las funciones me hagan nada.

Alguien conoce estas funciones ?



**************************************************
FORM grabar_documento USING p_cadena.

DATA : objectid LIKE cdhdr-objectid,
ld_belnr(10).

DATA: bkpf_old LIKE bkpf,
bkpf_new LIKE bkpf.

DATA : wa_bseg_old LIKE bseg,
wa_bseg_new LIKE bseg.

DATA: v_bkdf LIKE bkdf OCCURS 0 WITH HEADER LINE,
v_bkpf LIKE bkpf OCCURS 0 WITH HEADER LINE,
v_bsec LIKE bsec OCCURS 0 WITH HEADER LINE,
v_bsed LIKE bsed OCCURS 0 WITH HEADER LINE,
v_bseg LIKE bseg OCCURS 0 WITH HEADER LINE,
v_bset LIKE bset OCCURS 0 WITH HEADER LINE.


READ TABLE it_bkpf INTO wa_bkpf INDEX 1.
READ TABLE it_bseg INTO wa_bseg WITH KEY koart = 'K'.

MOVE-CORRESPONDING wa_bkpf TO v_bkpf.
APPEND v_bkpf.

MOVE-CORRESPONDING wa_bseg TO v_bseg.
MOVE-CORRESPONDING wa_bseg TO wa_bseg_old.

v_bseg-xref3 = p_cadena.

MOVE-CORRESPONDING v_bseg TO wa_bseg_new.
APPEND v_bseg.


CALL FUNCTION 'CHANGE_DOCUMENT'
TABLES
t_bkdf = v_bkdf
t_bkpf = v_bkpf
t_bsec = v_bsec
t_bsed = v_bsed
t_bseg = v_bseg
t_bset = v_bset.


CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_bkpf-belnr
IMPORTING
output = ld_belnr.

CONCATENATE sy-mandt wa_bkpf-bukrs
ld_belnr
wa_bkpf-gjahr
INTO objectid.

*- Creamos el documento de modificacion

CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
EXPORTING
objectclass = 'BELEG '
objectid = objectid
planned_change_number = ' '
EXCEPTIONS
sequence_invalid = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e002(sy) WITH text-005.
ENDIF.

bkpf_new = wa_bkpf.
bkpf_old = wa_bkpf.

*- Modificamos la bkpf
CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE'
EXPORTING
change_indicator = 'U'
docu_delete = 'X'
tablename = 'BKPF '
workarea_new = bkpf_new
workarea_old = bkpf_old
EXCEPTIONS
nametab_error = 1
open_missing = 2
position_insert_failed = 3
OTHERS = 4.

IF sy-subrc <> 0.
MESSAGE e002(sy) WITH text-004.
ENDIF.



CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE'
EXPORTING
change_indicator = 'U'
docu_delete = 'X'
tablename = 'BSEG '
workarea_new = wa_bseg_new
workarea_old = wa_bseg_old
EXCEPTIONS
nametab_error = 1
open_missing = 2
position_insert_failed = 3
OTHERS = 4.

IF sy-subrc <> 0.
MESSAGE e002(sy) WITH text-004.
ENDIF.



CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
EXPORTING
date_of_change = sy-datum
objectclass = 'BELEG '
objectid = objectid
tcode = 'FB03'
time_of_change = sy-uzeit
username = sy-uname
object_change_indicator = 'U'
EXCEPTIONS
header_insert_failed = 1
no_position_inserted = 2
object_invalid = 3
open_missing = 4
position_insert_failed = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE e002(sy) WITH text-006.
ENDIF.
Responder Con Cita
  #2  
Viejo 03/06/08, 22:45:16
ibecerra
 
Mensajes: n/a
q tal mira, yo he trabajdo con la funcion

CALL FUNCTION 'CHANGE_DOCUMENT'
TABLES
T_BKDF = TI_BKDF
T_BKPF = TI_BKPF
T_BSEC = TI_BSEC
T_BSED = TI_BSED
T_BSEG = TI_BSEG
T_BSET = TI_BSET.

y me funciona bien..
ahora las tablas q deben estar llenas son la T_BKPF y la T_BSEG
Saludos
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 03:13:38.


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