<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.m1ch3l.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M1ch3lde</id>
	<title>SAP Wiki ツ - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.m1ch3l.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M1ch3lde"/>
	<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/Spezial:Beitr%C3%A4ge/M1ch3lde"/>
	<updated>2026-11-04T20:29:55Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2460</id>
		<title>E-Mail senden (klassischen Klassen und Methoden)</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2460"/>
		<updated>2026-08-14T15:50:24Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
{{Codeberg|dir=email|page={{PAGENAMEE}}}}&lt;br /&gt;
Zum Teil Clean-Core-Level B und C.&amp;lt;br /&amp;gt;&lt;br /&gt;
Besser freigegebene Klasse für Cloud-Entwicklung nutzen: [[CL_BCS_MAIL_MESSAGE]]&lt;br /&gt;
&lt;br /&gt;
=== Deklaration ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
 DATA: go_send_request       TYPE REF TO cl_bcs,&lt;br /&gt;
       go_document           TYPE REF TO cl_document_bcs,&lt;br /&gt;
       go_sender             TYPE REF TO cl_sapuser_bcs,&lt;br /&gt;
       go_sender2            TYPE REF TO if_sender_bcs,&lt;br /&gt;
       go_receiver           TYPE REF TO if_recipient_bcs,&lt;br /&gt;
       gt_mail_text_tab      TYPE soli_tab,&lt;br /&gt;
       gv_subject            TYPE so_obj_des,&lt;br /&gt;
       gt_distribution_list  TYPE TABLE OF sodlienti1,&lt;br /&gt;
       gv_recipient          TYPE adr6-smtp_addr,&lt;br /&gt;
       gv_size               TYPE so_obj_len,&lt;br /&gt;
       gt_binary_content     TYPE solix_tab,&lt;br /&gt;
       gv_data_tab_as_string TYPE string,&lt;br /&gt;
       gv_att_name           TYPE sood-objdes.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Codeschnipsel ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
 go_send_request = cl_bcs=&amp;gt;create_persistent( ).&lt;br /&gt;
 &lt;br /&gt;
 CONCATENATE &#039;Betreff&#039; sy-datum INTO gv_subject SEPARATED BY space.&lt;br /&gt;
 &lt;br /&gt;
 APPEND &#039;Mail Text in E-Mail&#039; TO gt_mail_text_tab.&lt;br /&gt;
 &lt;br /&gt;
 go_document = cl_document_bcs=&amp;gt;create_document( i_type    = &#039;RAW&#039;&lt;br /&gt;
                                                 i_text    = gt_mail_text_tab&lt;br /&gt;
                                                 i_subject = gv_subject ).&lt;br /&gt;
 &lt;br /&gt;
 ***** Attachment: tab data as string to .xls&lt;br /&gt;
 &amp;quot;new column: CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB&lt;br /&gt;
 &amp;quot;new row: CL_ABAP_CHAR_UTILITIES=&amp;gt;CR_LF&lt;br /&gt;
 &lt;br /&gt;
* att varriant 1  &lt;br /&gt;
 cl_bcs_convert=&amp;gt;string_to_solix(&lt;br /&gt;
        EXPORTING&lt;br /&gt;
          iv_string   = gv_data_tab_as_string&lt;br /&gt;
          iv_codepage = &#039;4103&#039;  &amp;quot;suitable for MS Excel, leave empty&lt;br /&gt;
          iv_add_bom  = &#039;X&#039;     &amp;quot;for other doc types&lt;br /&gt;
        IMPORTING&lt;br /&gt;
          et_solix  = gt_binary_content&lt;br /&gt;
          ev_size   = gv_size ).&lt;br /&gt;
      &lt;br /&gt;
 go_document-&amp;gt;add_attachment(&lt;br /&gt;
   EXPORTING&lt;br /&gt;
     i_attachment_type     = &#039;xls&#039;&lt;br /&gt;
     i_attachment_subject  = gv_att_name             &lt;br /&gt;
     i_attachment_size     = gv_size    &lt;br /&gt;
     i_att_content_hex     = gt_binary_content ).&lt;br /&gt;
 &lt;br /&gt;
