Setting File as: attribute for contacts -- mass import
I am still trying to import 1,800 contacts for one of my users.
His address book has many, many records without a name; only a company field.
Is there a way on import or via SOAP or Rest to set the File As: attribute of these addresses to be "Company", rather than "Last, First"? It would sure help tidy up his addressbook.
Change the "fileAs" value
You'll want to set the "fileAs" attribute on the relevant contacts to 3 ("Company"). Don't change the other contacts!
The easiest way to do that is via SOAP. Here's some sample SOAP that should be roughly correct; make sure to test before production!
<ModifyContactRequest xmlns="urn:zimbraMail" replace="0" force="1">
May not be documented there...
You may have to look at the server source files in Subversion to find the relevant info, I'm afraid.
For the record, here are the 8 supported numerical values for the "fileAs" field:
So to switch a contact to "First Last (Company)", just set its "fileAs" value to 5 and the server will recalculate the rest.
52 /** "File as" setting: <code>Last, First</code> */
53 private static final int FA_LAST_C_FIRST = 1;
54 /** "File as" setting: <code>First Last</code> */
55 private static final int FA_FIRST_LAST = 2;
56 /** "File as" setting: <code>Company</code> */
57 private static final int FA_COMPANY = 3;
58 /** "File as" setting: <code>Last, First (Company)</code> */
59 private static final int FA_LAST_C_FIRST_COMPANY = 4;
60 /** "File as" setting: <code>First Last (Company)</code> */
61 private static final int FA_FIRST_LAST_COMPANY = 5;
62 /** "File as" setting: <code>Company (Last, First)</code> */
63 private static final int FA_COMPANY_LAST_C_FIRST = 6;
64 /** "File as" setting: <code>Company (First Last)</code> */
65 private static final int FA_COMPANY_FIRST_LAST = 7;
66 /** "File as" setting: <i>[explicitly specified "file as" string]</i> */
67 private static final int FA_EXPLICIT = 8;
(Note that the web client may not support value FA_EXPLICIT yet; this type of "fileAs" is not completely numeric but instead looks like "8:foo bar baz".)
Okay -- how do I craft SOAP SearchRequest
Think I can do this, if I can figure out how to write a SearchRequest for attribute lastName is missing --
How do I write the query element of SearchRequest? I want something like this:
Don't think that's possible yet
I don't think you can do a SearchRequest on individual contact fields yet, but you can do a GetContactsRequest and fetch only the "lastName" field. That should work, right?