Artikelgruppen in alten Belegpositionen nachträglich in ändern..

D.Benker

Mitglied
Teammitglied
Hallo,

wenn nachträglich Artikel in anderen Artikelgruppen zugeordnet werden und man dies auch auf alle historischen Vorgänge abbilden möchten um anschließend Auswertungen/Analysen über diese Artikelgruppen zu erstellen reicht es dann aus wenn man:

1. In der Datenbank, Tabelle KHKVKBelegpositionen die Artikelgruppen entsprechend der aktualisierten Artikelstammdaten neu setzt
2. Im Sage Administration->"Statistiken reorganisieren" die Statistiken neu aufbauen lässt.


Oder wäre hier mehr zu machen?
 
Hallo,

ja, in der Regel reicht es aus, die Artikelgruppen (Haupt-Vater, Artikelgruppe) in der Tabelle KHKVKBelegpositionen entsprechend den geänderten Artikelstammdaten zu aktualisieren und anschließend die Statistiken neu aufzubauen.

Beste Grüße
Sergej Müller
 
Falls Stücklisten verwendet werden, sollten zusätzlich die Zuordnungen in der Tabelle "KHKVKBelegeStuecklisten" aktualisiert werden.
Falls die Zuordnungen auch für den Einkauf relevant sind, entsprechend auch in der Tabelle "KHKEKBelegePositionen".
 
Moin Zusammen,
als erstes die Artikelgruppen in den Artikeln neu zuordnen und dann folgendes SQL abschießen (Script muss bei mehreren Mandanten in einer DB angepasst werden!) :

/* Wenn die Artikelgruppe in KHKArtikel verschoben wurde */
Update KHKArtikel
Set Hauptartikelgruppe = KHKArtikelgruppen.Hauptartikelgruppe,
Vaterartikelgruppe = KHKArtikelgruppen.VaterArtikelgruppe
FROM KHKArtikel INNER JOIN KHKArtikelgruppen ON KHKArtikel.Mandant = KHKArtikelgruppen.Mandant
AND KHKArtikel.Artikelgruppe = KHKArtikelgruppen.Artikelgruppe
Where KHKArtikel.VaterArtikelgruppe <> KHKArtikelgruppen.VaterArtikelgruppe


/* Nun die Belegpositionen */
Update KHKEKBelegePositionen Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKEKBelegePositionen INNER JOIN KHKArtikel A ON KHKEKBelegePositionen.Artikelnummer = A.Artikelnummer AND KHKEKBelegePositionen.Mandant = A.Mandant

Update KHKIFAuftraege Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKIFAuftraege INNER JOIN KHKArtikel A ON KHKIFAuftraege.Artikelnummer = A.Artikelnummer AND KHKIFAuftraege.Mandant = A.Mandant

Update KHKVKBelegePositionen Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKVKBelegePositionen INNER JOIN KHKArtikel A ON KHKVKBelegePositionen.Artikelnummer = A.Artikelnummer AND KHKVKBelegePositionen.Mandant = A.Mandant

Update KHKPJBelegeStuecklisten Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKPJBelegeStuecklisten INNER JOIN KHKArtikel A ON KHKPJBelegeStuecklisten.Artikelnummer = A.Artikelnummer AND KHKPJBelegeStuecklisten.Mandant = A.Mandant

Update KHKArchivPJPos Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKArchivPJPos INNER JOIN KHKArtikel A ON KHKArchivPJPos.Artikelnummer = A.Artikelnummer AND KHKArchivPJPos.Mandant = A.Mandant

Update KHKIVBelegePositionenHistorie Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKIVBelegePositionenHistorie INNER JOIN KHKArtikel A ON KHKIVBelegePositionenHistorie.Artikelnummer = A.Artikelnummer AND KHKIVBelegePositionenHistorie.Mandant = A.Mandant

Update KHKArchivPJStuecklisten Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKArchivPJStuecklisten INNER JOIN KHKArtikel A ON KHKArchivPJStuecklisten.Artikelnummer = A.Artikelnummer AND KHKArchivPJStuecklisten.Mandant = A.Mandant

Update KHKVKBelegeStuecklisten Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKVKBelegeStuecklisten INNER JOIN KHKArtikel A ON KHKVKBelegeStuecklisten.Artikelnummer = A.Artikelnummer AND KHKVKBelegeStuecklisten.Mandant = A.Mandant

Update KHKPJBelegePositionen Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKPJBelegePositionen INNER JOIN KHKArtikel A ON KHKPJBelegePositionen.Artikelnummer = A.Artikelnummer AND KHKPJBelegePositionen.Mandant = A.Mandant

Update KHKArchivVKPos Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKArchivVKPos INNER JOIN KHKArtikel A ON KHKArchivVKPos.Artikelnummer = A.Artikelnummer AND KHKArchivVKPos.Mandant = A.Mandant

Update KHKArchivVKStuecklisten Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKArchivVKStuecklisten INNER JOIN KHKArtikel A ON KHKArchivVKStuecklisten.Artikelnummer = A.Artikelnummer AND KHKArchivVKStuecklisten.Mandant = A.Mandant

Update KHKArchivEKPos Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKArchivEKPos INNER JOIN KHKArtikel A ON KHKArchivEKPos.Artikelnummer = A.Artikelnummer AND KHKArchivEKPos.Mandant = A.Mandant

