FI中创建与审批的职责冲突如何解决

2025-02-23 21:50:04
推荐回答(1个)
回答1:

FBV0的程序代码片段[ol]* redirect only enjoy transaction (do not redirect TA F871)if ( *bkpf-tcode+0(4) cp 'FB5+'or *bkpf-tcode+0(4) cp 'FB6+'or *bkpf-tcode+0(4) cp 'FB7+'or *bkpf-tcode+0(4) cp 'FV5+'or *bkpf-tcode+0(4) cp 'FV6+'or *bkpf-tcode+0(4) cp 'FV7+' )* (del) and t020-funcl ne 'D'. "Note 323907and t020-funcl na 'R' "Note485043and not global_test_flag = 'X'. "Note 541739 tcode = *bkpf-tcode. tcode+1(1) = 'V'. if t020-funcl eq 'D'. "Note485043 tcode+3(1) = '3'. "Note485043 else. "Note485043 call function 'AUTHORITY_CHECK_TCODE' "Note441412 exporting "Note441412 tcode= tcode "Note441412 exceptions "Note441412 ok = 0 "Note441412 not_ok = 1 "Note441412 others = 2. "Note441412 if sy-subrc ne 0. "Note441412 message s172(00) with tcode. "Note441412 exit. "Note441412 endif. "Note441412 endif. g_enjoy_from_fbv2 = 'X'. "P00K030072 export g_enjoy_from_fbv2 to memory id 'FBV2ENJOY'. "P00K030072* If you display a document which was parked by an ENJOY tansaction and* you turn for changing the document, the system loses information* where it had come from.Import of FBV3ENJOY in SAPMF05A* EXIT_COMMAND_ENJ (Note 676189) IF sy-tcode = 'FBV3' AND sy-calld IS INITIAL. g_enjoy_from_fbv3 = 'X'. EXPORT g_enjoy_from_fbv3 TO MEMORY ID 'FBV3ENJOY'. ENDIF. CALL TRANSACTION tcode. exit.[/ol]复制代码也就是说,系统会判断你用哪个TCODE做的凭证,然后调用相应的TCODE。所以,如果你用FV60生成的凭证,再用FBV0过账的时候,会调用FV60这个TCODE。接下来在FV60的程序里,正如你所说,根据是否有F_BKPF_BUK和F_BKPF_BLA的activity为01的权限,来判断是否有Post(你所谓的审批)的权限。没有权限的,Post按钮将不可用。同时,还根据是否有F_BKPF_BUK和F_BKPF_BLA的activity为77的权限,来判断是否有Park(你所谓的创建)的权限。没有权限的,Park按钮将不可用。最后,还会根据是否F_BKPF_KOA的activity为01的权限,来判断是否有Post的权限。结论对于有创建权限的人,给他FV60的权限,同时限制F_BKPF_BUK和F_BKPF_BLA的activity为77。对于有审批权限的人,给他FBV0和FV60的权限,同时限制F_BKPF_BUK和F_BKPF_BLA的activity为01,保证F_BKPF_KOA的activity为01。