Artikelnummer automatisch generieren anhand von Sachmerkmale

Erprobte Lösungen von Anwendern, die anderen Anwendern helfen, werden hier bereit gestellt

Moderator: SYNERPY

Antworten
stl
Beiträge: 2
Registriert: Do Aug 17, 2006 5:32 pm
Wohnort: Dortmund

Artikelnummer automatisch generieren anhand von Sachmerkmale

Beitrag von stl »

Hallo peterw,

schönen dank für deine Antwort und den Hinweis auf die Informationen.

Habe das Script eingebunden und einen Artikel erfasst.

Dabei bekam ich bei der Script-Ausführung den Fehler, das die
Procedure "P_BPROPBSA_LESEN" unbekannt ist.
Woran liegt das?

Mfg.


A. Seeger

ParamByName für IB_StoredProc ist falsch
StoredProc-Name: StP_Universal
IB-PROCEDURE-Name: P_BPROPBSA_LESEN
Name von ParamByName: BSA_ID
SQL-Anweisung: EXECUTE PROCEDURE P_BPROPBSA_LESEN

Aufruf erfolgte von:
IB-Exception: Meldung von der AVERP-Datenbank
Errcode: 335544569
ErrorMessage: ISC Fehlernummer:335544569

ISC Fehlermeldung:
Dynamic SQL Error
SQL error code = -204
Procedure unknown
P_BPROPBSA_LESEN[/b]

STATEMENT:
TIB_StoredProc: "<TApplication>.frmData.StP_Universal."


SQLMessage: EXECUTE PROCEDURE P_BPROPBSA_LESEN


SQLCODE: -204
Zwitsch
Beiträge: 34
Registriert: Mi Mär 09, 2005 8:01 am

Beitrag von Zwitsch »

So tief stecke ich in AvERP nicht drin. Diese Prozedur müßte aber zum Lieferumfang der Datenbank gehören.

Nun ist der Admin gefordert.....


Gruß
Peter
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Code: Alles auswählen

SET TERM ^ ;

CREATE PROCEDURE P_BPROPBSA_LESEN(
    BSA_ID INTEGER,
    BPROP_ID INTEGER,
    WERTART SMALLINT)
RETURNS (
    INHALT VARCHAR(100))
AS
DECLARE VARIABLE nStart INTEGER;
DECLARE VARIABLE sWertTrenner VARCHAR(1);
DECLARE VARIABLE AUSWAHL VARCHAR(1000);
BEGIN
  /* LETZTER STAND: 16.07.2003 14:24:19 GK */

  /*  Inhalt bzw. Teil eines Inhalts eines Sachmerkmale lesen
      z.B. wenn Inhalt: 020=130/225 ist */

  /* PROTOKOLLIEREN, DAS AKTION HIER DURCHGELAUFEN IST */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BPROPBSA_LESEN');

  INHALT = NULL;
  IF ((BSA_ID IS NULL) OR (BPROP_ID IS NULL)) THEN
  BEGIN
    SUSPEND;
    EXIT;
  END
  IF (WERTART IS NULL) THEN WERTART = 0;

  /* Trenner momentan fest - später aus BPROP auslesen */
  IF (BPROP_ID = 2) THEN
    sWertTrenner = '/';
  ELSE
    sWertTrenner = '';

  SELECT VA.INHALT
  FROM BPROPBSA VA
  WHERE VA.BSA_ID_LINKKEY = :BSA_ID AND VA.BPROP_ID = :BPROP_ID
  INTO :INHALT;

  AUSWAHL = NULL;
  SELECT F_STRINGLISTITEM(VB.AUSWAHL,:INHALT)
  FROM BPROP VB
  WHERE VB.ID = :BPROP_ID AND VB.AUSWAHL IS NOT NULL
  INTO :AUSWAHL;
  IF (AUSWAHL IS NOT NULL) THEN
    INHALT = AUSWAHL;

  /* ACHTUNG F_SUBSTR fängt bei 0 an zu zählen */

  IF (WERTART IN (1,2,3,4)) THEN
     nStart = F_SUBSTR('=',INHALT);
  ELSE
     nStart = -1;

  IF ((nStart > 0) AND (WERTART IN (2,3,4))) THEN
    nStart = nStart + 1;


  IF (nStart > 0) THEN
    IF (WERTART = 1) THEN
      /* linken Teil = Names zurückgeben  */
      INHALT = F_LEFT(INHALT,nStart);
    ELSE
    IF (WERTART = 2) THEN
      /* rechten Teil komplett = Values zurückgeben */
      INHALT = F_MID(INHALT,nStart,100);
    ELSE
    IF ((WERTART = 3) AND (sWertTrenner <> '')) THEN
    BEGIN
      /* Nur linken Teil von Value zurückgeben
         momentan fest programmiert - später aus Tabelle BPROP auslesen */
      INHALT = F_MID(INHALT,nStart,100);
      nStart = F_SUBSTR(sWertTrenner,INHALT);
      IF (nStart > 0) THEN
        INHALT = F_LEFT(INHALT,nStart);
    END
    ELSE
    IF ((WERTART = 4) AND (sWertTrenner <> '')) THEN
    BEGIN
      /* Nur rechten Teil von Value zurückgeben
         momentan fest programmiert - später aus Tabelle BPROP auslesen */
      INHALT = F_MID(INHALT,nStart,100);
      nStart = F_SUBSTR(sWertTrenner,INHALT)+1;
      IF (nStart > 2) THEN
        INHALT = F_MID(INHALT,nStart,100);
    END

  SUSPEND;
END
^

SET TERM ; ^

GRANT INSERT ON A_WASMACHTIB TO PROCEDURE P_BPROPBSA_LESEN;

GRANT SELECT ON BPROPBSA TO PROCEDURE P_BPROPBSA_LESEN;

GRANT SELECT ON BPROP TO PROCEDURE P_BPROPBSA_LESEN;

GRANT EXECUTE ON PROCEDURE P_BPROPBSA_LESEN TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_BPROPBSA_LESEN TO SYSDBA;
Antworten