Zimbra :: Forums

Zimbra :: Forums (http://www.zimbra.com/forums/)
-   Administrators (http://www.zimbra.com/forums/administrators/)
-   -   Setting File as: attribute for contacts -- mass import (http://www.zimbra.com/forums/administrators/4240-setting-file-attribute-contacts-mass-import.html)

nyamada 08-30-2006 01:24 PM

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.

TIA.

dkarp 08-30-2006 06:16 PM

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!

Code:

<soap:Body>
  <ModifyContactRequest xmlns="urn:zimbraMail" replace="0" force="1">
    <cn id="{id-of-contact}">
      <a n="fileAs">3</a>
    </cn>
  </ModifyContactRequest>
</soap:Body>


nyamada 08-30-2006 08:20 PM

hm...
 
Thanks -- I can use that.

But (feeling stupid) where is the documentation for the fileAs Attribute and company = 3? I checked the docs and the SVN tree stuff documenting SOAP before I wrote the email. Did I just miss it? Or is your documentation of the SOAP API missing some details still?

TIA.

dkarp 08-30-2006 09:31 PM

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:
Code:

  52    /** "File as" setting: &nbsp;<code>Last, First</code> */
  53    private static final int FA_LAST_C_FIRST = 1;
  54    /** "File as" setting: &nbsp;<code>First Last</code> */
  55    private static final int FA_FIRST_LAST = 2;
  56    /** "File as" setting: &nbsp;<code>Company</code> */
  57    private static final int FA_COMPANY = 3;
  58    /** "File as" setting: &nbsp;<code>Last, First (Company)</code> */
  59    private static final int FA_LAST_C_FIRST_COMPANY = 4;
  60    /** "File as" setting: &nbsp;<code>First Last (Company)</code> */
  61    private static final int FA_FIRST_LAST_COMPANY = 5;
  62    /** "File as" setting: &nbsp;<code>Company (Last, First)</code> */
  63    private static final int FA_COMPANY_LAST_C_FIRST = 6;
  64    /** "File as" setting: &nbsp;<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;

So to switch a contact to "First Last (Company)", just set its "fileAs" value to 5 and the server will recalculate the rest.


(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".)

nyamada 08-31-2006 10:45 AM

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:

Code:

<soap:Body>
  <SearchRequest xmlns="urn:zimbraMail">
    <query>
      not attr="lastName"
  </query>
  </SearchRequest>
</soap:Body>


dkarp 08-31-2006 02:39 PM

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?

nyamada 08-31-2006 02:48 PM

Hm --
 
So I suppose I get id and last_name for all contacts
and then based on that output, fix the DisplayGroup attribute only for the contacts who have no last_name field?

Okay -- will give that a try...


All times are GMT -7. The time now is 03:07 AM.

SEO by vBSEO ©2011, Crawlability, Inc.