客户信贷
-
SAP信贷余额表取数逻辑
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556FORM GET_DATA .DATA:LT_KNA1 LIKE TABLE OF KNA1 WITH HEADER LINE,LT_S066 LIKE TABLE OF S066 WITH HEADER LINE,LT_S067 LIKE TABLE OF S067 WITH HEADER LINE,LT_T001 LIKE TABLE OF T001 WITH HEADER LINE,LT_ZFT_HKH LIKE TABLE OF ZFT_HKH WITH HEADER LINE.SELECT KUNNR KLIMK KNKLIFROM KNKKINTO CORRESPONDING FIELDS OF TABLE GT_ITABWHERE KKBER = P_KKBERAND KUNNR IN S_KUNNR.IF GT_ITAB[] IS NOT INITIAL.SELECT * FROM KNA1 INTO TABLE LT_KNA1FOR ALL ENTRIES IN GT_ITABWHERE KUNNR = GT_ITAB-KUNNR.SELECT * FROM S066 INTO TABLE LT_S066FOR ALL ENTRIES IN GT_ITABWHERE KKBER = P_KKBERAND KNKLI = GT_ITAB-KNKLI.SELECT * FROM S067 INTO TABLE LT_S067FOR ALL ENTRIES IN GT_ITABWHERE KKBER = P_KKBERAND KNKLI = GT_ITAB-KNKLI.SELECT * FROM T001 INTO TABLE LT_T001WHERE KKBER = P_KKBER.IF LT_T001[] IS NOT INITIAL.SELECT * FROM ZFT_HKH INTO TABLE LT_ZFT_HKHFOR ALL ENTRIES IN GT_ITABWHERE KUNNR = GT_ITAB-KUNNRAND LOEDK = ''AND ZKSTO = ''AND ZFBSK = 'B'.ENDIF.ENDIF.LOOP AT GT_ITAB ASSIGNING <ITAB>.READ TABLE LT_KNA1 WITH KEY KUNNR = <ITAB>-KUNNR.IF SY-SUBRC = 0.<ITAB>-NAME1 = LT_KNA1-NAME1.ENDIF.LOOP AT LT_S066 WHERE KNKLI = <ITAB>-KNKLI.ADD LT_S066-OEIKW TO <ITAB>-OEIKW.ENDLOOP.LOOP AT LT_S067 WHERE KNKLI = <ITAB>-KNKLI.ADD LT_S067-OLIKW TO <ITAB>-OLIKW.ADD LT_S067-OFAKW TO <ITAB>-OFAKW.ENDLOOP.LOOP AT LT_T001 WHERE KKBER = P_KKBER.LOOP AT LT_ZFT_HKH WHERE BUKRS = LT_T001-BUKRSAND KUNNR = <ITAB>-KUNNR.ADD LT_ZFT_HKH-HKBTR TO <ITAB>-HKBTR.ENDLOOP.ENDLOOP.<ITAB>-KYED = <ITAB>-KLIMK + <ITAB>-HKBTR - <ITAB>-OEIKW - <ITAB>-OLIKW - <ITAB>-OFAKW.ENDLOOP.ENDFORM. " GET_DATA -
通过SAP ABAP接口修改客户信贷主数据
此程序的核心函数为CREDITLIMIT_CHANGE,可以通过事物代码FD33检验结果。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970FUNCTION ZSD_CREDITLIMIT_CHANGE.*"----------------------------------------------------------------------*"*"本地接口:*" IMPORTING*" VALUE(I_KUNNR) TYPE KNKK-KUNNR*" VALUE(I_KKBER) TYPE KNKK-KKBER DEFAULT '1000'*" VALUE(I_KLIMK) TYPE KNKK-KLIMK*" EXPORTING*" VALUE(E_SUCC) TYPE CHAR1*" VALUE(E_MESSAGE) TYPE GTER_TEXT*"----------------------------------------------------------------------DATA: L_KNA1 TYPE KNA1,L_KNKA TYPE KNKA,L_KNKK TYPE KNKK,Y_KNKA TYPE KNKA,Y_KNKK TYPE KNKK,LV_UPD_KNKK TYPE C,LV_XNEUA TYPE C.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = I_KUNNRIMPORTINGOUTPUT = I_KUNNR.SELECT SINGLE * FROM KNA1 INTO L_KNA1 WHERE KUNNR = I_KUNNR.IF SY-SUBRC <> 0.E_SUCC = 'E'.E_MESSAGE = '客户编码不存在!'.ENDIF.CHECK E_SUCC <> 'E'.SELECT SINGLE * FROM KNKA INTO Y_KNKA WHERE KUNNR = I_KUNNR.L_KNKA = Y_KNKA.SELECT SINGLE * FROM KNKK INTO Y_KNKK WHERE KUNNR = I_KUNNRAND KKBER = I_KKBER.IF SY-SUBRC <> 0.LV_UPD_KNKK = 'I'.L_KNKK-KUNNR = I_KUNNR.L_KNKK-KKBER = I_KKBER.L_KNKK-KNKLI = I_KUNNR.ELSE.LV_XNEUA = 'X'.LV_UPD_KNKK = 'U'.L_KNKK = Y_KNKK.L_KNKK-AEDAT = SY-DATUM.L_KNKK-AENAM = SY-UNAME.ENDIF.L_KNKK-KLIMK = I_KLIMK.CALL FUNCTION 'CREDITLIMIT_CHANGE'EXPORTINGI_KNKA = L_KNKAI_KNKK = L_KNKKUPD_KNKA = ''UPD_KNKK = LV_UPD_KNKKXNEUA = LV_XNEUA* XREFL = ' 'YKNKA = Y_KNKAYKNKK = Y_KNKK.IF SY-SUBRC = 0.E_SUCC = 'S'.E_MESSAGE = '更新成功!'.ELSE.E_SUCC = 'E'.E_MESSAGE = '更新失败!'.ENDIF.ENDFUNCTION.