Kundenklasse via BAPI ändern

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

Kundenklasse via BAPI ändern

Beitrag von resource_sik (ForumUser / 8 / 0 / 0 ) »
Hallo Zusammen.
Ich muss in einem ABAP-Programm die Kundenklasse eines Kunden(KNA1) ändern. Meine Idee bis jetzt war der FuBa SD_CUSTOMER_MAINTAIN_ALL.

Mein coding:

Code: Alles auswählen.

  wa_kna1-name1 = wa_z05knadr-name1.
  wa_kna1-ort01 = wa_z05knadr-ort01.
  wa_kna1-pstlz = wa_z05knadr-pstlz.
  wa_kna1-stras = wa_z05knadr-stras.
  wa_kna1-ktokd = '0001'.

  call function 'SD_CUSTOMER_MAINTAIN_ALL'
   exporting
     i_kna1                              = wa_kna1
*   I_KNB1                              =
*   I_KNVV                              =
*   I_BAPIADDR1                         =
*   I_BAPIADDR2                         =
*   I_MAINTAIN_ADDRESS_BY_KNA1          = ' '
*   I_KNB1_REFERENCE                    = ' '
*   I_FORCE_EXTERNAL_NUMBER_RANGE       = ' '
*   I_NO_BANK_MASTER_UPDATE             = ' '
*   I_CUSTOMER_IS_CONSUMER              = ' '
*   I_RAISE_NO_BTE                      = ' '
*   PI_POSTFLAG                         = ' '
*   PI_CAM_CHANGED                      = ' '
*   PI_ADD_ON_DATA                      =
*   I_FROM_CUSTOMERMASTER               = ' '
 importing
   e_kunnr                             = wa_kna1-kunnr
in der wa_kna1 habe ich die aktuellen werte, also die die in die kna1 geschrieben werden sollen. aber irgendwie funktioniert das nicht.
bin ich da überhaupt auf dem richtigen weg?

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


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

Coding sieht auf den ersten Blick ok aus, aber geht das nach IMPORTING noch weiter, d.h. wertest Du die EXCEPTIONS aus bzw. welcher Returncode kommt denn zurück?
Viele Grüße
Britta

Beitrag von resource_sik (ForumUser / 8 / 0 / 0 ) »
Also hier noch der ganze aufruf des FuBa's

Code: Alles auswählen.

  wa_kna1-name1 = wa_z05knadr-name1.
  wa_kna1-ort01 = wa_z05knadr-ort01.
  wa_kna1-pstlz = wa_z05knadr-pstlz.
  wa_kna1-stras = wa_z05knadr-stras.
  wa_kna1-ktokd = '0001'.

  call function 'SD_CUSTOMER_MAINTAIN_ALL'
   exporting
     i_kna1                              = wa_kna1
*   I_KNB1                              =
*   I_KNVV                              =
*   I_BAPIADDR1                         =
*   I_BAPIADDR2                         =
*   I_MAINTAIN_ADDRESS_BY_KNA1          = ' '
*   I_KNB1_REFERENCE                    = ' '
*   I_FORCE_EXTERNAL_NUMBER_RANGE       = ' '
*   I_NO_BANK_MASTER_UPDATE             = ' '
*   I_CUSTOMER_IS_CONSUMER              = ' '
*   I_RAISE_NO_BTE                      = ' '
*   PI_POSTFLAG                         = ' '
*   PI_CAM_CHANGED                      = ' '
*   PI_ADD_ON_DATA                      =
*   I_FROM_CUSTOMERMASTER               = ' '
 importing
   e_kunnr                             = wa_kna1-kunnr
