版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
Even a text object is selected for text determination execution, ( it means it is picked to execute subroutine determine_text ), however it does not mean that the real determination process will be executed:
The real logic ( subroutine copy_text ) will only be executed if flag no_redetermination = abap_false ( it means redetermination is necessary ).
There are two kinds of logics to determine the flag no_redetermination: switch and change mode.
Change mode
This flag is by default marked as true, which means the text determination must NOT be executed by default when CRM_ORDER_MAINTAIN is called.
The flag will remain its value if the MODE field in internal table it_comstruc_fieldtab is NOT equal to A.
It means for change mode B, the text determination must NOT be called.
So the question is, when and where the change mode A or B is filled?
the Opportunity guid is searched against database table, it hit, it means change mode = update ( B ), or else creation ( A ).