* att varriant 2  &lt;br /&gt;
    gv_size = xstrlen( iv_xlsx ).&lt;br /&gt;
    go_document-&amp;gt;add_attachment(&lt;br /&gt;
      EXPORTING&lt;br /&gt;
        i_attachment_type     = &#039;BIN&#039;&lt;br /&gt;
        i_attachment_subject  = &#039;report.xlsx&#039;&lt;br /&gt;
        i_attachment_size     = lv_size&lt;br /&gt;
        i_att_content_hex     = cl_bcs_convert=&amp;gt;xstring_to_solix( iv_xstring = xlsx ) ).&lt;br /&gt;
    &lt;br /&gt;
 go_send_request-&amp;gt;set_document( go_document ).&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add sender variant 1&lt;br /&gt;
 go_sender = cl_sapuser_bcs=&amp;gt;create( sy-uname ).&lt;br /&gt;
 &amp;quot;Add sender variant 2&lt;br /&gt;
 go_sender2 = cl_cam_address_bcs=&amp;gt;create_internet_address( i_address_string = iv_sender ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;set_sender( go_sender ). &amp;quot;go_send_request-&amp;gt;set_sender( go_sender2 )&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add receivers variant 1:&lt;br /&gt;
 LOOP AT [[SO_DLI_READ_API1|gt_distribution_list]] INTO DATA(recpt).&lt;br /&gt;
  gv_recipient = recpt-full_name.&lt;br /&gt;
  go_receiver = cl_cam_address_bcs=&amp;gt;create_internet_address( gv_recipient ).&lt;br /&gt;
  go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 ENDLOOP.&lt;br /&gt;
  &amp;quot;Add recievers variant 2:&lt;br /&gt;
 go_receiver = cl_distributionlist_bcs=&amp;gt;getu_persistent( i_dliname = iv_distributionlist i_private = abap_false ).&lt;br /&gt;
 go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;send( ).&lt;br /&gt;
 &lt;br /&gt;
 COMMIT WORK.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2459</id>
		<title>E-Mail senden (klassischen Klassen und Methoden)</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2459"/>
		<updated>2026-08-14T15:49:32Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
{{Codeberg|dir=email|page={{PAGENAMEE}}}}&lt;br /&gt;
Zum Teil Clean-Core-Level B und C.&amp;lt;br /&amp;gt;&lt;br /&gt;
Besser freigegebene Klasse für Cloud-Entwicklung nutzen: [[CL_BCS_MAIL_MESSAGE]]&lt;br /&gt;
&lt;br /&gt;
=== Deklaration ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
 DATA: go_send_request       TYPE REF TO cl_bcs,&lt;br /&gt;
       go_document           TYPE REF TO cl_document_bcs,&lt;br /&gt;
       go_sender             TYPE REF TO cl_sapuser_bcs,&lt;br /&gt;
       go_sender2            TYPE REF TO if_sender_bcs,&lt;br /&gt;
       go_receiver           TYPE REF TO if_recipient_bcs,&lt;br /&gt;
       gt_mail_text_tab      TYPE soli_tab,&lt;br /&gt;
       gv_subject            TYPE so_obj_des,&lt;br /&gt;
       gt_distribution_list  TYPE TABLE OF sodlienti1,&lt;br /&gt;
       gv_recipient          TYPE adr6-smtp_addr,&lt;br /&gt;
       gv_size               TYPE so_obj_len,&lt;br /&gt;
       gt_binary_content     TYPE solix_tab,&lt;br /&gt;
       gv_data_tab_as_string TYPE string,&lt;br /&gt;
       gv_att_name           TYPE sood-objdes.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Codeschnipsel ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
 go_send_request = cl_bcs=&amp;gt;create_persistent( ).&lt;br /&gt;
 &lt;br /&gt;
 CONCATENATE &#039;Betreff&#039; sy-datum INTO gv_subject SEPARATED BY space.&lt;br /&gt;
 &lt;br /&gt;
 APPEND &#039;Mail Text in E-Mail&#039; TO gt_mail_text_tab.&lt;br /&gt;
 &lt;br /&gt;
 go_document = cl_document_bcs=&amp;gt;create_document( i_type    = &#039;RAW&#039;&lt;br /&gt;
                                                 i_text    = gt_mail_text_tab&lt;br /&gt;
                                                 i_subject = gv_subject ).&lt;br /&gt;
 &lt;br /&gt;
 ***** Attachment: tab data as string to .xls&lt;br /&gt;
 &amp;quot;new column: CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB&lt;br /&gt;
 &amp;quot;new row: CL_ABAP_CHAR_UTILITIES=&amp;gt;CR_LF&lt;br /&gt;
 &lt;br /&gt;
 cl_bcs_convert=&amp;gt;string_to_solix(&lt;br /&gt;
        EXPORTING&lt;br /&gt;
          iv_string   = gv_data_tab_as_string&lt;br /&gt;
          iv_codepage = &#039;4103&#039;  &amp;quot;suitable for MS Excel, leave empty&lt;br /&gt;
          iv_add_bom  = &#039;X&#039;     &amp;quot;for other doc types&lt;br /&gt;
        IMPORTING&lt;br /&gt;
          et_solix  = gt_binary_content&lt;br /&gt;
          ev_size   = gv_size ).&lt;br /&gt;
* att varriant 1        &lt;br /&gt;
 go_document-&amp;gt;add_attachment(&lt;br /&gt;
   EXPORTING&lt;br /&gt;
     i_attachment_type     = &#039;xls&#039;&lt;br /&gt;
     i_attachment_subject  = gv_att_name             &lt;br /&gt;
     i_attachment_size     = gv_size    &lt;br /&gt;
     i_att_content_hex     = gt_binary_content ).&lt;br /&gt;
 &lt;br /&gt;
* att varriant 2  &lt;br /&gt;
    lv_size = xstrlen( iv_xlsx ).&lt;br /&gt;
    lo_document-&amp;gt;add_attachment(&lt;br /&gt;
      EXPORTING&lt;br /&gt;
        i_attachment_type     = &#039;BIN&#039;&lt;br /&gt;
        i_attachment_subject  = &#039;report.xlsx&#039;&lt;br /&gt;
        i_attachment_size     = lv_size&lt;br /&gt;
        i_att_content_hex     = cl_bcs_convert=&amp;gt;xstring_to_solix( iv_xstring = iv_xlsx ) ).&lt;br /&gt;
    &lt;br /&gt;
 go_send_request-&amp;gt;set_document( go_document ).&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add sender variant 1&lt;br /&gt;
 go_sender = cl_sapuser_bcs=&amp;gt;create( sy-uname ).&lt;br /&gt;
 &amp;quot;Add sender variant 2&lt;br /&gt;
 go_sender2 = cl_cam_address_bcs=&amp;gt;create_internet_address( i_address_string = iv_sender ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;set_sender( go_sender ). &amp;quot;go_send_request-&amp;gt;set_sender( go_sender2 )&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add receivers variant 1:&lt;br /&gt;
 LOOP AT [[SO_DLI_READ_API1|gt_distribution_list]] INTO DATA(recpt).&lt;br /&gt;
  gv_recipient = recpt-full_name.&lt;br /&gt;
  go_receiver = cl_cam_address_bcs=&amp;gt;create_internet_address( gv_recipient ).&lt;br /&gt;
  go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 ENDLOOP.&lt;br /&gt;
  &amp;quot;Add recievers variant 2:&lt;br /&gt;
 go_receiver = cl_distributionlist_bcs=&amp;gt;getu_persistent( i_dliname = iv_distributionlist i_private = abap_false ).&lt;br /&gt;
 go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;send( ).&lt;br /&gt;
 &lt;br /&gt;
 COMMIT WORK.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2458</id>
		<title>E-Mail senden (klassischen Klassen und Methoden)</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=E-Mail_senden_(klassischen_Klassen_und_Methoden)&amp;diff=2458"/>
		<updated>2026-08-14T15:48:38Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
{{Codeberg|dir=email|page={{PAGENAMEE}}}}&lt;br /&gt;
Zum Teil Clean-Core-Level B und C.&amp;lt;br /&amp;gt;&lt;br /&gt;
Besser freigegebene Klasse für Cloud-Entwicklung nutzen: [[CL_BCS_MAIL_MESSAGE]]&lt;br /&gt;
&lt;br /&gt;
=== Deklaration ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
 DATA: go_send_request       TYPE REF TO cl_bcs,&lt;br /&gt;
       go_document           TYPE REF TO cl_document_bcs,&lt;br /&gt;
       go_sender             TYPE REF TO cl_sapuser_bcs,&lt;br /&gt;
       go_sender2            TYPE REF TO if_sender_bcs,&lt;br /&gt;
       go_receiver           TYPE REF TO if_recipient_bcs,&lt;br /&gt;
       gt_mail_text_tab      TYPE soli_tab,&lt;br /&gt;
       gv_subject            TYPE so_obj_des,&lt;br /&gt;
       gt_distribution_list  TYPE TABLE OF sodlienti1,&lt;br /&gt;
       gv_recipient          TYPE adr6-smtp_addr,&lt;br /&gt;
       gv_size               TYPE so_obj_len,&lt;br /&gt;
       gt_binary_content     TYPE solix_tab,&lt;br /&gt;
       gv_data_tab_as_string TYPE string,&lt;br /&gt;
       gv_att_name           TYPE sood-objdes.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Codeschnipsel ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
 go_send_request = cl_bcs=&amp;gt;create_persistent( ).&lt;br /&gt;
 &lt;br /&gt;
 CONCATENATE &#039;Betreff&#039; sy-datum INTO gv_subject SEPARATED BY space.&lt;br /&gt;
 &lt;br /&gt;
 APPEND &#039;Mail Text in E-Mail&#039; TO gt_mail_text_tab.&lt;br /&gt;
 &lt;br /&gt;
 go_document = cl_document_bcs=&amp;gt;create_document( i_type    = &#039;RAW&#039;&lt;br /&gt;
                                                 i_text    = gt_mail_text_tab&lt;br /&gt;
                                                 i_subject = gv_subject ).&lt;br /&gt;
 &lt;br /&gt;
 ***** Attachment: tab data as string to .xls&lt;br /&gt;
 &amp;quot;new column: CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB&lt;br /&gt;
 &amp;quot;new row: CL_ABAP_CHAR_UTILITIES=&amp;gt;CR_LF&lt;br /&gt;
 &lt;br /&gt;
 cl_bcs_convert=&amp;gt;string_to_solix(&lt;br /&gt;
        EXPORTING&lt;br /&gt;
          iv_string   = gv_data_tab_as_string&lt;br /&gt;
          iv_codepage = &#039;4103&#039;  &amp;quot;suitable for MS Excel, leave empty&lt;br /&gt;
          iv_add_bom  = &#039;X&#039;     &amp;quot;for other doc types&lt;br /&gt;
        IMPORTING&lt;br /&gt;
          et_solix  = gt_binary_content&lt;br /&gt;
          ev_size   = gv_size ).&lt;br /&gt;
        &lt;br /&gt;
 go_document-&amp;gt;add_attachment(&lt;br /&gt;
   EXPORTING&lt;br /&gt;
     i_attachment_type     = &#039;xls&#039;&lt;br /&gt;
     i_attachment_subject  = gv_att_name             &lt;br /&gt;
     i_attachment_size     = gv_size    &lt;br /&gt;
     i_att_content_hex     = gt_binary_content ).&lt;br /&gt;
&lt;br /&gt;
    lo_document-&amp;gt;add_attachment(&lt;br /&gt;
      EXPORTING&lt;br /&gt;
        i_attachment_type     = &#039;BIN&#039;&lt;br /&gt;
        i_attachment_subject  = &#039;report.xlsx&#039;&lt;br /&gt;
        i_attachment_size     = lv_size&lt;br /&gt;
        i_att_content_hex     = cl_bcs_convert=&amp;gt;xstring_to_solix( iv_xstring = iv_xlsx ) ).&lt;br /&gt;
    &lt;br /&gt;
 go_send_request-&amp;gt;set_document( go_document ).&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add sender variant 1&lt;br /&gt;
 go_sender = cl_sapuser_bcs=&amp;gt;create( sy-uname ).&lt;br /&gt;
 &amp;quot;Add sender variant 2&lt;br /&gt;
 go_sender2 = cl_cam_address_bcs=&amp;gt;create_internet_address( i_address_string = iv_sender ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;set_sender( go_sender ). &amp;quot;go_send_request-&amp;gt;set_sender( go_sender2 )&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;Add receivers variant 1:&lt;br /&gt;
 LOOP AT [[SO_DLI_READ_API1|gt_distribution_list]] INTO DATA(recpt).&lt;br /&gt;
  gv_recipient = recpt-full_name.&lt;br /&gt;
  go_receiver = cl_cam_address_bcs=&amp;gt;create_internet_address( gv_recipient ).&lt;br /&gt;
  go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 ENDLOOP.&lt;br /&gt;
  &amp;quot;Add recievers variant 2:&lt;br /&gt;
 go_receiver = cl_distributionlist_bcs=&amp;gt;getu_persistent( i_dliname = iv_distributionlist i_private = abap_false ).&lt;br /&gt;
 go_send_request-&amp;gt;add_recipient( go_receiver ).&lt;br /&gt;
 &lt;br /&gt;
 go_send_request-&amp;gt;send( ).&lt;br /&gt;
 &lt;br /&gt;
 COMMIT WORK.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2457</id>
		<title>Einzelnen OData Service und dazugehörige ICF-Nodes für Fiori Apps aktivieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2457"/>
		<updated>2026-07-10T12:51:25Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Fiori]]&lt;br /&gt;
&lt;br /&gt;
=== App im Fiori App Library suchen ===&lt;br /&gt;
&lt;br /&gt;
Man sollte bei Suche einer App darauf achten, dass diese für das jeweilige gewünschte System verfügbar ist.&lt;br /&gt;
Unter &amp;quot;IMPLEMENTATION INFORMATION&amp;quot; sieht man hier, ob es für On-Premise und/oder Cloud Systeme mit den entsprechenden Versionen erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Beispiel &amp;quot;Leistungsarten verwalten&amp;quot;: &amp;lt;br /&amp;gt;&lt;br /&gt;
https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps(&#039;F1605A&#039;)/S20OP&lt;br /&gt;
&lt;br /&gt;
Neben den OData Services und ICF-Nodes, lassen sich hier weitere weitere Informationen in Erfahrung bringen wie:&lt;br /&gt;
* Business Rolle&lt;br /&gt;
* Business Katalog&lt;br /&gt;
* Business Gruppe&lt;br /&gt;
* Target Mappings uvm. &lt;br /&gt;
&lt;br /&gt;
==== Benötigte OData Services / OData Services Groups ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implementation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Odata conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:v4_service_group.png]]&lt;br /&gt;
&lt;br /&gt;
==== Benötigte ICF Nodes für UI5 Component ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implemtation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Icf conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
=== OData Service mit TA “/n/IWFND/MAINT_SERVICE” aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Man sollte erst nach dem OData Service einmal suchen, ob dieser schon vorhanden ist.&lt;br /&gt;
Wenn ja, sollte man weitere Überprüfungen vornehmen wie [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#.C3.9Cberpr.C3.BCfungen|unten weiter beschrieben]].&lt;br /&gt;
&lt;br /&gt;
==== Service hinzufügen  ====&lt;br /&gt;
# Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; ausführen&lt;br /&gt;
# Button &amp;quot;Service hinzufügen&amp;quot; betätigen&lt;br /&gt;
# Systemalias (oft LOCAL oder FIORI) wählen und als externen Servicenamen, bezogen auf das o.g. Beispiel, &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; eintragen und Service abrufen:&lt;br /&gt;
: [[Datei:Odata service abrufen.png|left]]&lt;br /&gt;
# Auf den unterstrichenden technischen Servicenamen klicken, sodass sich ein Pop-Up öffnet.&lt;br /&gt;
: Hier ist ein Paket anzugeben, damit es transportiert werden kann. Hier wird ebenso der ICF-Node für den OData Service bereits aktiviert.&lt;br /&gt;
&lt;br /&gt;
:{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn der Verarbeitungsmodus &amp;quot;routing-basiert&amp;quot; ist, macht es Sinn hier bereits die Zuordnung des Systemalias zum Service zu löschen und neu anzulegen, damit ein Transportauftrag getriggert wird(s. [[Einzelnen_OData_Service_und_dazugehörige_ICF-Nodes_für_Fiori_Apps_aktivieren#Zuordnung_Systemalias_zum_Service_pr.C3.BCfen|Zuordnung Systemalias zum Service prüfen]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Überprüfungen ====&lt;br /&gt;
&lt;br /&gt;
===== Automatische Aktivierung des ICF-Nodes für OData Service prüfen =====&lt;br /&gt;
&lt;br /&gt;
Mit TA &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; kann unten links nach Suche nach einem OData Service gesehen werden, ob der Knoten aktiviert ist. Wenn ja, wird eine grüne Ampel angezeigt. Wenn diese gelb ist, ist diese noch zu aktivieren. Bei grau ist diese noch nicht installiert. Sprich für letzteres muss der OData Service ggf. erneut aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
===== ICF-Node(s) von UI5 Component prüfen =====&lt;br /&gt;
Unter Transaktion &amp;quot;SICF&amp;quot; ist zu prüfen, ob die jeweiligen ICF-Nodes aktiviert sind.&lt;br /&gt;
Die Pfade, sind [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#Ben.C3.B6tigte_ICF_Nodes_f.C3.BCr_UI5_Component|wie oben zu sehen]], in der Fiori App Library zu finden.&lt;br /&gt;
&lt;br /&gt;
===== Zuordnung Systemalias zum Service prüfen =====&lt;br /&gt;
Im Zielsytem nach Transport sollte geprüft werden, ob der jeweilige Systemalias zum Service hinzugefügt wurde, wenn der Service-Verarbeitungsmodus &amp;quot;Routing-basiert&amp;quot; ist. Bei Modus &amp;quot;nur integriertes Deployment&amp;quot; wird kein Systemalias angegeben.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; wird der jeweilige Service z.B. &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; gesucht und auf den Service geklickt. Im unteren rechten Fenster sollte dann der Systemalias-Eintrag zu sehen sein. &lt;br /&gt;
&lt;br /&gt;
Ist das nicht der Fall, ist im E-System folgendes zu tun:&lt;br /&gt;
# Button &amp;quot;Customizing&amp;quot; zu betätigen&lt;br /&gt;
# Änderungsmodus gehen&lt;br /&gt;
# Jeweiligen Eintrag heraussuchen, zwischenspeichern, löschen, speichern und wieder eintragen, sodass ein neuer Transportauftrag getriggert wird&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn man selber ein Service aktiviert hat, ist der Systemalias angegeben, aber dieser ist in keinem Auftrag. Daher sind die o.g. Schritte zu tun, damit Zuordnung in einem Transportauftrag ist.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Bei einigen Apps stehen nicht einzelne OData Services im Fiori App Library aufgelistet, sondern eine oder mehrere Service-Gruppen für V4 OData Services.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/IWFND/V4_ADMIN&amp;quot; den Service aktivieren bzw. &lt;br /&gt;
publizieren:&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step2.png]]&lt;br /&gt;
&lt;br /&gt;
Danach findet man im Einstiegsbild links unter &amp;quot;Service-Gruppen&amp;quot; die publizierte Service-Gruppe und die jeweilige App lässt sich verwenden.&lt;br /&gt;
&lt;br /&gt;
Dort können zudem einzelne OData V4 Services für ein Transport mit hinzugefügt werden, indem man Rechtsklick auf eine Service-Gruppe macht..&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
*Fehler des OData Services auf seiten des Front-End mit TA &amp;quot;/n/iwfnd/error_log&amp;quot; prüfen. &lt;br /&gt;
*[[Lösungen_zu_Fiori_Fehlermeldungen|Gesammelte Lösungen zu Fiori Fehlermeldungen]]&lt;br /&gt;
&lt;br /&gt;
=== SAP Blogs ===&lt;br /&gt;
* https://blogs.sap.com/2017/11/19/sap-fiori-odata-service-registration-activation/&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2456</id>
		<title>Einzelnen OData Service und dazugehörige ICF-Nodes für Fiori Apps aktivieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2456"/>
		<updated>2026-07-10T12:51:07Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Fiori]]&lt;br /&gt;
&lt;br /&gt;
=== App im Fiori App Library suchen ===&lt;br /&gt;
&lt;br /&gt;
Man sollte bei Suche einer App darauf achten, dass diese für das jeweilige gewünschte System verfügbar ist.&lt;br /&gt;
Unter &amp;quot;IMPLEMENTATION INFORMATION&amp;quot; sieht man hier, ob es für On-Premise und/oder Cloud Systeme mit den entsprechenden Versionen erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Beispiel &amp;quot;Leistungsarten verwalten&amp;quot;: &amp;lt;br /&amp;gt;&lt;br /&gt;
https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps(&#039;F1605A&#039;)/S20OP&lt;br /&gt;
&lt;br /&gt;
Neben den OData Services und ICF-Nodes, lassen sich hier weitere weitere Informationen in Erfahrung bringen wie:&lt;br /&gt;
* Business Rolle&lt;br /&gt;
* Business Katalog&lt;br /&gt;
* Business Gruppe&lt;br /&gt;
* Target Mappings uvm. &lt;br /&gt;
&lt;br /&gt;
==== Benötigte OData Services / OData Services Groups ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implementation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Odata conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:v4_service_group.png]]&lt;br /&gt;
&lt;br /&gt;
==== Benötigte ICF Nodes für UI5 Component ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implemtation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Icf conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
=== OData Service mit TA “/n/IWFND/MAINT_SERVICE” aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Man sollte erst nach dem OData Service einmal suchen, ob dieser schon vorhanden ist.&lt;br /&gt;
Wenn ja, sollte man weitere Überprüfungen vornehmen wie [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#.C3.9Cberpr.C3.BCfungen|unten weiter beschrieben]].&lt;br /&gt;
&lt;br /&gt;
==== Service hinzufügen  ====&lt;br /&gt;
# Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; ausführen&lt;br /&gt;
# Button &amp;quot;Service hinzufügen&amp;quot; betätigen&lt;br /&gt;
# Systemalias (oft LOCAL oder FIORI) wählen und als externen Servicenamen, bezogen auf das o.g. Beispiel, &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; eintragen und Service abrufen:&lt;br /&gt;
: [[Datei:Odata service abrufen.png|left]]&lt;br /&gt;
# Auf den unterstrichenden technischen Servicenamen klicken, sodass sich ein Pop-Up öffnet.&lt;br /&gt;
: Hier ist ein Paket anzugeben, damit es transportiert werden kann. Hier wird ebenso der ICF-Node für den OData Service bereits aktiviert.&lt;br /&gt;
&lt;br /&gt;
:{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn der Verarbeitungsmodus &amp;quot;routing-basiert&amp;quot; ist, macht es Sinn hier bereits die Zuordnung des Systemalias zum Service zu löschen und neu anzulegen, damit ein Transportauftrag getriggert wird(s. [[Einzelnen_OData_Service_und_dazugehörige_ICF-Nodes_für_Fiori_Apps_aktivieren#Zuordnung_Systemalias_zum_Service_pr.C3.BCfen|Zuordnung Systemalias zum Service prüfen]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Überprüfungen ====&lt;br /&gt;
&lt;br /&gt;
===== Automatische Aktivierung des ICF-Nodes für OData Service prüfen =====&lt;br /&gt;
&lt;br /&gt;
Mit TA &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; kann unten links nach Suche nach einem OData Service gesehen werden, ob der Knoten aktiviert ist. Wenn ja, wird eine grüne Ampel angezeigt. Wenn diese gelb ist, ist diese noch zu aktivieren. Bei grau ist diese noch nicht installiert. Sprich für letzteres muss der OData Service ggf. erneut aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
===== ICF-Node(s) von UI5 Component prüfen =====&lt;br /&gt;
Unter Transaktion &amp;quot;SICF&amp;quot; ist zu prüfen, ob die jeweiligen ICF-Nodes aktiviert sind.&lt;br /&gt;
Die Pfade, sind [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#Ben.C3.B6tigte_ICF_Nodes_f.C3.BCr_UI5_Component|wie oben zu sehen]], in der Fiori App Library zu finden.&lt;br /&gt;
&lt;br /&gt;
===== Zuordnung Systemalias zum Service prüfen =====&lt;br /&gt;
Im Zielsytem nach Transport sollte geprüft werden, ob der jeweilige Systemalias zum Service hinzugefügt wurde, wenn der Service-Verarbeitungsmodus &amp;quot;Routing-basiert&amp;quot; ist. Bei Modus &amp;quot;nur integriertes Deployment&amp;quot; wird kein Systemalias angegeben.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; wird der jeweilige Service z.B. &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; gesucht und auf den Service geklickt. Im unteren rechten Fenster sollte dann der Systemalias-Eintrag zu sehen sein. &lt;br /&gt;
&lt;br /&gt;
Ist das nicht der Fall, ist im E-System folgendes zu tun:&lt;br /&gt;
# Button &amp;quot;Customizing&amp;quot; zu betätigen&lt;br /&gt;
# Änderungsmodus gehen&lt;br /&gt;
# Jeweiligen Eintrag heraussuchen, zwischenspeichern, löschen, speichern und wieder eintragen, sodass ein neuer Transportauftrag getriggert wird&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn man selber ein Service aktiviert hat, ist der Systemalias angegeben, aber dieser ist in keinem Auftrag. Daher sind die o.g. Schritte zu tun, damit Zuordnung in einem Transportauftrag ist.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Bei einigen Apps stehen nicht einzelne OData Services im Fiori App Library aufgelistet, sondern eine oder mehrere Service-Gruppen für V4 OData Services.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/IWFND/V4_ADMIN&amp;quot; den Service aktivieren bzw. &lt;br /&gt;
publizieren:&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step2.png]]&lt;br /&gt;
&lt;br /&gt;
Danach findet man im Einstiegsbild links unter &amp;quot;Service-Gruppen&amp;quot; die publizierte Service-Gruppe und die jeweilige App lässt sich verwenden.&lt;br /&gt;
Dort können zudem einzelne OData V4 Services für ein Transport mit hinzugefügt werden, indem man Rechtsklick auf eine Service-Gruppe macht..&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
*Fehler des OData Services auf seiten des Front-End mit TA &amp;quot;/n/iwfnd/error_log&amp;quot; prüfen. &lt;br /&gt;
*[[Lösungen_zu_Fiori_Fehlermeldungen|Gesammelte Lösungen zu Fiori Fehlermeldungen]]&lt;br /&gt;
&lt;br /&gt;
=== SAP Blogs ===&lt;br /&gt;
* https://blogs.sap.com/2017/11/19/sap-fiori-odata-service-registration-activation/&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2455</id>
		<title>Einzelnen OData Service und dazugehörige ICF-Nodes für Fiori Apps aktivieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2455"/>
		<updated>2026-07-10T12:49:42Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Fiori]]&lt;br /&gt;
&lt;br /&gt;
=== App im Fiori App Library suchen ===&lt;br /&gt;
&lt;br /&gt;
Man sollte bei Suche einer App darauf achten, dass diese für das jeweilige gewünschte System verfügbar ist.&lt;br /&gt;
Unter &amp;quot;IMPLEMENTATION INFORMATION&amp;quot; sieht man hier, ob es für On-Premise und/oder Cloud Systeme mit den entsprechenden Versionen erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Beispiel &amp;quot;Leistungsarten verwalten&amp;quot;: &amp;lt;br /&amp;gt;&lt;br /&gt;
https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps(&#039;F1605A&#039;)/S20OP&lt;br /&gt;
&lt;br /&gt;
Neben den OData Services und ICF-Nodes, lassen sich hier weitere weitere Informationen in Erfahrung bringen wie:&lt;br /&gt;
* Business Rolle&lt;br /&gt;
* Business Katalog&lt;br /&gt;
* Business Gruppe&lt;br /&gt;
* Target Mappings uvm. &lt;br /&gt;
&lt;br /&gt;
==== Benötigte OData Services / OData Services Groups ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implementation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Odata conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:v4_service_group.png]]&lt;br /&gt;
&lt;br /&gt;
==== Benötigte ICF Nodes für UI5 Component ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implemtation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Icf conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
=== OData Service mit TA “/n/IWFND/MAINT_SERVICE” aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Man sollte erst nach dem OData Service einmal suchen, ob dieser schon vorhanden ist.&lt;br /&gt;
Wenn ja, sollte man weitere Überprüfungen vornehmen wie [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#.C3.9Cberpr.C3.BCfungen|unten weiter beschrieben]].&lt;br /&gt;
&lt;br /&gt;
==== Service hinzufügen  ====&lt;br /&gt;
# Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; ausführen&lt;br /&gt;
# Button &amp;quot;Service hinzufügen&amp;quot; betätigen&lt;br /&gt;
# Systemalias (oft LOCAL oder FIORI) wählen und als externen Servicenamen, bezogen auf das o.g. Beispiel, &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; eintragen und Service abrufen:&lt;br /&gt;
: [[Datei:Odata service abrufen.png|left]]&lt;br /&gt;
# Auf den unterstrichenden technischen Servicenamen klicken, sodass sich ein Pop-Up öffnet.&lt;br /&gt;
: Hier ist ein Paket anzugeben, damit es transportiert werden kann. Hier wird ebenso der ICF-Node für den OData Service bereits aktiviert.&lt;br /&gt;
&lt;br /&gt;
:{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn der Verarbeitungsmodus &amp;quot;routing-basiert&amp;quot; ist, macht es Sinn hier bereits die Zuordnung des Systemalias zum Service zu löschen und neu anzulegen, damit ein Transportauftrag getriggert wird(s. [[Einzelnen_OData_Service_und_dazugehörige_ICF-Nodes_für_Fiori_Apps_aktivieren#Zuordnung_Systemalias_zum_Service_pr.C3.BCfen|Zuordnung Systemalias zum Service prüfen]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Überprüfungen ====&lt;br /&gt;
&lt;br /&gt;
===== Automatische Aktivierung des ICF-Nodes für OData Service prüfen =====&lt;br /&gt;
&lt;br /&gt;
Mit TA &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; kann unten links nach Suche nach einem OData Service gesehen werden, ob der Knoten aktiviert ist. Wenn ja, wird eine grüne Ampel angezeigt. Wenn diese gelb ist, ist diese noch zu aktivieren. Bei grau ist diese noch nicht installiert. Sprich für letzteres muss der OData Service ggf. erneut aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
===== ICF-Node(s) von UI5 Component prüfen =====&lt;br /&gt;
Unter Transaktion &amp;quot;SICF&amp;quot; ist zu prüfen, ob die jeweiligen ICF-Nodes aktiviert sind.&lt;br /&gt;
Die Pfade, sind [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#Ben.C3.B6tigte_ICF_Nodes_f.C3.BCr_UI5_Component|wie oben zu sehen]], in der Fiori App Library zu finden.&lt;br /&gt;
&lt;br /&gt;
===== Zuordnung Systemalias zum Service prüfen =====&lt;br /&gt;
Im Zielsytem nach Transport sollte geprüft werden, ob der jeweilige Systemalias zum Service hinzugefügt wurde, wenn der Service-Verarbeitungsmodus &amp;quot;Routing-basiert&amp;quot; ist. Bei Modus &amp;quot;nur integriertes Deployment&amp;quot; wird kein Systemalias angegeben.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; wird der jeweilige Service z.B. &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; gesucht und auf den Service geklickt. Im unteren rechten Fenster sollte dann der Systemalias-Eintrag zu sehen sein. &lt;br /&gt;
&lt;br /&gt;
Ist das nicht der Fall, ist im E-System folgendes zu tun:&lt;br /&gt;
# Button &amp;quot;Customizing&amp;quot; zu betätigen&lt;br /&gt;
# Änderungsmodus gehen&lt;br /&gt;
# Jeweiligen Eintrag heraussuchen, zwischenspeichern, löschen, speichern und wieder eintragen, sodass ein neuer Transportauftrag getriggert wird&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn man selber ein Service aktiviert hat, ist der Systemalias angegeben, aber dieser ist in keinem Auftrag. Daher sind die o.g. Schritte zu tun, damit Zuordnung in einem Transportauftrag ist.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Bei einigen Apps stehen nicht einzelne OData Services im Fiori App Library aufgelistet, sondern eine oder mehrere Service Gruppen für V4 OData Services.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/IWFND/V4_ADMIN&amp;quot; den Service aktivieren bzw. &lt;br /&gt;
publizieren:&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step2.png]]&lt;br /&gt;
&lt;br /&gt;
Danach findet man im Einstiegsbild links unter &amp;quot;Service-Gruppen&amp;quot; die publizierte Service Gruppe und die jeweilige App lässt sich verwenden.&lt;br /&gt;
Dort können zudem einzelne OData V4 Services für ein Transport hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
*Fehler des OData Services auf seiten des Front-End mit TA &amp;quot;/n/iwfnd/error_log&amp;quot; prüfen. &lt;br /&gt;
*[[Lösungen_zu_Fiori_Fehlermeldungen|Gesammelte Lösungen zu Fiori Fehlermeldungen]]&lt;br /&gt;
&lt;br /&gt;
=== SAP Blogs ===&lt;br /&gt;
* https://blogs.sap.com/2017/11/19/sap-fiori-odata-service-registration-activation/&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2454</id>
		<title>Einzelnen OData Service und dazugehörige ICF-Nodes für Fiori Apps aktivieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren&amp;diff=2454"/>
		<updated>2026-07-10T12:47:45Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Fiori]]&lt;br /&gt;
&lt;br /&gt;
=== App im Fiori App Library suchen ===&lt;br /&gt;
&lt;br /&gt;
Man sollte bei Suche einer App darauf achten, dass diese für das jeweilige gewünschte System verfügbar ist.&lt;br /&gt;
Unter &amp;quot;IMPLEMENTATION INFORMATION&amp;quot; sieht man hier, ob es für On-Premise und/oder Cloud Systeme mit den entsprechenden Versionen erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Beispiel &amp;quot;Leistungsarten verwalten&amp;quot;: &amp;lt;br /&amp;gt;&lt;br /&gt;
https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps(&#039;F1605A&#039;)/S20OP&lt;br /&gt;
&lt;br /&gt;
Neben den OData Services und ICF-Nodes, lassen sich hier weitere weitere Informationen in Erfahrung bringen wie:&lt;br /&gt;
* Business Rolle&lt;br /&gt;
* Business Katalog&lt;br /&gt;
* Business Gruppe&lt;br /&gt;
* Target Mappings uvm. &lt;br /&gt;
&lt;br /&gt;
==== Benötigte OData Services / OData Services Groups ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implementation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Odata conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:v4_service_group.png]]&lt;br /&gt;
&lt;br /&gt;
==== Benötigte ICF Nodes für UI5 Component ====&lt;br /&gt;
Diese sind unter &amp;quot;Configuration&amp;quot; bei &amp;quot;Implemtation Information&amp;quot; zufinden.&lt;br /&gt;
[[Datei:Icf conf impl.png]]&lt;br /&gt;
&lt;br /&gt;
=== OData Service mit TA “/n/IWFND/MAINT_SERVICE” aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Man sollte erst nach dem OData Service einmal suchen, ob dieser schon vorhanden ist.&lt;br /&gt;
Wenn ja, sollte man weitere Überprüfungen vornehmen wie [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#.C3.9Cberpr.C3.BCfungen|unten weiter beschrieben]].&lt;br /&gt;
&lt;br /&gt;
==== Service hinzufügen  ====&lt;br /&gt;
# Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; ausführen&lt;br /&gt;
# Button &amp;quot;Service hinzufügen&amp;quot; betätigen&lt;br /&gt;
# Systemalias (oft LOCAL oder FIORI) wählen und als externen Servicenamen, bezogen auf das o.g. Beispiel, &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; eintragen und Service abrufen:&lt;br /&gt;
: [[Datei:Odata service abrufen.png|left]]&lt;br /&gt;
# Auf den unterstrichenden technischen Servicenamen klicken, sodass sich ein Pop-Up öffnet.&lt;br /&gt;
: Hier ist ein Paket anzugeben, damit es transportiert werden kann. Hier wird ebenso der ICF-Node für den OData Service bereits aktiviert.&lt;br /&gt;
&lt;br /&gt;
:{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn der Verarbeitungsmodus &amp;quot;routing-basiert&amp;quot; ist, macht es Sinn hier bereits die Zuordnung des Systemalias zum Service zu löschen und neu anzulegen, damit ein Transportauftrag getriggert wird(s. [[Einzelnen_OData_Service_und_dazugehörige_ICF-Nodes_für_Fiori_Apps_aktivieren#Zuordnung_Systemalias_zum_Service_pr.C3.BCfen|Zuordnung Systemalias zum Service prüfen]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Überprüfungen ====&lt;br /&gt;
&lt;br /&gt;
===== Automatische Aktivierung des ICF-Nodes für OData Service prüfen =====&lt;br /&gt;
&lt;br /&gt;
Mit TA &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; kann unten links nach Suche nach einem OData Service gesehen werden, ob der Knoten aktiviert ist. Wenn ja, wird eine grüne Ampel angezeigt. Wenn diese gelb ist, ist diese noch zu aktivieren. Bei grau ist diese noch nicht installiert. Sprich für letzteres muss der OData Service ggf. erneut aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
===== ICF-Node(s) von UI5 Component prüfen =====&lt;br /&gt;
Unter Transaktion &amp;quot;SICF&amp;quot; ist zu prüfen, ob die jeweiligen ICF-Nodes aktiviert sind.&lt;br /&gt;
Die Pfade, sind [[Einzelnen_OData_Service_und_dazugeh%C3%B6rige_ICF-Nodes_f%C3%BCr_Fiori_Apps_aktivieren#Ben.C3.B6tigte_ICF_Nodes_f.C3.BCr_UI5_Component|wie oben zu sehen]], in der Fiori App Library zu finden.&lt;br /&gt;
&lt;br /&gt;
===== Zuordnung Systemalias zum Service prüfen =====&lt;br /&gt;
Im Zielsytem nach Transport sollte geprüft werden, ob der jeweilige Systemalias zum Service hinzugefügt wurde, wenn der Service-Verarbeitungsmodus &amp;quot;Routing-basiert&amp;quot; ist. Bei Modus &amp;quot;nur integriertes Deployment&amp;quot; wird kein Systemalias angegeben.&lt;br /&gt;
&lt;br /&gt;
Unter Transaktion &amp;quot;/n/IWFND/MAINT_SERVICE&amp;quot; wird der jeweilige Service z.B. &amp;quot;FCO_MANAGE_ACTIVITY_TYPE_SRV&amp;quot; gesucht und auf den Service geklickt. Im unteren rechten Fenster sollte dann der Systemalias-Eintrag zu sehen sein. &lt;br /&gt;
&lt;br /&gt;
Ist das nicht der Fall, ist im E-System folgendes zu tun:&lt;br /&gt;
# Button &amp;quot;Customizing&amp;quot; zu betätigen&lt;br /&gt;
# Änderungsmodus gehen&lt;br /&gt;
# Jeweiligen Eintrag heraussuchen, zwischenspeichern, löschen, speichern und wieder eintragen, sodass ein neuer Transportauftrag getriggert wird&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:#6fb6d4; border-radius: 6px;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Hinweis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Wenn man selber ein Service aktiviert hat, ist der Systemalias angegeben, aber dieser ist in keinem Auftrag. Daher sind die o.g. Schritte zu tun, damit Zuordnung in einem Transportauftrag ist.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OData Service V4  mit TA &amp;quot;/n/IWFND/V4_ADMIN&amp;quot; aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Bei einigen Apps stehen nicht einzelne OData Services im Fiori App Library aufgelistet, sondern eine oder mehrere Service Gruppen für V4 OData Services.&lt;br /&gt;
&lt;br /&gt;
Der nächste Schritt unter Transaktion &amp;quot;/IWFND/V4_ADMIN&amp;quot; den Service zu aktivieren bzw. zu publizieren:&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:v4_aktivierung_step2.png]]&lt;br /&gt;
&lt;br /&gt;
Danach findet man im Einstiegsbild links unter Service-Gruppen die publizierte Service Gruppe und die jeweilige App lässt sich verwenden.&lt;br /&gt;
&lt;br /&gt;
Links in der Auflistung unter &amp;quot;Service-Gruppen&amp;quot; können einzelne OData V4 Services für ein Transport angetriggert werden.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
*Fehler des OData Services auf seiten des Front-End mit TA &amp;quot;/n/iwfnd/error_log&amp;quot; prüfen. &lt;br /&gt;
*[[Lösungen_zu_Fiori_Fehlermeldungen|Gesammelte Lösungen zu Fiori Fehlermeldungen]]&lt;br /&gt;
&lt;br /&gt;
=== SAP Blogs ===&lt;br /&gt;
* https://blogs.sap.com/2017/11/19/sap-fiori-odata-service-registration-activation/&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2453</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2453"/>
		<updated>2026-06-25T08:09:40Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 🌍 Geschäftsprozesse / Module&lt;br /&gt;
** category: Materialwirtschaft|Materialwirtschaft&lt;br /&gt;
** category: Qualitätsmanagement|Qualitätsmanagement&lt;br /&gt;
** category: Warehouse_Management|Warehouse Management&lt;br /&gt;
* ⚙️ Customizing&lt;br /&gt;
** category: SPRO|SPRO&lt;br /&gt;
*** Customizing_für_Materialwirtschaft|-&amp;gt; MM&lt;br /&gt;
*** Customizing_für_Qualitätsmanagement|-&amp;gt; QM&lt;br /&gt;
** Customizing_für_Fiori-Apps|Fiori Apps&lt;br /&gt;
*** &lt;br /&gt;
* ⛏️ Erweiterbarkeit&lt;br /&gt;
** category: In-App_Extensibility|IN-APP EXTENSIBILITY&lt;br /&gt;
*** Key_User_Extensibility|-&amp;gt; Key User Extensibility&lt;br /&gt;
*** category: Classic_Extensibility|-&amp;gt; Classic Extensibility&lt;br /&gt;
** category: Side_by_Side_Extensibility|S-BY-S EXTENSIBILITY&lt;br /&gt;
*** Business_Technology_Platform|-&amp;gt; Business Technology Platform&lt;br /&gt;
* ⌨️ Entwicklung&lt;br /&gt;
*** Clean_Core_Level_Modell|Clean-Core-Level-Modell&lt;br /&gt;
** category: SAP_Standard|SAP STANDARD&lt;br /&gt;
*** Kategorie:SAP_APIs|-&amp;gt; APIs&lt;br /&gt;
*** SAP_FuBas_und_BAPIs|-&amp;gt; FuBas &amp;amp; BAPIs&lt;br /&gt;
*** SAP_Klassen|-&amp;gt; Klassen&lt;br /&gt;
*** SAP_Programme|-&amp;gt; Programme&lt;br /&gt;
*** Kategorie:Core_Data_Services|-&amp;gt; Core Data Services&lt;br /&gt;
*** category: RAP|-&amp;gt; RAP&lt;br /&gt;
*** category: Schlüsselbegriffe|-&amp;gt; Schlüsselbegriffe&lt;br /&gt;
** category: Z_Coding_3rd_Party|Z-CODING/3RD PARTY&lt;br /&gt;
*** category: AddOns|-&amp;gt; AddOns&lt;br /&gt;
*** category: Codeschnipsel|-&amp;gt; Codeschnipsel&lt;br /&gt;
*** category: Freizeit_erstellte_ZKlassen_und_ZProgramme|-&amp;gt; Freizeit Coding&lt;br /&gt;
** IDE|IDE&lt;br /&gt;
*** category: Eclipse|-&amp;gt; Eclipse&lt;br /&gt;
*** category: VSCode|-&amp;gt; VSCode&lt;br /&gt;
* 🖥️ Schnittstellen zu Systemen / Integration / EDI&lt;br /&gt;
** category:IDoc_im_Standard|IDoc im Standard&lt;br /&gt;
** category:IDoc_im_Z-Umfeld|IDoc im Z-Umfeld&lt;br /&gt;
** category:REST_API|REST API&lt;br /&gt;
** category: RAP_als_Web_API|RAP als Web-API&lt;br /&gt;
* 🔝 Übergreifend / Sonstiges&lt;br /&gt;
** category: Stammdaten|Stammdaten&lt;br /&gt;
** SAP_Tabellen|Tabellen&lt;br /&gt;
** SAP_Objekte|Objekte&lt;br /&gt;
** category: Nachrichtensteuerung|Nachrichtensteuerung&lt;br /&gt;
** category: BusinessWorkflow|Business Workflow&lt;br /&gt;
** category: Fiori|Fiori&lt;br /&gt;
** category: Formulare|Formulare&lt;br /&gt;
** Übersetzungen|Übersetzungen&lt;br /&gt;
** SAP_Transaktionen|Transaktionen&lt;br /&gt;
** category: Berechtigungen|Berechtigungen&lt;br /&gt;
* Für Einsteiger / Anfänger&lt;br /&gt;
* Einführung_in_ABAP|Einführung in ABAP&lt;br /&gt;
* 👨‍💻 Administration&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Wiki|Wiki&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Autor|Autor&lt;br /&gt;
** https://de.m1ch3l.de/#imprint|Impressum&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:VSCode&amp;diff=2452</id>
		<title>Kategorie:VSCode</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:VSCode&amp;diff=2452"/>
		<updated>2026-06-25T08:08:37Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde neu angelegt: „* https://codeberg.org/m1ch3l-de/vscode-adt-stuff/src/branch/main/abap-syntaxhighlight“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* https://codeberg.org/m1ch3l-de/vscode-adt-stuff/src/branch/main/abap-syntaxhighlight&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:Core_Data_Services&amp;diff=2451</id>
		<title>Kategorie:Core Data Services</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:Core_Data_Services&amp;diff=2451"/>
		<updated>2026-06-25T08:07:29Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:SAP_Standard]]&lt;br /&gt;
[[Kategorie:Eclipse]]&lt;br /&gt;
[[Kategorie:VSCode]]&lt;br /&gt;
== Kurzdefinition nach SAP ==&lt;br /&gt;
&lt;br /&gt;
Core Data Services (CDS) sind von SAP definierte, semantisch angereicherte Datenmodelle, mit denen Daten direkt auf der Datenbank beschrieben werden. &lt;br /&gt;
&lt;br /&gt;
CDS dienen als zentrale Schicht für Datenmodellierung, Wiederverwendung und Autorisierung und bilden die Grundlage für analytische und transaktionale Anwendungen in SAP S/4HANA und im ABAP Cloud-Modell.&lt;br /&gt;
&lt;br /&gt;
Kurz gesagt: CDS = einheitliche, semantische Datenmodelle als Basis für Services, Fiori-Apps und [[:Kategorie:RAP|RAP]].&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=BAPI_ACC_DOCUMENT_POST&amp;diff=2450</id>
		<title>BAPI ACC DOCUMENT POST</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=BAPI_ACC_DOCUMENT_POST&amp;diff=2450"/>
		<updated>2026-05-31T11:35:39Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Problem: BAPI erzeugt Buchung mit nicht erwarteten Buchungsschlüssel in Kreditor- oder Debitorzeile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Clean-Core-Level_B]]&lt;br /&gt;
Nachfolger: Bevorzugt [[I_JOURNALENTRYTP]] verwenden&lt;br /&gt;
== Abhängigkeit: Kreditor- bzw Debitor- zu Sachkontenzeile sowie S/H Kennzeichen ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Buchungsschlüssel Kreditor-/Debitorzeile&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;S/H Kennzeichen Kreditor-/Debitorzeile&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Buchungsschlüssel Sachkontenzeile&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;S/H Kennzeichen Sachkontenzeile&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|01(Debitor)&lt;br /&gt;
|S&lt;br /&gt;
|50&lt;br /&gt;
|H&lt;br /&gt;
|-&lt;br /&gt;
|31(Kreditor)&lt;br /&gt;
|H&lt;br /&gt;
|40&lt;br /&gt;
|S&lt;br /&gt;
|-&lt;br /&gt;
|05(Debitor)&lt;br /&gt;
|S&lt;br /&gt;
|50&lt;br /&gt;
|H&lt;br /&gt;
|-&lt;br /&gt;
|11(Debitor)&lt;br /&gt;
|H&lt;br /&gt;
|40&lt;br /&gt;
|S&lt;br /&gt;
|-&lt;br /&gt;
|15(Debitor)&lt;br /&gt;
|H&lt;br /&gt;
|40&lt;br /&gt;
|S&lt;br /&gt;
|-&lt;br /&gt;
|21(Kreditor)&lt;br /&gt;
|S&lt;br /&gt;
|50&lt;br /&gt;
|H&lt;br /&gt;
|-&lt;br /&gt;
|25(Kreditor)&lt;br /&gt;
|S&lt;br /&gt;
|50&lt;br /&gt;
|H&lt;br /&gt;
|-&lt;br /&gt;
|35(Kreditor)&lt;br /&gt;
|H&lt;br /&gt;
|40&lt;br /&gt;
|S&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erweiterungsparameter &amp;quot;extension2&amp;quot; / BAdI &amp;quot;ACC_DOCUMENT&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Mithilfe des Importparameters &amp;quot;extension2&amp;quot; können dem BAPI vor der Verarbeitung noch weitere Daten mitgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
Nachdem der Importparameter &amp;quot;extension2&amp;quot; mitgegeben wird, muss noch eine Implementierung beim BAdI &amp;quot;[[ACC_DOCUMENT]]&amp;quot; angelegt und die jeweilige Interface Methode ausprogammiert werden, jenachdem welche zusätzliche Daten mitgeliefert werden sollen.&lt;br /&gt;
&lt;br /&gt;
== Problem: BAPI erzeugt Buchung mit nicht erwarteten Buchungsschlüssel in Kreditor- oder Debitorzeile ==&lt;br /&gt;
&lt;br /&gt;
In einem Projekt musste ich Anpassungen im Code von Arbeitskollegen vornehmen, womit anschließend mit BAPI BAPI_ACC_DOCUMENT_POST verschiedene FB01 Buchungen erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
Zu dem Zeitpunkt konnten nur Debitor- und Kreditorbuchungen mit Buschungsschlüssel 01 und 31 automatisch gebucht werden. Eine Erweiterung sah vor auch Buchungen mit Buchungschlüssel 05, 11, 15, 21, 25 und 35 verarbeiten zu können.&lt;br /&gt;
&lt;br /&gt;
Der BAPI bietet Importparameter je nach Buchungsart also Debitor-, Kreditor oder Sachkontenbuchung sowie zusätzlich Parameter für die Steuerzeile und Währungspositionen. Ein Buchungsschlüssel bei der Debitor-, Kreditor- und Sachkontenzeile kann nicht mitgegeben werden und der BAPI versucht diese selbst zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
Leider hat der BAPI nie den richtigen Buchungsschlüssel ermittelt bzw. zum Beispiel 35 mit 31 überschrieben, sodass in dem Beispiel immer eine 31 Buchung erzeugt wurde. Der BAPI hat ein Importparameter namens “extension2” mit dem sich ein überschreiben verhindern lässt, indem explizit der Buchungschlüssel mitgegeben wird.&lt;br /&gt;
&lt;br /&gt;
Wie oben beschrieben, versucht der BAPI selber zu erkennen welche Art von Buchung anhand der Importparameter (Account Payables, Account Receivable, etc.) erzeugt werden sollen.&lt;br /&gt;
&lt;br /&gt;
Die Folge ist, dass bestimmte Buchungen nicht erkannt werden und immer mit Buchungschlüssel je nach Debitor- oder Kreditorzeile mit 01 oder 31 gebucht werden.&lt;br /&gt;
&lt;br /&gt;
Aus diesem Grund können, bevor der BAPI die Verarbeitung durchführt, explizit die Buchungsschlüssel gesetzt werden.&lt;br /&gt;
Dem BAPI ist mit dem Erweiterungsparameter &amp;quot;extension2&amp;quot; die aktuellsten Buchungsschlüssel der jeweiligen Buchung mitzugeben.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist die Interface Methode des BAdIs auszuprogrammieren:&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; [[ACC_DOCUMENT#Vorgehen:_Buchungsschl.C3.BCssel_explizit_setzen|Vorgehen: Buchungsschlüssel explizit mit BAdI setzen]]&lt;br /&gt;
&lt;br /&gt;
== Nützliche Seiten / Dokumente ==&lt;br /&gt;
* [http://sapmandoo.over-blog.de/article-buchen-beleg-per-bapi-bapi_acc_document_post-67406241.html Codebeispiele zur Erzeugung von AP oder AR Buchungen - Content by sapmandoo.over-blog.de]&lt;br /&gt;
* [https://www.tricktresor.de/wp-content/uploads/2018/06/FI-Buchungen-mittels-BAPI_ACC_DOCUMENT_POST.pdf Infos zur Buchung mit diesem BAPI - Content by tricktresor]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SELECT&amp;diff=2449</id>
		<title>SELECT</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SELECT&amp;diff=2449"/>
		<updated>2026-05-27T09:14:11Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Schlüsselbegriffe]]&lt;br /&gt;
=== Dynamische SELECT Abfrage ===&lt;br /&gt;
==== WHERE ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
DATA(lv_comp_srch) = |%{ me-&amp;gt;_gv_mcomp }%|.&lt;br /&gt;
lv_where_clausel = &#039;addrnumber = @lt_userdata-addrnumber AND ( name1 LIKE @lv_comp_srch OR mc_name1 LIKE @lv_comp_srch )&#039;.&lt;br /&gt;
SELECT * FROM adrc INTO TABLE @DATA(lt_companynames) FOR ALL ENTRIES IN @lt_userdata&lt;br /&gt;
                                                      WHERE (lv_where_clausel).&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Existenzprüfung Datensatz ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
 SELECT SINGLE @abap_true FROM scarr&lt;br /&gt;
                          WHERE carrid = @carrier&lt;br /&gt;
                          INTO @DATA(exists).&lt;br /&gt;
 IF exists = abap_true.&lt;br /&gt;
 ELSE.&lt;br /&gt;
 ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inner Join ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    SELECT SINGLE&lt;br /&gt;
      FROM I_Product AS p&lt;br /&gt;
             INNER JOIN&lt;br /&gt;
               I_ProductStorage_2 AS s ON s~Product = p~Product&lt;br /&gt;
      FIELDS p~Product,&lt;br /&gt;
             p~CrossPlantStatus,&lt;br /&gt;
             p~ProductGroup,&lt;br /&gt;
             s~MinRemainingShelfLife&lt;br /&gt;
      INTO CORRESPONDING FIELDS OF @ms_product.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=CL_ABAP_CONTEXT_INFO&amp;diff=2448</id>
		<title>CL ABAP CONTEXT INFO</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=CL_ABAP_CONTEXT_INFO&amp;diff=2448"/>
		<updated>2026-04-21T09:05:07Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde neu angelegt: „DATA lv_seldate TYPE cl_abap_context_info=&amp;gt;ty_system_date.     lv_seldate = cl_abap_context_info=&amp;gt;get_system_date(  ) - lv_days_in_past.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DATA lv_seldate TYPE cl_abap_context_info=&amp;gt;ty_system_date.&lt;br /&gt;
    lv_seldate = cl_abap_context_info=&amp;gt;get_system_date(  ) - lv_days_in_past.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Jobvorlagen_f%C3%BCr_Fiori_App_Anwendungsjob(F1240)_erstellen&amp;diff=2447</id>
		<title>Jobvorlagen für Fiori App Anwendungsjob(F1240) erstellen</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Jobvorlagen_f%C3%BCr_Fiori_App_Anwendungsjob(F1240)_erstellen&amp;diff=2447"/>
		<updated>2026-04-21T08:28:06Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Y/Z-Klasse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Codeschnipsel]]&lt;br /&gt;
[[Kategorie: Clean-Core-Level_A]]&lt;br /&gt;
{{Codeberg|page={{PAGENAMEE}}}}&lt;br /&gt;
Jobvorlagen, auch bekannt als Job Templates, können erstellt werden, die dann in der App &amp;quot;Anwendungsjob&amp;quot; bzw. &amp;quot;Application Jobs&amp;quot; für Erstellung von Jobs genommen werden können.&lt;br /&gt;
&lt;br /&gt;
== Übersicht der benötigten Objekte in ADT ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Y/Z Klasse&lt;br /&gt;
** Verwendung Interfaces&lt;br /&gt;
*** if_apj_dt_exec_object&lt;br /&gt;
*** if_apj_rt_exec_object&lt;br /&gt;
** Implementierung Methode if_apj_dt_exec_object~get_parameters.&lt;br /&gt;
** Implementierung Methode if_apj_rt_exec_object~execute&lt;br /&gt;
* Erstellung Application Job Catalog Entry&lt;br /&gt;
** Zuordnung der Klasse mit Execute Methode&lt;br /&gt;
* Erstellung Job Template&lt;br /&gt;
** Zuordnung Job Catalog Entry&lt;br /&gt;
** Festlegung Defaultwerte, wenn ein Template für Joberstellung genutzt wird&lt;br /&gt;
&lt;br /&gt;
== Anlegen der benötigten Objekte in ADT ==&lt;br /&gt;
&lt;br /&gt;
=== Y/Z-Klasse ===&lt;br /&gt;
Ich habe es mir angewöhnt die Klassen mit &amp;quot;_ajob&amp;quot; zu enden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 CLASS ycl_name_of_class_ajob DEFINITION&lt;br /&gt;
  PUBLIC&lt;br /&gt;
  FINAL&lt;br /&gt;
  CREATE PUBLIC .&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SECTION.&lt;br /&gt;
    INTERFACES: if_apj_dt_exec_object,&lt;br /&gt;
                if_apj_rt_exec_object.&lt;br /&gt;
    &lt;br /&gt;
    &amp;quot;Spätere Parameter bei Jobanlage&lt;br /&gt;
    CONSTANTS: cv_material       TYPE selname VALUE &#039;SO_MATNR&#039; ##NO_TEXT,&lt;br /&gt;
               cv_posting_date   TYPE selname VALUE &#039;P_PODATE&#039; ##NO_TEXT.&lt;br /&gt;
  PROTECTED SECTION.&lt;br /&gt;
  PRIVATE SECTION.&lt;br /&gt;
 ENDCLASS.&lt;br /&gt;
&lt;br /&gt;
 CLASS ycl_name_of_class_ajob IMPLEMENTATION.&lt;br /&gt;
  METHOD if_apj_dt_exec_object~get_parameters.&lt;br /&gt;
&lt;br /&gt;
    et_parameter_def = VALUE #(&lt;br /&gt;
          ( selname = &#039;SO_MATNR&#039;  kind = &#039;S&#039; datatype = &#039;C&#039; component_type = &#039;MATNR&#039;      length = &#039;40&#039;  decimals = &#039;0&#039; param_text =&#039;Material&#039;(001) changeable_ind = &#039;X&#039; )&lt;br /&gt;
          ( selname = &#039;P_PODATE&#039;  kind = &#039;P&#039; datatype = &#039;D&#039; component_type = &#039;BUDAT&#039;      length = &#039;6&#039;  decimals = &#039;0&#039; param_text =&#039;Posting Date&#039;(004) changeable_ind = &#039;X&#039; mandatory_ind = &#039;&#039; )&lt;br /&gt;
      ).&lt;br /&gt;
&lt;br /&gt;
    &amp;quot; Default value&lt;br /&gt;
    et_parameter_val = VALUE #(&lt;br /&gt;
      ( selname = &#039;P_PODATE&#039;&lt;br /&gt;
        kind    = &#039;P&#039;&lt;br /&gt;
        sign    = &#039;I&#039;&lt;br /&gt;
        option  = &#039;EQ&#039;&lt;br /&gt;
        low     = sy-datum ) ##NO_TEXT&lt;br /&gt;
    ).&lt;br /&gt;
  ENDMETHOD.&lt;br /&gt;
&lt;br /&gt;
  METHOD if_apj_rt_exec_object~execute.&lt;br /&gt;
&lt;br /&gt;
    TRY.&lt;br /&gt;
        DATA(lo_log) = cl_bali_log=&amp;gt;create_with_header( cl_bali_header_setter=&amp;gt;create( object =&#039;&#039; subobject = &#039;&#039; external_id = &#039;&#039; ) ).&lt;br /&gt;
      CATCH cx_bali_runtime.&lt;br /&gt;
    ENDTRY.&lt;br /&gt;
&lt;br /&gt;
    TRY.&lt;br /&gt;
        DATA(lv_posting_date) = it_parameters[ selname = cv_posting_date ]-low.&lt;br /&gt;
      CATCH cx_sy_itab_line_not_found.&lt;br /&gt;
       RETURN.&lt;br /&gt;
    ENDTRY.&lt;br /&gt;
&lt;br /&gt;
    DATA: ltr_material      TYPE RANGE OF matnr.&lt;br /&gt;
&lt;br /&gt;
    LOOP AT it_parameters ASSIGNING FIELD-SYMBOL(&amp;lt;ls_para&amp;gt;).&lt;br /&gt;
      CASE &amp;lt;ls_para&amp;gt;-selname.&lt;br /&gt;
        WHEN cv_material.&lt;br /&gt;
          APPEND INITIAL LINE TO ltr_material ASSIGNING FIELD-SYMBOL(&amp;lt;ls_add_material&amp;gt;).&lt;br /&gt;
          MOVE-CORRESPONDING &amp;lt;ls_para&amp;gt; TO &amp;lt;ls_add_material&amp;gt;.&lt;br /&gt;
        WHEN OTHERS.&lt;br /&gt;
         &amp;quot;Handling, wenn ein Parameter da ist, der nicht erwartet wird&lt;br /&gt;
      ENDCASE.&lt;br /&gt;
    ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;Dein&lt;br /&gt;
    &amp;quot;Application Code&lt;br /&gt;
    &amp;quot;hier&lt;br /&gt;
&lt;br /&gt;
    TRY.&lt;br /&gt;
        cl_bali_log_db=&amp;gt;get_instance( )-&amp;gt;save_log( log = lo_log&lt;br /&gt;
                                                   assign_to_current_appl_job = abap_true ).&lt;br /&gt;
     CATCH cx_bali_runtime.&lt;br /&gt;
    ENDTRY.&lt;br /&gt;
   ENDMETHOD.&lt;br /&gt;
  ENDCLASS.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellung Job Entry ===&lt;br /&gt;
Das Objekt in ADT heißt &amp;quot;Application Job Catalog Entry&amp;quot;.&lt;br /&gt;
Selber bezeichne ich es am Ende mit &amp;quot;_JOB_CAT&amp;quot;.&lt;br /&gt;
Wenn das Objekt angelegt ist, kann unter &amp;quot;General Information&amp;quot; die Klasse angegeben werden, worin sich die execute-Methode befindet&lt;br /&gt;
&lt;br /&gt;
=== Erstellung Job Template ===&lt;br /&gt;
Das Objekt in ADT heißt &amp;quot;Application Job Template&amp;quot;.&lt;br /&gt;
Selber bezeichne ich es am Ende mit &amp;quot;_JOB_TEMP&amp;quot;.&lt;br /&gt;
Wenn das Objekt angelegt ist, kann unter &amp;quot;General Information&amp;quot; das bereits angelegte Job Catalog Entry zugeordnet werden.&lt;br /&gt;
Bei &amp;quot;Parameters &amp;quot; können Defaultwerte mitgegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Debugging Application Jobs ==&lt;br /&gt;
Application Jobs, die via App angelegt und durchgeführt werden, sind wie die klassischen Jobs ebenfalls in SM37 zu sehen. Der Jobname hat allerdings einen zufällig generierten Namen. Das Debugging ist möglich, wenn man den Job via Checkbox markiert und in der GUI im Transaktionsfeld JDBG eingetragen und mit Enter bestätigt wird. Wenn ein Breakpoint in der o.g. Methoden in der GUI gesetzt ist, dann springt der Debugger an.&lt;br /&gt;
&lt;br /&gt;
== Entwicklung ==&lt;br /&gt;
* [[Anwendungsjob(F1240)_via_ABAP_mit_Jobvorlage_erstellen_und_terminieren]]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Anwendungsprotokoll_in_Cloud_Entwicklung_erstellen&amp;diff=2446</id>
		<title>Anwendungsprotokoll in Cloud Entwicklung erstellen</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Anwendungsprotokoll_in_Cloud_Entwicklung_erstellen&amp;diff=2446"/>
		<updated>2026-04-11T09:06:27Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Clean-Core-Level_A]]&lt;br /&gt;
Für T1 / Cloud Entwicklungen können die bekannten FuBas oder klassischen Klassen für Erstellungen von Application Logs nicht mehr genutzt werden.&lt;br /&gt;
Hierfür bietet die SAP mehrere freigegebende Klassen für die Cloud Entwicklung, s. [[SAP_Klassen#Application_Log]]&lt;br /&gt;
Das Objekt und Subobjekt sollte nicht via SLG0, sondern via Eclipse mit ABAP Development Tools angelegt werden.&lt;br /&gt;
&lt;br /&gt;
= Anwendung der Klassen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;adminonly&amp;quot; style=&amp;quot;display:none; text-align:right;&amp;quot;&amp;gt;https://pastebin.com/5punprFi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Neuen Anwendungsprotokoll erstellen ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 TRY.&lt;br /&gt;
  DATA(lo_log) = cl_bali_log=&amp;gt;create( ).&lt;br /&gt;
 CATCH cx_bali_runtime INTO DATA(lx_runtime_exception).&lt;br /&gt;
 ENDTRY.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kopfdaten zum Anwendungsprotokoll erstellen ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 lo_log-&amp;gt;set_header( header = cl_bali_header_setter=&amp;gt;create( object = &#039;YOBJECT&#039;&lt;br /&gt;
                                                             subobject = &#039;YSUBOBJECT&#039;&lt;br /&gt;
                                                             external_id = &#039;Ext ID&#039; ) ).&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nachrichten zum Anwendungsprotokoll hinzufügen ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 TRY. &lt;br /&gt;
  DATA(lo_message) = cl_bali_message_setter=&amp;gt;create( severity = if_bali_constants=&amp;gt;c_severity_error&lt;br /&gt;
                                                     id = &#039;YMC_ABC&#039;&lt;br /&gt;
                                                     number = &#039;000&#039; ).&lt;br /&gt;
   lo_log-&amp;gt;add_item( item = lo_message ).&lt;br /&gt;
  &lt;br /&gt;
   lo_log-&amp;gt;add_item( item = cl_bali_message_setter=&amp;gt;create_from_sy( ) ).&lt;br /&gt;
  &lt;br /&gt;
   DATA(lo_free_text) = cl_bali_free_text_setter=&amp;gt;create( severity = if_bali_constants=&amp;gt;c_severity_error&lt;br /&gt;
                                                              text = &#039;Some Error Text&#039; ).&lt;br /&gt;
   lo_log-&amp;gt;add_item( item = lo_free_text ).&lt;br /&gt;
  &lt;br /&gt;
   DATA(lo_exception) = cl_bali_exception_setter=&amp;gt;create( severity = if_bali_constants=&amp;gt;c_severity_error&lt;br /&gt;
                                                         exception = lo_ref ).&lt;br /&gt;
   lo_log-&amp;gt;add_item( item = lo_exception ).&lt;br /&gt;
  CATCH cx_bali_runtime INTO DATA(lx_runtime_exception).&lt;br /&gt;
 ENDTRY.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendungsprotokoll auf die Datenbank speichern ==&lt;br /&gt;
Es gibt zwei Methoden zum Speichern des Logs:&lt;br /&gt;
* SAVE_LOG: verwendet die Standarddatenbankverbindung. Dies bedeutet, dass das Protokoll nur dann auf die Datenbank geschrieben wird, wenn die Anwendung COMMIT_WORK aufruft.&lt;br /&gt;
* SAVE_LOG_2ND_DB_CONNECTION: verwendet zum Speichern ein Service, der das Protokoll direkt auf die Datenbank commited&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt; &lt;br /&gt;
 TRY. &lt;br /&gt;
  cl_bali_log_db=&amp;gt;get_instance( )-&amp;gt;save_log( log = lo_log ).&lt;br /&gt;
  cl_bali_log_db=&amp;gt;get_instance( )-&amp;gt;save_log_2nd_db_connection( log = lo_log ).&lt;br /&gt;
 CATCH cx_bali_runtime INTO DATA(lx_runtime_exception).&lt;br /&gt;
 ENDTRY.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Anwendungsprotokoll aus dem Speicher löschen / Prüfung Speicher gelöscht ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 TRY.&lt;br /&gt;
  lo_log-&amp;gt;release_memory( ).  &lt;br /&gt;
  IF lo_log-&amp;gt;is_invalidated( ).&lt;br /&gt;
  ENDIF&lt;br /&gt;
 CATCH cx_bali_runtime INTO DATA(lx_runtime_exception).&lt;br /&gt;
  lo_runtime_exception-&amp;gt;get_text(  ).&lt;br /&gt;
 ENDTRY.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Anwendungsprotokoll löschen ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line copy&amp;gt;&lt;br /&gt;
 TRY.&lt;br /&gt;
   cl_bali_log_db=&amp;gt;get_instance( )-&amp;gt;delete_log( log = lo_log ).&lt;br /&gt;
  CATCH cx_bali_runtime INTO DATA(lx_runtime_exception).&lt;br /&gt;
 ENDTRY.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Anwendungsprotokoll in Fiori-Anwendungsjob anhängen ==&lt;br /&gt;
&lt;br /&gt;
Der Vorteil der o.g. verwendeten Klassen beim Speichern des Logs ist, dass diese direkt dem Anwendungsjob, die via Fiori App &amp;quot;Anwendungsjob&amp;quot; erstellt wurden, angehangen werden, wenn der entsprechende Parameter &amp;quot;ASSIGN_TO_CURRENT_APPL_JOB&amp;quot; bei cl_bali_log_db=&amp;gt;get_instance( )-&amp;gt;save_log( log = lo_log ). auf abap_true gesetzt wird.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SPLIT&amp;diff=2445</id>
		<title>SPLIT</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SPLIT&amp;diff=2445"/>
		<updated>2026-03-29T12:10:25Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Zusatz &amp;quot;IN CHARACTER MOD&amp;quot;E oder &amp;quot;IN BYTE MODE&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Schlüsselbegriffe]]&lt;br /&gt;
&lt;br /&gt;
Mit SPLIT können zeichen- bzw. byteartige Variablen mit einem bestimmten Trennzeichen aufgesplittet werden.&lt;br /&gt;
&lt;br /&gt;
=== Speicherung der Ergebnisse in eine interne Tabelle ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
 lv_split_char        TYPE char01,&lt;br /&gt;
 lv_line              TYPE string,&lt;br /&gt;
 lt_splitted_data     TYPE TABLE OF string,&lt;br /&gt;
&lt;br /&gt;
 SPLIT lv_line AT lv_split_char INTO TABLE lt_splitted_data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speicherung der Ergebnisse in beliebig viele Variablen und Gesamtergebnis in eine interne Tabelle ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
 SPLIT lv_line AT space INTO DATA(str1) DATA(str2) DATA(str3), lt_splitted_data.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn lv_line als Inhalt &amp;quot;Ich bin SAP Berater und Entwickler&amp;quot; hat, würden die Variablen &amp;quot;str1&amp;quot; das Wort &amp;quot;Ich&amp;quot;, &amp;quot;str2 das Wort &amp;quot;bin&amp;quot; und der str3 die restlichen Wörter also &amp;quot;SAP Berater und Entwickler&amp;quot; beinhalten. Die Tabelle enthält alle Aufteilungen d.h. sechs Zeilen.&lt;br /&gt;
&lt;br /&gt;
=== Zusatz &amp;quot;IN CHARACTER MODE&amp;quot; oder &amp;quot;IN BYTE MODE&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Wenn garnichts angegeben wird, wird eine Zeichenkettenverarbeitung durchgeführt.&lt;br /&gt;
Bei Bytestrings ist dann am Ende des Befehls &amp;quot;IN BYTE MODE&amp;quot; anzugeben.&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der sy-subrcs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;sy-subrc&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Bedeutung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Die Segmente wurden ohne Abschneiden in die Zielfelder bzw. die interne Tabelle übertragen. &lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Beim Übertragen mindestens eines Segments in die Zielfelder bzw. die interne Tabelle wurde rechts abgeschnitten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nützliche Seiten ===&lt;br /&gt;
&lt;br /&gt;
* https://help.sap.com/doc/abapdocu_751_index_htm/7.51/de-DE/abapsplit.htm&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Lesezeichen&amp;diff=2444</id>
		<title>Lesezeichen</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Lesezeichen&amp;diff=2444"/>
		<updated>2026-03-29T11:30:00Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TYPES: BEGIN OF zstock,&lt;br /&gt;
         matnr TYPE matnr,   &amp;quot;char40&lt;br /&gt;
         werks TYPE werks_d, &amp;quot;char04&lt;br /&gt;
         lgort TYPE lgort_d, &amp;quot;char04&lt;br /&gt;
         labst TYPE labst,   &amp;quot;quan13&lt;br /&gt;
       END OF zstock.&lt;br /&gt;
&lt;br /&gt;
DATA lt_mard  TYPE TABLE OF zstock,&lt;br /&gt;
     lt_stock TYPE TABLE OF zstock.&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Beispiel-Daten&lt;br /&gt;
lt_mard = VALUE #( ( matnr = &#039;100&#039; werks = &#039;1710&#039; lgort = &#039;1720&#039; labst = 125 )&lt;br /&gt;
                   ( matnr = &#039;110&#039; werks = &#039;1710&#039; lgort = &#039;1730&#039; labst = 250 )&lt;br /&gt;
                   ( matnr = &#039;110&#039; werks = &#039;1710&#039; lgort = &#039;1730&#039; labst = 500 )&lt;br /&gt;
                   ( matnr = &#039;120&#039; werks = &#039;1710&#039; lgort = &#039;1740&#039; labst = 750 ) ).&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Aggregation mit REDUCE&lt;br /&gt;
DATA(lt_stock_reduced) = VALUE zstock_table( &lt;br /&gt;
  FOR wa IN lt_mard&lt;br /&gt;
  GROUP BY ( matnr = wa-matnr werks = wa-werks lgort = wa-lgort ) &lt;br /&gt;
  INTO DATA(group)&lt;br /&gt;
  LET total_labst = REDUCE i( INIT x = 0&lt;br /&gt;
                               FOR g IN group&lt;br /&gt;
                               NEXT x = x + g-labst )&lt;br /&gt;
  IN ( matnr = group-key-matnr&lt;br /&gt;
       werks = group-key-werks&lt;br /&gt;
       lgort = group-key-lgort&lt;br /&gt;
       labst = total_labst ) ).&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Ausgabe zum Test&lt;br /&gt;
LOOP AT lt_stock_reduced INTO DATA(ls).&lt;br /&gt;
  WRITE: / ls-matnr, ls-werks, ls-lgort, ls-labst.&lt;br /&gt;
ENDLOOP.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=CORRESPONDING&amp;diff=2443</id>
		<title>CORRESPONDING</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=CORRESPONDING&amp;diff=2443"/>
		<updated>2026-03-29T11:23:56Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* CORRESPONDING anwenden wie MOVE-CORRESPONDING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Schlüsselbegriffe]]&lt;br /&gt;
&lt;br /&gt;
=== MAPPING ===&lt;br /&gt;
 lt_send_documents = CORRESPONDING #( BASE ( lt_send_documents ) it_documents MAPPING bukrs = rbukrs ).&lt;br /&gt;
&lt;br /&gt;
=== EXCEPT ===&lt;br /&gt;
 lt_data2 = CORRESPONDING #( BASE ( lt_data2 ) lt_data MAPPING zcol1 = ycol1&lt;br /&gt;
                                                        EXCEPT ycol1 ).&lt;br /&gt;
&lt;br /&gt;
=== CORRESPONDING anwenden wie MOVE-CORRESPONDING ===&lt;br /&gt;
&lt;br /&gt;
struct2 = CORRESPONDING #( BASE ( struct2 ) struct1 ).&amp;lt;br/&amp;gt;&lt;br /&gt;
MOVE-CORRESPONDING struct1 TO struct2.&lt;br /&gt;
&lt;br /&gt;
itab2 = CORRESPONDING #( BASE ( itab2 ) itab1 ).&amp;lt;br/&amp;gt;&lt;br /&gt;
MOVE-CORRESPONDING itab1 TO itab2 KEEPING TARGET LINES.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=CORRESPONDING&amp;diff=2442</id>
		<title>CORRESPONDING</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=CORRESPONDING&amp;diff=2442"/>
		<updated>2026-03-29T11:22:50Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Schlüsselbegriffe]]&lt;br /&gt;
&lt;br /&gt;
=== MAPPING ===&lt;br /&gt;
 lt_send_documents = CORRESPONDING #( BASE ( lt_send_documents ) it_documents MAPPING bukrs = rbukrs ).&lt;br /&gt;
&lt;br /&gt;
=== EXCEPT ===&lt;br /&gt;
 lt_data2 = CORRESPONDING #( BASE ( lt_data2 ) lt_data MAPPING zcol1 = ycol1&lt;br /&gt;
                                                        EXCEPT ycol1 ).&lt;br /&gt;
&lt;br /&gt;
=== CORRESPONDING anwenden wie MOVE-CORRESPONDING ===&lt;br /&gt;
&lt;br /&gt;
struct2 = CORRESPONDING #( BASE ( struct2 ) struct1 ).&lt;br /&gt;
MOVE-CORRESPONDING struct1 TO struct2.&lt;br /&gt;
&lt;br /&gt;
itab2 = CORRESPONDING #( BASE ( itab2 ) itab1 ).&lt;br /&gt;
MOVE-CORRESPONDING itab1 TO itab2 KEEPING TARGET LINES.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2441</id>
		<title>Simulation der Konditionen anhand vom Einkaufsinfosatz und letzte Bestellung mit Rückgabe der Konditionen im Format des Kalkulationsschemas</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2441"/>
		<updated>2026-03-27T16:29:58Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Clean-Core-Level_C]]&lt;br /&gt;
Der Funktionsbaustein [[ME_PO_PRICE_SIMULATION]] kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück.&lt;br /&gt;
&lt;br /&gt;
In der Transaktion ME1M ist eine Preissimulation möglich. &lt;br /&gt;
Dort werden die folgenden internen FuBas verwendet:&lt;br /&gt;
* [[ME_PRICING_REFRESH]]&lt;br /&gt;
* [[ME_PRICING_INFORECORD]]&lt;br /&gt;
* [[ME_PRICING_DIALOG]]&lt;br /&gt;
* [[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
&lt;br /&gt;
Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, wird die letzte Bestellposition herangezogen, insofern sie nicht als gelöscht markiert ist.&lt;br /&gt;
&lt;br /&gt;
Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp; Report YMM_TEST_PROGRAM&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
REPORT ymm_test_program.&lt;br /&gt;
&lt;br /&gt;
DATA:    BEGIN OF tmepr OCCURS 30.&lt;br /&gt;
           INCLUDE STRUCTURE meprtab.&lt;br /&gt;
DATA:    END OF tmepr.&lt;br /&gt;
DATA komp TYPE komp.&lt;br /&gt;
DATA komk TYPE komk.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
INTO @DATA(eina).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000139156&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm1).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_DIALOG&#039;&lt;br /&gt;
 EXPORTING&lt;br /&gt;
  dunkel       = &#039;X&#039;&lt;br /&gt;
  meins        = eina-meins&lt;br /&gt;
  menge        = eine-norbm&lt;br /&gt;
  termin       = sy-datum&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina&lt;br /&gt;
    infoe      = eine&lt;br /&gt;
    lieferant  = lfm1&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
FIELD-SYMBOLS: &amp;lt;fs&amp;gt; TYPE table.&lt;br /&gt;
DATA tab TYPE TABLE OF komv.&lt;br /&gt;
DATA: l_variable(40) VALUE &#039;(SAPLMEPR)GKOMV[]&#039;.&lt;br /&gt;
&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
&lt;br /&gt;
WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
INTO @DATA(eina2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000263203&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm12).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina2&lt;br /&gt;
    infoe      = eine2&lt;br /&gt;
    lieferant  = lfm12&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
IF komp-netwr = 0.&lt;br /&gt;
  &amp;quot;IF eine-ebeln NE space AND eine-bstyp NE bstyp-kont AND&lt;br /&gt;
  &amp;quot;vorgang NE &#039;AP&#039;.&lt;br /&gt;
  SELECT SINGLE * FROM ekpo WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
                              AND   ebelp EQ &#039;00060&#039;&lt;br /&gt;
                              AND   loekz EQ @space&lt;br /&gt;
    INTO @DATA(ekpo).&lt;br /&gt;
  SELECT SINGLE * FROM ekko WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
    INTO @DATA(ekko).&lt;br /&gt;
  &amp;quot;ENDIF.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DIALOG&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      i_ekpo   = ekpo&lt;br /&gt;
      dunkel   = &#039;X&#039;&lt;br /&gt;
      skonto   = space &amp;quot;i_skonto&lt;br /&gt;
      bezugs   = space &amp;quot;i_bezugs&lt;br /&gt;
      effektiv = space. &amp;quot;i_effekt&lt;br /&gt;
*              menge    = eine-norbm&lt;br /&gt;
*              meins    = eina-meins&lt;br /&gt;
*              termin   = sy-datlo.&lt;br /&gt;
  &amp;quot;IMPORTING&lt;br /&gt;
  &amp;quot; exitflag = exitflag.&lt;br /&gt;
  DATA ls_isi_me_pricing_delivery TYPE isi_me_pricing_delivery_plan.&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DELIVERY_PLAN&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      simulation     = &#039;X&#039;&lt;br /&gt;
      dialog         = space&lt;br /&gt;
      &amp;quot;material      = mt06e war im Durchlauf aktiv. Besser versorgen&lt;br /&gt;
      belegkopf      = ekko&lt;br /&gt;
      belegposition  = ekpo&lt;br /&gt;
      infonummer     = eine-infnr&lt;br /&gt;
      infotyp        = eine-esokz&lt;br /&gt;
      infowerk       = eine-werks&lt;br /&gt;
      is_enhancement = ls_isi_me_pricing_delivery  &amp;quot;IS2ERP&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      preisp         = komp&lt;br /&gt;
      preisk         = komk.&lt;br /&gt;
&lt;br /&gt;
  CLEAR tab.&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
  ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
  MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
  DELETE tab WHERE knumv IS INITIAL.&lt;br /&gt;
&lt;br /&gt;
  WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=READ_TEXT&amp;diff=2440</id>
		<title>READ TEXT</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=READ_TEXT&amp;diff=2440"/>
		<updated>2026-03-24T15:43:46Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Clean-Core-Level_B]]&lt;br /&gt;
Mit diesem FuBa können die Texte aus Stammsätze und Belege ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
Wie die Parameter für verschiedene Texte zusammengesetzt werden müssen, kann man hier auf einen Blick sehen:&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; [[Texte_in_Stammsätze_und_Belege#Header_verschiedener_Texte|Texte in Stammsätze und Belege]]&lt;br /&gt;
&lt;br /&gt;
Der Text wird in eine simple internen Tabelle mit Typ &amp;quot;TLINE&amp;quot; geschrieben.&lt;br /&gt;
Oft ist es das Ziel die Inhalte in einem String zu speichern.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel könnte der Inhalt der interne Tabelle so aussehen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:READ TEXT Output Table.png]]&lt;br /&gt;
&lt;br /&gt;
Die Verkettung abhängig vom TDFORMAT:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  IF sy-subrc = 0 AND lines( lt_text_lines ) &amp;gt; 0.&lt;br /&gt;
    LOOP AT lt_text_lines ASSIGNING FIELD-SYMBOL(&amp;lt;text_line&amp;gt;).&lt;br /&gt;
      IF &amp;lt;text_line&amp;gt;-tdformat EQ &#039;*&#039; AND sy-tabix &amp;gt; 1.&lt;br /&gt;
        rv_result = |{ rv_result }{ cl_abap_char_utilities=&amp;gt;cr_lf }{ &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ELSEIF &amp;lt;text_line&amp;gt;-tdformat EQ &#039;=&#039; OR sy-tabix = 1.&lt;br /&gt;
        rv_result = |{ rv_result }{ &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ELSE.&lt;br /&gt;
        rv_result = |{ rv_result } { &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ENDIF.&lt;br /&gt;
    ENDLOOP.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Splittung Text bei 70 Zeichen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    LOOP AT lt_text_lines ASSIGNING FIELD-SYMBOL(&amp;lt;ls_line&amp;gt;).&lt;br /&gt;
       DATA(lv_text) = &amp;lt;ls_line&amp;gt;-tdline.&lt;br /&gt;
       DATA(lv_len)  = strlen( lv_text ).&lt;br /&gt;
       DATA(lv_off)  = 0.&lt;br /&gt;
&lt;br /&gt;
       IF lv_text IS INITIAL AND &amp;lt;ls_line&amp;gt;-tdformat = &#039;*&#039;.&lt;br /&gt;
        APPEND VALUE #( tdformat = &#039;*&#039;&lt;br /&gt;
                        tdline   = &#039;&#039; ) TO &amp;lt;ls_append&amp;gt;-lines.&lt;br /&gt;
        CONTINUE.&lt;br /&gt;
       ENDIF.&lt;br /&gt;
&lt;br /&gt;
       DATA(lv_first) = abap_true.&lt;br /&gt;
       WHILE lv_off &amp;lt; lv_len.&lt;br /&gt;
         DATA(lv_rest) = lv_len - lv_off.&lt;br /&gt;
         DATA(lv_take) = COND i( WHEN lv_rest &amp;gt; 70 THEN 70&lt;br /&gt;
                                 ELSE lv_rest ).&lt;br /&gt;
&lt;br /&gt;
         APPEND VALUE #(&lt;br /&gt;
         tdformat = COND #( WHEN lv_first = abap_true THEN &amp;lt;ls_line&amp;gt;-tdformat&lt;br /&gt;
                            ELSE &#039;=&#039; )&lt;br /&gt;
         tdline   = lv_text+lv_off(lv_take) ) TO &amp;lt;ls_append&amp;gt;-lines.&lt;br /&gt;
         lv_off += 70.&lt;br /&gt;
         lv_first = abap_false.&lt;br /&gt;
       ENDWHILE.&lt;br /&gt;
&lt;br /&gt;
     ENDLOOP.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Textkonvertierung von ITF in ASCII nach Lesen SAPScript Textbausteine ===&lt;br /&gt;
&lt;br /&gt;
Wenn ein Text von einem SO10 Text gelesen wird, können hier u.U. ungewünschte Textformatierungen vorhanden sein.&lt;br /&gt;
Zum Beispiel wird bei einem Komma bei der Ausgabe das Komma mit &amp;quot;&amp;lt;(&amp;gt;,&amp;lt;)&amp;gt;&amp;quot; angezeigt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:READ TEXT SAPScript textbaustein.png]]&lt;br /&gt;
&lt;br /&gt;
Mit FuBa &amp;quot;CONVERT_ITF_TO_ASCII&amp;quot; kann das SAPScript in ein ASCII Format konvertiert werden.&lt;br /&gt;
Alternativ arbeitet man am Beispiel des Kommas mit [[REPLACE|REPLACE]].&lt;br /&gt;
&lt;br /&gt;
== Texte über CDS-Views und Klasse ==&lt;br /&gt;
&lt;br /&gt;
[[CL_MM_PUR_TEXT_FACTORY]]&lt;br /&gt;
&lt;br /&gt;
Beispiel zur Nutzung in CL_MM_PUR_PR_PROFNL_DPC_EXT&lt;br /&gt;
&lt;br /&gt;
Mapping Verständnis&lt;br /&gt;
* ArchObjectNumber = text_objectid&lt;br /&gt;
* DocumentText = text_id&lt;br /&gt;
* TechnicalObjectType = text_object&lt;br /&gt;
* language = spras&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=READ_TEXT&amp;diff=2439</id>
		<title>READ TEXT</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=READ_TEXT&amp;diff=2439"/>
		<updated>2026-03-24T15:43:25Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Clean-Core-Level_B]]&lt;br /&gt;
