zoukankan
html css js c++ java
Post a transaction and the appropriate status to the IDoc.
On inbound function modules processing IDocs the following template can be used to post a transaction and the appropriate status to the IDoc.
*---- Data definition -------------------------------------------------
DATA: BEGIN OF BDCDATA OCCURS 5.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDCDATA.
DATA: C_TCODE LIKE BKPF-TCODE VALUE 'FB01'.
DATA BEGIN OF MESSTAB OCCURS 10.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA END OF MESSTAB.
*---- Call transaction ------------------------------------------------
FORM Main_Program
REFRESH BDCDATA.
PERFORM APPEND_BDC USING 'SAPMF05A' '0100' '
' '
'.
PERFORM APPEND_BDC USING '
' '
' 'BKPF-BLDAT' '09031998'.
PERFORM APPEND_BDC USING '
' '
' 'BDC_OKCODE' '/00'.
PERFORM APPEND_BDC USING 'SAPMF05A' '0300' '
' '
'.
PERFORM APPEND_BDC USING '
' '
' 'BSEG-WRBTR' '*'.
PERFORM APPEND_BDC USING '
' '
' 'BDC_OKCODE' 'BU'.
CALL TRANSACTION 'FB01' USING BDCDATA MODE 'N' UPDATE 'S'.
PERFORM UPDATE_IDOC_STATUS.
ENDFORM.
*--- Call transaction with errors to BDC -----------------------------
REFRESH MESSTAB.
CALL TRANSACTION C_TCODE USING BDCDATA MODE 'N' UPDATE 'S'
MESSAGES INTO MESSTAB.
RETURN_CODE = SY-SUBRC.
IF RETURN_CODE = 0.
LOOP AT MESSTAB.
IF MESSTAB-MSGTYP = 'E'.
RETURN_CODE = MESSTAB-MSGNR.
SY-MSGID = 'B1'.
SY-MSGNO = 999.
SY-MSGV1 = 'Error: Check BDC'.
ENDIF.
ENDLOOP.
ENDIF.
*--- Here we check the return code, if there was an error, we put the
*
transaction in a BDC session for the user to review and correct.
IF RETURN_CODE NE 0.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP
= 'ZKJW'
USER
= SY-UNAME
KEEP
= 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE
= C_TCODE
TABLES
DYNPROTAB = BDCDATA.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN
= 1
QUEUE_ERROR = 2
OTHERS
= 3.
ENDIF.
*--- Append BDCDATA internal table ------------------------------------
FORM APPEND_BDC USING
VALUE(P_PROG)
VALUE(P_SCREEN)
VALUE(P_NAM)
VALUE(P_VAL).
CLEAR BDCDATA.
IF P_PROG NE SPACE.
BDCDATA-PROGRAM
= P_PROG.
BDCDATA-DYNPRO
= P_SCREEN.
BDCDATA-DYNBEGIN
= 'X'.
BDCDATA-FNAM
= P_NAM.
BDCDATA-FVAL
= P_VAL.
ELSE.
BDCDATA-FNAM
= P_NAM.
BDCDATA-FVAL
= P_VAL.
ENDIF.
APPEND BDCDATA.
ENDFORM.
*&---------------------------------------------------------------------*
FORM UPDATE_IDOC_STATUS.
*--- Now we check the CALL TRANSACTION return code and set IDOC status
CLEAR IDOC_STATUS.
IF RETURN_CODE = 0.
WORKFLOW_RESULT = '0'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '53'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ELSE.
WORKFLOW_RESULT = '99999'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '51'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'Error_IDOCs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ENDIF.
APPEND IDOC_STATUS.
ENDFORM.
" UPDATE_IDOC_STATUS
查看全文
相关阅读:
String类可以被继承吗?我们来聊聊final关键字!
微信小程序中使用阿里ICON图标
兼容iphone x刘海的正确姿势
解决ios下部分手机在input设置为readonly属性时,依然显示光标
react jsx 中使用 switch case 示例
react 中使用 JsBarcode 显示条形码
解决IDEA输入法输入中文候选框不显示问题
svn提交代码失败提示清理(清理失败并且报错信息乱码解决办法)
css笔记
修改Mysql数据库的字符集
原文地址:https://www.cnblogs.com/xiaomaohai/p/6157435.html
最新文章
《响应式Web设计实践》学习笔记
《基于MVC的JavaScript Web富应用开发》学习笔记
[前端]图片预加载方法
《jQuery基础教程(第四版)》学习笔记
CSS常见布局问题整理
C++数组初始化方法
关于css3中的flex
关于css中float的理解
EMACS快捷键
ubuntu下常用命令
热门文章
less学习笔记
事务的隔离级别
面试题。线程pingpong的输出问题
java中垃圾收集的方法有哪些?
数据库锁
spring常用注解
mysql的sql语句优化方法面试题总结
浅析Mysql事务传播行为
MySQL查询不使用索引汇总
ThreadLocal详解
Copyright © 2011-2022 走看看