*   O_KNA1                              =
*   E_SD_CUST_1321_DONE                 =
* TABLES
*   T_XKNAS                             =
*   T_XKNBK                             =
*   T_XKNB5                             =
*   T_XKNEX                             =
*   T_XKNVA                             =
*   T_XKNVD                             =
*   T_XKNVI                             =
*   T_XKNVK                             =
*   T_XKNVL                             =
*   T_XKNVP                             =
*   T_XKNZA                             =
*   T_YKNAS                             =
*   T_YKNBK                             =
*   T_YKNB5                             =
*   T_YKNEX                             =
*   T_YKNVA                             =
*   T_YKNVD                             =
*   T_YKNVI                             =
*   T_YKNVK                             =
*   T_YKNVL                             =
*   T_YKNVP                             =
*   T_YKNZA                             =
*   T_UPD_TXT                           =
   exceptions
     client_error                        = 1
     kna1_incomplete                     = 2
     knb1_incomplete                     = 3
     knb5_incomplete                     = 4
     knvv_incomplete                     = 5
     kunnr_not_unique                    = 6
     sales_area_not_unique               = 7
     sales_area_not_valid                = 8
     insert_update_conflict              = 9
     number_assignment_error             = 10
     number_not_in_range                 = 11
     number_range_not_extern             = 12
     number_range_not_intern             = 13
     account_group_not_valid             = 14
     parnr_invalid                       = 15
     bank_address_invalid                = 16
     tax_data_not_valid                  = 17
     no_authority                        = 18
     company_code_not_unique             = 19
     dunning_data_not_valid              = 20
     knb1_reference_invalid              = 21
     cam_error                           = 22
     others                              = 23
            .
  if sy-subrc <> 0.
    data: wf_error type string.
    wf_error = sy-subrc.
    concatenate 'Fehler: -' wf_error into wf_error separated by ''.
    message wf_error type 'W'.
  endif.
sy-subrc ist 0.
mit einem zusätzlichen commit work geht es auch nicht.

Beitrag von edwin (Specialist / 306 / 11 / 68 ) »
Hallo,

versuche mal mit
PI_POSTFLAG = 'X'
damit wird synchron verbucht.

Gruss Edwin

Beitrag von resource_sik (ForumUser / 8 / 0 / 0 ) »
Also ich habe den fehler gefunden. in meinem Select, welcher die KNA1 ausliest wurde kein Datensatz gefunden und somit war das feld kunnr nicht befüllt. hab jetzt den select angepasst, und nach dem aufruf noch ein commit work. gemacht.

Beitrag von resource_sik (ForumUser / 8 / 0 / 0 ) »
Also ich habe jetzt noch ein weiteres problem :(
Wenn ich die Kontengruppe des Kunden von Interessent (0005) auf Auftraggeber (0001) wechseln möchte, muss man ja noch Weitere Daten hinzufügen. Unter anderem die Steuerklassifizierung in der Tabelle KNVI.
Im FuBa SD_CUSTOMER_MAINTAIN_ALL gibtes dazu den tables parameter t_yknvi vom typ fknvi. Also habe ich folgendes Coding:

Code: Alles auswählen.

data: 
        it_knvi type table of fknvi,
        wa_knvi type fknvi.

  wa_knvi-mandt = sy-mandt.
  wa_knvi-kunnr = it_kunnr.
  wa_knvi-aland = 'CH'.
  wa_knvi-tatyp = 'MWST'.
  wa_knvi-taxkd = '1'.
  wa_knvi-kz = 'I'.
  append wa_knvi to it_knvi.
anschliessend rufe ich den FuBa gleich auf wie oben. Zusätzlich aber noch mit dem Tables Parameter ty_knvi = it_knvi.

Leider legt dieser mir aber kein Datensatz zum Kunden inder KNVI an. Liegts eventuell an der Datendefinition bzw. den übergebenen Werten?

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3106
Views
BAPI
von anki_86 » 11.06.2007 10:40 • Verfasst in ABAP® für Anfänger
0
Antw.
2402
Views
BAPI für WG 22
von MASTERmind » 10.09.2007 16:05 • Verfasst in ABAP® Core
2
Antw.
3290
Views
Bapi´s im HR
von fbo » 10.07.2007 09:20 • Verfasst in Human Resources
0
Antw.
6718
Views
SAP JCo --> BAPI
von Hutch3 » 17.10.2010 17:42 • Verfasst in Java & SAP®
0
Antw.
1682
Views
Bapi
von tech » 14.05.2007 08:19 • Verfasst in ABAP® Core

Über diesen Beitrag


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.