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 <
SAP与第三方报销系统集成接口代码
最新推荐文章于 2024-07-11 21:13:07 发布