Preiskatalog auf Kundenbasis

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

Preiskatalog auf Kundenbasis

Beitrag von vodair (ForumUser / 2 / 0 / 0 ) »
Hallo!

Ich versuche momentan einen Preiskatalog unter berücksichtigung aller Rabatte sowie der Nettopreise zu erstellen. Geplant ist, dass ich einen Kunden und ein Datum als Parameter übergebe und ich als Rückgabewert eine Liste aller aktuell gültigen Preise bekomme, welche ich dann exportieren kann und an die Kunden weitergebe.
Gibt es für dieses Vorhaben einen Funktionsbaustein den ich benutzen kann?
Ich habe mich die letzen Tage in das Thema eingearbeitet und schon einige Funktionsbausteine getestet, bin aber bisher zu keinem Ergebnis gekommen.

Ueber eine kleine Hilfestellung würde ich mich sehr freuen!

Schoene Gruesse!

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


Beitrag von Matthias_L. (Specialist / 226 / 0 / 0 ) »
Hallo !

Eine Idee, vielleicht nicht die beste, wäre:
- die betroffenen Materialien vorher selektieren
- den FuBa "SD_SALESDOCUMENT_CREATE" mit dem Parameter "testrun = X", Partnern, Positionen und Einteilungen (das müsstest du vorher "aufbauen") aufrufen
- du simulierst dann quasi die Anlage eines Auftrags und bekommst den aktuellen Verkaufspreis zurück => da du ja den Auftraggeber mitgibst, würden auch Rabatte etc. beachtet
- ich habe den Fuba mal gebraucht und da habe ich den pro Material aufgerufen und der Verkaufspreis kam "headerout" zurück => hier mal ein Teil meines Codings als Beispiel:

Code: Alles auswählen.

* Variablen und Strukturen
DATA:  headerin  TYPE bapisdhd1,
       headerout TYPE bapisdhd,
       itemsin   TYPE TABLE OF bapisditm WITH HEADER LINE,
       partner   TYPE TABLE OF bapiparnr WITH HEADER LINE,
       schedin   TYPE TABLE OF bapischdl WITH HEADER LINE.

DATA: zsd_preisfindung TYPE zsd_preisfindung.


*Parameter für Selektionsbild, können von externen Aufruf gefüllt werden
PARAMETERS:  p_auart  TYPE  bapisdhd1-doc_type,
             p_vkorg  TYPE  bapisdhd1-sales_org,
             p_vtweg  TYPE  bapisdhd1-distr_chan,
             p_spart  TYPE  bapisdhd1-division,
             p_pdate  TYPE  bapisdhd1-price_date,

             p_prolle TYPE bapiparnr-partn_role,
             p_partn  TYPE bapiparnr-partn_numb,

             p_matnr  TYPE bapisditm-material,
             p_menge  TYPE bapisditm-target_qty,
             p_eidat  TYPE bapischdl-req_date.

START-OF-SELECTION.
* Füllen der Daten für Aufruf des Funktionsbausteins *********
* Kopfdaten füllen
  headerin-doc_type = p_auart.
  headerin-sales_org = p_vkorg.
  headerin-distr_chan = p_vtweg.
  headerin-division = p_spart.
  headerin-price_date = p_pdate.

*Partner füllen + Auftraggeber
  partner-partn_role = p_prolle.
  partner-partn_numb = p_partn.
  APPEND partner.

*Positionsdaten füllen
  itemsin-material = p_matnr.
  itemsin-target_qty = p_menge.
  APPEND itemsin.

*Einteilungen füllen
  schedin-req_date = p_eidat.
  schedin-req_qty = p_menge.
  APPEND schedin.


* Auftrag anlegen anhand, jedoch nur im Testlauf
  CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
       EXPORTING
*           SALESDOCUMENT           =
            sales_header_in        =  headerin
*           SALES_HEADER_INX        =
*           SENDER                  =
*           BINARY_RELATIONSHIPTYPE = ' '
*           INT_NUMBER_ASSIGNMENT   = ' '
*           BEHAVE_WHEN_ERROR       = ' '
*           LOGIC_SWITCH            = switch
*           BUSINESS_OBJECT         = ' '
            testrun                 = 'X'
*           CONVERT_PARVW_AUART     = ' '
*           STATUS_BUFFER_REFRESH   = ' '
      IMPORTING
*           SALESDOCUMENT_EX        =
            sales_header_out        = headerout
      TABLES
            return                  = zsd_preisfindung-bapiret2_t[]
            sales_items_in          = itemsin[]
*           SALES_ITEMS_INX         =
            sales_partners          = partner[]
            sales_schedules_in      = schedin[]
*           SALES_SCHEDULES_INX     =
*           SALES_CONDITIONS_IN     =
*           SALES_CFGS_REF          =
*           SALES_CFGS_INST         =
*           SALES_CFGS_PART_OF      =
*           SALES_CFGS_VALUE        =
*           SALES_CFGS_BLOB         =
*           SALES_CFGS_VK           =
*           SALES_CFGS_REFINST      =
*           SALES_CCARD             =
*           SALES_TEXT              =
*           SALES_KEYS              =
*           SALES_CONTRACT_IN       =
*           SALES_CONTRACT_INX      =
*           EXTENSIONIN             =
*           PARTNERADDRESSES        =
*           SALES_SCHED_CONF_IN     =
*           ITEMS_EX                =
*           SCHEDULE_EX             =
*           BUSINESS_EX             =
*           INCOMPLETE_LOG          =
*           EXTENSIONEX             =
*           CONDITIONS_EX           =
*           BATCH_CHARC             =
            .

* Preis, Währung und Stückpreis wegschreiben
  MOVE-CORRESPONDING headerout TO zsd_preisfindung.
  zsd_preisfindung-net_val_hd_st =
                             zsd_preisfindung-net_val_hd / p_menge.

Könnte von der Laufzeit her recht umfangreich sein, aber vielleicht bringts dir was.

Matthias

Seite 1 von 1

Über diesen Beitrag


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

Aktuelle Forenbeiträge

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 423
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1062
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46737
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4625

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

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 423
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1062
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46737
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4625