cancel
Showing results for 
Search instead for 
Did you mean: 

Identity Column Mapping in Query Trnaform

Former Member
0 Kudos

Hi,

I have a BODS 3.1 data services project that I migrated to bods 4.2 and the jobs by themselves run successfully, but when I try to validate one of the jobs the system gives me a validation error in query transform saying "Column <xxxx_KEY> in schema type <target> does not have a matching column in schema type <source> and is not nullable.  Make this column nullable, or specify a mapping expression that can provide values for this column. (BODI-1111037)".

The reason for this is, as I understand, target table has an IDENTITY column which naturally does not need a mapping to a source, as this value is generated by the SQL database. Have anybody tried to resolve this issue successfully ? Any help is greatly appreciated.

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member187605
Active Contributor
0 Kudos

Remove the column from the target schema in the query transform. You'll get a warning message when you validate the dataflow about the number of columns not matching. But the flow will run flawlessly.

Former Member
0 Kudos

Dirk Venken,

Thanks for your response, it makes me feel like I'm actually doing a hack on BODS4.2 and also amazing is the fact that sap doesn't have a genuine fix for what could be one on the most used transform.

former_member187605
Active Contributor
0 Kudos

You're not hacking anything and SAP needs no fix for what's not broken.

This is pure standard DS behaviour.With normal row types, DS will generate an insert statement for every target table in the data flow. The columns in the insert are the columns in the flow. Or, vice versa, columns that are not included in the flow will not be affected by the insert, they will get a null value. Unless there is one or another database feature involved, like a default value, a trigger or, in your case, an identity function.

Former Member
0 Kudos

Ok, Thanks!.   Let me give this a try.

Former Member

There's a behavior change here.  Under DS 14.0, you'd get a warning.  We just upgraded to 14.2.2, and this now validates as a full Error.

As the original poster noted, the job will actually execute correctly, but getting an Error during validation is a bad thing.  There are times when you intentionally want to update just a subset of columns, or, to delete data in the target.  (And are using a map operation to force update or delete).

mattisebastian
Participant
0 Kudos

I am also getting an error in 2020 - does anyone have a fix for this?