Generar fichero retenciones desde S_P00_07000134

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • carolyn
    Junior Member
    • nov
    • 3

    #1

    Generar fichero retenciones desde S_P00_07000134

    Hola,

    Tenemos una duda en cuanto a las retenciones. Utilizamos la transacción S_P00_07000134 y necesitamos obtener los ficheros de los impuestos anuales para cargarlos en los programas de Hacienda. Ya lo hemos parametrizado para poder generar el fichero en el pc, pero ¿cómo podemos conseguir el formato adecuado? ¿Hay que desarrollarlo?

    Muchas gracias!!!!!!
  • andgarage
    Senior Member
    • ene
    • 248

    #2
    en que pais estas???
    el que nombras es el generico

    Comentario

    • rochoa
      Junior Member
      • jun
      • 23

      #3
      S_P00_07000134 - Declaración fiscal (general)

      Buenas Tardes!!

      Chic@s, les escribo porque en el cliente solicitaron que al ejecutar la tx S_P00_07000134 para generar los certificados de retención, este se envíe de forma automática al correo que tiene registrado el auxiliar en su dato maestro. Es decir, que una vez se genere en real el comprobante este se convierta en un archivo (puede ser PDF) y SAP de forma automática lo envíe como adjunto al correo electrónico del auxiliar.

      Conocerán de alguna ampliación o cualquier otra herramienta que pueda emplear para dar solución a dicha solicitud??

      Datos de interés:
      - País: Venezuela
      - Release: 5.0

      Espero sus comentarios.

      Comentario

      • luzdacaru
        Junior Member
        • abr
        • 1

        #4
        Hola rochoa.

        Buscando en la web encontre tu post, en estos momentos estoy atendiendo una solicitud parecida a la señalada por ti, solo que se debe enviar masivo (por lote) a cada uno de los clientes de la empresa. Lograste encontrar la ampliación que buscabas?

        Comentario

        • rochoa
          Junior Member
          • jun
          • 23

          #5
          Originalmente publicado por luzdacaru
          Hola rochoa.

          Buscando en la web encontre tu post, en estos momentos estoy atendiendo una solicitud parecida a la señalada por ti, solo que se debe enviar masivo (por lote) a cada uno de los clientes de la empresa. Lograste encontrar la ampliación que buscabas?
          Buen Día,

          Nosotros resolvimos de la siguiente forma:

          - Se debe tener activo el envío de Correos desde SAP a direecciones externas (SapConnect), esto se valida con un BASIS.

          - El usuario SAP que va a realizar el envío de correos debe tener en sus datos de Usuarios (tx:SU01) el correo electrónico que el sistema va a considerar como la dirección que envía el email (DE).

          - Los acreedores en su dato maestro (FK03) deben tener actualizada una dirección de correo electrónico que va a recibir el email.

          - El ABAP creó un punto de ampliación dentro del include LFQSRTOOLF05 y luego dentro de este punto de ampliación creó un include llamado z_GENPDFEMAIL y colocó este código:


          *&---------------------------------------------------------------------*
          *& Include Z_GENPDFEMAIL
          *&---------------------------------------------------------------------*

          data: lt_adr6 TYPE TABLE OF adr6,
          lt_lfa1 TYPE TABLE OF lfa1,
          lt_partner TYPE ty_idwtpartner,
          lt_fidoc TYPE ty_idwtfidoc,
          lr_lifnr TYPE RANGE OF lifnr,
          lv_email TYPE AD_SMTPADR,
          lt_usr21 TYPE usr21.

          DATA: w_output_options TYPE ssfcompop,
          w_control_parameters TYPE ssfctrlop,
          w_job_output_info TYPE ssfcrescl,
          w_job_output_options TYPE ssfcresop,
          w_spoolid LIKE LINE OF w_job_output_info-spoolids,
          w_src_spoolid LIKE tsp01-rqident,
          w_pdf_bytecount TYPE i,
          w_pdf_spoolid LIKE tsp01-rqident,
          w_otf_pagecount TYPE i,
          w_btc_jobname TYPE tbtcjob-jobname,
          w_btc_jobcount TYPE tbtcjob-jobcount,
          t_pdf LIKE tline OCCURS 0 WITH HEADER LINE,
          w_document_output_info TYPE ssfcrespd.

          DATA: w_document_data LIKE sodocchgi1,
          w_sender_address LIKE soextreci1-receiver,
          w_sender_address_type LIKE soextreci1-adr_typ,
          t_contents_txt LIKE solisti1 OCCURS 0
          WITH HEADER LINE,
          t_contents_bin LIKE solisti1 OCCURS 0
          WITH HEADER LINE,
          t_packing_list LIKE sopcklsti1 OCCURS 0
          WITH HEADER LINE,
          t_receivers LIKE somlreci1 OCCURS 0
          WITH HEADER LINE.

          DATA: gd_buffer TYPE string.

          FIELD-SYMBOLS: <partner> TYPE LINE OF ty_idwtpartner,
          <partner2> TYPE LINE OF ty_idwtpartner,
          <fidoc> TYPE LINE OF ty_idwtfidoc,
          <fidoc2> TYPE LINE OF ty_idwtfidoc,
          <adr6> TYPE adr6,
          <wr_lifnr> LIKE LINE OF lr_lifnr,
          <lfa1> TYPE lfa1,
          <compcd> LIKE LINE OF p_compcd.
          break abap02.
          CHECK sy-ucomm EQ 'PRNT'.

          SELECT *
          FROM adr6
          INTO TABLE lt_adr6
          FOR ALL ENTRIES IN p_partner
          WHERE addrnumber EQ p_partner-addrnumber
          AND flgdefault EQ 'X'.
          LOOP AT p_partner ASSIGNING <partner>.
          APPEND INITIAL LINE TO lr_lifnr ASSIGNING <wr_lifnr>.
          <wr_lifnr>-sign = 'I'.
          <wr_lifnr>-option = 'EQ'.
          <wr_lifnr>-low = <partner>-partnerno.
          <wr_lifnr>-high = ''.
          ENDLOOP.
          SELECT *
          FROM lfa1
          INTO TABLE lt_lfa1
          WHERE lifnr in lr_lifnr.

          LOOP AT p_partner ASSIGNING <partner>.
          REFRESH: lt_partner, lt_fidoc, t_packing_list,
          t_contents_bin, t_contents_txt, t_receivers.
          APPEND INITIAL LINE TO lt_partner ASSIGNING <partner2>.
          MOVE-CORRESPONDING <partner> TO <partner2>.

          LOOP AT p_fidoc ASSIGNING <fidoc> WHERE partnerno EQ <partner>-partnerno.
          APPEND INITIAL LINE TO lt_fidoc ASSIGNING <fidoc2>.
          MOVE-CORRESPONDING <fidoc> TO <fidoc2>.
          ENDLOOP.

          w_output_options-tddest = 'LP01'. "Device Name
          w_output_options-tdnewid = 'X'. "New Spool
          w_output_options-tdimmed = ''. "Print Immediately
          w_control_parameters-no_dialog = 'X'.
          CALL FUNCTION h_fmname
          EXPORTING
          * archive_index =
          * archive_parameters =
          control_parameters = w_control_parameters
          * mail_appl_obj =
          * mail_recipient =
          * mail_sender =
          output_options = w_output_options
          user_settings = ' '
          wtinterfaceall = h_interfaceall
          wtinterfaceform = h_interfaceform
          importing document_output_info = w_document_output_info
          job_output_info = w_job_output_info
          job_output_options = w_job_output_options
          TABLES wtcompcd = p_compcd
          wtpartner = lt_partner
          wtfidoc = lt_fidoc
          EXCEPTIONS formatting_error = 1
          internal_error = 2
          send_error = 3
          user_canceled = 4
          OTHERS = 5.
          IF sy-subrc <> 0.
          * get the detailed error list for smart forms
          wa_formname = h_formname.
          CALL FUNCTION 'SSF_READ_ERRORS'
          IMPORTING
          errortab = it_errorlist.

          * error handling
          PERFORM exception_set TABLES p_error[]
          USING '1'
          p_glob
          CHANGING p_exception.
          ELSE.
          LOOP AT w_job_output_info-spoolids INTO w_spoolid.
          w_src_spoolid = w_spoolid.
          EXIT.
          ENDLOOP.
          CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
          EXPORTING
          src_spoolid = w_src_spoolid

          IMPORTING
          pdf_bytecount = w_pdf_bytecount
          pdf_spoolid = w_pdf_spoolid
          otf_pagecount = w_otf_pagecount

          btc_jobname = w_btc_jobname
          btc_jobcount = w_btc_jobcount
          TABLES
          pdf = t_pdf
          EXCEPTIONS
          err_no_otf_spooljob = 1

          err_no_spooljob = 2
          err_no_permission = 3
          err_conv_not_possible = 4
          err_bad_dstdevice = 5

          user_cancelled = 6
          err_spoolerror = 7
          err_temseerror = 8
          err_btcjob_open_failed = 9
          err_btcjob_submit_failed = 10
          err_btcjob_close_failed = 11
          OTHERS = 12.
          IF sy-subrc <> 0.
          ENDIF.

          ***JMCR: Se prepara y envía en Correo
          w_document_data-obj_name = 'DOMIC'.

          READ TABLE lt_lfa1 ASSIGNING <lfa1> WITH KEY lifnr = <partner>-partnerno.
          IF sy-subrc EQ 0.
          CONCATENATE 'Comp. Ret. ISLR' <lfa1>-name1 INTO w_document_data-obj_descr
          SEPARATED BY space.
          ENDIF.

          w_document_data-obj_langu = sy-langu.
          t_contents_txt-line = 'Estimado proveedor,'.
          APPEND t_contents_txt.
          READ TABLE p_compcd ASSIGNING <compcd> INDEX 1.
          IF sy-subrc EQ 0.
          CONCATENATE 'Adjunto enviamos los comprobantes de retención de' <compcd>-butxt
          INTO t_contents_txt-line SEPARATED BY space.
          ENDIF.
          APPEND t_contents_txt.


          DATA: tot_line TYPE i.
          DESCRIBE TABLE t_contents_txt LINES tot_line.

          t_packing_list-transf_bin = ' '.
          t_packing_list-head_start = '000000000000001'.
          t_packing_list-head_num = '000000000000000'.
          t_packing_list-body_start = '000000000000001'.
          t_packing_list-body_num = tot_line.

          t_packing_list-doc_type = 'RAW'.
          t_packing_list-obj_descr = space.
          APPEND t_packing_list.

          LOOP AT t_pdf.
          TRANSLATE t_pdf USING ' ~'.
          CONCATENATE gd_buffer t_pdf INTO gd_buffer.
          ENDLOOP.
          TRANSLATE gd_buffer USING '~ '.
          DO.
          t_contents_bin = gd_buffer.
          APPEND t_contents_bin.
          SHIFT gd_buffer LEFT BY 255 PLACES.
          IF gd_buffer IS INITIAL.
          EXIT.
          ENDIF.
          ENDDO.

          CLEAR tot_line.
          DESCRIBE TABLE t_contents_bin LINES tot_line.


          t_packing_list-transf_bin = 'X'.
          t_packing_list-head_start = '000000000000001'.
          t_packing_list-head_num = '000000000000001'.
          t_packing_list-body_start = '000000000000001'.
          t_packing_list-body_num = tot_line.

          t_packing_list-doc_type = 'PDF'.
          t_packing_list-obj_descr = H_INTERFACEFORM. "p_anexo Nomb. del Anexo
          t_packing_list-doc_size = w_pdf_bytecount.
          APPEND t_packing_list.

          READ TABLE lt_adr6 ASSIGNING <adr6> WITH KEY addrnumber = <partner>-addrnumber.
          IF sy-subrc EQ 0.


          t_receivers-receiver = <adr6>-smtp_addr.

          t_receivers-rec_type = 'U'.
          t_receivers-com_type = 'INT'.
          t_receivers-notif_del = 'X'.
          APPEND t_receivers.


          SELECT SINGLE *
          FROM usr21
          INTO lt_usr21
          WHERE bname EQ sy-uname.
          IF sy-subrc EQ 0.
          SELECT SINGLE smtp_addr
          FROM adr6
          INTO lv_email
          WHERE addrnumber EQ lt_usr21-addrnumber
          AND persnumber EQ lt_usr21-persnumber
          AND flgdefault EQ 'X'.
          ENDIF.


          w_sender_address = lv_email.
          w_sender_address_type = 'INT'.

          * ** Envío de Mail

          CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
          EXPORTING
          document_data = w_document_data
          put_in_outbox = 'X'
          sender_address = w_sender_address
          sender_address_type = w_sender_address_type
          commit_work = 'X'
          TABLES

          packing_list = t_packing_list
          contents_bin = t_contents_bin
          contents_txt = t_contents_txt
          receivers = t_receivers
          EXCEPTIONS
          too_many_receivers = 1
          document_not_sent = 2
          document_type_not_exist = 3
          operation_no_authorization = 4
          parameter_error = 5
          x_error = 6
          enqueue_error = 7
          OTHERS = 8.
          IF sy-subrc EQ 0.
          SUBMIT rsconn01
          WITH mode EQ 'INT'
          AND RETURN.

          WAIT UP TO 2 SECONDS.
          ENDIF.
          ENDIF.
          ENDIF.

          ENDLOOP.


          Espero te sirva de ayuda.

          Comentario

          • CarmenRosa
            Junior Member
            • abr
            • 11

            #6
            Envío de retención al contabilizar la factura

            Hola rochoa,

            Me puedes indicar exactamente que haces con esa ampliación?, en la empresa donde me encuentro quieren que se envíe de manera automática el certificado de retención una vez se contabiliza la factura, pero creo que esto que ofreces podría funcionar aquí.

            ¿Como ejecutan el envío del comprobante?


            Saludos y gracias!

            Comentario

            • johnc46
              Member
              • mar
              • 48

              #7
              Hola a todos!!!
              Tengo un requerimiento similar. Como han resuelto el tema?
              Gracias por sus respuestas.

              Comentario

              • hjqr
                Junior Member
                • ago
                • 13

                #8
                Enviar Email desde S_P00_07000134

                Hola ajohnc46
                En un cliente esta aplicado tal como lo indica rochoa,

                SE19
                Implementación: Z02_EMAIL
                ABAP Report: Z02_GENPDFEMAIL

                Grupo de Funciones SAPLFQSRTOOL
                include lfqsrtoolf05.

                Linea 222
                enhancement 1 z02_email. "active version
                include z02_genpdfemail.
                endenhancement.

                El Código de z02_genpdfemail te lo puedo facilitar.

                El caso es que el envió se activa al darle al botón imprimir de la pantalla estándar de SAP. El Cliente quiere ser mas especifico. Si encuentra otra manera por favor escribelo.
                Henry José
                San Cristóbal, Venezuela

                Comentario

                • johnc46
                  Member
                  • mar
                  • 48

                  #9
                  Hola.
                  Gracias por la respuesta.

                  Tengo otra duda, se genera la orden de spool con varias páginas.
                  Existe alguna manera de seleccionar alguna de las páginas de la orden de spool, convertirla en pdf y enviarla por correo electrónico?

                  Gracias

                  Comentario

                  • hjqr
                    Junior Member
                    • ago
                    • 13

                    #10
                    tx S_P00_07000134 Badi Envio de Correo

                    Hola johnc46.

                    Te refieres a hacer eso en la misma transacción, la S_P00_07000134 ?, o desde un desarrollo Z. . La solución que damos la convierte en PDF y la envía por email.
                    Henry José
                    San Cristóbal, Venezuela

                    Comentario

                    • johnc46
                      Member
                      • mar
                      • 48

                      #11
                      Hola.
                      Desde un Z, que genere la orden de spool y la envíe vía correo electrónico a los proveedores.

                      Comentario

                      Trabajando...