über Batch Input Ansprechpartner zu Lieferanten anlegen

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

über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hallo,

Ich möchte über Batch Input Ansprechpartner zu Lieferanten anlegen.
- d.h. so wie wenn ich es manuell über die Transaktion XK02 auf der vierten Maske (siehe screenshot) , bzw. im Dynpro 0380, Zeile für Zeile anlegen würde,
möchte ich das Ganze jetzt direkt über einen Batch Input anlegen.

Das muss doch auch möglich sein, oder etwa nicht??

Mein bisheriger Code dazu sieht folgendermassen aus:

Code: Alles auswählen.

  DATA : it_bdcdata    LIKE bdcdata OCCURS 0 WITH HEADER LINE,
         wa_bdcdata    TYPE bdcdata,
         it_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.

  LOOP AT pt_knvk.
    REFRESH it_bdcdata.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0380'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'KNVK-NAME1'
                                  pt_knvk-name1.
    PERFORM bdc_field       USING 'KNVK-NAMEV'
                                  pt_knvk-namev.
    PERFORM bdc_field       USING 'KNVK-ANRED'
                                  pt_knvk-anred.
    PERFORM bdc_field       USING 'KNVK-ABTNR'
                                  pt_knvk-abtnr.
    PERFORM bdc_field       USING 'KNVK-PAFKT'
                                  pt_knvk-pafkt.
    PERFORM bdc_field       USING 'KNVK-TELF1'
                                  pt_knvk-telf1.

**    PERFORM bdc_transaction USING 'XK02'.

    CALL TRANSACTION 'XK02' USING it_bdcdata
                         MESSAGES INTO it_bdcmsgcoll.

  ENDLOOP.

Code: Alles auswählen.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

  CLEAR it_bdcdata.
  it_bdcdata-program  = program.
  it_bdcdata-dynpro   = dynpro.
  it_bdcdata-dynbegin = 'X'.
  APPEND it_bdcdata.
ENDFORM.                    "bdc_dynpro

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

    CLEAR it_bdcdata.
    it_bdcdata-fnam = fnam.
    it_bdcdata-fval = fval.
    APPEND it_bdcdata.

ENDFORM.                    "bdc_field
In dem Fall sprint er mir lt. Debug jedoch leider nicht gleich in die 0380 - Maske ,
sondern trotzdem von Anfang an (wie wenn ich in xk02 einsteigen würde) in die erste Maske , ins 0101 !! :-(
Weshalb?

kann man neue Ansprechpartner nicht über Batch Input in die xd02 , zu dem jeweiligen Lieferanten , anlegen lassen??

Danke!!
lg

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


Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Du kannst im Batch-Input nicht einfach in eine gewünschtes Dypro "springen".

Du musst Schritt vor Schritt vorgehen, ("fast")* exakt wie in der XK02.

Nicht benötigte Dynpros müssen trotzdem, wie im Dialog, durchlaufen werden.



*("fast") = manchmal verhält sich ein Batch-Input ein "bißchen anderes", als der original TCODE. Z.B. erscheinen Popups....

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von km216 (Specialist / 151 / 6 / 11 ) »
Und damit du dir da nicht alles zusammenbasteln musst, kannst du die Transaktion SHDB benutzen.
Glaub ich zumindest, aber mich wird schon jemand korrigieren, wenn ich falsch liege ;)

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von inab (ForumUser / 69 / 0 / 6 ) »
HAllo SAPlerin,

Du musst natürlich ersteinmal in den Startbildschirm der Transaktion XK02 springen ( Screen 0101 ) um dort die Lieferantennummer und die EKOrg mitzugeben.
Dort kannst Du dann auch das Feld Partnerollen an x-en.

MIt dem entsprechenden OK-CODE springst Du dann direkt auf die Partnersicht und kannst dort Deine Änderungen vornehmen.

Viele Grüße

INAB

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hello,
Super - danke für eure Antworten!

