Reputation: 2247
Using the qbo3 Batch Import, I am uploading a spreadsheet containing my enumerations, along these lines:
ClassName | Operation | ObjectStatus | Object |
---|---|---|---|
ObjectStatus | Save | Option A | Resolution |
ObjectStatus | Save | Option B | Resolution |
ObjectStatus | Save | Option C | Resolution |
ObjectStatus | Save | SubOption 1 | Resolution.Option A |
ObjectStatus | Save | SubOption 2 | Resolution.Option B |
This incorrectly sets the ImportFileQueue.Object
column to Resolution
(or Resolution.Option A
), instead of setting ObjectStatus.Object
to Resolution
.
Reviewing the Batch Engine documentation, I corrected this issue by changing the Object
column as follows:
ClassName | Operation | ObjectStatus | Parameters |
---|---|---|---|
ObjectStatus | Save | Option A | Object=Resolution |
ObjectStatus | Save | Option B | Object=Resolution |
ObjectStatus | Save | Option C | Object=Resolution |
ObjectStatus | Save | SubOption 1 | Object=Resolution.Option A |
ObjectStatus | Save | SubOption 2 | Object=Resolution.Option A |
ObjectStatus | Save | SubOption 1 | Object=Resolution.Option B |
ObjectStatus | Save | SubOption 2 | Object=Resolution.Option B |
This successfully bound Object
to the ObjectStatus
table, but for some reason, 2 of my SubOption
rows were ignored by the import.
How do I fix this?
Upvotes: 0
Views: 8
Reputation: 2247
TLDR; add a column called SetPropertiesLookup
with a value of FALSE
for every row:
ClassName | Operation | ObjectStatus | Parameters | SetPropertiesLookup |
---|---|---|---|---|
ObjectStatus | Save | Option A | Object=Resolution | False |
ObjectStatus | Save | Option B | Object=Resolution | False |
ObjectStatus | Save | Option C | Object=Resolution | False |
ObjectStatus | Save | SubOption 1 | Object=Resolution.Option A | False |
ObjectStatus | Save | SubOption 2 | Object=Resolution.Option A | False |
ObjectStatus | Save | SubOption 1 | Object=Resolution.Option B | False |
ObjectStatus | Save | SubOption 2 | Object=Resolution.Option B | False |
This behavior is an artifact of ImportFileQueue
's build-in deduping logic: users frequently attempt to upload spreadsheets with duplicate rows, which can in turn cause invocation of unwanted API calls to third party systems or other such problems.
Uniqueness is determined by a combination of:
ClassName
Operation
ParameterXml
: an XML representation of all other columnsSince Parameters
is a known column, but is not considered part of the unique signature, ImportFileQueue
considers SubOption 1
and SubOption 2
to be duplicates.
Adding the SetPropertiesLookup
causes ImportFileQueue
to ignore the deduplication checks.
Upvotes: 0