APL函数代码开放场景-导入Groovy代码示例

2025-01-08 10:38:14 501 本站

(1)导入前验证APL代码-函数编写模板

Groovy:

//校验逻辑
ValidateResult validate = ValidateResult.builder()
.success(false)
.errorMessage("错误信息")
.build()
return validate
       Copied!    

Java:

import java.util.List;
import java.util.Map;

public class Import implements ImportAction {
/**
* 导入函数的运行方法
 */
 @Override
 public ValidateResult execute(FunctionContext context, Map<String, Object> args) {
 //校验逻辑
 ValidateResult validate = ValidateResult.builder()
 .success(false)
 .errorMessage("错误信息")
 .build();
 return validate;
 }
 }  

       Copied!    

(2)导入预处理APL代码-函数编写模板

预处理函数:

Groovy:

 // 获取导入的任务id 和 以及是否为最后一批数据
 def taskId = context.task.taskId as String
 log.info(context.task.taskId)
 log.info(context.task.lastBatch)

// 在 cache 中缓存信息,供前验证函数使用
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 将终止本次导入
.success(false)
.errorMessage("我是导入预处理函数!!!!")
.build()
       Copied!    

Java:

import java.util.List;
import java.util.Map;

public class Import implements ImportAction {
/**
* 导入函数的运行方法
 */
 @Override
 public ValidateResult execute(FunctionContext context, Map<String, Object> args) {

   // 获取导入的任务id 和 以及是否为最后一批数据
   String taskId = context.getTask().get("taskId").toString();
   Fx.log.info(context.getTask().get("taskId").toString());
   Fx.log.info(context.getTask().get("lastBatch").toString());

   // 在 cache 中缓存信息,供前验证函数使用
   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 将终止本次导入
     .success(false)
     .errorMessage("我是导入预处理函数!!!!")
     .build();
   return validate;
}
}
       Copied!    

前验证函数:

Groovy:

log.info(context.data)
def data = context.data as Map
// 获取 任务id 和数据所属的行号
def taskId = data._TaskId as String
def rowNo = data._RowNo as String

log.info(taskId)
log.info(rowNo)

// 从缓存中获取预处理函数保存的信息
Cache cache = Fx.cache.defaultCache
def key = taskId + "_" + rowNo

def value = cache.get(key)

log.info(value)

return ValidateResult.builder()
.success(true)
.errorMessage("我是导入前验证函数!!!!")
.build()
       Copied!    

Java:

import java.util.List;
import java.util.Map;

public class BeforeImport implements ImportAction {
/**
* 导入函数的运行方法
 */
 @Override
 public ValidateResult execute(FunctionContext context, Map<String, Object> args) {

   Fx.log.info(context.getData());
   Map data = (Map) context.getData();
   // 获取 任务id 和数据所属的行号
   String taskId = data.get("_TaskId").toString();
   String rowNo = data.get("_RowNo").toString();
   Fx.log.info(taskId);
   Fx.log.info(rowNo);


   // 从缓存中获取预处理函数保存的信息
   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("我是导入前验证函数!!!!")
     .build();
   return validate;
   }
}




部分内容来源于互联网,如有侵权,请联系客服删除处理。
在线咨询 拨打电话