*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(IN_EBELN) TYPE BAPIMMPARA-PO_NUMBER
*" REFERENCE(IN_FLAG) TYPE CHAR01
*" REFERENCE(IN_FRGCO) TYPE BAPIMMPARA-PO_REL_COD
*" EXPORTING
*" REFERENCE(OUT_MSG) TYPE STRING
*"----------------------------------------------------------------------
CLEAR:OUT_MSG.
IF IN_FLAG = 'Y'.
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
PURCHASEORDER = IN_EBELN
PO_REL_CODE = IN_FRGCO
EXCEPTIONS
AUTHORITY_CHECK_FAIL =
DOCUMENT_NOT_FOUND =
ENQUEUE_FAIL =
PREREQUISITE_FAIL =
RELEASE_ALREADY_POSTED =
RESPONSIBILITY_FAIL =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
OUT_MSG = 'S'.
ENDIF.
ELSEIF IN_FLAG = 'N'.
CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
EXPORTING
PURCHASEORDER = IN_EBELN
PO_REL_CODE = IN_FRGCO
EXCEPTIONS
AUTHORITY_CHECK_FAIL =
DOCUMENT_NOT_FOUND =
ENQUEUE_FAIL =
PREREQUISITE_FAIL =
RELEASE_ALREADY_POSTED =
RESPONSIBILITY_FAIL =
NO_RELEASE_ALREADY =
NO_NEW_RELEASE_INDICATOR =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
OUT_MSG = 'S'.
ENDIF.
ENDIF.

相关表:

透明表             T16FS   批准策略

T16FE                          批准标识的描述:采购凭证

使用ME25K 审批按钮跟踪:

标准事物: ME29N  采购订单审批

ME35K  采购合同审批

都会走程序  SAPLMEREP

包含文件     LMEREPI20

调用函数   BAPI_PO_RELEASE

标准代码

  METHOD rel_resetrel.

    DATA: ls_outtab       TYPE merep_outtab_purchdoc_rel,
l_model TYPE REF TO lcl_reporting_model,
l_datablade TYPE REF TO lcl_datablade_general,
l_frgab TYPE rm06b-frgab,
l_frgzu TYPE ekko-frgzu,
l_frgke TYPE ekko-frgke,
l_ebeln TYPE ekko-ebeln. FIELD-SYMBOLS: <line> LIKE LINE OF gt_outtab_purchdoc_rel. l_model = my_view->get_model( ).
l_datablade ?= l_model->get_current_datablade( ).
l_frgab = l_datablade->get_option( 'FRGAB' ).
CHECK NOT l_frgab IS INITIAL. MOVE-CORRESPONDING im_wa TO ls_outtab.
CASE ls_outtab-icon_release.
WHEN lcl_datablade_purchdoc_rel=>my_icon_allowed.
* release
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
purchaseorder = ls_outtab-ebeln
po_rel_code = l_frgab
use_exceptions = 'X'
IMPORTING
rel_status_new = l_frgzu
rel_indicator_new = l_frgke
EXCEPTIONS
error_message =
OTHERS = .
IF sy-subrc <> .
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* update output table
LOOP AT gt_outtab_purchdoc_rel ASSIGNING <line> WHERE
ebeln = ls_outtab-ebeln.
IF l_ebeln NE ls_outtab-ebeln.
<line>-icon_release = lcl_datablade_purchdoc_rel=>my_icon_done.
l_ebeln = ls_outtab-ebeln.
ELSE.
CLEAR <line>-icon_release.
ENDIF.
<line>-frgzu = l_frgzu.
<line>-frgke = l_frgke.
SELECT SINGLE frget FROM t16fe INTO <line>-frget WHERE
spras EQ sy-langu AND
frgke EQ l_frgke.
ENDLOOP.
ENDIF. WHEN lcl_datablade_purchdoc_rel=>my_icon_done.
* reset release
CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
EXPORTING
purchaseorder = ls_outtab-ebeln
po_rel_code = l_frgab
use_exceptions = 'X'
IMPORTING
rel_status_new = l_frgzu
rel_indicator_new = l_frgke
EXCEPTIONS
error_message =
OTHERS = . IF sy-subrc <> .
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
LOOP AT gt_outtab_purchdoc_rel ASSIGNING <line> WHERE
ebeln = ls_outtab-ebeln.
IF l_ebeln NE ls_outtab-ebeln.
<line>-icon_release = lcl_datablade_purchdoc_rel=>my_icon_allowed.
l_ebeln = ls_outtab-ebeln.
ELSE.
CLEAR <line>-icon_release.
ENDIF.
<line>-frgzu = l_frgzu.
<line>-frgke = l_frgke.
SELECT SINGLE frget FROM t16fe INTO <line>-frget WHERE
spras EQ sy-langu AND
frgke EQ l_frgke.
ENDLOOP.
ENDIF. ENDCASE.
ENDMETHOD. "rel_resetrel

