PDA

Ver la Versión Completa : Crear Horario Evento...Infotipo 1035


kilofafeure
27/08/09, 11:43:40
Buenas, estoy creando una aplicación de tal manera que los empleados puedan introducir unos datos y así crear unos cursos (eventos) despues de la comprobacion de los superiores. Pues bien, las comprobaciones de los superiores las hace correctamente mediante un WF, pero a la hora de crear el curso me surgen los problemas. Creo correctamente los objetos D - E - P (HRP1000, el D cuelga de un L ) así como las relaciones entre ellos (HRP1001). También creo y enlazo correctamente el infotipo 1026 . El problema surge a la hora de crear el infotipo 1035 para los horarios. Estoy utilizando este código:


CONSTANTS: c_update(4) VALUE 'INSE'.
DATA: pplog_tab LIKE pplog OCCURS 0 WITH HEADER LINE.
DATA: lv_fcode LIKE hrrhap-fcode,
lv_subrc LIKE sy-subrc,
g_subrc LIKE sy-subrc.

CLEAR: lv_subrc, g_subrc.
* Se crean cada uno de los objetos
LOOP AT p_object.

REFRESH pplog_tab.
CLEAR pplog_tab.
pplog_tab = p_object.
APPEND pplog_tab.

MOVE c_update TO lv_fcode.

PERFORM insert_infty(sapfh5ap) USING lv_fcode
pplog_tab
'B'
lv_subrc.
g_subrc = lv_subrc.
* Si existe algún error no se crean los enlaces
IF g_subrc EQ 0.
PERFORM update_plog(sapfh5ap).
PERFORM clear_buffer(sapfh5ap).
PERFORM clear_plog_tab(sapfh5ap).
ENDIF.

ENDLOOP.


El código funciona correctamente porqué es el que utilizo para el 1026. El problema viene porqué cuando accede a insert_infty(sapfh5ap) una de las comprobaciones que hace es: IF NOT PPPBAR-TBTAB IS INITIAL ... y resulta que no es inicial, ya que lo que hace es acceder a la tabla T777D al campo TBTAB y el valor que tiene es HRT1035. He mirado esta tabla y contiene el campo TABNR que a su vez existe en la HRP1035. Supongo que el problema es que debo crear antes el valor en la HRT1035 de manera que se inserte en la HRP1035. El problema es que no se como hacer esto. Además cuando creo el infotipo tampoco lo puedo hacer, ya que no existe tal campo y además "creo" que lo pone el sistema (adjunto código):


*&---------------------------------------------------------------------*
*& Form CREAR_1035
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_OBJECTE text
*----------------------------------------------------------------------*
FORM crear_1035 TABLES p_object STRUCTURE p1001
p_object1035 STRUCTURE p1035
USING ndays nhours.

CLEAR: p_object1035, p_object1035[].

LOOP AT p_object.
p_object1035-mandt = sy-mandt.
p_object1035-uname = sy-uname.
p_object1035-aedtm = sy-datum.
p_object1035-plvar = '01'.
p_object1035-infty = '1035'.
p_object1035-otype = p_object-otype.
p_object1035-objid = p_object-objid.
p_object1035-istat = '1'.
p_object1035-begda = p_object-begda.
p_object1035-endda = p_object-endda.
p_object1035-ndays = ndays.
p_object1035-nhours = nhours.
ENDLOOP.

APPEND p_object1035.

ENDFORM. " CREAR_1035


¿Sabe alguien como debería hacer para poder crear horarios mediante código? y ya de paso...¿debería crear también el infotipo 1042? Espero me puedan ayudar.

Muchas gracias!