Verteileriste wie ansprechen?!

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

Verteileriste wie ansprechen?!

Beitrag von tho_died (ForumUser / 21 / 0 / 0 ) »
Hi.

Wie kann ich denn eine von mir angelegte verteilerliste ansprechen um so die den darin vermerkten USern eine Mail zu senden?!

Danke euch[/b]

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


Re: Verteileriste wie ansprechen?!

Beitrag von JHM (Top Expert / 1212 / 2 / 202 ) »
tho_died hat geschrieben:Wie kann ich denn eine von mir angelegte verteilerliste ansprechen um so die den darin vermerkten USern eine Mail zu senden?!
* Glaskugel raushohl und hinein schau *
Mist nur dunkler Rauch
* Glaskugel schüttel *
Mist der dunkle Rauch wird dichter
* Glaskugel wegpack *

Vielleicht fügst du deiner Frage ein paar Informationen hinzu, dann wird das antworten etwas einfacher.

Da die Galskugel mich nicht weitergebracht hat hier ein Beispiel für BSC:

Code: Alles auswählen.

FUNCTION z_send_mail_via_verteilerliste.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_SUBJECT) TYPE  SO_OBJ_DES
*"     VALUE(I_VERTEILERLISTE) TYPE  SO_OBJ_NAM
*"  TABLES
*"      IT_MAILTEXT STRUCTURE  SOLISTI1
*"  EXCEPTIONS
*"      DOCUMENT_ERROR
*"      DOCUMENT_ADD_ERROR
*"      SEND_ERROR
*"      ADD_RECIPIENTS_ERROR
*"      DOCUMENT_CREAT_ERROR
*"----------------------------------------------------------------------

  DATA:
*       Für die Mail-Objecte
        lr_send_request       TYPE REF TO cl_bcs,
        lr_document           TYPE REF TO cl_document_bcs,
        lr_recipient          TYPE REF TO if_recipient_bcs,
*       Fehlerhandling
        lr_cx_document_bcs    TYPE REF TO cx_document_bcs,
        lr_cx_send_req_bcs    TYPE REF TO cx_send_req_bcs,
        lr_cx_address_bcs     TYPE REF TO cx_address_bcs ,
*       kleine Helfer
        l_sent_to_all        TYPE os_boolean.


*     -------- Sendeauftrag erstellen ------------------------
  TRY.
      lr_send_request = cl_bcs=>create_persistent( ).

*     Sofort versenden einschalten
      CALL METHOD lr_send_request->set_send_immediately
        EXPORTING
          i_send_immediately = 'X'.

    CATCH cx_send_req_bcs INTO lr_cx_send_req_bcs.
      RAISE document_creat_error.

  ENDTRY.
*     -------- Mailtext erstellen --------------------------------
  TRY.
      lr_document = cl_document_bcs=>create_document(
                      i_type    = 'RAW'
                      i_text    = it_mailtext[]
                      i_subject = i_subject ).

    CATCH cx_document_bcs INTO lr_cx_document_bcs.
      RAISE document_error.
  ENDTRY.
* und an das Sendeobjekt hängen
  TRY.
      CALL METHOD lr_send_request->set_document( lr_document ).
    CATCH cx_send_req_bcs INTO lr_cx_send_req_bcs.
      RAISE document_add_error.

  ENDTRY.
*     -------- Empfänger erstellen/übergeben -----------------
  TRY.
      CALL METHOD cl_distributionlist_bcs=>getu_persistent
        EXPORTING
          i_dliname = i_verteilerliste
          i_private = space
        RECEIVING
          result    = lr_recipient.

    CATCH cx_address_bcs INTO lr_cx_address_bcs.
      RAISE add_recipients_error.
  ENDTRY.

* und an Sendauftrag hängen
  TRY.
      CALL METHOD lr_send_request->add_recipient
        EXPORTING
          i_recipient = lr_recipient
          i_express   = 'X'.

    CATCH cx_send_req_bcs INTO lr_cx_send_req_bcs.

      RAISE add_recipients_error.
  ENDTRY.

*     -------- Mail versenden --------------------------------
  TRY.
      CALL METHOD lr_send_request->send
        RECEIVING
          result = l_sent_to_all.
    CATCH cx_send_req_bcs INTO lr_cx_send_req_bcs.
      RAISE send_error.
  ENDTRY.

