Hello,
There is discrepancy in operations between request and response in BatchJob 1142912.
BatchJob should contain 25000 operations but there are only 24000 in downloaded response.
Also meta information returned by get method contains information only about 24000 processed operations and empty processingErrors:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Header>
<ns1:RequestHeader>
<ns1:clientCustomerId>...</ns1:clientCustomerId>
...
</ns1:RequestHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:get>
<ns1:selector>
<ns1:fields>Id</ns1:fields>
<ns1:fields>Status</ns1:fields>
<ns1:fields>DownloadUrl</ns1:fields>
<ns1:fields>ProcessingErrors</ns1:fields>
<ns1:fields>ProgressStats</ns1:fields>
<ns1:predicates>
<ns1:field>Id</ns1:field>
<ns1:operator>EQUALS</ns1:operator>
<ns1:values>1142912</ns1:values>
</ns1:predicates>
</ns1:selector>
</ns1:get>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Content-Encoding: gzip
Date: Tue, 19 Jan 2016 10:32:43 GMT
Expires: Tue, 19 Jan 2016 10:32:43 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Length: 910
Server: GSE
<?xml version="1.0"?>
<soap:Header>
<requestId>000529ad63c5b6810a0deb0133093fd7</requestId>
<serviceName>BatchJobService</serviceName>
<methodName>get</methodName>
<operations>1</operations>
<responseTime>74</responseTime>
</ResponseHeader>
</soap:Header>
<soap:Body>
<rval>
<totalNumEntries>1</totalNumEntries>
<Page.Type>BatchJobPage</Page.Type>
<entries>
<id>1142912</id>
<status>DONE</status>
<progressStats>
<numOperationsExecuted>24000</numOperationsExecuted>
<numOperationsSucceeded>24000</numOperationsSucceeded>
<estimatedPercentExecuted>100</estimatedPercentExecuted>
<numResultsWritten>24000</numResultsWritten>
</progressStats>
<downloadUrl>
<url>...</url>
<expiration>20160217 111202 America/New_York</expiration>
</downloadUrl>
</entries>
</rval>
</getResponse>
</soap:Body>
</soap:Envelope>
The problem here is that it's impossible to link correctly Adword's objects to object local database because indexes of operations are wrong in response.
Let's say that batch job was submitted with 25000 operations, but response contains only 24000 results. Problem is that response will contain indexes from 0 to 23999 even if chunk from the middle wasn't processed (for example operations 5000-5999 from 25000 were skipped by batch job processing on adwords side). So it's impossible to understand by response what operations were processed correctly and which are not. According to documentation response should contain same number of results as number of submitted operations in batch job. But in my case it's not the same.
1. How correctly process such situations?
2. Is there any other instruments (may be Lables could help) which can help to synchronise local database of campaigns with Adwords more accurately?
Thanks!