zoukankan      html  css  js  c++  java
  • 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.

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

  • 相关阅读:
    JavaScript一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
    JavaScript多个音频audio标签或者多个视频video,点击其中一个播放时,其他的停止播放
    JavaScript多个h5播放器video,点击一个播放其他暂停
    jQuery表单2
    CSS3-渐变这个属性2
    微信小程序——扫码后提示“打开失败缺少ID”
    js隐藏button
    js 跳转链接的几种方式
    使用onclick报SyntaxError: identifier starts immediately after numeric literal
    jsp中获取attribute
  • 原文地址:https://www.cnblogs.com/sapSB/p/4815440.html
Copyright © 2011-2022 走看看