2016 - 2024

感恩一路有你

TIPTOP调用外部Webservice传输数据

浏览量:1315 时间:2024-01-18 21:17:34 作者:采采

功能要求

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传输数据的功能。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。