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 未詳細介紹的組件
未詳細介紹的可參考我的另外兩篇博客