Mit diesem FuBa können die Texte aus Stammsätze und Belege ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
Wie die Parameter für verschiedene Texte zusammengesetzt werden müssen, kann man hier auf einen Blick sehen:&amp;lt;br /&amp;gt;&lt;br /&gt;
=&amp;gt; [[Texte_in_Stammsätze_und_Belege#Header_verschiedener_Texte|Texte in Stammsätze und Belege]]&lt;br /&gt;
&lt;br /&gt;
Der Text wird in eine simple internen Tabelle mit Typ &amp;quot;TLINE&amp;quot; geschrieben.&lt;br /&gt;
Oft ist es das Ziel die Inhalte in einem String zu speichern.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel könnte der Inhalt der interne Tabelle so aussehen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:READ TEXT Output Table.png]]&lt;br /&gt;
&lt;br /&gt;
Die Verkettung abhängig vom TDFORMAT:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  IF sy-subrc = 0 AND lines( lt_text_lines ) &amp;gt; 0.&lt;br /&gt;
    LOOP AT lt_text_lines ASSIGNING FIELD-SYMBOL(&amp;lt;text_line&amp;gt;).&lt;br /&gt;
      IF &amp;lt;text_line&amp;gt;-tdformat EQ &#039;*&#039; AND sy-tabix &amp;gt; 1.&lt;br /&gt;
        rv_result = |{ rv_result }{ cl_abap_char_utilities=&amp;gt;cr_lf }{ &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ELSEIF &amp;lt;text_line&amp;gt;-tdformat EQ &#039;=&#039; OR sy-tabix = 1.&lt;br /&gt;
        rv_result = |{ rv_result }{ &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ELSE.&lt;br /&gt;
        rv_result = |{ rv_result } { &amp;lt;text_line&amp;gt;-tdline }|.&lt;br /&gt;
      ENDIF.&lt;br /&gt;
    ENDLOOP.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&lt;br /&gt;
&lt;br /&gt;
=== Splittung Text bei 70 Zeichen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    LOOP AT lt_text_lines ASSIGNING FIELD-SYMBOL(&amp;lt;ls_line&amp;gt;).&lt;br /&gt;
       DATA(lv_text) = &amp;lt;ls_line&amp;gt;-tdline.&lt;br /&gt;
       DATA(lv_len)  = strlen( lv_text ).&lt;br /&gt;
       DATA(lv_off)  = 0.&lt;br /&gt;
&lt;br /&gt;
       IF lv_text IS INITIAL AND &amp;lt;ls_line&amp;gt;-tdformat = &#039;*&#039;.&lt;br /&gt;
        APPEND VALUE #( tdformat = &#039;*&#039;&lt;br /&gt;
                        tdline   = &#039;&#039; ) TO &amp;lt;ls_append&amp;gt;-lines.&lt;br /&gt;
        CONTINUE.&lt;br /&gt;
       ENDIF.&lt;br /&gt;
&lt;br /&gt;
       DATA(lv_first) = abap_true.&lt;br /&gt;
       WHILE lv_off &amp;lt; lv_len.&lt;br /&gt;
         DATA(lv_rest) = lv_len - lv_off.&lt;br /&gt;
         DATA(lv_take) = COND i( WHEN lv_rest &amp;gt; 70 THEN 70&lt;br /&gt;
                                 ELSE lv_rest ).&lt;br /&gt;
&lt;br /&gt;
         APPEND VALUE #(&lt;br /&gt;
         tdformat = COND #( WHEN lv_first = abap_true THEN &amp;lt;ls_line&amp;gt;-tdformat&lt;br /&gt;
                            ELSE &#039;=&#039; )&lt;br /&gt;
         tdline   = lv_text+lv_off(lv_take) ) TO &amp;lt;ls_append&amp;gt;-lines.&lt;br /&gt;
         lv_off += 70.&lt;br /&gt;
         lv_first = abap_false.&lt;br /&gt;
       ENDWHILE.&lt;br /&gt;
&lt;br /&gt;
     ENDLOOP.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Textkonvertierung von ITF in ASCII nach Lesen SAPScript Textbausteine ===&lt;br /&gt;
&lt;br /&gt;
Wenn ein Text von einem SO10 Text gelesen wird, können hier u.U. ungewünschte Textformatierungen vorhanden sein.&lt;br /&gt;
Zum Beispiel wird bei einem Komma bei der Ausgabe das Komma mit &amp;quot;&amp;lt;(&amp;gt;,&amp;lt;)&amp;gt;&amp;quot; angezeigt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:READ TEXT SAPScript textbaustein.png]]&lt;br /&gt;
&lt;br /&gt;
Mit FuBa &amp;quot;CONVERT_ITF_TO_ASCII&amp;quot; kann das SAPScript in ein ASCII Format konvertiert werden.&lt;br /&gt;
Alternativ arbeitet man am Beispiel des Kommas mit [[REPLACE|REPLACE]].&lt;br /&gt;
&lt;br /&gt;
== Texte über CDS-Views und Klasse ==&lt;br /&gt;
&lt;br /&gt;
[[CL_MM_PUR_TEXT_FACTORY]]&lt;br /&gt;
&lt;br /&gt;
Beispiel zur Nutzung in CL_MM_PUR_PR_PROFNL_DPC_EXT&lt;br /&gt;
&lt;br /&gt;
Mapping Verständnis&lt;br /&gt;
* ArchObjectNumber = text_objectid&lt;br /&gt;
* DocumentText = text_id&lt;br /&gt;
* TechnicalObjectType = text_object&lt;br /&gt;
* language = spras&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2438</id>
		<title>Simulation der Konditionen anhand vom Einkaufsinfosatz und letzte Bestellung mit Rückgabe der Konditionen im Format des Kalkulationsschemas</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2438"/>
		<updated>2026-03-24T10:16:26Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Clean-Core-Level_C]]&lt;br /&gt;
