|
#1
|
|||
|
|||
ayy Balan gracias por responder.
Fijate, estoy en la SE19 con ME_PROCESS_REQ_CUS, justo en el método PROCESS_ITEM, pero creo que lo que estaba tratando de hacer de capturar los datos no era posible, y asi como tu dice, debo utilizar los métodos que me permita la implementación. Con el ejemplo de las líneas de código que me distes, logré algo, lo que no termino es de como hacer para crear los datos de una nueva linea, me arroja un dump " OBJECTS_OBJREF_NOT_ASSIGNED_NO" justo aca lo_item->set_data( ls_item ). No se si este usando mal los método y estoy ( al crear el objeto y al colocarle los datos ( digo en el set_data) )
__________________
Saludos, tgfch Úlima edición por tgfch fecha: 08/06/09 a las 13:10:07. |
#2
|
|||
|
|||
Te paso un ejemplo de como hacer que cuando modifiques un campo de una posicion de solped te cree una posicion nueva como copia
El codigo tendrias que ponerlo en el metodo process_item y tendras que meterlo dentro de alguna condicion porque sino va a entrar en un bucle infinito ya que al modificar una posicion creara otra como copia, al crear otra como copia volvera a saltar el process_item y se volvera a crear otra como copia... La idea es que veas como hacerlo En el metodo process_item podrias hacer esto DATA: lo_header TYPE REF TO if_purchase_requisition, lo_item TYPE REF TO if_purchase_requisition_item. data: ls_item type mereq_item, ls_itemx type mereq_itemx. *Aqui obtengo el objeto cabecera de la solicitud de pedido lo_header = im_item->get_requisition( ). *Aqui creo una nueva posicion como copia de otra existente lo_item = lo_header->create_item( im_item = im_item ). *Si quisiera crearla en blanco lo_item = lo_header->create_item( ). ls_item = lo_item->get_data( ). ls_itemx = lo_item->get_datax( ). ls_item-menge = 69. ls_itemx-menge = 'X'. lo_item->set_data( im_data = ls_item ). lo_item->set_datax( im_datax = ls_itemx ). |
#3
|
|||
|
|||
Ballan, mil gracias
Y te envio mis disculpas, he estado trabajando con el código, pero tal como tu dices, he tratado de colocar condiciones para que se regrese a la transacción y no me funciona. Estas líneas las tengo comentadas: esto debe ser así.
__________________
Saludos, tgfch |
#4
|
|||
|
|||
Por ejemplo para salir lo que podrias hacer es:
data: lv_salir. data: lc_id type char20 value 'IDMEMORIA'. *Supongamos que estamos en el process_item import p1 = lv_salir from memory id lc_id if not lv_salir is initial. exit. else. *aqui iria el codigo para crear la nueva posicion mediante metodos lv_salir = 'X'. export p1 = lv_salir to memory id lc_id. endif. |
#5
|
|||
|
|||
ballan MUCHISIMAS GRACIAS por tu gran ayuda, con las líneas de código pude realizar lo que necesitaba, aca las coloco:
Espero que sea de ayuda.
__________________
Saludos, tgfch |
Herramientas | Buscar en Tema |
Desplegado | |
|
|