Moin.
BubbleSort hat geschrieben:...wenn es mehrere Einträge gibt...
Da muß ich mal genauer nachhaken, was mehrere Einträge bedeutet.
Mehrere Einträge eines Materials in Konditionstabelle(n) Tabelle Axxx (z.B. A304) ?
Ich würde mir erst mal die verwendeten Konditionstabellen (VK13) ermitteln z.B. über das Infosystem oder Customizing.
Dahinter verbergen sich ein oder mehrere Konditionstabellen namens Axxx.
Um das Ausmaß der anstehenden Änderungen zu ermitteln, kann man sich ein, oder mehrere Quickviews anlegen, indem man Axxx-KNUMH mit der Tabelle KONP-KNUMH joined.
Wir hatten für jede Kondition eine Batchaufzeichnung und damit je Kondition einen Funktionsbaustein erstellt.
Erfreute sich jedes Jahr großer Beliebtheit
Ich würde allerdings für die Zukunft dazu raten von Konditionsänderungen (VK12) abzusehen(nur im Bedarfsfall) und lieber neue Konditionssätze (VK11) anlegen !
Zum Thema Hintergrundverarbeitung:
Eine gängige Methode zum Ablegen oder Verarbeiten von Daten im Hintergrund, ist das Verwenden von Clustern.
Beispiel:
*&---------------------------------------------------------------------*
*& Report ZCREATE_CLUSTER_ZA *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zcreate_cluster_za .
DATA lt_data3 TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_data3.
PERFORM create_cluster.
*&---------------------------------------------------------------------*
*& Form CREATE_CLUSTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_DEST text
* <--P_BIN_ID text
*----------------------------------------------------------------------*
FORM create_cluster.
IF NOT lt_data3[] IS INITIAL.
DATA: indxkey TYPE indx-srtfd.
indxkey = sy-repid.
EXPORT lt_data3 FROM lt_data3 TO DATABASE indx(za) ID indxkey.
ENDIF.
ENDFORM. " CREATE_BIN
Die Daten werden in die Tabelle
INDX unter dem Schlüssel ZA / Reportname abgelegt.
Zurücklesen der Daten aus dem Cluster.
*&---------------------------------------------------------------------*
*& Report ZREAD_CLUSTER_ZA *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zread_cluster_za .
DATA lt_data3 TYPE TABLE OF sflight.
DATA l_fn TYPE string VALUE 'c:\temp\lt_data3.txt'.
PERFORM get_cluster.
break-point.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = l_fn
CHANGING
data_tab = lt_data3
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
*PERFORM delete_cluster.
*&---------------------------------------------------------------------*
*& Form READ_CLUSTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_DEST text
* <--P_BIN_ID text
*----------------------------------------------------------------------*
FORM get_cluster.
IF lt_data3[] IS INITIAL.
DATA: indxkey TYPE indx-srtfd.
indxkey = 'ZCREATE_CLUSTER_ZA'.
IMPORT lt_data3 TO lt_data3 FROM DATABASE indx(za) ID indxkey.
ENDIF.
ENDFORM. " get_cluster
*&---------------------------------------------------------------------*
*& Form DELETE_CLUSTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_DEST text
* <--P_BIN_ID text
*----------------------------------------------------------------------*
FORM delete_cluster.
DATA: indxkey TYPE indx-srtfd.
indxkey = 'ZCREATE_CLUSTER_ZA'.
DELETE FROM DATABASE indx(za) ID indxkey.
ENDFORM. " DELETE_CLUSTER
So kann man auch im Hintergrund Daten sammeln, oder zur Hintergrundverarbeitung bereitstellen.
Mit dem 2. Report die Ergebnisse lesen downloaden (und löschen) . Dir fällt bestimmt was dazu ein.
https://wiki.scn.sap.com/wiki/display/S ... +Databases
Ps. Der Name der Internen Tabelle (e.g. LT_DATA3) darf nicht mehr als 8 Zeichen haben !!
gruß Jens