项目源码:https://github.com/zhangyueqidlmu/SOAP-Access-SFDC.git

项目背景:salesforce端相关数据需要其他系统提供,其他系统可以提供相关数据的CSV文件。使用SOAP方式java代码定时将文件读取解析并插入到salesforce相关数据表中。

项目实现功能:固定时间访问指定目录下的csv文件,解析csv文件到List中并将records插入到Goods(自定义的sObject)表中,并将此定时任务放到计算机的服务中,防止误操作关闭了命令窗口导致job结束。

代码结构:

代码结构简单介绍:

  • SFDCConf.properties:链接salesforce的配置信息,包括用户名密码以及是否使用代理链接salesforce
  • BaseConf.preperties:配置job的运行时间以及相关文件的访问目录以及文件的名称等;
  • Log4j.properties:配置相关log4j的配置信息;
  • utilities.BaseConfig:基类配置类,通过配置文件路径读取相关的配置信息;
  • utilities.ConstantUtility:常量类;
  • utilities.CVSHelper:对csv文件读或者写的方法封装;
  • utilities.QuartzConfig:读取BaseConf.properties的绝对路径;
  • utilities.SFDCConfig:读取SFDCConf.preperties的绝对路径;
  • service.EmailMessageService:封装发送邮件的服务层;
  • service.GoodsService:封装读取CSV文件并将内容插入到Goods__c中的服务层;
  • service.SFDCService:封装链接断开sfdc接口的服务层;
  • handler.SFDCHandler:实现Job接口,定期创建和sfdc的连接;
  • handler.GoodsHandler:实现Job接口,定期调用GoodsService方法实现定期访问某个文件实现记录插入;
  • schedule.QuartzTask:程序主入口,配置哪些job运行。

其中jar目录中需要包括salesforce相关的wsdl生成的jar,通过wsdl生成jar可以参看http://www.cnblogs.com/zero-zyq/p/6077773.html

通过上述代码即可实现定期访问某个目录下某个csv文件并将文件解析同步到salesforce中。

此项目生成jar以后可以在命令窗口启动后实现每天定时job,通过以下方式可以将此定时任务放到计算机的服务中,免得其他人员误操作将命令窗口关闭从而导致job结束。

生成服务的git地址:https://github.com/zhangyueqidlmu/put-job-to-service.git

 目录结构介绍:

  • conf:此目录为相关配置文件,包括SFDCConf.properties、BaseConf.preperties、Log4j.properties,配置和上述程序中相同;
  • jar:程序使用相关jar包,将上述项目中的jarcopy过来即可;
  • jre:程序运行需要的jre;
  • log:存储job运行生成的log日志;
  • InstallService-NT.bat:双击此批处理文件可以在服务中生成相关的服务;
  • SOAPOperateGoods.jar:此jar包为上面java项目export产生,名字自己起,本项目名称为SOAPOperateGoods;
  • StartService-NT.bat:双击此批处理文件可以直接启动此服务;
  • UninstallService-NT.bat:双击此批处理文件可以卸载此服务;
  • wrapper.conf:此配置文件中需要配置相关jar的路径,项目的QuartTask类的相对位置,生成服务的名称等配置信息;
  • wrapper.log:此log文件显示job所有的log日志信息。

(注:批处理文件应右键使用管理员方式运行)

效果展示:

1.生成Goods Service服务

2.Goods目录生成备份文件以及数据原来内容

3.插入到数据库的数据展示

总结:此项目用于SOAP方式访问salesforce并进行定时任务,有错误的地方欢迎指正,不懂得地方欢迎留言。

salesforce 零基础学习(五十五)java通过SOAP方式定时访问某个文件然后插入到sObject中的更多相关文章

  1. salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce

    本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...

  2. salesforce零基础学习(九十五)lightning out

    随着salesforce对lightning的推进,越来越多的项目基于lightning开发,导致很多小伙伴可能都并不了解classic或者认为不需要用到classic直接就开始了lightning的 ...

  3. salesforce 零基础学习(十九)Permission sets 讲解及设置

    Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...

  4. salesforce 零基础学习(十六)Validation Rules & Date/time

    上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...

  5. salesforce 零基础学习(十八)WorkFlow介绍及用法

    说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...

  6. salesforce零基础学习(一百一十)list button实现的一些有趣事情

    本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...

  7. salesforce 零基础学习(六十八)http callout test class写法

    此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...

  8. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  9. salesforce零基础学习(一百零五)Change Data Capture

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...

随机推荐

  1. Be Better:遇见更好的自己-2016年记

    其实并不能找到好的词语来形容过去的一年,感觉就如此平淡的过了!没有了毕业的稚气,看事情淡了,少了一丝浮躁,多了一分认真.2016也许就是那句话-多读书,多看报,少吃零食多睡觉,而我更愿意说--Be B ...

  2. 关于几个主流语音SDK的接入问题

    这两周都在忙着游戏上线还有接入游戏语音,两周分别接了腾讯语音和百度语音!!! 关于腾讯语音的一些问题 由于发现腾讯语音的在录完音频后的数据是编过码的所以出现了一些问题: *不能解码(腾讯方不提供解码算 ...

  3. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  4. C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)

    本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...

  5. wordpress多站点配置

    wordpress作为全球第一的个人博客搭建平台一直在国内外有着较高的人气,从3.0版本开始就已经支持多站点的搭建.该功能可以让子站点运行主站点的程序,不需要再每个站点分别存放网站程序.最近更新的4. ...

  6. LeetCode[5] 最长的回文子串

    题目描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...

  7. 使用 Android Studio 检测内存泄漏与解决内存泄漏问题

    本文在腾讯技术推文上 修改 发布. http://wetest.qq.com/lab/view/63.html?from=ads_test2_qqtips&sessionUserType=BF ...

  8. bzoj1901--树状数组套主席树

    树状数组套主席树模板题... 题目大意: 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]--a[ ...

  9. iOS -- CocoaPods

    CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...

  10. Maven仓库搭建和配置

    maven在本地搭建仓库的实际需求maven在项目构建过程需要下载一些必要的软件包,这些默认的下载链接都是访问maven的远程中央仓库Central Repo.如果项目中的成员,每次第一次构建的时候都 ...