Auftragspapiere an GOS anbinden

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

SAP R/3 Materialwirtschaft: Einkauf, Bestandsführung, Rechnungsprüfung, Inventur, Bewertung, Leistungsabwicklung, Materialstamm...
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
Hallo SAP-Freunde,

wir würden gerne die Auftragspapiere des Fertigungsauftrags an die Generischen Objektdienste anbinden. So dass diese über „Dienste zum Objekt“ angezeigt werden können. Bei Bestellungen betreiben wir das bereits und es funktioniert auch mit Hilfe des ArchiveLinks. Leider finde ich keinen Weg, die Auftragspapiere zu archivieren und ans GOS anzubinden. Könnt ihr mir vielleicht weiterhelfen?

Schöne Grüße aus dem Allgäu.
Daniel

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


Re: Auftragspapiere an GOS anbinden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Daniel.
Mit der Transaktion OPK8 kann man die Papiere / Listen definieren.
Ein Archiv Objekt(z.B. BUS2005 = Attachment) habe ich nicht gefunden, deshalb würde ich ein Druckprogramm anpassen, was den Druck dem GOS zuführt.

lg Jens
(aus dem Flachland)
<:: 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: Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
Hallo Jens,

vielen Dank für deine Antwort. Ich bin noch realtiv neu im ABAP Umfeld. Könntest du mir vielleicht noch ein paar weitere Hinweise geben, wie ich es schaffen kann, das PDF im Druckprogramm ans GOS anzubinden. Mir fehlt da noch der rote Faden.

Vielen Dank im Voraus.

Re: Auftragspapiere an GOS anbinden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Daniel.
Da über das GOS Dokumente sowohl in das Archiv, als auch in die SAP Datenbank über die generischen Objektdienste abgelegt werden können,
möchte ich gern wissen, wohin genau soll es gehen ?
Archiv oder SAP ?
lg Jens
<:: 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: Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
Hallo Jens,

wir würden die Dokumente gerne im Repository (ich denke damit ist das Archiv gemeint) ablegen, so dass wir diese dann über ArchiveLink mit dem Fertigungsauftrag verbinden können. Mein Problem ist, dass ich nciht weiß, wie ich das PDF ins Repository bekomme. Z. B. bei Bestellungen können ausgehende Dokumente per Nachrichtensteuerung im Archiv abgelegt werden. Bei der Drucksteuerung im FAUF kann ich aber leider nirgends eine vergleichbare Option zum "Ablegen im Archiv" finden.

Welchen Unterschied würde es denn machen, die Dokumente im Archiv oder in der SAP Datenbank abzuspeichern?

Schöne Grüße
Daniel

Re: Auftragspapiere an GOS anbinden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Daniel.
.. über ArchiveLink mit dem Fertigungsauftrag verbinden..
Das ist auf jeden Fall einfacher, als das Anlegen einer "internen Anlage" per Programm, weil die Funktion "Drucken und Ablegen" am Funktionsbaustein OPEN_FORM schon vorhanden ist.
Damit ist die Aufgabe :
Customizing des Business Objekts (BUS2005) in der OAC3 ( in der Annahme das es schon ein Archiv gibt, sonst zusätzlich OAC0 )
Kopieren des gewünschten Druckprogramms (OPK8) und Anpassen der Parameter für Open_Form.(eg PSFCPICK zu ZPSFCPICK kopieren)

Beispiel : Programm PSFCPICK .
Im coding

Code: Alles auswählen.

* OPEN_FORM to open form
        PERFORM PPPR_OPEN_FORM USING 'PAG_RES'.
in der Kopie (ZPSFCPICK) ersetzen

Code: Alles auswählen.

data l_OPTIONS	type ITCPO.
data l_ARCHIVE_INDEX type TOA_DARA.
data l_ARCHIVE_PARAMS type ARC_PARAMS.

l_options = pr_options.

l_options-TDARMOD = '3'. " setzen auf "drucken und ablegen"
l_options-tdnewid   = 'X'.
l_options-tdlifetime = '8'.
l_options-tddelete  = ''.

* Archive Index (XXXX gegen Deine Parameter ersetzen)
    l_ARCHIVE_INDEX-MANDANT = sy-mandt.
    l_ARCHIVE_INDEX-SAP_OBJECT = XXXX
     l_ARCHIVE_INDEX-OBJECT_ID = XXXXX  .
    l_ARCHIVE_INDEX-AR_OBJECT = XXXX.
    l_ARCHIVE_INDEX-RESERVE+0(6) = XXX.

