#3
|
|||
|
|||
Disculpen me comí el nombre de la bapi, todo funciona perfecto hasta que por ejemplo me salta alguna validación en el cuerpo de la BAPI, entonces por mas q la corrija es como que queda en un estado en q no me permite seguir y no me reinicia el estado interno de la transacción, acá va el procedimiento
FORM persistirMovimiento. DATA: posActual TYPE I, e_Error like bapiret2, mensage TYPE STRING, loc_e_lineas LIKE e_LINEA_DOCU , loc_e_serials LIKE e_nrosDeSerie , sel_rows TYPE lvc_t_roid, sel_row TYPE lvc_s_roid, e_serial LIKE e_LINEA_SERIAL . REFRESH sel_rows. CLEAR sel_row. IF e_LINEAS IS INITIAL. MESSAGE ID 'ZMIGO_EXCEPCIONES' TYPE 'S' NUMBER '002'. EXIT. ENDIF. posActual = 0. CLEAR t_mensages. CLEAR l_goodsmvt_header. l_goodsmvt_header-pstng_date = FE_FECHACONT. l_goodsmvt_header-doc_date = FE_DOCUMENTO . l_goodsmvt_header-pr_uname = sy-uname. l_goodsmvt_header-header_txt = TXT_TEXTOCAB. l_goodsmvt_header-ref_doc_no = ''. * Tipo de movimiento l_goodsmvt_code = '01'. * Posiciones CLEAR i_goodsmvt_item. * recorro cada linea del pedido LOOP AT e_LINEAS INTO loc_e_lineas. * verifico si se encuentra marcado como OK IF loc_e_lineas-OK = 'X'. CLEAR loc_e_serials. posActual = posActual + 1. cantRecepcionada = 0. loc_e_serials = loc_e_lineas-NROS . DESCRIBE TABLE loc_e_serials. cantRecepcionada = SY-TFILL. i_goodsmvt_item-plant = TXT_IDCENTRO . i_goodsmvt_item-stge_loc = loc_e_lineas-ALMAC. i_goodsmvt_item-VENDOR = loc_e_lineas-NROPRO. i_goodsmvt_item-move_type = TXT_IDMOV . i_goodsmvt_item-MVT_IND = 'B'. i_goodsmvt_item-PO_NUMBER = loc_e_lineas-NROPO. i_goodsmvt_item-po_item = loc_e_lineas-POSPO. i_goodsmvt_item-ENTRY_QNT = cantRecepcionada . APPEND i_goodsmvt_item. * Numeros de serie LOOP AT loc_e_serials INTO e_serial. i_goodsmvt_serial-MATDOC_ITM = posActual. i_goodsmvt_serial-SERIALNO = e_serial-NRO. append i_goodsmvt_serial. ENDLOOP. ENDIF. ENDLOOP. IF posActual = 0. MESSAGE ID 'ZMIGO_EXCEPCIONES' TYPE 'S' NUMBER '010'. EXIT. ENDIF. CLEAR i_return. * Persistencia del documento de ingreso CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = l_goodsmvt_header goodsmvt_code = l_goodsmvt_code testrun = '' IMPORTING goodsmvt_headret = l_goodsmvt_headret materialdocument = l_materialdocument matdocumentyear = l_matdocumentyear TABLES goodsmvt_item = i_goodsmvt_item GOODSMVT_SERIALNUMBER = i_goodsmvt_serial return = i_return . break-point. IF SY-SUBRC = 0. describe table i_return lines sy-tfill. append i_return to t_mensages. IF i_return-TYPE <> 'E'. if sy-tfill = 0. COMMIT WORK. MESSAGE ID 'ZMIGO_EXCEPCIONES' TYPE 'S' NUMBER '006' WITH l_materialdocument. PERFORM reiniciarMovimiento. endif. ELSE. CALL SCREEN 001 starting at 15 10 ENDING AT 70 15 . ENDIF. ENDIF. ENDFORM. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|