sapscript Fax über sapconnect

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

sapscript Fax über sapconnect

Beitrag von jspranz (ForumUser / 76 / 5 / 0 ) »
Kann mir jemand ein Beispielcoding geben um mit SAP-Connect (Transaktion SOST) zu Faxen.

Wenn ich das korrekt verstehe müßte das über den FuBa OPEN_FORM gehen. Aber wie - mit welchen Parametern?
Reicht es dann die Fax-Nummer in den Parametern anzugeben?
Wird dann eine TELEFAX oder eine MAIL-Ausgabe durchgeführt....?

Ich würde mich sehr freuen, wenn ich von jemand ein Beispiel-Coding bekommen könnte, da ich schon ein paar Stunden gegooglt, codiert und ausprobiert habe.

Wäre auch nicht schlecht, wenn andere suchende das im Forum finden könnten

Der schon im abapforum bestehende Beitrag http://www.abapforum.com/forum/viewtopi ... fax#p40751 hat mir leider nicht geholfen.

Muß man das "ausgedruckte" Dokument in PDF umwandeln und dann per email-Funktionsbaustein faxen?
Das wäre umständlich, wenn es schon entsprechende Parameter beim OPEN_FORM gibt - oder?

SAPCONNECT ist korrekt eingerichtet, wir nutzen es schon für e-mail-Versand und Faxversand (Testwweise aus dem Business Workplace).

Leider hat die bisherige Suche im Forum keine Antwort gebracht.

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


Re: sapscript Fax über sapconnect

Beitrag von jspranz (ForumUser / 76 / 5 / 0 ) »
Es gibt ein Demoprogramm. Dieses macht es über das Business Communication Interface.
Nur wenn ich es so mache, programmiere ich viel mehr für dieses Interface als für das eigentliche Druckprogramm.

Geht das nicht einfacher?

Code: Alles auswählen.


REPORT RSSOKIF2 . 

************************************************************************ 
*  Verwendung des Kommunikations-Interfaces über SAPscript: 
* 
*  Dieser Report zeigt an einem einfachen Beispiel, wie man auch 
*  über SAPscript von der erweiterten Funktionalität des 
*  neuen Kommunikations-Interfaces profitieren kann. 
*  Hier gezeigt am Beispiel des FAXens. 
* 
************************************************************************ 
TABLES: SOUD. 

PARAMETERS:  LAND   LIKE SOXFX-REC_STATE DEFAULT 'DE' OBLIGATORY. 
PARAMETERS:  NUMBER LIKE SOXFX-REC_FAX OBLIGATORY. 

* Makros für Zugriff aufs BOR 
INCLUDE <CNTN01>. 

* Datendeklaration 
* * (BOR) 
DATA: SENDER_ID      LIKE SWOTOBJID, 
      APPL_OBJECT_ID LIKE SWOTOBJID, 
      RECIPIENT_ID   LIKE SWOTOBJID, 
      RECIPIENT      TYPE SWC_OBJECT, 
      SENDER         TYPE SWC_OBJECT, 
      RECIPIENT_TAB  TYPE SWC_OBJECT OCCURS 0 WITH HEADER LINE, 
      FOLDER         TYPE SWC_OBJECT, 
      BEGIN OF SOFMFOL_KEY, 
          FOLDERTYPE   LIKE SOFM-FOLTP, 
          FOLDERYEAR   LIKE SOFM-FOLYR, 
          FOLDERNUMBER LIKE SOFM-FOLNO, 
          TYPE         LIKE SOFM-DOCTP, 
          YEAR         LIKE SOFM-DOCYR, 
          NUMBER       LIKE SOFM-DOCNO, 
          FORWARDER    LIKE SOUB-USRNAM, 
      END OF SOFMFOL_KEY, 
      BOR_KEY        LIKE SWOTOBJID-OBJKEY, 
      ADDRESS_STRING LIKE SOXNA-FULLNAME. 
* * (SAPscript) 
DATA: HEADER LIKE THEAD, 
      RESULT LIKE ITCPP, 
      LINES LIKE TLINE OCCURS 0 WITH HEADER LINE, 
      OTFDATA LIKE ITCOO OCCURS 0, 
      OPTIONS LIKE ITCPO. 

* Deklaration eines Containers 
SWC_CONTAINER CONTAINER. 


************************************************************************ 
*                    Sender (BOR-Objekt-ID)                            * 
************************************************************************ 

* Objektreferenz auf ein RECIPIENT-Objekt erzeugen 
SWC_CREATE_OBJECT SENDER 'RECIPIENT' SPACE. 
* Container leeren 
SWC_CLEAR_CONTAINER CONTAINER. 
* Adresse (aufrufender interner Benutzer) 
SWC_SET_ELEMENT CONTAINER 'AddressString' SY-UNAME. 
* Adreßtyp (interner Benutzer) 
SWC_SET_ELEMENT CONTAINER 'TypeId' 'B'. 
* Aufruf der Methode RECIPIENT.FindAddress 
SWC_CALL_METHOD SENDER 'FindAddress' CONTAINER. 
* Ausgabe der zur Ausnahme gehörigen Fehlermeldung 
IF SY-SUBRC NE 0. 
  MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO. 