* Damit bei externen Mails ein eintrag in die Warteschlange gesetzt wird:
  COMMIT WORK.
ENDFUNCTION.
Wenn du doch über die FuBas SO_NEW_DOCUMENT_SEND_API1 bzw. SO_DOCUMENT_SEND_API1 oder aus dem Workplace senden willst melde dich noch einmal.
Gruß Hendrik

Beitrag von tho_died (ForumUser / 21 / 0 / 0 ) »
:-))

Also ich sende bereits an einzelne Leute die ich im Report dirket angebe übder die Fubas SO_NEW_DOCUMENT_SEND_API1 .
Das kalppt auch ganz gut. Jetzt muss ich eben die Vetrteilerliste (TA SO15 ) noch einlesen. Diese habe ich ja angelegt und mit einigen Namen befüllt.

Nun will ich eben aus dem Report heraus, als Batch Job (was acuh klappt) diese Liste einlesen. Da ich aber keien Ahnung habe wo ich diese finde (Tabelle??) wollte ich hier mal meine Frage daher posten :-))

Beitrag von brinam (Specialist / 111 / 0 / 0 ) »
Hallo tho_died,

im Paket SO für das SAPOffice findet sich bestimmt ein Funktionsbaustein zum Auslesen der Benutzer einer Verteilerliste.
Aber brauchst Du das überhaupt?
Bei dem genannten FuBa übergibst Du doch in der Tabelle RECEIVERS die Empfänger. In der Struktur von SOMLRECI1 gibt es die Komponente REC_TYPE. 'B' wird bei SAP-Benutzern übergeben, 'C' bei Verteilerlisten.
Viele Grüße
Britta

Beitrag von tho_died (ForumUser / 21 / 0 / 0 ) »
ja aber iorgendwie muss ich ja an den INhalt der Liste herankommen. Hier leigt ja mein Problem. Ich weiss nciht wie ich aus einem Report diese Liste finde.
Sie ist ja nciht eine Globale Tabelle oder eine Struktur die ich mal so einfach ansprechen kann, oder irre ich.
Als BSP nenne ich meine Verteilerliste mal HUGO!

Wie finde ich nun HUGO!??

Beitrag von JHM (Top Expert / 1212 / 2 / 202 ) »
tho_died hat geschrieben:Wie finde ich nun HUGO!??
Entweder du übergibst die verteilerliste wie von brinam geschrieben dierekt an den FuBa SO_NEW_DOCUMENT_SEND_API1:

Code: Alles auswählen.

    lw_receivers-receiver = 'HUGO'.
    lw_receivers-rec_type = 'C'.

* Mail versenden
  CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
    EXPORTING
      document_data  = ls_document
    TABLES
      object_content = lt_content
      receivers      = lt_receivers.
oder du liest dir den Inhalt der Verteilerliste mit dem FuBa SO_DLI_READ aus:

Code: Alles auswählen.

  CALL FUNCTION 'SO_DLI_READ'
    EXPORTING
      distributionlist           = 'HUGO'
      system_dli                 = 'X'
    TABLES
      member                     = lt_member
      objpara                    = lt_objpara
      objparb                    = lt_objparb
    EXCEPTIONS
      active_user_not_exist      = 1
      communication_failure      = 2
      component_not_available    = 3
      dl_name_not_exist          = 4
      folder_not_exist           = 5
      folder_no_authorization    = 6
      forwarder_not_exist        = 7
      object_not_exist           = 8
      object_no_authorization    = 9
      operation_no_authorization = 10
      owner_not_exist            = 11
      parameter_error            = 12
      substitute_not_active      = 13
      substitute_not_defined     = 14
      system_failure             = 15
      user_not_exist             = 16
      x_error                    = 17
      OTHERS                     = 18.
In lt_mebers stehen dann die einzelnen Einträge der Verteilerliste.
Gruß Hendrik

Beitrag von tho_died (ForumUser / 21 / 0 / 0 ) »
Das mit dem Fuba Vert.Liste auslesen klappt.

Die namen und die USR NR habe ich dann.

