Imprimir PDF en WebDynpro para JAVA sin utilizar Interactive Forms en llamadas RFC.



Documentos relacionados
SolutionsSAP. paso a paso.

Parametrizacion del programa de control y del formulario

MANUALES Y TUTORIALES Manual de Smartforms - Exequiel Lopez -

Notas técnicas de SAP / ABAP Tip en detalle Nro. 23. (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado)

Batch Input (online ofline archivos.prn)

En el presente tip definimos el procedimiento para crear esas variables y su manejo posterior. DATA: v_data_ref TYPE REF TO data.

Tip en detalle Nro. 06

Programación en Capas con VB.net y PostgreSQL

Este ejemplo es un formulario de impresión de una lista de participantes a un curso.

Son objetos cuya función es el tratamiento de varios registros exclusivamente durante la ejecución de un programa.

Tablas internas 1-12

Notas técnicas - Tips de SAP Netweaver ABAP JAVA Tip en detalle Nro. 24. (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado)

Crystal Reports NET (win y web) Crystal Reports. Sumario Este documento describe como se emplea el control Crystal Reports en Visual Basic NET

En este ejemplo también vamos a crear la capa Entidades que va a servir para modelar nuestra base de datos.

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y

Notas técnicas Tips de SAP Netweaver ABAP JAVA Tip en detalle Nro. 25. (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado)

Universidad ORT - Arquitectura de Software. Requisitos

1. Módulos de Funciones

A partir de la información anterior haremos varios programas que utilicen los diferentes elementos del diccionario.

Práctica 4: Java Remote Method Invocation (RMI)

Uso de excepciones en Java

RUEDA TORRES DULCE CAROLINA 3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT

APRENDE A CREAR UNA PÁGINA WEB CON HTML

Comunicación utilizando la biblioteca en JAVA para SADE

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

ABAP orientado a objetos

Introducción a ZEUS. Introducción. Curso Doctorado Sistemas Multi-agente. Zeus es una herramienta de desarrollo de SMA.

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Si queremos que se arranque al inicio debemos añadir las siguientes líneas a /etc/rc.conf: puppet_enable= YES puppetmaster_enable= YES

ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES

- Descarga en un PC la utilidad de la BD, - En el programa IOrestaurant :

Tomando el control de Sugar CRM. Autor: Joaquín "Everglades" Sorianello Fecha: 24/05/2011 Licencia:

Desarrollo de Servicios Web con JBuilder

Instalación GIRH Licencias (JAVA)

Práctica sobre compartición de instancias remotas.

Modulo 1 El lenguaje Java

Móvil: MANUAL DE USUARIO Replicación DOCUMENTO PÚBLICO e-evolution

Procesamiento Digital de Información

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

Guías para la práctica (2): Acceso a Salesforce

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Visual Studio Team System 2010

Generador de Proxy remoto JavaScript.

WebService Presentación de DDJJ

WEB SERVICES CREACIÓN DEL SERVICIO

Laboratorio 2 Proceso Interactivo

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server

Manual del Protocolo XML-RPC de Mensajería Negocios

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

Gestión de usuarios en Apache DS

Manual Instalación GIRH-Nómina (JAVA)

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

Ejemplos de uso del protocolo ECCP

Manual del Documento Multi-Propósito (MPD) Virtual Líneas Aéreas

Pantalla ENW URL LOGIN

Práctica 2: Java Remote Method Invocation (RMI)

MANUAL DE USUARIO. Versión 301. ~ uno-ersia. LI Comunidad laboral 1. Ud<!rde Ibe<oamenca

Elementos léxicos del lenguaje de programación Java

Desarrollo de un servicio web para el envío de correos utilizando C# y su correspondiente cliente consumidor utilizando Java

FUNCIONALIDAD SOLICITUDES

SISTEMAS DE GESTION DE CONTENIDO DISTRIBUIDO. Carlos Manuel/Infomed

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Manejo de errores. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile)

Requisitos. Universidad ORT Arquitectura de Software

WebService: presentacionprocessor

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish)

CHECKLIST. Universidad Panamericana Checklist. Descripción. Objetivos

Cómo Configurar Puertos CTI en CallManager

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Entrenamiento básico. IFER Monitoring and Mapping Solutions

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

Tutorial Envio de correos con Java Mail

Notas técnicas Tips de SAP Netweaver ABAP- JAVA Tip White Paper Nro. 13. (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado)

Curso de PHP con MySQL Gratis

Tutorial Enterprise Architect 7.5 Versión en español

MANUAL ADVISOR SMART SMART CRM. C/. Nil Fabra, entº 2ª Barcelona Página 1/13

Conectar Flash con Access usando MDM Zinc

UNIVERSIDAD LIBRE DE COLOMBIA FACULTAD INGENIERIA DE SISTEMAS ELECTIVA TECNICA II.NET Y SQL SERVER

Introducción Delicious Algunas características: Sitio para acceder a esta herramienta Qué es Delicious?...

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 1.

Curso de SQL y de SQL Server 2008 R2 Parte 13 Importación y Exportación de Datos Detlev Bannasch Octubre de 2012

ZILOG DEVELOPER STUDIO

Ingeniería del Software II. Curso 2003/2004. Enunciado de la práctica del Segundo parcial.

