Preisgültigkeit von Einkaufsinfosatz ändern

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Preisgültigkeit von Einkaufsinfosatz ändern

Beitrag von lisa (ForumUser / 53 / 8 / 1 ) »
Hallo zusammen,

ich möchte das Feld "Gültig bis" von Einkaufsinfosatz ändern. Ich habe gesehen, dass es das Feld DATBI aus der Tabelle A018 ist. Meine Frage ist: gibt es eine FUBA, um das Feld zu ändern?

Tausend Dank von eurer Hilfe.

Viele Grüße

Lisa

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


Re: Preisgültigkeit von Einkaufsinfosatz ändern

Beitrag von wreichelt (Top Expert / 1048 / 30 / 192 ) »
Hallo,

vielleicht passt der:

„ RFC Function Module to Create and Change Info Record
CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
EXPORTING
i_eina = ls_eina
i_einax = ls_einax
i_eine = ls_eine
i_einex = ls_einex
testrun = lv_test
* IMPORTING
* E_EINA =
* E_EINE =
TABLES
* TXT_LINES =
* COND_VALIDITY =
* CONDITION =
* COND_SCALE_VALUE =
* COND_SCALE_QUAN =
return = it_return.

* Fehlerauswertung
DATA(lv_message) = ||.

LOOP AT it_return INTO DATA(ls_return) WHERE type CA 'AEX'.
IF lv_message IS INITIAL.
lv_message = ls_return-message.
ELSE.
lv_message = |{ lv_message }/{ ls_return-message }|.
ENDIF.
ENDLOOP.

IF lv_message IS INITIAL.
DATA(lv_return) = VALUE bapiret2( ).
* alles ok: COMMIT
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = lv_return.
ELSE.
* bei Fehlern: ROLLBACK
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.

Gruß Wolfgang

Re: Preisgültigkeit von Einkaufsinfosatz ändern

Beitrag von lisa (ForumUser / 53 / 8 / 1 ) »
wreichelt hat geschrieben:
30.05.2022 20:50
Hallo,

vielleicht passt der:

„ RFC Function Module to Create and Change Info Record
CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
EXPORTING
i_eina = ls_eina
i_einax = ls_einax
i_eine = ls_eine
i_einex = ls_einex
testrun = lv_test
* IMPORTING
* E_EINA =
* E_EINE =
TABLES
* TXT_LINES =
* COND_VALIDITY =
* CONDITION =
* COND_SCALE_VALUE =
* COND_SCALE_QUAN =
return = it_return.

* Fehlerauswertung
DATA(lv_message) = ||.

LOOP AT it_return INTO DATA(ls_return) WHERE type CA 'AEX'.
IF lv_message IS INITIAL.
lv_message = ls_return-message.
ELSE.
lv_message = |{ lv_message }/{ ls_return-message }|.
ENDIF.
ENDLOOP.

IF lv_message IS INITIAL.
DATA(lv_return) = VALUE bapiret2( ).
* alles ok: COMMIT
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = lv_return.
ELSE.
* bei Fehlern: ROLLBACK
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.

Gruß Wolfgang

Hallo Wolfgang,

sorry, dass ich mich erst gemeldet habe. Vielen Dank für deine Hilfe. Ich habe wie du gemacht, leider wurde 'Gültig bis' nicht geändert (ich wollte 'Gültig bis' auf 31.12.2022 ändern, s. Screenshot), obwohl ich die Meldung bekommen habe, dass der Infosatz geändert wurde (s. Screenshot). Folgendes ist mein Coding:

Code: Alles auswählen.

            ls_eina-info_rec             =  '2300088309'.
            ls_eina-material             =  '0000000000034578204'.            
            ls_eina-vendor               =  '0003068884'.
            ls_eina-po_unit              =  'ST'.
            ls_eina-base_uom          =  'ST'.
            ls_eina-conv_num1        =  1.
            ls_eina-conv_den1          =  1.
            ls_einax-info_rec            =  'X'.
            ls_einax-material            =  'X'.
            ls_einax-vendor              =  'X'.
            ls_einax-po_unit             =  'X'.
            ls_einax-base_uom         = 'X'.
            ls_einax-conv_num1       =  'X'.
            ls_einax-conv_den1        =  'X'.
            ls_eine-info_rec              =  '2300088309'.
            ls_eine-purch_org           =  '0300'.
            ls_eine-plant                  =  ''.
            ls_eine-info_type            =  '0'.
            ls_eine-conv_num1         =  1.
            ls_eine-conv_den1          =  1.
            ls_eine-nrm_po_qty        =   1.
            ls_eine-plnd_delry           =  10.
            ls_eine-pur_group           =  '056'.
            ls_eine-tax_code             =  ''.
            ls_einex-info_rec             =  'X'.
            ls_einex-purch_org          =  'X'.
            ls_einex-plant                  =  'X'.
            ls_einex-info_type            =  'X'.
            ls_einex-conv_num1         =  'X'.
            ls_einex-conv_den1          =  'X'.
            ls_einex-nrm_po_qty        =  'X'.
            ls_einex-plnd_delry           =  'X'.
            ls_einex-pur_group           =  'X'.
            ls_einex-tax_code             =  'X'.
            ls_cond_validity-serial_id   =  '0031683497'.
            ls_cond_validity-valid_from  =  '20201202'.
           [b] ls_cond_validity-valid_to    =  '20221231'.[/b]
