[ABAP] SAP-Office: Emails und Attachements lesen

* Anhänge lesen mit Funktionsbaustein: SO_ATTACHMENT_READ

CLASS lcl_salv DEFINITION FINAL.

  PUBLIC SECTION.

    CLASS-DATA: o_salv TYPE REF TO cl_salv_table.
    CLASS-DATA: it_sood TYPE STANDARD TABLE OF sood WITH DEFAULT KEY.

    CLASS-METHODS on_double_click FOR EVENT double_click OF cl_salv_events_table
      IMPORTING
        row
        column
        sender.
ENDCLASS.

CLASS lcl_salv IMPLEMENTATION.

  METHOD on_double_click.
    IF o_salv IS BOUND.

* Wert in der geklickten Zelle holen
      DATA(it_sel) = o_salv->get_selections( )->get_selected_cells( ).

      IF lines( it_sel ) > 0.
* Schlüsselwerte der selektierten Zeile holen
        DATA(lv_soodk) = VALUE soodk( objtp = it_sood[ it_sel[ 1 ]-row ]-objtp
                                      objyr = it_sood[ it_sel[ 1 ]-row ]-objyr
                                      objno = it_sood[ it_sel[ 1 ]-row ]-objno ).

        DATA: it_sood5 TYPE STANDARD TABLE OF sood5 WITH DEFAULT KEY.

* SAPoffice: Ermitteln aller Anlagen zu einem Dokument
        CALL FUNCTION 'SO_ATTACHMENT_LIST_READ'
          EXPORTING
            object_id             = lv_soodk
          TABLES
            objects               = it_sood5
          EXCEPTIONS
            system_failure        = 1
            communication_failure = 2
            OTHERS                = 3.

        IF sy-subrc = 0.

          TRY.
              DATA: o_pop TYPE REF TO cl_salv_table.

              cl_salv_table=>factory( IMPORTING r_salv_table = o_pop
                                      CHANGING  t_table      = it_sood5 ).

              o_pop->get_functions( )->set_all( abap_true ).
              o_pop->get_columns( )->set_optimize( abap_true ).
              o_pop->get_display_settings( )->set_list_header( 'Attachements' ).
              o_pop->get_display_settings( )->set_striped_pattern( abap_true ).
              o_pop->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ).

              o_pop->set_screen_popup( start_column = 1
                                       end_column   = 140
                                       start_line   = 1
                                       end_line     = 20 ).
              o_pop->display( ).
            CATCH cx_root INTO DATA(e_txt).
              WRITE: / e_txt->get_text( ).
          ENDTRY.

        ENDIF.
      ENDIF.
    ENDIF.
  ENDMETHOD.

ENDCLASS.

DATA: lv_obj_type TYPE sood-objtp.
DATA: lv_user TYPE usr02-bname.

SELECT-OPTIONS: so_type FOR lv_obj_type.
SELECT-OPTIONS: so_user FOR lv_user.
PARAMETERS: p_title TYPE sood-objdes DEFAULT ''.

INITIALIZATION.

* Emails: Typ "RAW"
  so_type[] = VALUE #( ( sign   = 'I'
                         option = 'EQ'
                         low    = 'RAW' ) ).

* Benutzer
  so_user[] = VALUE #( ( sign   = 'I'
                         option = 'EQ'
                         low    = sy-uname ) ).

START-OF-SELECTION.

* unscharfe Suche nach Email-Titel (Subject) mit "%"
  DATA(lv_title) = CONV sood-objdes( |%{ p_title }%| ).

* SAPoffice: Objektdefinition
  SELECT FROM sood AS s
    FIELDS *
    WHERE s~objtp IN @so_type
      AND s~ownnam IN @so_user
      AND s~objdes LIKE @lv_title
    INTO TABLE @lcl_salv=>it_sood.

  IF sy-subrc = 0.

    TRY.
* SALV-Table
        DATA: o_salv TYPE REF TO cl_salv_table.

        cl_salv_table=>factory( IMPORTING r_salv_table = lcl_salv=>o_salv
                                CHANGING  t_table      = lcl_salv=>it_sood ).

* Grundeinstellungen
        lcl_salv=>o_salv->get_functions( )->set_all( abap_true ).
        lcl_salv=>o_salv->get_columns( )->set_optimize( abap_true ).
        lcl_salv=>o_salv->get_display_settings( )->set_list_header( 'Mails' ).
        lcl_salv=>o_salv->get_display_settings( )->set_striped_pattern( abap_true ).
        lcl_salv=>o_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ).

