cancel
Showing results for 
Search instead for 
Did you mean: 

Application Server para CDFi

johnatan_gomez
Contributor
0 Kudos

Hola!

Estoy revisando la nota 2000481 - [MX] Enhancements for Digital Fiscal Document (CFDi) - 4, aqui permite descargar los XML y subir los XML ya timbrados via un Application Server.

Hay una parte de las instrucciones pre implementacion que dice:

"Use the option “Assignment of Physical Paths to Logical Path“ in transaction FILE to make the

required assignment of a physical path for each logical path. You can use transaction SF01 to

maintain client-specific logical file names. For further information about this topic, refer to the

documentation in the Implementation Guide (IMG) under the path "SAP NetWeaver -> Application

Server -> System administration -> Platform-Independent File Names".

Obs: You must assign a physical path to the logical path in order to be able to save files in

the application server."

Alguien ha configurado esto que me pueda enviar un screenshot?

Que transacciones usa el usuario de nómina para descargar/subir los xml al Application Server?

Gracias!

Johnatan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola Jonhatan:

Adjunto pantalla de configuracion en la transaccion FILE para el parrafo que indicas de la nota

2000481. Esto es según el sistema operativo que maneja tu servidor de aplicacion (en mi caso es Linux).

La transaccion que usan los usuarios para crear los XML en el servidor de aplicacion es la estandard PC00_M32_CFDIM con el parametro de entrada  <Grabar en el servidor de aplicacion>. 

En la trasaccion FILE asignas el path donde se alojaran los XML  /public/CFDI/ y la variable <FILENAME> toma el nombre de archivo que crea PC00_M32_CFDIM (ver pantalla de configuracion anexa). 

Posteriormente puedes visualizar los archivos creados en el servidor de aplicacion en la AL11.

Hay opciones para hacer download a PC pero es uno a uno.

En nuestro caso, una vez que los archivos XML están en el servidor de aplicación, los toma SAP PI y los envia al servidor del PAC. Me imagino que si quieres recuperar los archivos del servidor de aplicación deberías escribir tus propios programas Z*

Saludos

Juan Carlos

Former Member
0 Kudos

Que tal Juan Carlos, sabes si es posible condicionar el directorio? si es de cierta sociedad que se vaya a un directorio, si es otra sociedad al segundo directorio.

Former Member
0 Kudos

Hola Jose Angel:

Por lo que veo el Logical Path: HR_MX_DEFAULT_PATH donde escribe

el programa RPCPAYMX_CFDI_MANAGER es fijo y la asignacion del

physical file es de uno a uno.

Sin embargo, puedes darle la vuelta cambiando el nombre del archivo en el

método CHANGE_XML_FILENAME y después a nivel de sistema operativo

tener scripts que separen los archivos en directorios diferentes corriendo

cada 5 o diez minutos.

En nuestro caso, se forma el nombre del archivo por payroll area, período y tipo de

nomina, posteriormente lo puedes separar del directorio origen sensando las dos primeras posiciones que traen el Área de nómina.

mi código en el badi es:

method IF_HRPAYMX_CFDI~CHANGE_XML_FILENAME.

* Author:  Juan Carlos Martinez Olaya            20140408

  data: vc_xfield01(50) value '(RPCPAYMX_CFDI_MANAGER)P_OCRSN',

        vc_xfield21(50) value '(RPCPAYMX_CFDI_MANAGER)P_PAYTY',

        vc_xfield31(50) value '(RPCPAYMX_CFDI_MANAGER)P_PAYID',

        vc_xfield41(50) value '(RPCPAYMX_CFDI_MANAGER)P_BONDT',

        vc_xfield51(50) value '(RPCPAYMX_CFDI_MANAGER)PNPXABKR',

        vc_xfield61(50) value '(RPCPAYMX_CFDI_MANAGER)PNPPABRJ',

        vc_xfield71(50) value '(RPCPAYMX_CFDI_MANAGER)PNPPABRP',

        vc_xfield81(50) value '(RPCPAYMX_CFDI_MANAGER)PNPDISPJ',

        vc_xfield91(50) value '(RPCPAYMX_CFDI_MANAGER)PNPDISPP',

  field-symbols: <F_OCRSN> type      PC261-OCRSN,

                 <F_PAYTY> type      PC261-PAYTY,

                 <F_PAYID> type      PC261-PAYID,

                 <F_BONDT> type      PC261-BONDT,

                 <F_PNPXABKR> type   PNPXABKR,

                 <F_PNPPABRJ> type   PNPPABRJ,

                 <F_PNPPABRP> type   PNPPABRP,

                 <F_PNPDISPJ> type   PNPPABRJ,

                 <F_PNPDISPP> type   PNPPABRP.

DATA lc_payid(1).

  IF CL_PNPXABKR IS INITIAL.

          assign (vc_xfield01) to <F_OCRSN>.

          assign (vc_xfield21) to <F_PAYTY>.

          assign (vc_xfield31) to <F_PAYID>.

          assign (vc_xfield41) to <F_BONDT>.

          assign (vc_xfield51) to <F_PNPXABKR>.

          assign (vc_xfield61) to <F_PNPPABRJ>.

          assign (vc_xfield71) to <F_PNPPABRP>.

          assign (vc_xfield81) to <F_PNPDISPJ>.

          assign (vc_xfield91) to <F_PNPDISPP>.

      IF SY-SUBRC = 0.

          CL_OCRSN    = <F_OCRSN>.

          CL_PAYTY    = <F_PAYTY>.

          CL_PAYID    = <F_PAYID>.

          CL_BONDT    = <F_BONDT>.

          CL_PNPXABKR = <F_PNPXABKR>.

          CL_PNPPABRJ = <F_PNPPABRJ>.

          CL_PNPPABRP = <F_PNPPABRP>.

          CL_PNPDISPJ = <F_PNPDISPJ>.

          CL_PNPDISPP = <F_PNPDISPP>.

      ENDIF.

  ENDIF.

  if CL_OCRSN is initial and CL_PAYTY is initial and CL_PAYID is initial.

     if CL_PNPPABRP  is initial and CL_pnppabrj is initial.

        concatenate CL_PNPXABKR CL_PNPDISPJ CL_PNPDISPP '-' Cv_xml_name into cv_xml_name.

     else.

        concatenate CL_PNPXABKR CL_pnppabrj CL_PNPPABRP '-' Cv_xml_name into cv_xml_name.

     endif.

  else.

       move LC_PAYID to lc_payid.

       if lc_payid = ' '.

          lc_payid = '0'.

       endif.

       concatenate CL_PNPXABKR CL_BONDT '-' CL_OCRSN CL_PAYTY lc_payid  '-' Cv_xml_name into cv_xml_name.

   endif.

endmethod.

Los campos CL_* son atributos creados adicionalmente en la clase ZHRPAYMX_CFDI_CLASS de implementacion del metodo.

Espero te sirva

Juan Carlos

Answers (0)