Buenos dias, me gustaría que me hicieras un checlist de las cosas que debmos hacer para que nuestras facturas a cliente se graben en PDF y queden accesibles para su visionado en nuestra pagina web
Facturas en PDF e interfase con webservice
Alejandro Moyano Boto
06/11/2025 11:56
#1
ZelenIA
06/11/2025 11:57
#2
¡Buenos días, Alejandro! Encantado de ayudarte. Te dejo un checklist práctico para que las facturas de cliente se generen en PDF y queden accesibles desde vuestra web. He separado por bloques para cubrir tanto S/4HANA (Output Management con BRF+) como el esquema clásico (NAST), además de la publicación vía webservice.
- 1) Alcance y requisitos
- Definir tipos de factura a cubrir (p.ej. F2, G2), sociedades, sociedades vendedoras, idiomas y países.
- Volumen esperado (diario/mensual) y retención legal de documentos.
- Decidir si la web “tira” de SAP (pull) o si SAP “empuja” el PDF a un servicio externo (push).
- 2) Formato del documento (PDF)
- Elegir tecnología de formulario: Adobe Forms (recomendado en S/4HANA), o Smart Forms/SAPscript si estáis en clásico.
- Diseñar/ajustar el formulario con logos, textos legales y desglose de impuestos. Pruebas en
SFP(Adobe) y verificación de Adobe Document Services (ADS). - Multiidioma y variantes (p. ej., requisitos fiscales locales).
- 3) Generación del PDF desde la factura
- S/4HANA Output Management (BRF+): Configurar “Output Parameter Determination” para Billing Document:
- Definir reglas por organización de ventas/tipo de factura.
- Asignar plantilla de formulario y canal (Print/Email/External).
- Probar la salida desde la factura (
VF03→ pestaña de salidas/“Output Items”).
- Clásico (NAST): En
NACE(aplicación V3 – Billing), revisar:- Tipo de salida (p. ej.,
RD00) y programa/formulario asociado. - Procedimiento de condición y registros de condición para disparar la salida.
- Probar la generación en
VF03→ Mensajes.
- Tipo de salida (p. ej.,
- S/4HANA Output Management (BRF+): Configurar “Output Parameter Determination” para Billing Document:
- 4) Almacenamiento del PDF en repositorio (para acceso web)
- Seleccionar repositorio: ArchiveLink/Content Server (SAP Content Server, OpenText u otro ECM) o DMS.
- Configurar repositorio en
OAC0y su enlace con el objeto de negocio de facturación (VBRK) enOAC2/OAC3. - Habilitar archivo automático de la salida:
- S/4 OM: canal “External/Archive” según vuestra arquitectura, o BAdI para guardar el binario en repositorio.
- NAST: en
NACE, activar “Print and Archive” y probar archivado tardío/temprano.
- Guardar metadatos clave (número de factura, sociedad, fecha, cliente) para búsqueda y trazabilidad.
- 5) Exposición para la web
- Pull (la web consulta a SAP):
- Publicar un servicio (OData/REST) que, dado un número de factura o id de cliente, recupere el PDF desde ArchiveLink/ECM.
- Controlar autenticación/autorizaciones (OAuth2/SAML/usuario técnico) y enmascarado de datos si aplica.
- Push (SAP envía el PDF a la web):
- Al emitir/contabilizar la factura, disparar integración (SAP CPI/PI-PO o HTTP client ABAP) que suba el PDF al webservice.
- Gestionar respuesta, reintentos, colas y monitorización de errores.
- Definir URL y lógica de presentación en la web (p. ej., portal de clientes) con paginación y filtros.
- Pull (la web consulta a SAP):
- 6) Seguridad, cumplimiento y rendimiento
- Autorizaciones en SAP (objetos de ArchiveLink y de facturación) y en el front web (solo el cliente dueño la ve).
- Retención legal y borrado conforme a LOPD/GDPR u obligaciones fiscales.
- Compresión/tamaño de PDF, índices del repositorio, y housekeeping.
- 7) Pruebas y monitorización
- Pruebas unitarias: factura → PDF → repositorio → web.
- Pruebas de volumen y rendimiento.
- Monitorización:
SP01(spool), log de salidas en factura,SLG1(aplicativo), integración (CPI/PI), colas y trazas HTTP.
- 8) Gobierno y operación
- Procedimientos de soporte (reintentos de publicación, reimpresión, rearchivo).
- Estrategia de versionado del formulario y controles de transporte.
- Métricas: número de PDFs generados, tiempos de respuesta, errores por canal.
Opcionales útiles
- Código QR/URL firmada en el PDF para acceso directo desde la web.
- Sellado de tiempo/firma electrónica si se requiere validez probatoria.
- Soporte multiempresa y multimoneda en el mismo flujo.
Si me confirmas si estáis en S/4HANA con Output Management o en esquema clásico NAST, y si preferís “pull” o “push” hacia la web, te doy los pasos exactos de configuración (transacciones concretas, BAdIs/servicios y pruebas) adaptados a vuestro escenario.
Alejandro Moyano Boto
06/11/2025 11:58
#3
Estoy en un ECC 6.0 con release 701
ZelenIA
06/11/2025 12:00
#4
¡Gracias por el dato, Alejandro! Al estar en ECC 6.0 (NW 7.01) lo más directo es usar NAST + ArchiveLink. Te dejo un checklist conciso, paso a paso, orientado a facturas SD (VF01/VF03) con salida estándar y archivado en PDF accesible desde vuestra web.
- 1) Formulario y PDF
- Elegir tecnología: Smart Forms o SAPscript (Adobe Forms también es posible si tenéis ADS). Ajustar logos, textos legales e impuestos.
- Smart Forms:
SMARTFORMS(o tu Z smartform). SAPscript estándar:RVINVOICE(copiar a Z). - Si usáis Adobe: probar ADS con
FP_TEST_00desdeSFP.
- 2) Salida de facturas (NAST)
NACE→ Aplicación V3 (Billing):- Mantener el tipo de salida (p. ej.
RD00o uno Z). Asignar programa y formulario correctos (tu SmartForm/SAPscript). - Definir procedimiento y clases de mensaje si aplica.
- Mantener el tipo de salida (p. ej.
- Registrar condiciones en
VV31(por org. de ventas/tipo de factura/cliente, etc.). - Probar en
VF03→ Mensajes, y verificar el spool (SP01).
- 3) Archivado automático en PDF (ArchiveLink)
- Configurar repositorio:
OAC0: Definir Content Repository (SAP Content Server u otro ECM).OAD2: Crear tipo de documento (p. ej.ZINVOICE).OAC2: Vincular el objeto de negocio VBRK (factura SD) con vuestro tipo de documento.
- Activar “Imprimir y Archivar” en el tipo de salida (en
NACE) y asignar parámetros de archivo (modo tardío suele ser el más habitual en SD). - Prueba: emitir la salida en
VF03→ comprobar que el PDF queda archivado y visible desde GOS (Servicios para objeto) de la factura. - Guardar metadatos clave (nº factura, sociedad, cliente, fecha) para búsquedas.
- Configurar repositorio:
- 4) Exposición para la web
- Pull (la web consulta a SAP):
- Publicar un servicio en SAP ICF (
SICF) o SOAP (SOAMANAGER). Si disponéis de Gateway, también OData. - Lógica: dado
VBRK-VBELN, recuperar el PDF del repositorio y devolverapplication/pdfcon control de autorización. - APIs útiles:
ARCHIV_GET_CONNECTIONS(obtener enlaces de ArchiveLink) +ARCHIVOBJECT_GET_TABLE(descargar el binario).
- Publicar un servicio en SAP ICF (
- Push (SAP envía a un webservice externo):
- Al disparar la salida NAST, ampliar el flujo (copia del programa de impresión/rutina) para convertir a PDF y hacer HTTP POST al webservice, o usar SAP PI/PO/CPI.
- APIs útiles: conversión OTF→PDF (
CONVERT_OTF/CONVERT_OTF_2_PDF), lectura de spool (RSPO_RETURN_SPOOLJOB), cliente HTTP (CL_HTTP_CLIENT).
- Pull (la web consulta a SAP):
- 5) Seguridad y cumplimiento
STRUSTpara SSL/TLS; activar/asegurar el servicio enSICF.- Autorizaciones de acceso a facturas y a documentos archivados; trazabilidad y logs.
- Política de retención (fiscal/LOPD-GDPR) y borrado seguro.
- 6) Pruebas y operación
- Flujo E2E: VF01/VF03 → NAST → PDF → ArchiveLink → Web.
- Volumen/rendimiento: tamaño de PDF, tiempos de respuesta, índices del repositorio.
- Monitorización:
SP01(spool), log de mensajes en factura,SLG1(logs app), trazas HTTP/PI-PO.
Mini‑ejemplo (recuperar PDF desde ArchiveLink)
DATA: lt_conn TYPE TABLE OF toav0,
lt_pdf TYPE solix_tab.
CALL FUNCTION 'ARCHIV_GET_CONNECTIONS'
EXPORTING objecttype = 'VBRK' object_id = lv_vbeln
TABLES connections = lt_conn.
READ TABLE lt_conn INTO DATA(ls_conn) INDEX 1. "o por doc_type = 'ZINVOICE'
CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE'
EXPORTING archiv_id = ls_conn-archiv_id
document_id = ls_conn-arc_doc_id
TABLES binarchivobject = lt_pdf.
"Devolver lt_pdf como application/pdf en vuestro handler HTTP
Para afinarte el “cómo” exacto, dime por favor:
- ¿Usáis SAPscript o Smart Form para la factura (o Adobe)?
- ¿Tenéis ya un Content Server (SAP u otro) o preferís publicar desde SAP directamente?
- ¿Queréis que la web consuma el PDF desde SAP (pull) o que SAP lo envíe a vuestro webservice (push)?
Con esas tres respuestas te paso la receta precisa (transacciones, parámetros y ampliaciones) para vuestro escenario ECC 6.0.
