DATBI Massenänderung Konditionen


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

Moderatoren: Jan, Steff

DATBI Massenänderung Konditionen

Beitragvon BubbleSort » 04.01.2018, 15:25

Hallo,

ich muss für sehr viele Konditionen in einem Programm jeweils nur das DATBI ändern.
Ich habe mir bereits viele Funktionsbausteine etc. angesehen...vieles sieht allerdings relativ umständig aus.

Wie kann man in diesem Fall am schnellsten und einfachsten zum Ziel gelangen? Hat jemand bereits ein ähnliches Szenario realisiert?

Besten Dank und Grüße
BubbleSort
ForumUser
 
Beiträge: 28
Registriert: 18.06.2015, 15:27
Dank erhalten: 0 mal
Ich bin: Berater/in

Sponsor

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

Re: DATBI Massenänderung Konditionen

Beitragvon Tron » 04.01.2018, 19:58

Moin.
Ich habe es so gelöst:
Eine Batchaufzeichnung der VK12 mit dem Transaktionsrekorder (SHDB) und daraus einen Funktionsbaustein generiert.
Der erzeugte Baustein ist übrigens RFC - fähig.
Dann den Baustein in ein Programm einbauen und z.B. einen Excel-Upload ermöglichen.

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: 933
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 166 mal
Ich bin: Entwickler/in

Re: DATBI Massenänderung Konditionen

Beitragvon BubbleSort » 05.01.2018, 09:49

Hallo.
Ok, danke. Werde so vorgehen, allerdings müssen direkt im Programm alle Datensätze im Hintergrund geändert werden.
Bei Konditionen, die auf Grund der Selektion nur einen Treffer haben geht das ohne Probleme.

Wie kann man das allerdings handhaben, wenn es mehrere Einträge gibt und man zudem vorher nicht weiß wie viele es sind?
Geht das auch direkt via Transaktionsrekorder oder muss ich im Endeffekt vorher auf die Konditionstabelle gehen und prüfen wie viele Einträge es gibt und die Batch-Input Mappe dynamisch generieren (für die Zeilen, wenn es mehrere sein sollten)?

Danke & beste Grüße
BubbleSort
ForumUser
 
Beiträge: 28
Registriert: 18.06.2015, 15:27
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: DATBI Massenänderung Konditionen

Beitragvon Tron » 05.01.2018, 14:44

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 :wink:
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
<:: 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: 933
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 166 mal
Ich bin: Entwickler/in


Zurück zu Sales and Distribution

  Aktuelle Beiträge   
Aufbau und Größe einer SAP Farm
vor 39 Minuten von Paul 0 Antw.
CALL TRANSACTION bei DB-Abfrage und Doppelklick eines Wertes
vor 10 Minuten von lausek 1 Antw.
Partnerrolen im SD Beleg
vor einer Minute von black_adept 1 Antw.
READ_TEXT - MARA
vor einer Minute von ralf.wenzel 6 Antw.
Konditionsart für ein Material auslesen
vor 16 Stunden von wreichelt 1 Antw.

  Ähnliche Beiträge beta
Massenänderung von Rabattkonditionen
02.07.2010, 11:18 von fbo 0 Antw.
Massenänderung Spediteur in Vertriebslieferplänen
14.09.2005, 08:49 von Gast 3 Antw.
Transaktion massd und mass / Massenänderung von Kontrakten
04.12.2006, 14:52 von tian98 0 Antw.
Konditionen (Preise)
20.04.2005, 08:59 von whistler 2 Antw.
Konditionen auswerten?
29.11.2005, 18:46 von Gast 0 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder