ABAP外调WebService过程的介绍

合集下载

ABAP调用外部WebService

ABAP调用外部WebService

作者:SAP 天元
在登录及安全标签上可以设置用于登录访问对应 Web 服务的用户名跟密码,这里我们不做 设置,具体信息如下所示:
点击 按钮测试连接是否成功,如果成功则返回信息如下图所示:

ABAP 调用外部 WebService
作者:SAP 天元
创建逻辑端口
输入事务代码 LPCONFIG 来创建逻辑端口,点击 示: 新建逻辑端口,相关输入信息如下图所

ABAP 调用外部 WebService
作者:SAP 天元
因为当前 WebService 提供了两个类 (Web 服务代码中带有用户可访问的 Public 方法的类) , 我们选择 TempConvertSoap:

ABAP 调用外部 WebService
连接类型选择 G(HTTPConnectiontoExternalServ),输入主机名 (域名 或 IP 都可以)及端口号 80(这里叫 Service No.,其实是第三方系统提供的 HTTP 服务的端 口号,一般默认是 80,具体看情况):

ABAP 调用外部 WebService
作者:SAP 天元
然保存
并激活

在系统中会自动生成一个 ZW3C_CO_TEMP_CONVERT_SOAP 的类及其对应使用的数据类 型,如下图所示:

