Facturacion vf01

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 :stuck_out_tongue:

Hola SidV me manda este error:

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.

1 me gusta

No sé que parte de “copiar y pegar texto” no se entendió, las personas siguen haciendo capturas de pantalla de algo que es TEXTO :angry:

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.

1 me gusta

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.

No entendi, el código se puede copiar tranquilamente, con el mouse lo seleccionas asi:

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

1 me gusta

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.