Update KHKProjekteMaterialplanung Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKProjekteMaterialplanung INNER JOIN KHKArtikel A ON KHKProjekteMaterialplanung.Artikelnummer = A.Artikelnummer AND KHKProjekteMaterialplanung.Mandant = A.Mandant

Update KHKIVBelegePositionen Set Hauptartikelgruppe = A.Hauptartikelgruppe, Vaterartikelgruppe = A.Vaterartikelgruppe, Artikelgruppe = A.Artikelgruppe
FROM KHKIVBelegePositionen INNER JOIN KHKArtikel A ON KHKIVBelegePositionen.Artikelnummer = A.Artikelnummer AND KHKIVBelegePositionen.Mandant = A.Mandant
 
Und nachdem wir jetzt dank sconrad alle Tabellen erwischt haben, hier darauf aufbauend eine Mandanten bezogene Version.

SQL:
/* Hier Mandanten anpassen! */
Declare @Mandant AS Int = 1

 /* Wenn die Artikelgruppe in KHKArtikel verschoben wurde */
Update KHKArtikel
Set    Hauptartikelgruppe = KHKArtikelgruppen.Hauptartikelgruppe,
       Vaterartikelgruppe = KHKArtikelgruppen.VaterArtikelgruppe
From   KHKArtikel
       INNER JOIN KHKArtikelgruppen
               ON KHKArtikel.Mandant = KHKArtikelgruppen.Mandant
                  AND KHKArtikel.Artikelgruppe = KHKArtikelgruppen.Artikelgruppe
Where  (KHKArtikel.VaterArtikelgruppe <> KHKArtikelgruppen.VaterArtikelgruppe OR KHKArtikel.Hauptartikelgruppe <> KHKArtikelgruppen.Hauptartikelgruppe)
       AND KHKArtikel.Mandant = @Mandant

/* Nun die Belegpositionen */
Update KHKEKBelegePositionen
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKEKBelegePositionen
       INNER JOIN KHKArtikel A
               ON KHKEKBelegePositionen.Artikelnummer = A.Artikelnummer
                  AND KHKEKBelegePositionen.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKIFAuftraege
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKIFAuftraege
       INNER JOIN KHKArtikel A
               ON KHKIFAuftraege.Artikelnummer = A.Artikelnummer
                  AND KHKIFAuftraege.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKVKBelegePositionen
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKVKBelegePositionen
       INNER JOIN KHKArtikel A
               ON KHKVKBelegePositionen.Artikelnummer = A.Artikelnummer
                  AND KHKVKBelegePositionen.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKPJBelegeStuecklisten
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKPJBelegeStuecklisten
       INNER JOIN KHKArtikel A
               ON KHKPJBelegeStuecklisten.Artikelnummer = A.Artikelnummer
                  AND KHKPJBelegeStuecklisten.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKArchivPJPos
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKArchivPJPos
       INNER JOIN KHKArtikel A
               ON KHKArchivPJPos.Artikelnummer = A.Artikelnummer
                  AND KHKArchivPJPos.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKIVBelegePositionenHistorie
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKIVBelegePositionenHistorie
       INNER JOIN KHKArtikel A
               ON KHKIVBelegePositionenHistorie.Artikelnummer = A.Artikelnummer
                  AND KHKIVBelegePositionenHistorie.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKArchivPJStuecklisten
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKArchivPJStuecklisten
       INNER JOIN KHKArtikel A
               ON KHKArchivPJStuecklisten.Artikelnummer = A.Artikelnummer
                  AND KHKArchivPJStuecklisten.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKVKBelegeStuecklisten
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKVKBelegeStuecklisten
       INNER JOIN KHKArtikel A
               ON KHKVKBelegeStuecklisten.Artikelnummer = A.Artikelnummer
                  AND KHKVKBelegeStuecklisten.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKPJBelegePositionen
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKPJBelegePositionen
       INNER JOIN KHKArtikel A
               ON KHKPJBelegePositionen.Artikelnummer = A.Artikelnummer
                  AND KHKPJBelegePositionen.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKArchivVKPos
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKArchivVKPos
       INNER JOIN KHKArtikel A
               ON KHKArchivVKPos.Artikelnummer = A.Artikelnummer
                  AND KHKArchivVKPos.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKArchivVKStuecklisten
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKArchivVKStuecklisten
       INNER JOIN KHKArtikel A
               ON KHKArchivVKStuecklisten.Artikelnummer = A.Artikelnummer
                  AND KHKArchivVKStuecklisten.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKArchivEKPos
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKArchivEKPos
       INNER JOIN KHKArtikel A
               ON KHKArchivEKPos.Artikelnummer = A.Artikelnummer
                  AND KHKArchivEKPos.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKProjekteMaterialplanung
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKProjekteMaterialplanung
       INNER JOIN KHKArtikel A
               ON KHKProjekteMaterialplanung.Artikelnummer = A.Artikelnummer
                  AND KHKProjekteMaterialplanung.Mandant = A.Mandant
Where A.Mandant = @Mandant

Update KHKIVBelegePositionen
Set    Hauptartikelgruppe = A.Hauptartikelgruppe,
       Vaterartikelgruppe = A.Vaterartikelgruppe,
       Artikelgruppe = A.Artikelgruppe
From   KHKIVBelegePositionen
       INNER JOIN KHKArtikel A
               ON KHKIVBelegePositionen.Artikelnummer = A.Artikelnummer
                  AND KHKIVBelegePositionen.Mandant = A.Mandant 
Where A.Mandant = @Mandant
 
Zurück
Oben