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
查看全文
相关阅读:
多进程或多线程实现并发
linux服务器配置pyspider出现Could not run curl-config 的解决方式
js的逆向解析
修改linux终端命令行各字体颜色
利用Centos服务器来搭建自己的splash,不再被安装的各种环境繁琐而担忧
配置 Docker 加速器:适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1
一分30秒 kali 开机显示 a start job is running for dev-disk 处理
虚拟机Ubuntu16.04无法进入图形界面 The system is running in low-graphics mode
vmware ubuntu硬盘空间不够用,空间扩展
pip错误-failed to create process/fatal error in launcher
原文地址:https://www.cnblogs.com/xiaomaohai/p/6157435.html
最新文章
【进程/作业管理】篇章三:调整进程(静态)优先级
【python】-- Socket粘包问题 ,解决粘包的几种方法、socket文件下载,md5值检验
【python】-- Socket接收大数据
解决Ubuntu(乌班图)vi/vim模式下粘贴的代码内容会多出的空格的问题
CentOS、乌班图设置固定静态IP
Xshell 连接centOS虚拟机、centOS内置python版本升级
【python】-- Socket
【python】-- try except (异常捕获)、断言
【python】-- 类的创建、__new__、__metaclass___
【python】-- 类的反射
热门文章
【python】-- 类的装饰器方法、特殊成员方法
sql语句之数据类型
插件式存储引擎
基本sql语句
MySql字符编码
mysql常用命令
Python 之IO模型
Python 之协程
异步调用与回调机制
进程线程池
Copyright © 2011-2022 走看看