Hallo!
Wir haben dieses Jahr zu Testzwecken versucht die Inventur über AvERP laufen zu lassen. Das hat auch alles bis zum entscheidenden Punkt ganz wunderbar geklappt.
Also es wurden ein neuer Inventurdatensatz angelegt und dazu natürlich die einzelnen Stücklistenpositionen (etwa 500). Nachdem die gesamten Zählmengen zu jedem Artikel in den Stücklistenpositionen angelegt waren wollten wir nun das Lager korrigieren (Utility->Lager korrigieren) damit die Zählmengen auch ins Lager gebucht werden.
AvERP hat dann auch schön zu rechnen angefangen, allerdings musste ich feststellen dass die Lagermenge nicht korrigiert wurde. Die IST-Bestände der Artikel waren auf dem gleichen Stand wie vor der Inventur. Nur die Lagerbuchungsprotokolle wurden erzeugt.
Bei allen Artikeln ist 'Lager korrigieren' auf 'J' gesetzt. Ich kann das nicht nachvollziehen warum die Lagerbestände nicht auf die Zählmenge in der Inventur angepasst werden. Ist das ein Bug oder so gewollt???
Kann mir jemand sagen was ich machen muss damit die Lagerbestände auf die Werte der Zählmengen angeglichen werden? Sonst hat das alles recht wenig Sinn, und 1Woche Arbeit war umsonst.
Danke & mfG
ewa
Inventurprobleme
Moderator: SYNERPY
-
admin
- Site Admin
- Beiträge: 2673
- Registriert: Di Feb 10, 2004 5:48 am
- Wohnort: Bayreuth
Das ist tatsächlich ein Fehler. Bitte folgendes Skript einspielen, danach werden die Lagermengen korrekt angepasst.
Sollten alle Lager schon auf korrigiert = "J" stehen, so muss vorher folgendes SQL ausgeführt werden. Vorher muss das ":XXX" mit der ID des Inventurkopfs ersetzt werden (Sollte für das Nein-Kennzeichen ein anderer Wert definiert sein, so muss dieser natürlich auch im SQL-BEfehl ersetzt werden).
[/url]
Code: Alles auswählen
SET TERM ^ ;
ALTER PROCEDURE P_BINVRK_LAGER_KORR(
BINV_ID INTEGER)
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
DECLARE VARIABLE BINVRK_ID INTEGER;
DECLARE VARIABLE BINVRK_WE DATE;
DECLARE VARIABLE BINVRK_WA DATE;
DECLARE VARIABLE BINVRK_WARENWERT NUMERIC(15,2);
DECLARE VARIABLE BINVRK_DATUM DATE;
DECLARE VARIABLE BINVRK_BSA_ID INTEGER;
DECLARE VARIABLE BARTLH_ID INTEGER;
DECLARE VARIABLE BARTLHPO_ID INTEGER;
DECLARE VARIABLE BARTLHPO_LIST NUMERIC(15,4);
DECLARE VARIABLE ZAEHLMENGE NUMERIC(15,4);
DECLARE VARIABLE DIFFERENZ NUMERIC(15,4);
BEGIN
/* LETZTER STAND 02.01.2006 08:49:06 HB */
/* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BINVRK_LAGER_KORR');
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES (:SJA, :SNEIN);
/* Wenn Lagerort fehlt, dann Standardlagerort eintragen */
FOR SELECT ID, BARTLH_ID
FROM BINVRK
WHERE BARTLHPO_ID IS NULL AND
BINV_ID = :BINV_ID
INTO :BINVRK_ID, :BARTLH_ID
DO
BEGIN
SELECT ID
FROM BARTLHPO
WHERE STDLAG = :sJA AND
BARTLH_ID_LINKKEY = :BARTLH_ID
INTO :BARTLHPO_ID;
UPDATE BINVRK
SET BARTLHPO_ID = :BARTLHPO_ID
WHERE ID = :BINVRK_ID;
END
/* Eintragungen in Lagerbuchungsprotokoll machen */
FOR SELECT A.ID, A.WEDATUM, A.WADATUM, A.BSA_ID, A.BARTLHPO_ID,
B.LIST, A.ZAEHLMENGE, A.WARENWERT, A.DATUM
FROM BINVRK A
LEFT OUTER JOIN BARTLHPO B ON A.BARTLHPO_ID = B.ID
WHERE A.BINV_ID = :BINV_ID AND
A.LAGER_KORRIGIERT = :SNEIN
INTO :BINVRK_ID, :BINVRK_WE, :BINVRK_WA, :BINVRK_BSA_ID, :BARTLHPO_ID,
:BARTLHPO_LIST, :ZAEHLMENGE, :BINVRK_WARENWERT, :BINVRK_DATUM
DO
BEGIN
DIFFERENZ = ZAEHLMENGE - BARTLHPO_LIST;
IF (DIFFERENZ IS NULL) THEN DIFFERENZ = 0;
IF (DIFFERENZ <> 0) THEN
INSERT INTO BARTLHBU (
MENGE,
AKTION,
BARTLHPO_ID_LINKKEY,
BINVRK_ID,
BUCH_WOHER,
BUCHEN_JN)
VALUES (
:DIFFERENZ,
'IV',
:BARTLHPO_ID,
:BINVRK_ID,
'P_BINVRK_LAGER_KORR',
:sJA);
UPDATE BINVRK
SET LAGER_KORRIGIERT = :SJA
WHERE ID = :BINVRK_ID;
END
/* Lagerbewertung eintragen */
INSERT INTO BARTLHPOH(
BARTLHPO_ID_LINKKEY,
MENGE,
WERT,
DATUM)
SELECT
A.BARTLHPO_ID,
A.ZAEHLMENGE,
A.INV_MEK,
B.ERFDATUM
FROM BINVRK A
LEFT OUTER JOIN BINV B ON A.BINV_ID = B.ID
WHERE B.ID = :BINV_ID;
END
^
SET TERM ; ^
DESCRIBE PROCEDURE P_BINVRK_LAGER_KORR
'Korrigiert Lagermenge für Lager';
GRANT INSERT ON A_WASMACHTIB TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT EXECUTE ON PROCEDURE P_BFIRMA_JANEIN TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT SELECT,UPDATE ON BINVRK TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT SELECT ON BARTLHPO TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT INSERT ON BARTLHBU TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT INSERT ON BARTLHPOH TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT SELECT ON BINV TO PROCEDURE P_BINVRK_LAGER_KORR;
GRANT EXECUTE ON PROCEDURE P_BINVRK_LAGER_KORR TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_BINVRK_LAGER_KORR TO SYSDBA;
Code: Alles auswählen
UPDATE BINVRK
SET LAGER_KORRIGIERT = 'N'
WHERE BINV_ID = :XXX
-
2mad
- Beiträge: 79
- Registriert: Fr Apr 15, 2005 8:52 am