eudc: Creating BBDB Records

 
 3.7 Creating BBDB Records
 =========================
 
 With EUDC, you can automatically create BBDB records (SeeBBDB
 (bbdb)Top.) from records you get from a directory server.  You do this
 by moving point to the appropriate record in a query result display
 buffer and invoking the command ‘M-x
 eudc-insert-record-at-point-into-bbdb’ with the keyboard binding ‘b’(1),
 or with the menu.  EUDC cannot update an existing BBDB record and will
 signal an error if you try to insert a record matching an existing one.
 
    It is also possible to export to BBDB the whole batch of records
 contained in the directory query result with the command ‘M-x
 eudc-batch-export-records-to-bbdb’.
 
    Because directory systems may not enforce a strict record format,
 local server installations may use different attribute names and have
 different ways to organize the information.  Furthermore BBDB has its
 own record structure.  For these reasons converting a record from its
 external directory format to the BBDB format is a highly customizable
 process.
 
  -- Variable: eudc-bbdb-conversion-alist
      The value of this variable should be a symbol naming an alist
      defining a mapping between BBDB field names onto directory
      attribute names records.  This is a protocol-local variable and is
      initialized upon protocol switch (SeeServer/Protocol Locals).
      The alist is made of cells of the form ‘(BBDB-FIELD .
      SPEC-OR-LIST)’.  BBDB-FIELD is the name of a field that must be
      defined in your BBDB environment (standard field names are ‘name’,
      ‘company’, ‘net’, ‘phone’, ‘address’ and ‘notes’).  SPEC-OR-LIST is
      either a single mapping specification or a list of mapping
      specifications.  Lists of mapping specifications are valid for the
      ‘phone’ and ‘address’ BBDB fields only.  SPECs are actually
      s-expressions which are evaluated as follows:
 
      a string
           evaluates to itself
      a symbol
           evaluates to the symbol value.  Symbols corresponding to
           directory attribute names present in the record evaluate to
           the value of the field in the record
      a form
           is evaluated as a function.  The argument list may contain
           attribute names which evaluate to the corresponding values in
           the record.  The form evaluation should return something
           appropriate for the particular BBDB-FIELD (see
           ‘bbdb-create-internal’).  ‘eudc-bbdbify-phone’ and
           ‘eudc-bbdbify-address’ are provided as convenience functions
           to parse phones and addresses.
 
  -- Function: eudc-bbdbify-phone phone location
      This is a convenience function provided for use in
      ‘eudc-bbdb-conversion-alist’.  It parses PHONE into a vector
      compatible with ‘bbdb-create-internal’.  PHONE is either a string
      supposedly containing a phone number or a list of such strings
      which are concatenated.  LOCATION is used as the phone location for
      BBDB.
 
  -- Function: eudc-bbdbify-address addr location
      This is a convenience function provided for use in
      ‘eudc-bbdb-conversion-alist’.  It parses ADDR into a vector
      compatible with ‘bbdb-create-internal’.  ADDR should be an address
      string of no more than four lines or a list of lines.  The last
      line is searched for the zip code, city and state name.  LOCATION
      is used as the phone location for BBDB.
 
    Note that only a subset of the attributes you selected with
 ‘eudc-default-return-attributes’ and that are actually displayed may
 actually be inserted as part of the newly created BBDB record.
 
    ---------- Footnotes ----------
 
    (1) This key binding does not actually call
 ‘eudc-insert-record-at-point-into-bbdb’ but uses ‘eudc-try-bbdb-insert’
 instead.