Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

SAP R/3 Vertrieb: Auftragsverwaltung, Versand und Transport, Fakturierung, Kreditmanagement, Außenhandel/Zoll...
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von Luigi91 (ForumUser / 26 / 3 / 0 ) »
Hallo Experten,
ich muss für Materialien die Preise auslesen.
Allerdings ohne Belegsbezug. Quasi den Inhalt der VK13 auslesen.

Jetzt bräuchte ich am besten ein Bsp wie ich den Funktionsbaustein PRICING in diesem Fall aufrufe.
Oder gibt es hierfür vllt noch einen geeigneteren Funktionsbaustein?

Danke,
Luis

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


Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin Luis.
Einen Baustein direkt habe ich nicht, aber das Rezept zur Ermittelung des aktuellen PR00 für ein Material.
Du schaust in der VK13 / Kondition PR00 / Information zu irgend einem Material nach, welche Konditionsindextabellen verwendet werden.
In diesem Fall Tabelle A004. Alle Konditions-Index-Tabellen beginnen mit A.
000.png
Du selektierst für das Material (e.g.16) im gültigen Zeitraum den Eintrag aus der Tabelle e.g. A004.
Dann nimmst Du den Wert im Feld A004-KNUMH und selektierst den Eintrag in der Tabelle KONP
001.png
Ich will nicht verschweigen, dass es mehrere Konditionen zu einem Material geben kann, deshalb ist das Datum wichtig und zu beachten.
Es kann auch mehrere Konditions-Index-Tabellen geben. (z.B. Land/Kunde). Diese Tabellen kann man customizen. (Könnte der Grund sein, dass ich keine Bausteine gefunden habe)
Sollte es mehr als eine Konditions-Index-Tabelle geben, muß man sich an der Hierachie orientieren. Man kann sich am Besten einen/mehrere Join(s) dafür "schnitzen". :wink:
(Zur Kontrolle kann man sich ja mal im Testsystem ein Angebot anlegen.)
lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von Syntaxfehler (ForumUser / 6 / 0 / 0 ) »
Hallo,

du kannst auf zunächst die Zugriffsfolgen für den PR00 in der T682i lesesn. Dort hast du die beteiligten A-Tabellen mit dem passendne Flag für das Exklusivkennzeichen etc. stehen. Damit solltest du dann alle relevanten Konditionen über einen dynamischen Select abgreifen können.

Grüße syntaxfehler

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Syntaxfehler hat geschrieben:Damit solltest du dann alle relevanten Konditionen über einen dynamischen Select abgreifen können.
Wenn man alle Daten für den Select hat.
Wenn man "nur" die Materialnummer in der Hand hat, kann das zu wenig sein um einen Preis zu ermitteln.
Ist aber die Frage, wie genau die Konditonen für PR00 angelegt werden bzw. welche Konditionstabellen dahinter stecken.

Ich betreue z.B. ein System/Kunde bei dem kann ein Material direkt einen Preis haben,
hat es keinen direkten Preis, wird der Preis über das Preismaterial ermittelt.
Für die Preismaterialermittlung brauch ich aber die VKORG und habe somit schon n-Preise (bzw. für verschiedene Absatzmärkte verschiedene (List-)Preise).

Von den ganzen kunden- oder kundenhierarchieabhängingen Preisen reden wir da noch garnicht.....
Gruß Hendrik

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo Luis,
Momentan und die nächsten Tage ohne Systemzugriff daher nur ein etwas schwammiger Hinweis:
Es gibt einen BAPI "BAPI*SIMULATE". Wahrscheinlich BAPI_PRICING_SIMULATE oder BAPI_SALESORDER_SIMULATE
Der ist zwar nicht sonderlich schnell- dafür berücksichtigt er halt alles was so im Konditionsschema hinterlegt wurde
Und in den Rückgabeparametern finden sich u.A. eben auch die gefundenen Konditionen wenn du es aufdröseln musst bzw der Netto- oder Bruttopreis
Musst dir aber einen "typischen" Kunden ohne Sonderkonditionen suchen oder anlegen lassen
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
Hallo alle!

