The post shows the sequence of execution of different FMs i.e V1 update FMs, V2 update FMs & background RFC FMs during the COMMIT WORK command execution.
Between V1 & V2 Update FMs- irrespective of their call in the program, always V1 update FMs are executed first and V2 update FMs executed next.
Between V1 Update FMs & Background RFC FMs, V1 update FMs are executed first and Background RFC FMs executed next.
Between V2 update FMs & Background RFC FMs, they have the same priority so executed in their call sequence when COMMIT WORK is executed.
We have 3 FMs- V1 Update FM, V2 Update FM & RFC FM
V1 Update FM-


V2 Update FM-


RFC FM-


We have report with V1 and V2 update FMs call and the commit work.

V1 update FM is called first.

V2 update FM is called next.

Let’s change the call sequence and execute the report.

Execute the commit work statement(F6).

V1 update FM is called first.

V2 update FM is called next.

Let’s compare V1 and Background FM call.

Execute commit work statement ( F6).

V1 update FM is called first. See the call program.

BG FM is called next but with a different call program.

Change the call sequence and the same result.

V1 update FM is called first.

BG FM is called next.

Let’s compare V2 update FM and the BG FM-

Both are triggered at same time but with as per their sequence of call.

Let’s alter their sequence.

Both are triggered at same time but with as per their sequence of call.

Now let’s call 3 FMs in the report. So the first is always V1 and next are both V2 & BG FM.

Execute commit work statement.

V1 update FM is called first.

Next both V2 & BG FM.
