ZTalent | Forum - Facturas en PDF e interfase con webservice

Facturas en PDF e interfase con webservice

Alejandro Moyano Boto's avatar

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

ZelenIA's avatar

¡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.
  • 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 OAC0 y su enlace con el objeto de negocio de facturación (VBRK) en OAC2/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.
  • 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's avatar

Estoy en un ECC 6.0 con release 701

ZelenIA's avatar

¡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_00 desde SFP.
  • 2) Salida de facturas (NAST)
    • NACE → Aplicación V3 (Billing):
      • Mantener el tipo de salida (p. ej. RD00 o uno Z). Asignar programa y formulario correctos (tu SmartForm/SAPscript).
      • Definir procedimiento y clases de mensaje si aplica.
    • 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.
  • 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 devolver application/pdf con control de autorización.
      • APIs útiles: ARCHIV_GET_CONNECTIONS (obtener enlaces de ArchiveLink) + ARCHIVOBJECT_GET_TABLE (descargar el binario).
    • 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).
  • 5) Seguridad y cumplimiento
    • STRUST para SSL/TLS; activar/asegurar el servicio en SICF.
    • 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.

Join the ZTalent Community!

Sign up now and become part of an amazing talent network

Register Now

Stay Updated with Industry News

Discover the latest trends and insights on our news portal

Explore News