* set the values the Archive paramters

    l_ARCHIVE_PARAMS-SAP_OBJECT = XXXX.
    l_ARCHIVE_PARAMS-ARCHIV_ID = XXX
    l_ARCHIVE_PARAMS-AR_OBJECT = XXXXX.
    l_ARCHIVE_PARAMS-DOC_TYPE = XXXXX
    l_ARCHIVE_PARAMS-MANDANT = sy-mandt.


  CALL FUNCTION 'OPEN_FORM'
       EXPORTING
            ARCHIVE_INDEX =  l_ARCHIVE_INDEX
            ARCHIVE_PARAMS = l_ARCHIVE_PARAMS
            DEVICE   = 'PRINTER'
            DIALOG   = SPACE
            FORM     = PRINT_CO-FORML
            LANGUAGE = PRINT_CO-SPRAS
            OPTIONS  = l_OPTIONS
       EXCEPTIONS
            CANCELED = 01
            DEVICE   = 02
            FORM     = 03
            OPTIONS  = 04
            UNCLOSED = 05.

  CALL FUNCTION 'START_FORM'
       EXPORTING
            STARTPAGE = 'PAG_RES'.

  CLEAR FLG_MAIN_STARTED.
sag bitte bescheid, ob es funktioniert ;-)
oder noch Fragen hast.

Statt der Kopie des Druckprogramms, besteht ggf. auch die Möglichkeit des
"Enhancen's" des verwendeten Includes in dem der Aufruf OPEN_FORM ist.
Das wäre dann keine Modifikation.

lg Jens

siehe auch http://scn.sap.com/thread/1669951
<:: 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: Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
Hallo Jens,

vielen Dank für deine ausführliche Antwort. Ich habe es so gemacht, wie du beschrieben hast. Aber leider wird kein Dokument abgelegt.

- Content Repository (OAC0) war bereits angelegt
- Dokumentart (OAC2) habe ich angelegt
- Verknüpfung (OAC3) habe ich ebenfalls gepflegt (S. Anhang)

Aufruf im Druckprogramm:

Code: Alles auswählen.

PERFORM zpppr_open_form USING 'PAG_STD'.
Unterprogramm:

Code: Alles auswählen.

FORM zpppr_open_form USING STARTPAGE.

  DATA: L_OPTIONS  TYPE ITCPO,
        L_ARCHIVE_INDEX TYPE TOA_DARA,
        L_ARCHIVE_PARAMS TYPE ARC_PARAMS,
        I_ARCHIVE_PARAMS TYPE ARC_PARAMS,
        I_RESULT TYPE ITCPP.

  pr_options-TDARMOD = '3'. " drucken und ablegen

* Archive Index (XXXX gegen Deine Parameter ersetzen)
    l_ARCHIVE_INDEX-SAP_OBJECT = 'BUS2005'.
    l_ARCHIVE_INDEX-OBJECT_ID = caufvd-aufnr.
    l_ARCHIVE_INDEX-AR_OBJECT = 'ZPP1001OBJ'.

* set the values the Archive paramters

    l_ARCHIVE_PARAMS-SAP_OBJECT = 'BUS2005'.
    l_ARCHIVE_PARAMS-ARCHIV_ID = '1P'.
    l_ARCHIVE_PARAMS-AR_OBJECT = 'ZPP1001OBJ'.
    l_ARCHIVE_PARAMS-DOC_TYPE = 'PDF'.

  CALL FUNCTION 'OPEN_FORM'
       EXPORTING
          ARCHIVE_INDEX =  l_ARCHIVE_INDEX
          ARCHIVE_PARAMS = l_ARCHIVE_PARAMS
          DEVICE   = 'PRINTER'
          DIALOG   = SPACE
          FORM     = PRINT_CO-FORML
          LANGUAGE = PRINT_CO-SPRAS
          OPTIONS  = PR_OPTIONS
       IMPORTING
         NEW_ARCHIVE_PARAMS = I_ARCHIVE_PARAMS
         RESULT = I_RESULT
       EXCEPTIONS
            CANCELED = 01
            DEVICE   = 02
            FORM     = 03
            OPTIONS  = 04
            UNCLOSED = 05.

  CALL FUNCTION 'START_FORM'
       EXPORTING
         STARTPAGE     = 'PAG_RES'
         ARCHIVE_INDEX =  l_ARCHIVE_INDEX.

  CLEAR FLG_MAIN_STARTED.
