ABAP-BP创建用户保存时获取R3系统的信贷额度并且写入

复制代码
 1 *三代增强
 2 *PARTNER_UPDATE
 3 *BP创建保存前修改信贷额度
 4 METHOD if_ex_partner_update~change_before_update.
 5 
 6     DATA:
 7       lt_but000_new TYPE TABLE OF bus000___i,
 8       lv_xdxe       TYPE  ukm_credit_limit.
 9 
10     CALL FUNCTION 'BUPA_GENERAL_CALLBACK'
11       TABLES
12         et_but000_new = lt_but000_new."获取客户编号
13 
14     DATA:io_facade        TYPE REF TO cl_ukm_facade,
15          io_bupa_factory  TYPE REF TO cl_ukm_bupa_factory,
16          io_partner       TYPE REF TO cl_ukm_business_partner,
17          io_account       TYPE REF TO cl_ukm_account,
18          lw_bp_credit_sgm TYPE ukm_s_bp_cms_sgm.
19 
20     DATA:lv_partner      TYPE bu_partner,
21          lv_credit_sgmnt TYPE ukm_credit_sgmnt.
22 
23     DATA:ltc_return TYPE ukm_t_monitor_return,
24          lsc_return TYPE ukm_s_monitor_return,
25          lv_msg1    TYPE char100.
26 
27     IF lt_but000_new IS NOT INITIAL .
28 
29       SELECT kunnr
30         INTO TABLE @DATA(lt_kna1)
31         FROM kna1
32         FOR ALL ENTRIES IN @lt_but000_new
33         WHERE kunnr = @lt_but000_new-partner ."用于判断创建还是修改
34 
35     ENDIF .
36     IF lt_kna1 IS NOT INITIAL .
37       EXIT .
38     ENDIF .
39     SELECT SINGLE zclient,zcon INTO @DATA(ls_r3) FROM ztcon_r3 WHERE zclient = @sy-mandt.
40     LOOP AT lt_but000_new INTO DATA(ls_data) GROUP BY ( key1 = ls_data-partner ) .
41 
42       CLEAR lv_xdxe .
43 
44       CALL FUNCTION 'ZRFC_SD_CREDIT_R3' DESTINATION ls_r3-zcon
45         EXPORTING
46           i_kunnr               = ls_data-partner
47           i_kkber               = 'ATBG'
48         IMPORTING
49 *           E_XYZED               =
50             e_xdxe                = lv_xdxe
51 *           E_YSY                 =
52 *           E_WQJH                =
53 *           E_WQFP                =
54 *           E_WQDD                =
55 *           E_XSZ                 =
56 *           E_YS                  =
57 *           E_TBZW                =
58 *           E_XDZH                =
59 *           E_FXL                 =
60 *           E_YQ                  =
61         EXCEPTIONS
62           system_failure        = 1
63           communication_failure = 2
64           OTHERS                = 3.
65 
66       IF lv_xdxe IS INITIAL .
67 
68         CONTINUE .
69 
70       ENDIF .
71 
72       io_facade = cl_ukm_facade=>create( i_activity = cl_ukm_cnst_eventing=>bp_maintenance ).
73       io_bupa_factory = io_facade->get_bupa_factory( ).
74       lv_partner  = ls_data-partner ."客户
75       lv_credit_sgmnt = 'ATBG' . "信用段
76 
77       CALL METHOD io_bupa_factory->get_credit_account
78         EXPORTING
79           i_partner         = lv_partner
80           i_credit_sgmnt    = lv_credit_sgmnt
81         RECEIVING
82           ro_credit_account = io_account.
83       io_account->get_bp_cms_sgm( IMPORTING es_bp_cms_sgm = lw_bp_credit_sgm ).
84 
85       lw_bp_credit_sgm-credit_limit = lv_xdxe ."信用额度
86       io_account->set_bp_cms_sgm( EXPORTING is_bp_cms_sgm = lw_bp_credit_sgm ).
87       CLEAR: lv_msg1.
88       io_bupa_factory->save_all( EXPORTING i_upd_task = abap_false RECEIVING et_return = ltc_return ).
89 
90       LOOP AT ltc_return INTO lsc_return WHERE msgty = 'E' OR msgty = 'A'.
91         CONCATENATE lv_msg1 lsc_return-message INTO lv_msg1.
92       ENDLOOP.
93 
94     ENDLOOP .
95 
96 ENDMETHOD.
复制代码
posted @   TigerMan  阅读(272)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示