07-13-2021 12:28 PM
Situation:
Inside the determination of a subnode instance B1 of node A1 the data of another instance A2 is retrieved. In this retrieve the transient data of instance A2 is missing if it is retrieved by io_read. If it is retrieved by an new service manager the transient data of A2 is ok -> see image.
Question
- why is this happening
- what are the consequences of using another service manager inside the service manager ?
- what is the correct way of doing this
Thanks Matthias
07-28-2021 3:02 PM
Hi Matthias,
transient data is filled by determinations. BOPF usually runs determinations only at the end of a service manager call. You can enforce the execution of pending determinations by executing `io_modify->end_modify(… iv_process_immediately = abap_true …)`. I guess you are talking about an implementation of `/bobf/if_frw_association~resolve`. In this case, you are in bad luck because the signature of this method does not offer the io_modify parameter. Therefore, using the service manager is a valid solution for you.
On the other hand, we are talking about BO-internal logic, both for the transient fields, and for the association. So, you could consider directly calling the code which fills the transient fields from within your implemented association, without violating "information hiding" principles or "separation of concerns".
Kind Regards,