API_DOCUMENT_CREATEFROMSRC2 keine Originale

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

API_DOCUMENT_CREATEFROMSRC2 keine Originale

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Hallo zusammen,

mittels dem Fuba: BAPI_DOCUMENT_CREATEFROMSRC2 muss ich Dokumente kopieren, mit den Originalen.
Es kommt keine Fehlermeldung zurück, allerdings sind die Originale nicht mitkopiert.
Hat jemand einen Tipp, wie ich doch die Originale kopieren kann?

Code: Alles auswählen.

    CALL FUNCTION 'BAPI_DOCUMENT_CREATEFROMSRC2'
      EXPORTING
        refdocumenttype    = <doc_key>-documenttype
        refdocumentnumber  = <doc_key>-documentnumber
        refdocumentpart    = <doc_key>-documentpart
        refdocumentversion = <doc_key>-documentversion
        newdocumentnumber  = ls_doc_key_ippe-doc_number
        newdocumentpart    = ls_doc_key_ippe-doc_part
        newdocumentversion = ls_doc_key_ippe-doc_vers
        copyoriginals      = 'X'
        copydocbom         = 'X'
      IMPORTING
        doctype            = ls_doc_key_ippe-doc_type
        docnumber          = ls_doc_key_ippe-doc_number
        docpart            = ls_doc_key_ippe-doc_part
        docversion         = ls_doc_key_ippe-doc_vers
        return             = ls_return
      TABLES
        copyobjectlinks    = lt_links.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: API_DOCUMENT_CREATEFROMSRC2 keine Originale

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moinsen.

Der Parameter "COPYORIGINALS" ist dafür zuständig. Den übergibst Du aber bereits korrekterweise mit "X", was auch der Default ist. (Siehe Hinweis 403302.)
Klingt seltsam, ich würde über eine Meldung bei SAP nachdenken. Klingt für mich nach einem Programmfehler.

Ansonsten wäre noch die Möglichkeit, die Originale mittels FuBa CV120_KPRO_CHECKOUT_TO_TABLE zu lesen und mit FuBa CVAPI_DOC_CHECKIN an den neuen DIS anzuhängen. Wenn Du dazu Beispielcoding brauchst sag Bescheid.

Grüße,
Haubi

Folgende Benutzer bedankten sich beim Autor Haubi für den Beitrag:
Icke0801

Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: API_DOCUMENT_CREATEFROMSRC2 keine Originale

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Hallo Haubi,
Haubi hat geschrieben: Ansonsten wäre noch die Möglichkeit, die Originale mittels FuBa CV120_KPRO_CHECKOUT_TO_TABLE zu lesen und mit FuBa CVAPI_DOC_CHECKIN an den neuen DIS anzuhängen. Wenn Du dazu Beispielcoding brauchst sag Bescheid.
Ich würde es gerne mal mit Deinem Beispielcoding probieren. In diesem Sinne gebe ich hiermit Bescheid :up:

Besten Dank
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: API_DOCUMENT_CREATEFROMSRC2 keine Originale

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Oha, das hatte ich befürchtet... :wink:

Dann mal los. Anhang auslesen:

Code: Alles auswählen.

DATA: 
  lt_data        TYPE dms_tbl_file,
  lt_components  TYPE STANDARD TABLE OF sdokcomprp,
  lt_bad_objects TYPE STANDARD TABLE OF sdokerrkey,
  ls_phio_id     TYPE sdokobject,
  lt_content     TYPE dms_tbl_drao.

    CALL FUNCTION 'CV120_KPRO_MASTER_DATA_GET'
      EXPORTING
        pf_dokar  = l_dokar_old
        pf_doknr  = l_doknr_old
        pf_dokvr  = l_dokvr_old
        pf_doktl  = l_doktl_old
      TABLES
        ptx_data  = lt_data.

        DATA(lv_phio) = lt_data[ 1 ]-tbl_phios[ 1 ]-ph_objid.

        APPEND INITIAL LINE TO lt_components ASSIGNING FIELD-SYMBOL(<ls_component>).
        <ls_component>-class = 'DMS_PCD1'.
        <ls_component>-objid = lv_phio.

        CALL FUNCTION 'SDOK_PHIOS_FILE_PROPERTIES_GET'
          TABLES
            components  = lt_components
            bad_objects = lt_bad_objects.
        READ TABLE lt_components INTO s_component INDEX 1.

        ls_phio_id-class = 'DMS_PCD1'.
        ls_phio_id-objid = lv_phio.

        CALL FUNCTION 'CV120_KPRO_CHECKOUT_TO_TABLE'
          EXPORTING
            ps_phio_id  = ls_phio_id
          TABLES
            ptx_content = lt_content.