*            ls_condition-cond_type     =  gs_output-kschl.
*            ls_condition-serial_id       =  gs_output-knumh.
*            ls_condition-change_id       = 'U'.

            APPEND ls_cond_validity TO lt_cond_validity.
*            APPEND ls_condition TO lt_condition.

            CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
              EXPORTING
                i_eina        = ls_eina
                i_einax       = ls_einax
                i_eine        = ls_eine
                i_einex       = ls_einex
*               testrun       = lv_test
*           IMPORTING
*               E_EINA        =
*               E_EINE        =
              TABLES
*               TXT_LINES     =
                cond_validity = lt_cond_validity
*                condition     = lt_condition
*               COND_SCALE_VALUE       =
*               COND_SCALE_QUAN        =
                return        = lt_return.

            LOOP AT lt_return INTO DATA(ls_return) WHERE type CA 'AEX'.
              IF lv_message IS INITIAL.
                lv_message = ls_return-message.
              ELSE.
                lv_message = |{ lv_message }/{ ls_return-message }|.
              ENDIF.
            ENDLOOP.

            IF lv_message IS INITIAL.
              CLEAR lv_return.
* alles ok: COMMIT
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                EXPORTING
                  wait   = 'X'
                IMPORTING
                  return = lv_return.
            ELSE.
* bei Fehlern: ROLLBACK
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
            ENDIF.


Weißt du oder jemand, warum das Datum nicht geändert wurde?

Vielen Dank!

Viele Grüße

Lisa

Re: Preisgültigkeit von Einkaufsinfosatz ändern

Beitrag von PeterPaletti (Specialist / 350 / 32 / 97 ) »
Wissen weiß ich es auch nicht, aber das Feld DATBI aus Tabelle A018 ist ein Teilschlüsselfeld. Und Schlüsselfelder in Tabellen können nicht so einfach geändert werden. Eigentlich braucht es einen neuen Satz in der A018.
Entweder der Baustein ist prinzipiell schlau genug, das zu erkennen und entsprechend zu verfahren, tut es aber in deinem Fall aus mir unbekannten Gründen nicht. Oder aber das Wissen wird von demjenigen abverlangt, der/die den Baustein verwendet, so dass er/sie mit dem Baustein entsprechend verfährt.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
lisa


Re: Preisgültigkeit von Einkaufsinfosatz ändern

Beitrag von lisa (ForumUser / 53 / 8 / 1 ) »
PeterPaletti hat geschrieben:
29.06.2022 08:29
Wissen weiß ich es auch nicht, aber das Feld DATBI aus Tabelle A018 ist ein Teilschlüsselfeld. Und Schlüsselfelder in Tabellen können nicht so einfach geändert werden. Eigentlich braucht es einen neuen Satz in der A018.
Entweder der Baustein ist prinzipiell schlau genug, das zu erkennen und entsprechend zu verfahren, tut es aber in deinem Fall aus mir unbekannten Gründen nicht. Oder aber das Wissen wird von demjenigen abverlangt, der/die den Baustein verwendet, so dass er/sie mit dem Baustein entsprechend verfährt.
Hallo PeterPaletti,

du hast völlig recht, dass man das Feld DATBI von der Tabelle A018 nicht einfach ändern kann, weil es ein Teilschlüssel ist. Ich habe probiert, dass ich einen neuen Eintrag mit dem neuem DATBI eingefügt habe und den alten Eintrag gelöscht habe (ich glaube, dass man MODIFY Befehl in dem Fall nicht benutzen kann, weil DATBI ein Teilschlüssel ist). Das hat geklappt. Allerdings möchte ich die Tabelle mit dem DELETE und INSERT benutzen, sondern eine FUBA oder BAPI verwenden. Gibt es eine FUBA oder BAPI dafür? Hast du oder hat jemand eine Idee?

Vielen Dank!

Viele Grüße

Lisa

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1024
Views
Einkaufsinfosatz
von Gottschall » 21.05.2014 22:16 • Verfasst in ABAP® für Anfänger
0
Antw.
1074
Views
4
Antw.
3751
Views
Einkaufsinfosatz pflegen
von Sian » 14.03.2005 09:57 • Verfasst in ABAP® Core
1
Antw.
1629
Views
Einkaufsinfosatz koperen
von PeterPaletti » 30.10.2014 14:06 • Verfasst in ABAP® Core
12
Antw.
7299
Views
Preis aus Einkaufsinfosatz
von cuncon » 19.12.2017 15:52 • Verfasst in ABAP® für Anfänger

Ü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.