Ich wiederbelebe dieses Thema einmal... ich hab nämlich ein ganz ähnliches Problem: ich muss ohne Beleg bestimmte Konditionen ermitteln - gemäß Zugriffsfolge. Ich habe eine Kunden- und eine Materialnummer (weitere Schlüsselfelder, wie Preisliste oder so, kann ich daraus natürlich noch ermitteln), und anhand derer soll ich die aktuell gültige Kondition ermitteln. Belegsimulation geht nicht, weil es auch um Reparaturkonditionen geht, die ja erst in verschiedenen Unterpositionen auftauchen. Ideal fände ich, wenn ich das Durchlaufen der Zugriffsfolge simulieren könnte.

Ich hab selbst schon nach Bausteinen gesucht, aber bei denen, die halbwegs brauchbar aussehen, hab ich nicht geschafft, die Parameter beim Test so zu befüllen, dass auch was rausgekommen wäre.

Weiß jemand etwas brauchbares?
Vielen Dank schon einmal im Voraus!

lg, Wolfgang

Coding für Aufruf FuBa PRICING ohne Beleg

Beitrag von solidforms (ForumUser / 5 / 0 / 0 ) »
Es kommt öfters vor, dass sich Kunden im Web-Portal anmelden, um dort Preis und Verfügbarkeit eines Materials zu erfragen. Das ist z.B. dann der Fall, wenn ein Hersteller seine Händler beliefert.
Dann kommt man nicht umhin, in einer Schnittstelle von SAP zum Web-Portal den Preis via PRICING zu ermitteln und ihn dann an das Portal zu übergeben. Nachfolgend ein Coding-Beipiel.

Code: Alles auswählen.

FUNCTION z_calculate_price .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IV_KUNNR) TYPE  KUNNR DEFAULT '100000'
*"     VALUE(IV_VKORG) TYPE  VKORG DEFAULT '1100'
*"     VALUE(IV_VTWEG) TYPE  VTWEG DEFAULT '10'
*"     VALUE(IV_SPART) TYPE  SPART DEFAULT '10'
*"     VALUE(IV_WERKS) TYPE  WERKS_D DEFAULT '1110'
*"     VALUE(IV_WAERS) TYPE  WAERS DEFAULT 'EUR'
*"     VALUE(IT_ITEM_IN) TYPE  ZITEM01_T OPTIONAL
*"  EXPORTING
*"     VALUE(IT_ITEM_OUT) TYPE  ZITEM02_T
*"  EXCEPTIONS
*"      VKORG_NOT_FOUND
*"      BUKRS_NOT_FOUND
*"      WERKS_NOT_FOUND
*"      KNA1_NOT_FOUND
*"      KNVV_NOT_FOUND
*"----------------------------------------------------------------------

* Deklarationen ------------------------------------------------------- *
  DATA: ls_item_in         TYPE zitem01_s,
        ls_item_out        TYPE zitem02_s,
        ls_t001            TYPE ty_t001,
        ls_tvko            TYPE ty_tvko,
        ls_t001w           TYPE ty_t001w,
        ls_kna1            TYPE ty_kna1,
        ls_knvv            TYPE ty_knvv.

  REFRESH: it_item_out.
* TVKO lesen ---------------------------------------------------------- *
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_tvko
         FROM tvko
         WHERE vkorg = iv_vkorg.
  IF sy-subrc NE 0.
    RAISE vkorg_not_found.
    EXIT.
  ENDIF.
* T001 lesen ---------------------------------------------------------- *
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_t001
         FROM t001
         WHERE bukrs = ls_tvko-bukrs.
  IF sy-subrc NE 0.
    RAISE bukrs_not_found.
    EXIT.
  ENDIF.
* T001W lesen --------------------------------------------------------- *
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_t001w
         FROM t001w
         WHERE werks = iv_werks.
  IF sy-subrc NE 0.
    RAISE werks_not_found.
    EXIT.
  ENDIF.
* KNA1 lesen ---------------------------------------------------------- *
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_kna1
         FROM kna1
         WHERE kunnr = iv_kunnr.
  IF sy-subrc NE 0.
    RAISE kna1_not_found.
    EXIT.
  ENDIF.
