Ask the Experts - 68

Posted by Nitin Pai
January 21st, 2009

I am doing a mass data upload. I read a csv file and use CI for the upload. Each row in the CSV file is one row of data to be uploaded. If one of the rows has a validation error (for example, incorrect translate value being entered) the whole program fails and the succeeding rows are no longer processed.
What I would like to do is trap this error and let the program continue processing the other rows in the CSV file. I am using PeopleTools 8.21.10 and I believe there is still no Try-Catch functionality that I could use in this version.

How can I then implement error handling? I also tried to set the Step and Action properties of the App Engine but they seem to be not working.

Thanks for posting your question!

Possible solution to problem is only that instead of direct inserting record; insert a step for the validation & mark each row to valid/ invalid and in next step insert valid record into database.

Alternatively you can first find out the field for which this error is occurring. Incorporate code in your application engine before the CI call to verify the translate value of that field from the XLAT table. If it is a valid value, then process the row further through the CI, else bypass and log them in a file. This way the error rows will not be processes.


Akash Awadhiya

Sachin Deshmukh

I’ve PT v 8.45 & CRM application v 8.80.

I want to fire an email using application engine. And this email should be generated using Template I define (Setup CRM-> Common Definitions-> Correspondence).

In this template I’ve an e-mail template & some Tokens, which get data from PS Query.

The app engine would pick the template name from the setup table, which I’ll define.

Now my problem is, how can I generate the email text using these templates & tokens? As I’m not sure how the data would be passed to the tokens from the PSQuery, and how I’ll pass the data to binding variables of the PSQuery.

For your information, the app engine would be scheduled to run during particular time of the day.


Thanks for posting your question!

Since you are going to run the correspondence request through an application engine, you need to first create an offline Context for this. Then when you are defining an implementation for the token, once you select PS Query as the type of implementation it will automatically ask you the record and field from the query which will provide data to this token, as well as the bind variable to be used for this. You can create another token for a bind variable which can pick up data from your AET record and use this token as the bind variable for the other tokens.


Rahul Seth

Comments (0)