IBAPI_ALM_ORDER_RELEASE

本BAPI可以将工单的状态设置为下达状态(REL)。但工单下达有一个前提:那就是工单必须已经维护了结算规则。本BAPI下达过的工单经过实测,在修改内容后保存时,会导致程序DUMP,因此,不建议使用此BAPI进行工单下达,建议使用BAPI:BAPI_ALM_ORDER_MAINTAIN 来进行工单下达。

BAPI的使用有通用的规则,比如BAPI在生成对象时,有最小的满足条件,即至少传入某些字段的值,才能保证生成相应的对象,上述表格中添加了黄色着色的字段的为本BAPI必须要传入的信息或者重要的传出信息;另外BAPI调用后,往往会至少返回一些个消息结构或者消息内表,这里需要根据返回的消息进行相应的处理:如果BAPI调用成功,则提交BAPI;如果BAPI调用失败,则回滚BAPI。

这里传入的工单需要带有前导0,如果没有,需要使用函数CONVERSION_EXIT_ALPHA_INPUT进行前导0补充,这里不详细说明,而对于传出的消息,需要逐条循环,使用MESSAGE_TEXT_BUILD函数来生成消息文本,以下为一个工单下达的完整示例代码:

"BAPI相关参数定义
DATA: LS_MSG TYPE BAL_S_MSG,
    LT_MSG TYPE TABLE OF BAL_S_MSG.     "BAPI调用返回消息
DATA: LV_AUFNR TYPE AUFNR.            "待下达的工单号
DATA: LS_HEADER TYPE BAPI_ALM_ORDER_HEADER_E.  "BAPI返回的工单头部信息

DATA: LV_MESSAGE TYPE STRING,          "消息文本变量
    EV_TYPE TYPE BAPI_MTYPE,          "消息类型
    EV_MESSAGE TYPE BAPI_MSG.         "消息文本

CLEAR:EV_TYPE,EV_MESSAGE,LV_MESSAGE,LS_MSG,LV_AUFNR,LS_HEADER,LT_MSG.

*-----1 准备BAPI传入的参数
LV_AUFNR = '000004001837'.

*-----2 调用BAPI创建工单
CALL FUNCTION 'IBAPI_ALM_ORDER_RELEASE'
  EXPORTING
    IV_ORDERID    = LV_AUFNR
  IMPORTING
    ES_HEADER_RESULT = LS_HEADER
  TABLES
    ET_MESSAGES    = LT_MSG.

*-----3 根据BAPI执行结果,返回结果处理
LOOP AT LT_MSG INTO LS_MSG WHERE MSGTY CA 'EA'.
  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    EXPORTING
      MSGID = LS_MSG-MSGID
      MSGNR = LS_MSG-MSGNO
      MSGV1 = LS_MSG-MSGV1
      MSGV2 = LS_MSG-MSGV2
      MSGV3 = LS_MSG-MSGV3
      MSGV4 = LS_MSG-MSGV4
    IMPORTING
      MESSAGE_TEXT_OUTPUT = LV_MESSAGE.

IF EV_MESSAGE IS INITIAL.
    EV_MESSAGE = LV_MESSAGE.
  ELSE.
     CONCATENATE LV_MESSAGE '/' EV_MESSAGE INTO EV_MESSAGE."拼接输出的失败消息
  ENDIF.
ENDLOOP.

IF  SY-SUBRC = 0.
  EV_TYPE = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.    "回滚BAPI
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'      "提交BAPI
  EXPORTING
    WAIT = 'X'.
  EV_TYPE = 'S'.    "将输出的消息类型设置为S
  CONCATENATE '工单' LV_AUFNR '下达成功!' INTO EV_MESSAGE.
*  MESSAGE EV_MESSAGE TYPE 'I'.
ENDIF.

  1. 本BAPI成功执行后,返回的消息内表ET_MESSAGES中,如果内表为空,则表示BAPI执行成功,则可以提交BAPI;如果消息中有A或者E类型的,则视为下达失败,先回滚BAPI,同时将消息内表中所有的E和A类型的消息拼接输出,用来告诉用户应该去纠正那些问题。
  2. 传入的工单号必须带有前导0。

本BAPI下达后的工单,有一定的BUG,当对下达的工单进行修改时,会造成程序DUMP。原因是BAPI的下达逻辑存在BUG,导致了工单的状态的不一致,从而造成修改时的DUMP。因此不建议使用此BAPI来进行工单下达,强烈建议使用BAPI:BAPI_ALM_ORDER_MAINTAIN 来进行工单下达

