SAP采购订单下传SRM
http://www.cnblogs.com/rainysblog/p/6640515.html
ZPOSRM 采购订单下传SRM
*&---------------------------------------------------------------------* *& Report ZPOSRM *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*REPORT ZPOSRM.TABLES:EKKO.*SRM系统发送采购订单的数据定义 DATA: PROXY_SRM TYPE REF TO ZCO_MI_ERP_PURCHASE_ORDER_OBD,OUTPUT TYPE ZMT_ERP_PURCHASE_ORDER_OBD,TAB_PODATA TYPE ZDT_SRM_PURCHASE_TAB,WA_PODATA TYPE ZDT_SRM_PURCHASE_ORDER_PO_DATA,TAB_POITEM TYPE ZDT_SRM_PO_ITEM_TAB,WA_POITEM TYPE ZDT_SRM_PO_ITEM,POHEADER TYPE ZDT_SRM_PO_HDR. " 采购订单抬头信息 DATA:DT(30) TYPE C,TM(30) TYPE C. DATA : BEGIN OF ST_EKKO, EBELN LIKE EKKO-EBELN, END OF ST_EKKO. DATA IT_EKKO LIKE TABLE OF ST_EKKO. *定义MESSAGE GUID DATA:E_GUID_16 TYPE GUID_16,E_GUID_22 TYPE GUID_22,E_GUID_32 TYPE GUID_32. DATA: BUKRS TYPE BUKRS. DATA: WA_EBELN TYPE EKKO-EBELN.DATA:POKEY TYPE EBELN,PODATE TYPE ERDAT,VENDER TYPE LIFNR,POTYPE TYPE ESART,POSTATUS TYPE CHAR1,OUTPLANT TYPE RESWK,OSUSR1 TYPE ZSUSR1,OSUSR2 TYPE ZSUSR2,OSUSR3 TYPE ZSUSR3,OSUSR4 TYPE ZSUSR4,OSUSR5 TYPE ZSUSR5. DATA: PO_HEADER TYPE ZPO_HEADER. DATA: IT_PO TYPE ZPURCHASING OCCURS 0 WITH HEADER LINE. DATA: PO_ITEMS TYPE ZPO_ITEMS OCCURS 0 WITH HEADER LINE. DATA: STAT TYPE STAT. DATA: ZMSG TYPE ZMSG. DATA: POLIST TYPE ZPONO OCCURS 0 WITH HEADER LINE. ***************** Selection-screen *************************** SELECTION-SCREEN: BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.SELECT-OPTIONS: ZEBELN FOR EKKO-EBELN.SELECTION-SCREEN: END OF BLOCK BLK.START-OF-SELECTION.***************************************************************IF ZEBELN[] IS INITIAL.MESSAGE S015(ZL) WITH '采购订单号不能为空'.STOP.ENDIF. ***********调用函数发送采购订单信息SELECT EBELNINTO TABLE POLISTFROM EKKOWHERE EBELN IN ZEBELN.IF POLIST[] IS INITIAL.MESSAGE S015(ZL) WITH '采购订单号不存在'.STOP.ENDIF.CALL FUNCTION 'ZPO_SEND'EXPORTINGDTYPE = 8IMPORTINGZFLAG = STATZMSG = ZMSGTABLESPOLIST = POLIST.IF STAT EQ 'E'. ******如果传输出错,则结束程序MESSAGE S015(ZL) WITH ZMSG.STOP.ENDIF. ***************************************************************MESSAGE I066(Z1) WITH '数据已传输完毕!'.
FUNCTION ZPO_SEND.
FUNCTION ZPO_SEND. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(DTYPE) TYPE I OPTIONAL *" EXPORTING *" VALUE(ZFLAG) TYPE STAT *" VALUE(ZMSG) TYPE ZMSG *" TABLES *" POLIST STRUCTURE ZPONO OPTIONAL *"----------------------------------------------------------------------TABLES:EKKO.*SRM系统发送采购订单的数据定义DATA: PROXY_SRM TYPE REF TO ZCO_MI_ERP_PURCHASE_ORDER_OBD,OUTPUT TYPE ZMT_ERP_PURCHASE_ORDER_OBD,TAB_PODATA TYPE ZDT_SRM_PURCHASE_TAB,WA_PODATA TYPE ZDT_SRM_PURCHASE_ORDER_PO_DATA,TAB_POITEM TYPE ZDT_SRM_PO_ITEM_TAB,WA_POITEM TYPE ZDT_SRM_PO_ITEM,POHEADER TYPE ZDT_SRM_PO_HDR. " 采购订单抬头信息DATA:DT(30) TYPE C,TM(30) TYPE C.DATA : BEGIN OF ST_EKKO,EBELN LIKE EKKO-EBELN,END OF ST_EKKO. *定义MESSAGE GUIDDATA:E_GUID_16 TYPE GUID_16,E_GUID_22 TYPE GUID_22,E_GUID_32 TYPE GUID_32.DATA:POKEY TYPE EBELN,PODATE TYPE ERDAT,VENDER TYPE LIFNR,POTYPE TYPE ESART,POSTATUS TYPE CHAR1,OUTPLANT TYPE RESWK,OSUSR1 TYPE ZSUSR1,OSUSR2 TYPE ZSUSR2,OSUSR3 TYPE ZSUSR3,OSUSR4 TYPE ZSUSR4,OSUSR5 TYPE ZSUSR5.DATA: PO_HEADER TYPE ZPO_HEADER.DATA: EBELN TYPE EBELN.DATA: BUDAT TYPE BUDAT.DATA: IT_PO TYPE ZPURCHASING OCCURS 0 WITH HEADER LINE.DATA: PO_ITEMS TYPE ZPO_ITEMS OCCURS 0 WITH HEADER LINE.DATA: FLAGN TYPE I.DATA:WA_MSEG TYPE MSEG.DATA: BUDAT101 TYPE BUDAT.DATA: BUDAT103 TYPE BUDAT.DATA: BUDAT105 TYPE BUDAT.DATA:TMP_ITMSUSR1 LIKE EKBES-WAMNG.DATA:TMP_ITMSUSR101 LIKE EKBES-WAMNG.DATA:TMP_ITMSUSR103 LIKE EKBES-WAMNG.DATA:TMP_ITMSUSR105 LIKE EKBES-WAMNG.DATA: BUKRS TYPE BUKRS. "公司代码DATA: WERKS TYPE WERKS.DATA: LGORT TYPE LGORT_D.DATA: Z_ZSRMLOG LIKE ZSRMLOG OCCURS 0 WITH HEADER LINE.********************************************************************** * START OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP项目一期>DATA: ZML_POHEADER TYPE ZSMLPO_HDR OCCURS 0 WITH HEADER LINE.DATA: ZML_POITEMS TYPE ZSMLPO_ITEM OCCURS 0 WITH HEADER LINE.DATA: ZML_RET_MSGS TYPE ZSMLPO_MSG1 OCCURS 0 WITH HEADER LINE. * END OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP项目一期> ***************************************************************IF POLIST[] IS INITIAL.ZFLAG = 'E'.ZMSG = '采购订单号不能为空'.FLAGN = '0'.ELSE.FLAGN = 1.ENDIF.IF FLAGN = 1. *根据采购订单号查找采购订单的详细信息CLEAR TAB_PODATA[].LOOP AT POLIST INTO EBELN.CALL FUNCTION 'ZGET_PO_INFO'EXPORTINGOBJECT_KEY = EBELNIMPORTINGPOKEY = POKEYPODATE = PODATEVENDER = VENDERPOTYPE = POTYPEPOSTATUS = POSTATUSOUTPLANT = OUTPLANTHEADER = PO_HEADEROSUSR1 = OSUSR1OSUSR2 = OSUSR2OSUSR3 = OSUSR3 "公司代码OSUSR4 = OSUSR4OSUSR5 = OSUSR5TABLESPURCHASING = IT_POITEMS = PO_ITEMS.FLAGN = 1.BUKRS = OSUSR3. "公司代码IF OSUSR5 = 'X'.ZFLAG = 'E'.CONCATENATE '采购订单号' EBELN '不存在' INTO ZMSG.FLAGN = 0.ENDIF.IF FLAGN = 1. * START OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下载>IF PO_HEADER-EKORG+0(1) EQ 'I'.clear zml_poheader.move-corresponding po_header to zml_poheader.append zml_poheader.clear zml_poitems.loop at po_items.clear zml_poitems.move-corresponding po_items to zml_poitems.append zml_poitems.clear po_items.endloop.ELSE. * END OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下载>MOVE-CORRESPONDING PO_HEADER TO POHEADER.CLEAR TAB_POITEM[].LOOP AT PO_ITEMS.MOVE-CORRESPONDING PO_ITEMS TO WA_POITEM.APPEND WA_POITEM TO TAB_POITEM.IF WERKS IS INITIAL.WERKS = WA_POITEM-WERKS.ENDIF.IF LGORT IS INITIAL.LGORT = WA_POITEM-LGORT.ENDIF.CLEAR WA_POITEM.ENDLOOP.WA_PODATA-PO_HDR = POHEADER.WA_PODATA-PO_ITEM = TAB_POITEM[].APPEND WA_PODATA TO TAB_PODATA.IF DTYPE EQ 8.CALL FUNCTION 'GUID_CREATE'IMPORTINGEV_GUID_16 = E_GUID_16EV_GUID_22 = E_GUID_22EV_GUID_32 = E_GUID_32.Z_ZSRMLOG-BUKRS = BUKRS.Z_ZSRMLOG-WERKS = WERKS.Z_ZSRMLOG-LGORT = LGORT.Z_ZSRMLOG-EBELN = EBELN.Z_ZSRMLOG-MSGID = E_GUID_32.Z_ZSRMLOG-BTYPE = 'ZSRMPO'.Z_ZSRMLOG-ZFLAG = 'H'.Z_ZSRMLOG-ZYEAR = SY-DATUM+0(4). "记录年份Z_ZSRMLOG-ORDERNO = EBELN.Z_ZSRMLOG-ZPDATE = SY-DATUM.Z_ZSRMLOG-ZPTIME = SY-UZEIT.Z_ZSRMLOG-RECEIVER = 'SRM'.Z_ZSRMLOG-SENDER = 'ERP'.APPEND Z_ZSRMLOG.INSERT ZSRMLOG FROM TABLE Z_ZSRMLOG ACCEPTING DUPLICATE KEYS.ENDIF.ENDIF."ADD OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下载>ENDIF.ENDLOOP. **************************************************************CONCATENATE SY-DATUM+0(4) '-' SY-DATUM+4(2) '-' SY-DATUM+6(2) INTO DT.CONCATENATE SY-UZEIT+0(2) ':' SY-UZEIT+2(2) ':' SY-UZEIT+4(2) INTO TM.CONCATENATE DT TM INTOOUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-MSGDTSEPARATED BY SPACE.CALL FUNCTION 'GUID_CREATE'IMPORTINGEV_GUID_16 = E_GUID_16EV_GUID_22 = E_GUID_22EV_GUID_32 = E_GUID_32. **抬头赋值OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-GUID = E_GUID_32.OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-SENDER = 'ERP' ."发送方OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-SOURCE = 'ERP' ."消息来源OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-BTYPE ='SRM_IF_PURCHASEORDER'.CONCATENATE SY-DATUM+0(4) '-' SY-DATUM+4(2) '-' SY-DATUM+6(2)INTO DT.CONCATENATE SY-UZEIT+0(2) ':' SY-UZEIT+2(2) ':' SY-UZEIT+4(2)INTO TM.CONCATENATE DT TM INTOOUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-MSGDTSEPARATED BY SPACE.OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_HDR-BDOCNUM =PO_HEADER-EBELN. "采购订单号 * * START OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下传>IF NOT TAB_PODATA[] IS INITIAL. * END OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下传> **行项赋值OUTPUT-MT_ERP_PURCHASE_ORDER_OBD-MSG_BODY-PO_DATA = TAB_PODATA[]. *****发送数据TRY.CREATE OBJECT PROXY_SRM.CALL METHOD PROXY_SRM->EXECUTE_ASYNCHRONOUSEXPORTINGOUTPUT = OUTPUT.COMMIT WORK. ****记录日志CATCH CX_AI_SYSTEM_FAULT.SYST-MSGID = 'ZL'.SYST-MSGNO = '015'.SYST-MSGTY = 'E'.SYST-MSGV1 = '向SRM发送数据出错'.ENDTRY.IF DTYPE EQ 1.Z_ZSRMLOG-BUKRS = BUKRS.Z_ZSRMLOG-WERKS = WERKS.Z_ZSRMLOG-LGORT = LGORT.Z_ZSRMLOG-EBELN = EBELN.Z_ZSRMLOG-MSGID = E_GUID_32.Z_ZSRMLOG-BTYPE = 'POAUT'.Z_ZSRMLOG-ZYEAR = DT. "记录年份Z_ZSRMLOG-ORDERNO = EBELN.Z_ZSRMLOG-ZPDATE = SY-DATUM.Z_ZSRMLOG-ZPTIME = SY-UZEIT.Z_ZSRMLOG-RECEIVER = 'SRM'.Z_ZSRMLOG-SENDER = 'ERP'.APPEND Z_ZSRMLOG.INSERT ZSRMLOG FROM TABLE Z_ZSRMLOG ACCEPTING DUPLICATE KEYS.ENDIF. * START OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下传>if zml_poheader[] is not initial and zml_poitems[] is not initial. * send po info to srm via cis (soa)call function 'ZMLSCP1_FR0013'tablespohdear = zml_poheaderpoitems = zml_poitemsret_msgs = zml_ret_msgs.endif.ELSE."if zml_poheader[] is initial or zml_poitems[] is initial.zflag = 'E'.zmsg = '采购订单未发送(抬头或行项为空)'.else. * send po info to srm via cis (soa)call function 'ZMLSCP1_FR0013'tablespohdear = zml_poheaderpoitems = zml_poitemsret_msgs = zml_ret_msgs.endif.ENDIF. * END OF CORRECTION <2016/12/23> BY <邬清波> <美菱SCP一期PO下传>ENDIF.ZFLAG = 'S'.ZMSG = '采购订单发送成功'.ENDFUNCTION.
SAP采购订单下传SRM相关推荐
- SAP 采购订单的批量修改
前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 现在有一个需求,我们需要冻结一批采购订单,但是由于批量冻结的后果无法预知,我们打算用一个折中的办法. 利用采购订单行项目中 ...
- SAP采购订单科目分配类别P与Q解析
SAP采购订单科目分配类别P与Q解析 在采购单科目分配类别(Account Assignment Category)一栏中有P和Q,都是对项目物资的采购,两者有何区别?我们一起来看一看. 1,首先了解 ...
- SAP 采购订单显示含税价制作方案
SAP 采购订单显示含税价制作方案 轻松解决SAP系统采购信息计量中物料价格不能保存含税价问题 我们在和供应商谈价时,大部分国内供应商的报价都是含税的,然而我们现在在系统中维护采购信息记录时, 只能输 ...
- SAP 采购订单税金抓取方法
SAP 采购订单税金抓取方法: 一.找表字段: 1.在EKKO表里找到采购订单的单据条件号:EKKO-KNUMV 2.在KONV条件(事务数据)表内找到单据条件号:KONV-KNUMV 行项目号:KO ...
- SAP采购订单创建预付款并删除
采购订单预付款的删除@jettai 在SAP采购订单创建预付款 SAP系统支持创建采购订单的时候,选择预付款,并创建预付款请求. 针对行项目的预付款请求可以在如下图 创建预付款请求 在采购订单创建完毕 ...
- sap采购订单更改记录_SAP标准采购流程
在SAP中,一个完整的采购流程包含采购申请.订单处理.货物接收.发票校验.付款清账五大环节.也有企业不通过SAP管理采购申请,采购流程从采购订单开始.本文介绍SAP标准的材料采购流程,以便大家理解采购 ...
- SAP 采购订单打印完后不可以取消审批
通常情况下PO采购订单打印之后不允许通过 ME28 或 ME29N 弃审修改. 这时候可以使用网上推荐的多个方法临时性解决.比如ME9F插入一条采购订单消息,然后让SAP误以为订单没有完成,从而允许M ...
- sap采购订单更改记录_SAP系统如何实现减税:增值税16%
对于税率.税码和税科目的变更,总体方案是尽可能让每一个功能默认,即使是QAD软件功能相对较少的情况下,我们也是如此,更何况SAP强大的定制功能呢. 个人觉得要变更税,必须理解SAP系统税的配置原理.流 ...
- SAP 采购订单打印之后不能取消审核问题的解决(修改配置)
通常情况下PO采购订单打印之后不允许通过 ME28 或 ME29N 弃审修改. 如果强行弃审核会出现 ME175 错误. "Document has already been outpu ...
最新文章
- 计算机插座符号,插座图形符号
- .net core不能使用httpget_.NET Core 中正确使用 HttpClient 的姿势
- 第四篇:new和delete的基本用法
- newifi3高恪魔改最新_12.08达达最新球球id账号呆瓜表
- WCF - MaxStringContentLength MaxReceivedMessageSize
- 微博表情插入mysql数据库,表情都是四字节字符
- 为什么有一些PDF转换成Word后是乱码?
- 如何优雅的快速下载谷歌云盘的大文件 (二)
- logging 详解第三期:Logging 不为人知的二三事
- Dubbo+zookeeper
- Dreamweaver CS6实战手册
- 测试人跳槽~怎么说离职原因新的公司比较能接受?
- 双链路热备份(负载分担)实验
- 基于机器学习的电影票房分析与预测系统
- 前端项目的总结——为什么要组件化?
- 微星主板在有RAID的情况下在NVME的SSD上安装Win10
- Android设备通过USB共享网络给OpenWrt路由器
- Session与Cookie底层原理
- JAVA——Java后端技术体系韩顺平框架图_韩顺平Java基础学习路线图
- PHP实现获取url地址中一级域名
热门文章
- 四、创建第一个springboot项目
- 如何提高强化学习效果?内在奖励和辅助任务
- 「尖峰对话」问题征集:向张宏江和John Hopcroft 近距离提问
- 阿里专家张磊:云原生为什么对云计算生态充满吸引力?
- net::ERR_INCOMPLETE_CHUNKED_ENCODING
- 如何建设数字中国?人民日报推出四个整版观察
- Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
- 经济学人:清华大学或将迅速成为全球科研领军者
- 玩转数据、拥抱智能 | 清华大学大数据能力提升项目宣讲会火热来袭
- 半世纪全球顶级学者迁移图(附视频、亿级学术信息)| 数据院科技大数据研究中心发布