(1)導(dǎo)入前驗(yàn)證APL代碼-函數(shù)編寫(xiě)模板
Groovy:
//校驗(yàn)邏輯
ValidateResult validate = ValidateResult.builder()
.success(false)
.errorMessage("錯(cuò)誤信息")
.build()
return validate
Copied!
Java:
import java.util.List;
import java.util.Map;
public class Import implements ImportAction {
/**
* 導(dǎo)入函數(shù)的運(yùn)行方法
*/
@Override
public ValidateResult execute(FunctionContext context, Map<String, Object> args) {
//校驗(yàn)邏輯
ValidateResult validate = ValidateResult.builder()
.success(false)
.errorMessage("錯(cuò)誤信息")
.build();
return validate;
}
}
Copied!
(2)導(dǎo)入預(yù)處理APL代碼-函數(shù)編寫(xiě)模板
預(yù)處理函數(shù):
Groovy:
// 獲取導(dǎo)入的任務(wù)id 和 以及是否為最后一批數(shù)據(jù)
def taskId = context.task.taskId as String
log.info(context.task.taskId)
log.info(context.task.lastBatch)
// 在 cache 中緩存信息,供前驗(yàn)證函數(shù)使用
Cache cache = Fx.cache.defaultCache
List<Map> dataList = context.dataList as List
dataList.each{data ->
def rowNo = data._RowNo as String
def name = data.field_MG1ch__c as String
def key = taskId + "_" + rowNo
log.info(key)
def value = "" + name
cache.put(key, value, 30)
}
return ValidateResult.builder()
// 返回 false 將終止本次導(dǎo)入
.success(false)
.errorMessage("我是導(dǎo)入預(yù)處理函數(shù)?。。?!")
.build()
Copied!
Java:
import java.util.List;
import java.util.Map;
public class Import implements ImportAction {
/**
* 導(dǎo)入函數(shù)的運(yùn)行方法
*/
@Override
public ValidateResult execute(FunctionContext context, Map<String, Object> args) {
// 獲取導(dǎo)入的任務(wù)id 和 以及是否為最后一批數(shù)據(jù)
String taskId = context.getTask().get("taskId").toString();
Fx.log.info(context.getTask().get("taskId").toString());
Fx.log.info(context.getTask().get("lastBatch").toString());
// 在 cache 中緩存信息,供前驗(yàn)證函數(shù)使用
Cache cache = Fx.cache.getDefaultCache();
List dataList = (List) context.getDataList();
for (Object item:dataList) {
Map map =(Map<String, Object>)item;
String rowNo = map.get("_RowNo").toString();
String name = map.get("name").toString();
String key = taskId + "_" + rowNo;
Fx.log.info(key);
String value = name;
cache.put(key, value, 30);
}
ValidateResult validate = ValidateResult.builder()
// 返回 false 將終止本次導(dǎo)入
.success(false)
.errorMessage("我是導(dǎo)入預(yù)處理函數(shù)?。。?!")
.build();
return validate;
}
}
Copied!
前驗(yàn)證函數(shù):
Groovy:
log.info(context.data)
def data = context.data as Map
// 獲取 任務(wù)id 和數(shù)據(jù)所屬的行號(hào)
def taskId = data._TaskId as String
def rowNo = data._RowNo as String
log.info(taskId)
log.info(rowNo)
// 從緩存中獲取預(yù)處理函數(shù)保存的信息
Cache cache = Fx.cache.defaultCache
def key = taskId + "_" + rowNo
def value = cache.get(key)
log.info(value)
return ValidateResult.builder()
.success(true)
.errorMessage("我是導(dǎo)入前驗(yàn)證函數(shù)?。。?!")
.build()
Copied!
Java:
import java.util.List;
import java.util.Map;
public class BeforeImport implements ImportAction {
/**
* 導(dǎo)入函數(shù)的運(yùn)行方法
*/
@Override
public ValidateResult execute(FunctionContext context, Map<String, Object> args) {
Fx.log.info(context.getData());
Map data = (Map) context.getData();
// 獲取 任務(wù)id 和數(shù)據(jù)所屬的行號(hào)
String taskId = data.get("_TaskId").toString();
String rowNo = data.get("_RowNo").toString();
Fx.log.info(taskId);
Fx.log.info(rowNo);
// 從緩存中獲取預(yù)處理函數(shù)保存的信息
Cache cache = Fx.cache.getDefaultCache();
String key = taskId + "_" + rowNo;
String value = cache.get(key).toString();
Fx.log.info(value);
ValidateResult validate = ValidateResult.builder()
.success(true)
.errorMessage("我是導(dǎo)入前驗(yàn)證函數(shù)!?。。?quot;)
.build();
return validate;
}
}