TIPTOP调用外部Webservice传输数据
功能要求
TOPGP中ERP作业需要调用外部系统的webserice来更新数据。具体是将TOPGP中ERP作业cooi002(员工档案)录入后的数据更新到外部系统的员工档案表。
演示环境
在外部系统搭建WebSerice,这里使用.net进行搭建。
调用方法
在Service.cs文件中编写一个名为erp_other的调用方法,该方法包含两个参数:
1. String AccessType:标志位,用于标志更新、删除或新增操作。
2. RecValue:数组数据,用于传输员工信息数据。
提供的代码如下:
```csharp
[WebMethod]
// ERP TIPTOP 调用webserver
public bool erp_other(String AccessType, RecValue)
{
string SqlStr "insert into gen_file (gen01,gen02,gen03,gendate) values ('" "','" "','" "',null);";
bool g_success false;
if (AccessType "I")
{
g_success db_Con.execSql(SqlStr);
}
return g_success;
}
```
发布和配置
1. 将网站发布到服务器,并配置IIS以便能够运行上述发布的WebServices。具体的IIS操作不在此详细讲解,可自行百度学习。
2. 在IIS中新建虚拟目录。
检查配置
在浏览器中打开WebServices的URL,如果能够成功访问,则表示配置成功。
连接TIPTOP和外部Webservice
1. 在TIPTOP中切换到目录/4gl,执行命令fglwsdl 。执行后会生成两个文件:Service_ServiceSoap.4gl和Service_。
2. 编译r.c2 Service_ServiceSoap.4gl。
3. 在作业cooi002中添加全局变量`GLOBALS "/u1/toptest/topcust/coo/4gl/Service_"`。
4. 编写代码来调用WebServices。需要注意的是,变量的类型必须与WebService中的类型一致,否则会报错。在Genero中,我们常用`LIKE`数组字段来定义字段类型,但是在调用Webserver时不起作用,必须使用与WebService中定义的变量类型相同。
示例代码如下:
```genero
DEFINE p_recval RECORD
gen01 STRING,
gen02 STRING,
gen03 STRING
END RECORD
```
上传并编译作业cooi002,并加入与WebService的连接,这样就成功实现了调用外部Webservice传输数据的功能。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。