Ich hab auch schon versucht mit den Archiveparametern etwas herumzuspielen, aber leider ohne Erfolg. Ich finde auch keine vernünftige Doku, wie die beiden Strukturen ARCHIVE_INDEX und ARCHIVE_PARAMS richtig zu befüllen sind.

Hast du noch ne Idee, woran's liegen kann?

Viele Grüße
Daniel

Re: Auftragspapiere an GOS anbinden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Daniel.
Ich habe mir mal die Mühe gemacht ein kleines Druck/Archivierungsprogramm zu schreiben.
Dabei habe ich die Auftragsbestätigung verwendet (was anderes hatte ich nicht) und das Drucken und ablegen ins Archiv ge-debugged.
Die Erkenntnisse habe ich in ein kleines Testprogramm übernommen. Ich habe "nur" die Parameter befüllt, die auch im debugging befüllt waren.
aus deinem Coding:

Code: Alles auswählen.

l_ARCHIVE_PARAMS-DOC_TYPE = 'PDF'.
wird wohl nicht befüllt, da dieser Wert aus dem customizing der TA OAC2 genommen wird. (nimm in der OAC2 besser OTF ! )

Mit dem report ZTEST_ARCHIVE_SAPSCRIPT lässt sich autark ein Druck an X-beliebige Objekte verlinken
und in der Anlagenliste der entsprechenden Anwendung als PDF anzeigen.
Die Belegnummer sollte existieren, sonst wird abgelegt, aber Du wirst in der Anlagenliste nix sehen (bzw. nur den Eintrag in der TOA01) !

Mein Customizing:
OAC0
Z4 ARCHLINK HTTP-Content-Server 0045

OAC2
SDOORDER Auftragsbestätigung OTF

OAC3
VBAK SDOORDER X Z4 TOA01 10
Das Programm verwendet ein Sapscriptformular (ZTEST im Anhang) und legt es im Archiv ab.
Im GOSmenu der VA03 kann man das Ergebnis sehen (habs getestet).
Deine Aufgabe besteht wohl nun darin, mein Programm für Deine Zwecke anzupassen und nach Erfolg Dein Druckprogramm zu ergänzen.
Ohne "Commit Work" ging es nicht ! Ggf. muß das auch im Druckprogramm (nach dem Close_Form) eingebaut werden.

Code: Alles auswählen.

    :
* Im VERBUCHER kein Commit work !!
*Values: 1: in update task, 0: not in update task
  CALL FUNCTION 'TH_IN_UPDATE_TASK'
    IMPORTING
      in_update_task = l_utask.

  IF l_utask IS INITIAL.
    COMMIT WORK.
  ENDIF.
    :
viel Erfolg. :wink:
lg Jens

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_ARCHIVE_SAPSCRIPT                                     *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZTEST_ARCHIVE_SAPSCRIPT.

* Druck Variablen
DATA:
l_utask TYPE sy-subrc,
dpar TYPE itcpo,
l_toa TYPE toa_dara,
l_arc TYPE arc_params.

START-OF-SELECTION.

  SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME.

  SELECTION-SCREEN SKIP.
  PARAMETERS: lp TYPE itcpo-tddest DEFAULT 'LP01'.
  SELECTION-SCREEN SKIP.

  SELECTION-SCREEN END OF BLOCK a.

* Simulation Drucken und Ablegen einer Auftragsbestätigung (BelegNr. 2)
  CLEAR l_toa.
*l_toa-FUNCTION
  l_toa-mandant = sy-mandt.
*l_toa-DEL_DATE
  l_toa-sap_object = 'VBAK'.
  l_toa-ar_object = 'SDOORDER'.
  l_toa-object_id = '0000000002'. "Belegnummer
*l_toa-FORM_ID
*l_toa-FORMARCHIV
*l_toa-RESERVE
*l_toa-NOTIZ

  CLEAR l_arc.

  l_arc-sap_object = 'VBAK'.
  l_arc-ar_object = 'SDOORDER'.
*l_arc-ARCHIV_ID
*l_arc-DOC_TYPE
*l_arc-RPC_HOST
*l_arc-RPC_SERVIC
*l_arc-INTERFACE
  l_arc-mandant = sy-mandt.
*l_arc-REPORT
*l_arc-INFO
*l_arc-ARCTEXT
*l_arc-DATUM
  l_arc-arcuser = sy-uname.
  l_arc-printer = lp.
