SAP与第三方报销系统集成接口代码

 CLEAR:CONTN.

  2.2.1"获取公司代码

  SELECT SINGLE BUKRS INTO I_HEAD-BUKRS
    FROM ZTEOS01
    WHERE ZDWH = I_HEAD-ZDWH.
  IF SY-SUBRC <> 0.
    I_HEAD-TYPE = 'E'.
    I_HEAD-MESSAGE = 'EOS单位与公司代码对应表未维护,请使用ZF014检查'.
  ENDIF.

  CLEAR:GD_DOCUMENTHEADER.

  CLEAR:OBJ_TYPE,OBJ_KEY,OBJ_SYS.

  REFRESH:IT_ACCOUNTGL,IT_CURRENCYAMOUNT,IT_EXTENSION2,IT_ACCOUNTPAYABLE.
2.2.2  "输入过账抬头信息

  GD_DOCUMENTHEADER-USERNAME = SY-UNAME.
  GD_DOCUMENTHEADER-HEADER_TXT = I_HEAD-BKTXT.              "#EC NOTEXT
  GD_DOCUMENTHEADER-COMP_CODE = I_HEAD-BUKRS.
  GD_DOCUMENTHEADER-FISC_YEAR = I_HEAD-ZBUDT(4).
  GD_DOCUMENTHEADER-DOC_DATE = I_HEAD-ZBUDT.
  GD_DOCUMENTHEADER-PSTNG_DATE = I_HEAD-ZBUDT.
  CONCATENATE 'EOS' I_HEAD-ZLART(2) I_HEAD-ZNUMB INTO GD_DOCUMENTHEADER-REF_DOC_NO.
  "GD_DOCUMENTHEADER-BUS_ACT = 'RFBU'.

  ITEMS = 1.

  CASE I_HEAD-ZLART.
    WHEN 'JK'.  
2.2.3"借款报销单

      IF I_HEAD-ZBUME IS NOT INITIAL.
        L_CHAR = I_HEAD-ZBUME.
        "获取利润中心
        SELECT SINGLE PRCTR INTO I_HEAD-PRCTR
          FROM ZTEOS03
          WHERE ZBUME = L_CHAR.
        IF SY-SUBRC <> 0.
          I_HEAD-TYPE = 'E'.
          I_HEAD-MESSAGE = 'EOS 部门与利润中心对应表未维护,请使用ZF015检查'.
        ENDIF.
      ENDIF.

      IF I_HEAD-LIFNR IS NOT INITIAL.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
          EXPORTING
            INPUT  = I_HEAD-LIFNR
          IMPORTING
            OUTPUT = I_HEAD-LIFNR.


        CONCATENATE 'K' I_HEAD-LIFNR INTO I_HEAD-LIFNR.

        2.2.4获取员工编号

        SELECT SINGLE LIFNR INTO I_HEAD-LIFNR
          FROM LFA1
          WHERE LIFNR = I_HEAD-LIFNR.
        IF SY-SUBRC <> 0.
          I_HEAD-TYPE = 'E'.
          I_HEAD-MESSAGE = 'EOS 员工编号未维护供应商,请使用XK03检查'.
        ENDIF.
      ENDIF.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = I_HEAD-SAKNR
        IMPORTING
          OUTPUT = I_HEAD-SAKNR.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = I_HEAD-ZBUME
        IMPORTING
          OUTPUT = I_HEAD-ZBUME.

      IF I_HEAD-LIFNR IS INITIAL.
        I_HEAD-TYPE = 'E'.
        I_HEAD-MESSAGE = 'EOS员工编号必须录入'.
      ENDIF.

      I_HEAD-ZUONR = I_HEAD-ZNUMB.

      GD_DOCUMENTHEADER-DOC_TYPE = 'Z3'.
      
        2.2.5"过账的行项目信息

      CLEAR IT_ACCOUNTPAYABLE.
      IT_ACCOUNTPAYABLE-ITEMNO_ACC = '1'.
      IT_ACCOUNTPAYABLE-VENDOR_NO = I_HEAD-LIFNR .
      IT_ACCOUNTPAYABLE-ITEM_TEXT = I_HEAD-BKTXT.           "#EC NOTEXT
      IT_ACCOUNTPAYABLE-PROFIT_CTR = I_HEAD-PRCTR.
      IT_ACCOUNTPAYABLE-COMP_CODE = I_HEAD-BUKRS.
      IT_ACCOUNTPAYABLE-REF_KEY_1 = I_HEAD-LIFNR.
      IT_ACCOUNTPAYABLE-ALLOC_NMBR = I_HEAD-ZUONR.
      IT_ACCOUNTPAYABLE-BLINE_DATE = SY-DATUM.

      SELECT SINGLE ZTERM INTO IT_ACCOUNTPAYABLE-PMNTTRMS
        FROM LFB1
        WHERE LIFNR = I_HEAD-LIFNR
        AND BUKRS = I_HEAD-BUKRS.
      APPEND IT_ACCOUNTPAYABLE.

      
        2.2.6过账的金额

      CLEAR IT_CURRENCYAMOUNT.
      IT_CURRENCYAMOUNT-ITEMNO_ACC = '1'.
      "IT_CURRENCYAMOUNT-CURR_TYPE = '00'.
      IT_CURRENCYAMOUNT-CURRENCY = I_HEAD-WAERS.
      IT_CURRENCYAMOUNT-AMT_DOCCUR = I_HEAD-DMBTR.
      APPEND IT_CURRENCYAMOUNT.

      "过账的行项目信息
      CLEAR IT_ACCOUNTGL.
      IT_ACCOUNTGL-ITEMNO_ACC = '2'.
      IT_ACCOUNTGL-GL_ACCOUNT = I_HEAD-SAKNR.
      IT_ACCOUNTGL-ITEM_TEXT = I_HEAD-BKTXT.                "#EC NOTEXT
      IT_ACCOUNTGL-PROFIT_CTR = I_HEAD-PRCTR.
      IT_ACCOUNTGL-COMP_CODE = I_HEAD-BUKRS.
      IT_ACCOUNTGL-ACCT_TYPE = 'S'.
      IT_ACCOUNTGL-ALLOC_NMBR = I_HEAD-ZUONR.
      IT_ACCOUNTGL-REF_KEY_1 = I_HEAD-LIFNR.
      IT_ACCOUNTGL-VALUE_DATE = SY-DATUM.
      "IT_ACCOUNTGL-DOC_TYPE = 'SA'.
      APPEND IT_ACCOUNTGL.

       
        2.2.7过账的金额  *-1为贷方

      CLEAR IT_CURRENCYAMOUNT.
      IT_CURRENCYAMOUNT-ITEMNO_ACC = '2'.
      "IT_CURRENCYAMOUNT-CURR_TYPE = '00'.
      IT_CURRENCYAMOUNT-CURRENCY = I_HEAD-WAERS.
      IT_CURRENCYAMOUNT-AMT_DOCCUR = I_HEAD-DMBTR * -1.
      APPEND IT_CURRENCYAMOUNT.

    WHEN 'BX'.   
        2.2.8"报销接口

      GD_DOCUMENTHEADER-DOC_TYPE = 'Z3'.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = I_HEAD-SAKNR
        IMPORTING
          OUTPUT = I_HEAD-SAKNR.

      LOOP AT T_ITEM.
        IF T_ITEM-ZBUME IS NOT INITIAL.
          L_CHAR = T_ITEM-ZBUME.
          SELECT SINGLE PRCTR INTO I_HEAD-PRCTR
            FROM ZTEOS03
            WHERE ZBUME = L_CHAR.
          IF SY-SUBRC <
  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小啊曼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值