APL函數(shù)代碼開放場景-導(dǎo)入Java接口說明
2025-01-08 10:39:50 42 本站
package fx.custom.apl.example.import_;
import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.interfaces.Cache;
import com.fxiaoke.functions.model.ValidateResult;
import com.fxiaoke.functions.template.ImportAction;
import com.fxiaoke.functions.utils.Lists;
import com.fxiaoke.functions.utils.Maps;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 導(dǎo)入前驗證APL代碼使用樣例
* 導(dǎo)入前驗證APL代碼使用ValidateResult進行驗證,并對字段進行賦值
*/
public class ImportExample implements ImportAction {
/**
* 導(dǎo)入函數(shù)的運行方法
*/
@Override
public ValidateResult execute(FunctionContext context, Map<String, Object> args) {
// 1、導(dǎo)入前驗證函數(shù)和新建編輯的前驗證函數(shù)類似,可以提示驗證信息,同時支持阻斷;
// 2、若數(shù)據(jù)導(dǎo)入失敗,或校驗出現(xiàn)錯誤,錯誤信息會回填到Excel失敗列表中
// 3、返回值類型為validateResult
String taskId = String.valueOf(context.getTask().get("taskId"));
Fx.log.info(taskId);// 獲取導(dǎo)入的任務(wù)id
Fx.log.info(context.getTask().get("lastBatch")); //是否為最后一批數(shù)據(jù)
// 導(dǎo)入預(yù)處理時數(shù)據(jù)是分批執(zhí)行的,一批20條,放在context.dataList中
List<Map> dataList = context.getDataList();
// 在 cache 中緩存信息,供前驗證函數(shù)使用
Cache cache = Fx.getCache().getDefaultCache();
dataList.forEach(data -> {
String rowNo = (String) data.get("_RowNo");
String type = (String) data.get("field_7xTmu__c");
String key = taskId + "_" + rowNo;
Fx.log.info(key);
String value = "" + type;
cache.put(key, value, 30);
});
ValidateResult validate = ValidateResult.builder()
.success(true) //校驗是否成功
// .errorMessage("錯誤信息") //校驗失敗時的錯誤提示
.build();
return validate;
}
public static void main(String[] args) {
//調(diào)試器
DebugHelper helper = new DebugHelper();
helper.init();
Map<String, Object> param = new HashMap<>();
Map task = Maps.of("taskId", "63feefd6b605270001f00d8a",
"lastBatch", true,
"unionImport", false,
"fileCode", Maps.of("md5", "5590dcf932975951bcaf672012f351b9",
"sha256", "20+1cPpYRmdReP5loKz2VOZ3nI37m6N4aeNWP85rDHk=")
);
List dataList = Lists.newArrayList();
Map data = new HashMap();
data.put("name", "2");
data.put("field_7xTmu__c", "1");
data.put("tenant_id", "83740");
data.put("data_own_department", Lists.newArrayList("1000"));
data.put("object_describe_api_name", "object_25w17__c");
data.put("_RowNo", "2");
data.put("_TaskId", "63fef209b605270001f00dda");
data.put("_id", "63feeeea12a03e00012d1d55");
dataList.add(data);
FunctionContext context = helper.importContext(dataList, task);
ValidateResult execute = new ImportExample().execute(context, param);
Fx.log.info(execute);
}
}
部分內(nèi)容來源于互聯(lián)網(wǎng),如有侵權(quán),請聯(lián)系客服刪除處理。