*l_arc-FORMULAR
*l_arc-ARCHIVPATH
*l_arc-PROTOKOLL
*l_arc-VERSION
*l_arc-ACHECK

* Drucker-Parameter Defaults
  CLEAR dpar.
  dpar-tddest = lp.     "Spool: Ausgabegerät
  dpar-tdcopies = 0.    "Anzahl Ausdrucke
  dpar-tdimmed = 'X'.   "Druckparameter, sofort ausgeben
  dpar-tddelete =' '.   "Druckparameter, löschen nach Ausgabe
*  dpar-tdnewid = 'X'.   "Druckparameter, neuer Spool-Auftrag
*  dpar-tdlifetime = '1'."Spool-Verweildauer (Tage)
*  dpar-tdfinal = 'X'.   "Spool-Auftrag ist abgeschlossen
  dpar-tdprogram = sy-cprog.
  dpar-tdarmod = 3.

  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
*   APPLICATION                       = 'TX'
   archive_index                     = l_toa
   archive_params                    = l_arc
      device                            = 'PRINTER'
      dialog                            = ' '
      form                              = 'ZTEST'
      language                          = 'D'
      OPTIONS                           = dpar
*   MAIL_SENDER                       =
*   MAIL_RECIPIENT                    =
*   MAIL_APPL_OBJECT                  =
*   RAW_DATA_INTERFACE                = '*'
*   SPONUMIV                          =
* IMPORTING
*   LANGUAGE                          =
*   NEW_ARCHIVE_PARAMS                =
*   RESULT                            =
   EXCEPTIONS
     canceled                          = 1
     device                            = 2
     form                              = 3
     OPTIONS                           = 4
     unclosed                          = 5
     mail_options                      = 6
     archive_error                     = 7
     invalid_fax_number                = 8
     more_params_needed_in_batch       = 9
     spool_error                       = 10
     codepage                          = 11
     OTHERS                            = 12.

  IF sy-subrc = 0.

    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'MAIN'
        window  = 'MAIN'.


    CALL FUNCTION 'CLOSE_FORM'
*  IMPORTING
*   RESULT                         = Result
*   RDI_RESULT                     =
* TABLES
*   OTFDATA                        =
     EXCEPTIONS
       unopened                       = 1
       bad_pageformat_for_print       = 2
       send_error                     = 3
       spool_error                    = 4
       codepage                       = 5
       OTHERS                         = 6.

  ENDIF.

* Im VERBUCHER kein Commit work !!
*Values: 1: in update task, 0: not in update task
  CALL FUNCTION 'TH_IN_UPDATE_TASK'
    IMPORTING
      in_update_task = l_utask.

  IF l_utask IS INITIAL.
    COMMIT WORK.
  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: Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
Hallo Jens,

vielen vielen Dank für deine Bemühungen. Es hat jetzt funktioniert.

Es lag am COMMIT.

Viele Grüße,
Daniel

Re: Auftragspapiere an GOS anbinden

Beitrag von schusterd (ForumUser / 17 / 0 / 0 ) »
der Vollständigkeit halber hier noch mein Coding:

Code: Alles auswählen.

FORM zpppr_open_form USING STARTPAGE.

  DATA: ls_archive_index  TYPE toa_dara,
        ls_archive_params TYPE arc_params,
        ls_params         TYPE pri_params.

* Druckoptionen anpassen:
  pr_options-tdarmod = '3'.                   "drucken und ablegen

* Archivindex (toa_dara) ermitteln:
  ls_archive_index-mandant    = sy-mandt.
  ls_archive_index-sap_object = 'BUS2005'.    "BusinessObjekt 'Fertigungsauftrag'
  ls_archive_index-object_id  = caufvd-aufnr. "Verknüpfung zwischen Auftrag und Dokument
  ls_archive_index-ar_object  = 'ZPP1001OBJ'. "Dokumentart
  ls_archive_index-reserve(6) = 'COMMIT'.     "COMMIT nach close_form
* die restlichen Parameter kommen aus dem Customizing (TCode OAC2)

* Archivparameter (arc_params) ermitteln:
  CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      destination            = sy-pdest
      immediately            = 'X'
      new_list_id            = 'X'
      sap_object             = ls_archive_index-sap_object
      ar_object              = ls_archive_index-ar_object
      archive_mode           = '3' "drucken und ablegen
      no_dialog              = 'X'
    IMPORTING
      out_parameters         = ls_params
      out_archive_parameters = ls_archive_params
    EXCEPTIONS
      archive_info_not_found = 01
      invalid_print_params   = 02
      invalid_archive_params = 03.