o.k. , hhmmm, blöd - ich hatte schon die Befürchtung, dass man bei Verwendung d. Batch Inputs nicht direkt gleich in die Maske der Pflege der Ansprechpartner springen kann :-(
sondern eben zuerst alle Dynpros , wie im XK02 , durchlaufen muss :-(

Kann man das nicht umgehen??
Gibt es in dem Fall dann was Anderes als Batch Input??
(- einen BAPI , wie z.B. BAPI_ADDRESSCONTPART_CHANGE, gibt es in dem Fall leider überhaupt nicht :-( ,
oder kann ich den CHANGE-BAPI dafür verwenden und dementsprechend umändern, so dass eben die Ansprechpartner zu Lieferanten angelegt werden ??
(der CHANGE-BAPI wird nämlich nie verwendet, nicht einmal, wenn man die Ansprechpartner über d. XK02 ändert, das ist das was mich eben `etwas verunsichert´ :-/ ... )

@inab - ->
"Dort kannst Du dann auch das Feld Partnerollen an x-en." - wo bzw. wie kann ich das dann in meinem code an x-en?? weil im Moment sieht mein Code jetzt folgendermassen aus:

Code: Alles auswählen.

DATA : it_bdcdata    LIKE bdcdata OCCURS 0 WITH HEADER LINE,
                  it_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.

  LOOP AT pt_knvk.
    REFRESH it_bdcdata.
    PERFORM bdc_dynpro      USING 'SAPMF02K' '0101'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-REF_LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
*    PERFORM bdc_field       USING 'RF02K-LIFNR'
*                                  pt_knvk-lifnr.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0111'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0380'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'KNVK-NAME1'
                                  pt_knvk-name1.
    PERFORM bdc_field       USING 'KNVK-NAMEV'
                                  pt_knvk-namev.
    PERFORM bdc_field       USING 'KNVK-ANRED'
                                  pt_knvk-anred.
    PERFORM bdc_field       USING 'KNVK-ABTNR'
                                  pt_knvk-abtnr.
    PERFORM bdc_field       USING 'KNVK-PAFKT'
                                  pt_knvk-pafkt.
    PERFORM bdc_field       USING 'KNVK-TELF1'
                                  pt_knvk-telf1.


    CALL TRANSACTION 'XK02' USING it_bdcdata
                         MESSAGES INTO it_bdcmsgcoll.

  ENDLOOP.

ENDFORM.                    " zzaddresscontpart_create1
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

  CLEAR it_bdcdata.
  it_bdcdata-program  = program.
  it_bdcdata-dynpro   = dynpro.
  it_bdcdata-dynbegin = 'X'.
  APPEND it_bdcdata.
ENDFORM.                    "bdc_dynpro

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

  CLEAR it_bdcdata.
  it_bdcdata-fnam = fnam.
  it_bdcdata-fval = fval.
  APPEND it_bdcdata.

ENDFORM.                    "bdc_field
--> ich habe bei jedem screen die lifnr mitgegeben (also als BDC_CURSOR) :
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-LIFNR'.

und mein OKCODE ist auch immer derselbe :-/ :
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.

--> oder mach' ich das überhaupt falsch??

im dynpro 0380: PERFORM bdc_dynpro USING 'SAPMF02K' '0380'.
befülle ich dann meine Ansprechpartnerdaten, oder??
(z.B. PERFORM bdc_field USING 'KNVK-NAME1'
pt_knvk-name1.
) ich loope auch über die pt_knvk

Oder gehört das komplett anders??
... leider habe ich bis jetzt mit BI noch nicht wirklich viel zu tun gehabt :-( ...

Danke!
lg

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von inab (ForumUser / 69 / 0 / 6 ) »
HAllo SAPlerin,

das Feld heisst WRF02K-D0320 und Du musst es mit 'X' besetzen.

Um all das was Du in Deine BI-MAppe schreiben musst herauszufinden versuche doch einfach einmal in der Transaktion SM35 ( BatchInput) den Button Recording zu drücken.

Dort kannst Du einen Durchlauf komplett aufnehemn, anschliessend zeigt Dir das System die Felder und die entsprechenden Werte an.

Die Zeilen mit BDC_CURSOR vergiss einfach.

Du musst übrigens nicht alle Bildschirme durchlaufen, wenn Du das Feld Prtnerrollen anklickst kannst Du direkt in den entsprechenden Bildschirm springen.

Viel Spaß beim Probieren ;-))


INAB

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von inab (ForumUser / 69 / 0 / 6 ) »
HAllo SAPlerin,

was mir gerade noch auffällt...

Du besetzt das Feld LIFNR garnicht, die Zeilen dafür hast Du ausgesternt :

* PERFORM bdc_field USING 'RF02K-LIFNR'
* pt_knvk-lifnr.

Kommentiere die Zeilen wo der CURSOR ( BDC_CURSOR ) gesetzt wird aus, die brauchst Du hier normalerweise nicht.


Gruss

INAB

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hello,
Super - danke!!
... - werd' das mal so probieren :-)

lG

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hello,
Danke f. deine Hilfe!

ach herrje :roll: , ich habe schon langsam die Befürchtung, dass das ohnedies, so wie ich es mir vorstelle, nicht gehen wird :cry: .... - weil ich glaube ich habe mir das Ganze zu einfach vorgestellt und mit Batch Input geht das gar nicht, so wie ich es haben will...
- das Ganze ist nämlich in einem Funktionsbaustein, und es soll nichts Anderes machen , außer die Daten (die ich in d. Fkt.baustein eingebe) gleich direkt in d. 0380er-Dynpro (in d. Maske d. Ansprechpartner) reinschreiben!! (und ich befürchte das geht mit BI net so !? :-S )

- ich habe meinen Code nun dementsprechend angepasst:

Code: Alles auswählen.

FORM zzaddresscontpart_create1
    TABLES pt_knvk            STRUCTURE knvk
                pt_return          STRUCTURE bapiret2
    USING  ps_rf02k           TYPE rf02k
               ps_wrf02k          TYPE wrf02k.

  DATA : it_bdcdata    LIKE bdcdata OCCURS 0 WITH HEADER LINE,
         it_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.

  LOOP AT pt_knvk.
    REFRESH it_bdcdata.
    PERFORM bdc_dynpro      USING 'SAPMF02K' '0101'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'RF02K-LIFNR'
                                  ps_rf02k-lifnr.
    PERFORM bdc_field       USING 'RF02K-EKORG'
                                  ps_rf02k-ekorg.
    PERFORM bdc_field       USING 'WRF02K-D0380'
                                  ps_wrf02k-d0380.

    PERFORM bdc_dynpro      USING 'SAPMF02K' '0380'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'KNVK-ANRED'
                                  pt_knvk-anred.
    PERFORM bdc_field       USING 'KNVK-NAMEV'
                                  pt_knvk-namev.
    PERFORM bdc_field       USING 'KNVK-NAME1'
                                  pt_knvk-name1.
    PERFORM bdc_field       USING 'KNVK-TELF1'
                                  pt_knvk-telf1.
    PERFORM bdc_field       USING 'KNVK-ABTNR'
                                  pt_knvk-abtnr.
    PERFORM bdc_field       USING 'KNVK-PAFKT'
                                  pt_knvk-pafkt.

    CALL TRANSACTION 'XK02' USING it_bdcdata
                         MESSAGES INTO it_bdcmsgcoll.

  ENDLOOP.

ENDFORM.
--> Und zwar kommt das Ganze aus einem Fkt.baustein (deswegen ps_ (z.B. ps_rf02k-lifnr. etc.... ) , da ich aus einem Fkt.baustein in mein perform springe... ) , der im Grunde genommen nichts anderes macht, als nur das eine perform aufzurufen:

Code: Alles auswählen.

FUNCTION ZZADDRESSCONTPART_CREATE.
  perform zzaddresscontpart_create1 tables t_knvk
                                    t_customer_fields
                                    t_customer_field
                                    t_idocctrl
                                    t_return
                             using  i_rf02k
                                    i_wrf02k.
ENDFUNCTION.
könnte man das anders auch noch - statt BI - lösen?? :-/
eben z.B. über einen BAPI, der mir , sobald ich die Daten über den Fkt.baustein eingebe, das dann auch in das 0380er-Dynpro der Ansprechpartner schreibt?? :roll:
(einen dementsprechenden Standard-BAPI gibt es dafür leider nämlich lt. meiner bisherigen Recherche nicht :-( )

Danke!!
lg

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hallo SAPlerin,

ohne mich jetzt direkt mit Ansprechpartnern für Kreditoren auszukennen. Für Debitoren gibt es ja sowas auch. Und bei Debitoren gibt es eine eigene Transaktion mit der man Ansprechpartner anlegen kann.
Ich habe mal kurz in das Programm für Kreditorenanlage reingeschaut und diese ist da sehr analog zur Debitorenanlage. Vielleicht könntest du also via Batch Input die Transaktion MAP1 anstatt der XK02 befüllen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von inab (ForumUser / 69 / 0 / 6 ) »
HAllo SAPlerin,


soweit, so gut!

Nur musst Du wenn Du einen neuen PArtner anlegen willst das richtige Feld finden.

BEi mir sieht die Aufzeichnung z.B. so aus
BI.jpg
Die Werte in den Klammern bezeichnen die ZEile in der Parnerttabelle in die Du schreiben möchstest.

HAbe auch schonmal kurz nach einem BAPI geschaut aber nichts gefunden :cry:

LG

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hello Stefan,
Hallo inab,

Super - danke für eure Antworten/Hilfe!

... jo, @inab - befürchte auch, dass ich mir das mit einem Standard-BAPI abschminken kann... :-(

thx,
lG

Re: über Batch Input Ansprechpartner zu Lieferanten anlegen

Beitrag von SAPlerin (ForumUser / 29 / 4 / 0 ) »
Hello,
sodala, hab' das für meinen Fall dementsprechend angepasst ;-) ,
es funkt. zwar, jedoch - nichts desto trotz, ist es um genau zu sein nicht das was ich haben möchte :roll:
Drum hab' ich dann auch gemeint, dass ich das vermutlich mit BI doch nicht realisieren kann und ein BAPI dafür prima wäre :-(

Weil - die Frage die ich mir stelle ist: Wenn ich schon vorhin in d. Fkt.baustein (direkt über d. se37, siehe screenshot) die Testdaten eingebe, dann sollte das auch direkt in die xk02 übernommen werden ( die Daten (die ich in d. Fkt.baustein eingebe) gleich direkt in d. 0380er-Dynpro (in d. Maske d. Ansprechpartner) reinschreiben ) ,
jedoch muss ich das in dem Fall, so wie ich es bis jetzt habe über BI , dann nochmals ausfüllen.

:-( hmm
muss ich mir wohl leider noch was Anderes zur Lösung dieses Problems überlegen, weil einen BAPI gibt es wohl nicht,
und über BI erfüllt es nicht den Sinn und Zweck, so wie es sein sollte, bzw. das ist nicht das was ich haben will.
...
Event. gibt es weitere Alternativlösungen?? (bis auf BI und BAPI)

Danke!!
lg

Seite 1 von 1

Vergleichbare Themen

6
Antw.
2670
Views
Objekte per Batch-Input anlegen?
von gs3rr4 » 31.05.2016 14:28 • Verfasst in ABAP® für Anfänger
3
Antw.
3076
Views
Batch-Input: Kunde anlegen / ändern
von 4sunshine » 19.11.2007 12:33 • Verfasst in ABAP® für Anfänger
13
Antw.
8234
Views
Bestellung über Batch Input anlegen ME21
von Fritzi_SAP » 01.06.2012 10:41 • Verfasst in ABAP® Core
8
Antw.
15530
Views
Ansprechpartner zum Debitor anlegen
von ralf.wenzel » 12.07.2011 10:54 • Verfasst in ABAP® Core
2
Antw.
1662
Views
Batch input
von BMWi801 » 24.03.2018 11:16 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140