PO创建出口检查

简介: po针对行项目检查有两个出口: 出口一: 示例代码   ME_PROCESS_PO_CUST~IF_EX_ME_PROCESS_PO_CUST~CHECK   SPAN { font-family: "Courier New"; font-size...
po针对行项目检查有两个出口:
出口一:
示例代码
 
ME_PROCESS_PO_CUST~IF_EX_ME_PROCESS_PO_CUST~CHECK
  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } </STYLE. *include MM_MESSAGES_MAC.
*  DATA: header TYPE mepoheader,
*items TYPE purchase_order_items,
*line_item TYPE purchase_order_item,
*po_line TYPE mepoitem,
*po_condition type mmpur_tkomv,
*wa_im_komv TYPE komv,
*eipo_line type MEPO_EIPO. "Foreign Trade: Export/Import: Item Data
*
*DATA:LW_A992 TYPE A992.
*
*data:l_flag(1)."是否能手工创建采购订单标志,只是限制ZPO1,ZPO2的订单类型
*
*  header = im_header->get_data( ).
*
*   items = im_header->get_items( ).
*  CLEAR:l_flag.
*  BREAK-POINT.
*  LOOP AT items INTO line_item.
*
*     po_line = line_item-item->get_data( ).
*
*    IF PO_LINE-BANFN = ''.
*     l_flag = 'X'.
*    ENDIF.
**    CALL METHOD line_item-item->get_conditions
**      IMPORTING
**         ex_conditions = po_condition.
***    IF header-INCO1 <> '100'.
**      BREAK-POINT.
**      loop at po_condition into wa_im_komv.
***        IF wa_im_komv-KSCHL = 'ZFR1' AND wa_im_komv-LIFNR = header-LIFNR.
***           mmpur_message 'W' 'ZMSG' '003' wa_im_komv-KPOSN '' '' ''.
***        ENDIF.
***        clear wa_im_komv.
**
**
**      endloop.
**    endif.
*
*    SELECT SINGLE *
*      INTO LW_A992
*      FROM A992
*     WHERE ZZLGORT = PO_LINE-LGORT
*       AND MATNR   = PO_LINE-MATNR.
*    IF SY-SUBRC <> 0.
*      MESSAGE '请维护该物料的采购信息记录' type  'E'.
*    ENDIF.
*
*  endloop.
*
**IF ( header-BSART = 'ZPO1' OR header-BSART = 'ZPO2' ) AND l_flag = 'X' and sy-TCODE = 'ME21N'.
**     mmpur_message 'E' 'ZMSG' '004' '' '' '' ''.
**ENDIF.
 
出口2
ME_PROCESS_PO_CUST~IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM
 
  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } </STYLE. method if_ex_me_process_po_cust~process_item.
  include mm_messages_mac.

  data:wa_mara type mara.
  data : re_header type mepoheader.
  data:l_item type mepoitem.
  data: l_header type ref to if_purchase_order_mm."采购订单抬头

  data:lw_flag1.
  data:lw_flag2.

  data:lw_str type string.

  l_header = im_item->get_header( ).
  re_header = l_header->get_data( )."获取头信息

  l_item =   im_item->get_data( ).

  check re_header-kalsm = 'ZRM002'.

** 针对关税必须维护采购信息记录
  data:lw_a992 type a992.

  select single *
    into lw_a992
    from a992
   where  kschl   = 'ZGS1'          "关税
      and zzlgort = l_item-lgort
     and matnr   = l_item-matnr.

**  如果没有找到相应的记录,则报错

  if sy-subrc <> 0.

    lw_flag1 = '1'.
*    message '请维护该物料的关税的采购信息记录' type  'E'.

  endif.

** 针对消费税,整车必须维护消费税信息记录,部品不需要