ENDIF. 
* Ermittlung der BOR-Objekt-ID 
SWC_OBJECT_TO_PERSISTENT SENDER SENDER_ID. 


************************************************************************ 
*                   Empfänger (BOR-Objekt-ID)                          * 
************************************************************************ 

* Objektreferenz auf ein RECIPIENT-Objekt erzeugen 
SWC_CREATE_OBJECT RECIPIENT 'RECIPIENT' SPACE. 
* Container leeren 
SWC_CLEAR_CONTAINER CONTAINER. 
* Importparameter: Adreßtyp (FAX) 
SWC_SET_ELEMENT CONTAINER 'TypeId' 'F'. 
* Importparameter: FAX-Nummer 
MOVE: LAND   TO ADDRESS_STRING, 
      NUMBER TO ADDRESS_STRING+3. 
SWC_SET_ELEMENT CONTAINER 'AddressString' ADDRESS_STRING. 
* Aufruf der Methode RECIPIENT.CreateAddress 
SWC_CALL_METHOD RECIPIENT 'CreateAddress' CONTAINER. 
* Ausgabe der zur Ausnahme gehörigen Fehlermeldung 
IF SY-SUBRC NE 0. 
  MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO. 
ENDIF. 
* Ermittlung der BOR-Objekt-ID 
SWC_OBJECT_TO_PERSISTENT RECIPIENT RECIPIENT_ID. 

************************************************************************ 
*                 Anwendungsobjekt (BOR-Objekt-ID)                     * 
************************************************************************ 

* Dieser Parameter (MAIL_APPL_OBJECT) sollte mit der BOR-Objekt-ID 
* des Anwendungsobjekts (z.B. Rechnung, Bestellung), von dem aus 
* das Senden initiiert wird, gefüllt werden. Beim Senden wird dieses 
* Anwendungsobjekt automatisch mit dem Dokument verknüpft. 
* In diesem Beispiel wird als Anwendungsobjekt-ID die BOR-ID des 
* Eingangs des Reportaufrufers genommen. 

* Lesen der Eingangs-ID des Aufrufers 
SELECT * FROM SOUD WHERE SAPNAM LIKE SY-UNAME AND DELETED = ' '. 
ENDSELECT. 
IF SY-SUBRC NE 0. 
* Aufrufer besitzt kein Office => wird angelegt 
  CALL FUNCTION 'SO_USER_AUTOMATIC_INSERT' 
       EXPORTING 
            SAPNAME        = SY-UNAME 
       EXCEPTIONS 
            NO_INSERT      = 1 
            SAP_NAME_EXIST = 2 
            X_ERROR        = 3 
            OTHERS         = 4. 
  IF SY-SUBRC NE 0. 
*   Office konnte nicht angelegt werden: Inbox-ID = SPACE 
    CLEAR SOUD. 
  ELSE. 
* * Neuer Versuch: Lesen der Eingangs-ID des Aufrufers 
    SELECT * FROM SOUD WHERE SAPNAM LIKE SY-UNAME AND DELETED = ' '. 
    ENDSELECT. 
  ENDIF. 
ENDIF. 

* Anlegen eines Anwendungsobjekts (hier vom Typ SOFMFOL) 
CLEAR SOFMFOL_KEY. 
SOFMFOL_KEY-TYPE   = 'FOL'. 
SOFMFOL_KEY-YEAR   = SOUD-INBYR. 
SOFMFOL_KEY-NUMBER = SOUD-INBNO. 
BOR_KEY = SOFMFOL_KEY. 
IF NOT BOR_KEY IS INITIAL. 
  SWC_CREATE_OBJECT FOLDER 'SOFMFOL' BOR_KEY. 
  IF SY-SUBRC = 0. 
* * Ermittlung der BOR-Objekt-ID 
    SWC_OBJECT_TO_PERSISTENT FOLDER APPL_OBJECT_ID. 
    IF SY-SUBRC NE 0. 
      CLEAR APPL_OBJECT_ID. 
    ENDIF. 
  ENDIF. 
ELSE. 
  CLEAR APPL_OBJECT_ID. 
ENDIF. 

************************************************************************ 
*        Anlegen des Textbausteins, d.h. des zu faxenden Textes        * 
************************************************************************ 

REFRESH LINES. 
CLEAR LINES. 
LINES-TDLINE = 'FAXen über SAPscript mit Device = MAIL,'(104). 
APPEND LINES. 
CLEAR LINES. 
LINES-TDFORMAT = '* '. 
LINES-TDLINE = 'd.h. über das Business Communication Interface.'(103). 
APPEND LINES. 

* Füllen des Text-Headers für SAPscript 
CLEAR HEADER. 
HEADER-TDOBJECT = 'TEXT'. 
HEADER-TDNAME   = 'Testfax'(102). 
HEADER-TDID     = 'ST'. 
HEADER-TDSPRAS  = SY-LANGU. 
HEADER-TDFORM   = 'SYSTEM'. 