Aber das direkte Versenden mit dem APIU FUBA hängt.

wa_recceivers-receiver = 'EMAIL_VERT'.
wa_recceivers-rec_type = 'C'. " B = intern ; U = extern ; C = VertList

* Alle die Mailadressen die diese Mail als Blindcopy erhalten sollen,
* müssen angefügt werden.
* wa_recceivers-blind_copy = 'X'.

* No Forward gilt nur für die SAP User.
* wa_recceivers-no_forward = 'X'.

APPEND wa_recceivers TO it_recceivers.

* Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_document_data
* Nach Hinweis Hinweis 489287 - Senden über MAPI fehlerhaft ab Release
* 6.10 muss es hier als "X" gesetzut sein
* sonst kein versand. Siehe Transaction SCOT
commit_work = 'X'
* Übergibt Dokument in die Ausgangsbox des Senders.
put_in_outbox = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
packing_list = it_packlist
object_header = it_object_header
contents_bin = it_content_bin
"contents_txt = it_content_txt
object_content = it_content_txt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = it_recceivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8


Als Empfänger wird nur vert_list angegeben, aber nicht der Inhalt.
Kann es sein das das "C" nicht als VErteilerliste interpretiert wird?!??!?!

Beitrag von JHM (Top Expert / 1212 / 2 / 202 ) »
tho_died hat geschrieben:Als Empfänger wird nur vert_list angegeben, aber nicht der Inhalt.
Den Satz versteh ich nicht ganz. Was genau meinst du damit.

Was für eine Verteilerliste hast du angelegt (persöhnlich/allgemein)?

C ist für allgemeine Verteilerlisten
P ist für persöhnliche Verteilerlisten

Ansonsten kann ich keinen Fehler in deinem Coding entdecken. Bei mir funktioniert es so wunderbar.
Gruß Hendrik

Beitrag von tho_died (ForumUser / 21 / 0 / 0 ) »
Na beim Debug steht im Receiver Feld nur 'Email_VErt' drin.
Da er dazu keine Person zuordnen kann., gehts shcief.
Habe ein allgemeine angelegt...hmmm ...

Beitrag von brinam (Specialist / 111 / 0 / 0 ) »
tho_died hat geschrieben:Na beim Debug steht im Receiver Feld nur 'Email_VErt' drin.
Receiver ist bei diesem Funktionsbaustein kein Feld sondern eine Struktur mit vielen Feldern. Wenn beim Debuggen (aktuelle Anweisung = Call Function) in lt_receivers-rec_type nichts drin steht, dann hast du diesem Feld wahrscheinlich nichts zugewiesen (schau dir nochmal das Coding von JHM an).
tho_died hat geschrieben:Da er dazu keine Person zuordnen kann., gehts shcief.
Vergiss mal einfach die Personen, wenn du mit einer Verteilerliste arbeitest. Dein Programm muss die Personen der Verteilerliste nicht kennen, das macht SAP in untergeordneten Funktionsbausteinen selbst.
tho_died hat geschrieben:Habe ein allgemeine angelegt...hmmm ...
Dann stimmt rec_type = 'C'.
Viele Grüße
Britta

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1234
Views
DLL aus SAP ansprechen
von Arkhan » 16.03.2006 17:40 • Verfasst in ABAP® Core
8
Antw.
6097
Views
Etikettendrucker ansprechen
von herr mb » 06.07.2012 11:14 • Verfasst in ABAP® Core
8
Antw.
6090
Views
Webservice aus FuBau ansprechen
von ralf.wenzel » 02.04.2012 14:34 • Verfasst in ABAP® Core
1
Antw.
2052
Views
Web Dynpro Felder ansprechen
von dkast » 18.01.2018 13:59 • Verfasst in ABAP Objects®
1
Antw.
4472
Views
Strukturfeld variabel ansprechen
von supermario73 » 19.10.2006 13:46 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

IBAN und BUT0BK
vor 6 Tagen von GastX gelöst 4 / 5635
Gewährleistungsende im Equipment
vor einer Woche von Yourairld gelöst 8 / 27810
IF mit AND und OR
vor 3 Wochen von GastX 6 / 16072
Meine Inbox
vor 3 Wochen von Rabea1103 1 / 13421

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.