* KNVV lesen ---------------------------------------------------------- *
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_knvv
         FROM knvv
         WHERE kunnr = iv_kunnr
         AND   vkorg = iv_vkorg
         AND   vtweg = iv_vtweg
         AND   spart = iv_spart.
  IF sy-subrc NE 0.
    RAISE knvv_not_found.
    EXIT.
  ENDIF.

  LOOP AT it_item_in INTO ls_item_in.
      PERFORM calculate_price USING       ls_item_in
                                          ls_t001
                                          ls_tvko
                                          ls_t001w
                                          ls_kna1
                                          ls_knvv
                                          iv_waers
                              CHANGING    ls_item_out.

    APPEND ls_item_out TO it_item_out.
  ENDLOOP.

ENDFUNCTION.

*----------------------------------------------------------------------*
***INCLUDE LZCALCULATE_PRICEF01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  CALCULATE_PRICE
*&---------------------------------------------------------------------*

FORM calculate_price  USING    ps_item_in  TYPE zitem01_s
                               ps_t001     TYPE ty_t001
                               ps_tvko     TYPE ty_tvko
                               ps_t001w    TYPE ty_t001w
                               ps_kna1     TYPE ty_kna1
                               ps_knvv     TYPE ty_knvv
                               pv_waers    TYPE waers
                      CHANGING ps_item_out TYPE zitem02_s.

* Deklarationen ------------------------------------------------------ *
  DATA: lv_spras      TYPE spras,
        lv_bwkey      TYPE mbew-bwkey.
  DATA: ls_komk_i     TYPE komk,
        ls_komp_i     TYPE komp.
  DATA: ls_komk_e     TYPE komk,
        ls_komp_e     TYPE komp,
        ls_mara       TYPE ty_mara,
        ls_mvke       TYPE ty_mvke,
        ls_mbew       TYPE ty_mbew,
        ls_vbpa       TYPE vbpavb,
        ls_mtcom      TYPE mtcom,
        ls_maapv      TYPE maapv,
        lv_vtext      TYPE bezei20,
        lv_vbeln      TYPE vbeln,
        lv_kontr      TYPE boole_d.
  DATA: lt_komv       TYPE TABLE OF komv,
        lt_tkomvd     TYPE TABLE OF komvd,
        lt_vbpa       TYPE TABLE OF vbpavb,
        lv_pltyp      TYPE knvv-pltyp,
        lv_matnr      TYPE matnr,
        lv_kunnr_za   TYPE kunnr.

* Initialisieren ----------------------------------------------------- *
  ps_item_out-errormsg = ''.
  ps_item_out-errorcode = 0.

* Materialview lesen ------------------------------------------------- *
  ls_mtcom-kenng = 'MAAPV'.
  ls_mtcom-matnr = ps_item_in-matnr.
  ls_mtcom-vkorg = ps_knvv-vkorg.
  ls_mtcom-vtweg = ps_knvv-vtweg.
  ls_mtcom-spras = sy-langu.
  ls_mtcom-maxtz = 100.

  CALL FUNCTION 'MATERIAL_READ'
    EXPORTING
      schluessel = ls_mtcom
    IMPORTING
      matdaten   = ls_maapv
*     RETURN     =
*     MATPER     =
    EXCEPTIONS
      OTHERS     = 25.
  IF sy-subrc <> 0.
    ps_item_out-errorcode = 200.
    CONCATENATE 'material not found: ' ls_mtcom-matnr INTO ps_item_out-errormsg.
  ENDIF.

* Kundenhierarchie lesen --------------------------------------------- *
  CALL FUNCTION 'SD_CUSTOMER_HIERARCHY_PATH'
    EXPORTING
      customer        = ps_kna1-kunnr
      date            = sy-datum
      htype           = 'Z'
      sales_channel   = ps_knvv-vtweg
      sales_division  = ps_knvv-spart
      sales_org       = ps_knvv-vkorg
    TABLES
      hpath           = lt_vbpa
    EXCEPTIONS
      hityp_not_exist = 1
      node_not_exist  = 2
      parvw_not_exist = 3
      OTHERS          = 4.
  IF sy-subrc <> 0 AND sy-subrc <> 2.
    ps_item_out-errorcode = 300 + sy-subrc.
    CASE sy-subrc.
      WHEN 1.
        ps_item_out-errormsg = 'Hityp not found: Z'.
      WHEN 3.
        ps_item_out-errormsg = 'Parvw not found.'.
    ENDCASE.
  ENDIF.

