home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / comm / Mail+News / UMS11 / rexx / ADM.intui next >
Text File  |  1995-08-28  |  3KB  |  124 lines

  1. /* $VER: ADM.intui 1.0 (29.8.95)
  2.  
  3.    Author:
  4.     Jan Geissler <jan@digit.franken.de>
  5.  
  6.    Function:
  7.     Verwaltung des IntuiNews-Adreßbuchs durch ADM.
  8.     Fügt EMail zu bestehendem Eintrag hinzu, falls vorhanden.
  9.     ---
  10.     ADM handles IntuiNews's address book
  11.     Appends EMail if name already present in address file.
  12.  
  13.  
  14.    History:
  15.     0.1   initial version
  16.     0.2   path variable had previously not been used for mistake.
  17.     1.0   public release for IN1.3
  18.  
  19.    Comments:
  20.     - Programmpfad und Adreßdatei muß unten evtl. angepaßt werden
  21.     - Vorschläge sind immer willkommen!
  22.     ---
  23.     - program path and address file might have to be adjusted
  24.       to fit to your needs.
  25.     - Suggestions welcome!
  26.  
  27.  
  28.  
  29.    Requires:
  30.     UMSServer 11.28 or newer
  31.     ums.library 11.18 or newer
  32.     ADM 2.0 or newer
  33.  
  34.    Example for "ums.config":
  35.     ( IntuiNews.Book "!ADM.intui" )
  36.  
  37. */
  38.  
  39. progpath = "AddressMaster"                   /* Here, AddressMaster must bei in the shell path */
  40. adrfile  = "WORK:ADM/Adressen/Adressen.adm"  /* Adjust your file to be loaded */
  41.  
  42. PARSE ARG Command " " Name "," Addr "," Comment
  43. OPTIONS RESULTS
  44. SIGNAL ON ERROR
  45.  
  46. IF ~EXISTS(adrfile) THEN DO
  47.    'REQUEST "Error" "OK" "ADM data file not present. Please check the macro ADM.intui"'
  48.    EXIT 10
  49. END
  50.  
  51. IF ~SHOW('P','ADM.UMS') THEN DO
  52.    cmd = "run >NIL:" progpath "CLOSEQUIT PORTNAME ADM.UMS ICONIFY FROM" adrfile
  53.    ADDRESS COMMAND cmd
  54.    if rc = 5 then do
  55.       say 'Unable to load command"' ||progpath|| '", check the macro.'
  56.       exit
  57.    end
  58.    address command "waitforport ADM.UMS"
  59.    if rc = 5 then do
  60.       say 'Unable to load command "WaitForPort".'
  61.       exit
  62.    end
  63.    wait 10
  64. END
  65.  
  66.  
  67. IF Command="QUERY" THEN DO
  68.  ADDRESS 'ADM.UMS' ACTIVATEFIRST
  69.  ADDRESS 'ADM.UMS' ADDRINMEM
  70.  numadr = RESULT
  71.  num = 0
  72.  
  73.  DO FOR numadr-1
  74.    ADDRESS 'ADM.UMS' GETADDRESS stem
  75.    IF stem.fullname ~= "" THEN DO
  76.       IF stem.EMAIL1 ~= "" THEN
  77.          'ADD "'||stem.FULLNAME||'" "'||stem.EMAIL1||'" "'||remark||'"'
  78.       IF stem.EMAIL2 ~= "" THEN
  79.          'ADD "'||stem.FULLNAME||'" "'||stem.EMAIL2||'" "'||remark||'"'
  80.    END
  81.    num = num + 1
  82.    IF num < numadr THEN
  83.       ADDRESS 'ADM.UMS' ACTIVATENEXT
  84.  END
  85. END
  86.  
  87. IF Command="ADD" THEN DO
  88.  
  89.   P=LASTPOS(" ",Name)
  90.   IF P=0 THEN First=""
  91.   ELSE DO
  92.     First=LEFT(Name,P-1)
  93.     Name=SUBSTR(Name,P+1)
  94.   END
  95.  
  96.   sd.firstname = STRIP(first)
  97.   sd.lastname  = STRIP(name)
  98.  
  99.   ADDRESS 'ADM.UMS' SEARCH 1 sd
  100.   num = RESULT
  101.  
  102.   IF num<0 THEN DO
  103.      stem.firstname = STRIP(first)
  104.      stem.lastname  = STRIP(name)
  105.      stem.email1    = STRIP(Addr)
  106.      stem.remark1   = STRIP(Comment)
  107.      ADDRESS 'ADM.UMS' NEWADDRESS stem
  108.   END; ELSE DO
  109.      ADDRESS 'ADM.UMS' ACTIVATE num
  110.      ADDRESS 'ADM.UMS' GETADDRESS stem
  111.      SELECT
  112.        WHEN (stem.email1 = "" | stem.email1 = Addr) THEN stem.email1 = Addr
  113.        WHEN (stem.email2 = "" | stem.email2 = Addr) THEN stem.email2 = Addr
  114.        OTHERWISE stem.remark1 = stem.remark1 || "0a"X || "EMail:" Addr
  115.      END
  116.      stem.remark1   = stem.remark1 || "0A"x || STRIP(Comment)
  117.      ADDRESS 'ADM.UMS' CHANGEADDRESS stem
  118.      ADDRESS 'ADM.UMS' SAVE FORCE
  119.   END;
  120.  END
  121.  
  122. ERROR:
  123. EXIT 0
  124.