扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
到底谁调用谁啊?
创新互联公司是专业的赤峰网站建设公司,赤峰接单;提供成都网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行赤峰网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
1.ABAP call Java
REPORT zexecute.
*实例 abap调用java文件
DATA para TYPE string.
PARAMETER mytext TYPE objectname.
PARAMETER mytext1 TYPE objectname.
para = 'Test'. "class name
CONCATENATE para mytext mytext1 INTO para SEPARATED BY space.
CALL METHOD cl_gui_frontend_services=execute
EXPORTING
application = 'JAVA' "需要执行的语言
parameter = para "参数
default_directory = 'D:\' "路径
minimized = 'X'
synchronous = 'WAIT'
operation = 'OPEN'
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
synchronous_failed = 8
not_supported_by_gui = 9
OTHERS = 10.
*
*
WRITE 'Success'.
2.Java call ABAP
用java来访问SAP的方式不多,一般是JCO,要不就是webservice
要下个JCO.jar包
import com.sap.mw.jco.*;
JCO.Client mConnection = null;
mConnection = JCO.createClient(
"400", // SAP client
"arasoft", // userid
"********", // password
"EN", // language
"host", // application server host name
"00"); // SAP system number
void connect() //Connecting to SAP
void disconnect() //Disconnecting from SAP
void execute(JCO.Function function) //Executing an RFM
如果需要ABAP程序与JAVA程序间调用, 可以采用SAP提供的SAP Java Connector. 它支持ABAP,JAVA之间的双向调用, 譬如在webdynpro for java里调用BAPI时, 可以使用JCO来实现调用RFM, 在SAP WAS JAVA与WAS ABAP之间交互也是基于JCo实现的
JCo基于SAP RFC协议,当从JAVA端调用ABAP端提供的服务时, 需要提供一个可以远程调用的Function module即可. 当从ABAP端调用JAVA提供的服务时, 需要JAVA先将服务注册到SAP Gateway, 然后建立一个类型为T的RFC Destination , 并且在ABAP服务器端需要实现一个输入输出参数跟JAVA提供服务相同的function module, 调用时跟调用一般的RFM没什么区别.
另外,关于调试, 如果是在JAVA端调用ABAP的FM, 需要调试ABAP代码, 可以在FM里相应的代码行里建立extenal breakpoint. 而如果在ABAP端调用JAVA程序, 需要调试JAVA代码,可以将JAVA程序运行在调试模式, 然后从ABAP端运行即可. 注意,需要在开发PC上同时安装SAP GUI与Java IDE.
JCo 下载: java connector , 下载包里有详细安装文档与使用示例.
ABAP就是在SAP开发中使用的语言。ABAP跟JAVA,C++一样,是一种开发语言。
Proxy分为两种,ABAPProxy和JAVAProxy。他们之间的不同不仅在于语言,ABAPProxy在应用端(R/3等)生成的,JAVAProxy是从IR中生成的.JAR文件。但是它们都是依据messageinterface中的WSDL产生的。 Proxy具有与messageinterface相同的属性:Inbound,Outbound,Synchronous,n...
Proxy分为两种,ABAP Proxy和JAVA Proxy。他们之间的不同不仅在于语言,ABAP Proxy在应用端(R/3等)生成的,JAVAProxy是从IR中生成的.JAR文件。但是它们都是依据message interface中的WSDL产生的。
Proxy具有与message interface相同的属性:Inbound, Outbound, Synchronous, Asynchronous
做ABAP Proxy之前,要用 RZ70去建立R/3与PI的连接。这里还可能需要用SM59去定义相应的RFC Destination。用SMGW可以在PI的端找到相应的Service。(S-y$l4A%v' ^+c#U
Table:SPROXSET,是用来设置SPROXY权限的,可以查找在这张表里查找自己是不是有权限。4 S8{5w:U9K
T-CODE:SPROXY就是在Application端生成PROXY的主要工具,在这之前,你需要在PI端设置好相应的Message Interface,SAP端才能根据Message Interface的WSDL生成ABAP Proxy
JAVAProxy相对简单,只要在Message Interface中右击相应的Message Interface,会有Java Proxy Generation选项,就可以自动生成JAVAProxy,.JAR文件,开发人员可以对其进行部署。
呵呵~楼主多虑了。
First:SAP绝对不会放弃ABAP,ABAP说到底还是SAP的核心,SAP ERP(R/3)和BW底层的东西还是ABAP语言,如果SAP放弃ABAP,那么它的产品就不卖了吗?难道再用一种语言进行开发新产品?
Second:SAP基于JAVA开发的组件,比较多的就是SAP Netweaver EP(Enterprise Portal)部分了,包括它推出的CE环境。但说实在的EP部分还有ABAP的影子,它整合了JAVA和ABAP,只不过JAVA的分量足些。
Third:Oracle收购Sun,并没有对JAVA开放式环境进行垄断,SAP走JAVA的道路是势在必行的(最后我会做补充),但如果Oracle对SAP封锁JAVA环境,那舆论会倒向哪方想必你也知道,这样做也是商界所不齿的(SAP与Oracle也没什么世仇,就因为产品竞争)。至少作为SAP项目实施人员,我并没有遇到因Sun被甲骨文收购而造成SAP产品使用和开发上的问题。
补充:
SAP走JAVA的道路其实也很久了,自从90年代JAVA活跃起后,表现出众多的语言优势,比如说平台无关性(跨平台移植能力强)。试想下如果IT市场上大部分使用JAVA语言,SAP还固守自己的ABAP,那么可想会对自己的产品市场造成怎样的影响。可以说是SAP顺应技术与时代的发展,整合进了JAVA语言,目前SAP的产品就是JAVA和ABAP共同作为其开发语言。
至于SAP会不会放弃或冷淡JAVA,我只能谈下我的想法了,毕竟这是人家的事情。我个人认为是不会放弃或冷淡它的,至少最近几年内不会。除非有新的开发语言产生,或者Oracle对Sun的控制权已严重威胁到了SAP的发展(但现状是明显没有)。SAP的产品采用JAVA的组件还有很多,如果放弃JAVA,会对自己的客户和现有的产品造成恶性影响。
希望对你有用~
现在在NWA中就可以调整的。应该和CE的一样,无论使用UME,CUA还是LDAP,只不过是数据源发生改变,而同样可以使用UME的API访问。数据源中主要包括用户,角色等信息,而Portal上的角色信息和数据源上的角色信息不是一个概念。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流