为Dynamics365 web service创建访问中转服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocklee/article/details/83089188

      也许有人会问: Dynamics365的webservice已经支持RESTful和soap的访问, 是否有必要再做一个中转服务器?? 答案是肯定的, 因为:
      1/ License问题, 每个授权用户是要收钱的, 中转服务器使用一个account来访问Dynamics 365服务, 节省开支
      2/ 开发环境中, 登入Dynamics365需要连接微软服务器来认证, 这对于一些没有外购访问权的移动设备客户端的调试就相当不友好了
      3/中转服务器可以将认证凭证cache,加速数据访问的速度
      4/中转服务器只是做数据格式的转换和中转,所以对调用各种soap风格的api都是通用的, 无需改完Dynamics365的代码,又改这个中转服务器的代码
      5/中转服务器的数据传输使用json格式,方便android app等移动设备的调试

      由于soap才支持多公司切换,所以配置文件application-live1.properties如下:

在配置文件中指定d365服务的访问方法为soap, 这个跳板能访问到的d365 服务组(多个的话,用逗号分隔)为哪些,登录用户、密码,Client Id,公司名等

在后台的Dynamics365建立一个AEL_RNote的servicegroup,在其下面加入AEL_RNote_Service服务, AEL_RNote_Service对应的class加入一组method:

public str getUnPostedNotes(str createby)
    {
        
        AEL_ReplacementNote_master master;
        container lvCnt;
        while select master order by AEL_rl_line,AEL_rl_no desc
            where master.AEL_rl_createuser==createby && master.AEL_rl_status!=AEL_rl_status::DS_Posted
            && (master.AEL_rl_type=="IR"||master.AEL_rl_type=="PS"||master.AEL_rl_type=="LR")
        {
            lvCnt+=master;
        }
        return this._getNotes(lvCnt);
    }

build一下这个project,然后用以下方式启动d365访问跳板:

..\jdk1.8\bin\java.exe -jar d365tunnel-0.0.1-SNAPSHOT.jar --spring.config.location=classpath:/application.properties,d:/temp/application-live1.properties --spring.profiles.active=live1

过一会,console会出现如下信息, 最后它告诉你可以通过8081端口访问这个跳板, 而通过这个跳板可以直接访问Dynamics365的soap服务.

打开chrome测试一下,输入http://xxxxxx:8081/stdcall/AEL_RNote/AEL_RNote_Service/getUnPostedNotes?createby=testuser1

扫描二维码关注公众号,回复: 4109907 查看本文章

页面上返回json结果:

{"errCode":0,"errMsg":"","errRef":"","result":[{"rejectBy":"dgmislrh","rejectDate":1539656456000,"rejectComment":"","apprInfo":[{"userId":"dgpd1zty","userName":"曾天宇","action":"Submit","level":1,"opTime":"15/Oct/2018 12:20:59"},{"userId":"dgpd1lyz","userName":"刘元治","action":"Approved","level":2,"opTime":"16/Oct/2018 10:18:21"},{"userId":"dgmislrh","userName":"李润辉","action":"Rejected","level":3,"opTime":"16/Oct/2018 10:20:56"}],"line":"NB01","serverReplacementNoteId":"IR000036","status":0,"submitBy":"dgpd1zty","submitByName":"","submitDate":1539577258000,"type":"IR","updateBy":"","updateByName":"","updateDate":0,"remark":"","replacementNoteDetails":[{"binNumber":"","qpa":153.0,"qty":5.0,"reason":"引脚氧化","desc":"CHIP RESISTOR 100 ohm +-5% 1/16W (T&W) (0402/1005)","job":"JNB0000075","line":"NB01","ln":1,"finishTotal":0.0,"releasedQty":67.0,"jobRequired":153.0,"RecId":5637147983,"supplier":"SCN03","poNo":"","partNumber":"001-310156W016","totalReturnedValue":0.0}],"job":"JNB0000075","operNo":10,"modelNumber":"CN6114C451"}]}

github 下载地址: https://github.com/tiger822/d365connector

猜你喜欢

转载自blog.csdn.net/rocklee/article/details/83089188