Fuba Pricing bsp aufruf ohne Beleg VK11 PR00


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

Moderatoren: Jan, Steff

Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon Luigi91 » 04.10.2016, 10:57

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
Luigi91
ForumUser
 
Beiträge: 26
Registriert: 08.01.2014, 14:46
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

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

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon Tron » 05.10.2016, 12:00

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.
Tron
Expert
 
Beiträge: 807
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 141 mal
Ich bin: Entwickler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon Syntaxfehler » 06.10.2016, 15:41

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
Syntaxfehler
ForumUser
 
Beiträge: 5
Registriert: 17.08.2016, 14:30
Wohnort: Hamm
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon JHM » 07.10.2016, 13:04

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
JHM
Top Expert
 
Beiträge: 1090
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 166 mal

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon black_adept » 07.10.2016, 20:48

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
black_adept
Top Expert
 
Beiträge: 2491
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 320 mal
Ich bin: Freiberufler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon foxtrot » 28.12.2016, 15:21

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
foxtrot
ForumUser
 
Beiträge: 7
Registriert: 28.12.2016, 15:08
Dank erhalten: 0 mal
Ich bin: Berater/in

Coding für Aufruf FuBa PRICING ohne Beleg

Beitragvon solidforms » 29.12.2016, 09:08

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 .
*----------------------------------------------------------------------*
*&amp;---------------------------------------------------------------------*
*&amp;      Form  CALCULATE_PRICE
*&amp;---------------------------------------------------------------------*

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
solidforms
ForumUser
 
Beiträge: 3
Registriert: 22.10.2016, 17:32
Dank erhalten: 0 mal
Ich bin: Freiberufler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon foxtrot » 29.12.2016, 10:49

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
foxtrot
ForumUser
 
Beiträge: 7
Registriert: 28.12.2016, 15:08
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon Tron » 29.12.2016, 11:21

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.
Tron
Expert
 
Beiträge: 807
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 141 mal
Ich bin: Entwickler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon solidforms » 29.12.2016, 12:50

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
solidforms
ForumUser
 
Beiträge: 3
Registriert: 22.10.2016, 17:32
Dank erhalten: 0 mal
Ich bin: Freiberufler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon foxtrot » 29.12.2016, 13:11

Bevor das wieder untergeht: schlanker gehts nicht? Also wirklich nur die Findung/ Durchlauf der Zugriffsfolge einer einzelnen Kondition?
foxtrot
ForumUser
 
Beiträge: 7
Registriert: 28.12.2016, 15:08
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon black_adept » 29.12.2016, 15:33

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
black_adept
Top Expert
 
Beiträge: 2491
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 320 mal
Ich bin: Freiberufler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon foxtrot » 29.12.2016, 16:15

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
foxtrot
ForumUser
 
Beiträge: 7
Registriert: 28.12.2016, 15:08
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon Tron » 29.12.2016, 18:09

Moin.
Code: Alles auswählen
*&amp;---------------------------------------------------------------------*
*&amp; Report  ZTEST_BAPI_PRICE_SIMUL
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*

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.
Tron
Expert
 
Beiträge: 807
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 141 mal
Ich bin: Entwickler/in

Re: Fuba Pricing bsp aufruf ohne Beleg VK11 PR00

Beitragvon foxtrot » 30.12.2016, 09:01

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
foxtrot
ForumUser
 
Beiträge: 7
Registriert: 28.12.2016, 15:08
Dank erhalten: 0 mal
Ich bin: Berater/in

Nächste

Zurück zu Sales and Distribution

  Aktuelle Beiträge   
Script in Favoriten
Gestern von bs112 0 Antw.
Daten aus SAP in Excel einfügen
Gestern von bs112 0 Antw.
Scripted calculation view
Gestern von SAP_ENTWICKLER 0 Antw.
Was ist beim Anlegen von sichten zu Beachten
vor 2 Tagen von JohnLocklay 0 Antw.
Tabellenzugehörigkeiten einer Struktur
vor 2 Tagen von black_adept 8 Antw.

  Ähnliche Beiträge beta
Rundungsdifferenzen beim PR00
23.09.2016, 07:41 von ratsnus 2 Antw.
Re-pricing
06.02.2006, 11:00 von Gast 0 Antw.
Pricing und Unvollständigkeitsprotokoll
12.04.2006, 07:54 von chatty 2 Antw.
Beleg als email an User
01.02.2008, 07:53 von reffi 1 Antw.
Storno Warenbewegung bei archiviertem Beleg (TAC: VL09)
22.08.2006, 17:25 von Matthias_L. 0 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!
cron