TRIGGER PROCEDURE FOR WRITE OF Artst NEW BUFFER NArtst OLD BUFFER OArtst. DEFINE VARIABLE cDiff AS CHARACTER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE kk AS INTEGER NO-UNDO. DEFINE VARIABLE kx AS INTEGER NO-UNDO. DEFINE VARIABLE cWort AS CHARACTER NO-UNDO. DISABLE TRIGGERS FOR LOAD OF Artbez. DISABLE TRIGGERS FOR LOAD OF ArtLief. IF NArtst.Suchbe = '' THEN NArtst.Suchbe = ENTRY(1, NArtst.Bez, ' '). BUFFER-COMPARE NArtst USING Artnr Inhalt Jahr Bez Herst Suchbe FremdNr Strichcode KGeb_Cd VGeb_Cd TO OArtst SAVE RESULT IN cDiff. IF cDiff = '' THEN RETURN. cWort = ''. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = NArtst.Firma AND Artbez.Artnr = NArtst.Artnr AND Artbez.Inhalt = NArtst.Inhalt AND Artbez.Jahr = NArtst.Jahr AND Artbez.Sprcd = 1 EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF NOT AVAILABLE Artbez THEN RETURN. RUN BEREINIGEN ( 0, Artbez.Bez1 ). RUN BEREINIGEN ( 0, Artbez.Bez2 ). DO kk = 1 TO 10: cFeld = Artbez.Zustext[kk]. IF cFeld = '' THEN NEXT. RUN BEREINIGEN ( 0, cFeld ). END. RUN BEREINIGEN ( 0, NArtst.Suchbe ). RUN BEREINIGEN ( 0, NArtst.Strichcode ). RUN BEREINIGEN ( 0, TRIM(STRING(NArtst.Artnr,'>>>>>9')) ). IF NArtst.Inhalt > 0 THEN RUN BEREINIGEN ( 0, 'Inhalt=' + TRIM(STRING(NArtst.Inhalt,'>>>>>9')) ). IF NArtst.Jahr > 0 THEN RUN BEREINIGEN ( 0, 'Jahr=' + TRIM(STRING(NArtst.Jahr ,'>>>>>9')) ). IF NArtst.FremdNr <> '' THEN DO: RUN BEREINIGEN ( 0, STRING(NArtst.FremdNr,'XXXXXX XXXX XXXX')). RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(SUBSTRING(NArtst.FremdNr,01,06)),'>>>>>9'))). END. FIND KGebinde NO-LOCK WHERE KGebinde.Firma = NArtst.Firma AND KGebinde.Geb_Cd = NArtst.KGeb_Cd NO-ERROR. IF AVAILABLE KGebinde THEN RUN BEREINIGEN ( 0, KGebinde.KBez ). FOR EACH ArtLief NO-LOCK USE-INDEX ArtLief-k1 WHERE ArtLief.Firma = NArtst.Firma AND ArtLief.Artnr = NArtst.Artnr AND ArtLief.Inhalt = NArtst.Inhalt AND ArtLief.Jahr = NArtst.Jahr : RUN BEREINIGEN ( 0, ArtLief.S_Artnr ). RUN BEREINIGEN ( 0, ArtLief.Strichcode_VGeb ). RUN BEREINIGEN ( 0, ArtLief.Strichcode_KGeb ). /* RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ). RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ). */ cFeld = 'XLIEFSTX' + STRING(ArtLief.Knr,'999999'). RUN BEREINIGEN ( 0, cFeld ). END. CREATE ASMutation. ASSIGN ASMutation.asmutation_id = NEXT-VALUE(asmutation_id) ASMutation.MutArt = 'YBMARTIKEL' ASMutation.Firma = NArtst.Firma ASMutation.Aktiv = TRUE ASMutation.Datum = TODAY ASMutation.cStatus = '' ASMutation.iKey_1 = NArtst.Artnr ASMutation.iKey_2 = NArtst.Inhalt ASMutation.iKey_3 = NArtst.Jahr . Artbez.WortIndex = TRIM(cWort). RELEASE KGebinde . RELEASE Artbez . RELEASE ArtLief . RELEASE ASMutation . RETURN. PROCEDURE BEREINIGEN: DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipString AS CHARACTER NO-UNDO. DEFINE VARIABLE wString AS CHARACTER NO-UNDO. DEFINE VARIABLE xString AS CHARACTER NO-UNDO. DEFINE VARIABLE yy AS INTEGER NO-UNDO. IF ipString = '' THEN RETURN. wString = ipString. IF ipArt = 1 THEN DO: wString = REPLACE(wString, ' ', ''). wString = REPLACE(wString, '.', ''). wString = REPLACE(wString, '/', ''). wString = REPLACE(wString, '-', ''). END. wString = REPLACE(wString, '*' , '' ). wString = REPLACE(wString, '&' , ' '). wString = REPLACE(wString, '+' , '' ). wString = REPLACE(wString, '(' , '' ). wString = REPLACE(wString, ')' , '' ). wString = REPLACE(wString, '!' , '' ). wString = REPLACE(wString, '|' , '' ). wString = REPLACE(wString, '^' , '' ). wString = REPLACE(wString, ';' , '' ). wString = REPLACE(wString, "'" , '' ). wString = REPLACE(wString, ',' , '' ). wString = REPLACE(wString, ' ', ' '). wString = REPLACE(wString, '-' , ' '). wString = TRIM(wString). IF wString = '' THEN RETURN. DO yy = 1 TO NUM-ENTRIES(wString, ' '): xString = ENTRY(yy, wString, ' '). IF LOOKUP(xString, cWort, ' ') > 0 THEN NEXT. cWort = cWort + (IF cWort = '' THEN '' ELSE ' ') + xString. END. END PROCEDURE.