Ok, a correction on my side. I misread your original post. The server
is complaining about a missing "entry id", not a missing batch id.

Now, while that message could be clearer, it pinpointed the problem.
In the update feed you are sending, the entries you are updating are
contained inside a <source> tag?

Why is that? How did you create that update feed?

Regards

Frank Mantek
Google



On Jan 27, 1:43 pm, Frank Mantek <[email protected]> wrote:
> regarding the different operations..
>
> from the spec:
>
> An operations feed contains a list of entries to insert, update,  
> delete, or query. Each operation is defined by a <batch:operation  
> type="insert|update|delete|query"/> element.
>
> This element may be a direct child of a <feed> element, a direct child  
> of any of the entries in the feed, or both. When included in an entry,  
> it specifies the operation to execute for that specific entry. When  
> included in the feed, this element specifies the default operation to  
> execute on any entries that do not have a <batch:operation/> element.
>
> So that the update feed contains a batch:operation only on the feed  
> level is quiet alright.
>
> For the operation id:
>
> GData entry results are not necessarily returned in the same order as  
> the request. You can track an operation through its lifetime using an  
> identifier.
>
> For update, delete, and query operations, you can use the id of the  
> entry itself to track the operation.
>
> For insert operations, since no ID yet exists, you can pass in an  
> operation identifier. This identifier can be used to link the result  
> entries to the request entries. The operation identifier is passed in  
> the <batch:id> element.
>
> So, to me it looks like that update feed is just fine on the wire. Why  
> your insert feed has the operation several times (on the feed and  
> entry level) i don't know, if you specify this explictly, the client  
> lib will not try to be smart and "fold" that together...
>
> So, in principle, just by looking at what you deemed suspicious, this  
> looks fine.
>
> Someone from the contacts support team needs to look at this. This  
> looks like a server side problem, the contacts server should not  
> require a batch id for updates (or, we need to fix the documenation).  
> Beside that, if your code actually sets the BatchData.Id element (and  
> it is probably doing this for inserts somewhere else), the .NET client  
> should send the id. I am looking at the batch unitiest in gbase.cs in  
> the unittest directory, and that one is setting the ID explictly for  
> everything (the .net lib is not magically creating ids).
>
> Frank Mantek
> Google
> On Jan 27, 2009, at 12:50 PM, Matthias wrote:
>
>
>
> > Hi,
>
> > I am actually working on a C# application for managing shared contacts
> > using the .NET Client Library.
> > This application shall use batch feeds.
> > The batch feed works fine for inserting and also deleting contacts.
> > However I have a problem with updating contact entries. When I try to
> > update a couple of entries, I get back a collection with only one
> > entry, which has a batch data status code 400 and an error message
> > "Missing entry Id".
>
> > I debugged the problem down to the source code of the client library
> > and checked the raw requests that are sent. These requests seemt to
> > look quite different for inserts and updates, so I am wondering if I
> > found a bug in the library. Could anyone please give a comment, so
> > that I can raise an issue if necessary? Thanks!
>
> > Here is the batch request for inserting 3 contact entries (which works
> > fine):
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <feed xmlns="http://www.w3.org/2005/Atom"; xmlns:batch="http://
> > schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/
> > 2005">
> >  <batch:operation type="insert" />
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <batch:id>insert0</batch:id>
> >    <batch:operation type="insert" />
> >    <title type="text">Test User 0</title>
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >  </entry>
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <batch:id>insert1</batch:id>
> >    <batch:operation type="insert" />
> >    <title type="text">Test User 1</title>
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >  </entry>
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <batch:id>insert2</batch:id>
> >    <batch:operation type="insert" />
> >    <title type="text">Test User 2</title>
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >  </entry>
> > </feed>
>
> > And here is the batch feed for updating the newly created contact
> > entries (which fails):
> > <?xml version="1.0" encoding="utf-8"?>
> > <feed xmlns="http://www.w3.org/2005/Atom"; xmlns:batch="http://
> > schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/
> > 2005">
> >  <batch:operation type="update" />
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <title type="text">Test User 0updated</title>
> >    <link href="http://www.google.com/m8/feeds/photos/media/induit.de/
> > 6438a1ca8a831b6d/1B2M2Y8AsgTpgAmY7PhCfg" rel="http://
> > schemas.google.com/contacts/2008/rel#edit-photo" type="image/*" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 6438a1ca8a831b6d" rel="self" type="application/atom+xml" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 6438a1ca8a831b6d/1233055640422000" rel="edit" type="application/atom
> > +xml" />
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >    <content type="text" />
> >    <source>
> >      <id>http://www.google.com/m8/feeds/contacts/induit.de/full</id>
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#feed"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#post"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full/batch" rel="http://schemas.google.com/g/2005#batch";
> > type="application/atom+xml" />
> >      <title type="text">Batch Feed</title>
> >      <updated>2009-01-27T12:27:20+01:00</updated>
> >    </source>
> >    <updated>2009-01-27T12:27:20+01:00</updated>
> >  </entry>
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <title type="text">Test User 1updated</title>
> >    <link href="http://www.google.com/m8/feeds/photos/media/induit.de/
> > 565ab6a28f1faf82/1B2M2Y8AsgTpgAmY7PhCfg" rel="http://
> > schemas.google.com/contacts/2008/rel#edit-photo" type="image/*" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 565ab6a28f1faf82" rel="self" type="application/atom+xml" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 565ab6a28f1faf82/1233055640533000" rel="edit" type="application/atom
> > +xml" />
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >    <content type="text" />
> >    <source>
> >      <id>http://www.google.com/m8/feeds/contacts/induit.de/full</id>
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#feed"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#post"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full/batch" rel="http://schemas.google.com/g/2005#batch";
> > type="application/atom+xml" />
> >      <title type="text">Batch Feed</title>
> >      <updated>2009-01-27T12:27:20+01:00</updated>
> >    </source>
> >    <updated>2009-01-27T12:27:20+01:00</updated>
> >  </entry>
> >  <entry>
> >    <gd:email address="[email protected]" primary="true" rel="http://
> > schemas.google.com/g/2005#work" />
> >    <title type="text">Test User 2updated</title>
> >    <link href="http://www.google.com/m8/feeds/photos/media/induit.de/
> > 52cba980a0d385b/1B2M2Y8AsgTpgAmY7PhCfg" rel="http://
> > schemas.google.com/
> > contacts/2008/rel#edit-photo" type="image/*" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 52cba980a0d385b" rel="self" type="application/atom+xml" />
> >    <link href="http://www.google.com/m8/feeds/contacts/induit.de/full/
> > 52cba980a0d385b/1233055640674000" rel="edit" type="application/atom
> > +xml" />
> >    <category term="http://schemas.google.com/contact/2008#contact";
> > scheme="http://schemas.google.com/g/2005#kind"; />
> >    <content type="text" />
> >    <source>
> >      <id>http://www.google.com/m8/feeds/contacts/induit.de/full</id>
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#feed"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full" rel="http://schemas.google.com/g/2005#post"; type="application/
> > atom+xml" />
> >      <link href="http://www.google.com/m8/feeds/contacts/induit.de/
> > full/batch" rel="http://schemas.google.com/g/2005#batch";
> > type="application/atom+xml" />
> >      <title type="text">Batch Feed</title>
> >      <updated>2009-01-27T12:27:20+01:00</updated>
> >    </source>
> >    <updated>2009-01-27T12:27:20+01:00</updated>
> >  </entry>
> > </feed>
>
> > For me it looks like that all entry elements in the second feed are
> > missing the  <batch:id> and <batch:operation> elements. And as far as
> > I know these elements should exist according to the API
> > documentation...
>
> > Thanks in advance,
> > Matthias
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Contacts API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-contacts-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to