I have implemented data input validations (for manual input and journals), I first tried with the Write-Back Badi, but then realised that the UJ_VALIDATION would have been a better option, because it gets executed on journal saves). I have implemented both solutions (sequence of checks are identical and I realised that on larger data sends (couple of thousands of records), there was a huge performance difference between the two approaches, the write-back Badi is performing much better (this comment is of course only valid for manual input, not an issue for journals)
My validation are based on properties, so I need to read couple of properties from 6 different dimensions and then perform my validations. In the write-back Badi, I read out all the master data once and then loop through the ct_array table and perform my checks.
But in UJ_VALIDATION Badi, I need to read the master data individually for each record in the IS_DATA table (I of course only need the specific record I need, not the whole table like in the Write-back Badi). Is there a way to centrally read all the master data at the beginning of the validation process (put it in internal hash tables) and then look it for each IS_DATA instead of reading it separately for each record ?