功能要求:ERP作业调用外部系统的webserice更新数据。
演示环境:ERP作业cooi002(员工档案)录入后更新到外部系统员工档案表。
1、外部系统的WebSerice使用.net搭建
2、在Service.cs中写一个调用方法erp_other
erp_other中两个参数
String AccessType:标志位,用于标志更新,删除,新增
Class2.myGen RecValue:数组数据,传输员工信息数据
提供代码:App_Code/Service.cs
[WebMethod]
//ERP TIPTOP 调用webserver
public bool erp_other(String AccessType, Class2.myGen RecValue)
{
string SqlStr = "insert into gen_file (gen01,gen02,gen03,gendate) values ('" + RecValue.gen01 + "','" + RecValue.gen02 + "','" + RecValue.gen03 + "',null)";
bool g_success = false;
if (AccessType == "I")
{
g_success = db_Con.execSql(SqlStr);
}
return g_success;
}
3、发布网站
4、配置IIS可运行上述发布的WebServices,在IIS中新建虚拟目录(这个是IIS的操作,不详细讲解,可以百度学习)
5、在浏览器中检查WebServices配置是否成功,打开如下图,表示成功。
6、下面我们到TIPTOP中连接上面建好的webservice,切换到目录/4gl中,执行
fglwsdl http://10.0.82.96/WebServersRelease/Service.asmx?WSDL
执行后生成两个文件Service_ServiceSoap.4gl/Service_ServiceSoap.inc
7、编译r.c2 Service_ServiceSoap.4gl
8、用Genero打开作业cooi002,增加如下图所示
GLOBALS"/u1/toptest/topcust/coo/4gl/Service_ServiceSoap.inc"
8、编写代码,调用WebServices
注意:变量的类型一定要与WebService中的类型一样,如果不一样就会报错,在Genero中我们通常习惯用Like数组字段来定义字段类型,但是在调用Webserver时就不行,必须使用和WebService中的定义的变量类型一样。
DEFINE p_recval RECORD
gen01 STRING ,
gen02 STRING ,
gen03 STRING
END RECORD
9、上传编译cooi002并加入WebService连接
10、这样就成功了。
需要技术支持:飞翔信息技术科技有限公司 - 公司介绍