* Formulardruck öffnen:
  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      archive_index  = ls_archive_index
      archive_params = ls_archive_params
      device         = 'PRINTER'
      dialog         = space
      form           = print_co-forml
      language       = print_co-spras
      options        = pr_options
    EXCEPTIONS
      canceled       = 01
      device         = 02
      form           = 03
      options        = 04
      unclosed       = 05.

* Formular ausführen:
  CALL FUNCTION 'START_FORM'
    EXPORTING
      startpage     = startpage
      archive_index = ls_archive_index.

  CLEAR flg_main_started.

ENDFORM.                    " zpppr_open_form
Wenn man folgenden Wert setz, dann erfolgt auch der Commit selbstständig und man muss den Commit nicht im Programm einfügen:

Code: Alles auswählen.

ls_archive_index-reserve(6) = 'COMMIT'.
Viele Grüße,
Daniel

Re: Auftragspapiere an GOS anbinden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Daniel.
Danke für die Response.

Code: Alles auswählen.

ls_archive_index-reserve(6) = 'COMMIT'.

kannte ich noch nicht.
lg Jens
(ob das wohl auch bei Smartforms funktioniert ?)
<:: 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: Auftragspapiere an GOS anbinden

Beitrag von vowi (ForumUser / 4 / 0 / 0 ) »
Hallo,

ich bin auch noch recht frisch im ABAP Umfeld und habe ein ähnliches Vorhaben.

Und zwar soll im IS-M/SD Umfeld ein per SAPSCRIPT erzeugter indivdueller Brief archiviert werden und dann im GOS in der Anlagenliste erscheinen.

Ich habe unter OAC2 die Dokumentenart angelegt.
ZIX_B_ZIB1 ZIB1 OTF

Diese habe ich unter OAC3 mit dem bereits vorhandenen Objecttyp BUS2107001 und der Verknüpfung TOA03 verknüpft.
BUS2107001 ZIX_B_ZIB1 X P1 TOA03

Wobei ich mir nicht sicher bin, ob TOA03 hier richtig ist, aber mit TOA01 (wie von Euch verwendet) gehts auch nicht. :-)
Unsere Serienbriefe werden bereits mit TOA03 archiviert und auch im GOS angezeigt. Daher dachte ich, das müsste passen.

Im Druckprogramm gebe ich alles mit

Code: Alles auswählen.

** Objekt-Id bestimmen
  objid+00(16)  = nast-objky.
  objid+16(04)  = nast-kschl.
  objid+20(08)  = nast-erdat.
  objid+28(06)  = nast-eruhr.

* DARA-Parameter bestimmen
  wa_dara-mandant    = sy-mandt.
  wa_dara-sap_object = 'BUS2107001'.  "Objekttyp
  wa_dara-ar_object  = 'ZIX_B_ZIB1'.  "Dokumentart
  wa_dara-object_id  = objid.         "Objekt-Id
  wa_dara-reserve(6) = 'COMMIT'.


* Archiv-Parameter bestimmen
  CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      new_list_id            = 'X'
      archive_mode           = '3'                
     ar_object              = wa_dara-ar_object   
      immediately            = 'X'
      no_dialog              = 'X'
      sap_object             = wa_dara-sap_object 
    IMPORTING
      out_archive_parameters = wa_archiv
      out_parameters         = wa_print
    EXCEPTIONS
      archive_info_not_found = 1
      invalid_print_params   = 2
      invalid_archive_params = 3
      OTHERS                 = 4.
  IF sy-subrc <> 0. rc = sy-subrc. EXIT. ENDIF.
Beim Aufruf wird auch alles an OPEN_FORM übergeben und in der TOA03 wird letztlich auch ein Eintrag reingeschrieben, aber in der Anlagenliste beim Auftrag ist kein Eintrag zu finden.

Was mir nicht klar ist: Muss die wa_dara-object_id = objid nach irgendeinem Schema vorgegeben werden oder kann ich da verwenden was ich will?

Muss ich händisch noch irgendwelche Tabellen füllen? Ich hab was gelesen von Verknüpfungstabellen SRGBTBREL und SOOD.

Vielleicht habt ihr noch einen Tipp für mich.

Vielen Dank im voraus.

Gruß
Volker

Re: Auftragspapiere an GOS anbinden

Beitrag von vowi (ForumUser / 4 / 0 / 0 ) »
Hat sich erledigt!

Re: Auftragspapiere an GOS anbinden

