09-15-2013 12:37 PM
Hi:
is there any way to tell system that if I have 100 records for batch input.
if 1 record error, I will not write/save any record at all.
09-17-2013 7:16 PM
Hi Mandy,
Its not possible. If there was no error, then data was written and terminated by a commit work, so it's not possible to roll back the records that are processed. Record by record the data is uploaded by commit work.
regards,
Revanth
09-15-2013 2:56 PM
I am not sure. This is just a suggestion.
I had come across the ok codes /bbeg , /bend.
You can interrupt the interactive execution of a session by entering the /bend OK code on any screen. /bend terminates the transaction currently being executed in the session and marks the transaction with the status Incorrect. The session is kept in the queue and is displayed in the Errors section of the list. Changes made by the interrupted transaction are rolled back as long as the transaction uses only the R/3 update facility. Direct database changes made by the transaction are not rolled back.
You can restart processing of a transaction by entering the /bbeg OK code on any screen. /bbeg terminates the transaction that is currently being processed and then restarts the transaction fresh, as it is recorded in the batch input session. Any changes made by the transaction are rolled back, as long as they were made only by way of the R/3 update facility. Changes made directly to the database are not rolled back.
http://help.sap.com/saphelp_46c/helpdata/En/69/c250684ba111d189750000e8322d00/content.htm
So if you use the call transaction in Error mode and update in S mode, then you could arrive at a workaround to acheive your requirement.
CALL TRANSACTION
'SM04'
USING lt_bdcdata MODE
'E'
UPDATE
'S'
.
09-17-2013 7:16 PM
Hi Mandy,
Its not possible. If there was no error, then data was written and terminated by a commit work, so it's not possible to roll back the records that are processed. Record by record the data is uploaded by commit work.
regards,
Revanth