Belohnung! FuBa RV_CONDITION_COPY Konditionssätze setzen

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

Belohnung! FuBa RV_CONDITION_COPY Konditionssätze setzen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo zusammen.

Ich verwende den FuBa RV_CONDITION_COPY um Konditionssätze zur Preisfindung zu setzen ... so die Therorie.

Allerdings will und will das nicht klappen. Ich bin der Meinung ich hätte alle Felder versorgt aber es klappt nicht.

Wenn das als IDOC gemacht wird (Dort wird der FuBa verwendet) klappt es. Wenn ich selbst den FuBa versorge mit den identischen Werten klappt es nicht.

Coding folgt. Wer da den Tip zum Ziel findet kriegt eine schöne Flasche Wein für die Mittagspause oder so ähnlich (Dies ist kein Scherz. Zum Vergleich maile ich gerne einen echten Scherz).

Der Code sieht aus als hätte man den ganzen Nachmittag hin und herprobiert. Das liegt daran dass es genauso war :-(

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZBL_TEST_RV_IDOC2
*&---------------------------------------------------------------------*

report  zbl_test_rv_idoc2.


call function 'RV_CONDITION_RESET'.
commit work and wait.


constants: c_matnr(18) value '000000000001400525'.

data:
   cr          like table of komv with header line, " copy_records
   nr,                                              " new record
   key_fields  like table of komg with header line,
   komk        like table of komk with header line,
   komp        like table of komp with header line.


key_fields-mandt = '002'.                " OK
key_fields-vkorg = '0380'.               " OK
key_fields-vtweg = '10'.                 " OK
key_fields-konda = '01'.                 " OK
* key_fields-werks = '1000'.               " ?
* key_fields-spart = '01'.                 " ?
* key_fields-kunnr = '0000151935'.         " ?
key_fields-matnr = c_matnr. " OK
* key_fields-kdatu = sy-datum.             " ??

*********************************************************
* Neue Informationen zum Konditinssatz:
cr-mandt = '002'.
cr-kappl = 'V'.                    " OK
cr-kschl = 'VKP0'.                 " OK
cr-kbetr = '66.77'.                " OK
* cr-knumh = '0000380829'.
* cr-kposn = '000000'.
*cr-stfkz = 'A'.
*cr-krech = 'B'.
*cr-konws = 'CHF'.
cr-kdatu = '20150205'.             " OK
* cr-kunnr = '0000151935'.         " ??
* cr-kpein = '1'.                  " OK
* cr-kmein = '  '.                 " OK
cr-kumza = 1.
cr-kumne = 1.
cr-waers = 'EUR'.                  " OK
cr-knumh = '1'.
cr-kopos = '01'.

append cr.

**********************************************************
* KOMK/KOMP Fuellen
data wa_pispr like table of pispr with header line.

* wa_pispr-kunnr = '0000151935'.     " ??
wa_pispr-matnr = c_matnr.        " OK
wa_pispr-vkorg = '0380'.           " OK
wa_pispr-vtweg = '10'.             " BL


append wa_pispr.


***call function 'SPR_KOMK_KOMP_FILL'
***  exporting
***    pi_i_spr  = wa_pispr
***  importing
***    pe_i_komk = komk
***    pe_i_komp = komp.


* --> KOMK/KOMP werden korrekt gefüllt. Funktion i.o.
**********************************************************

komk-mandt = sy-mandt.
komk-vkorg = '0380'.
komk-vtweg = '10'.
komk-konda = '01'.
komk-erdat = sy-datum.
komk-kvorg = '01'.
komk-hwaer = 'EUR'.
komk-waerk = 'EUR'.
komk-kappl = 'V'.


* Oberen Aufruf (FuBa) ignorieren
clear komp.
komp-kposn = '000001'.
komp-matnr = c_matnr.
*komp-meins = 'ST'.
*komp-mglme = 1.




call function 'RV_CONDITION_COPY'
  exporting
    application              = 'V'             " OK
    condition_table          = '032'           " OK
    condition_type           = 'VKP0'          " OK
    date_from                = '20150105'      " OK
    date_to                  = '20150115'      " OK
*    date_from                = '20150205'      " OK
*    date_to                  = '20150209'      " OK
    enqueue                  = 'X'
    i_komk                   = komk
    i_komp                   = komp
    key_fields               = key_fields
    maintain_mode            = 'A'
    no_authority_check       = 'X'
    no_field_check           = 'X'
    keep_old_records         = ' '
    overlap_confirmed        = 'X'
    used_by_idoc             = ' '
  importing
    e_komk                   = komk
    e_komp                   = komp
    new_record               = nr
  tables
    copy_records             = cr
  exceptions
    enqueue_on_record        = 01
    invalid_application      = 02
    invalid_condition_number = 03
    invalid_condition_type   = 04
    no_authority_ekorg       = 05
    no_authority_kschl       = 06
    no_authority_vkorg       = 07
    no_selection             = 08
    table_not_valid          = 09.


commit work and wait.                              " BL
* SET UPDATE TASK LOCAL.

call function 'RV_CONDITION_SAVE'
  exporting
    i_knumh      = '1'
    i_no_posting = 'X'.

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


Re: Belohnung! FuBa RV_CONDITION_COPY Konditionssätze setzen

Beitrag von Graf Ostsee (ForumUser / 1 / 0 / 0 ) »
Hallo Nordlicht,

ich habe das mal aufgeräumt. Die Konditionstabelle muß in der Zugriffsfolge der Kondition vorkommen und die Schlüsselfelder der Tabelle müssen entsprechend versorgt werden.

Gruß aus dem Norden...

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  YSD_COND_TEST
*& Example how to call RV_CONDITION_COPY
*&---------------------------------------------------------------------*
*& Comments:
*& maintain_mode:
*& A = Adding   'A'
*& B = Changing 'B'.
*& C = Displaying
*& D = Create with reference
*&
*& key_fields: check keys of the condition table and access sequence!
*&---------------------------------------------------------------------*
REPORT ysd_cond_test.


DATA:
  ls_keys TYPE komg,
  komk    LIKE TABLE OF komk WITH HEADER LINE,
  komp    LIKE TABLE OF komp WITH HEADER LINE,
  ls_komv TYPE komv,
  lt_komv TYPE TABLE OF komv.

PARAMETER: p_matnr TYPE matnr VALUE CHECK,
           p_vkorg TYPE vkorg VALUE CHECK,
           p_vtweg TYPE vtweg VALUE CHECK,
           p_kbetr TYPE kbetr VALUE CHECK DEFAULT '100.00',
           p_waers TYPE waers VALUE CHECK DEFAULT 'EUR',
           p_kmein TYPE kmein VALUE CHECK DEFAULT 'ST',
           p_kpein TYPE kpein VALUE CHECK DEFAULT '1',
           p_kschl TYPE kschl VALUE CHECK DEFAULT 'VKP0',
           p_kotab TYPE vake-kotabnr DEFAULT '073',
           p_datab TYPE datab VALUE CHECK DEFAULT '20150101',
           p_datbi TYPE datbi VALUE CHECK DEFAULT '20150430'.
.


CALL FUNCTION 'RV_CONDITION_RESET'
* EXPORTING
*   FREE_MEMORY       =
  .

ls_keys-matnr = p_matnr.
ls_keys-vkorg = p_vkorg.
ls_keys-vtweg = p_vtweg.

CLEAR ls_komv.
REFRESH lt_komv.

ls_komv-kbetr = p_kbetr.
ls_komv-waers = p_waers.
ls_komv-kpein = p_kpein.
ls_komv-kmein = p_kmein.
ls_komv-kschl = p_kschl.
APPEND ls_komv TO lt_komv.

CALL FUNCTION 'RV_CONDITION_COPY'
  EXPORTING
    application                 = 'V'
    condition_table             = p_kotab
    condition_type              = p_kschl
    date_from                   = p_datab
    date_to                     = p_datbi
*   ENQUEUE                     = ' '
*   I_KOMK                      = ' '
*   I_KOMP                      = ' '
    key_fields                  = ls_keys
    maintain_mode               = 'A'
*   NO_AUTHORITY_CHECK          = ' '
*   NO_FIELD_CHECK              = ' '
*   SELECTION_DATE              = '00000000'
*   KEEP_OLD_RECORDS            = ' '
*   MATERIAL_M                  =
*   USED_BY_IDOC                = ' '
*   I_KONA                      =
*   OVERLAP_CONFIRMED           = ' '
*   NO_DB_UPDATE                = ' '
*   USED_BY_RETAIL              = ' '
* IMPORTING
*   E_KOMK                      =
*   E_KOMP                      =
*   NEW_RECORD                  =
*   E_DATAB                     =
*   E_DATBI                     =
*   E_PRDAT                     =
  TABLES
    copy_records                = lt_komv
*   COPY_STAFFEL                =
*   COPY_RECS_IDOC              =
  EXCEPTIONS
    enqueue_on_record           = 1
    invalid_application         = 2
    invalid_condition_number    = 3
    invalid_condition_type      = 4
    no_authority_ekorg          = 5
    no_authority_kschl          = 6
    no_authority_vkorg          = 7
    no_selection                = 8
    table_not_valid             = 9
    no_material_for_settlement  = 10
    no_unit_for_period_cond     = 11
    no_unit_reference_magnitude = 12
    invalid_condition_table     = 13
    OTHERS                      = 14.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

IF sy-subrc = 0.
  CALL FUNCTION 'RV_CONDITION_SAVE'.
  COMMIT WORK AND WAIT.
ELSE.
  WRITE:/ sy-subrc.
ENDIF.

Re: Belohnung! FuBa RV_CONDITION_COPY Konditionssätze setzen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Vielen Dank für Deine Mühe. Ich probiere das Montag gleich mal aus.
;-)

Danke aus Itzehoe, Burkhart

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2303
Views
Mass Copy of Material Master
von TK » 04.10.2004 12:59 • Verfasst in Material Management & Produktionsplanung
0
Antw.
1386
Views
Mehrfachselektionsübergabe mittels Copy&Paste?
von Eismaen » 26.01.2007 16:25 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
1382
Views
Konditionssätze mit Staffeln anlegen
von RiffRaff » 26.07.2005 14:08 • Verfasst in Sales and Distribution
4
Antw.
2060
Views
SD Alle Konditionssätze um X % erhöhen
von obreuer » 04.12.2007 10:36 • Verfasst in ABAP® Core
1
Antw.
4854
Views
Konditionssätze Schlüsselkombinationen vorbelegen
von vwaadenm » 15.05.2008 18:04 • Verfasst in Sales and Distribution

Über diesen Beitrag


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

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.