Der Funktionsbaustein [[ME_PO_PRICE_SIMULATION]] kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück.&lt;br /&gt;
&lt;br /&gt;
In der Transaktion ME1M ist eine Preissimulation möglich. &lt;br /&gt;
Dort werden die folgenden internen FuBas verwendet:&lt;br /&gt;
* [[ME_PRICING_REFRESH]]&lt;br /&gt;
* [[ME_PRICING_INFORECORD]]&lt;br /&gt;
* [[ME_PRICING_DIALOG]]&lt;br /&gt;
* [[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
&lt;br /&gt;
Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, wird die letzte Bestellposition herangezogen, insofern sie nicht als gelöscht markiert ist.&lt;br /&gt;
&lt;br /&gt;
Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp; Report YMM_TEST_PROGRAM&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
REPORT ymm_test_program.&lt;br /&gt;
&lt;br /&gt;
DATA:    BEGIN OF tmepr OCCURS 30.&lt;br /&gt;
           INCLUDE STRUCTURE meprtab.&lt;br /&gt;
DATA:    END OF tmepr.&lt;br /&gt;
DATA komp TYPE komp.&lt;br /&gt;
DATA komk TYPE komk.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
INTO @DATA(eina).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000139156&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm1).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina&lt;br /&gt;
    infoe      = eine&lt;br /&gt;
    lieferant  = lfm1&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
FIELD-SYMBOLS: &amp;lt;fs&amp;gt; TYPE table.&lt;br /&gt;
DATA tab TYPE TABLE OF komv.&lt;br /&gt;
DATA: l_variable(40) VALUE &#039;(SAPLMEPR)GKOMV[]&#039;.&lt;br /&gt;
&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
&lt;br /&gt;
WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
INTO @DATA(eina2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000263203&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm12).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina2&lt;br /&gt;
    infoe      = eine2&lt;br /&gt;
    lieferant  = lfm12&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
IF komp-netwr = 0.&lt;br /&gt;
  &amp;quot;IF eine-ebeln NE space AND eine-bstyp NE bstyp-kont AND&lt;br /&gt;
  &amp;quot;vorgang NE &#039;AP&#039;.&lt;br /&gt;
  SELECT SINGLE * FROM ekpo WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
                              AND   ebelp EQ &#039;00060&#039;&lt;br /&gt;
                              AND   loekz EQ @space&lt;br /&gt;
    INTO @DATA(ekpo).&lt;br /&gt;
  SELECT SINGLE * FROM ekko WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
    INTO @DATA(ekko).&lt;br /&gt;
  &amp;quot;ENDIF.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DIALOG&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      i_ekpo   = ekpo&lt;br /&gt;
      dunkel   = &#039;X&#039;&lt;br /&gt;
      skonto   = space &amp;quot;i_skonto&lt;br /&gt;
      bezugs   = space &amp;quot;i_bezugs&lt;br /&gt;
      effektiv = space. &amp;quot;i_effekt&lt;br /&gt;
*              menge    = eine-norbm&lt;br /&gt;
*              meins    = eina-meins&lt;br /&gt;
*              termin   = sy-datlo.&lt;br /&gt;
  &amp;quot;IMPORTING&lt;br /&gt;
  &amp;quot; exitflag = exitflag.&lt;br /&gt;
  DATA ls_isi_me_pricing_delivery TYPE isi_me_pricing_delivery_plan.&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DELIVERY_PLAN&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      simulation     = &#039;X&#039;&lt;br /&gt;
      dialog         = space&lt;br /&gt;
      &amp;quot;material      = mt06e war im Durchlauf aktiv. Besser versorgen&lt;br /&gt;
      belegkopf      = ekko&lt;br /&gt;
      belegposition  = ekpo&lt;br /&gt;
      infonummer     = eine-infnr&lt;br /&gt;
      infotyp        = eine-esokz&lt;br /&gt;
      infowerk       = eine-werks&lt;br /&gt;
      is_enhancement = ls_isi_me_pricing_delivery  &amp;quot;IS2ERP&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      preisp         = komp&lt;br /&gt;
      preisk         = komk.&lt;br /&gt;
&lt;br /&gt;
  CLEAR tab.&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
  ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
  MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
  DELETE tab WHERE knumv IS INITIAL.&lt;br /&gt;
&lt;br /&gt;
  WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2437</id>
		<title>Simulation der Konditionen anhand vom Einkaufsinfosatz und letzte Bestellung mit Rückgabe der Konditionen im Format des Kalkulationsschemas</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Simulation_der_Konditionen_anhand_vom_Einkaufsinfosatz_und_letzte_Bestellung_mit_R%C3%BCckgabe_der_Konditionen_im_Format_des_Kalkulationsschemas&amp;diff=2437"/>
		<updated>2026-03-24T10:13:29Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde neu angelegt: „Kategorie:Codeschnipsel Kategorie:Clean-Core-Level_C Der Funktionsbaustein ME_PO_PRICE_SIMULATION kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück.  In der Transaktion ME1M ist eine Preissimulation möglich.  Dort werden die folgenden internen FuBas verwendet: * ME_PRICING_REF…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Codeschnipsel]]&lt;br /&gt;
[[Kategorie:Clean-Core-Level_C]]&lt;br /&gt;
Der Funktionsbaustein [[ME_PO_PRICE_SIMULATION]] kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück.&lt;br /&gt;
&lt;br /&gt;
In der Transaktion ME1M ist eine Preissimulation möglich. &lt;br /&gt;
Dort werden die folgenden internen FuBas verwendet:&lt;br /&gt;
* [[ME_PRICING_REFRESH]]&lt;br /&gt;
* [[ME_PRICING_INFORECORD]]&lt;br /&gt;
* [[ME_PRICING_DIALOG]]&lt;br /&gt;
* [[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
&lt;br /&gt;
Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, dann wird die letzte ungelöschte Bestellposition herangezogen.&lt;br /&gt;
&lt;br /&gt;
Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp; Report YMM_TEST_PROGRAM&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp;amp;&lt;br /&gt;
*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;
REPORT ymm_test_program.&lt;br /&gt;
&lt;br /&gt;
DATA:    BEGIN OF tmepr OCCURS 30.&lt;br /&gt;
           INCLUDE STRUCTURE meprtab.&lt;br /&gt;
DATA:    END OF tmepr.&lt;br /&gt;
DATA komp TYPE komp.&lt;br /&gt;
DATA komk TYPE komk.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
INTO @DATA(eina).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300000873&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000139156&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm1).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina&lt;br /&gt;
    infoe      = eine&lt;br /&gt;
    lieferant  = lfm1&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
FIELD-SYMBOLS: &amp;lt;fs&amp;gt; TYPE table.&lt;br /&gt;
DATA tab TYPE TABLE OF komv.&lt;br /&gt;
DATA: l_variable(40) VALUE &#039;(SAPLMEPR)GKOMV[]&#039;.&lt;br /&gt;
&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
&lt;br /&gt;
WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eina&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
INTO @DATA(eina2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM eine&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE infnr = &#039;5300010050&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
  AND esokz = &#039;0&#039;&lt;br /&gt;
INTO @DATA(eine2).&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE FROM lfm1&lt;br /&gt;
FIELDS *&lt;br /&gt;
WHERE lifnr = &#039;0000263203&#039;&lt;br /&gt;
  AND ekorg = &#039;1000&#039;&lt;br /&gt;
INTO @DATA(lfm12).&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_REFRESH&#039;.&lt;br /&gt;
&lt;br /&gt;
CALL FUNCTION &#039;ME_PRICING_INFORECORD&#039;&lt;br /&gt;
  EXPORTING&lt;br /&gt;
    infoa      = eina2&lt;br /&gt;
    infoe      = eine2&lt;br /&gt;
    lieferant  = lfm12&lt;br /&gt;
    simulation = &#039;X&#039;&lt;br /&gt;
  IMPORTING&lt;br /&gt;
    preisk     = komk&lt;br /&gt;
    preisp     = komp&lt;br /&gt;
  TABLES&lt;br /&gt;
    elemente   = tmepr.&lt;br /&gt;
&lt;br /&gt;
IF komp-netwr = 0.&lt;br /&gt;
  &amp;quot;IF eine-ebeln NE space AND eine-bstyp NE bstyp-kont AND&lt;br /&gt;
  &amp;quot;vorgang NE &#039;AP&#039;.&lt;br /&gt;
  SELECT SINGLE * FROM ekpo WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
                              AND   ebelp EQ &#039;00060&#039;&lt;br /&gt;
                              AND   loekz EQ @space&lt;br /&gt;
    INTO @DATA(ekpo).&lt;br /&gt;
  SELECT SINGLE * FROM ekko WHERE ebeln EQ &#039;4800000564&#039;&lt;br /&gt;
    INTO @DATA(ekko).&lt;br /&gt;
  &amp;quot;ENDIF.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DIALOG&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      i_ekpo   = ekpo&lt;br /&gt;
      dunkel   = &#039;X&#039;&lt;br /&gt;
      skonto   = space &amp;quot;i_skonto&lt;br /&gt;
      bezugs   = space &amp;quot;i_bezugs&lt;br /&gt;
      effektiv = space. &amp;quot;i_effekt&lt;br /&gt;
*              menge    = eine-norbm&lt;br /&gt;
*              meins    = eina-meins&lt;br /&gt;
*              termin   = sy-datlo.&lt;br /&gt;
  &amp;quot;IMPORTING&lt;br /&gt;
  &amp;quot; exitflag = exitflag.&lt;br /&gt;
  DATA ls_isi_me_pricing_delivery TYPE isi_me_pricing_delivery_plan.&lt;br /&gt;
  CALL FUNCTION &#039;ME_PRICING_DELIVERY_PLAN&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      simulation     = &#039;X&#039;&lt;br /&gt;
      dialog         = space&lt;br /&gt;
      &amp;quot;material      = mt06e war im Durchlauf aktiv. Besser versorgen&lt;br /&gt;
      belegkopf      = ekko&lt;br /&gt;
      belegposition  = ekpo&lt;br /&gt;
      infonummer     = eine-infnr&lt;br /&gt;
      infotyp        = eine-esokz&lt;br /&gt;
      infowerk       = eine-werks&lt;br /&gt;
      is_enhancement = ls_isi_me_pricing_delivery  &amp;quot;IS2ERP&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      preisp         = komp&lt;br /&gt;
      preisk         = komk.&lt;br /&gt;
&lt;br /&gt;
  CLEAR tab.&lt;br /&gt;
* Retrieve values from calling program&lt;br /&gt;
  ASSIGN (l_variable) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;
  MOVE &amp;lt;fs&amp;gt; TO tab.&lt;br /&gt;
  DELETE tab WHERE knumv IS INITIAL.&lt;br /&gt;
&lt;br /&gt;
  WRITE &#039;.&#039;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2436</id>
		<title>SAP FuBas und BAPIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2436"/>
		<updated>2026-03-24T10:05:42Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Preisfindung/Preissimulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:SAP_Standard]]&lt;br /&gt;
== Allgemein / Übergreifend ==&lt;br /&gt;
&lt;br /&gt;
=== Material ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_MATERIAL_GET_ALL]]&lt;br /&gt;
|Materialdaten lesen&lt;br /&gt;
|-&lt;br /&gt;
|[[ASSORTMENT_POS_HANDLING]]&lt;br /&gt;
|Fügt Materialien zum Sortimentsbaustein hinzu (VerbuchungsFuBa).&lt;br /&gt;
|-&lt;br /&gt;
|[[MD_STOCK_REQUIREMENTS_LIST_API]]&lt;br /&gt;
|Lesen der Bedarfs-/Bestandsliste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Geschäftspartner ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CREATE_FROM_DATA]]&lt;br /&gt;
|Geschäftspartner anlegen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ROLE_ADD_2]]&lt;br /&gt;
|GP-Rolle hinzufügen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_GETDETAIL]]&lt;br /&gt;
|GP-Stammdaten bekommen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CENTRAL_CHANGE]]&lt;br /&gt;
|Vorname, Name etc. von Personen, Organisation und Gruppen sowie adressunabhängige Stammdaten wie Telefon,E-Mail etc. ändern&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_CHANGE]]&lt;br /&gt;
|Adressdaten sowie adressabhängige Stammdaten wie Telefon, E-Mail etc. ändern&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_SAP_TO_ISO]]&lt;br /&gt;
|Ändert internes SAP-Einheit zu ISO-Code (Mengen-,Gewicht- &amp;amp;Volumeneinheit) &lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_ISO_TO_SAP]]&lt;br /&gt;
|Ändert ISO-Code zur internen SAP-Einheit (Mengen-,Gewicht- &amp;amp;Volumeneinheit)&lt;br /&gt;
|-&lt;br /&gt;
|[[SAP_CONVERT_TO_TEX_FORMAT]]&lt;br /&gt;
|Trennt Tabelleninhalte mit einem Trennzeichen z.B. Komma&lt;br /&gt;
|-&lt;br /&gt;
|[[ALSM_EXCEL_TO_INTERNAL_TABLE]]&lt;br /&gt;
|Kann .xlsx Dateien in interne Tabellen konvertieren. Klarer Nachteil ist allerdings, dass leere Felder in der .xlsx für die Konvertierung ignoriert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-Mail/Dokumentenversand ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[SO_NEW_DOCUMENT_SEND_API1|SO_NEW_DOCUMENT_SEND_API1]]&lt;br /&gt;
|Sendet eine E-Mail mit .txt Anhang an einen E-Mail-Empfänger&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
s. [[E-Mail_senden|bessere klassenbasierte Variante]]&lt;br /&gt;
&lt;br /&gt;
=== Texte ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[READ_TEXT]]&lt;br /&gt;
|Lesen Texte wie Langtexte in Stammsätze oder Belegen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Basis / Schnittstellen / Technisches ==&lt;br /&gt;
&lt;br /&gt;
=== Dateiverarbeitung / Verzeichnis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[EPS_GET_DIRECTORY_LISTING|EPS_GET_DIRECTORY_LISTING]]&lt;br /&gt;
|Bekommt alle Filenamen eines Verzeichnisses&lt;br /&gt;
|-&lt;br /&gt;
|[[PFL_CHECK_DIRECTORY|PFL_CHECK_DIRECTORY]]&lt;br /&gt;
|Check, ob Verzeichnis existiert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Berechtigungen und Sperren ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE|ENQUEUE]]&lt;br /&gt;
|Sperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[DEQUEUE|DEQUEUE]]&lt;br /&gt;
|Entsperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE_READ|ENQUEUE_READ]]&lt;br /&gt;
|Lesen ob ein Objekt gesperrt ist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nummernkreis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[Nummernkreisobjekt|NUMBER_GET_NEXT]]&lt;br /&gt;
|Neue Nummer vom Z Nummernkreis bekommen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IDoc ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ALE_RESERVATION_CREATE]]&lt;br /&gt;
|Erstellt [[MRESCR|MRESCR]] IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_OUTPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Outbound IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Inbound IDoc  &lt;br /&gt;
|-&lt;br /&gt;
|[[MASTER_IDOC_DISTRIBUTE|MASTER_IDOC_DISTRIBUTE]]&lt;br /&gt;
|Erstellt ein Outbound IDoc (Beispiel MBGMCR)&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INBOUND_WRITE_TO_DB|IDOC_INBOUND_WRITE_TO_DB]]&lt;br /&gt;
|Erstellt ein Inbound IDoc &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GUI  ==&lt;br /&gt;
&lt;br /&gt;
=== Dynpro ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[RS_SET_SELSCREEN_STATUS|RS_SET_SELSCREEN_STATUS]]&lt;br /&gt;
|Ermöglicht bei einem automatisch generierten Dynpro die Statusleiste auszutauschen&lt;br /&gt;
|-&lt;br /&gt;
|[[F4IF_INT_TABLE_VALUE_REQUEST]]&lt;br /&gt;
|Eigene F4-Suchhilfe auf Basis einer internen Tabelle anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Grid Darstellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[REUSE_ALV_GRID_DISPLAY|REUSE_ALV_GRID_DISPLAY]]&lt;br /&gt;
|Stellt recht ohne viel Aufwand Daten in Grid dar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MM ==&lt;br /&gt;
&lt;br /&gt;
=== Bestellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_GOODSMVT_CREATE| BAPI_GOODSMVT_CREATE]]&lt;br /&gt;
|(MIGO) Warenbewegung buchen&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_CONFIRM]]&lt;br /&gt;
|Fügt Bestätigungspositionen zu, wenn Bestätigungssteuerungsschlüssel vorbelegt ist &lt;br /&gt;
|-&lt;br /&gt;
|[[ME_READ_CHANGES_EINKBELEG]]&lt;br /&gt;
|Lesen von Änderungsbelegen zu einem Einkaufsbeleg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Preisfindung/Preissimulation ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_PRICE_SIMULATION|ME_PO_PRICE_SIMULATION]]&lt;br /&gt;
|Simulation einer Bestellung bzw. Preisfindung ohne Kontierungs- und Positonstyp&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PRICING_REFRESH]]&lt;br /&gt;
[[ME_PRICING_INFORECORD]]&lt;br /&gt;
&lt;br /&gt;
[[ME_PRICING_DIALOG]]&lt;br /&gt;
[[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
|Wenn mit ME_PRICING_INFORECORD keine Preise gefunden werden, kann mit Kombi ME_PRICING_DIALOG und ME_PRICING_DELIVERY_PLAN die Konditionen, dargestellt wie im Kalkschema inkl. Zwischensummen, der letzten Bestellung gezogen werden&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; | 🔧 how to [[Simulation der Konditionen anhand vom Einkaufsinfosatz und letzte Bestellung mit Rückgabe der Konditionen im Format des Kalkulationsschemas]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FI ==&lt;br /&gt;
&lt;br /&gt;
=== Buchungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_ACC_DOCUMENT_POST| BAPI_ACC_DOCUMENT_POST]]&lt;br /&gt;
|(FB01) Buchung eines Buchungsbelegs (AP, AR, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CO ==&lt;br /&gt;
&lt;br /&gt;
=== Obligoverwaltung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[K_OPEN_ITEM_POST|K_OPEN_ITEM_POST]]&lt;br /&gt;
|Obligoeinzelposten verbuchen (Hinzufügen, Update, Löschung)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (e)WM ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_CREATE_GOODS_MOVEMENT|HU_CREATE_GOODS_MOVEMENT]]&lt;br /&gt;
|Warenbewegung in Kombination mit einer HU&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_PACKING_REFRESH]]&lt;br /&gt;
|Cleart globale Variablen.I.d.R. als erstes auszuführen, wenn weitere FuBas kommen.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CREATE_HUS]]&lt;br /&gt;
|Erstellt eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CHECK_SAVE_SHOW_HUS]]&lt;br /&gt;
|Speichert z.B. eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; auf der DB.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHURM_HU_POST_WE_PROD_ORDER|VHURM_HU_POST_WE_PROD_ORDER]]&lt;br /&gt;
|Führt ein Wareneingang mit einer HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; zum Fertigungsauftrag aus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alles sonstige ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[CALL_BROWSER]]&lt;br /&gt;
|Öffnet im lokalen Standardbrowser einen neuen Tab oder neues Fenster&lt;br /&gt;
|-&lt;br /&gt;
|[[GUI_IS_ITS]]&lt;br /&gt;
|Prüfen, ob Umgebung WebGUI ist.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2435</id>
		<title>SAP FuBas und BAPIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2435"/>
		<updated>2026-03-24T09:59:50Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Preisfindung/Preissimulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:SAP_Standard]]&lt;br /&gt;