维修工单下达BAPI相关推荐

  1. SAP PM 初级系列之27 – SAP系统怎么知道某种类型的维修工单检验批上的检验类型是14?

    SAP PM 初级系列之27 – SAP系统怎么知道某种类型的维修工单检验批上的检验类型是14? 比如在SAP系统中,Calibration类型的维修工单,工单下达后自动触发了检验批,检验类型是14. ...

  2. SAP PM 初级系列24 - 发料到维修工单

    SAP PM 初级系列24 - 发料到维修工单 SAP PM模块里,对于维修工单的发料,跟对于生产订单的发料操作类似的,也是使用MIGO事务代码,移动类型261. 执行MIGO,选A07(Goods ...

  3. SAP PM 初级系列22 - IW38可以批量处理维修工单

    SAP PM 初级系列22 - IW38可以批量处理维修工单 SAP PM模块的事务代码IW38功能强大,可以作为维修部门计划人员的一个很重要的主工作台.在这里他可以针对各种类型的维修工单,尤其是未完 ...

  4. SAP PM 初级系列25 - 维修工单与采购单据之间LINK?

    SAP PM 初级系列25 - 维修工单与采购单据之间LINK? SAP系统是一个高度集成的软件系统,各个业务单据之间的LINK关系,都能在系统上很方便的查找到. SAP PM模块与采购业务之间也是有 ...

  5. SAP PM 初级系列23 - IW22 事务代码里创建维修工单

    SAP PM 初级系列23 - IW22 事务代码里创建维修工单 SAP PM模块里,事务代码IW22用于修改一个已经存在的维修通知单. 实际上在这个界面里,不仅可以修改维修通知单相关的数据,而且可以 ...

  6. SAP PM 初级系列21 - 一个技术关闭的维修工单不能再被修改了!

    SAP PM 初级系列21 - 一个技术关闭的维修工单不能再被修改了! 维修工单号:102333362已经被Techical completion了, 试图执行IW32去修改它, 系统提示说:Noti ...

  7. SAP PM 初级系列20 - 维修工单的检验批

    输入事务代码IW33, 进入维修工单的显示界面, 点击屏幕右上边的Inspection Lot按钮 ,进入如下界面, 点击检验批号码右边的显示按钮 ,进入检验批显示界面(QA03), 可以看到该检验批 ...

  8. SAP PM 初级系列19 - IP10为维修计划触发维修工单的同时也自动触发了维修通知单!

    SAP PM 初级系列19 - IP10为维修计划触发维修工单的同时也自动触发了维修通知单! 执行事务代码IP10, 输入维修计划代码,回车, 点击Manual call按钮,如上图.进入如下界面, ...

  9. SAP PM 初级系列18 - 为维修工单分配Permit

    SAP PM 初级系列18 - 为维修工单分配Permit IW32在维修工单的修改界面, 通过菜单Goto -> Permits- ,系统进入如下界面, 点Permit输入框右侧的按钮,系统弹 ...

最新文章

  1. linux下安装ftp服务器
  2. easyui toolbar分隔线
  3. laravel 分页php_laravel 分页 seo浅谈
  4. quartus 修改 时钟_Clock Quartus II 开发的多功能数字时钟,有计时、调 闹铃、警报等 Other systems 其他 274万源代码下载- www.pudn.com...
  5. android 锁屏音量,Android锁屏状态获取音量按键事件
  6. 中国公司占据VVC专利贡献榜4席
  7. dbms支持哪几种数据模型_DBMS中不同类型的数据模型
  8. Java(4)---Java 对象和类
  9. java扫码盒_[腾讯 TMQ] JAVA 代码覆盖率工具 JaCoCo-实践篇
  10. 计算机组成原理基本概念,《计算机组成原理》教学中几个基本概念的分析
  11. android xml未能解析文件夹,无法在styles.xml(Android Studio)中解析符号'Theme'
  12. IOS把图片做成圆形效果
  13. 【现代信号处理】 15 - 谱分析基础和周期图谱分析
  14. Spring Boot Actuator自定义健康检查
  15. 产品需求文档到底该怎么写?
  16. EUI学习之自定义皮肤
  17. oracle fnd global,Oracle EBS fnd_request.submit_request 与 Fnd_concurrent.wait_for_ruqest
  18. MySQL第41题怎么评分_MYSQL练习题54道(包含尽可能多的解决方法及思路)
  19. error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file
  20. 计算机二级msoffice选择题知识,2017计算机二级MSoffice选择题练习(含答案)

热门文章

  1. matlab自协方差函数,自协方差函数,自相关函数,协方差矩阵
  2. Excel表格的打开密码如何设置和取消?
  3. CSDN编程挑战赛第六期参赛心得
  4. 什么是SCI期刊分区,让你一次搞懂!
  5. win10msmpeng占内存_微软win10吃内存,CPU占用高,没有优化好?做好这3点系统快如飞...
  6. SpringCloud Alibaba 微服务架构(十一)- 分布式事务解决方案及理论基础篇
  7. 计算机需要什么才能连接网络,计算机必须安装网卡,才可以连接到Internet 。
  8. cpcorr matlab,corr(corr是什么函数)
  9. Linux菜鸟笔记【基本命令汇总】
  10. 电表电压电流数据(某用户2年的电流表记录,6.8w条数据)