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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值