客户需求:根据ALV上的采购订单IDN进行过账,如果有IDN,就根据IDN过账,如果没有,就根据采购订单过账。

BAPI ITEM数据填充如下:

DATA:ls_goodsmvt_item TYPE bapi2017_gm_item_create,l_line           TYPE char6,l_str            TYPE string,lt_return        LIKE bapiret2 OCCURS 0,lv_ebeln         TYPE ekpo-ebeln,lv_ebelp         TYPE ekpo-ebelp,lv_smbln         TYPE matdoc-smbln,lv_smblp         TYPE matdoc-smblp,lv_sgtxt         TYPE matdoc-sgtxt,ls_lips          TYPE lips.l_line = pv_tabix.
* 抬头IF p_budat IS NOT INITIAL.ps_goodsmvt_header-pstng_date = p_budat.ELSE.ps_goodsmvt_header-pstng_date = sy-datum.ENDIF.ps_goodsmvt_header-doc_date   = sy-datum.
* 明细
*  ls_goodsmvt_item-line_id     = 1.ls_goodsmvt_item-line_id        = l_line.ls_goodsmvt_item-plant          = ps_alv-werks."委托工厂ls_goodsmvt_item-material       = ps_alv-matnr."物料ls_goodsmvt_item-entry_qnt      = ps_alv-menge."数量ls_goodsmvt_item-batch          = ps_alv-charg."批次ls_goodsmvt_item-entry_uom      = ps_alv-meins.ls_goodsmvt_item-entry_uom_iso  = ps_alv-meins.CONCATENATE 'ZPP104A:' ps_alv-mblnr '/' ps_alv-zeileINTO ls_goodsmvt_item-item_text.CASE ps_alv-zdoctyp.WHEN TEXT-006.
* 事务代码ls_goodsmvt_item-move_type  = '101'."移动类型
*     委托方采购订单IDN过账IF ps_alv-vbeln_idn IS NOT INITIAL.ps_goodsmvt_code-gm_code    = '01'.                 "MIGOls_goodsmvt_item-deliv_numb_to_search = ps_alv-vbeln_idn.ls_goodsmvt_item-deliv_item_to_search = ps_alv-vbelp_idn.
*        ls_goodsmvt_item-po_number  = ps_alv-ebeln.
*        ls_goodsmvt_item-po_item    = ps_alv-ebelp.ls_goodsmvt_item-prod_date  = sy-datum."生产日期ls_goodsmvt_item-mvt_ind    = 'B'. "移动标识SELECT SINGLE *FROM lipsINTO ls_lipsWHERE vbeln = ps_alv-vbeln_idnAND posnr = ps_alv-vbelp_idn.IF ls_lips-lgort IS NOT INITIAL.ls_goodsmvt_item-stge_loc = ls_lips-lgort.ENDIF.IF ls_lips-charg IS NOT INITIAL.ls_goodsmvt_item-batch  = ls_lips-charg.ENDIF.
*     委托方采购订单过账ELSE.ps_goodsmvt_code-gm_code    = '01'.                 "MIGOSELECT SINGLE*FROM ekpoWHERE ebeln = @ps_alv-ebelnAND  ebelp = @ps_alv-ebelpINTO @DATA(ls_ekpo).ls_goodsmvt_item-stge_loc   = ls_ekpo-lgort."地点ls_goodsmvt_item-po_number  = ps_alv-ebeln.ls_goodsmvt_item-po_item    = ps_alv-ebelp.ls_goodsmvt_item-prod_date  = sy-datum."生产日期ls_goodsmvt_item-mvt_ind   = 'B'. "移动标识ENDIF.WHEN TEXT-007.
* 事务代码ps_goodsmvt_code-gm_code    = '03'.                 "MIGOls_goodsmvt_item-xstob      = 'X'.
*      ls_goodsmvt_item-move_type  = ps_alv-bwart."移动类型
*      ls_goodsmvt_item-move_reas  = 0001."移动原因SELECT SINGLE smbln smblpFROM matdocINTO ( lv_smbln, lv_smblp )WHERE mblnr = ps_alv-mblnrAND zeile = ps_alv-zeile.CONCATENATE 'ZPP104A:' lv_smbln '/' lv_smblpINTO lv_sgtxt.SELECT SINGLE mblnr zeileFROM matdocINTO ( ls_goodsmvt_item-ref_doc,ls_goodsmvt_item-ref_doc_it )WHERE sgtxt = lv_sgtxt.ls_goodsmvt_item-ref_doc_yr = '2019'.ENDCASE.APPEND ls_goodsmvt_item TO pt_goodsmvt_item.CLEAR ls_goodsmvt_item.

