Hi,
This seems to be one of the problems that have never been fixed on JDE and you should learn how to live with it. The first thing you should do is check if there are any uncommited transactions on the P42210 application. If there are any records shown on this application run the R42210 process. ( I would recommend doing this when no users are performing transactions on the system).
Now, you can proceed to run the Item Ledger / Balance Integrity Report, that will show any differences between the F4111 and the F41021. Just before running this report, make sure you perform a successful run of the As of generation program. Just make sure you run the complete generation. I have had some problems with the AS of generation for the IS transactions since they are populated on the F4111 ILIPCD field as Y and they should be as X (I always perform a simple query to verify al IS transactions have the ILIPCD equal to X). Once you have successfully run the As of generation you can run the integrity report.
As you notice, all this process is somehow complicated, so maybe you can just create your own UBE to verify if F4111 balances equal the balances on F41021. I have done this in the past. Just make sure you include unit of measure conversions when adding up the transaction quantities on the F4111. If you are not using unit of measure conversions, you can use the following query (for Oracle, if you use other DBMS it will need some tweaking ):
SELECT ILITM, ILLITM, ILLOTN,ILLOCN, SumOfILTRQT, LIPQOH
FROM PRODDTA.F41021 A, (SELECT ILITM,ILLITM, ILLOTN, ILLOCN, Sum(ILTRQT) SumOfILTRQT FROM PRODDTA.F4111
WHERE ILDCT Not In ('IZ','IB','IS')
GROUP BY ILITM,ILLITM, ILLOTN, ILLOCN) B
WHERE A.LIITM = B. ILITM AND A.LILOCN = B.ILLOCN AND A.LILOTN = B.ILLOTN AND B.SumOfILTRQT <> A.LIPQOH;
One other thing, you may want to read KG document ODS-03-0037, since there is an ESU that JDE recomends to avoid the problem that you are having.
Hope this information helps.
Best Rgds,
Jorge Cabrera