采购订单审批与撤销审批BAPI的更多相关文章

  1. 【MM系列】SAP 根据采购订单创建外向交货单的BAPI

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 根据采购订单创建外向交货单的 ...

  2. SAP采购订单审批记录增强

    采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...

  3. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

    select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name   ...

  4. 详解EBS接口开发之采购订单导入

    采购订单常用标准表简介 1.1   常用标准表 如下表中列出了与采购订单导入相关的表和说明: 表名 说明 其他信息 po.po_headers_all 采购订单头 采购订单号,采购类型,供应商,地点, ...

  5. 函数使用一:采购订单BAPI_PO_CREATE1

    REPORT YTEST01. DATA:GS_POHEADER TYPE BAPIMEPOHEADER, GS_POHEADERX TYPE BAPIMEPOHEADERX, GT_RETURN T ...

  6. SAP采购订单入库后不允许修改单价增强

    需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...

  7. MM--发票校验 及基于采购订单的MIRO发票校验过程(

    一.介绍发票校验是物料管理(MM)系统的一部分.它提供物料管理部分和财务会计, 成本控制和资产管理部分的连接.物料管理模块的发票校验为以下目的服务:它完成物料采购的全过程 - 物料采购从采购申请开始, ...

  8. SAP交货单过账自动生产采购订单、采购订单自动收货入库

    公司间需要买卖操作,由于发货和收货都是同一批人在操作,为了减少业务人员的工作量,提高工作效率,特实现以上功能 1.增强实现:增强点为交货单过账成功时触发,在提交前触发,如果遇到不可预知问题,可能造成数 ...

  9. VL10B 采购订单转DN

    传入采购订单项目建交货单 FUNCTION zmmfmXXXX. *"------------------------------------------------------------ ...

随机推荐

  1. Jmeter性能测试NoHttpResponseException (the target server failed to respond)

    采用JMeter做Http性能测试时,在高并发请求的情况下,服务器端并无异常,但是Jmeter端报错NoHttpResponseException (the target server failed ...

  2. Postman发送请求,及后台接收

    一.前言 在使用postman工具测试api接口的时候,如何使用 json 字符串传值呢,而不是使用 x-www-form-urlencoded 类型,毕竟通过 key-value 传值是有局限性的. ...

  3. sudo 以管理员身份运行脚本--tee方式记录脚本日志

    说明:当运行脚本时,常遇到权限不足等,可以用以上方法来以管理员权限运行 1.编辑/etc/sudoers (注意,这里使用 visudo 而不是 vi 来设置.) 2.visudo或 给与/etc/s ...

  4. keil mdk 菜单 “project” 崩溃问题解决

    今天发现我的 Keil MDK5.28z win10系统上面,点击 Project 菜单立即崩溃.网上找到了解决方法 简单粗暴的处理方法:重装keil ,但是依然点击 project 崩溃. 通过搜索 ...

  5. java中日志打印

    目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...

  6. MongoDB 集合与文档操作

    一.创建DB 1.查看DB >show dbs 2.创建DB >use mydb 3.查看当前DB >db 4.删除DB >use mydb >db.dropDataba ...

  7. 068_不登陆虚拟机,修改虚拟机网卡 IP 地址

    #!/bin/bash #该脚本使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具#脚本在不登陆虚拟机的情况下,修 ...

  8. bzoj2738矩阵乘法

    题意: 给你一个N*N的矩阵,没有修改,每次询问一个子矩形中的第K小数. 题目链接 思路: 当它只有一列时,其实就是区间第K大,也就是整体二分可以解决的. 现在到了二维,只需要将之前的树状数组改成二维 ...

  9. 好用的Google Chrome插件

    juejin掘金 帮助我们随时了解Github上热门的项目,保证技术思想不掉队. Momentum 专注.待办清单…… Octotree Octotree 可以让我们在 Github 上浏览代码更加方 ...

  10. jQuery相关方法10

    一.链式编程的原理 <script> //构造函数 function Person(age){ this.age=age; this.sayHi=function(txt){ if(txt ...