cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI_CATIMESHEETMGR_INSERT allowing collisions

Former Member
0 Kudos

We have a custom ABAP program that reads in time records from a non-SAP system and uses BAPI_CATIMESHEETMGR_INSERT to store the records in CATS. The BAPI is correctly returning warning messages (like time exceeds scheduled time) and in some cases it returns errors on collisions with full day absences. The problem we have run into is that the non-SAP system is passing in overlapping time worked entries and the BAPI calls are non stopping them. It is storing the records in the CATSDB and IT 2002. If you go into CATS using the same data entry profile that is passed to the BAPI, it gives you the collision error and won't let you leave the screen without fixing the error. So the data entry profile is set up correctly to give an error on collisions.

Should I be expecting BAPI_CATIMESHEETMGR_INSERT to catch these errors because the data entry profile says to prevent collisions, or does it ignore some of the edits that you'd have if entering the data in CATS?

We just upgraded to ECC 6, but I have verified the problem occurred in both 4.6c and the new version.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi John,

it's been awhile, were you able to identify the problem? Speaking generally, were there any other CATS validations that the BAPI didn't carry out?

We're looking at a CATS interface right now, that's why I ask.

One other question, the documentation suggests that if there is a problem record, the BAPI will cancel the load. If you have 1 bad record out of a 1000, will it not commit records for just the one employee's set of records that has the problem or for an entire run of records with more than one employee?

Thanks!

Chris

Former Member
0 Kudos

We haven't found any other problems with it. Our solution was to make the source system make sure there were no overlapping records and to run a report to find any that sneak through.

We call the BAPI once for each time record we read in, so if a record kicks out it's just for that record. I didn't know you could send over a batch of records.