FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Thomas E (ForumUser / 3 / 0 / 0 ) »
Hi,

ich haben eine gedruckte ABAP Liste im Spool über viele Seiten. Hier sind mehrere Verträge enthalten, welche wiederum eine Umfang von einen Vertrag 1 bis X Seiten haben.. Also ich habe z.B. 78 Seiten in denen 53 einzelne Listen für Verträge sind. Vertrag 1 hat eine Seite Vertrag 2 3 Seiten, Vertrag 1 Seite......
Ich möchte jeweils zu einem Vertrag ein PDF erstellen. Da der FUBA CONVERT_ABABSPOOLJOB_2_PDF bei ABAP Listen nur den kompletten Umfang in ein PDF verwandelt untersuche ich den Spool und drucke pro Vertrag mit dem RSPO_OUTPUT_DEVICEDATA die zustückelten Spoolanteile neu.
Will ic nun mit den o.g. CONVERT Baustein ein PDF daraus machen, erhalte ich die Meldung, dass ich keine LISTE habe.
Wie bekomme ich den sonst aus einer ABAP Liste mehrere PDF Dateien, ohne Sie in OTF umzuwandeln?

VG
Thomas


Re: FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
Moin.
Lade den Spool doch mal mit
RSPO0030 Upload and Download of OTF Data
auf deine Festplatte und analysiere. Es sollte schon im OTF format sein.
Funktionsbaustein RSPO_RETURN_ABAP_SPOOLJOB_RAW kann deien spool auch ins memory laden.

gruß Jens

Beispiel Code zur Umwandlung OTF in PDF

Code: Alles auswählen.

DATA: BEGIN OF lt_pdf OCCURS 0,
      t(134),
      END OF lt_pdf.


data DTAB type table of DOCS.
data lv_len type i.

CALL FUNCTION 'CONVERT_OTF_2_PDF'
  IMPORTING
    BIN_FILESIZE           = lv_len
  TABLES
    OTF                    = OTF_output-OTFDATA[]
    DOCTAB_ARCHIVE         = DTAB
    LINES                  = lt_pdf[]
  EXCEPTIONS
    ERR_CONV_NOT_POSSIBLE  = 1
    ERR_OTF_MC_NOENDMARKER = 2
    OTHERS                 = 3.

IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

data pdf_xstring type xstring.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
  EXPORTING
    INPUT_LENGTH = lv_len
  IMPORTING
    BUFFER       = pdf_xstring
  TABLES
    BINARY_TAB   = lt_pdf[]
  EXCEPTIONS
    FAILED       = 1
    OTHERS       = 2.

IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

*     -------- convert document -------------------------------
data pdf_content TYPE table of solix.
pdf_content = cl_document_bcs=>xstring_to_solix( pdf_xstring ).

* TEST TEST

data fnam type RLGRAP-FILENAME value 'c:\temp\000.pdf'.


CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
    BIN_FILESIZE                  = lv_len
    FILENAME                      = fnam
    FILETYPE                      = 'BIN'
  TABLES
    DATA_TAB                      = pdf_content[]
EXCEPTIONS
   FILE_OPEN_ERROR               = 1
   FILE_WRITE_ERROR              = 2
   INVALID_FILESIZE              = 3
   INVALID_TYPE                  = 4
   NO_BATCH                      = 5
   UNKNOWN_ERROR                 = 6
   INVALID_TABLE_WIDTH           = 7
   GUI_REFUSE_FILETRANSFER       = 8
   CUSTOMER_ERROR                = 9
   NO_AUTHORITY                  = 10
   OTHERS                        = 11.

IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Thomas E (ForumUser / 3 / 0 / 0 ) »
Naja als OTF habe ich es eben nicht. Es ist eine aufbereitete Liste zum Ausdrucken für den Sachbearbeiter - im Normallfall. Im Rahmen eines Massenlaufes werden aber viele Verträge hintereinder gehangen.
Liste.jpg
Ich habe in der Liste einen TAG \\ eingefügt, so dass ich herausfinde, von wo bis wo ein zusammenhängendes Schreiben geht (im Bild leider nicht zu sehen).
Um den gefundenen Teil zu drucken habe ich folgendes geschrieben und dabei nutze ich schon den angesprochenen FUBA RSPO_RETURN_ABAP_SPOOLJOB_RAW.

