cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hello,

We are running BusinessObjects Data Services 4.1. I'm creating a new Job in Designer and I'm having an issue with capturing record information on an error using the Catch object. What the job does is loop through a source table in database A, performs a few simple transforms on a few of the records and then inserts/updates/deletes the corrosponding record in a destination table in database B. If the job encounters an error with a record in database A (it being a duplicate of a record in the table in database B) we would like to be able to mark the record that caused the error as failed by entering an F in the status column. I had hoped that I would be able to do this in the Catch object by capturing the record that caused the error and running an update statement against the table based on the ID column. However I do not know how to retrieve the record that caused the error within the Catch. In a Script that I can put into the Catch I have access to these functions:

Error_Number()

Error_Context()

Error_Message()

Error_Timestamp()

But none of these will really give me details on the specific record that caused the error. Is there a way to look at the record that caused the error and grab column values off of it?

For example: we are looping through the table which has 10 records with IDs 1 through 10. Record 5 (with ID 5) causes an error and the Catch object catches the error. In the Catch I'd like to find out which record causes the error so that I can grab the ID off of the record. Then I can update the status column in the table where record ID is 5 to the value 'F' and also send an email indicating that the record with ID 5 caused a failure in the job.

Thanks for any help that you can provide,

Riley

0 Likes
View Entire Topic
Former Member
0 Likes

Hi,

Please use validation Transform.

Regards,

Manoj

Former Member
0 Likes

We have a Validation Transform but it does not validate duplicate key errors for example. Is there a way for the Validation transform to somehow read the destination database and determine if an insert record will be a duplicate?

Former Member
0 Likes

HI,

Yes I think Please kindly explore it.

Regards,

Manoj

Former Member
0 Likes

Hi,

You could capture the error records in an over flow file. In the target table enable overflow file in options.

For capturing the duplicate records use gen_row_num_by_group() to capture the value which is more than one.

Arun