Groovy代码示例

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

Groovy:

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

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;
  }
  }
  

(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()

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;
}
}

前验证函数:

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()

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;
    }
}

2024-10-22
0 8
Baidu
map