ABAP 调用外部 WebService
作者:SAP 天元
创建 RFC 目的
用事务代码 SM59 进入 RFC 连接配置,如下图所示:
输入相关描述及在状态管理打勾:
在调用参数中选择 HTTPDestination,然后选择刚创建的 RFC 目的 W3SCHOOLS,在路 径中输入 WebService 后缀/webservices/tempconvert.asmx(RFC 目的 W3SCHOOLS 表 示 , 然 后 结 合 后 缀 组 合 成 结 果 为 http://www.

ABAP 调用web service

ABAP 调用web service

ABAP 调用外部webservice调用外部1.Create web service consumer – SE80右键Enterprise Services -> Service ConsumerExternal WSDL –> URL是web service的WSDL描述,选择package,制定prefix 点击finish.2.系统会自动生成所有相关的object,method,proxy class,激活之后真正创建3.创建logical portt-code SOAMANAGER通过search 的方法找对自己的proxy , Search By 要选对类型找到自己的proxy 之后,点击configurations –> Create 来创建对应的logical Port在生成的logical Port 里 Transport Settings 里可以看到对应的Computer Name of Access URL会变成对应的IP 地址地址,,这里建议改成Server Name 以避免以避免系统系统IP 发生发生变化变化变化之后之后之后还需要调整还需要调整配置配置。

4. 调用 proxy class 对应的方法这里需要这里需要注意的是注意的是proxy class 对应 method 的output 中很多都是深层次结构中很多都是深层次结构,,有些字段还是表类型的段还是表类型的,,在访问其中的字段是需要注意每一层级在访问其中的字段是需要注意每一层级。

5. 在Webservice 中如果有日期类型的数据字段,在生成在生成proxy class 的时候的时候,,ABAP 默认的类型类型是选择是选择XSDDATETIME_Z DEC 15, 在调用的时候在调用的时候可能可能可能会会报以下exception:CX_AI_SYSTEM_DEFAULT ;通过调用CX_AI_SYSTEM_DEFAULT->get_text 会发现真正的异常是CX_SY_CONVERSION_NO_DATE_TIME , 意思意思是说是说是说日期数据日期数据日期数据不能转换成对应的不能转换成对应的不能转换成对应的格式格式格式,,其原因是ABAP 里没有对应的数据类型里没有对应的数据类型匹配匹配web service 里定义定义的元素类型的元素类型Date Time ;取得的数据如下: 2010-01-19T21:21:11解决解决方法是把数据类型修改为方法是把数据类型修改为XSDDATETIME_ISO之后再调用,成功显示。

ABAP外调WebService过程介绍

ABAP外调WebService过程介绍

ABAP外调WebService过程介绍第一章proxy(代理)的生成首先通过se80进入到我们要创建proxy(代理)的package (包)。

以我的zhr_password_change程序为例,该程序的目的是帮助用户修改密码,所以进入的是ZHR包。

进入ZHR包后,右键选择Create -> Enterprise Service / Web Service -> Proxy Object,弹出如下选择框:由于我们是外调Web Service,所以选择Service Consumer选项,并点击继续。

随后出现下面的选择界面:这个选择界面中,如果我们自己的机器就是服务器,那么可以选择Local File,然后给出WSDL文件所在地。

不过一般情况下,我们是通过URL/HTTP访问WSDL文件的。

这里,我得到的WSDL文件地址为:http://10.3.11.123/jfids/ChangePwService?wsdl我们需要先确认这个链接的有效性,可以在浏览器中打开这个链接,如果链接有效,则我们可以看到对应的xml代码:将有效的URL地址输入,点击继续,如图:接下来要选择package(包)和prefix(前缀),package即proxy(代理)所在的包,prefix即代理各种属性(比如名称)、包含数据类型(比如输入数据类型、输出数据类型)等的前缀,主要用于与系统变量进行区分。

我这里选择的包是ZHR、前缀为ZCMIS_。

输入包名、前缀后选择继续,此时会出现确认信息:完成后,会看到workbench request,设置请求号和描述:然后我们会发现package(包)里出现了Enterprise Service选项,里面包含了代理类及其用到的数据类型。

我们需要保存并激活Enterprise Service选项:External View和Internal View分别展示了从被调用方和调用方看到的类的属性,我们可以看到原函数名称以及它在ABAP代码中的名称:Used Object选项会列出新生成的proxy类型以及其需要的数据类型(也就是前面指的输入数据类型、输出数据类型):我们可以通过双击proxy类型,察看这个类包含的属性和方法。

SAP访问外部WebService操作、配置手册

SAP访问外部WebService操作、配置手册

SAP访问外部WebService操作、配置手册●准备一个可以正常访问的WebService地址,包括服务声明本手册示例WebService的服务声明地址:http://192.168.104.26/WebServiceTest/TestService.asmx?WSDL它里边有一个Add方法,传入两个参数,返回两个参数之和。

在本地IIS中可以测试这个方法点击调用,可以返回结果字符串,如下图出现此结果,则说明WebService没有问题。

●为WebService配置RFC终点和代理对象打开RFC终点维护界面(事务码:SM59),显示下图界面点击创建按钮,创建一个RFC终点输入名称、描述、目标系统地址和端口,点保存。

打开对象导航器(事务码:SE80),如下图,右键,依次是Create->Enterprise Service/Web Service->Proxy Object创建代理对象选择URL/HTTP Destination,点确定按钮,如下图输入WebService服务声明地址,点确定输入Package和前缀,点确定,如下图点击激活按钮,代理对象创建成功。

为代理对象配置逻辑端口事务码(LPCONFIG),输入之前创建好的代理类名称和逻辑端口,点击新建按钮,如下图输入描述,然后进入调用参数选项卡,选择HTTP目标选项,输入之前的RFC目标,路径前缀输入IP地址之后至?之前部分,点击保存按钮,并激活。

ABAP使用代理对象示例代码:REPORT ZCALL_WS_TEST.DATA: TESTSERVICE TYPE REF TO ZTESTCO_TEST_SERVICE_SOAP,ADD_IN TYPE ZTESTADD_SOAP_IN,ADD_OUT TYPE ZTESTADD_SOAP_OUT.PARAMETERS: A TYPE I,B TYPE I.START-OF-SELECTION.CREATE OBJECT TESTSERVICE.ADD_IN-X = A.ADD_IN-Y = B.CALL METHOD TESTSERVICE->ADD EXPORTINGINPUT = ADD_INIMPORTINGOUTPUT = ADD_OUT.WRITE: / A,'+',B,'=',ADD_OUT-ADD_RESULT. 运行结果:点击执行按钮:。

ABAP调用外部系统WS

ABAP调用外部系统WS

ABAP调用外部系统WS 创建代理类对象事务码:SE80选择SERVICE CONSUMER,点击继续选择URL/HTTP DESTINATION,点击继续输入WEB SERVICE的地址,点击继续输入开发包,前缀(任意输入,如已用,会提示错误),请求号,点击继续点击COMPLETE完成创建CLIENT PROXIES下为刚刚建立的代理类服务,DATA TYPES下为调用WS参数对应方法所需的类型。

配置G类型连接事务码:SM59CONNECTION TYPE选择G类型分别输入描述,TARGET HOST(调用WS的IP地址),PATH PREFIX(WS地址除IP后的部分)创建完成后,点击CONNECTION TEXT测试连接是否可用,如可用,出现以下画面:创建逻辑端口事务码:LPCONFIG输入刚才创建的代理类,再输入一个逻辑端口名,点击创建按钮:选中DEFAULT PORT,将此端口作为默认端口(这样可以通过ABAP现成方法根据代理类找到默认端口,而不用记这个端口名)在CALL PARAMETERS页中,在HTTP DESTINATION中输入刚刚创建的G类型连接名:在OPERATION页中,输入SOAP Action(在WS文件中可以找到):点击保存完成创建。

编写ABAP代码REPORT zr_znt07.lc_proxy TYPE srt_lp_proxyclass VALUE 'ZNT_CO_COMPLEX_OBJECT_SERVICE'.DATA:lo_proxy TYPE REF TO znt_co_complex_object_service,lo_input TYPE znt_in,lo_output TYPE znt_out,lo_excpt TYPE REF TO cx_ai_system_fault,lv_port_name TYPE srt_lp_name.*根据代理类名找到默认端口CALL METHOD cl_srt_lp_maintenance=>get_default_port_by_proxy EXPORTINGproxyclass = lc_proxyRECEIVINGlp_name = lv_port_name.*创建代理类对象TRY.CREATE OBJECT lo_proxyEXPORTINGlogical_port_name = lv_port_name.CATCH cx_ai_system_fault .WRITE: 'SYSTEM FAULT!'.EXIT.ENDTRY.*调用代理类下需要调用的方法,参数类型按生成的类型定义TRY.CALL METHOD lo_proxy->get_user_info_listEXPORTINGinput =lo_inputIMPORTINGoutput = lo_output.CATCH cx_ai_system_fault INTO lo_excpt.WRITE:/ 'SYSTEM FAULT OCCURED:',lo_excpt->code,lo_excpt->errortext.EXIT.CATCH cx_ai_application_fault.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDTRY.。

abap+webservice_new

abap+webservice_new

测试环境:window xp sp3 英文版SAP server SAP ECC 6.0SAP GUI 710本机内网IP:192.168.0.197 ,SAP Server IP:192.168.0.164第一步,在myeclipse中新建一个Web Service Project,取名为SayHello,,默认采用的就是JAX-WS,不用改,直接点finish完成。

第二步,建立一个java class,名为HelloBody。

其内容为public class HelloBody {public String SayHelloTo(String name){return "hello: "+name;}}第三步,创建web service。

选择向导中Web Service下的Web ServiceNext,在对话框中选择从Java Class创建wsdl。

Next,会让我们选择class。

我们就选择刚才的HelloBody即可。

这个对话框会让你填写java class 及将要生成的Delegate class的名字。

这里java Class是实际完成功能的类,而delegate class 是包装java class成Web Service的类,所有请求都由其接收并解析,然后由java class完成功能,然后由Delegate将结果返回。

还有要注意的是,下面让你填写WSDL的自定义信息,我们先选择Generate WSDL in Project,这样就会自动生成一个WSDL了。

然后填入服务网址http://localhost:8080/,接着是Service name,这个不用修改,自动就是HelloBodyService,我们修改一下Service port,默认是HelloBodyPort,这实在不好,其实这个服务端口就是服务地址的后面部分,比如如果是默认的,那么调用的时候就是http://localhost:8080/SayHello/HelloBodyPort,,网址上出现这样的写法是不是很别扭。

WebService服务调用方法介绍

WebService服务调用方法介绍

WebService服务调用方法介绍WebService是一种基于网络的互操作技术,可通过简单对象访问协议 (SOAP) 来实现不同平台和编程语言之间的通信。

WebService服务调用方法是指通过客户端应用程序与后端WebService进行通信,实现数据传输和功能调用的过程。

下面将详细介绍WebService服务调用方法。

1. 了解WebService服务:在使用WebService服务之前,首先需要了解所需要调用的WebService服务的接口、方法以及参数。

通常,WebService会提供一个WSDL(Web Services Description Language)文件,其中定义了WebService的接口和方法信息。

通过WSDL文件,客户端可以获取到所有WebService接口的详细描述和相关信息。

2. 创建客户端应用程序:为了调用WebService服务,需要创建一个客户端应用程序。

这可以是一个使用特定编程语言编写的应用程序,如Java、C#等。

在客户端应用程序中,需要导入和使用与WebService相关的库和类,以便在应用程序中调用WebService服务。

3. 创建服务代理:客户端应用程序需要创建一个用于与WebService 服务进行通信的代理。

代理是客户端应用程序与WebService服务之间的中间层,它用于封装与WebService的通信细节,并提供一种方便的方式来调用WebService服务的方法。

根据不同编程语言和框架的要求,可以通过使用类似“wsimport”或“svcutil”等工具来生成代理类。

4. 调用WebService服务方法:通过创建的代理类,客户端应用程序可以直接调用WebService服务的方法。

在调用方法之前,需要根据WebService服务的接口定义传递正确的参数。

参数的传递通常是通过创建请求对象并为其设置相应的属性来完成的。

请求对象将包含需要传输给WebService服务的数据。

webservice执行原理和步骤

webservice执行原理和步骤

Web服务(Web Service)是一种基于Web的应用程序接口(API),它使用标准的HTTP协议进行通信,通过网络提供服务和交换数据。

Web服务的执行原理和步骤如下:1. 定义服务接口:首先,需要定义Web服务的接口,即确定服务提供的功能和方法。

这可以使用一种称为WSDL(Web Services Description Language)的XML语言来描述。

2. 发布服务:将定义好的服务接口发布到网络上,使其他应用程序可以访问。

这可以通过将WSDL文件部署到Web服务器上来实现。

3. 发现服务:其他应用程序可以通过查找和发现机制来找到已发布的Web服务。

这可以通过使用UDDI(Universal Description, Discovery, and Integration)注册表或其他服务目录来实现。

4. 绑定服务:一旦找到了所需的Web服务,应用程序需要与之建立连接。

这可以通过使用SOAP(Simple Object Access Protocol)协议来实现,SOAP是一种基于XML的协议,用于在网络上交换结构化的信息。

5. 调用服务:应用程序可以通过发送SOAP消息来调用Web 服务的方法。

SOAP消息包含了调用的方法名和参数,以及其他必要的信息。

6. 处理请求:Web服务接收到SOAP消息后,会解析消息并执行相应的方法。

方法的执行可能涉及到访问数据库、处理数据、调用其他服务等操作。

7. 返回结果:一旦方法执行完成,Web服务会将结果封装成SOAP消息并返回给调用方。

调用方可以解析SOAP消息并获取返回的结果。

8. 解绑服务:当不再需要使用Web服务时,应用程序可以断开与服务的连接。

这可以通过关闭连接或释放资源来实现。

总结起来,Web服务的执行原理和步骤包括定义服务接口、发布服务、发现服务、绑定服务、调用服务、处理请求、返回结果和解绑服务。

通过这些步骤,应用程序可以与Web服务进行通信并获取所需的功能和数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章proxy(代理)的生成首先通过se80进入到我们要创建proxy(代理)的package(包)。

以我的zhr_password_change程序为例,该程序的目的是帮助用户修改密码,所以进入的是ZHR包。

进入ZHR包后,右键选择Create -> Enterprise Service / Web Service -> Proxy Object,弹出如下选择框:由于我们是外调Web Service,所以选择Service Consumer选项,并点击继续。

随后出现下面的选择界面:这个选择界面中,如果我们自己的机器就是服务器,那么可以选择Local File,然后给出WSDL文件所在地。

不过一般情况下,我们是通过URL/HTTP访问WSDL文件的。

这里,我得到的WSDL文件地址为:http://10.3.11.123/jfids/ChangePwService?wsdl我们需要先确认这个链接的有效性,可以在浏览器中打开这个链接,如果链接有效,则我们可以看到对应的xml 代码:将有效的URL地址输入,点击继续,如图:接下来要选择package(包)和prefix(前缀),package即proxy(代理)所在的包,prefix即代理各种属性(比如名称)、包含数据类型(比如输入数据类型、输出数据类型)等的前缀,主要用于与系统变量进行区分。

我这里选择的包是ZHR、前缀为ZCMIS_。

输入包名、前缀后选择继续,此时会出现确认信息:完成后,会看到workbench request,设置请求号和描述:然后我们会发现package(包)里出现了Enterprise Service选项,里面包含了代理类及其用到的数据类型。

我们需要保存并激活Enterprise Service选项:External View和Internal View分别展示了从被调用方和调用方看到的类的属性,我们可以看到原函数名称以及它在ABAP代码中的名称:Used Object选项会列出新生成的proxy类型以及其需要的数据类型(也就是前面指的输入数据类型、输出数据类型):我们可以通过双击proxy类型,察看这个类包含的属性和方法。

这里,我们可以看到ZCMIS_CO_CHANGE_PW_SERVICE包含了一个构造函数和一个SET_PW_DATA方法:双击任意方法,就可以看到它的代码。

这里,我双击了构造函数(CONSTRUCTOR),可看到该构造函数需要文件名和逻辑端口号,以后的内容我们将介绍逻辑端口号的配置和使用:同样,我们在Used Objects中除了察看ZCMIS_CO_CHANGE_PW_SERVICE的属性和方法之外,还可以察看其输入、输出数据的细节,以输入数据为例,双击ZCMIS_SET_PW_DATA:可以看到,ZCMIS_SET_PW_DATA是一个结构,包含了CONTROLLER、ARG0、ARG1、ARG2四个元素。

其中CONTROLLER用于控制其它元素的格式,另外三个元素则来源于外部的Web Service。

此处它们对应的是userID、oldPassword、newPassword三个数值。

CONTROLLER是PRXCTRLTAB类型,即一个由PRXCTRL类型的数据组成的表格。

PRXCTRL类型叫做输入格式控制,包含两个字段:FIELD和VALUE。

其中,FIELD对应着被控制的字段名称,VALUE通过不同值控制对应字段的输入格式(通常为1),罗列如下:1 Initial Value 初始化,比如数字为0,日期为0000-00-00等2 xsi:nil="true" xml节点元素可为空3 Hide 隐藏第二章设置逻辑端口上一章我们在察看ZCMIS_CO_CHANGE_PW_SERVICE类的CONSTRUCTOR(构造函数)的时候,看到有个参数叫做逻辑端口,逻辑端口可以用于软件之间的数据交互,也可用于连接物理端口(比如打印机)。

下面我们将配置ZCMIS_CO_CHANGE_PW_SERVICE需要的逻辑端口。

使用事务代码lpconfig可以进入管理逻辑端口的界面:输入代理类名称,逻辑端口名称(这个可以自己命名,比如我们的逻辑端口用HTTP协议、80端口连接CMIS系统,所以逻辑端口名称就为CMIS_HTTP80)。

如果该类没有缺省端口,需要选中缺省端口,这样才能在构造函数没有指明端口的情况下会将缺省端口作为逻辑端口。

选择中间的创建,进入编辑界面。

在描述一栏,我们可以给出中文的信息,比如“员工自助修改密码”。

运行时间一栏,我们需要选择Web服务基础结构。

然后在调用参数一栏,我们需要给出URL地址,即前面提到的http://10.3.11.123/jfids/ChangePwService?wsdl:保存设置,会出现customizing request,设置请求号与描述:激活设置,即完成了逻辑端口配置。

第三章调用Web Service的代码介绍这里依然将以员工自助密码修改的功能为例,我为这个功能编写的ABAP代码名为:ZHR_PASSWORD_CHANGE。

代码内容如下(需要重点关注的部分,我将以加粗字体进行介绍):*&---------------------------------------------------------------------**& Report ZHR_PASSWORD_CHANGE*&*&---------------------------------------------------------------------**& 本程序用于员工PORTAL密码修改*& 该界面获取用户输入的旧密码、新密码信息后,通过调用WebService对这些数据进行*& 处理,完成更新密码的工作*& WebService对应类型为ZLP01CO_CHANGE_PW_SERVICE:*& 输入为结构ZLP01GET_STRING,含三个字段:*& arg0:用户ID*& arg1:旧密码*& arg2:新密码*& 输出为结构ZLP01GET_STRING_RESPONSE,含一个字段:*& return:计算结果,'success'为成功,'fail'为失败*& 更多详情请参看其他注释*&---------------------------------------------------------------------**&---------------------------------------------------------------------**& 变量定义部分*&---------------------------------------------------------------------*REPORT ZHR_PASSWORD_CHANGE.DATA: ok_code TYPE sy-ucomm, "用户操作userid TYPE sy-uname. "用户IDDATA: pre_password_str(24) TYPE c, "对应0100屏幕第一行文本框new_password_str1(24) TYPE c, "对应0100屏幕第二行文本框new_password_str2(24) TYPE c. "对应0100屏幕第三行文本框DATA: webservice_proxy "WebService代理对象TYPE REF TO ZCMIS_CO_CHANGE_PW_SERVICE,"WebService代理类型webservice_input TYPE ZCMIS_SET_PW_DATA, "输入参数包,包含了三个参数 webservice_output TYPE ZCMIS_SET_PW_DATA_RESPONSE, "返回值包,包含了返回值 wa_input LIKE prxctrl. "输入格式控制DATA: webservice_sys_error TYPE REF TO cx_ai_system_fault, "系统错误webservice_app_error TYPE REF TO cx_ai_application_fault."应用错误DATA: new_password_length TYPE i, "新密码长度digit_count TYPE i. "新密码包含数字的位数我们在se80中利用外部链接http://10.3.11.123/jfids/ChangePwService?wsdl 定义好了ZCMIS_CO_CHANGE_PW_SERVICE类,这里的webservice_proxy即该类的对象。

在第一章中,我们知道这个类的SET_PW_DATA方法的输入数据类型为ZCMIS_SET_PW_DATA(含有CONTROLLER、ARG0、ARG1、ARG2四个字段)、返回数据类型为ZCMIS_SET_PW_DATA_RESPONSE(含有CONTROLLER、RETURN两个字段),所以这里需要专门定义webservice_input、webservice_output作为输入、输出的对象。

wa_input类型为prxctrl(参见第一章的内容),CONTROLLER字段就是通过一组prxctrl数据来对各个字段进行输入控制的。

*&---------------------------------------------------------------------**& 模块定义部分*& status_0100:屏幕运行前,设置工具栏、标题*& user_command_0100:屏幕运行后,根据用户命令进行操作*&---------------------------------------------------------------------*MODULE status_0100 OUTPUT.SET PF-STATUS 'STATUS_0100'. "设置工具栏SET TITLEBAR 'TITLE_0100'. "设置标题ENDMODULE.MODULE user_command_0100 INPUT.CASE sy-ucomm.WHEN 'PERFORM'. "执行PERFORM read_text.PERFORM compare_newpassword.WHEN 'EXIT'. "退出LEAVE PROGRAM.ENDCASE.ENDMODULE.*&---------------------------------------------------------------------* *& 宏定义部分*&---------------------------------------------------------------------* DEFINE popup.CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'EXPORTINGTITEL = &1 "对话框主标题DIAGNOSETEXT1 = &2 "抬头TEXTLINE1 = &3. "正文END-OF-DEFINITION.*&---------------------------------------------------------------------* *& 函数定义部分*& read_text:读取需要的数据*& compare_newpassword:比较两次输入的新密码,不同则重新输入,相同则继续执行*& check_digit:检查新输入的密码有多少数字,用于检查密码复杂度*& execute:执行外部WebService的get_string函数*& reset:出现错误则清空输入栏以便重新输入*&---------------------------------------------------------------------*FORM read_text.userid = sy-uname. "读取登陆用户pre_password_str = pre_password_str. "读取用户输入的旧密码new_password_str1 = new_password_str1."读取用户输入的新密码new_password_str2 = new_password_str2."读取再次输入的新密码new_password_length = strlen( new_password_str1 ).digit_count = 0.ENDFORM.FORM compare_newpassword.IF new_password_str1 = new_password_str2.IF new_password_length > 5.PERFORM check_digit.IF digit_count = new_password_length ORdigit_count = 0.popup '提示' '无效操作' '新密码必须包含字母和数字,请重新输入'.ELSE."将三个参数转换为函数设定的structurewa_input-field = 'ARG0'.wa_input-value = '1'.APPEND wa_input TO webservice_input-controller.wa_input-field = 'ARG1'.wa_input-value = '1'.APPEND wa_input TO webservice_input-controller.wa_input-field = 'ARG2'.wa_input-value = '1'.APPEND wa_input TO webservice_input-controller.CLEAR wa_input.webservice_input-arg0 = userid.webservice_input-arg1 = pre_password_str.webservice_input-arg2 = new_password_str1."执行get_StringPERFORM execute.ENDIF.ELSE.popup '提示' '无效操作' '密码长度不能小于6位,请重新输入'.PERFORM reset.ENDIF.ELSE.popup '提示' '无效操作' '两次输入新密码必须相同,请重新输入'.PERFORM reset.ENDIF.ENDFORM.在第一章中我们知道输入数据除CONTROLLER外,真正输送到Web Service一端的是ARG0、ARG1、ARG2三个字段,这里,我们通过wa_input对三个字段分别进行输入控制的设置,并将设置存放进CONTROLLER字段。

相关文档
最新文档