使用BAPI函数BAPI_ACC_DOCUMENT_POST推送会计凭证时,对于需要外部输入汇率的情况,需要特别指定换算日期和汇率和本位币金额。本位币金额可以用程序算,也可以外部输入,如果既不指定金额也不计算则本位币金额时0、这与F-02直接录入会计凭证不同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
*&------金额数据 SELECT SINGLE WAERS INTO @DATA(LV_WAERS) FROM T001 WHERE BUKRS = @LW_BKPF-BUKRS. IF LW_BKPF-WAERS <> LV_WAERS. *&---------------原币金额. CLEAR IT_CURRENCYAMOUNT. IT_CURRENCYAMOUNT-ITEMNO_ACC = L_ITEMNO. IT_CURRENCYAMOUNT-CURRENCY = LW_BKPF-WAERS. IT_CURRENCYAMOUNT-CURR_TYPE = '00'. IF LW_TBSL-SHKZG = 'S'. IT_CURRENCYAMOUNT-AMT_DOCCUR = ABS( LW_BSEG-WRBTR ). ELSE. IT_CURRENCYAMOUNT-AMT_DOCCUR = 0 - ABS( LW_BSEG-WRBTR ). ENDIF. APPEND IT_CURRENCYAMOUNT. *&---------------本位币金额 CLEAR IT_CURRENCYAMOUNT. IT_CURRENCYAMOUNT-ITEMNO_ACC = L_ITEMNO. IT_CURRENCYAMOUNT-CURRENCY = LV_WAERS. IT_CURRENCYAMOUNT-CURR_TYPE = '10'. IF LW_BSEG-DMBTR IS NOT INITIAL . IF LW_TBSL-SHKZG = 'S'. IT_CURRENCYAMOUNT-AMT_DOCCUR = ABS( LW_BSEG-DMBTR ). ELSE. IT_CURRENCYAMOUNT-AMT_DOCCUR = 0 - ABS( LW_BSEG-DMBTR ). ENDIF. ELSE. IF LW_BKPF-KURSF IS NOT INITIAL. IF LW_TBSL-SHKZG = 'S'. IT_CURRENCYAMOUNT-AMT_DOCCUR = LW_BKPF-KURSF * LW_BSEG-WRBTR. ELSE. IT_CURRENCYAMOUNT-AMT_DOCCUR = -1 * ABS( LW_BKPF-KURSF * LW_BSEG-WRBTR ). ENDIF. ENDIF. ENDIF. " 汇率. IF LW_BKPF-KURSF IS NOT INITIAL. IT_CURRENCYAMOUNT-EXCH_RATE = LW_BKPF-KURSF. ENDIF. APPEND IT_CURRENCYAMOUNT. ELSE. CLEAR IT_CURRENCYAMOUNT. IT_CURRENCYAMOUNT-ITEMNO_ACC = L_ITEMNO. IT_CURRENCYAMOUNT-CURRENCY = LW_BKPF-WAERS. IF LW_TBSL-SHKZG = 'S'. IT_CURRENCYAMOUNT-AMT_DOCCUR = ABS( LW_BSEG-WRBTR ). ELSE. IT_CURRENCYAMOUNT-AMT_DOCCUR = 0 - ABS( LW_BSEG-WRBTR ). ENDIF. APPEND IT_CURRENCYAMOUNT. ENDIF. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/10596.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。