cl_md_bp_maintain=>maintain / Update BP

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles über die SAPs In-Memory Datenbank HANA
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

cl_md_bp_maintain=>maintain / Update BP

Beitrag von littleJohn (ForumUser / 70 / 13 / 0 ) »
Hallo,

mal wieder was zu BP unter S4...
Hat mal jemand zufällig über die Methode cl_md_bp_maintain=>maintain Kontaktdaten wie Telefon und Fax eines BP upgedatet?
Irgendwie komm ich da nicht ganz zurecht, vielleicht fehlt mir auch noch das ein oder andere Feld in den (unübersichtlichen) Strukturen das zu füllen wäre :)

Danke und Gruß
LJ
Je mehr wir voneinander wissen, um so höher ist unsere Chance zu überleben.

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


Re: cl_md_bp_maintain=>maintain / Update BP

Beitrag von rob_abc (ForumUser / 59 / 12 / 18 ) »
Hallo

Gibt es einen speziellen Grund, dass du genau diese Klasse verwenden willst? Ich habe den FB BAPI_BUPA_ADDRESS_CHANGE verwendet.

Gruss
Robert

Re: cl_md_bp_maintain=>maintain / Update BP

Beitrag von littleJohn (ForumUser / 70 / 13 / 0 ) »
rob_abc hat geschrieben:
02.05.2023 10:38
Hallo

Gibt es einen speziellen Grund, dass du genau diese Klasse verwenden willst? Ich habe den FB BAPI_BUPA_ADDRESS_CHANGE verwendet.

Gruss
Robert
Also ich hatte die Neuanlage über diese Methode umgesetzt (innerhalb eines Workflows) und muss unter anderem auch noch weitere Felder updaten... deshalb bin ich auf diese Methode gegangen.
Je mehr wir voneinander wissen, um so höher ist unsere Chance zu überleben.

Re: cl_md_bp_maintain=>maintain / Update BP

Beitrag von rob_abc (ForumUser / 59 / 12 / 18 ) »
Die Struktur ist schon eine Herausforderung, bietet aber dadurch auch alle Freiheiten.

Ich habe ein wenig alten Code durchgeschaut und etwas gefunden, was ich auf deinen Fall anpassen konnte. Hier ein Beispiel zum Ändern einer bestehenden Telefonnummer eines existierenden BPs.

Code: Alles auswählen.

REPORT.

DATA:
  l_data      TYPE cvis_ei_extern_t,
  l_data_line LIKE LINE OF l_data,
  l_return    TYPE bapiretm,
  l_error     TYPE abap_bool,
  l_address   TYPE bus_ei_bupa_address.


SELECT SINGLE * FROM but000
  WHERE partner EQ '0001000000'
  INTO @DATA(l_but000).

SELECT SINGLE b~address_guid FROM but021_fs AS a
  INNER JOIN but020 AS b ON a~addrnumber = b~addrnumber
  WHERE a~partner = @l_but000-partner
    AND adr_kind  = 'XXDEFAULT'
  INTO @DATA(l_address_guid).

l_data_line = VALUE #(
  partner-header-object_instance-bpartnerguid = l_but000-partner_guid
  partner-header-object_task = 'U'
).

IF l_address_guid IS INITIAL.
  l_address-task = 'I'.
ELSE.
  l_address-task = 'U'.
  l_address-data_key-guid = l_address_guid.
ENDIF.

l_address-data-communication-phone-phone = VALUE #( (
  contact-task = 'U'
  contact-data-telephone = '0221 10 30 30'
  contact-data-country = 'DE'
  contact-data-std_no = abap_true
  contact-datax-telephone = 'X'
  contact-datax-country = 'X'
  contact-datax-std_no = 'X' ) ).

l_data_line-partner-central_data-address-addresses = VALUE #( ( l_address ) ).


INSERT L_data_line INTO TABLE l_data.

cl_md_bp_maintain=>maintain(
  EXPORTING
    i_data   = l_data
  IMPORTING
    e_return = l_return ).

LOOP AT l_return ASSIGNING FIELD-SYMBOL(<return>).
  LOOP AT <return>-object_msg ASSIGNING FIELD-SYMBOL(<msg>).
    IF <msg>-type EQ 'E' OR <msg>-type EQ 'A'.
      l_error = abap_true.
      EXIT.
    ENDIF.
  ENDLOOP.
  IF l_error EQ abap_true.
    EXIT.
  ENDIF.
ENDLOOP.

IF l_error IS INITIAL.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  cl_demo_output=>write( 'GP geändert' ).
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  cl_demo_output=>write( 'Änderung fehlgeschlagen' ).
ENDIF.

cl_demo_output=>write( l_return ).
cl_demo_output=>display( ).

Folgende Benutzer bedankten sich beim Autor rob_abc für den Beitrag:
littleJohn


Re: cl_md_bp_maintain=>maintain / Update BP

Beitrag von littleJohn (ForumUser / 70 / 13 / 0 ) »
Danke dir, schau ich mir mal an!
Je mehr wir voneinander wissen, um so höher ist unsere Chance zu überleben.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2063
Views
SE 11 Maintain Generator
von teerock » 28.06.2004 13:10 • Verfasst in ABAP® Core
4
Antw.
4623
Views
Material Maintain Dark
von queen » 09.06.2008 16:10 • Verfasst in ABAP® für Anfänger
2
Antw.
2226
Views
Anlage Business Partner mit cl_md_bp_maintain=>maintain ohne Vertriebsbereichssicht
von ewx » 22.04.2021 14:11 • Verfasst in ABAP® Core
9
Antw.
8684
Views
DBTab Update from Table oder in Loop mit "Update Set" Oder ?
von RIG » 09.03.2018 11:27 • Verfasst in ABAP® Core
4
Antw.
3759
Views
Basis Update
von commolus » 18.06.2013 09:13 • Verfasst in Sonstige Module

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.