Aufruf von BAPI_SALESORDER_SIMULATE


SAP R/3 Vertrieb: Auftragsverwaltung, Versand und Transport, Fakturierung, Kreditmanagement, Außenhandel/Zoll...

Moderatoren: Jan, Steff

Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon Trulchen » 23.11.2016, 08:39

Hallo zusammen,

ich will den FUBA BAPI_SALESORDER_SIMULATE nutzen um eine "Preisliste" zum Kunden zu bekommen.
Jetzt habe ich diesen auch befüllt und meiner Meinung auch korrekt :roll:
Aber er gibt mir andere Preise aus wie wenn ich den "identischen" Auftrag in der VA01 anlege.

Code: Alles auswählen
**********************************************************************
***  Partnerrollen zum Kunden ermitteln                           ****
**********************************************************************
  SELECT PARVW as  partn_role KUNN2 as partn_numb  FROM KNVP
  into CORRESPONDING FIELDS OF TABLE et_partner
  WHERE KUNNR = IV_KUNDE.


************************************************************************
*** Listet die gelisteten Materialen zum Kunden  mit Gültig Datum   ****
*** Wird ein spezielles Material benötigt wird dieses über den      ****
*** Parameter IV_Material mitgegeben                                ****
*** Sollen alle Materialen überprüft werden bleibt dieser           ****
*** Parameter leer                                                  ****
************************************************************************
  CALL FUNCTION 'ZD_SD_GET_LISTING_MATERIAL'
    EXPORTING
      IV_VKORG         = IV_VKORG
      IV_VTWEG         = IV_VTWEG
      IV_SPART         = IV_SPART
      IV_KUNNR         = IV_KUNDE
      IT_PARTNER       = lt_partner
      IV_GUELTIG_DATUM = IV_PREIS_DATUM
      IT_MATERIAL      = IT_MATERIAL
      IT_HIERACHIE     = IT_HIERACHIE
    IMPORTING
      ET_MATERIAL      = lt_material.

**********************************************************************
***  Füllt die ITEMS Tabelle für den BAPI                        ****
**********************************************************************
  "Erste Position.
  IF lt_material is NOT INITIAL.
    lv_item_number = '0010'.
    LOOP AT lt_material INTO ls_material.
      ls_items-STORE_LOC = ls_material-lgort.
      ls_items-ITM_NUMBER = lv_ITEM_NUMBER.
      ls_items-material   = ls_material-MATNR.
      ls_items-plant      = IV_WERK.
      ls_items-target_qty = '1'.
      ls_items-target_qu  = ls_material-target_qu.
      lv_ITEM_NUMBER = lv_ITEM_NUMBER + 10.
      APPEND ls_items TO lt_items.
      clear ls_items.
    ENDLOOP.

**********************************************************************
***  Füllt der HEADER Struktur für den BABI                       ****
**********************************************************************
    ls_header-doc_type   = 'ZTA'.
    ls_header-sales_org  = IV_VKORG.
    ls_header-distr_chan = iv_vtweg.
    ls_header-division   = iv_spart.
    ls_header-REQ_DATE_H = IV_PREIS_DATUM.

**********************************************************************
***  Simuliert einen Auftrag um die Konditionen zu ermitteln      ****
**********************************************************************
    CALL FUNCTION 'BAPI_SALESORDER_SIMULATE'
      EXPORTING
        order_header_in    = ls_header
      TABLES
        order_items_in     = lt_items
        order_partners     = ET_partner
        order_items_out    = ET_ITEMS_OUT
        ORDER_CONDITION_EX = lt_CONDITION
        messagetable       = ET_RETURN.

    IF IV_KSCHL is NOT INITIAL.
      LOOP AT lt_condition into ls_condition WHERE COND_TYPE <> IV_KSCHL.
        "DELETE lt_condition from ls_condition.
        CLEAR ls_condition.
        MODIFY lt_condition from ls_condition.
      ENDLOOP.

      APPEND LINES OF lt_condition to et_condition.

    ELSE.
      IF lt_condition is not INITIAL.
        APPEND LINES OF lt_condition to et_condition.
      else.
        write: 'Keine Konditionen gefunden'.
      endif.
    ENDIF.


Fakt ist er findet mit dem FUBA nur einen Preis auf Ebene VKORG/MATNR. Die VA01 findet aber zuvor einen Preis auf VKORG/KUNNHR/MATNR.
Wisst ihr zufällig entweder wo in dem BAPI ich irgendwo die "richtige" Kondiionsfindung debuggen kann ? Oder ob ich einen Fehler gemacht habe bezüglich des befüllen.
Trulchen
Specialist
 