* Preisliste ggfs. aus Partner ZA ermitteln -------------------------- *
  READ TABLE lt_vbpa INTO ls_vbpa WITH KEY posnr = '000000'
                                           parvw = 'ZA'.
  IF sy-subrc = 0.
    lv_kunnr_za = ls_vbpa-kunnr.
    SELECT SINGLE pltyp INTO lv_pltyp
           FROM knvv
           WHERE kunnr = lv_kunnr_za
           AND   vkorg = ps_knvv-vkorg
           AND   vtweg = ps_knvv-vtweg
           AND   spart = ps_knvv-spart.
    SELECT SINGLE matnr INTO lv_matnr
          FROM a953
          WHERE kappl = 'V'
          AND ( kschl = 'ZPRF'
            OR  kschl = 'ZPR0' )
          AND   pltyp = lv_pltyp
          AND   matnr = ps_item_in-matnr
          AND   kfrst = space
          AND   datbi >= sy-datum.
    IF NOT lv_pltyp IS INITIAL AND
       NOT lv_matnr IS INITIAL.
    ELSE.
      CLEAR lv_pltyp.
    ENDIF.
  ELSE.
    lv_pltyp = ps_knvv-pltyp.
  ENDIF.

* Materialgruppentext ermitteln (T178T) ------------------------------ *
  SELECT SINGLE vtext INTO lv_vtext
    FROM T178T
    WHERE spras = ps_item_in-spras
    AND kondm = ls_maapv-kondm.

* Kontrakte suchen (VAPMA) ------------------------------------------- *
  CLEAR lv_vbeln.
  SELECT SINGLE vbeln INTO lv_vbeln
    FROM VAPMA
    WHERE matnr = ps_item_in-matnr
    AND   vkorg = ps_knvv-vkorg
    AND   trvog = '4'
    AND   vtweg = ps_knvv-vtweg
    AND   spart = ps_knvv-spart
    AND   auart = 'ZKM'
    AND   kunnr = ps_kna1-kunnr
    AND   datab <= sy-datum
    AND   datbi >= sy-datum.
  IF lv_vbeln IS INITIAL.
    lv_kontr = ' '.
  ELSE.
    lv_kontr = 'X'.
  ENDIF.

* KOMK füllen -------------------------------------------------------- *
  ls_komk_i-vkorg     = ps_knvv-vkorg.
  ls_komk_i-vtweg     = ps_knvv-vtweg.
  ls_komk_i-spart     = ps_knvv-spart.
  ls_komk_i-vkbur     = ps_knvv-vkbur.
  ls_komk_i-wkreg     = ps_t001w-regio.
  ls_komk_i-zterm     = ps_knvv-zterm.
  ls_komk_i-vsbed     = ps_knvv-vsbed.
  ls_komk_i-pltyp     = lv_pltyp.
  ls_komk_i-aland     = ps_t001-land1.
  ls_komk_i-bukrs     = ps_t001-bukrs.
  ls_komk_i-hwaer     = ps_t001-waers.
  ls_komk_i-waerk     = pv_waers.
  ls_komk_i-kunnr     = ps_kna1-kunnr.
  ls_komk_i-knrze     = ps_kna1-kunnr.
  ls_komk_i-kunre     = ps_kna1-kunnr.
  ls_komk_i-kunwe     = ps_kna1-kunnr.
  ls_komk_i-kappl     = 'V'.
  ls_komk_i-kalsm     = 'ZBAA02'.
  ls_komk_i-prsdt     = sy-datum.
  ls_komk_i-fkdat     = sy-datum.
  ls_komk_i-fbuda     = sy-datum.
  ls_komk_i-audat     = sy-datum.
  ls_komk_i-erdat     = sy-datum.
  ls_komk_i-land1     = ps_kna1-land1.
  ls_komk_i-taxk1     = '1'.
  ls_komk_i-land1_we  = ps_kna1-land1.
  ls_komk_i-aland_werk = ps_t001w-land1.
  ls_komk_i-auart     = 'ZES'.
  ls_komk_i-vbtyp     = 'C'.
  ls_komk_i-vkorgau   = ps_knvv-vkorg.
  ls_komk_i-auart_sd  = 'ZES'.
  ls_komk_i-trtyp     = 'H'.
  ls_komk_i-werks     = ps_t001w-werks.
