BAPI |
您所在的位置:网站首页 › sap交货数量大于确认数量 › BAPI |
发票校验的四种类型 1.基于采购订单的发票校验:填写采购订单(根据配置决定是否需要采购订单收货) 2.基于收货的发票校验:填写采购订单和收货物料凭证的参考凭证。需要采购订单勾选,基于收货的发票校验(勾选了之后也只能基于收货做发票了) 3.没有订单的发票校验:不填写采购订单,直接计入总账或资产科目
错误: 如果没有填写lt_bapi_item-po_unit,会产生 没有指定 ISO-CodeSPACE 的测量单位 的错误 如果收货做了贷项或者退货做的正向的会报错:迄今为止冲销数量大于贷出数量 如果发票校验数量大于参考凭证可做数量,会报错“冲销数量大于目前以开票数量”,比如做折扣时如果折扣金额大于总金额, 金额为负做贷项凭证时,就会报这个错误(采购订单项目非退货)(所以这个方案行不通)。 M8147 - Account Determination for entry not possible:这个是金额差异太大,gross_amount不等于行项目金额+税额
发票校验的差异 如果发票校验行项目金额和采购订单行项目金额不一致,根据配置有两种记差异的方法。 1.发票校验时行项目和抬头填入实际金额,根据配置,生成会计凭证的时候自动计一笔物料差异科目,此时差异科目是带物料号的。 2.发票校验时行项目填入采购订单金额,抬头填入实际金额,另外记一笔差异科目,金额 = 抬头金额 - 税额 - 行项目金额。此时会计入库存商品科目,同时会有一笔差异科目(手工记的),此时差异是不带物料号的。
问题 M8 088 发出数量为0的错误, 如果是基于收货的发票校验,传入的参考凭证被冲销了,即使采购订单确实收货了,也会报这个错误 可以通过OMRM配置,注意标准是W表示MIRO不会报错,所以 No measurement unit is assigned to ISO code & 原因:订单计量单位和订单价格单位不一致,需要填写PO_PR_UOM_ISO、PO_PR_UOM
4.取发票校验参考数据 ME_READ_HEADER_INVOICE ME_READ_ITEM_INVOICE
DEMO form post using ut_out type ty_t_out changing cv_belnr cv_msg. data ls_out type ty_out.
*BAPI data: ls_header like bapi_incinv_create_header, ls_item type bapi_incinv_create_item, lt_item type table of bapi_incinv_create_item, ls_tax type bapi_incinv_create_tax, lt_tax type table of bapi_incinv_create_tax, ls_return type bapiret2 , lt_return type table of bapiret2 .
data: * lv_invno like bapi_incinv_fld-inv_doc_no, lv_fyear like bapi_incinv_fld-fisc_year.
clear:cv_belnr,cv_msg.
*基于采购订单的发票校验 loop at ut_out into ls_out. ls_item-invoice_doc_item = sy-tabix. ls_item-po_number = ls_out-ebeln. "ENTER THE PO NUMBER ls_item-po_item = ls_out-ebelp. "ENTER THE PO ITEM NUMBER ls_item-tax_code = ls_out-mwskz. "税码 ls_item-item_amount = ls_out-netwr. "不含税金额 ls_item-quantity = ls_out-fkimg. "数量 ls_item-po_unit = ls_out-meins. "单位 ls_item-ITEM_TEXT = p_sh. "税号 append ls_item to lt_item.
ls_header-gross_amount = ls_header-gross_amount + ls_out-hsje. ls_tax-tax_amount = ls_tax-tax_amount + ls_out-mwsbp. "税额 endloop.
append ls_tax to lt_tax.
ls_header-invoice_ind = 'X'. "记帐发票(正向) ls_header-pmnttrms = ls_out-zterm. "付款条件 ls_header-doc_date = P_DATUM. "ENTER THE DOCUMENT DATE ls_header-pstng_date = ls_out-budat. "ENTER THE POSTING DATE ls_header-ref_doc_no = p_sh. ls_header-comp_code = p_bukrs. ls_header-gross_amount = ls_header-gross_amount. "发票总金额(含税) * ls_header-calc_tax_ind = 'X'. "自动计算税额(不能修改税额了,不需要传入taxdata,但是gross_amount好像还是要算?所以还是取税率计算) ls_header-currency = 'CNY'.
call function 'BAPI_INCOMINGINVOICE_CREATE' exporting headerdata = ls_header * ADDRESSDATA = importing invoicedocnumber = cv_belnr fiscalyear = lv_fyear tables itemdata = lt_item * ACCOUNTINGDATA = * GLACCOUNTDATA = * MATERIALDATA = taxdata = lt_tax * WITHTAXDATA = * VENDORITEMSPLITDATA = return = lt_return * EXTENSIONIN = .
if cv_belnr is not initial. call function 'BAPI_TRANSACTION_COMMIT' exporting wait = 'X'. * cv_msg = '发票校验成功,发票号:' && cv_belnr. else. call function 'BAPI_TRANSACTION_ROLLBACK'. cv_msg = '发票校验失败' . loop at lt_return into ls_return where type = 'E' or type = 'A' or type = 'X'. cv_msg = cv_msg && ',' && ls_return-message. endloop. endif.
endform. " POST
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |