SAP客户标准信用额度修改和创建详解编程语言

好吧,前提要说一下,信贷是到客户的信贷范围级别的。

FUNCTION zfm_credit. 
*"---------------------------------------------------------------------- 
*"*"本地接口: 
*"  TABLES 
*"      T_TAB STRUCTURE  ZJKS001 OPTIONAL 
*"      T_TAB_I STRUCTURE  ZJKS002 OPTIONAL 
*"---------------------------------------------------------------------- 
 
  DATA:gs_zsds001 TYPE zsds001. 
  DATA:gs_zsds002 TYPE zsds002. 
  DATA:lv_func TYPE char50."结构ID 
  DATA:s_tab TYPE zjks001."表头结构 
  DATA:s_tab_i TYPE zjks002."表体结构 
  DATA:gt_table TYPE ddfields, 
       gs_table TYPE dfies. 
  DATA:gs_knka TYPE knka, 
       gs_knkk TYPE knkk, 
       gv_knka TYPE knka, 
       gv_knkk TYPE knkk, 
       gv_upd  TYPE cdpos-chngind. 
  DATA:gv_name1 TYPE kna1-name1. 
  DATA:gt_kna1 TYPE TABLE OF zsknb1, 
       gs_kna1 TYPE          zsknb1. 
  DATA:lv_line TYPE i. 
 
 
  DATA:gs_zsds003 TYPE zsds003. 
 
  DATA:gt_message TYPE TABLE OF bdcmsgcoll. 
  DATA:gs_message TYPE bdcmsgcoll. 
  DATA:lv_str TYPE string. 
  DATA:lv_int TYPE i. 
 
  FIELD-SYMBOLS:  <dyn_wa>,"表头 
                  <dyn_la>,"表体 
                  <dyn_field>."字段 
  DATA lv_col_sting TYPE string . 
 
  DEFINE mesgadd."返回消息赋值 
    S_TAB-FIELDNAME = &1. 
    S_TAB-VALUE = &2. 
    IF &2 is not INITIAL . 
      APPEND S_TAB TO T_TAB. 
    ENDIF. 
  END-OF-DEFINITION. 
 
  DEFINE mesgaddi."返回消息赋值 
    lv_col_sting = &1 . 
    CONCATENATE &2 lv_col_sting into S_TAB_I-FIELDNAME . 
    SHIFT S_TAB_I-FIELDNAME RIGHT DELETING TRAILING space. 
    CONDENSE S_TAB_I-FIELDNAME NO-GAPS. 
    S_TAB_I-VALUE = &3. 
    CONDENSE S_TAB_I-VALUE NO-GAPS. 
    APPEND S_TAB_I TO T_TAB_I. 
  END-OF-DEFINITION. 
 
 
  CLEAR:gs_zsds001,gs_zsds002,lv_func,s_tab,gt_table[],gs_zsds003,lv_str,gt_message. 
 
  READ TABLE t_tab INTO s_tab WITH KEY fieldname = 'FUNCTION'. 
  IF sy-subrc = 0. 
    lv_func = s_tab-value. 
  ELSE. 
    REFRESH:t_tab. 
    mesgadd:'RETURN' 'E', 
            'MESSAGE' '未指定函数!'. 
    RETURN. 
  ENDIF. 
 
  CASE lv_func. 
    WHEN 'CREDIT02'. 
      ASSIGN gs_zsds003 TO <dyn_wa>."表头结构 
    WHEN OTHERS. 
  ENDCASE. 
 
 
  LOOP AT t_tab INTO s_tab."表头数据装换 
    ASSIGN COMPONENT s_tab-fieldname OF STRUCTURE <dyn_wa> TO <dyn_field>. 
    IF sy-subrc = 0. 
      <dyn_field> = s_tab-value. 
      IF s_tab-fieldname = 'KLIMK'. 
        lv_int = s_tab-value. 
        gs_zsds003-klimk = lv_int. 
      ENDIF. 
    ENDIF. 
  ENDLOOP. 
 
  REFRESH:t_tab."清空表头 
 
  CASE lv_func. 
 
    WHEN 'CREDIT02'. 
 
      IF gs_zsds003-ctlpc IS INITIAL. 
        gs_zsds003-ctlpc = 'Z01'. 
      ENDIF. 
      CONCATENATE 'Z' gs_zsds003-kkber INTO gs_zsds003-kkber. 
      CONDENSE gs_zsds003-kkber NO-GAPS. 
      IF gs_zsds003-waers IS INITIAL. 
        gs_zsds003-waers = 'CNY'. 
      ENDIF. 
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' 
        EXPORTING 
          input  = gs_zsds003-kunnr 
        IMPORTING 
          output = gs_zsds003-kunnr. 
 
      SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_knkk 
         FROM knkk WHERE kunnr = gs_zsds003-kunnr AND kkber = gs_zsds003-kkber. 
      IF sy-subrc = 0. 
        gv_upd = 'U'. 
      ELSE. 
        gv_upd = 'I'. 
      ENDIF. 
 
      SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_knka 
        FROM knka WHERE kunnr = gs_zsds003-kunnr. 
 
      gs_knkk-kunnr = gs_zsds003-kunnr. 
      gs_knkk-knkli = gs_zsds003-kunnr. 
      gs_knkk-kkber = gs_zsds003-kkber. 
      gs_knkk-klimk = gs_zsds003-klimk. 
      gs_knkk-erdat = sy-uname. 
      gs_knkk-ctlpc = gs_zsds003-ctlpc. 
 
 
      CALL FUNCTION 'CREDITLIMIT_CHANGE' 
        EXPORTING 
          i_knka   = gs_knka 
          i_knkk   = gs_knkk 
          upd_knka = '0' 
          upd_knkk = gv_upd 
*         XNEUA    = ' ' 
*         XREFL    = ' ' 
          yknka    = gv_knka 
          yknkk    = gv_knkk. 
      IF sy-subrc = 0. 
        mesgadd:'RETURN' 'S', 
                'MESSAGE' '信贷更新成功!'. 
      ELSE. 
        mesgadd:'RETURN' 'E', 
                'MESSAGE' '信贷更新失败!'. 
      ENDIF. 
 
       WHEN OTHERS. 
  ENDCASE. 
 
 
 
ENDFUNCTION.

结构,自己参考那几个表就晓得了。。。主要说的是这个函数的用法

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/18648.html

(0)
上一篇 2021年7月19日 21:20
下一篇 2021年7月19日 21:20

相关推荐

发表回复

登录后才能评论