Hola tengo problemas para facturar un material, al parecer al principio el usuario le colocó un numero de carte porte al material, y cada que se intenta facturar manda error de “para posicion 000010 existen datos erróneos para fecha y número de pedimento” esto sería tema de ABAP y que se podría hacer?
Hola, podrías por favor hacerle doble clic al error en SAP? Se te abrirá una ventana con texto en SAP, copia el texto y pega todo el texto aquí a ver de qué se trata
Hola,
Es un mensaje Z, probablemente hay una exit en donde se hagan validaciones, y se te lance ese mensaje, pero desde aqui, mucho no podemos saber que es lo que pasa.
Lo único que te puedo recomendar es si te vas a la SE91, pones la clase de mensaje (ZIDMX) y el número (026), y le haces una referencia de utilización al mismo con el botón , ahi puedas encontrar el código en donde se esté haciendo la validación.
Saludos.
No sé que parte de “copiar y pegar texto” no se entendió, las personas siguen haciendo capturas de pantalla de algo que es TEXTO
Nº mensaje: ZIDMX 026
Es un mensaje Zeta, como dice @sconoredhot.
Es una validación zeta, o un error que un abaper generó por algo. Eso sí tenes que verlo con un abaper de tu empresa.
Muchas gracias, haré lo que comentas y por lo pronto no tenemos abaper, así que veré la forma de resolverlo jaja, si puedo les digo que hice
Bueno, en ese caso, la otra opción es…
Cuando vas a grabar… antes le das al ‘/H’ para debuguear…
Ni bien comienza, te vas a breakpoints… --> breakpoint at statement --> y te aparece un pop-up en donde escribes ‘message’.
Le das F8. Te va a parar en un montón de mensajes que no significan nada, hasta que llegues al mensaje que nos mostraste. Luego es cuestión de revisar el porqué se ejecuta ese mensaje.
Saludos.
ok sconoredhot, ya encontré el mensaje, su pongo que si ese este? pero el código no le entiendo muy bien
Si, tiene toda la pinta de que es ese.
Habría que ver el código que está arriba de los IF SY-SUBRC, para ver que hace.
Si puedes pega el texto del código, a ver si podemos deducir que hace, ya que no tienes un abap que pueda revisarlo.
OK va mm como puedo copiarte el código? ya que solo me selecciona lo que está dentro de los corchetes.
SI ya encontré la forma aquí va:
METHOD if_idmx_di_sddata_det~get_line_item_customs.
***********************************************************************
* BADI name: IDMX_DI_SDDATA_DET
* Program author: José Maria Vega Ramos, MEXabat
* Program spec: Obtención de los pedimentos de una factura
************************************************************************
* CHANGE LOG: *
* DATE CHANGED BY TRANSPORT DESCRIPTION *
* 24/08/2015 JVEGA CDEK929163 Desarrollo inicial *
************************************************************************
CHECK sy-tcode EQ 'VF01'.
DATA:
lt_complemento_1 TYPE ztcfdi_pedimentos,
lt_complemento_2 TYPE ztcfdi_pedimentos,
ls_item_customs TYPE idmx_di_item_customs_typ,
lv_function TYPE res150.
FIELD-SYMBOLS:
<ls_xvbrp> TYPE vbrpvb,
<ls_complemento> TYPE zcfdi_pedimentos.
* Se revisa si la combinacion sociedad-clase de documento
* tiene disponible la funcionalidad de obtener sus pedimentos
* De ser posible entonces se obtiene la función que deberá
* usarse para realizar la tarea de obtener los pedimentos.
CALL FUNCTION 'ZCFDICMP_CHECK_VALIDITY'
EXPORTING
iv_bukrs = is_xvbrk-bukrs
iv_fkart = is_xvbrk-fkart
IMPORTING
ev_function = lv_function
EXCEPTIONS
sociedad_no_es_valida = 1
OTHERS = 2.
CHECK sy-subrc EQ 0.
* Se extraen los pedimentos dada una factura, la posicion de
* esa factura y el material contenido en esa posición.
LOOP AT it_xvbrp ASSIGNING <ls_xvbrp>.
* Función para movimientos 101 y lectura de tabla zsd_carini_ped
CALL FUNCTION lv_function
EXPORTING
iv_vbeln = <ls_xvbrp>-vbeln
iv_posnr = <ls_xvbrp>-posnr
iv_vgbel = <ls_xvbrp>-vgbel
iv_vgpos = <ls_xvbrp>-vgpos
iv_matnr = <ls_xvbrp>-matnr
IMPORTING
et_complemento = lt_complemento_1
EXCEPTIONS
no_se_encontraron_nseries = 1
no_se_encontraron_materiales = 2
no_llave_para_busqueda_doc = 3
no_se_encontraron_docs_mov = 5
no_hay_docs_mat_p_procesar = 6
proveedor_nacional = 7
no_se_encontraron_pedimentos = 8
OTHERS = 9.
IF sy-subrc <> 0.
IF sy-subrc EQ 8.
* En pos. &1 de la factura, no existen pedimentos!
MESSAGE w026(zidmx) WITH <ls_xvbrp>-posnr .
LEAVE TO TRANSACTION sy-tcode.
ENDIF.
ELSE.
APPEND LINES OF lt_complemento_1 TO lt_complemento_2.
ENDIF.
FREE: lt_complemento_1.
ENDLOOP.
CHECK NOT lt_complemento_2[] IS INITIAL.
* Se inicializa la salida de CUSTOMS.
DELETE ct_item_customs WHERE vbeln <> ''.
LOOP AT lt_complemento_2 ASSIGNING <ls_complemento>.
* Adicionalmente se haran verificaciones de la información
* primeramente se implementa la de revisar que la fecha
* capturada este en el formato correcto.
CALL FUNCTION 'ZCFDICMP_CHECK_PEDIMENTO'
EXPORTING
iv_complemento = <ls_complemento>
EXCEPTIONS
fecha_nula = 1
fecha_con_formato_inadecuado = 2
OTHERS = 3.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN '1'.
* La pos. &1 de la factura, la fecha del pedimento es nula!
MESSAGE w027(zidmx) WITH <ls_complemento>-posnr.
LEAVE TO TRANSACTION sy-tcode.
WHEN '2'.
* La pos. &1 de la factura, la fecha del pedimento es
* erronea!
MESSAGE w028(zidmx) WITH <ls_complemento>-posnr.
LEAVE TO TRANSACTION sy-tcode.
ENDCASE.
ELSE.
MOVE:<ls_complemento>-vbeln TO ls_item_customs-vbeln,
<ls_complemento>-posnr TO ls_item_customs-posnr,
<ls_complemento>-frbnr TO ls_item_customs-customs_doc_nr,
'.' TO ls_item_customs-customs_office.
CONCATENATE <ls_complemento>-xabln+6(4)
<ls_complemento>-xabln+3(2)
<ls_complemento>-xabln(2)
INTO ls_item_customs-customs_doc_date.
APPEND ls_item_customs TO ct_item_customs.
CLEAR ls_item_customs.
ENDIF.
ENDLOOP.
ENDMETHOD.
Bueno, ahi me vas a tener que disculpar, pero todo lo que te pueda decir no te va a ayudar o te va a desorientar, ya que es un proceso Z propio de tu empresa.
Fijate que antes del mensaje llama a CALL FUNCTION ‘ZCFDICMP_CHECK_VALIDITY’ que es una funcion Z, y luego esa funcion devuelve otra función probablemente también Z en la variable lv_function que se llama después en CALL FUNCTION lv_function.
Para llegar al mensaje veo que el sy-subrc le devolvió 8, que significa ‘no_se_encontraron_pedimentos = 8’, pero para ver bien que está pasando, vas a tener que debuguear toda la exit en detalle.
Saludos,
Sebastián
Ok no te preocupes, ya es un buen avance, puedo yo hacer modificaciones en el proceso o en la función? te comento el funcional para poder grabar tiene que hacer actulización desde la sm30 a la tabla zsd_carini_ped así ya se graba el factura
Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.