CLEAR OPTIONS. 
  CONCATENATE 'Senden über SAPscript'(101) SY-DATUM SY-UZEIT 
             INTO OPTIONS-TDTITLE SEPARATED BY SPACE. 


************************************************************************ 
*                     Aufruf von SAPscript                             * 
************************************************************************ 

* Auflösen des Recipient-Objekts in "flache" Recipient-Objekte mit 
* Hilfe der Methode Expand. 
* Bei diesem konkreten Beispiel (Recipient = genau eine Fax-Nummer) 
* ist diese Auflösung eigentlich nicht nötig. Für den allgemeinen Fall 
* wird diese Vorgehensweise jedoch dringend empfohlen und daher in 
* diesem Beispiel vorgeführt. 
SWC_CLEAR_CONTAINER CONTAINER. 
REFRESH RECIPIENT_TAB. 
SWC_CALL_METHOD RECIPIENT 'Expand' CONTAINER. 
IF SY-SUBRC NE 0. 
  MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO. 
ENDIF. 
* "Flache" Recipient-Objekte aus Container lesen 
SWC_GET_TABLE CONTAINER 'ResultTable' RECIPIENT_TAB. 
IF SY-SUBRC NE 0. 
  REFRESH RECIPIENT_TAB. 
ENDIF. 

* Loop über die "flachen" Recipient-Objekt. 
LOOP AT RECIPIENT_TAB. 
* * Für jedes "flache" Recipient-Objekt ein Aufruf von SAPscript: 
* * BOR-Objekt-ID des Handles ermitteln 
  SWC_OBJECT_TO_PERSISTENT RECIPIENT_TAB RECIPIENT_ID. 
* * Aufruf von OPEN_FORM 
  CALL FUNCTION 'OPEN_FORM' 
       EXPORTING 
            DEVICE           = 'MAIL' 
            DIALOG           = SPACE 
            FORM             = HEADER-TDFORM 
            LANGUAGE         = HEADER-TDSPRAS 
            OPTIONS          = OPTIONS 
            MAIL_SENDER      = SENDER_ID 
            MAIL_RECIPIENT   = RECIPIENT_ID 
            MAIL_APPL_OBJECT = APPL_OBJECT_ID 
       EXCEPTIONS 
            CANCELED         = 1 
            DEVICE           = 2 
            FORM             = 3 
            OPTIONS          = 4 
            UNCLOSED         = 5 
            MAIL_OPTIONS     = 6 
            OTHERS           = 7. 
  IF SY-SUBRC NE 0. 
    MESSAGE A634(SO) WITH 'OPEN_FORM' SY-SUBRC. 
  ENDIF. 

  CALL FUNCTION 'WRITE_FORM_LINES' 
       EXPORTING 
            HEADER = HEADER 
       TABLES 
            LINES  = LINES 
       EXCEPTIONS 
            OTHERS = 1. 
  IF SY-SUBRC NE 0. 
    MESSAGE A634(SO) WITH 'WRITE_FORM_LINES' SY-SUBRC. 
  ENDIF. 

  CALL FUNCTION 'CLOSE_FORM' 
       IMPORTING 
            RESULT  = RESULT 
       TABLES 
            OTFDATA = OTFDATA 
       EXCEPTIONS 
            OTHERS  = 1. 
  IF SY-SUBRC NE 0. 
    MESSAGE A634(SO) WITH 'CLOSE_FORM' SY-SUBRC. 
  ENDIF. 

* * Commit work wird unbedingt benötigt für Verknüpfung 
  COMMIT WORK. 

* Protokollausgabe 
  WRITE: / 'Dokument erfolgreich in die Sendequeue gestellt.'(001). 
  WRITE: / 'Falls für die Kommunikationsart FAX kein Sendeprozess'(002). 
  WRITE: / 'regelmäßig eingeplant ist, bitte Sendeprozess in'(003). 
  WRITE: / 'SAPconnect (TA SCOT) von Hand starten.'(004). 

ENDLOOP.



Seite 1 von 1

Vergleichbare Themen

0
Antw.
1776
Views
SAPconnect - Sapscript Formulare als TIFF im Mailanhang
von willi100 » 04.10.2011 17:05 • Verfasst in SAP - Allgemeines
0
Antw.
934
Views
Excel Tabelle über SAPConnect verschicken
von amjahid » 12.06.2008 15:25 • Verfasst in ABAP® Core
4
Antw.
3277
Views
Faxe via SAPConnect/SMTP werden mehrmals versendet
von whasl » 03.03.2008 20:26 • Verfasst in Basis
5
Antw.
3598
Views
SAPSCRIPT
von KEN » 08.08.2005 09:21 • Verfasst in ABAP® für Anfänger
1
Antw.
1604
Views
SAPSCRIPT
von Gast2 » 19.05.2005 14:25 • Verfasst in ABAP® Core

Über diesen Beitrag

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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 7 Stunden von DeathAndPain gelöst 22 / 2894
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 2 / 915
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 485

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 7 Stunden von DeathAndPain gelöst 22 / 2894
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 2 / 915
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 485

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2502
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9083