配置 DBCO
在SAP服务器路径下配置oracle连接。
实例代码
*********begin-zhugx 8D 生产订单************** DATA: qmtab1 LIKE TABLE OF zqm004 WITH HEADER LINE. DATA: con_name TYPE string. IF sy-mandt = '800'. con_name = 'ZPRDOA'. "正式环境 ELSE. con_name = 'ZOA'. "OA环境 ENDIF. DATA: qmstr(50) TYPE c. DATA: qmstr1(10) TYPE c. DATA: qmstr2(12) TYPE c. DATA: qmstr3(20) TYPE c. DATA: qmstr4(4) TYPE c value 'NG'. DATA: qmnum TYPE i. DATA: qmnum1 TYPE i. DATA: d1 LIKE sy-datum. d1 = sy-datum. DATA: zaufnr LIKE mseg-aufnr. "生产订单 DATA: zaufps LIKE mseg-aufps. "生产订单行项目 DATA: zebeln LIKE mseg-ebeln. "采购订单 DATA: zebelp LIKE mseg-ebelp. "采购订单行项目 DATA: zmatnr TYPE mseg-matnr. "物料 DATA: zwerks1 LIKE mseg-werks. "工厂 DATA: zbwart LIKE mseg-bwart. "移动类型(库存管理) DATA: zvgart LIKE mkpf-vgart. "交易/事件类型 ***********生产订单交易类型是 WF 采购订单是WE 使用MIGO时考虑生产订单和销售订单************* zmatnr = i_mseg-matnr. zwerks1 = i_mseg-werks. zvgart = i_mkpf-vgart. zbwart = i_mseg-bwart. IF sy-tcode = 'MIGO' AND zbwart = '101' AND ( zvgart = 'WF' OR zvgart = 'WE' ). IF zvgart = 'WF'. qmstr3 = '生产工单入库'. zaufnr = i_mseg-aufnr. "生产订单 zaufps = i_mseg-aufps. "生产订单行项目 ENDIF. IF zvgart = 'WE'. qmstr3 = '采购订单入库'. zebeln = i_mseg-ebeln. "采购订单 zebelp = i_mseg-ebelp. "采购订单行项目 ENDIF. SELECT * INTO CORRESPONDING FIELDS OF TABLE qmtab1 FROM zqm004 WHERE zqm004~zmatnr = zmatnr AND zqm004~zqmawerks = zwerks1. IF sy-subrc = 0. LOOP AT qmtab1. IF qmtab1-zstate = 'OPEN'. IF qmtab1-ztype IS INITIAL OR qmtab1-ztype = qmstr3. ************打开数据库连接************** EXEC SQL. CONNECT TO :con_name ENDEXEC. ******************操作OA数据***************** IF zvgart = 'WF'. EXEC SQL. select count(*) into :qmnum from whir$8Dxgqr where whir$8Dxgqr_ddhm = :zaufnr ENDEXEC. ENDIF. IF zvgart = 'WE'. EXEC SQL. select count(*) into :qmnum from whir$8Dxgqr where whir$8Dxgqr_ddhm = :zebeln and whir$8Dxgqr_ddhxm = :zebelp ENDEXEC. ENDIF. IF qmnum > 0. IF ZVGART = 'WF'. EXEC SQL. select count(*) into :qmnum1 from whir$8Dxgqr where whir$8Dxgqr_ddhm = :zaufnr and ( whir$8Dxgqr_gjjg = :qmstr4 OR whir$8Dxgqr_gjjg IS null ) ENDEXEC. ENDIF. IF ZVGART = 'WE'. EXEC SQL. select count(*) into :qmnum1 from whir$8Dxgqr where whir$8Dxgqr_ddhm = :ZEBELN and whir$8Dxgqr_ddhxm = :ZEBELP and ( whir$8Dxgqr_gjjg = :qmstr4 OR whir$8Dxgqr_gjjg IS null ) ENDEXEC. ENDIF. IF qmnum1 > 0. CONCATENATE '请在OA中跟进8D编号为' qmtab1-zqmnum '的跟进结果' INTO qmstr. MESSAGE qmstr TYPE 'E'. ENDIF. ELSE. EXEC SQL. select whir$8D_id into :qmstr2 from whir$8D where whir$8D_8Dbh = :QMTAB1-ZQMNUM ENDEXEC. IF qmstr2 IS NOT INITIAL. IF ZVGART = 'WF'. EXEC SQL. insert into whir$8Dxgqr ( whir$8Dxgqr_id, whir$8Dxgqr_date, whir$8Dxgqr_ddhm, WHIR$8DXGQR_FOREIGNKEY) values (WF_SEQUENCE.nextval, :d1, :ZAUFNR, :qmstr2 ) ENDEXEC. ENDIF. IF ZVGART = 'WE'. EXEC SQL. insert into whir$8Dxgqr ( whir$8Dxgqr_id, whir$8Dxgqr_date, whir$8Dxgqr_ddhm, whir$8Dxgqr_ddhxm,WHIR$8DXGQR_FOREIGNKEY) values (WF_SEQUENCE.nextval, :d1, :ZEBELN, :ZEBELP, :qmstr2 ) ENDEXEC. ENDIF. * insert into whir$8Dxgqr ( whir$8Dxgqr_id ) values ( 6436534 ) CONCATENATE qmstr3 zebeln '在OA效果确认表中产生了一条新记录请跟进' INTO qmstr. MESSAGE qmstr TYPE 'E'. ENDIF. ENDIF. ***********关闭数据库连接*********** EXEC SQL. DISCONNECT :con_name ENDEXEC. ENDIF. ENDIF. ENDLOOP. ELSE. * MESSAGE '没有在中间表找到数据请确定是否在OA发起8D流程!' TYPE 'E'. ENDIF. ***************写子方法****************************************** ELSEIF sy-tcode = 'MB31'. zaufnr = i_mseg-aufnr. "生产订单 zaufps = i_mseg-aufps. "生产订单行项目 * PERFORM getzqm004_data USING ZEBELN ZEBELP ZMATNR ZWERKS1 ZVGART. SELECT * INTO CORRESPONDING FIELDS OF TABLE qmtab1 FROM zqm004 WHERE zqm004~zmatnr = zmatnr AND zqm004~zqmawerks = zwerks1. IF sy-subrc = 0. LOOP AT qmtab1. IF qmtab1-zstate = 'OPEN'. IF qmtab1-ztype IS INITIAL OR qmtab1-ztype = '生产工单入库'. ************打开数据库连接************** EXEC SQL. CONNECT TO :con_name ENDEXEC. ******************操作OA数据************* EXEC SQL. select count(*) into :qmnum from whir$8Dxgqr where whir$8Dxgqr_ddhm = :ZAUFNR ENDEXEC. IF qmnum > 0. EXEC SQL. select count(*) into :qmnum1 from whir$8Dxgqr where whir$8Dxgqr_ddhm = :ZAUFNR and ( whir$8Dxgqr_gjjg = 'NG' OR whir$8Dxgqr_gjjg IS null ) ENDEXEC. IF qmnum1 > 0. CONCATENATE '请在OA中跟进8D编号为' qmtab1-zqmnum '的跟进结果' INTO qmstr. MESSAGE qmstr TYPE 'E'. ENDIF. ELSE. EXEC SQL. select whir$8D_id into :qmstr2 from whir$8D where whir$8D_8Dbh = :QMTAB1-ZQMNUM ENDEXEC. IF qmstr2 IS NOT INITIAL. EXEC SQL. insert into whir$8Dxgqr ( whir$8Dxgqr_id, whir$8Dxgqr_date, whir$8Dxgqr_ddhm, WHIR$8DXGQR_FOREIGNKEY) values (WF_SEQUENCE.nextval, :d1, :ZAUFNR, :qmstr2 ) * insert into whir$8Dxgqr ( whir$8Dxgqr_id ) values ( 6436534 ) ENDEXEC. CONCATENATE '生产工单入库' zaufnr '在OA效果确认表中产生了一条新记录请跟进' INTO qmstr. MESSAGE qmstr TYPE 'E'. ENDIF. ENDIF. ***********关闭数据库连接*********** EXEC SQL. DISCONNECT :con_name ENDEXEC. ENDIF. ENDIF. ENDLOOP. ELSE. * MESSAGE '没有在中间表找到数据请确定是否在OA发起8D流程!' TYPE 'E'. ENDIF. ENDIF. *****************************end-zhugx*************************
<!--EndFragment--><!--EndFragment--><!--EndFragment-->
相关推荐
SAP abap 链接外部数据库的实现方法
sap开发中 模块连接oracle数据库的具体方法步骤详细说明
SAP中oracle数据库的备份恢复.pdf
sap oracle sap oracle sap oracle
SAP访问其他数据库 SAP访问其他数据库 SAP访问其他数据库 SAP访问其他数据库 SAP访问其他数据库 SAP访问其他数据库 SAP访问其他数据库
SAP-HANA数据库SQL参考手册
sap逻辑数据库sap逻辑数据库sap逻辑数据库sap逻辑数据库
通过db13来操作数据库作业的描述,详细阐述了db13定义数据库作业的全部过程及使用方法
SAP下的Oracle数据库应用底层架构的详细介绍哦,内部权威文档,介绍详尽,仅供分享个人学习参考讨论之用,请勿用于商业活动。
SAP-HANA数据库SQL中文完全参考手册,本文档完全翻译为中文,适合看不懂原版官方英文文档的人,内容做了精美的排版,里面包括各种函数,语法,限制信息等。内容非常完备,掌握这本手册,相信一定能掌握HANA
SAP ABAP 数据库操作,快速学会ABAP!
SAP 数据库重组SAP 数据库重组
SAP-HANA数据库SQL参考手册是一个中文版的SAP HANA SQL参考文档,详细介绍了在HANA体系中SQL语言的语法以及各种使用规则,包括数据类型、谓词、 操作符、表达式、函数、语句等。目标读者:SAP顾问、管理员、SAP硬件...
SAP Business One 2004B数据表结构 .chm
SAP系统Oracle DataGuard配置操作手册SAP系统Oracle DataGuard配置操作手册SAP系统Oracle DataGuard配置操作手册SAP系统Oracle DataGuard配置操作手册
SAP创建数据库表SAP创建数据库表
SAP-HANA数据库SQL参考手册是一个中文版的SAP HANA SQL参考文件,里面详细介绍了在SAP HANA 体系中SQL语言的使用规则,包括增删改查等语句
sap连接oracle教程.pdf
目前通过Oracle11g连接SAP的HANA数据库Oracle11g的透明网关插件gateways中没有该选项,只能通过ODBC创建dblink连接HANA数据库,文档中包含有如何创建本地数据源ODBC,如何创建并配置相关ora文件,如何创建dblink等...
SAP HANA 数据库 2.8.22 含 ODBC