Und dann zum Einchecken:

Code: Alles auswählen.

DATA: 
  ls_original    TYPE cvapi_doc_file,
  lt_original    TYPE cvapi_tbl_doc_files,
  ls_api_control TYPE cvapi_api_control,
  ls_message     TYPE messages.

      ls_original-appnr           = '1'.
      ls_original-dappl           = <hier korrekten Wert setzen>.
      ls_original-storage_cat     = <Hier Ablagekategorie ergänzen>.
      ls_original-filename        = <Dateiname>.
      ls_original-active_version  = abap_true.
      ls_original-checked_in      = abap_true.
      APPEND ls_original TO lt_original.

    ls_api_control-commit_flag    = abap_true.
    ls_api_control-no_update_task = abap_true.
    ls_api_control-save_flag      = abap_true.
    ls_api_control-api_mode       = abap_true.
    ls_api_control-bapi_flag      = abap_true.

    LOOP AT lt_content ASSIGNING FIELD-SYMBOL(<ls_content>). " Den CONTENT hatten wir im Step 1 ausgelesen...
      <ls_content>-dokar  = s_draw-dokar.
      <ls_content>-doknr  = s_draw-doknr.
      <ls_content>-dokvr  = s_draw-dokvr.
      <ls_content>-doktl  = s_draw-doktl.
      <ls_content>-appnr  = '1'.
      <ls_content>-zaehl  = sy-tabix.
      <ls_content>-orln   = s_component-file_size.
      <ls_content>-orbkl  = 2550.
    ENDLOOP.

    CALL FUNCTION 'CVAPI_DOC_CHECKIN'
      EXPORTING
        pf_dokar           =l_dokar_new
        pf_doknr           = l_doknr_new
        pf_dokvr           = l_dokvr_new
        pf_doktl           = l_doktl_new
        ps_api_control     = ls_api_control
        pf_replace         = abap_true
        pf_content_provide = 'TBL'
      IMPORTING
        psx_message        = ls_message
      TABLES
        pt_files_x         = lt_original
        pt_content         = lt_content.
Workstation-Applikation, Ablagekategorie etc. kannst Du ggf. aus dem Original zum Quell-DIS bekommen, das sollten z.B. die Document-BAPIs liefern.

Ist jetzt ein wenig wirr zusammenkopiert aus einer Klasse, die grundsätzliche Idee sollte aber klar sein. Falls nicht: bitte melden... :wink:

Grüße,
Haubi

Folgende Benutzer bedankten sich beim Autor Haubi für den Beitrag:
Icke0801

Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: API_DOCUMENT_CREATEFROMSRC2 keine Originale

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Haubi hat geschrieben:Oha, das hatte ich befürchtet... :wink:
Die Geister, die ich rief.... :wink:
Haubi hat geschrieben: Workstation-Applikation, Ablagekategorie etc. kannst Du ggf. aus dem Original zum Quell-DIS bekommen, das sollten z.B. die Document-BAPIs liefern.
Ist jetzt ein wenig wirr zusammenkopiert aus einer Klasse, die grundsätzliche Idee sollte aber klar sein. Falls nicht: bitte melden... :wink:
Das sollte so reichen, vielen Dank dafür :up:
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Seite 1 von 1

Vergleichbare Themen

25
Antw.
18339
Views
Originale zu DVS-Dokumenten herunterladen
von ralf.wenzel » 23.09.2013 16:26 • Verfasst in ABAP® Core
1
Antw.
1885
Views
PDF Originale aus Kpro im Webbrowser anzeigen lassen
von DanielFulda » 11.12.2018 12:14 • Verfasst in ABAP® für Anfänger
7
Antw.
1903
Views
0
Antw.
1876
Views
DOCUMENT VIEWER
von SAP_ENTWICKLER » 17.01.2015 15:34 • Verfasst in ABAP® Core
0
Antw.
1825
Views
Document Viewer
von joffi68 » 17.07.2007 14:29 • Verfasst in Basis

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141