We currently have a process that is connecting to SalesForce.com to send information to a table within Salesforce. In the process that is inserting or updating the table in salesforce are all of the fields within the target column required in the mapping?
Currently we have 85 of 168 fields in the table mapped (most as optional with no mapping value) and we are receiving the error shown below.
(12.1) 09-30-09 02:59:53 (E) (5028:2512) RUN-058104: |Dataflow sf_icoms_int_update_house_master_DF|Loader Map_Operation_Account
Error loading : <Invalid batch received from Data Services. 164 fields were expected, but 85 were found.>.
May be for rest of the field, you can map them NULL!
or
delete those fields in your Query transform, just before the target table, so that Null values get populated for those field, assuming those columns are nullable…
Data Guy, Thanks for the reply. Unfortunately the deleting of these fields in the transform will not work as there error is caused because the fields are not in the transform.
Having them as null fields that are not mapped and optional will work; however, I have been asked to research another method other than adding them as null fields.
Did you have any luck with the error.Did you find any alternative to update the custom field in salesforce.When I am trying to update a field in Salesforce table I am also getting the same error.
15544 14592 RUN-058104 12/30/2010 2:47:08 PM Error loading : <Invalid batch received from Data Services. 67 fields were expected, but 3 were found.>.
this message is coming from DS SFDC Adapter, the code is validating the number of columns that are in input against the total number of columns in the table, I am checking if this is required in case of UPDATE
for workaround can you try the following, in SFDC every object is identified with a ID, so map the ID column, and set the value for columns you want to update and set the other coulmns as null in the mapping
Thank you for your reply,Workaround actually works.I have mapped the ID column, and set the value for columns I want to update and mapped all other columns as null in the query transformation before the Map Transform.
I could update the column without any issues.
But Why do we have to map all the columns to null, when we are not updating all the fields.My team mates have concern with this and they are not approving it to move to PROD.
I have created a case with SAP support.I will let you know If I hear from them.
Unfortunately, the SalesForce adapter is rather picky and you do have to supply all the columns. I ran into this for a client. One of my other consultants and I sat around for hours trying to come up with a work around. Even worse, SalesForce can change their DDL on you and your ETL cannot simply ignore the new column. As I recall, ETL running against SalesForce breaks frequently - like every time an upgrade/patch is implemented.
I am checking why that restriction is there, the error is not coming from SFDC its from the DS Adapter, not sure why should DS SFDC adapter be concerned with if all the fields are not there, and let SFDC handle that. Similar to what is done in case of Database tables
the other thing is not all columns are creatable or updatable in SFDC not sure why they have to passed which will be anyway ignored by the adapter even before passing the data to SFDC
11912 16180 RUN-058104 8/13/2011 3:18:50 PM |Data flow DF_TEST_SFA|Loader Query_Account_Account
11912 16180 RUN-058104 8/13/2011 3:18:50 PM Error loading : <Invalid batch received from Data Services. 184 fields were expected, but 182 were found.>.
but I have the same number of rows both in source in target with same attribute names and i mapped the required attributes and remaining with null. i dont understand why i’m getting error?
have removed the restriction of mapping all the columns when loading or updating data to a SFDC table, a new option is added in the SFDC loader (include column names) which indicates to the job process to pass the column names that are getting loaded, by default the flag is false which indicates that all the columns should be mapped, if set to true, the job process will send the list of columns that are mapped to the adapter
this fix will be available in 12.2.3.3 (scheduled for mid Sep)
check the trace log for the list of columns and check the mapping, if you have mapped all the columns then you should not see this error
i’ve inserted a SFDC-Table as target…
Since i got the error i searched for the option you mentioned in one of your previous posts…
In the table options i could find an additional (strange) parameter which was default as “No”… (see attached picture)
Is that the parameter which you mentioned?
—Edit—
Additional question:
In the Query_Out we have a field “ProfileId” with valid value (see attached screenshot)
If i now try to load data to target table it says…
7032 3452 RUN-058104 12.06.2012 14:06:16 Error loading : <Required fields are missing: [ProfileId]>.
0 0 DBS-070300 12.06.2012 14:06:26 (14.0) 06-12-12 14:06:26 (E) (5264:1940) RUN-058104: |Data flow DF_TEST_SALESFORCE_WRITE|Loader Query_User
7032 3452 DBS-070300 12.06.2012 14:06:26 Error loading : <Required fields are missing: [ProfileId]>.
Now i’m a bit confused…
—Edi2t—
We’ve also tried to map all not needed fields to NULL. Same error is coming up during loading data to SF!
looking at the snippet of log that you have posted you are on DS 4.0 (14.0), what is the complete version of DS ? you see the strange parameter since the resource file with complete description is missing, if installation is fine then, that’s a bug
The following error is coming from SFDC, you are not setting a valid value for ProfileId, setting it to NULL in mapping in DS will prevent it from going to SFDC (DS will not pass the mapping that are set to NULL to SFDC)
Error loading : <Required fields are missing: [ProfileId]>.
We’ve set a constant for ProfileId (e.g. ‘00e20000001UdoiAAC’) which is a valid one in Salesforce. (see attached screenshot)
If i execute the job the same error is coming up!
5596 7572 RUN-058104 13.06.2012 08:20:07 |Data flow DF_TEST_SALESFORCE_WRITE|Loader Query_User
5596 7572 RUN-058104 13.06.2012 08:20:07 Error loading : <Required fields are missing: [ProfileId]>.
what is the version of DS you are using ? this was fixed in 4.0 SP2 or 3 I don’t remember, drop a new SFDC target table to DF and open the properties of the table, do you see a parameter named include column names ?
if yes, then set that option to yes
in the Query remove the columns that are not mapped run the job, DS SFDC Adapter will only load column that are mapped, make sure you are mapping all the required columns, else the SFDC load will fail with SFDC errors