*  ls_komk_i-vsbed     = '01'.
  ls_komk_i-ix_komk   = 1.
  LOOP AT lt_vbpa INTO ls_vbpa WHERE prfre   = 'X'
                               AND   histunr GT 0
                               AND   posnr   = '000000'.
    CASE ls_vbpa-histunr.
      WHEN '01'.
        ls_komk_i-hienr01 = ls_vbpa-kunnr.
      WHEN '02'.
        ls_komk_i-hienr02 = ls_vbpa-kunnr.
      WHEN '03'.
        ls_komk_i-hienr03 = ls_vbpa-kunnr.
      WHEN '04'.
        ls_komk_i-hienr04 = ls_vbpa-kunnr.
      WHEN '05'.
        ls_komk_i-hienr05 = ls_vbpa-kunnr.
      WHEN '06'.
        ls_komk_i-hienr06 = ls_vbpa-kunnr.
      WHEN '07'.
        ls_komk_i-hienr07 = ls_vbpa-kunnr.
      WHEN '08'.
        ls_komk_i-hienr08 = ls_vbpa-kunnr.
      WHEN '09'.
        ls_komk_i-hienr09 = ls_vbpa-kunnr.
      WHEN '10'.
        ls_komk_i-hienr10 = ls_vbpa-kunnr.
      WHEN '11'.
        ls_komk_i-hienr11 = ls_vbpa-kunnr.
      WHEN '12'.
        ls_komk_i-hienr12 = ls_vbpa-kunnr.
      WHEN '13'.
        ls_komk_i-hienr13 = ls_vbpa-kunnr.
      WHEN '14'.
        ls_komk_i-hienr14 = ls_vbpa-kunnr.
      WHEN '15'.
        ls_komk_i-hienr15 = ls_vbpa-kunnr.
    ENDCASE.
  ENDLOOP.

* KOMP füllen -------------------------------------------------------- *
  ls_komp_i-kposn         = '000010'.
  ls_komp_i-matnr         = ps_item_in-matnr.
  ls_komp_i-werks         = ps_t001w-werks.
  ls_komp_i-bwkey         = ps_t001w-werks.
  ls_komp_i-matkl         = ls_maapv-matkl.
  ls_komp_i-taxps         = '000010'.
  ls_komp_i-ean11         = ls_maapv-ean11.
  ls_komp_i-prodh         = ls_maapv-prdha.
  ls_komp_i-pmatn         = ps_item_in-matnr.
  ls_komp_i-meins         = ls_maapv-meins.
  ls_komp_i-mglme         = ps_item_in-menge.
  ls_komp_i-lagme         = ps_item_in-vrkme.
  ls_komp_i-mgame         = ps_item_in-menge.
  ls_komp_i-vrkme         = ps_item_in-vrkme.
  ls_komp_i-brgew         = ls_maapv-brgew.
  ls_komp_i-ntgew         = ls_maapv-ntgew.
  ls_komp_i-gewei         = ls_maapv-gewei.
  ls_komp_i-volum         = ls_maapv-volum.
  ls_komp_i-voleh         = ls_maapv-voleh.
  ls_komp_i-sktof         = ls_maapv-sktof.
  ls_komp_i-kondm         = ls_maapv-kondm.
  ls_komp_i-wkreg         = ps_t001w-regio.
  ls_komp_i-prsfd         = 'X'.
  ls_komp_i-evrwr         = 'X'.
  ls_komp_i-kursk         = 1.
  ls_komp_i-taxm1         = '1'.
  ls_komp_i-prsok         = 'A'.
  ls_komp_i-aubel         = '$TEMP'.
  ls_komp_i-aupos         = '000010'.
  ls_komp_i-pstyv         = 'ZTAN'.
*  ls_komp_i-zzroute       = ls_kna1-route.
  ls_komp_i-ix_komk         = 1.