Code: Alles auswählen.

    DATA:       t_buffer2 LIKE l_t_buff_3.   
    DATA:       l_t_pdf_tab TYPE TABLE OF tline.

 CALL FUNCTION 'RSPO_RETURN_ABAP_SPOOLJOB_RAW'
      EXPORTING
        rqident              = '10022'
      TABLES
        buffer               = l_t_buff_3
      EXCEPTIONS
        no_such_job          = 1
        not_abap_list        = 2
        job_contains_no_data = 3
        selection_empty      = 4
        no_permission        = 5
        can_not_access       = 6
        read_error           = 7
        OTHERS               = 8.


    LOOP AT l_t_buff_3 ASSIGNING <spoolrow> WHERE line CS '\\'.

      IF NOT <spoolrow>-line+31 IS INITIAL.
        CONTINUE.
      ELSE.
        to_idx = sy-tabix.
        REFRESH t_otf.
        APPEND LINES OF l_t_buff_3 FROM from_idx TO to_idx TO t_buffer2.


        CALL FUNCTION 'RSPO_OUTPUT_DEVICEDATA'
          EXPORTING
**      PAGES                     = 1
            rqtitle             = sy-tabix
            device              = 'LOCL'
*           size                = '120'
            datatype            = 'RAW'
            immediately         = 'X'
**      LOCATION                  = 'db'
          IMPORTING
            rqid                = l_v_spono
          TABLES
            device_data         = t_buffer2
          EXCEPTIONS
            device_unknown      = 1
            device_type_unknown = 2
            canceled_by_user    = 3
            internal_error      = 4
            device_type_bad     = 5
            size_mismatch       = 6
            OTHERS              = 7.



        CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
          EXPORTING
            src_spoolid              = l_v_spono
          IMPORTING
            pdf_bytecount            = l_v_bin_filesize
          TABLES
            pdf                      = l_t_pdf_tab
          EXCEPTIONS
            err_no_abap_spooljob     = 1
            err_no_spooljob          = 2
            err_no_permission        = 3
            err_conv_not_possible    = 4
            err_bad_destdevice       = 5
            user_cancelled           = 6
            err_spoolerror           = 7
            err_temseerror           = 8
            err_btcjob_open_failed   = 9
            err_btcjob_submit_failed = 10
            err_btcjob_close_failed  = 11
            OTHERS                   = 12.


*
*
Endloop.
Aber der PDF Convertieres gibt mir einen RC2 zurück, da mit den Input Daten in den FUBA RSPO_OUTPUT_DEVICEDATA keine ordentliche Liste entsteht.

Wie könnte es denn gehen?

Re: FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
.. würde den Baustein RSPO_OUTPUT_DEVICEDATA mal auslassen, den braucht der converter nicht.
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Thomas E (ForumUser / 3 / 0 / 0 ) »
Ok, würde ich gerne? Wie bekomme ich dann aber ein Teil der Liste in einen neuen Spool?

Re: FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
Dazu müsstest Du den Spool in seine Bestandteile zerlegen und ein OTF dokument
nach dem anderen konvertieren. Z.B mit CONVERT_OTF_2_PDF
Hier der Link zu Doku.
http://www.bb1.gate2app.com/viewtopic.php?f=32&t=20615

Habs nicht getestet
https://answers.sap.com/questions/55999 ... f%27s.html
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Abgleich LStB-Erstellung
Gestern von czschunke 1 / 22
Feldname ermitteln
vor 2 Tagen von ralf.wenzel 9 / 62
Variablen im Workflow
vor 2 Tagen von Nordlicht 3 / 37

Vergleichbare Themen

Fuba gesucht: Suchhilfeergebnis in mehrere Felder ausgeben
von Timo123 » 09.01.2006 13:41
Liste aus einer internene Tabelle über FUBA erstellen
von Jura » 19.10.2006 14:48
ALV Grid als Liste ausgeben
von jondahl11 » 26.09.2007 09:53
Liste ausgeben - Top of Page
von Elmo » 10.11.2007 19:58
Liste nach verarbeitung ausgeben.
von 1sm1 » 26.01.2008 18:32