Salesforce环境中的数据,可谓是CRM和End User的重中之重,一切的数据结构最后的展示形式,都离不开数据,数据也可以说是系统的灵魂,能让系统更加丰满,可视化也是如此道理。
对于数据的把握,头脑思路一定要非常清晰,在整理数据时,对象与对象间的关系,决定了我们以什么样的形式去收集排列组合必要的数据。
对于数据备份的需求。客户基本都会要求,只是限于SFDC备份的一些规则,我们备份的量以及备份的时机都有所不同。导出数据也就是简单的备份,有多种方法。
Data Loader
API数据备份
- REST API
- SOAP API
- Buik API
- Metadata API
Report
AppExchagne Package
Google Plug-in
购买一些备份的产品服务等
。。。
手动备份,有点突兀,而且需要大量时间,那么自动的备份,每天每周每月等,如果可以自动操作完成,也不会害怕数据丢失给客户带来的损失。
这次主要介绍一下,通过修改Data Loader的配置文件,cmd命令行执行batch导出SFDC对象的数据,以及通过windows的任务计划程序来定时执行完成的batch文件。备份到指定目录,以及设定每次备份的文件名为当天的时间。这样的话,虽然省去了手动操作,但是需要在客户电脑上事先安装好,执行计划也处理好才可以使用。
有一些基本的需要安装:
Data Loader
JAVA JDK JRE
版本都别太低,否则有些配置无法起作用。
下面开始操作。
1,进入到Data Loader安装目录的Bin目录
2,
win+r -> CMD
cd C:\Users\Lenovo\yes\v48.0.0\bin
encrypt -k dataloder.key //生成key文件
encrypt -e 你的SFDC密码(可以加token)“C:\Users\Lenovo\yes\v48.0.0\bin\ dataloder.key” //SFDC密码加密
3,准备想要导出对象的映射文件(Mapping)
用Data Loader时也是需要的,数据库的API名和自己写的别名同样即可,这里举个Account的例子。
名称随便起,AccountMapping.sdl,放到C:\Users\Lenovo\yes\v48.0.0\samples\conf目录下
#Mapping values
#zc
NAME=Name
TYPE=Type
ACCOUNTSOURCE=AccountSource
INDUSTRY=Industry
DESCRIPTION=Description
4,修改data loader 配置文件process-conf.xml
下面的是导出数据部分的Bean,有需要的话,其他导入等部分可以自行修改
<bean id="csvAccountExtractProcess"
class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<description>csvAccountExtract job gets account info from salesforce and saves info into a CSV file."</description>
<property name="name" value="csvAccountExtract"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="false"/>
<entry key="sfdc.debugMessagesFile" value="C:\Users\Lenovo\yes\v48.0.0\samples\status\sfdcSoapTrace.log"/>
<entry key="sfdc.endpoint" value="https://login.salesforce.com"/>
<entry key="sfdc.username" value="xx@xx.com"/>
<!-- password specified below is invalid, please generate one using the encrypt.bat utility -->
<entry key="sfdc.password" value="2b9ac51ec1c0e99706dbxxxxxxb8f91060fc00f779e2e7560db140b20bd8a7f5"/>
<entry key="process.encryptionKeyFile" value="C:\Users\Lenovo\yes\v48.0.0\bin\dataloder.key"/>
<entry key="sfdc.timeoutSecs" value="600"/>
<entry key="sfdc.loadBatchSize" value="200"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="sfdc.extractionRequestSize" value="500"/>
<entry key="sfdc.extractionSOQL" value="Select Id, Name, Type, AccountSource,Industry,Description FROM Account"/>
<entry key="process.operation" value="extract"/>
<entry key="process.mappingFile" value="C:\Users\Lenovo\yes\v48.0.0\samples\conf\AccountMapping.sdl"/>
<entry key="dataAccess.type" value="csvWrite"/>
<entry key="dataAccess.name" value="C:\Users\Lenovo\yes\v48.0.0\samples\data\Account_BK.csv"/>
</map>
</property>
</bean>
5,上面的配置文件配置好了之后,就可以通过CMD命令行,执行导出数据的操作了。
在bin目录下,process.bat “C:\Users\Lenovo\yes\v48.0.0\samples\conf” csvAccountExtractProcess
回车之后就会自动执行了,
会看到下面的内容,也就是执行成功了。
在配置文件里面设置的路径和备份文件名
C:\Users\Lenovo\yes\v48.0.0\samples\data
简单看一下里面的内容,和手动导出的都一样。
6,接下来就可以通过windows的任务计划程序来自动执行写好的Batch文件,可以每天备份。
Data loader JRE 启动文件,将自己JRE文件夹复制到Data loader目录中,
我的JRE文件在C盘:C:\Program Files\Java
C:\Users\Lenovo\yes\v48.0.0
7,创建两个Batch文件,一个也行,看自己的需求。
accountBatch.bat
设置Java的环境变量为目录中的JRE,调用datalaoder等
..\jre1.8.0_131\bin\java.exe当前jre文件的bin的java.exe目录
@echo ON
:run
cd C:\Users\Lenovo\yes\v48.0.0\bin
set PROCESS_OPTION=process.name="csvAccountExtractProcess"
..\jre1.8.0_131\bin\java.exe -cp ..\dataloader-48.0.0-uber.jar -Dsalesforce.config.dir="C:\Users\Lenovo\yes\v48.0.0\samples\conf" com.salesforce.dataloader.process.ProcessRunner %PROCESS_OPTION%
process.bat C:\Users\Lenovo\yes\v48.0.0\samples\conf csvAccountExtractProcess
accountBatchRename.bat
重新命名备份的文件,加上日期等方便查看。
@echo ON
:run
cd C:\Users\Lenovo\yes\v48.0.0\samples\data
if exist Account_BK.csv (
::重命名生成的文件
ren Account_BK.csv Account_BK%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.csv
)
8,设置windows任务计划程序
打开控制面板,查看方式大图标,点击管理工具
快捷键:
- Win+R”打开运行窗口。
- 接着在窗口输入栏输入“control”
点击任务计划程序
点击创建任务
常规
触发器,设置执行时间
操作,选择创建看好的Batch文件
最后确定保存即可。
可以等待时间看执行结果,也可以直接点击运行,看效果。
2020/08/13 14:43
立即执行了,没有问题。
另外一个Batch文件也是同样的操作。
主要是更改Batch的文件名称。可以自己设置时间,比如是前一个Batch执行后的几分钟,几小时等等。
这里为了看效果我设置比较近的时间。
可以先单独执行一次,看看刚才第一个Batch执行后的文件是否更改名称。
点击运行,
刚才的文件名称成功被修改。
9,最后设置自动执行时间。
accountBatch.bat
执行时间设置为14:56
accountBatchRename.bat
执行时间设置为15:08
然后看一下效果
accountBatch.bat OK了
等几分钟,看文件名称是否改变。
喝杯咖啡哈哈,,,
没问题了。
录了视频。感受变化的一瞬间。
官方参考链接:
https://help.salesforce.com/articleView?id=000331524&language=ja&type=1&mode=1
嗯,差不多了,总结这个也是折腾半天,希望可以帮助到有这个需求的人!
我在故我思,我思故我在。
Latest posts by zchao (see all)
- Auraでアクションボタン作成して画面のチェックボックス項目一括処理 - 2021年4月12日
- デフォルト項目値を含むレコード作成実例説明(defaultFieldValues) - 2021年1月9日
- Salesforce のノーコード・ローコード開発 - 2020年12月31日