Tutorial de RoboDemo 4.0

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Si el acceso es mediante Telnet, se debe ejecutar de la siguiente forma:

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

Geogebra y Descartes en Moodle. By: Santiago Sesma

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2.

Tutorial para la comunicación TCP en el BMS Server

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

Manual de JSP con MySQL

Transcripción:

Imprimir PDF en WebDynpro para JAVA sin utilizar Interactive Forms en llamadas RFC. Se puede imprimir un pdf utilizando una llamada RFC el cual entregará el pdf vía una variable binaria. Entonces si en sap generamos un smartform (tran. SMARTFORMS) lo convertimos a PDF, y lo enviamos vía un parámetro export en una función RFC, el WebDynpro Java es capaz de interpretarlo y desplegarlo como un archivo Adobe PDF. En SAP Si tenemos el siguiente smartform ZWEBDYNPRO_TEST Entonces generamos el módulo de función (SE37) de tipo RFC, con el siguiente parámetro export:

En código fuente: FUNCTION Z_WEBDYNPRO_PDF_TEST. *"---------------------------------------------------------------------- *"*"Local Interface: *" EXPORTING *" VALUE(BIN_FILE) TYPE XSTRING *"---------------------------------------------------------------------- DATA : lv_fnam TYPE rs38l_fnam, gs_control TYPE ssfctrlop, gs_output_options TYPE ssfcompop, gs_otfdata TYPE itcoo, gs_job_output_info TYPE ssfcrescl, gt_otfdata TYPE STANDARD TABLE OF itcoo INITIAL SIZE 0. * get smartform CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZWEBDYNPRO_TEST' IMPORTING fm_name = lv_fnam EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CLEAR gs_job_output_info. CLEAR gs_job_output_info-otfdata. MOVE : 'X' TO gs_control-no_dialog, 'X' TO gs_control-getotf, 'LP01'(047) TO gs_output_options-tddest. CALL FUNCTION lv_fnam EXPORTING control_parameters = gs_control output_options = gs_output_options

user_settings = space IMPORTING job_output_info = gs_job_output_info EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *Populate OTF data table LOOP AT gs_job_output_info-otfdata INTO gs_otfdata. APPEND gs_otfdata TO gt_otfdata. CLEAR gs_otfdata. ENDLOOP. " LOOP AT t_outtab-otfdata DATA: lv_bytes TYPE p, lv_bin_file TYPE xstring, gt_pdfdata TYPE STANDARD TABLE OF tline INITIAL SIZE 0. * Convert OTF into PDF CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' * max_linewidth = 800 IMPORTING bin_filesize = lv_bytes bin_file = bin_file TABLES otf = gt_otfdata lines = gt_pdfdata EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 OTHERS = 4. ENDFUNCTION. En WebDynpro Java (SAP DEVELOPER STUDIO) Creamos el proyecto WebDynpro TestPdf

Creamos modelo TestPdfModel (Adaptative RFC Model). Nos conectamos al servidor SAP correspondiente e importamos función Z_WEBDYNPRO_PDF_TEST.

Entonces tenemos Creamos componente TestPdfComp

Agregamos TestPdfModel en Used Models

Creamos el TestPdfCust Custom Controller Editamos el model binding en TestPdfCust (se puede realizar en el Diagram View del componente TestPdfComp)

Ahora editamos el Context Mapping de la vista TestPdfView (creada al crear el componente)

En contexto de vista TestPdfView, creamos nodo internal con value attribute url de tipo string. Ojo que la cardinalidad de internal es 1..1

Ahora en layout de vista insertamos un Iframe En source indicamos Internal.url

Este WebDynpro está diseñado para llamar automáticamente a la función RFC en SAP, por lo tanto en el implementation de la vista TestPdfVie, agregamos en wddoinit: try { // Calls remote function module wdcontext.currentz_webdynpro_pdf_test_inputelement().modelobject().execu te(); // Synchronise the data in the context with the data in the model wdcontext.nodeoutput().invalidate(); } catch (Exception ex) { // If an exception is thrown, then the stack trace will be printed ex.printstacktrace(); } Ahora debemos tomar la variable Bin_File de tipo byte[] y transformarla a string (Url): byte[] pdfcontent = wdcontext.currentoutputelement().getbin_file(); IWDCachedWebResource pdfresource = WDWebResource.getWebResource(pdfContent,WDWebResourceType.PDF); //this line will convert that byte array into pdf form try{ wdcontext.currentinternalelement().seturl(pdfresource.geturl()); //Pdf ur l is a value attribute in the context of type string. bind this string attribute to Iframe or adobe interactive form. }catch (Exception e) { wdcomponentapi.getmessagemanager().reportexception(e.getmessage( ),true); } Si da error de sintaxis, utilizar menú contextual Source Organize Imports. Finalmente creamos aplicación TestPdfApp

Hacemos el deploy & run, lo más posible es que surja el siguiente error: java.lang.nullpointerexception Esto es porque nos falto agregar en el implementation del TestPdfCust public void wddoinit() { //@@begin wddoinit() Z_Webdynpro_Pdf_Test_Input input = new Z_Webdynpro_Pdf_Test_Input(); wdcontext.nodez_webdynpro_pdf_test_input().bind(input); } //@@end Entonces ahora: