salesforce 零基础学习(五十五)java通过SOAP方式定时访问某个文件然后插入到sObject中
项目源码: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中的更多相关文章
- salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce
本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...
- salesforce零基础学习(九十五)lightning out
随着salesforce对lightning的推进,越来越多的项目基于lightning开发,导致很多小伙伴可能都并不了解classic或者认为不需要用到classic直接就开始了lightning的 ...
- salesforce 零基础学习(十九)Permission sets 讲解及设置
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...
- salesforce 零基础学习(十六)Validation Rules & Date/time
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...
- salesforce 零基础学习(十八)WorkFlow介绍及用法
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...
- salesforce零基础学习(一百一十)list button实现的一些有趣事情
本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...
- salesforce 零基础学习(六十八)http callout test class写法
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- salesforce零基础学习(一百零五)Change Data Capture
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...
随机推荐
- 一步一步使用ABP框架搭建正式项目系列教程
研究ABP框架好多天了,第一次看到这个框架的名称到现在已经很久了,但由于当时内功有限,看不太懂,所以就只是大概记住了ABP这个名字.最近几天,看到了园友@阳光铭睿的系列ABP教程,又点燃了我内心要研究 ...
- hadoop 2.7.3本地环境运行官方wordcount
hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...
- javascript动画系列第一篇——模拟拖拽
× 目录 [1]原理介绍 [2]代码实现 [3]代码优化[4]拖拽冲突[5]IE兼容 前面的话 从本文开始,介绍javascript动画系列.javascript本身是具有原生拖放功能的,但是由于兼容 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- BPM的魅力何在?
BPM(Business Process Management , 企业流程管理平台) 是带动企业流程自动化的帮 手,也是最能忠实反应出企业作业流程问题症结的系统工具,在管理上,BPM可以让管理者利用 ...
- 最小生成树(Kruskal算法-边集数组)
以此图为例: package com.datastruct; import java.util.Scanner; public class TestKruskal { private static c ...
- TCP三次握手图解
- 《Walking the callstack(转载)》
本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...