* Preisfindung simulieren -------------------------------------------- *
  CALL FUNCTION 'PRICING'
    EXPORTING
      calculation_type = 'C'
      comm_head_i      = ls_komk_i
      comm_item_i      = ls_komp_i
    IMPORTING
      comm_head_e      = ls_komk_e
      comm_item_e      = ls_komp_e
    TABLES
      tkomv            = lt_komv.

* Ausgabestruktur füllen --------------------------------------------- *
  MOVE-CORRESPONDING ps_item_in TO ps_item_out.
* ps_item_out-kbetr = ls_komp_e-netpr.
  IF ps_item_in-menge NE 0 AND
     ps_item_in-menge NE 0.
    ps_item_out-kbetr = ls_komp_e-kzwi2
                      / ps_item_in-menge
                      / ls_komp_e-kpein.
  ELSE.
    ps_item_out-kbetr = ls_komp_e-netpr.
  ENDIF.
  ps_item_out-kpein = ls_komp_e-kpein.
  ps_item_out-kmein = ls_komp_e-kmein.
  ps_item_out-kwert = ls_komp_e-kzwi2.
  ps_item_out-waers = pv_waers.
  ps_item_out-kondm = ls_maapv-kondm.
  ps_item_out-vtext = lv_vtext.
  ps_item_out-kontr = lv_kontr.

ENDFORM.                    " CALCULATE_PRICE
Zuletzt geändert von solidforms am 29.12.2016 20:24, insgesamt 1-mal geändert.
SAP Formulare vom Profi in TOP Qualität

http://www.solidforms.de

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
huiii, pricing hat eine breite Schnittstelle...

Was passiert dahinter genau? Schaut nach Preisfindung einer Belegposition aus, und das Ergebnis wäre, was das Kalk.schema auswirft. Dann hätte ich den Nettowert der Position, aber auch alle Konditionen einzeln.
Muss ich probieren... ich hätte ja auf etwas noch reduzierteres gehofft, also tatsächlich die Findung einer einzelnen Kondition, ohne Kalk.schema. Ist auch eine Laufzeitfrage - das wird in eine Auswertung mit vielen Zeilen eingebaut...

lg, Wolfgang

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Danke für das Coding, jedoch fehlen die Definitionen ZITEM01_T bzw. ZITEM02_T (Tabellentyp zu VBAP ?).
lg Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von solidforms (ForumUser / 5 / 0 / 0 ) »
Das war nur ein Coding-Beispiel, um zu verdeutlichen, wieviele Parameter beim PRICING mitgegeben werden müssen, damit er überhaupt was und auch richtig liefert.
In der ZITEM-Struktur werden Daten des Materials ähnlich VBAP mitgegeben.

Ich gehe immer in der VA01 im Debugger vor dem Einstieg in den FuBa PRICING und gucke, was da alles gefüllt sein muss.
SAP Formulare vom Profi in TOP Qualität

http://www.solidforms.de

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
Bevor das wieder untergeht: schlanker gehts nicht? Also wirklich nur die Findung/ Durchlauf der Zugriffsfolge einer einzelnen Kondition?

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo Wolfgang,

