日积月累
-
webservice in abap
2007-11-05
一、生成webservice
1、向导创建:SE37, Utilities -> More Utilities -> Create Web Service -> From the Funtion Module
2、或者: SE80, 在Package的右键菜单中选择:Create -> Enterprise Service / Web Service -> Web Service
3、详细配置:SE80
4、运行环境配置:WSCONFIG
5、Web Servie Administration for SOAP Runtime: WSADMIN, 在这里可以做webservice的测试,查看WSDL二、调用webservice
1、创建RFC连接: SM50, 类型为HTTP Connection to External Serv,可以设置登录用户和口令
2、创建Logical Port: LPCONFIG, 其中HTTP Destination 选择上一步创建的RFC连接,Path Prefix选择WSDL路径中的后半部分,保存后Active
3、修改调用程序使用的Package, 增加两个Use Access, SAI_TOOLS和SAPPINT, Error Severity都选择No Response
4、生成代理对象: SE80,在Enterprise Services节点的右键菜单中选择: Create -> Proxy Object, WSDL Soruce选择URL / HTTP Destination, 输入WSDL的地址就可以了
5、写调用代码,生成一个代理对象的实例,再调用它的方法就可以了,下面是一个简单的例子:REPORT z_ws_call_test.DATA: proxy TYPE REF TO zco_z_get_org,
org_in TYPE zzget_org,
org_out TYPE zzget_org_response,
error type REF TO cx_ai_system_fault.org_in-orgname = 'SORG.1000'.
TRY.
CREATE OBJECT proxy
* EXPORTING
* LOGICAL_PORT_NAME =
.
*TRY.
CALL METHOD proxy->zget_org
EXPORTING
input = org_in
IMPORTING
output = org_out.
* CATCH CX_AI_SYSTEM_FAULT .
* CATCH CX_AI_APPLICATION_FAULT .
*ENDTRY.CATCH cx_ai_system_fault INTO error.
WRITE /1 error->ERRORTEXT.
ENDTRY.WRITE: AT /1 org_in-orgname,
/1 org_out-orgcode.


