im Ausdruck Mahnung (FRDCMMAHNMB) wird oben der Sachbearbeiter nicht mit angedruckt. Das Feld (UZEICH1) bezieht sich auf einen V_BMAHN.
Im View ist der zwar eingetragen, aber in der Tabelle BMAHN finden sich keine Einträge zu UZEICH1, UZEICH2 oder UZEICH3.
Wir haben da aktuell 2 Einträge in der Tabelle, wo die Felder UZEICH aber nicht gefüllt sind.
Ich habe mir mal die Abhängige Prozedur angesehen (P_BMAHN_EINTRAGEN), da finde ich auch keinen Eintrag zu UZEICH, der COde:
Code: Alles auswählen
BEGIN
  /* LETZTER STAND 14.10.2008 15:27:28 HB */
  /* Protokollieren, dass Aktion hier durchgelaufen ist */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BMAHN_EINTRAGEN');
  EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES (:SJA, :SNEIN);
  /* Anzahl der Tage aus dem Firmenstamm holen, die von Rechnungserstellung bis
     Mahnungsersetllung vergehen dürfen */
  SELECT MAHNSTUFEN
  FROM BFIRMA
  WHERE ID = 1
  INTO :BFIRMA_MAHNSTUFEN;
  FOR SELECT ID,
             MAHNTAGE,
             BADR_ID_ADRNR
  FROM BKUNDE
  ORDER BY ID
  INTO :BKUNDE_ID,
       :BKUNDE_MAHNTAGE,
       :BKUNDE_BADR_ID
  DO
  BEGIN
  /* Für jeden Kunden die offenen Rechnungen durchgehen (es ist kein Zahlungsdatum
     angegeben) */
    FOR SELECT A.ID,
               A.BMAND_ID
    FROM BRRC A
    LEFT OUTER JOIN BSM B ON A.BSM_ID_VERANT = B.ID
    WHERE A.BKUNDE_ID_LINKKEY = :BKUNDE_ID AND
          A.ZAHLDATUM IS NULL AND
          A.RGGEDRUCKT = :SJA AND
          A.RECHNUNGSART = 'R'
    INTO :BRRC_ID,
         :BMAND_ID
    DO
    BEGIN
      EXECUTE PROCEDURE P_BRRC_ZAHLZIEL_ERMITTELN(:BRRC_ID,'BRRC')
      RETURNING_VALUES(:BRRC_MAX_ZAHLZIEL);
      /* In der Rechnung sind keine Zahlungsinformationen enthalten, dann die
         Infos aus dem Kundenstamm holen */
      IF (BRRC_MAX_ZAHLZIEL IS NULL) THEN
      BEGIN
        EXECUTE PROCEDURE P_BRRC_ZAHLZIEL_ERMITTELN(:BRRC_ID,'BKUNDE')
        RETURNING_VALUES(:BRRC_MAX_ZAHLZIEL);
        /* Wenn auch keine Informationen im Kundenstamm hinterlegt sind,
           dann Heute + Zahlungsziel für den Kunden  */
        IF (BRRC_MAX_ZAHLZIEL IS NULL) THEN
          BRRC_MAX_ZAHLZIEL = CURRENT_DATE + BKUNDE_MAHNTAGE;
      END
      /* Prüfen, ob eine Mahnung erstellt werden soll; wenn (RECHNUNGSDATUM) plus
         (MAHNTAGE) plus Zahlungstermin > Heute  (laut Pflichtenheft über x Tage)*/
      IF ((BRRC_MAX_ZAHLZIEL + BKUNDE_MAHNTAGE) < CURRENT_DATE) THEN
      BEGIN
        /* Prüfen, ob bereits Mahnung angelegt ist  */
        SELECT ID
        FROM BMAHN
        WHERE BRRC_ID = :BRRC_ID AND
              BKUNDE_ID = :BKUNDE_ID
        INTO :BMAHN_ID;
        /* Wenn noch keine Mahnung existiert, dann wird eine angelegt */
        /* Mahndatum1 wird erst angelegt, wenn die Mahnung gedruckt wurde */
        IF (BMAHN_ID IS NULL) THEN
        BEGIN
          BMAHN_ID = GEN_ID(GEN_BMAHN,1);
          INSERT INTO BMAHN(
            ID,
            BKUNDE_ID,
            BADR_ID,
            BRRC_ID,
            MAHNSTATUS,
            MAHNUNG1,
            MAHNNOTIZ1,
            BMAND_ID,
            AKTIV_JN)
          VALUES(
            :BMAHN_ID,
            :BKUNDE_ID,
            :BKUNDE_BADR_ID,
            :BRRC_ID,
            :SNEIN,
            :SNEIN,
            F_STRBLOB('Diese Mahnung wurde automatisch erstellt'),
            :BMAND_ID,
            :sJA);
        END
      END
      BRRC_ID = NULL;
      BMAHN_ID = NULL;
      BMAND_ID = NULL;
    END /* Ende BRRC */
    BKUNDE_ID = NULL;
    BKUNDE_BADR_ID = NULL;
  END /* Ende BKUNDE */
  /* Prüfung, ob bereits eine neue Mahnstufe angelegt werden muss */
  /* Behandelt alle Mahnungen, die noch nicht abgeschlossen sind */
  FOR SELECT ID,
             MAHNDATUM1,
             MAHNDATUM2
  FROM BMAHN
  WHERE MAHNSTATUS = :SNEIN
  INTO :BMAHN_ID,
       :BMAHN_MAHNDATUM1,
       :BMAHN_MAHNDATUM2
  DO
  BEGIN
    /* Erste Mahnstufe ist gedruckt (somit auch versendet) und Kunde hat nicht reagiert
       --> Telefonische Mahnung (Mahnstufe 2) wird angelegt */
    IF (((BMAHN_MAHNDATUM1 + BFIRMA_MAHNSTUFEN) < CURRENT_DATE) AND
         (BMAHN_MAHNDATUM1 IS NOT NULL) AND
         (BMAHN_MAHNDATUM2 IS NULL)) THEN
    BEGIN
      /* MAHNDATUM2 wird erst gesetzt, wenn die telefonische Mahnung gemacht wurde */
      UPDATE BMAHN
      SET MAHNUNG1 = :SJA,
          MAHNUNG2 = :SNEIN,
          MAHNNOTIZ2 = F_STRBLOB('Mahnstufe 2 wurde automatisch erzeugt, da Kunde ' ||
                                 'nicht auf schriftliche Mahnung reagiert hat')
      WHERE ID = :BMAHN_ID;
    END
    /* Erste Mahnstufe ist gedruckt (somit auch versendet) und Kunde hat nicht reagiert
       --> Telefonische Mahnung (Mahnstufe 2) wird angelegt */
    IF (((BMAHN_MAHNDATUM2 + BFIRMA_MAHNSTUFEN) < CURRENT_DATE) AND
         (BMAHN_MAHNDATUM2 IS NOT NULL)) THEN
    BEGIN
      /* MAHNDATUM2 wird erst gesetzt, wenn die telefonische Mahnung gemacht wurde */
      UPDATE BMAHN
      SET MAHNUNG2 = :SJA,
          MAHNUNG3 = :SNEIN,
          MAHNNOTIZ3 = F_STRBLOB('Achtung!!! Kunde hat 3. Mahnstufe erreicht. ' ||
                                 'Juristische Schritte einleiten!')
      WHERE ID = :BMAHN_ID;
    END
    BMAHN_ID = NULL;
  END
ENDGruß
Thomas