== Allgemein / Übergreifend ==&lt;br /&gt;
&lt;br /&gt;
=== Material ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_MATERIAL_GET_ALL]]&lt;br /&gt;
|Materialdaten lesen&lt;br /&gt;
|-&lt;br /&gt;
|[[ASSORTMENT_POS_HANDLING]]&lt;br /&gt;
|Fügt Materialien zum Sortimentsbaustein hinzu (VerbuchungsFuBa).&lt;br /&gt;
|-&lt;br /&gt;
|[[MD_STOCK_REQUIREMENTS_LIST_API]]&lt;br /&gt;
|Lesen der Bedarfs-/Bestandsliste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Geschäftspartner ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CREATE_FROM_DATA]]&lt;br /&gt;
|Geschäftspartner anlegen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ROLE_ADD_2]]&lt;br /&gt;
|GP-Rolle hinzufügen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_GETDETAIL]]&lt;br /&gt;
|GP-Stammdaten bekommen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CENTRAL_CHANGE]]&lt;br /&gt;
|Vorname, Name etc. von Personen, Organisation und Gruppen sowie adressunabhängige Stammdaten wie Telefon,E-Mail etc. ändern&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_CHANGE]]&lt;br /&gt;
|Adressdaten sowie adressabhängige Stammdaten wie Telefon, E-Mail etc. ändern&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_SAP_TO_ISO]]&lt;br /&gt;
|Ändert internes SAP-Einheit zu ISO-Code (Mengen-,Gewicht- &amp;amp;Volumeneinheit) &lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_ISO_TO_SAP]]&lt;br /&gt;
|Ändert ISO-Code zur internen SAP-Einheit (Mengen-,Gewicht- &amp;amp;Volumeneinheit)&lt;br /&gt;
|-&lt;br /&gt;
|[[SAP_CONVERT_TO_TEX_FORMAT]]&lt;br /&gt;
|Trennt Tabelleninhalte mit einem Trennzeichen z.B. Komma&lt;br /&gt;
|-&lt;br /&gt;
|[[ALSM_EXCEL_TO_INTERNAL_TABLE]]&lt;br /&gt;
|Kann .xlsx Dateien in interne Tabellen konvertieren. Klarer Nachteil ist allerdings, dass leere Felder in der .xlsx für die Konvertierung ignoriert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-Mail/Dokumentenversand ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[SO_NEW_DOCUMENT_SEND_API1|SO_NEW_DOCUMENT_SEND_API1]]&lt;br /&gt;
|Sendet eine E-Mail mit .txt Anhang an einen E-Mail-Empfänger&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
s. [[E-Mail_senden|bessere klassenbasierte Variante]]&lt;br /&gt;
&lt;br /&gt;
=== Texte ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[READ_TEXT]]&lt;br /&gt;
|Lesen Texte wie Langtexte in Stammsätze oder Belegen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Basis / Schnittstellen / Technisches ==&lt;br /&gt;
&lt;br /&gt;
=== Dateiverarbeitung / Verzeichnis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[EPS_GET_DIRECTORY_LISTING|EPS_GET_DIRECTORY_LISTING]]&lt;br /&gt;
|Bekommt alle Filenamen eines Verzeichnisses&lt;br /&gt;
|-&lt;br /&gt;
|[[PFL_CHECK_DIRECTORY|PFL_CHECK_DIRECTORY]]&lt;br /&gt;
|Check, ob Verzeichnis existiert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Berechtigungen und Sperren ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE|ENQUEUE]]&lt;br /&gt;
|Sperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[DEQUEUE|DEQUEUE]]&lt;br /&gt;
|Entsperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE_READ|ENQUEUE_READ]]&lt;br /&gt;
|Lesen ob ein Objekt gesperrt ist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nummernkreis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[Nummernkreisobjekt|NUMBER_GET_NEXT]]&lt;br /&gt;
|Neue Nummer vom Z Nummernkreis bekommen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IDoc ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ALE_RESERVATION_CREATE]]&lt;br /&gt;
|Erstellt [[MRESCR|MRESCR]] IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_OUTPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Outbound IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Inbound IDoc  &lt;br /&gt;
|-&lt;br /&gt;
|[[MASTER_IDOC_DISTRIBUTE|MASTER_IDOC_DISTRIBUTE]]&lt;br /&gt;
|Erstellt ein Outbound IDoc (Beispiel MBGMCR)&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INBOUND_WRITE_TO_DB|IDOC_INBOUND_WRITE_TO_DB]]&lt;br /&gt;
|Erstellt ein Inbound IDoc &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GUI  ==&lt;br /&gt;
&lt;br /&gt;
=== Dynpro ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[RS_SET_SELSCREEN_STATUS|RS_SET_SELSCREEN_STATUS]]&lt;br /&gt;
|Ermöglicht bei einem automatisch generierten Dynpro die Statusleiste auszutauschen&lt;br /&gt;
|-&lt;br /&gt;
|[[F4IF_INT_TABLE_VALUE_REQUEST]]&lt;br /&gt;
|Eigene F4-Suchhilfe auf Basis einer internen Tabelle anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Grid Darstellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[REUSE_ALV_GRID_DISPLAY|REUSE_ALV_GRID_DISPLAY]]&lt;br /&gt;
|Stellt recht ohne viel Aufwand Daten in Grid dar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MM ==&lt;br /&gt;
&lt;br /&gt;
=== Bestellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_GOODSMVT_CREATE| BAPI_GOODSMVT_CREATE]]&lt;br /&gt;
|(MIGO) Warenbewegung buchen&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_CONFIRM]]&lt;br /&gt;
|Fügt Bestätigungspositionen zu, wenn Bestätigungssteuerungsschlüssel vorbelegt ist &lt;br /&gt;
|-&lt;br /&gt;
|[[ME_READ_CHANGES_EINKBELEG]]&lt;br /&gt;
|Lesen von Änderungsbelegen zu einem Einkaufsbeleg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Preisfindung/Preissimulation ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_PRICE_SIMULATION|ME_PO_PRICE_SIMULATION]]&lt;br /&gt;
|Simulation einer Bestellung bzw. Preisfindung ohne Kontierungs- und Positonstyp&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PRICING_REFRESH]]&lt;br /&gt;
[[ME_PRICING_INFORECORD]]&lt;br /&gt;
&lt;br /&gt;
[[ME_PRICING_DIALOG]]&lt;br /&gt;
[[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
|Wenn mit ME_PRICING_INFORECORD keine Preise gefunden werden, kann mit Kombi ME_PRICING_DIALOG und ME_PRICING_DELIVERY_PLAN die Konditionen, dargestellt wie im Kalkschema inkl. Zwischensummen, der letzten Bestellung gezogen werden&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FI ==&lt;br /&gt;
&lt;br /&gt;
=== Buchungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_ACC_DOCUMENT_POST| BAPI_ACC_DOCUMENT_POST]]&lt;br /&gt;
|(FB01) Buchung eines Buchungsbelegs (AP, AR, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CO ==&lt;br /&gt;
&lt;br /&gt;
=== Obligoverwaltung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[K_OPEN_ITEM_POST|K_OPEN_ITEM_POST]]&lt;br /&gt;
|Obligoeinzelposten verbuchen (Hinzufügen, Update, Löschung)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (e)WM ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_CREATE_GOODS_MOVEMENT|HU_CREATE_GOODS_MOVEMENT]]&lt;br /&gt;
|Warenbewegung in Kombination mit einer HU&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_PACKING_REFRESH]]&lt;br /&gt;
|Cleart globale Variablen.I.d.R. als erstes auszuführen, wenn weitere FuBas kommen.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CREATE_HUS]]&lt;br /&gt;
|Erstellt eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CHECK_SAVE_SHOW_HUS]]&lt;br /&gt;
|Speichert z.B. eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; auf der DB.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHURM_HU_POST_WE_PROD_ORDER|VHURM_HU_POST_WE_PROD_ORDER]]&lt;br /&gt;
|Führt ein Wareneingang mit einer HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; zum Fertigungsauftrag aus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alles sonstige ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[CALL_BROWSER]]&lt;br /&gt;
|Öffnet im lokalen Standardbrowser einen neuen Tab oder neues Fenster&lt;br /&gt;
|-&lt;br /&gt;
|[[GUI_IS_ITS]]&lt;br /&gt;
|Prüfen, ob Umgebung WebGUI ist.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2434</id>
		<title>SAP FuBas und BAPIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2434"/>
		<updated>2026-03-24T09:59:37Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: /* Preisfindung/Preissimulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:SAP_Standard]]&lt;br /&gt;
== Allgemein / Übergreifend ==&lt;br /&gt;
&lt;br /&gt;
=== Material ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_MATERIAL_GET_ALL]]&lt;br /&gt;
|Materialdaten lesen&lt;br /&gt;
|-&lt;br /&gt;
|[[ASSORTMENT_POS_HANDLING]]&lt;br /&gt;
|Fügt Materialien zum Sortimentsbaustein hinzu (VerbuchungsFuBa).&lt;br /&gt;
|-&lt;br /&gt;
|[[MD_STOCK_REQUIREMENTS_LIST_API]]&lt;br /&gt;
|Lesen der Bedarfs-/Bestandsliste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Geschäftspartner ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CREATE_FROM_DATA]]&lt;br /&gt;
|Geschäftspartner anlegen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ROLE_ADD_2]]&lt;br /&gt;
|GP-Rolle hinzufügen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_GETDETAIL]]&lt;br /&gt;
|GP-Stammdaten bekommen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CENTRAL_CHANGE]]&lt;br /&gt;
|Vorname, Name etc. von Personen, Organisation und Gruppen sowie adressunabhängige Stammdaten wie Telefon,E-Mail etc. ändern&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_CHANGE]]&lt;br /&gt;
|Adressdaten sowie adressabhängige Stammdaten wie Telefon, E-Mail etc. ändern&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_SAP_TO_ISO]]&lt;br /&gt;
|Ändert internes SAP-Einheit zu ISO-Code (Mengen-,Gewicht- &amp;amp;Volumeneinheit) &lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_ISO_TO_SAP]]&lt;br /&gt;
|Ändert ISO-Code zur internen SAP-Einheit (Mengen-,Gewicht- &amp;amp;Volumeneinheit)&lt;br /&gt;
|-&lt;br /&gt;
|[[SAP_CONVERT_TO_TEX_FORMAT]]&lt;br /&gt;
|Trennt Tabelleninhalte mit einem Trennzeichen z.B. Komma&lt;br /&gt;
|-&lt;br /&gt;
|[[ALSM_EXCEL_TO_INTERNAL_TABLE]]&lt;br /&gt;
|Kann .xlsx Dateien in interne Tabellen konvertieren. Klarer Nachteil ist allerdings, dass leere Felder in der .xlsx für die Konvertierung ignoriert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-Mail/Dokumentenversand ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[SO_NEW_DOCUMENT_SEND_API1|SO_NEW_DOCUMENT_SEND_API1]]&lt;br /&gt;
|Sendet eine E-Mail mit .txt Anhang an einen E-Mail-Empfänger&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
s. [[E-Mail_senden|bessere klassenbasierte Variante]]&lt;br /&gt;
&lt;br /&gt;
=== Texte ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[READ_TEXT]]&lt;br /&gt;
|Lesen Texte wie Langtexte in Stammsätze oder Belegen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Basis / Schnittstellen / Technisches ==&lt;br /&gt;
&lt;br /&gt;
=== Dateiverarbeitung / Verzeichnis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[EPS_GET_DIRECTORY_LISTING|EPS_GET_DIRECTORY_LISTING]]&lt;br /&gt;
|Bekommt alle Filenamen eines Verzeichnisses&lt;br /&gt;
|-&lt;br /&gt;
|[[PFL_CHECK_DIRECTORY|PFL_CHECK_DIRECTORY]]&lt;br /&gt;
|Check, ob Verzeichnis existiert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Berechtigungen und Sperren ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE|ENQUEUE]]&lt;br /&gt;
|Sperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[DEQUEUE|DEQUEUE]]&lt;br /&gt;
|Entsperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE_READ|ENQUEUE_READ]]&lt;br /&gt;
|Lesen ob ein Objekt gesperrt ist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nummernkreis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[Nummernkreisobjekt|NUMBER_GET_NEXT]]&lt;br /&gt;
|Neue Nummer vom Z Nummernkreis bekommen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IDoc ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ALE_RESERVATION_CREATE]]&lt;br /&gt;
|Erstellt [[MRESCR|MRESCR]] IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_OUTPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Outbound IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Inbound IDoc  &lt;br /&gt;
|-&lt;br /&gt;
|[[MASTER_IDOC_DISTRIBUTE|MASTER_IDOC_DISTRIBUTE]]&lt;br /&gt;
|Erstellt ein Outbound IDoc (Beispiel MBGMCR)&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INBOUND_WRITE_TO_DB|IDOC_INBOUND_WRITE_TO_DB]]&lt;br /&gt;
|Erstellt ein Inbound IDoc &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GUI  ==&lt;br /&gt;
&lt;br /&gt;
=== Dynpro ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[RS_SET_SELSCREEN_STATUS|RS_SET_SELSCREEN_STATUS]]&lt;br /&gt;
|Ermöglicht bei einem automatisch generierten Dynpro die Statusleiste auszutauschen&lt;br /&gt;
|-&lt;br /&gt;
|[[F4IF_INT_TABLE_VALUE_REQUEST]]&lt;br /&gt;
|Eigene F4-Suchhilfe auf Basis einer internen Tabelle anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Grid Darstellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[REUSE_ALV_GRID_DISPLAY|REUSE_ALV_GRID_DISPLAY]]&lt;br /&gt;
|Stellt recht ohne viel Aufwand Daten in Grid dar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MM ==&lt;br /&gt;
&lt;br /&gt;
=== Bestellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_GOODSMVT_CREATE| BAPI_GOODSMVT_CREATE]]&lt;br /&gt;
|(MIGO) Warenbewegung buchen&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_CONFIRM]]&lt;br /&gt;
|Fügt Bestätigungspositionen zu, wenn Bestätigungssteuerungsschlüssel vorbelegt ist &lt;br /&gt;
|-&lt;br /&gt;
|[[ME_READ_CHANGES_EINKBELEG]]&lt;br /&gt;
|Lesen von Änderungsbelegen zu einem Einkaufsbeleg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Preisfindung/Preissimulation ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_PRICE_SIMULATION|ME_PO_PRICE_SIMULATION]]&lt;br /&gt;
|Simulation einer Bestellung bzw. Preisfindung ohne Kontierungs- und Positonstyp&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PRICING_REFRESH]]&lt;br /&gt;
[[ME_PRICING_INFORECORD]]&lt;br /&gt;
|&lt;br /&gt;
[[ME_PRICING_DIALOG]]&lt;br /&gt;
[[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
|Wenn mit ME_PRICING_INFORECORD keine Preise gefunden werden, kann mit Kombi ME_PRICING_DIALOG und ME_PRICING_DELIVERY_PLAN die Konditionen, dargestellt wie im Kalkschema inkl. Zwischensummen, der letzten Bestellung gezogen werden&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FI ==&lt;br /&gt;
&lt;br /&gt;
=== Buchungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_ACC_DOCUMENT_POST| BAPI_ACC_DOCUMENT_POST]]&lt;br /&gt;
|(FB01) Buchung eines Buchungsbelegs (AP, AR, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CO ==&lt;br /&gt;
&lt;br /&gt;
=== Obligoverwaltung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[K_OPEN_ITEM_POST|K_OPEN_ITEM_POST]]&lt;br /&gt;
|Obligoeinzelposten verbuchen (Hinzufügen, Update, Löschung)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (e)WM ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_CREATE_GOODS_MOVEMENT|HU_CREATE_GOODS_MOVEMENT]]&lt;br /&gt;
|Warenbewegung in Kombination mit einer HU&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_PACKING_REFRESH]]&lt;br /&gt;
|Cleart globale Variablen.I.d.R. als erstes auszuführen, wenn weitere FuBas kommen.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CREATE_HUS]]&lt;br /&gt;
|Erstellt eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CHECK_SAVE_SHOW_HUS]]&lt;br /&gt;
|Speichert z.B. eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; auf der DB.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHURM_HU_POST_WE_PROD_ORDER|VHURM_HU_POST_WE_PROD_ORDER]]&lt;br /&gt;
|Führt ein Wareneingang mit einer HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; zum Fertigungsauftrag aus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alles sonstige ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[CALL_BROWSER]]&lt;br /&gt;
|Öffnet im lokalen Standardbrowser einen neuen Tab oder neues Fenster&lt;br /&gt;
|-&lt;br /&gt;
|[[GUI_IS_ITS]]&lt;br /&gt;
|Prüfen, ob Umgebung WebGUI ist.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2433</id>
		<title>SAP FuBas und BAPIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=SAP_FuBas_und_BAPIs&amp;diff=2433"/>
		<updated>2026-03-24T09:54:52Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:SAP_Standard]]&lt;br /&gt;
== Allgemein / Übergreifend ==&lt;br /&gt;
&lt;br /&gt;
=== Material ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_MATERIAL_GET_ALL]]&lt;br /&gt;
|Materialdaten lesen&lt;br /&gt;
|-&lt;br /&gt;
|[[ASSORTMENT_POS_HANDLING]]&lt;br /&gt;
|Fügt Materialien zum Sortimentsbaustein hinzu (VerbuchungsFuBa).&lt;br /&gt;
|-&lt;br /&gt;
|[[MD_STOCK_REQUIREMENTS_LIST_API]]&lt;br /&gt;
|Lesen der Bedarfs-/Bestandsliste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Geschäftspartner ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CREATE_FROM_DATA]]&lt;br /&gt;
|Geschäftspartner anlegen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ROLE_ADD_2]]&lt;br /&gt;
|GP-Rolle hinzufügen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_GETDETAIL]]&lt;br /&gt;
|GP-Stammdaten bekommen&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_CENTRAL_CHANGE]]&lt;br /&gt;
|Vorname, Name etc. von Personen, Organisation und Gruppen sowie adressunabhängige Stammdaten wie Telefon,E-Mail etc. ändern&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_BUPA_ADDRESS_CHANGE]]&lt;br /&gt;
|Adressdaten sowie adressabhängige Stammdaten wie Telefon, E-Mail etc. ändern&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_SAP_TO_ISO]]&lt;br /&gt;
|Ändert internes SAP-Einheit zu ISO-Code (Mengen-,Gewicht- &amp;amp;Volumeneinheit) &lt;br /&gt;
|-&lt;br /&gt;
|[[UNIT_OF_MEASURE_ISO_TO_SAP]]&lt;br /&gt;
|Ändert ISO-Code zur internen SAP-Einheit (Mengen-,Gewicht- &amp;amp;Volumeneinheit)&lt;br /&gt;
|-&lt;br /&gt;
|[[SAP_CONVERT_TO_TEX_FORMAT]]&lt;br /&gt;
|Trennt Tabelleninhalte mit einem Trennzeichen z.B. Komma&lt;br /&gt;
|-&lt;br /&gt;
|[[ALSM_EXCEL_TO_INTERNAL_TABLE]]&lt;br /&gt;
|Kann .xlsx Dateien in interne Tabellen konvertieren. Klarer Nachteil ist allerdings, dass leere Felder in der .xlsx für die Konvertierung ignoriert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-Mail/Dokumentenversand ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[SO_NEW_DOCUMENT_SEND_API1|SO_NEW_DOCUMENT_SEND_API1]]&lt;br /&gt;
|Sendet eine E-Mail mit .txt Anhang an einen E-Mail-Empfänger&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
s. [[E-Mail_senden|bessere klassenbasierte Variante]]&lt;br /&gt;
&lt;br /&gt;
=== Texte ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[READ_TEXT]]&lt;br /&gt;
|Lesen Texte wie Langtexte in Stammsätze oder Belegen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Basis / Schnittstellen / Technisches ==&lt;br /&gt;
&lt;br /&gt;
=== Dateiverarbeitung / Verzeichnis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[EPS_GET_DIRECTORY_LISTING|EPS_GET_DIRECTORY_LISTING]]&lt;br /&gt;
|Bekommt alle Filenamen eines Verzeichnisses&lt;br /&gt;
|-&lt;br /&gt;
|[[PFL_CHECK_DIRECTORY|PFL_CHECK_DIRECTORY]]&lt;br /&gt;
|Check, ob Verzeichnis existiert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Berechtigungen und Sperren ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE|ENQUEUE]]&lt;br /&gt;
|Sperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[DEQUEUE|DEQUEUE]]&lt;br /&gt;
|Entsperrt ein Objekt&lt;br /&gt;
|-&lt;br /&gt;
|[[ENQUEUE_READ|ENQUEUE_READ]]&lt;br /&gt;
|Lesen ob ein Objekt gesperrt ist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nummernkreis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[Nummernkreisobjekt|NUMBER_GET_NEXT]]&lt;br /&gt;
|Neue Nummer vom Z Nummernkreis bekommen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IDoc ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ALE_RESERVATION_CREATE]]&lt;br /&gt;
|Erstellt [[MRESCR|MRESCR]] IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_OUTPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Outbound IDoc&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INPUT_DELVRY]]&lt;br /&gt;
|Erstellt [[DESADV|DESADV]] Inbound IDoc  &lt;br /&gt;
|-&lt;br /&gt;
|[[MASTER_IDOC_DISTRIBUTE|MASTER_IDOC_DISTRIBUTE]]&lt;br /&gt;
|Erstellt ein Outbound IDoc (Beispiel MBGMCR)&lt;br /&gt;
|-&lt;br /&gt;
|[[IDOC_INBOUND_WRITE_TO_DB|IDOC_INBOUND_WRITE_TO_DB]]&lt;br /&gt;
|Erstellt ein Inbound IDoc &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GUI  ==&lt;br /&gt;
&lt;br /&gt;
=== Dynpro ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[RS_SET_SELSCREEN_STATUS|RS_SET_SELSCREEN_STATUS]]&lt;br /&gt;
|Ermöglicht bei einem automatisch generierten Dynpro die Statusleiste auszutauschen&lt;br /&gt;
|-&lt;br /&gt;
|[[F4IF_INT_TABLE_VALUE_REQUEST]]&lt;br /&gt;
|Eigene F4-Suchhilfe auf Basis einer internen Tabelle anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Grid Darstellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[REUSE_ALV_GRID_DISPLAY|REUSE_ALV_GRID_DISPLAY]]&lt;br /&gt;
|Stellt recht ohne viel Aufwand Daten in Grid dar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MM ==&lt;br /&gt;
&lt;br /&gt;
=== Bestellung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_GOODSMVT_CREATE| BAPI_GOODSMVT_CREATE]]&lt;br /&gt;
|(MIGO) Warenbewegung buchen&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_CONFIRM]]&lt;br /&gt;
|Fügt Bestätigungspositionen zu, wenn Bestätigungssteuerungsschlüssel vorbelegt ist &lt;br /&gt;
|-&lt;br /&gt;
|[[ME_READ_CHANGES_EINKBELEG]]&lt;br /&gt;
|Lesen von Änderungsbelegen zu einem Einkaufsbeleg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Preisfindung/Preissimulation ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PO_PRICE_SIMULATION|ME_PO_PRICE_SIMULATION]]&lt;br /&gt;
|Simulation einer Bestellung bzw. Preisfindung ohne Kontierungs- und Positonstyp&lt;br /&gt;
|-&lt;br /&gt;
|[[ME_PRICING_REFRESH]]&lt;br /&gt;
[[ME_PRICING_INFORECORD]]&lt;br /&gt;
[[ME_PRICING_DIALOG]]&lt;br /&gt;
[[ME_PRICING_DELIVERY_PLAN]]&lt;br /&gt;
|Wenn mit ME_PRICING_INFORECORD keine Preise gefunden werden, kann mit Kombi ME_PRICING_DIALOG und ME_PRICING_DELIVERY_PLAN die Konditionen, dargestellt wie im Kalkschema inkl. Zwischensummen, der letzten Bestellung gezogen werden&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FI ==&lt;br /&gt;
&lt;br /&gt;
=== Buchungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[BAPI_ACC_DOCUMENT_POST| BAPI_ACC_DOCUMENT_POST]]&lt;br /&gt;
|(FB01) Buchung eines Buchungsbelegs (AP, AR, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CO ==&lt;br /&gt;
&lt;br /&gt;
=== Obligoverwaltung ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[K_OPEN_ITEM_POST|K_OPEN_ITEM_POST]]&lt;br /&gt;
|Obligoeinzelposten verbuchen (Hinzufügen, Update, Löschung)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (e)WM ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_CREATE_GOODS_MOVEMENT|HU_CREATE_GOODS_MOVEMENT]]&lt;br /&gt;
|Warenbewegung in Kombination mit einer HU&lt;br /&gt;
|-&lt;br /&gt;
|[[HU_PACKING_REFRESH]]&lt;br /&gt;
|Cleart globale Variablen.I.d.R. als erstes auszuführen, wenn weitere FuBas kommen.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CREATE_HUS]]&lt;br /&gt;
|Erstellt eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHUPRT2HU_CHECK_SAVE_SHOW_HUS]]&lt;br /&gt;
|Speichert z.B. eine HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; auf der DB.&lt;br /&gt;
|-&lt;br /&gt;
|[[VHURM_HU_POST_WE_PROD_ORDER|VHURM_HU_POST_WE_PROD_ORDER]]&lt;br /&gt;
|Führt ein Wareneingang mit einer HU mit Typ &amp;quot;Werksauftrag:Endprodukt&amp;quot; zum Fertigungsauftrag aus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alles sonstige ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zweck&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[CALL_BROWSER]]&lt;br /&gt;
|Öffnet im lokalen Standardbrowser einen neuen Tab oder neues Fenster&lt;br /&gt;
|-&lt;br /&gt;
|[[GUI_IS_ITS]]&lt;br /&gt;
|Prüfen, ob Umgebung WebGUI ist.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Aufruf_von_Actions_in_RAP_Web-API&amp;diff=2432</id>
		<title>Aufruf von Actions in RAP Web-API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Aufruf_von_Actions_in_RAP_Web-API&amp;diff=2432"/>
		<updated>2026-03-21T15:42:51Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:RAP]]&lt;br /&gt;
[[Kategorie:RAP_als_Web_API]]&lt;br /&gt;
== OData V2 - Web API ==&lt;br /&gt;
&lt;br /&gt;
=== Action &amp;quot;Process&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Ausgangsituation, s. [[CSV_Upload_und_Verarbeitung_mit_RAP_am_Beispiel_von_Geschaeftspartner-Personen#Managed_ohne_Draft]]:&lt;br /&gt;
* Action Methode in Behavior Definition &amp;quot;ZR_YMD_BP_CSV_ROWS&amp;quot; definiert&lt;br /&gt;
* Action Methode in Behavior Impl. &amp;quot;ZBP_YMD_BP_CSV_ROWS-&amp;gt;LHC_CSVROWS-&amp;gt;Process&amp;quot; ausprogrammiert&lt;br /&gt;
* Service Binding: ZAPI_YMD_BP_CSVUPLOAD_O2&lt;br /&gt;
&lt;br /&gt;
SAP Gateway Client / Postman:&lt;br /&gt;
* HTTP-Methode: POST (ggf. vorher mit GET X-CRSF-Token besorgen)&lt;br /&gt;
* Request-URI: /sap/opu/odata/sap/ZAPI_YMD_BP_CSVUPLOAD_O2/Process?FileID=8&amp;amp;FileIDRow=1&lt;br /&gt;
&lt;br /&gt;
== OData V4 - Web API ==&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2431</id>
		<title>Kategorie:RAP als Web API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2431"/>
		<updated>2026-03-21T15:38:37Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:RAP]]&lt;br /&gt;
== Kurzdefinition nach SAP ==&lt;br /&gt;
&lt;br /&gt;
* https://wiki.m1ch3l.de/Kategorie:RAP#Kurzdefinition_nach_SAP&lt;br /&gt;
&lt;br /&gt;
== Ist RAP clean-core oder Cloud Ready? ==&lt;br /&gt;
&lt;br /&gt;
* https://wiki.m1ch3l.de/Kategorie:RAP#Ist_RAP_clean-core_oder_Cloud_Ready?&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2430</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2430"/>
		<updated>2026-03-21T15:37:52Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 🌍 Geschäftsprozesse / Module&lt;br /&gt;
** category: Materialwirtschaft|Materialwirtschaft&lt;br /&gt;
** category: Qualitätsmanagement|Qualitätsmanagement&lt;br /&gt;
** category: Warehouse_Management|Warehouse Management&lt;br /&gt;
* ⚙️ Customizing&lt;br /&gt;
** category: SPRO|SPRO&lt;br /&gt;
*** Customizing_für_Materialwirtschaft|-&amp;gt; MM&lt;br /&gt;
*** Customizing_für_Qualitätsmanagement|-&amp;gt; QM&lt;br /&gt;
** Customizing_für_Fiori-Apps|Fiori Apps&lt;br /&gt;
*** &lt;br /&gt;
* ⛏️ Erweiterbarkeit&lt;br /&gt;
** category: In-App_Extensibility|IN-APP EXTENSIBILITY&lt;br /&gt;
*** Key_User_Extensibility|-&amp;gt; Key User Extensibility&lt;br /&gt;
*** category: Classic_Extensibility|-&amp;gt; Classic Extensibility&lt;br /&gt;
** category: Side_by_Side_Extensibility|S-BY-S EXTENSIBILITY&lt;br /&gt;
*** Business_Technology_Platform|-&amp;gt; Business Technology Platform&lt;br /&gt;
* ⌨️ Entwicklung&lt;br /&gt;
*** Clean_Core_Level_Modell|Clean-Core-Level-Modell&lt;br /&gt;
** category: SAP_Standard|SAP STANDARD&lt;br /&gt;
*** Kategorie:SAP_APIs|-&amp;gt; APIs&lt;br /&gt;
*** SAP_FuBas_und_BAPIs|-&amp;gt; FuBas &amp;amp; BAPIs&lt;br /&gt;
*** SAP_Klassen|-&amp;gt; Klassen&lt;br /&gt;
*** SAP_Programme|-&amp;gt; Programme&lt;br /&gt;
*** Kategorie:Core_Data_Services|-&amp;gt; Core Data Services&lt;br /&gt;
*** category: RAP|-&amp;gt; RAP&lt;br /&gt;
*** category: Schlüsselbegriffe|-&amp;gt; Schlüsselbegriffe&lt;br /&gt;
** category: Z_Coding_3rd_Party|Z-CODING/3RD PARTY&lt;br /&gt;
*** category: AddOns|-&amp;gt; AddOns&lt;br /&gt;
*** category: Codeschnipsel|-&amp;gt; Codeschnipsel&lt;br /&gt;
*** category: Freizeit_erstellte_ZKlassen_und_ZProgramme|-&amp;gt; Freizeit Coding&lt;br /&gt;
** IDE|IDE&lt;br /&gt;
*** category: Eclipse|-&amp;gt; Eclipse&lt;br /&gt;
* 🖥️ Schnittstellen zu Systemen / Integration / EDI&lt;br /&gt;
** category:IDoc_im_Standard|IDoc im Standard&lt;br /&gt;
** category:IDoc_im_Z-Umfeld|IDoc im Z-Umfeld&lt;br /&gt;
** category:REST_API|REST API&lt;br /&gt;
** category: RAP_als_Web_API|RAP als Web-API&lt;br /&gt;
* 🔝 Übergreifend / Sonstiges&lt;br /&gt;
** category: Stammdaten|Stammdaten&lt;br /&gt;
** SAP_Tabellen|Tabellen&lt;br /&gt;
** SAP_Objekte|Objekte&lt;br /&gt;
** category: Nachrichtensteuerung|Nachrichtensteuerung&lt;br /&gt;
** category: BusinessWorkflow|Business Workflow&lt;br /&gt;
** category: Fiori|Fiori&lt;br /&gt;
** category: Formulare|Formulare&lt;br /&gt;
** Übersetzungen|Übersetzungen&lt;br /&gt;
** SAP_Transaktionen|Transaktionen&lt;br /&gt;
** category: Berechtigungen|Berechtigungen&lt;br /&gt;
* Für Einsteiger / Anfänger&lt;br /&gt;
* Einführung_in_ABAP|Einführung in ABAP&lt;br /&gt;
* 👨‍💻 Administration&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Wiki|Wiki&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Autor|Autor&lt;br /&gt;
** https://de.m1ch3l.de/#imprint|Impressum&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2429</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=MediaWiki:Sidebar&amp;diff=2429"/>
		<updated>2026-03-21T15:37:40Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 🌍 Geschäftsprozesse / Module&lt;br /&gt;
** category: Materialwirtschaft|Materialwirtschaft&lt;br /&gt;
** category: Qualitätsmanagement|Qualitätsmanagement&lt;br /&gt;
** category: Warehouse_Management|Warehouse Management&lt;br /&gt;
* ⚙️ Customizing&lt;br /&gt;
** category: SPRO|SPRO&lt;br /&gt;
*** Customizing_für_Materialwirtschaft|-&amp;gt; MM&lt;br /&gt;
*** Customizing_für_Qualitätsmanagement|-&amp;gt; QM&lt;br /&gt;
** Customizing_für_Fiori-Apps|Fiori Apps&lt;br /&gt;
*** &lt;br /&gt;
* ⛏️ Erweiterbarkeit&lt;br /&gt;
** category: In-App_Extensibility|IN-APP EXTENSIBILITY&lt;br /&gt;
*** Key_User_Extensibility|-&amp;gt; Key User Extensibility&lt;br /&gt;
*** category: Classic_Extensibility|-&amp;gt; Classic Extensibility&lt;br /&gt;
** category: Side_by_Side_Extensibility|S-BY-S EXTENSIBILITY&lt;br /&gt;
*** Business_Technology_Platform|-&amp;gt; Business Technology Platform&lt;br /&gt;
* ⌨️ Entwicklung&lt;br /&gt;
*** Clean_Core_Level_Modell|Clean-Core-Level-Modell&lt;br /&gt;
** category: SAP_Standard|SAP STANDARD&lt;br /&gt;
*** Kategorie:SAP_APIs|-&amp;gt; APIs&lt;br /&gt;
*** SAP_FuBas_und_BAPIs|-&amp;gt; FuBas &amp;amp; BAPIs&lt;br /&gt;
*** SAP_Klassen|-&amp;gt; Klassen&lt;br /&gt;
*** SAP_Programme|-&amp;gt; Programme&lt;br /&gt;
*** Kategorie:Core_Data_Services|-&amp;gt; Core Data Services&lt;br /&gt;
*** category: RAP|-&amp;gt; RAP&lt;br /&gt;
*** category: Schlüsselbegriffe|-&amp;gt; Schlüsselbegriffe&lt;br /&gt;
** category: Z_Coding_3rd_Party|Z-CODING/3RD PARTY&lt;br /&gt;
*** category: AddOns|-&amp;gt; AddOns&lt;br /&gt;
*** category: Codeschnipsel|-&amp;gt; Codeschnipsel&lt;br /&gt;
*** category: Freizeit_erstellte_ZKlassen_und_ZProgramme|-&amp;gt; Freizeit Coding&lt;br /&gt;
** IDE|IDE&lt;br /&gt;
*** category: Eclipse|-&amp;gt; Eclipse&lt;br /&gt;
* 🖥️ Schnittstellen zu Systemen / Integration / EDI&lt;br /&gt;
** category:IDoc_im_Standard|IDoc im Standard&lt;br /&gt;
** category:IDoc_im_Z-Umfeld|IDoc im Z-Umfeld&lt;br /&gt;
** category:REST_API|REST API&lt;br /&gt;
** category: RAP_als_Web_API|RAP als Web-API]]&lt;br /&gt;
* 🔝 Übergreifend / Sonstiges&lt;br /&gt;
** category: Stammdaten|Stammdaten&lt;br /&gt;
** SAP_Tabellen|Tabellen&lt;br /&gt;
** SAP_Objekte|Objekte&lt;br /&gt;
** category: Nachrichtensteuerung|Nachrichtensteuerung&lt;br /&gt;
** category: BusinessWorkflow|Business Workflow&lt;br /&gt;
** category: Fiori|Fiori&lt;br /&gt;
** category: Formulare|Formulare&lt;br /&gt;
** Übersetzungen|Übersetzungen&lt;br /&gt;
** SAP_Transaktionen|Transaktionen&lt;br /&gt;
** category: Berechtigungen|Berechtigungen&lt;br /&gt;
* Für Einsteiger / Anfänger&lt;br /&gt;
* Einführung_in_ABAP|Einführung in ABAP&lt;br /&gt;
* 👨‍💻 Administration&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Wiki|Wiki&lt;br /&gt;
** https://wiki.m1ch3l.de/wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84#Autor|Autor&lt;br /&gt;
** https://de.m1ch3l.de/#imprint|Impressum&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Aufruf_von_Actions_in_RAP_Web-API&amp;diff=2428</id>
		<title>Aufruf von Actions in RAP Web-API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Aufruf_von_Actions_in_RAP_Web-API&amp;diff=2428"/>
		<updated>2026-03-21T15:36:37Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:RAP]]&lt;br /&gt;
[[Kategorie:RAP_als_Web_API]]&lt;br /&gt;
== OData V2 - Web API ==&lt;br /&gt;
&lt;br /&gt;
=== Action &amp;quot;Process&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Ausgangsituation, s. [[CSV_Upload_und_Verarbeitung_mit_RAP_am_Beispiel_von_Geschaeftspartner-Personen#Managed_ohne_Draft]]:&lt;br /&gt;
* Action Methode in Behavior Definition &amp;quot;ZR_YMD_BP_CSV_ROWS&amp;quot; definiert&lt;br /&gt;
* Action Methode in Behavior Impl. &amp;quot;ZBP_YMD_BP_CSV_ROWS-&amp;gt;LHC_CSVROWS-&amp;gt;Process&amp;quot; ausprogrammiert&lt;br /&gt;
* Service Binding: ZAPI_YMD_BP_CSVUPLOAD_O2&lt;br /&gt;
&lt;br /&gt;
SAP Gateway Client / Postman:&lt;br /&gt;
* HTTP-Methode: POST (ggf. vorher mit GET X-CRSF-Token besorgen)&lt;br /&gt;
* Request-URI: /sap/opu/odata/sap/ZAPI_YMD_BP_CSVUPLOAD_O2/Process?FileID=8&amp;amp;FileIDRow=1&lt;br /&gt;
&lt;br /&gt;
== OData V2 - Web API ==&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2427</id>
		<title>Kategorie:RAP als Web API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2427"/>
		<updated>2026-03-21T15:35:07Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kurzdefinition nach SAP ==&lt;br /&gt;
&lt;br /&gt;
* https://wiki.m1ch3l.de/Kategorie:RAP#Kurzdefinition_nach_SAP&lt;br /&gt;
&lt;br /&gt;
== Ist RAP clean-core oder Cloud Ready? ==&lt;br /&gt;
&lt;br /&gt;
* https://wiki.m1ch3l.de/Kategorie:RAP#Ist_RAP_clean-core_oder_Cloud_Ready?&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2426</id>
		<title>Kategorie:RAP als Web API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2426"/>
		<updated>2026-03-21T15:34:31Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kurzdefinition nach SAP ==&lt;br /&gt;
&lt;br /&gt;
* [[Kategorie:RAP#Kurzdefinition nach SAP]]&lt;br /&gt;
&lt;br /&gt;
== Ist RAP clean-core oder Cloud Ready? ==&lt;br /&gt;
&lt;br /&gt;
* [[Kategorie:RAP#Ist_RAP_clean-core_oder_Cloud_Ready?]]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2425</id>
		<title>Kategorie:RAP als Web API</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Kategorie:RAP_als_Web_API&amp;diff=2425"/>
		<updated>2026-03-21T15:32:16Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde neu angelegt: „* https://wiki.m1ch3l.de/Kategorie:RAP#Kurzdefinition%20nach%20SAP“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* https://wiki.m1ch3l.de/Kategorie:RAP#Kurzdefinition%20nach%20SAP&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Hauptseite&amp;diff=2424</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Hauptseite&amp;diff=2424"/>
		<updated>2026-03-21T15:21:41Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Weiterleitung nach Willkommen erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Willkommen]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Generische_Objektdienste_(GOS)&amp;diff=2423</id>
		<title>Generische Objektdienste (GOS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Generische_Objektdienste_(GOS)&amp;diff=2423"/>
		<updated>2026-03-21T15:18:45Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Codeschnipsel]]&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== FuBas, Klassen ===&lt;br /&gt;
&lt;br /&gt;
==== Konvertierungen ====&lt;br /&gt;
&lt;br /&gt;
===== BIN zu XSTRING =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*IS_DOCOUMENT_DATA	TYPE SOFOLENTI1&lt;br /&gt;
*IT_OBJECT_CONTENT	TYPE SWFTLISTI1&lt;br /&gt;
*value( RV_XSTRING )	TYPE XSTRING&lt;br /&gt;
&lt;br /&gt;
DATA lt_solixtab TYPE solix_tab.&lt;br /&gt;
DATA lv_docsize  TYPE i.&lt;br /&gt;
DATA lv_xstring TYPE xstring.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_SOLITAB_TO_SOLIXTAB&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      ip_solitab  = it_object_content &amp;quot;TYPE SOFOLENTI1&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      ep_solixtab = lt_solixtab.&lt;br /&gt;
&lt;br /&gt;
  lv_docsize = lines( lt_solixtab ) * 255.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SCMS_BINARY_TO_XSTRING&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      input_length = lv_docsize&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      buffer       = lv_xstring&lt;br /&gt;
    TABLES&lt;br /&gt;
      binary_tab   = lt_solixtab&lt;br /&gt;
    EXCEPTIONS&lt;br /&gt;
      failed       = 1&lt;br /&gt;
      OTHERS       = 2.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== XSTRING zu BIN =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*IV_XSTRING	TYPE XSTRING&lt;br /&gt;
*value( RT_CONTENT )	TYPE SOLI_TAB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATA lt_content_x    TYPE solix_tab.&lt;br /&gt;
  DATA lv_solix_length TYPE i.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SCMS_XSTRING_TO_BINARY&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      buffer        = iv_xstring&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      output_length = lv_solix_length&lt;br /&gt;
    TABLES&lt;br /&gt;
      binary_tab    = lt_content_x.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_SOLIXTAB_TO_SOLITAB&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      ip_solixtab = lt_content_x&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      ep_solitab  = lt_content.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Inhalt Datei bekommen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*IV_DOCNO	TYPE SO_ENTRYID&lt;br /&gt;
*ES_DOCOUMENT_DATA	TYPE SOFOLENTI1&lt;br /&gt;
*ET_OBJECT_HEADER	TYPE SWFTLISTI1&lt;br /&gt;
*ET_OBJECT_CONTENT	TYPE SWFTLISTI1&lt;br /&gt;
*EV_XSTRING	TYPE XSTRING&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_DOCUMENT_READ_API1&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      document_id                = iv_docno &amp;quot; TYPE SO_ENTRYID&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      document_data              = ls_docoument_data&lt;br /&gt;
    TABLES&lt;br /&gt;
      object_header              = lt_object_header&lt;br /&gt;
      object_content             = lt_object_content&lt;br /&gt;
    EXCEPTIONS&lt;br /&gt;
      document_id_not_exist      = 1&lt;br /&gt;
      operation_no_authorization = 2&lt;br /&gt;
      x_error                    = 3&lt;br /&gt;
      OTHERS                     = 4.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;convert bin zu xstring&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anhänge hinzufügen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*IS_DOCOUMENT_DATA	TYPE SOFOLENTI1&lt;br /&gt;
*IT_OBJECT_HEADER	TYPE SWFTLISTI1&lt;br /&gt;
*IV_XSTRING	TYPE XSTRING&lt;br /&gt;
*value( RS_OBJECT_HEAD )	TYPE SOOD2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATA ls_root_folder  TYPE soodk.&lt;br /&gt;
  DATA ls_object_id    TYPE soodk.&lt;br /&gt;
  DATA lt_content      TYPE soli_tab.&lt;br /&gt;
  DATA ls_doc_data     TYPE sood1.&lt;br /&gt;
  DATA ls_object_head  TYPE sood2.&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_FOLDER_ROOT_ID_GET&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      region                = &#039;B&#039;&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      folder_id             = ls_root_folder&lt;br /&gt;
    EXCEPTIONS&lt;br /&gt;
      communication_failure = 1&lt;br /&gt;
      owner_not_exist       = 2&lt;br /&gt;
      system_failure        = 3&lt;br /&gt;
      x_error               = 4&lt;br /&gt;
      OTHERS                = 5.&lt;br /&gt;
&lt;br /&gt;
  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
    RETURN.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&lt;br /&gt;
  lt_content = convert_xstring_to_bin( iv_xstring ).&lt;br /&gt;
&lt;br /&gt;
  ls_doc_data = VALUE #( objla  = is_docoument_data-obj_langu&lt;br /&gt;
                         objsrt = is_docoument_data-obj_sort&lt;br /&gt;
                         objnam = is_docoument_data-obj_name&lt;br /&gt;
                         objdes = is_docoument_data-obj_descr&lt;br /&gt;
                         objpri = is_docoument_data-obj_prio&lt;br /&gt;
                         objsns = is_docoument_data-sensitivty&lt;br /&gt;
                         acout  = is_docoument_data-to_do_out&lt;br /&gt;
                         vmtyp  = is_docoument_data-proc_type&lt;br /&gt;
                         skips  = is_docoument_data-skip_scren&lt;br /&gt;
                         objcp  = is_docoument_data-no_change&lt;br /&gt;
                         ownnam = is_docoument_data-owner_nam ).&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_OBJECT_INSERT&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      folder_id                  = ls_root_folder&lt;br /&gt;
      object_hd_change           = ls_doc_data&lt;br /&gt;
      object_type                = &#039;EXT&#039;&lt;br /&gt;
    IMPORTING&lt;br /&gt;
      object_hd_display          = ls_object_head&lt;br /&gt;
      object_id                  = ls_object_id&lt;br /&gt;
    TABLES&lt;br /&gt;
      objcont                    = lt_content&lt;br /&gt;
      objhead                    = it_object_header&lt;br /&gt;
    EXCEPTIONS&lt;br /&gt;
      active_user_not_exist      = 1&lt;br /&gt;
      communication_failure      = 2&lt;br /&gt;
      component_not_available    = 3&lt;br /&gt;
      dl_name_exist              = 4&lt;br /&gt;
      folder_not_exist           = 5&lt;br /&gt;
      folder_no_authorization    = 6&lt;br /&gt;
      object_type_not_exist      = 7&lt;br /&gt;
      operation_no_authorization = 8&lt;br /&gt;
      owner_not_exist            = 9&lt;br /&gt;
      parameter_error            = 10&lt;br /&gt;
      substitute_not_active      = 11&lt;br /&gt;
      substitute_not_defined     = 12&lt;br /&gt;
      system_failure             = 13&lt;br /&gt;
      x_error                    = 14&lt;br /&gt;
      OTHERS                     = 15.&lt;br /&gt;
&lt;br /&gt;
  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
    RETURN.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&lt;br /&gt;
  IF create_binary_relation( is_root_folder = ls_root_folder&lt;br /&gt;
                             is_object_id   = ls_object_id ).&lt;br /&gt;
    &amp;quot;Alle Schritte erfogreich durchgeführt&lt;br /&gt;
    &amp;quot;--&amp;gt; Informationen zur Datei zurückgeben&lt;br /&gt;
    rs_object_head = ls_object_head.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anhänge bekommen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*value( RT_LINKS )	TYPE OBL_T_LINK&lt;br /&gt;
&lt;br /&gt;
DATA(ls_lpor) = VALUE sibflporb( instid = *Business Objekt Key* &amp;quot;z.B. Belegnummer Kundenauftrag&lt;br /&gt;
                                 typeid = *Business Objekt TYPE* &amp;quot;z.B. Kundenauftrag BUS2032&lt;br /&gt;
                                 catid  = &#039;BO&#039; ).&lt;br /&gt;
&lt;br /&gt;
DATA(lt_rel_options) = VALUE obl_t_relt( ( sign   = &#039;I&#039;&lt;br /&gt;
                                           option = &#039;EQ&#039;&lt;br /&gt;
                                           low    = &#039;ATTA&#039; ) ).&lt;br /&gt;
&lt;br /&gt;
cl_binary_relation=&amp;gt;read_links_of_binrels(&lt;br /&gt;
 EXPORTING&lt;br /&gt;
  is_object           = ls_lpor&lt;br /&gt;
  it_relation_options = lt_rel_options&lt;br /&gt;
  ip_role             = &#039;GOSAPPLOBJ&#039;&lt;br /&gt;
 IMPORTING&lt;br /&gt;
  et_links            = DATA(lt_links) ).&lt;br /&gt;
 CATCH cx_obl_parameter_error&lt;br /&gt;
  cx_obl_internal_error&lt;br /&gt;
  cx_obl_model_error.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anhänge kopieren ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;Prüfen, ob die Quelle Anhänge hat, s. o.&lt;br /&gt;
DATA(ls_source) = VALUE sibflporb( instid = *Business Objekt Key* &amp;quot;z.B. Belegnummer Kundenauftrag&lt;br /&gt;
                                   typeid = *Business Objekt TYPE* &amp;quot;z.B. Kundenauftrag BUS2032&lt;br /&gt;
                                   catid  = &#039;BO&#039; ).&lt;br /&gt;
&lt;br /&gt;
DATA(ls_target) = VALUE sibflporb( instid = *Business Objekt Key* &amp;quot;z.B. Belegnummer Kontrakt&lt;br /&gt;
                                   typeid = *Business Objekt TYPE* &amp;quot;z.B. Kontrakt BUS2034&lt;br /&gt;
                                   catid  = &#039;BO&#039; ).&lt;br /&gt;
&lt;br /&gt;
cl_gos_service_tools=&amp;gt;copy_linked_objects( is_source            = ls_source&lt;br /&gt;
                                           is_target            = ls_target&lt;br /&gt;
                                           it_service_selection = VALUE tgos_sels( ( sign   = &#039;I&#039;&lt;br /&gt;
                                                                                     option = &#039;EQ&#039;&lt;br /&gt;
                                                                                     low    = &#039;PCATTA_CREA&#039; ) &lt;br /&gt;
                                                                                  ) &lt;br /&gt;
                                          ). &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Anhänge löschen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
*Parameter&lt;br /&gt;
*IS_LINK	TYPE OBL_S_LINK&lt;br /&gt;
*value( RV_DELETED )	TYPE ABAP_BOOL&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
  DATA ls_lpor_a TYPE sibflporb.&lt;br /&gt;
  DATA ls_lpor_b TYPE sibflporb.&lt;br /&gt;
&lt;br /&gt;
  DATA ls_folder_id TYPE soodk.&lt;br /&gt;
  DATA ls_object_id TYPE soodk.&lt;br /&gt;
&lt;br /&gt;
  IF is_link IS INITIAL.&lt;br /&gt;
    RETURN.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&lt;br /&gt;
  ls_lpor_a = VALUE #( catid  = is_link-catid_a&lt;br /&gt;
                       typeid = is_link-typeid_a&lt;br /&gt;
                       instid = is_link-instid_a ).&lt;br /&gt;
&lt;br /&gt;
  ls_lpor_b = VALUE #( catid  = is_link-catid_b&lt;br /&gt;
                       typeid = is_link-typeid_b&lt;br /&gt;
                       instid = is_link-instid_b ).&lt;br /&gt;
&lt;br /&gt;
  TRY.&lt;br /&gt;
      cl_binary_relation=&amp;gt;delete_link( is_object_a = ls_lpor_a&lt;br /&gt;
                                       is_object_b = ls_lpor_b&lt;br /&gt;
                                       ip_reltype  = is_link-reltype ).&lt;br /&gt;
    CATCH cx_obl_parameter_error&lt;br /&gt;
          cx_obl_internal_error&lt;br /&gt;
          cx_obl_model_error.&lt;br /&gt;
      RETURN.&lt;br /&gt;
  ENDTRY.&lt;br /&gt;
&lt;br /&gt;
  ls_folder_id = VALUE #( objtp = is_link-instid_b+0(3)&lt;br /&gt;
                          objyr = is_link-instid_b+3(2)&lt;br /&gt;
                          objno = is_link-instid_b+5(12) ).&lt;br /&gt;
&lt;br /&gt;
  ls_object_id = VALUE #( objtp =   is_link-instid_b+17(3)&lt;br /&gt;
                          objyr =  is_link-instid_b+20(2)&lt;br /&gt;
                          objno =  is_link-instid_b+22(12) ).&lt;br /&gt;
&lt;br /&gt;
  CALL FUNCTION &#039;SO_OBJECT_DELETE&#039;&lt;br /&gt;
    EXPORTING&lt;br /&gt;
      folder_id                  = ls_folder_id&lt;br /&gt;
      object_id                  = ls_object_id&lt;br /&gt;
    EXCEPTIONS&lt;br /&gt;
      communication_failure      = 1&lt;br /&gt;
      folder_not_empty           = 2&lt;br /&gt;
      folder_not_exist           = 3&lt;br /&gt;
      folder_no_authorization    = 4&lt;br /&gt;
      forwarder_not_exist        = 5&lt;br /&gt;
      object_not_exist           = 6&lt;br /&gt;
      object_no_authorization    = 7&lt;br /&gt;
      operation_no_authorization = 8&lt;br /&gt;
      owner_not_exist            = 9&lt;br /&gt;
      substitute_not_active      = 10&lt;br /&gt;
      substitute_not_defined     = 11&lt;br /&gt;
      system_failure             = 12&lt;br /&gt;
      x_error                    = 13&lt;br /&gt;
      OTHERS                     = 14.&lt;br /&gt;
&lt;br /&gt;
  IF sy-subrc = 0.&lt;br /&gt;
    &amp;quot;Löschen erfolgreich. Commit ist noch erforderlich.&lt;br /&gt;
    rv_deleted = abap_true.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== APIs ===&lt;br /&gt;
* [[CV_ATTACHMENT_SRV]]&lt;br /&gt;
* [[API_CV_ATTACHMENT_SRV]]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84&amp;diff=2422</id>
		<title>wiki.m1ch3l.de:Über SAP Wiki ツ</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84&amp;diff=2422"/>
		<updated>2026-03-21T15:16:53Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Autor ===&lt;br /&gt;
*[https://www.linkedin.com/in/marvin-michel-346840147/ LinkedIn]&lt;br /&gt;
*[https://www.xing.com/profile/Marvin_Michel3 Xing]&lt;br /&gt;
*[https://blog.m1ch3l.de Blog]&lt;br /&gt;
*[mailto:marvin@m1ch3l.de Kontakt]&lt;br /&gt;
*[https://de.m1ch3l.de/#imprint Impressum]&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
*[[Videos|Übersicht aller Videos]]&lt;br /&gt;
*[[Spezial:Zufällige_Seite|Zufällige Seite]]&lt;br /&gt;
*[https://www.mediawiki.org/wiki/Help:Contents Wiki-Hilfe]&lt;br /&gt;
*[[Wiki-Seitenvorlagen|Wiki-Seitenvorlage]]&lt;br /&gt;
*[[Dieses_Wiki_unterstützen|Dieses Wiki unterstützen]]&lt;br /&gt;
*[[ToDos]]&lt;br /&gt;
*[[Lesezeichen]]&lt;br /&gt;
&lt;br /&gt;
=== Statistiken ===&lt;br /&gt;
&lt;br /&gt;
Das Wiki hat &#039;&#039;&#039;{{NUMBEROFPAGES}} Seiten&#039;&#039;&#039;, davon sind es &#039;&#039;&#039;{{NUMBEROFARTICLES}} Inhaltsseiten&#039;&#039;&#039; mit &#039;&#039;&#039;{{NUMBEROFFILES}} Dateien&#039;&#039;&#039;.&amp;lt;br /&amp;gt; Die Seiten wurden insgesamt &#039;&#039;&#039;{{NUMBEROFEDITS}} Mal geändert&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Folgende Kategorien haben insgesamt Seiten:&amp;lt;br /&amp;gt;&lt;br /&gt;
* Materialwirtschaft =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Materialwirtschaft|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Qualitätsmanagement =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Qualitätsmanagement|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Stammdaten =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Stammdaten|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Fiori =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Fiori|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* IDoc&amp;lt;br /&amp;gt;&lt;br /&gt;
** Standard =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:IDoc_im_Standard|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
** Z-Umfeld =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:IDoc_im_Z-Umfeld|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Formulare =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Formulare|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
** AdobeForms &#039;&#039;&#039;{{PAGESINCATEGORY:AdobeForms|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Schlüsselbegriffe =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Schlüsselbegriffe|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Codeschnipsel =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Codeschnipsel|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84&amp;diff=2421</id>
		<title>wiki.m1ch3l.de:Über SAP Wiki ツ</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=wiki.m1ch3l.de:%C3%9Cber_SAP_Wiki_%E3%83%84&amp;diff=2421"/>
		<updated>2026-03-21T15:16:28Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Autor ===&lt;br /&gt;
*[https://www.linkedin.com/in/marvin-michel-346840147/ LinkedIn]&lt;br /&gt;
*[https://www.xing.com/profile/Marvin_Michel3 Xing]&lt;br /&gt;
*[https://blog.m1ch3l.de Blog]&lt;br /&gt;
*[mailto:marvin@m1ch3l.de Kontakt]&lt;br /&gt;
*[https://de.m1ch3l.de/#imprint Impressum]&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
*[[Videos|Übersicht aller Videos]]&lt;br /&gt;
*[[Spezial:Zufällige_Seite|Zufällige Seite]]&lt;br /&gt;
*[https://www.mediawiki.org/wiki/Help:Contents Wiki-Hilfe]&lt;br /&gt;
*[[Wiki-Seitenvorlagen|Wiki-Seitenvorlage]]&lt;br /&gt;
*[[Dieses_Wiki_unterstützen|Dieses Wiki unterstützen]]&lt;br /&gt;
*[[ToDos]]&lt;br /&gt;
*[[Lesezeichen]]&lt;br /&gt;
&lt;br /&gt;
=== Statistiken ===&lt;br /&gt;
&lt;br /&gt;
Das Wiki hat &#039;&#039;&#039;{{NUMBEROFPAGES}} Seiten&#039;&#039;&#039;, davon sind es &#039;&#039;&#039;{{NUMBEROFARTICLES}} Inhaltsseiten&#039;&#039;&#039; mit &#039;&#039;&#039;{{NUMBEROFFILES}} Dateien&#039;&#039;&#039;.&amp;lt;br /&amp;gt; Die Seiten wurden insgesamt &#039;&#039;&#039;{{NUMBEROFEDITS}} Mal geändert&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Folgende Kategorien haben insgesamt Seiten:&amp;lt;br /&amp;gt;&lt;br /&gt;
* Materialwirtschaft =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Materialwirtschaft|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Qualitätsmanagement =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Qualitätsmanagement|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Stammdaten =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Stammdaten|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Fiori =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Fiori|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* IDoc&amp;lt;br /&amp;gt;&lt;br /&gt;
** Standard =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:IDoc_im_Standard|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
** Z-Umfeld =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:IDoc_im_Z-Umfeld|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Formulare =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Formulare|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
** AdobeForms &#039;&#039;&#039;{{PAGESINCATEGORY:AdobeForms|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Schlüsselbegriffe =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Schlüsselbegriffe|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Codeschnipsel =&amp;gt; &#039;&#039;&#039;{{PAGESINCATEGORY:Codeschnipsel|pages}}&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Englische Seiten ===&lt;br /&gt;
&lt;br /&gt;
* https://unirab.org&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2420</id>
		<title>ToDos</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2420"/>
		<updated>2026-03-21T15:15:42Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;adminonly&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&lt;br /&gt;
* Test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2419</id>
		<title>ToDos</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2419"/>
		<updated>2026-03-21T15:15:33Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;adminonly&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2418</id>
		<title>ToDos</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2418"/>
		<updated>2026-03-21T15:15:25Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;adminonly&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Lesezeichen&amp;diff=2417</id>
		<title>Lesezeichen</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Lesezeichen&amp;diff=2417"/>
		<updated>2026-03-21T15:13:58Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde geleert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2416</id>
		<title>ToDos</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=ToDos&amp;diff=2416"/>
		<updated>2026-03-21T15:13:38Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: Die Seite wurde geleert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=FILTER&amp;diff=2415</id>
		<title>FILTER</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=FILTER&amp;diff=2415"/>
		<updated>2026-03-21T15:11:45Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Schlüsselbegriffe]]&lt;br /&gt;
* https://github.com/SAP-samples/abap-cheat-sheets/blob/main/05_Constructor_Expressions.md#filter&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Formatoption_TIMESTAMP&amp;diff=2414</id>
		<title>Formatoption TIMESTAMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Formatoption_TIMESTAMP&amp;diff=2414"/>
		<updated>2026-03-21T15:11:22Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Formatoptionen(ABAP)]]&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=Formatoption_PAD_WIDTH&amp;diff=2413</id>
		<title>Formatoption PAD WIDTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=Formatoption_PAD_WIDTH&amp;diff=2413"/>
		<updated>2026-03-21T15:11:11Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Formatoptionen(ABAP)]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;quot;Hier würde z.B. das Material 4711 dahinter mit Leerzeichen aufgefüllt werden&lt;br /&gt;
 lv_mat_with_spaces = |{ ls_purreq-material WIDTH = 40 PAD = space  }|.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=REUSE_ALV_GRID_DISPLAY&amp;diff=2412</id>
		<title>REUSE ALV GRID DISPLAY</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=REUSE_ALV_GRID_DISPLAY&amp;diff=2412"/>
		<updated>2026-03-21T15:08:56Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Clean-Core-Level_C]]&lt;br /&gt;
Der FuBa ist aus meiner Sicht gut, wenn man unkompliziert und schnell Daten im Grid darstellen will.&lt;br /&gt;
Bei User Aktionen wie Doppelklick muss allerdings ein Unterprogramm genutzt werden, sodass es für globale Methoden z.B. ungeeignet ist.&lt;br /&gt;
&lt;br /&gt;
=== Codeschnipsel ===&lt;br /&gt;
 &lt;br /&gt;
    DATA: ls_layout  TYPE slis_layout_alv.&lt;br /&gt;
 &lt;br /&gt;
 *   Globale ALV-Tabelle, damit USER_COMMAND funktioniert&lt;br /&gt;
    FREE: gt_log_alv.&lt;br /&gt;
  &lt;br /&gt;
    ls_layout-zebra = abap_true.&lt;br /&gt;
    ls_layout-colwidth_optimize = abap_true.&lt;br /&gt;
 &lt;br /&gt;
    CALL FUNCTION &#039;REUSE_ALV_GRID_DISPLAY&#039;&lt;br /&gt;
      EXPORTING&lt;br /&gt;
        i_callback_program      = &#039;ZLDL_BESTANDSMONITOR&#039;&lt;br /&gt;
        i_callback_user_command = &#039;USER_COMMAND_ALV&#039;&lt;br /&gt;
        i_structure_name        = &#039;ZANFLOG_LDL_ALV&#039;&lt;br /&gt;
        is_layout               = ls_layout&lt;br /&gt;
        i_screen_start_column   = 5&lt;br /&gt;
        i_screen_start_line     = 5&lt;br /&gt;
        i_screen_end_column     = 150&lt;br /&gt;
        i_screen_end_line       = 20&lt;br /&gt;
      TABLES&lt;br /&gt;
        t_outtab                = gt_log_alv&lt;br /&gt;
      EXCEPTIONS&lt;br /&gt;
        program_error           = 1&lt;br /&gt;
        OTHERS                  = 2.&lt;br /&gt;
    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
 *     Implement suitable error handling here&lt;br /&gt;
    ENDIF.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
	<entry>
		<id>https://wiki.m1ch3l.de/index.php?title=REUSE_ALV_GRID_DISPLAY&amp;diff=2411</id>
		<title>REUSE ALV GRID DISPLAY</title>
		<link rel="alternate" type="text/html" href="https://wiki.m1ch3l.de/index.php?title=REUSE_ALV_GRID_DISPLAY&amp;diff=2411"/>
		<updated>2026-03-21T15:08:48Z</updated>

		<summary type="html">&lt;p&gt;M1ch3lde: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie: Kategorie:Clean-Core-Level_C]]&lt;br /&gt;
Der FuBa ist aus meiner Sicht gut, wenn man unkompliziert und schnell Daten im Grid darstellen will.&lt;br /&gt;
Bei User Aktionen wie Doppelklick muss allerdings ein Unterprogramm genutzt werden, sodass es für globale Methoden z.B. ungeeignet ist.&lt;br /&gt;
&lt;br /&gt;
=== Codeschnipsel ===&lt;br /&gt;
 &lt;br /&gt;
    DATA: ls_layout  TYPE slis_layout_alv.&lt;br /&gt;
 &lt;br /&gt;
 *   Globale ALV-Tabelle, damit USER_COMMAND funktioniert&lt;br /&gt;
    FREE: gt_log_alv.&lt;br /&gt;
  &lt;br /&gt;
    ls_layout-zebra = abap_true.&lt;br /&gt;
    ls_layout-colwidth_optimize = abap_true.&lt;br /&gt;
 &lt;br /&gt;
    CALL FUNCTION &#039;REUSE_ALV_GRID_DISPLAY&#039;&lt;br /&gt;
      EXPORTING&lt;br /&gt;
        i_callback_program      = &#039;ZLDL_BESTANDSMONITOR&#039;&lt;br /&gt;
        i_callback_user_command = &#039;USER_COMMAND_ALV&#039;&lt;br /&gt;
        i_structure_name        = &#039;ZANFLOG_LDL_ALV&#039;&lt;br /&gt;
        is_layout               = ls_layout&lt;br /&gt;
        i_screen_start_column   = 5&lt;br /&gt;
        i_screen_start_line     = 5&lt;br /&gt;
        i_screen_end_column     = 150&lt;br /&gt;
        i_screen_end_line       = 20&lt;br /&gt;
      TABLES&lt;br /&gt;
        t_outtab                = gt_log_alv&lt;br /&gt;
      EXCEPTIONS&lt;br /&gt;
        program_error           = 1&lt;br /&gt;
        OTHERS                  = 2.&lt;br /&gt;
    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
 *     Implement suitable error handling here&lt;br /&gt;
    ENDIF.&lt;/div&gt;</summary>
		<author><name>M1ch3lde</name></author>
	</entry>
</feed>