Are all columns in a table required in the output table map?

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.>.


aseffernik (BOB member since 2008-10-27)

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 :us: (BOB member since 2006-08-19)

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.


aseffernik (BOB member since 2008-10-27)

Hi,

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.>.

Any help is greatly appreciated.

Thanks,
-Sri.


sriprameela :india: (BOB member since 2009-10-22)

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


manoj_d (BOB member since 2009-01-02)

Manoj,

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.

Thank you again,
-Sri.


sriprameela :india: (BOB member since 2009-10-22)

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.


eganjp :us: (BOB member since 2007-09-12)

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


manoj_d (BOB member since 2009-01-02)

Any update on this?


eganjp :us: (BOB member since 2007-09-12)

hi guys,

I’m having the same problem -

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?

thanks.


n78882 :us: (BOB member since 2010-09-17)

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


manoj_d (BOB member since 2009-01-02)

thanks manoj…

qq what if I got a error saying -

Error loading <(TARGET_NAME)>: <Required fields are missing: [(FIELD_NAME]>.

but i can see that field in datastore,
is this error from ds adapter or target ???

Thanks


n78882 :us: (BOB member since 2010-09-17)

Hi Manoj,

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… :crazy_face: :crazy_face: :crazy_face:

—Edi2t—
We’ve also tried to map all not needed fields to NULL. Same error is coming up during loading data to SF!
salesforce_adapter_Target.jpg
Mapping_to_SFDC_target_table.jpg


barthodo :de: (BOB member since 2012-04-18)

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]>.


manoj_d (BOB member since 2009-01-02)

We’re on version 14.0.2.376.

Coming back to the 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]>.
Mapping_out.jpg


barthodo :de: (BOB member since 2012-04-18)

will it be possible for you to file a support case for this, I need to check few things in your env

if you have already filed a case let me know the case #


manoj_d (BOB member since 2009-01-02)

thanks manoj…

Case number is: 546012 / 2012

Hopefully you can help with that today or tomorrow.
We have to give a general answer to the customer if BO DS is able to do that or not…


barthodo :de: (BOB member since 2012-04-18)

Any update on this? we are facing same issue.

Thanks, Rajesh.


Rajesh Kolli :india: (BOB member since 2009-10-30)

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


manoj_d (BOB member since 2009-01-02)

Thanks for update Manoj, We are on 3.2, i will check with my admin team if it is possible to upgrade DS to version 4.0 or later.


Rajesh Kolli :india: (BOB member since 2009-10-30)