/* importcsv.p dps 01/11/06 */ DEF VAR BaseDir AS CHAR INITIAL "/usr3/vahqds8/" NO-UNDO. DEF VAR InFileName AS CHAR INITIAL "b1099_pro.csv" NO-UNDO. DEF VAR OutFileName AS CHAR INITIAL "b1099_err.rpt" NO-UNDO. DEF VAR InCnt AS INTEGER NO-UNDO. DEF VAR OutCnt AS INTEGER NO-UNDO. DEF STREAM ostream. DEF TEMP-TABLE tt-import NO-UNDO FIELD contact LIKE lt-contact.i-contact FIELD name LIKE lt-contact.n-contact FIELD W9flag LIKE lt-contact.b-form-W-9 INDEX key AS PRIMARY UNIQUE contact. DISPLAY "Update lt-contact W-9 Received Flag" WITH CENTERED NO-BOX. RUN import. STATUS DEFAULT "Updating lt-contact File...". OUTPUT STREAM ostream TO VALUE(BaseDir + OutFileName). PUT STREAM ostream "Contact" TO 10 "Name" AT 15 "Status" AT 65 FILL("-",7) TO 11 FILL("-",45) AT 15 FORMAT "x(45)" FILL("-",8) AT 65 SKIP. FOR EACH tt-import ON ENDKEY UNDO, LEAVE: FIND FIRST lt-contact WHERE lt-contact.i-contact = tt-import.contact AND lt-contact.n-contact = tt-import.name EXCLUSIVE-LOCK NO-ERROR. IF AVAIL lt-contact THEN DO: lt-contact.b-form-W-9 = tt-import.W9flag. OutCnt = OutCnt + 1. PUT STREAM ostream tt-import.contact AT 1 tt-import.name AT 15 "set " AT 65 tt-import.W9flag SKIP. END. ELSE DO: PUT STREAM ostream tt-import.contact AT 1 tt-import.name AT 15 "NO MATCH" AT 65 SKIP. END. END. PUT STREAM ostream SKIP(2) InCnt " csv records imported" SKIP. PUT STREAM ostream OutCnt " lt-contact records updated" SKIP. OUTPUT CLOSE. STATUS DEFAULT. PROCEDURE import: STATUS DEFAULT "Loading CSV File...". EMPTY TEMP-TABLE tt-import. INPUT FROM VALUE(BaseDir + InFileName) NO-ECHO. import-loop: REPEAT ON ERROR UNDO, RETRY ON ENDKEY UNDO, LEAVE: CREATE tt-import. IMPORT DELIMITER "," tt-import.contact tt-import.name tt-import.W9flag. InCnt = InCnt + 1. END. IF tt-import.contact = 0 THEN DELETE tt-import. INPUT CLOSE. STATUS DEFAULT. END PROCEDURE. /* import */ /* end of program */