warum willst du nicht simulieren? Beim BAPI_SALESORDER_SIMULATE ist die Anzahl der Parameter überschaubar und in der Rückgabe ( ORDER_CONDITION_EX ) hast du eben netterweise alle gefundenen Kontionen pro Position - und wahrscheinlich auch pro Reparaturunterposition (was auch immer das sein mag ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
black_adept hat geschrieben: warum willst du nicht simulieren?
Weil die Unterpositionen erst im Laufe einer Reparaturauftrags-Abwicklung entstehen und daher von einer Simulation gar nicht geliefert werden können - nach meinem Verständnis.
Außerdem weil es wohl mehr Laufzeit benötigen wird, einen ganzen Beleg zu simulieren als nur den Zugriff einer Kondition. Und Laufzeit ist ein Thema.

lg, Wolfgang

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_BAPI_PRICE_SIMUL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest_bapi_price_simul.

DATA:
ls_head TYPE bapisdhead,

lt_pos TYPE TABLE OF bapiitemin,
ls_pos TYPE bapiitemin,

lt_par TYPE TABLE OF bapipartnr,
ls_par TYPE bapipartnr,

lt_cnd TYPE TABLE OF bapicond,
ls_cnd TYPE bapicond,

lt_inc TYPE TABLE OF bapiincomp,
ls_inc TYPE bapiincomp,

lt_mes TYPE TABLE OF bapiret2 ,
ls_mes TYPE bapiret2.


*Header Info
ls_head-doc_type = 'YMTA'.
ls_head-sales_org = 'BP01'.
*ls_head-distr_chan = '01'.
*ls_head-division = '01'.
ls_head-purch_no = 'TEST'.
ls_head-price_date = '20070427'.
ls_head-currency = 'EUR'.
*ls_head-currency_iso = 'EUR'.

* Order Items
ls_pos-itm_number = '000010'.
ls_pos-material = 'B1120'.
ls_pos-plant = 'BP01'.
ls_pos-sales_unit = 'ST'.
ls_pos-req_qty = '1'.
*ls_pos-ITEM_CATEG = 'YMT2'.
APPEND ls_pos TO lt_pos.

* Partner role AG
ls_par-partn_role = 'AG'.
ls_par-partn_numb = 'C6130'.
APPEND ls_par TO lt_par.



CALL FUNCTION 'BAPI_SALESORDER_SIMULATE'
  EXPORTING
    order_header_in    = ls_head
  TABLES
    order_items_in     = lt_pos
    order_partners     = lt_par
    order_condition_ex = lt_cnd
    order_incomplete   = lt_inc
    messagetable       = lt_mes.


    break sapuser.
Also .. Ich finde nichts aufwendiges.
Kann man noch in einen Funktionsbaustein packen und Parameter vor-belegen.
Weil die Unterpositionen erst im Laufe einer Reparaturauftrags-Abwicklung entstehen ...
Dann möchtest Du eine Prognose ?

gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
Tron hat geschrieben: Also .. Ich finde nichts aufwendiges.
Laufzeit war das Stichwort, nicht Länge des source code... dass einen ganzen Beleg simulieren länger dauert, als nur eine Zugriffsfolge, sollte eigentlich nahe liegen... wenn denn die Belegsimulation überhaupt was brächte.
Weil die Unterpositionen erst im Laufe einer Reparaturauftrags-Abwicklung entstehen ...
Dann möchtest Du eine Prognose ?
Preisfindung, ganz banale Preisfindung. Es gibt ja auch Pauschalpreise. Reparaturpauschalen, Austauschpauschalen,... ich will jetzt nicht den ganzen Reparaturauftrag erklären, eine Belegsimulation wird jedenfalls nicht funktionieren, weil die Unterpositionen nicht gleich entstehen, sondern der Anwender erst in Folge entscheidet, welche denn überhaupt entstehen.

Bis jetzt wäre "pricing" noch das am meisten versprechende, ich bin aber noch nicht dazu gekommen, es auszuprobieren, weil ich mich im Moment noch auf ein anderes Projekt konzentrieren muss. Falls doch noch wer eine "kleinere" Lösung weiß - bitte um Info!
Und vielen Dank allen, die hier was beitragen! Die Belegsimulation kann ja auch einmal wer anderer brauchen...

lg, Wolfgang

Vergleichbare Themen

5
Antw.
2928
Views
FUBA Pricing, manuelle Preisfindung über Code der Kondition PR00
von Hunty » 14.12.2022 15:25 • Verfasst in Sales and Distribution
2
Antw.
2408
Views
FUBA oder BAPI für VK11
von cuncon » 23.01.2019 15:22 • Verfasst in ABAP® für Anfänger
0
Antw.
1133
Views
FuBa Pricing
von slim » 10.07.2008 15:27 • Verfasst in ABAP® Core
0
Antw.
1962
Views
Fuba: Vorerfassten Beleg ändern
von krishanps » 17.06.2015 23:20 • Verfasst in ABAP® Core
0
Antw.
1297
Views
[SUCHE] Beleg vorerfassen / park document FUBA
von Schmarsi » 01.02.2012 16:03 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3070
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1005
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 576

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

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3070
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1005
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 576

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2586
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9168