Pasar Sapscript a PDF

4 05 2011

Es común que nos pidan hacer un resguardo de un formulario. Y probablemente tengamos que hacer el backup a PDF.
Con las siguientes pocas líneas vamos a poder hacerlo.


*Declaraciones
TABLES: itcpo.

DATA: otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
          intab         TYPE  soli_tab,
          objbin       TYPE  solix_tab, 
          wa_intab   TYPE LINE OF soli_tab,
          wa_objbin TYPE LINE OF solix_tab,
          objpack    LIKE sopcklsti1 WITH HEADER LINE.

*Antes de la llamada a la función ‘OPEN_FORM’
itcpo-tdgetotf = ‘X’.
itcpo-tddest   = ‘LP01’.

CALL FUNCTION ‘OPEN_FORM’
   EXPORTING
      form       = ‘ZSAPSCRIPT’  “Nombre del formulario Sapscript 
      language = ‘S’
      options   = itcpo
      device    = ‘PRINTER’
      dialog     = ‘ ‘              “Vacío para que no muestre el pop-up de impresión
   EXCEPTIONS
   OTHERS   = 1.

 

*En el ‘CLOSE_FORM’
CALL FUNCTION ‘CLOSE_FORM’
   TABLES
      otfdata = otfdata
   EXCEPTIONS
   OTHERS  = 1.

*En la tabla otfdata nos queda guardado el formulario en formtao OTF
*Ahora sólo resta convertir el OTF en PDF

LOOP AT otfdata.
    wa_intab = otfdata.
    APPEND wa_intab TO intab.
    CLEAR wa_intab.
ENDLOOP.

*Convertir el OTF en PDF
CALL FUNCTION ‘SX_OBJECT_CONVERT_OTF_PDF’
    EXPORTING
      format_src           = ‘OTF’
      format_dst          = ‘PDF’
*     ADDR_TYPE        =
      devtype               = ‘LP01’
*     FUNCPARA          =
    CHANGING
      transfer_bin         = objpack-transf_bin
      content_txt          = intab
      content_bin         = objbin
      objhead              = intab
      len                     = objpack-doc_size
   EXCEPTIONS
      err_conv_failed   = 1 
   OTHERS                = 2.

*LISTO!!! En la tabla objbin nos queda guardado el PDF para salvarlo *en la PC con la función ‘GUI_DOWNLOAD’ o bien enviarlo por mail con *la función ‘SO_NEW_DOCUMENT_ATT_SEND_API1’


Technorati tags:


Acciones

Information

15 responses

11 10 2011
Ariel Forconi

Estimado: He podido pasar el formulario SAPSCRIPT de OTF a PDF, pero el codigo de Barras pasa en forma incorrecta.
Uso el Interleave 2 de 5.
Encontre en foros que para sapscript, no esta permitido pasar el codigo de barras a PDF.
Habran modificado eso ?, ya se habra permitido ?, alguien sabe de alguna nota que resuelva esto ?

11 10 2011
Daniel Panaro

Ariel,
Lamentablemente los Sapscripts no soportan códigos de barra en PDF. Sólo funcionan correctamente con SmartForms.

Saludos cordiales,
Daniel Panaro.

13 10 2011
Ariel Forconi

Daniel. Gracias por la celeridad de tu respuesta. Pasa que como he encontrado notas que hablan sobre nueva tenología en codigo de Barras para Sapscript (Nota 1558595), en mi caso tengo la versión 710. Creo que debe ser algo que salió para resolver esto. La viste ?

14 10 2011
Daniel Panaro

Ariel,
Vi la nota que 1558595. Pero no aclara si funciona al hacer un download a PDF del SapScript.
Si la aplicaste y funciona tanto para la impresión como para el PDF, por favor avisame.

Gracias y saludos,
Daniel Panaro.

19 10 2011
Ariel Forconi

Daniel.
Logre generar el codigo de barra como objeto e incrustarlo en el sapscript.
Luego la exportacion a pdf la hace Ok !. y respeta el codigo de barra porque lo toma como imagen. Que tal ?
Asunto terminado.
Gracias !.

29 11 2011
Anónimo

Que tal Ariel Farconi soy tambien programador ABAP y tengo exactamente ese mismo problema… El codigo de Barras que tengo en SapSacript al pasarlo a PDF no me lo imprime… por lo que lei creaste un objeto y lo incrustaste … pero con que transaccion hiciste el objeto? y despues como es que lo “insertaste” en Sapscript?.. o si fue codigo en ABAP podras compartirlo? Podrias ayudarme en esto… te lo agradeceria enormemente.
Atte. Fabian
Tampico, Mexico

30 11 2011
Daniel Panaro

Hola Fabián,
Verificaste la nota SAP nro 1558595 ?
Es la nota que mencionó Ariel en un par de mensajes atrás.

Espero te sea útil.
Saludos cordiales,
Daniel.

1 12 2011
Ariel Forconi - Santa Fe Capital - Provincia de Santa Fe - Argentina

Gente:
Perdon la demora. estuve complicado.

Fabian.
Soy Forconi (con o). ja. no problem.

Daniel.
No lo hice con esa nota, era bastante complicado.
Lo resolvi generando la imagen como objeto en código.
Nos comunicamos mejor por e-mail arielforconi@gmail.com

Saludos

27 06 2013
Rafael

buenas tardes de ante mano muchas gracias por el ejemplo. lo eh implementado a un sapscrip que eh hecho pero resulta que ahora cuando lo ejecuto no se me muestra en pantalla el sapscript. creo que es por este parametro (options = itcpo ) en la funcion ‘open form’ puesto que cuando la comento si se me muestra en la pantalla.
quisiera saber si existe una forma para que se me muestre en pantalla y ademas poder convertirlo en .pdf.

mi correo es rafaelnoriega24@gmail.com

28 06 2013
Daniel Panaro

Hola Rafael,
Probaste hacer la llamada común para que se muestre el formulario por pantalla.
Y despues agregar un include que tenga todos los pasos de este post?

Saludos,
Daniel.

28 06 2013
Rafael

nuevamente muchas gracias.. cree un include y me funciono.

1 07 2013
Rafael

buenas amigo, nuevamente estoy aqui pidiendo ayuda. quisiera saber si existe una forma de enviar la tabla objbin (la que guarda el PDF) a traves de una funcion. es decir que la funcion retorne dicha tabla!

1 07 2013
Daniel Panaro

Que tal Rafael,
Estimo que se puede hacer.
Nunca lo hice, pero en principio no encuentro algo que limite que no se pueda cargar la tabla.
Asi que adelante, probalo y cualquier duda me avisas.

Saludos,
Daniel.

8 07 2016
Mario

Hola,
Saben, ya logre descargar el archivo PDF con la función GUI_DOWNLOAD. pero lo que quiero ahora es poder enviarlo a la vez a por correo, he leído que es con la función SO_NEW_DOCUMENT_ATT_SEND_API1 pero aun no logro poder enviarlo, alguien tiene un ejemplo ? se los agradeceré mucho.

saludos!!!

11 07 2016
Daniel Panaro

Hola Mario,
Se pueden enviar adjuntos por mail con la función “SO_NEW_DOCUMENT_ATT_SEND_API1” ó también con las clases: “cl_bcs” y “cl_document_bcs”.

Googleando podés encontrar muchos ejemplos.
Acá te dejo un link donde hay un ejemplo de cada una de las formas de envio:
http://www.mundosap.com/foro/showthread.php?t=40656

Espero te sirva!
Saludos,
Daniel.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: