New Facade Class for SAP BCS Empfehlung

  • Dienstag, 14. Juni 2016 14:56
Artikel bewerten
(0 Stimmen)

In diesem Beitrag möchte ich euch eine Klasse, die als Schnittstelle des SAP BCS zu den Anwendungen steht, vorstellen. Methoden der Klasse übernehmen die Sendefunktionen (Fax & E-Mail). Weitere Methoden dienen der Optionsmöglichkeit des zu versendenden Dokumentes.

Verwendung

Mit dem Erzeugen einses Objektes dieser Klasse legt Ihr einen Sendeauftrag an, welchen Ihr versenden möchtet. Diesen Sendeauftrag verseht Ihr mit dem Objekt (E-Mail | Fax), das Ihr versenden möchtet. Zusätzlich können Einstellungen zu den Sendeattributen und dem Status-Handling getroffen sowie ein Anwendungsobjekt mit dem versendeten Objekt verknüpft werden. Alternativ könnt Ihr das Sendebild aufrufen, um dem Benutzer die Möglichkeit zu bieten, Empfänger und Sendeattribute festzulegen. Die mitgegebenen Empfänger und Attribute dienen dann als Voreinstellungen.

Hinweise

  • COMMIT Funktion

In dieser Klasse wird für die Generierung des SAP Links ein RFC ausgeführt.
Beim Aufruf dieses Funktionsbausteins, wird ein commit durchgeführt. Dieses kann aber unter gewissen Umständen zu Problemen bei der Verbuchung bzw. eines SAP Rollbacks führen. Aus diesem Grund besitzt die Klasse nun einen zusätzlichen Parameter, mit denen die commit Funktion gesteuert werden kann. Darüber hinaus wird bei einem nicht gewünschten commit die SAP Klasse "CL_BCS_MESSAGE" verwendet.
Methode: CONSTRUCTOR
Parameter: IV_NO_COMMIT

Methoden:

  • CONSTRUCTOR - Der Konstruktur dient der Objekt Erzeugung (Instanzierung)

Methodenaufruf:
 DATA(Objectname) = NEW ycl_so5_bcs( . . . )
Importparameter:
IV_SUBJECT [string] Betreffzeile
IV_CONVERT_MAIL_AS_HTML [bool] Konvertierung Mailtext von RAW zu HTML
IV_IS_MAILTEXT_HTML [bool] Mailtext Format = RAW | HTML
IV_MAILTEXT_TAB [tab] Mailtext LINE = Textfeld Länge 255: Texte
IV_CREATE_SAP_LINK [bool] SAP Link erzeugen? Wenn der SAP Link erstellt werden soll, müssen die folgenden Parameter zusätzlich versorgt werden: IV_TCODE, IV_WERKS, IV_OUTLOOKKEY, IV_LINK_STYLE
IV_FOOTER [struct] Footer Daten
IV_SOURCE_APP [string] Applikation Quelle
IV_DESTINATION_APP [string] Applikation Ziel
IV_PROGRAMM [string] Programm Name
IV_TCODE [string] Transaktionscode
IV_WERKS [string] Werk
IV_OUTLOOKKEY [string] Parameter für den SAP Link
Ausnahmen:

a) ERROR_CREATE_DOCUMENT
b) ERROR_CREATE_SAP_LINK

  • SET_ATTACHMENTS - Diese Methode dient dazu, Anlagen an das zu versendende Dokument anzuhängen.

Methodenaufruf:
 Objectname->set_attachments( . . . )
Importparameter:
IV_ATTACHMENT_TAB [tab] Anlage(n) CONTENT_SIZE = Größe des Dokumentinhalts
ATTACHMENT_TYPE = Kürzel für den Dokumenttyp
CONTENT_HEX = GBT: SOLIX als Tabellentyp
CONTENT_TEXT = objcont und objhead als Tabellentyp
IV_SUBJECT [string] Anlagenbezeichnung Kurze Beschreibung des Inhaltes
Ausnahmen:

a) ATTACHMENT_TYPE_NOT_SUPPORTED

  • SET_SENDER - Diese Methode dient dazu, den Absender des Dokuments neu festzulegen. Standardmäßig ist der Ersteller des    Dokumentes der Absender.

Methodenaufruf:
 Objectname->set_sender( . . . )
Importparameter:
IV_SENDER [string] Name des Absenders
IV_TYPE [char1] Absender Typ B = SAP User | U = Internet Address
Ausnahmen:

t.b.d

  • SEND_MAIL - Diese Methode dient dazu, das Dokument als E-Mail zu versenden.

Methodenaufruf:
 Objectname->send_mail( . . . )
Importparameter:
IV_SHOW_POPUP_BEFORE_SEND [bool] Sendebild vorm senden aufrufen?
IV_TAB_RECIEVER [tab] Empfängerliste Hier nur ein kleiner Auszug, da die Anzahl der Möglichkeiten sehr hoch ist. Eine deatailiierte Auswahl entnehmen Sie bitte der Struktur: SOMLREC90
RECEIVER = Name des Empfängers
REC_TYPE = Angabe des Empfängertyps (C = Verteilerliste | U = E-Mail Internet Adresse | B = SAP Benutzer | F = Fax Nummer)
EXPRESS = Senden: Als Express.
COPY = Senden: Als Kopie.
BLIND_COPY = Senden: Als geheime Kopie.
IV_COUNTRY [string] Land (derzeit keine Funktion)
IV_ONLY_OUTLOOK_MAIL [bool] E-Mail nur als Outlook Mail versenden? Es wird keine Mail an den SAP Benutzer versendet.
Ausnahmen:

a) ERROR_SEND_DOCUMENT
b) ERROR_CREATE_DOCUMENT  

  • SEND_FAX - Diese Methode dient dazu, das Dokument als Fax zu versenden.

Methodenaufruf:
 Objectname->send_fax( . . . )
Importparameter:
IV_SHOW_POPUP_BEFORE_SEND [bool] Sendebild vorm senden aufrufen?
IV_TAB_RECIEVER [tab] Empfängerliste Hier nur ein kleiner Auszug, da die Anzahl der Möglichkeiten sehr hoch ist. Eine deatailiierte Auswahl entnehmen Sie bitte der Struktur: SOMLREC90
RECEIVER = Name des Empfängers
REC_TYPE = Angabe des Empfängertyps (C = Verteilerliste | U = E-Mail Internet Adresse | B = SAP Benutzer | F = Fax Nummer)
EXPRESS = Senden: Als Express.
COPY = Senden: Als Kopie.
BLIND_COPY = Senden: Als geheime Kopie.
IV_COUNTRY [string] Land Fax Nummer zu einem entsprechenden Land zuweisen
IV_ONLY_OUTLOOK_MAIL [bool] E-Mail nur als Outlook Mail versenden? Es wird keine Mail an den SAP Benutzer versendet.
Ausnahmen:

a) ERROR_SEND_DOCUMENT
b) ERROR_CREATE_DOCUMENT 

  • CREATE_LINK_2_APPL_OBJECT - Diese Methode dient dazu, eine Verknüpfung zwischen dem Dokument (Send Request) und dem Anwendungsobjekt, z.B. Material herzustellen.

Methodenaufruf:
 Objectname->create_link_2_appl_object( . . . )
Importparameter:
IV_APPLICATION_OBJEKT [tab] des zu verknüpfenden Anwenungsobjekts
IV_USER_NAME [string] Benutzername des Absenders
IV_OBJPARA [tab] Selektion (derzeit keine Verwendung)
IV_OBJPARB [tab] des Dialog Moduls (derzeit keine Verwendung)
Ausnahmen:

a) ERROR_SEND_DOCUMENT
b) ERROR_CREATE_DOCUMENT 

Beispiele für Anwendungsobjekte:

 *== MARA connect 
* application_object-objtype = 'BUS1001006'. 
* application_object-objkey = lv_tmp_matnr. 
*== DRAW connect * application_object-objtype = 'DRAW'. 
* application_object-objkey = 'ZEF'."doctype.
* application_object-objkey+3(25) = '0000000000000000010001509'."docnumber. 
* application_object-objkey+28(2) = '00'."docversion. 
* application_object-objkey+30(3) = '000'."docpart. 
*== IDOC connect * application_object-objtype = 'IDOC'. 
* application_object-objkey = '0000000000'."idocnumber
*== Delivery connect 
* application_object-objtype = 'LIKP'. 
* application_object-objkey = '0000000000'."number of delivery
  • GET_MY_DEFAULT_FOOTER - Mit dieser Methode, haben Sie die Möglichkeit den voreingestellten Footer (Fußzeile) in Tabellen Form in html zu erhalten.

Methodenaufruf:
 Objectname->get_my_default_footer( . . . )
Importparameter:
IV_FOOTER [struct] mit Werten, die für den Footer relevant sind.
RV_FOOTER_TAB [string] Benutzername des Absenders
  • PRINT_DOCUMENT - Diese Methode hilft Ihnen Dokumente zu drucken.

Folgende Dokument Typen werden derzeit unterstützt. PDF|WORD|EXCEL
Methodenaufruf:
 Objectname->print_document( . . . )
Importparameter:
IV_FILEPATH [string] Pfad + Dateiname + Dateiendung
IV_PRINTER [string] Druckername (derzeit nur für pdf Druck)
IV_POPUP_PRINT [bool] Popup vor der Druckausgabe
Ausnahmen:

a) ERROR_PRINT_DOCUMENT

 Beispiele

 

 *== create mail document | *== create fax document 
DATA(oref_bcs) = NEW ycl_so5_bcs( iv_subject = lv_tmp_subject 
	* iv_convert_mail_as_html = ABAP_TRUE 
	iv_is_mailtext_html = abap_false 
	iv_mailtext_tab = lt_mailtxt 
	iv_create_sap_link = abap_true 
	iv_footer = ls_footer 
	* iv_source_app = 
	* iv_destination_app = 
	* iv_programm = SY-REPID 
	iv_tcode = 'MM03' 
	* iv_werks = 'DE01' 
	iv_outlookkey = 'RMMG1-MATNR=' && '41130113372' 
	iv_link_style = 'X' 
	* iv_no_commit = abap_false 
	).
 *-- change sender 
	oref_bcs->set_sender( 
		EXPORTING 
			iv_sender = Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!' 
			iv_type = 'U' 
	).
 *-- send mail 
	oref_bcs->send_mail( 
		EXPORTING 
			* iv_show_popup_before_send = abap_true 
			iv_tab_reciever = lt_mailrec 
		EXCEPTIONS 
			error_send_document = 1 
			OTHERS = 2 
	).
 *== get & set pdf filename including *** & .pdf 
	CALL METHOD cl_gui_frontend_services=>get_sapgui_workdir 
		CHANGING 
			sapworkdir = lv_filepath. 
	lv_filepath = lv_filepath && '\' && lv_filename. 
*== print a document 
	ycl_so5_bcs=>print_document( 
		EXPORTING 
			iv_filepath = lv_filepath 
			* iv_printer = 
			iv_popup_print = abap_false 
		EXCEPTIONS 
			error_print_document = 1 
			OTHERS = 2 
	).

YCL_SO5_BCS (sourcecode)

Letzte Änderung am %AM, %16. %423 %2016 %09:%Jun
Kommentare einblenden

Copyright © 2017 ABAP-Workbench.de