1 Kettle调用纷享销客CRM部门及用户接口
Kettle调用纷享销客部门和用户和用户接口,来把对应的部门和用户存入本地数据库。
1.1 job
- 设置变量
parent_job.setVariable("corpAccessToken", rows[0].getString("corpAccessToken", ""));
parent_job.setVariable("corpId", rows[0].getString("corpId", ""));
true
- JavaScript
var prevRow=previous_result.getRows();//获取上一个传递的结果
if (prevRow == null &&(prevRow.size()=0))
{
false;
}else{
parent_job.setVariable("tables", prevRow);//ArrayList存储表名变量
parent_job.setVariable("size", prevRow.size());//存储执行表的总数量
parent_job.setVariable("i", 0);//循环控制变量
parent_job.setVariable("departmentId", prevRow.get(0).getString("id", ""));
true;
}
- 检验字段的值
- JavaScript2
var prevRow=previous_result.getRows();
var size = new Number(parent_job.getVariable("size"));
var i = new Number(parent_job.getVariable("i"))+1;
if(i<size){
parent_job.setVariable("departmentId", prevRow.get(i).getString("id", ""));
}
parent_job.setVariable("i",i);
true;
1.2 获取token
- 生成记录
body 为请求携带的参数:{“appId”: “”,“appSecret”:"",“permanentCode”:""}
url 为获取access_token的接口:https://open.fxiaoke.com/cgi/corpAccessToken/get/V2
- REST Client
返回的json格式如下:具体可参考文档http://open.fxiaoke.com/wiki.html#artiId=17
{
"errorCode": 0,
"errorMessage": "success",
"corpAccessToken": "CORP_ACCESS_TOKEN",
"corpId": "CORP_ID",
"expiresIn": 7200
}
- JSON Input
- 字段选择
1.3 部门转换
- 获取变量
获取job中传过来的变量corpid,corpAccessToken
- JavaScript代码
拼接参数body
- JSON Input
处理接口返回的json,详细见文档http://open.fxiaoke.com/wiki.html#artiId=20
- 插入更新
1.4 转换
用户转换,通过循环传入的部门id,去查询该部门下的用户,并插入到数据库。
接口描述见文档:http://open.fxiaoke.com/wiki.html#artiId=22
- JavaScript代码
var body = '{"corpAccessToken":"'+corpAccessToken+'","corpId":"'+corpId+'","departmentId":'+departmentId+',"fetchChild":'+fetchChild+'}';
- JSON Input
- Switch/Case
是个判断,因为部门下可能存在没有用户,如果主键null去进行插入更新操作,就会报错。所以加了这个判断
2. 说明
2.1 未详细介绍的组件
未详细介绍的可参考我的另外两篇博客