Beiträge: 238
Registriert: 03.09.2012, 14:45
Dank erhalten: 1 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon Trulchen » 01.12.2016, 09:08

Hat keiner einen Tipp ?
Trulchen
Specialist
 
Beiträge: 238
Registriert: 03.09.2012, 14:45
Dank erhalten: 1 mal
Ich bin: Student/in

Re: Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon black_adept » 01.12.2016, 12:03

Gibts du denn auch den Kunden in deinr Tabelle "ET_PARTNER" mit, damit der FuBa weiß für welchen Kunden er die anderen Kondition finden soll. "ET" hört sich irgendwie danach an als ob du das als Ausgabetabelle statt als Eingabetabelle siehst.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2710
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 388 mal
Ich bin: Freiberufler/in

Re: Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon Trulchen » 01.12.2016, 13:01

Hallo,

ja die ermittel ich:

Aber nur die AG, RG, WE und RE

Die Hierachie muss ich ja hier nicht mitgeben oder?

Code: Alles auswählen
**********************************************************************
***  Partnerrollen zum Kunden ermitteln                           ****
**********************************************************************
  SELECT PARVW AS  partn_role KUNN2 AS partn_numb  FROM KNVP
  INTO CORRESPONDING FIELDS OF TABLE et_partner
  WHERE KUNNR = IV_KUNDE.
 



Vielleicht ist die "benammung" nicht ganz passend...
Trulchen
Specialist
 
Beiträge: 238
Registriert: 03.09.2012, 14:45
Dank erhalten: 1 mal
Ich bin: Student/in

Re: Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon JHM » 01.12.2016, 16:31

Trulchen hat geschrieben:ja die ermittel ich:

Aber nur die AG, RG, WE und RE

Die Hierachie muss ich ja hier nicht mitgeben oder?


Ich verwende den gleichen FuBa für den gleichen Zweck, aber geben nur den AG mit, fehlende Partner werden dann im Standard ermittelt.

Weitere Unterschied:
Code: Alles auswählen
ls_header-purch_date = sy-datum.
ls_header-price_date = sy-datum.

* create lines
  LOOP AT pt_materials ASSIGNING <ls_materials>.
    ADD lv_incpo TO ls_order_items_in-itm_number.
    ls_order_items_in-material = <ls_materials>-matnr.
    ls_order_items_in-req_qty = 1.
    APPEND ls_order_items_in TO lt_order_items_in.
  ENDLOOP.
 


Funktioniert hier so auch für Hierarchien.

Setz einen BREAKPOINT im FuBa PRICING. Das ist eigentlich die zentrale Stelle wenn du die Preisfindung debuggen willst.
Gruß Hendrik
JHM
Top Expert
 
Beiträge: 1124
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 177 mal

Re: Aufruf von BAPI_SALESORDER_SIMULATE

Beitragvon Trulchen » 05.12.2016, 14:55

Hallo,

ein Fehler hab ich schon gefunden bei den Staffeln löscht er mir die Konditonen...

Tatsächlich ist der Funktionsbaustein "Pricing" schuld bzw. in einem Perform
Code: Alles auswählen
ENHANCEMENT-POINT PRICING_15 SPOTS ES_SAPLV61A.
    perform xkomv_bewerten.
  endif.
 

Wird die Kondiiton grad gelöscht bzw. überschrieben.

Hab dazu den ´Hinweis: https://launchpad.support.sap.com/#/notes/900089/D gefunden.
Aber so wirklich schlau werd ich nicht.
Vorallem warum er sich anderes verhält als beim normalen Anlegen eines Kundenauftrags.
Nur ich weiß noch nicht ob ich das durch irgend ein Import Parameter verhindern kann...

Könnt ihr mir hier helfen?
Trulchen
Specialist
 
Beiträge: 238
Registriert: 03.09.2012, 14:45
Dank erhalten: 1 mal
Ich bin: Student/in


Zurück zu Sales and Distribution

  Aktuelle Beiträge   
gelöst Protokoll vergangener RFC Aufrufe
vor 16 Stunden von Dele 3 Antw.
BREAK-POINT-IDs verwenden
vor 15 Stunden von ralf.wenzel 2 Antw.
MEREQ001 Zusatzfelder ausblenden
vor 3 Tagen von SAP4Echo 0 Antw.
gelöst Z Tabelle Key Feld ändern
vor 3 Tagen von DeathAndPain 3 Antw.
gelöst Funktionsbaustein EXIT_SAPLCORF_404 in Transaktion COR6N
vor 20 Stunden von SAP_ENTWICKLER 2 Antw.

  Ähnliche Beiträge beta
Fuba Pricing bsp aufruf ohne Beleg VK11 PR00
03.01.2017, 15:52 von foxtrot 16 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!