**取物料的产品类型
  data:lw_mtart type mara-mtart.
  select single mtart into lw_mtart
    from mara
    where matnr = l_item-matnr.


  if lw_mtart = 'ZCAR'.  "整车

    select single *
      into lw_a992
      from a992
     where  kschl   = 'ZXFS'          "消费税
        and zzlgort = l_item-lgort
       and matnr   = l_item-matnr.

**  如果没有找到相应的记录,则报错

    if sy-subrc <> 0.

*      message '请维护该物料的消费税的采购信息记录' type  'E'.

      lw_flag2 = '1'.

    endif.

  endif.

  if lw_flag1 = '1' and lw_flag2 = '1'.

    concatenate '请维护物料'
                 l_item-matnr
                 '的关税和消费税'
           into lw_str.
  elseif lw_flag1 = '1' and lw_flag2 = ''.

    concatenate '请维护物料'
                 l_item-matnr
                 '的关税'
           into lw_str.
  elseif lw_flag1 = '' and lw_flag2 = '1'.
    concatenate '请维护物料'
                 l_item-matnr
                 '消费税'
           into lw_str.
  else.

  endif.

  clear:lw_flag1,lw_flag2,lw_mtart.

  message lw_str type 'E'.

endmethod.
目录
相关文章
|
NoSQL Redis
Mac安装Redis(图文解说详细版)
Mac安装Redis(图文解说详细版)
Mac安装Redis(图文解说详细版)
|
4月前
|
SQL 自然语言处理 关系型数据库
通义灵码2.5来袭!MCP 功能直接让开发效率提升300%(附实战案例)
通义灵码2.5是阿里云推出的AI编码助手,以智能协作为核心,深度融合开发全流程。其三大升级点包括:编程智能体实现任务自主规划、MCP工具生态支持自然语言生成SQL、记忆进化系统个性化适配开发者习惯。通过自然语言即可完成数据库操作、代码生成与优化,大幅提升开发效率。此外,还具备工程级变更管理、多文件协同编辑及版本控制功能,适用于多种IDE环境,为企业提供安全高效的开发解决方案。
|
JavaScript 数据安全/隐私保护
SAP PP使用ECR去修改BOM主数据(一)
SAP PP使用ECR去修改BOM主数据(一)
SAP PP使用ECR去修改BOM主数据(一)
SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?
SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?
SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?
SAP MM 采购申请中的物料组字段改成Optional
SAP MM 采购申请中的物料组字段改成Optional
SAP MM 采购申请中的物料组字段改成Optional
SAP权限对象的校验
什么是权限对象?还是直接打开SAP用事务码SU21看看权限对象长什么样子使用事务码SU21可以查看SAP系统中所有的(系统自带的or自定义的)权限对象,【权限对象】中配置了【权限字段】现在我们看到了权限对象是什么东东,那么,我们如何在代码中对权限对象进行检验,从而做到对不同的权限,进行不同的编码呢.
4302 0
SAP 增强学习(1):一代增强 USER EXIT
程序:MV45AFZZ 下面以创建销售订单(VA01)内的一代增强为例,当选择某些指定的销售订单的类型时,PO NUMBER变成必输项。。   介绍SAP的一代增强我称之为USER EXIT(用户出口),从字面上也很好理解,就是SAP在标准的程序中有预留了一些给用户后续增加新功能的出口USER EXIT。
3001 0
|
供应链 JavaScript BI
《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——3.3 MRP结果评估概览
本节书摘来自华章计算机《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》一书中的第3章,第3.3节,作者 乐立骏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
8288 0
SAP MM Define MRP Group for Material Type.
SAP MM Define MRP Group for Material Type.   如下配置的作用在何处?     进入如下界面:   比如为GR01物料类型1000工厂下分配了MRP Group SCM2。
1239 0
配额协议
1.后台配置,采购-配额协议2.物料基本资料,采购-配额协议,选择相应的策略3.meq1建立配额协议4.配额原则:已分配数量+基数/配额  取最小值。5.有个最小分割数量,如果填了,超过此数量,它會在MD04中產生另外一個需求,它会分配给另外一个供应商。
1245 0