Beitrag von mariuskirschstein (ForumUser / 1 / 0 / 0 ) »
Hallo zusammen.

Ich weiß, das Thema ist schon älter, aber ich versuche gerade genau das abzubilden durch Kopie des Standardprogramms PSFCPICK. Ich habe alle Einstellungen vorgenommen wie oben beschrieben, dennoch gelingt es mir nicht, das Dokument als GOS abzulegen.

Mein Code:

Code: Alles auswählen.

FORM pppr_open_form USING startpage.

  DATA: l_options        TYPE itcpo,
        l_archive_index  TYPE toa_dara,
        l_archive_params TYPE arc_params,
        i_archive_params TYPE arc_params,
        i_result         TYPE itcpp,
        ls_params         TYPE pri_params,
        ls_archive_params TYPE arc_params.

  pr_options-tdarmod = '3'. " drucken und ablegen

* Archive Index (XXXX gegen Deine Parameter ersetzen)
  l_archive_index-mandant    = sy-mandt.
  l_ARCHIVE_INDEX-sap_object = 'BUS2005'.
  l_ARCHIVE_INDEX-object_id = caufvd-aufnr.
  l_ARCHIVE_INDEX-ar_object = 'ZPPKOMP'.
  l_archive_index-reserve(6) = 'COMMIT'.
* die restlichen Parameter kommen aus dem Customizing (TCode OAC2)

* Archivparameter (arc_params) ermitteln:

   CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      destination            = sy-pdest
      immediately            = 'X'
      new_list_id            = 'X'
      sap_object             = l_archive_index-sap_object
      ar_object              = l_archive_index-ar_object
      archive_mode           = '2' "nur ablegen
      no_dialog              = 'X'
    IMPORTING
      out_parameters         = ls_params
      out_archive_parameters = ls_archive_params
    EXCEPTIONS
      archive_info_not_found = 01
      invalid_print_params   = 02
      invalid_archive_params = 03.

  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      archive_index  = l_ARCHIVE_INDEX
      archive_params = ls_archive_params
      device         = 'PRINTER'
      dialog         = space
      form           = print_co-forml
      language       = print_co-spras
      options        = pr_options
    EXCEPTIONS
      canceled       = 01
      device         = 02
      form           = 03
      options        = 04
      unclosed       = 05.
  CALL FUNCTION 'START_FORM'
    EXPORTING
      startpage = startpage.
  CLEAR flg_main_started.

ENDFORM.
CLOSE:

Code: Alles auswählen.

FORM pppr_close_form.
  DATA: l_utask TYPE sy-subrc.
  IF NOT flg_main_started IS INITIAL.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'MAIN_FINISH'
        window  = 'MAIN'.
  ENDIF.
  CALL FUNCTION 'END_FORM'.
  CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
      result = pr_result
    EXCEPTIONS
      unopened                       = 1
       bad_pageformat_for_print       = 2
       send_error                     = 3
       spool_error                    = 4
       codepage                       = 5
       OTHERS                         = 6.
* Im VERBUCHER kein Commit work !!
*Values: 1: in update task, 0: not in update task
  CALL FUNCTION 'TH_IN_UPDATE_TASK'
    IMPORTING
      in_update_task = l_utask.

  IF l_utask IS INITIAL.
    COMMIT WORK.
  ENDIF.

ENDFORM.
Habt ihr vielleicht einen Tipp, woran es noch liegen könnte?

Danke und Grüße
Marius

Re: Auftragspapiere an GOS anbinden

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,
eine mögliche Lösung wird auch hier beschrieben:

http://solidforms.de/archivieren-von-sa ... gsauftrag/

Gruß Wolfgang

Vergleichbare Themen

2
Antw.
8548
Views
CRM 4.0 System anbinden
von lemmy123 » 01.10.2005 21:33 • Verfasst in Enterprise Portal
3
Antw.
1518
Views
Tool an SAP anbinden, API etc.
von jensschladitz » 06.02.2019 20:45 • Verfasst in ABAP® Core
0
Antw.
1758
Views
Expressdienst DPD anbinden
von sylvile » 31.07.2008 15:29 • Verfasst in Sales and Distribution
16
Antw.
18332
Views
Suchhilfe dynamisch anbinden
von Kowalski » 17.07.2012 16:11 • Verfasst in ABAP® Core
14
Antw.
7048
Views
Etikettendrucker anbinden (SPAD)
von sharkofnose » 27.11.2019 23:40 • Verfasst in Basis

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.