特殊时期,大家一定要保重身体。增强自身免疫力,一切都会过去,一起加油!!!

Windows的任务计划程序和Dataloader定时备份对象数据-Batch执行

Salesforce zchao 101℃ 0评论

Salesforce环境中的数据,可谓是CRM和End User的重中之重,一切的数据结构最后的展示形式,都离不开数据,数据也可以说是系统的灵魂,能让系统更加丰满,可视化也是如此道理。

对于数据的把握,头脑思路一定要非常清晰,在整理数据时,对象与对象间的关系,决定了我们以什么样的形式去收集排列组合必要的数据。

对于数据备份的需求。客户基本都会要求,只是限于SFDC备份的一些规则,我们备份的量以及备份的时机都有所不同。导出数据也就是简单的备份,有多种方法。

Data Export

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

 

嗯,差不多了,总结这个也是折腾半天,希望可以帮助到有这个需求的人!

我在故我思,我思故我在。

 

 

转载请注明:zchao博客之家 » Windows的任务计划程序和Dataloader定时备份对象数据-Batch执行

喜欢 (4)or分享 (0)

说点什么

Please Login to comment
  Subscribe  
提醒