根据采购订单IDN进行MIGO过账的BAPI逻辑相关推荐

  1. SAP WM 针对采购订单收货时候不能自动获取物料主数据里的Special Movement Indicator?

    SAP WM 针对采购订单收货时候不能自动获取物料主数据里的Special Movement Indicator? SAP WM模块里有一个标记叫做Special Movement Indicator ...

  2. SAP已发票校验采购订单退货 - 特殊业务

    采购业务过程中,偶尔出现外购物料质量问题或采购订单价格输入错误等原因,需要在系统中做收货的冲销. 外购物料退回给供应商在不同的业务场景中,可能出现的移动类型有102.122.162甚至是601等. 1 ...

  3. SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?

    SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了? 正确答案是: 不允许,这是SAP标准逻辑. 那么问题来了!今日收到业务人员报说采购订单4300013979,完成了收货和IV, ...

  4. SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?

    SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值? 最近在准备一个采购订单行项目的增强的function spec.其中有一段逻辑是取到采购订单行项目条件里某个指定的条件类 ...

  5. SAP QM 采购订单收货时没有Vendor CoA就不让收货过账的实现

    SAP QM 采购订单收货时没有Vendor CoA就不让收货过账的实现 物料号757, 指派了QM Control Key 0005, Certificate Type Z01,没有激活检验类型. ...

  6. SAP中MIGO收货时分清采购订单和订单收货的区别

    在应用中偶然会遇到用户反映在做收货处理时,输入采购订单号后,无法代出采购订单中对应的收货项目:检查发现用户在操作MIGO时的选择了不正确造成的(如下图).这里的R08在MIGO界面中没有非常明确的指向 ...

  7. BAPI_GOODSMVT_CREATE MIGO采购订单IQC质检退回到供应商 124 实例

    移动标识:MVT_IND 货物移动事务代码:GM_CODE 01 MB01 按采购订单的货物移动 02 MB31 按生产订单的货物移动 03 MB1A 货物提取(工单退料) 04 MB1B 转移过帐 ...

  8. SAP MM 移动平均价的商品发票价格和采购订单价格差异的处理

    SAP MM 移动平均价的商品发票价格和采购订单价格差异的处理 SAP系统中,如果某个商品采用移动平均价,则一般而言,采购订单和发票上的价格差异,不会计入价差科目里,当然前提是库存数量大于发票上的数量 ...

  9. SAP RETAIL 我的第一个寄售类型的跨公司采购订单

    SAP RETAIL 我的第一个寄售类型的跨公司采购订单 笔者所关注的一个零售行业项目里,存在总公司进口商品后,转给国内的销售公司,然后再由销售公司的门店销售给客户的场景.这是典型的跨公司采购,或者说 ...

最新文章

  1. 剑指offer 28:字符串的排列
  2. Atitit.木马病毒自动启动-------------win7计划任务的管理
  3. 【Luogu4512】多项式除法(FFT)
  4. js 区分 safari chrome iso
  5. 使用LWA和Lync模拟外部测试无边缘单前端环境
  6. 【企业管理】人力资源是CEO的第一工程
  7. 反思赚钱:一定要动脑子 一定找发财点
  8. vim 常用快捷键总结
  9. latex ht在下一页_告诉我们在下一本出色的领导力著作中要包括的内容
  10. 和当前时间比较_货币的时间价值
  11. rx java定时循环_Rxjava定时器异常循环
  12. word20161205
  13. unity 贴图设置
  14. 刷机工具-fastboot
  15. linux 网卡队列深度,linux 磁盘队列深度nr_requests 和 queue_depth
  16. pycharm更改运行环境
  17. 分析PS中的3D功能
  18. 初学SDRAM笔记2--SDRAM的信号线及结构图
  19. 1.2样本空间和随机事件
  20. python基础实例教程 微课版-Python爬虫开发实战教程(微课版)

热门文章

  1. xampp、lamp、lampp
  2. zabbix接入百度告警详细攻略
  3. MobaXterm使sftp目录与terminal目录同步
  4. Java的try/catch/finally/final
  5. 学校为什么要单位接收函_单位接收函必须要开吗
  6. 第三代半导体将写入“十四五规划”,这些公司有涉及
  7. JSP六个动作详解...
  8. 新浪微博推出大数据营销产品
  9. 电力行业海量数据处理如何做?看中节能、上海电气案例分享
  10. java condition原理_java中Condition接口原理及实现