* Spaltenüberschriften: technischer Name und Beschreibungstexte, Short Text und Medium Text leer lassen für Autosize
        LOOP AT lcl_salv=>o_salv->get_columns( )->get( ) ASSIGNING FIELD-SYMBOL(<c>).
          DATA(o_col) = <c>-r_column.
          o_col->set_short_text( || ).
          o_col->set_medium_text( || ).
          o_col->set_long_text( |{ o_col->get_columnname( ) } [{ o_col->get_long_text( ) }]| ).
        ENDLOOP.

* Event-Hanlder für Link-Klick
        SET HANDLER lcl_salv=>on_double_click FOR lcl_salv=>o_salv->get_event( ).

        lcl_salv=>o_salv->display( ).

      CATCH cx_root INTO DATA(e_txt).
        WRITE: / e_txt->get_text( ).
    ENDTRY.
  ENDIF.

[SAP] Generic Object Services (GOS)

Transaktionen

OAC0 (CMS Customizing Content Repositories)
OAC2 (SAP ArchiveLink Dokumentarten global)
OAC3 (SAP ArchiveLink Verknüpfungen)
SWO1 (Business Object Builder)

Tabellen

SDOKSTCA (SDOK: Speicherkategorien physischer Informationsobjekte)
TOAOM (SAP ArchiveLink: Metatabelle für Verknüpfungen)
TOAAR (Kommunikationskonfigurationstabelle Ablagesysteme)
TOASR (Sprachabhängige Tabelle für TOAAR)
TOADV (SAP ArchiveLink: Globale Dokumentarten SAP ArchiveLink)
TOAVE (Dokumentarten global)
TOACO (Prüftabelle für die Verknüpfungstabellen)
TOA01 (Verknüpfungstabelle 1)
TOA02 (Verknüpfungstabelle 2)
TOA03 (Verknüpfungstabelle 3)
TOAAT Table to store the File attributes
TOADD SAP ArchiveLink Prüftabelle DOK_Typ
TOJTB (Business Object Repository Grunddaten)
SGOSATTR (SGOS: Attribute der generischen Dienste)
SOOD (SAPoffice: Objektdefinition)
SOFM (SAPoffice: Mappe Inhalt)
SOC3 (SAPoffice: DB für Objekte (Import/Export))
SOFFCONT1 (SOFF: Tabelle für Dokumentinhalte (Import/Export))

Reports

RSGOSCHECK (Programm für GOS überprüfen)

Klassen

CL_GOS_ATTACHMENT_QUERY (Statistiken für Anlagen)
CL_BINARY_RELATION (API für Binäre Verknüpfung)
CL_ALINK_CONNECTION (ArchiveLink Verknüpfungen)

User-Parameter

SD_SWU_ACTIVE (Workflowbox in VA02 & VA03 aktivieren)

Links

[SAP] SAPOffice: Sendeaufträge des SAPConnect (Workplace-Mails, EMails, Faxe …) ansehen / prüfen

Transaktionen


SOST
(SAPconnect Sendeaufträge)
SOSB (Übersicht Sendeaufträge (Benutzer))
SOSG (Übersicht Sendeaufträge (Gruppen))

  • Anzeige von Sendeaufträgen (Zeitraum, Sendestatus, Sender)
  • Mailversand manuell starten: Menü -> Sendeauftrag -> Sendeprozess für Auswahl starten

SOIN (BCS: Eingehende Sendeaufträge (SMTP))

Tabellen

SOST (SAPoffice: Statuslogtabelle)
SOOS (SAPoffice: Sendevorgang)
SOOD (SAPoffice: Objektdefinition)
SOES (SAPoffice: externer Sendevorgang)
SOFD (SAPoffice: Objektdefinition)
ADCP (Zuordnung Person/Adresse (Business Address Services))
ADRP (Personen (Business Address Services))
ADRC (Adressen (Business Address Services))
ADRCT (Texte zu Adressen (Business Address Services))
USR01 (Benutzerstamm (Runtimedaten))
USR05 (Benutzerstamm Parameter-ID)
USR06 (Zusatzdaten pro Benutzer)
SXNODES (SAPconnect: Kommunikationsknoten)
SXROUTE (SAPconnect: Routingtabelle)
SXPARAMS (SAPconnect: Parametertabelle)

Views

V_SO_SOST (Sendevorgänge Sendedatum und Titel)

Funktionsbausteine

SX_NODE_ID_DETERMINE (SAPconnect: Routingmodul (Findung des Ausgangsknotens))

  • Bestimmung CDG-Parameter für Sendergruppe (siehe Hinweis 2348016)

SO_ATTACHMENT_READ (SAPoffice: Lesen einer Anlage)
SO_ATTACHMENT_LIST_READ (SAPoffice: Ermitteln aller Anlagen zu einem Dokument)

Reports

RSCONN01 (SAPconnect: Sendeprozeß starten)

  • Variante für Mailversand über Batchjob: SAP&CONNECTINT

Paket

SO

Hinweis

Links