Hallo!
Habe ein dickes Problem, wenn ich einen Auftrag anlege und denn auf LS und RG generiere gehe. Kommt noch die Frage ob ich wirklich Lieferschein und Rechnung generieren will, beantworte ich mit "ja"
und dann bekomme ich folgende Meldung:
Information
Aktuelle Variablenwerte:
B = 'FRMV_BAUF'
bAuftragOK = 1
CodeYes = 'J'
DebugOn = False
iBAUF_ID = 7
sAuftrag = 'J'
Z = 47314116
Error
Execute der IB_StoredProc fehlgeschlagen
StoredProc-Name: StP_Universal
IB-PROCEDURE-Name: P_BAUF_NACH_BRRCP
SQL-Anweisung: EXECUTE PROCEDURE P_BAUF_NACH_BRRCP
?BAUF_ID
Aufruf erfolgte von:
IB-Exception: Meldung von der AVERP-Datenbank
Errcode: 335544652
ErrorMessage: ISC Fehlernummer:335544652
ISC Fehlermeldung:
multiple rows in singleton select
STATEMENT:
TIB_StoredProc: "<TApplication>.frmData.StP_Universal."
SQLMessage:
SQLCODE: -811
Was läuft falsch?
Kann es daran liegen das ich die Fusszeile vergrößert habe? Hat allerdings bis jetzt problemlos funktioniert.
Gruß
Robert
ISC Fehlernummer:335544652
Moderator: SYNERPY
-
- Beiträge: 64
- Registriert: Di Aug 30, 2005 11:58 am
- Wohnort: Philippines
ISC Fehlernummer:335544652
R-B-S Webdesign & Services Inc.
-
- Site Admin
- Beiträge: 2673
- Registriert: Di Feb 10, 2004 5:48 am
- Wohnort: Bayreuth
Nein, das liegt an der Prozedur und nicht an der Fußzeile. Wenn es mehrere offene Lieferschein für die Lieferadresse gibt, dann kommt es hier zu einem Fehler.
Code: Alles auswählen
SET TERM ^ ;
ALTER PROCEDURE P_BAUF_NACH_BRRCP(
BAUF_ID INTEGER)
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
DECLARE VARIABLE BKUNDE_ID_KUNR INTEGER;
DECLARE VARIABLE BADR_ID_LIEFADRNR INTEGER;
DECLARE VARIABLE BADR_ID_READRNR INTEGER;
DECLARE VARIABLE BRLS_ID INTEGER;
DECLARE VARIABLE BRRC_ID INTEGER;
DECLARE VARIABLE BAUFPO_ID INTEGER;
DECLARE VARIABLE COUNTER INTEGER;
DECLARE VARIABLE BWAER_ID INTEGER;
BEGIN
/* LETZTER STAND 12.09.2005 09:00:15 HB */
/* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BAUF_NACH_BRRCP');
/* Aus Auftrag einen Lieferschein und eine Rechnung erzeugen */
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES (:SJA, :SNEIN);
BKUNDE_ID_KUNR = NULL;
BADR_ID_LIEFADRNR = NULL;
BADR_ID_READRNR = NULL;
/* Hier muss getestet werden, ob der Auftrag überhaupt Positionen hat,
die geliefert werden können.
Wenn nicht, dann werden auch keine Lieferschein- und
Rechnungsköpfe angelegt
COUNTER = 0;
FOR SELECT E.ID
FROM BAUFPO E
LEFT OUTER JOIN BARTLH F ON E.BARTLH_ID_LAGERNR = F.ID
WHERE E.BAUF_ID_LINKKEY = :BAUF_ID
INTO :BAUFPO_ID
DO
COUNTER = COUNTER + 1;
IF (COUNTER < 1) THEN EXIT;*/
/* Informationen zum Auftrag holen */
SELECT BKUNDE_ID_KUNR,
BADR_ID_LIEFADRNR,
BADR_ID_READRNR,
BWAER_ID
FROM BAUF
WHERE ID = :BAUF_ID
INTO :BKUNDE_ID_KUNR,
:BADR_ID_LIEFADRNR,
:BADR_ID_READRNR,
:BWAER_ID;
/* Lieferschein anlegen */
BRLS_ID = NULL;
/* Positionen werden immer zum ältesten Lieferschein anlegen */
SELECT MIN(ID)
FROM BRLS
WHERE BKUNDE_ID_LINKKEY = :BKUNDE_ID_KUNR AND
BADR_ID_LADRCODE = :BADR_ID_LIEFADRNR AND
LSGEDRUCKT = :SNEIN
INTO :BRLS_ID;
IF (BRLS_ID IS NULL) THEN
BEGIN
BRLS_ID = GEN_ID(GEN_BRLS, 1);
INSERT INTO BRLS(
ID,
MASKENKEY,
ANSPRECHP,
BADR_ID_LADRCODE,
LIEFDATUM,
BKUNDE_ID_LINKKEY,
BABT_ID_LSABTNR,
LSGEDRUCKT,
UZEICH,
BLIEBE_ID_VERSBED1K,
BLIEBE_ID_VERSBED2K,
BVERSAND_ID_1,
BVERSAND_ID_2,
BMAND_ID)
SELECT
:BRLS_ID,
NULL,
A.ANSPRECHP,
A.BADR_ID_LIEFADRNR,
A.KLTERMIN,
A.BKUNDE_ID_KUNR,
A.BABT_ID_ABTNR,
:SNEIN,
A.UZEICH,
A.BLIEBE_ID_VERSBED1K,
A.BLIEBE_ID_VERSBED2K,
A.BVERSAND_ID_1,
A.BVERSAND_ID_2,
A.BMAND_ID
FROM BAUF A
WHERE A.ID = :BAUF_ID;
END
/* Rechnungen anlegen */
BRRC_ID = NULL;
SELECT ID
FROM BRRC
WHERE BKUNDE_ID_LINKKEY = :BKUNDE_ID_KUNR AND
BADR_ID_RADRCODE = :BADR_ID_READRNR AND
RGGEDRUCKT = :SNEIN AND
RECHNUNGSART = 'R' AND
BWAER_ID = :BWAER_ID
INTO :BRRC_ID;
IF (BRRC_ID IS NULL) THEN
BEGIN
BRRC_ID = GEN_ID(GEN_BRRC, 1);
INSERT INTO BRRC(
ID,
MASKENKEY,
ANSPRECHP,
GESAMT,
GUTSCHR,
GUTSCHRART,
KURSDF,
BKUNDE_ID_LINKKEY,
MWST,
BMWST_ID_MWSTKZ,
MWSTSATZ,
NETTO,
BADR_ID_RADRCODE,
RECHDATUM,
BABT_ID_RGABTNR,
RGGEDRUCKT,
UZEICH,
VERBUCHT,
VERRECHNET,
BWAER_ID_WAEHRUNGK,
BZAHBE_ID_ZAHLBED1K,
BZAHBE_ID_ZAHLBED2K,
BZAHBE_ID_ZAHLBED3K,
BZAHBE_ID_ZAHLBED4K,
BRRCNK_SUMME,
RECHNUNGSART,
ABSCHLAGPROZENT,
BMAND_ID,
GESAMT_FW,
MWST_FW,
NETTO_FW,
BRRCNK_SUMME_FW,
BWAER_ID,
KURS_FW,
ZAHLART)
SELECT
:BRRC_ID,
NULL,
B.ANSPRECHP,
0.0,
:SNEIN,
NULL,
B.KURSDF,
B.BKUNDE_ID_KUNR,
0,
C.BMWST_ID_MWSTKENNZ,
D.PROZENT,
0.0,
B.BADR_ID_READRNR,
CURRENT_DATE,
B.BABT_ID_ABTNR,
:SNEIN,
B.UZEICH,
:SNEIN,
:SNEIN,
B.BWAER_ID_WAEHRUNGK,
B.BZAHBE_ID_ZAHLBED1K,
B.BZAHBE_ID_ZAHLBED2K,
B.BZAHBE_ID_ZAHLBED3K,
B.BZAHBE_ID_ZAHLBED4K,
0.0,
'R',
0,
B.BMAND_ID,
0,
0,
0,
0,
B.BWAER_ID,
B.KURS_FW,
B.ZAHLART
FROM BAUF B
LEFT OUTER JOIN BFIRMA C ON C.ID = 1
LEFT OUTER JOIN BMWST D ON C.BMWST_ID_MWSTKENNZ = D.ID
WHERE B.ID = :BAUF_ID;
END
/* Positionen in Lieferschein und Rechnung eintragen */
FOR SELECT E.ID
FROM BAUFPO E
LEFT OUTER JOIN BARTLH F ON E.BARTLH_ID_LAGERNR = F.ID
WHERE E.BAUF_ID_LINKKEY = :BAUF_ID
INTO :BAUFPO_ID
DO
UPDATE BRRCP
SET BRRC_ID_RGNR = :BRRC_ID,
BRLS_ID_LSNR = :BRLS_ID
WHERE BRRC_ID_RGNR IS NULL AND
BRLS_ID_LSNR IS NULL AND
BAUFPO_ID_AUFNRPOS = :BAUFPO_ID AND
BKUNDE_ID = BKUNDE_ID;
/* Nebenkosten neu berechnen */
EXECUTE PROCEDURE P_BRRCNK_AUTO(:BRRC_ID, 1)
RETURNING_VALUES (:Counter);
/* Rechnungskopf neu berechnen */
EXECUTE PROCEDURE P_BRRC_NEUBERECHNUNG (:BRRC_ID);
END
^
SET TERM ; ^
GRANT INSERT ON A_WASMACHTIB TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT EXECUTE ON PROCEDURE P_BFIRMA_JANEIN TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT ON BAUF TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT,INSERT ON BRLS TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT,INSERT ON BRRC TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT ON BFIRMA TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT ON BMWST TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT ON BAUFPO TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT ON BARTLH TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT SELECT,UPDATE ON BRRCP TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT EXECUTE ON PROCEDURE P_BRRCNK_AUTO TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT EXECUTE ON PROCEDURE P_BRRC_NEUBERECHNUNG TO PROCEDURE P_BAUF_NACH_BRRCP;
GRANT EXECUTE ON PROCEDURE P_BAUF_NACH_BRRCP TO PROCEDURE P_TEST_AUFTRAG_LS_RG;
GRANT EXECUTE ON PROCEDURE P_BAUF_NACH_BRRCP TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_BAUF_NACH_BRRCP TO SYSDBA;
-
- Site Admin
- Beiträge: 2673
- Registriert: Di Feb 10, 2004 5:48 am
- Wohnort: Bayreuth
-
- Beiträge: 13
- Registriert: Di Jan 08, 2008 10:06 am
Ich bekomme die gie gleiche Fehlermeldung:
ISC :335544652
multiple rows in singleton select
Aber als PopUp, wenn ich Rechungen mit mehreren Positionen drucken will.
Die Rechnungen und Lieferscheine werden erzeugt. Lieferscheine werde gedruckt, aber die Rechungen kann ich nicht mehr drucken.
Wenn ich das Script einspiele, kann ich keine Lieferscheine und Rechnungen mehr erzeugen. (Fehlermeldung habe ich jetzt nicht, da ich du Prozedur zurück gespielt habe).
Welche Möglichkeiten gibt es, an denen es liegen könnte?
Gruß.
ISC :335544652
multiple rows in singleton select
Aber als PopUp, wenn ich Rechungen mit mehreren Positionen drucken will.
Die Rechnungen und Lieferscheine werden erzeugt. Lieferscheine werde gedruckt, aber die Rechungen kann ich nicht mehr drucken.
Wenn ich das Script einspiele, kann ich keine Lieferscheine und Rechnungen mehr erzeugen. (Fehlermeldung habe ich jetzt nicht, da ich du Prozedur zurück gespielt habe).
Welche Möglichkeiten gibt es, an denen es liegen könnte?
Gruß.