on 08-12-2014 9:54 AM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.