自定义算法节点的功能是使用Java代码派生一个或多个新的字段或者替换现有的字段。另外,还可以使用外部的Java库,可以使用"添加库"按钮添加外部的jar或者zip文件。您还可以使用"创建模版..."创建可以重复使用的模版。定义的模版默认保存在工作空间中,并通过"模版"使用它们。
该节点的输入和输出是指所定义算法的输入和输出,可以通过添加和删除按钮进行操作,需要注意的是如果添加的是中文字段名,需要给对应的Java字段名改为英文的,所有用到的输入字段必须在输入框中进行添加,举个例子,下面是一段计算面积的代码:
// 系统导入
import smartmining.base.node.jsnippet.expression.AbstractJSnippet;
import smartmining.base.node.jsnippet.expression.Abort;
import smartmining.base.node.jsnippet.expression.Cell;
import smartmining.base.node.jsnippet.expression.ColumnException;
import smartmining.base.node.jsnippet.expression.TypeException;
import static smartmining.base.node.jsnippet.expression.Type.*;
// 用户自定义导入:
// 系统变量
public class JSnippet extends AbstractJSnippet {
// 输入列域
/** 输入列: "长度" */
public Double c_changdu;
/** 输入列:"宽度"*/
public Double c_kuandu;
// 输出列域
/** 输出列: "mianji" */
public Double out_mianji;
// 用户自定义变量:
// 表达式开始
public void snippet() throws TypeException, ColumnException, Abort {
// 在此处输入代码:
out_mianji = c_changdu*c_kuandu;
// 表达式结束
}
}
其中只有用户自定义变量和在此处输入代码两个部分需要用户自己输入,其他部分是自动生成的,不能直接修改。
对话框选项
字段列表
该列表包含了输入数据中所有可用的字段。其中行ID、行索引、记录数三个字段是系统自动生成的。双击任一字段的名称,可以把他们添加到算法编辑区域。这样可以替换选中的对象,或者插入指定位置。
代码编辑区
在此处编辑Java代码,只能使用系统变量中定义的字段,可以是输入的字段,也可以是用户自定义变量,这里可以使用所有Java中能够使用的函数,只要你引入了对应的jar包。
Java函数举例: 
getCell(name, type)* : 获取字段名
isType(name, type)* : 测试字段类型
isMissing(name)* : 检查字段名是否缺失
columnExists(name)* : 检查给定名称的字段是否存在
getColumnCount(index, type) : 计算输入表的字段数
getColumnName(index) : 按照索引检查字段名称
您可以点击 ctrl+space 可以自动完成对类、方法和字段打包处理。当您选择的类是缺失的时候,按enter后会生成导入语句。
注意,可以在代码段中自定义全局变量和输入。
输入
定义编辑代码需要的输入字段。使用添加按钮添加,然后选择字段名、类型和JAVA字段名(自动生成的格式是"c_字段名",如果字段名是中文的,必须改为英文的,如"c_类别",需要改为"c_lb")。使用删除按钮删除,选中一行字段,可以删除该字段。
输出
定义算法需要的输出字段。使用添加按钮添加,然后选择字段类型、替换方式或者新字段、以及输出字段的类型,如果是新字段的字段名必须定义为英文字段,同时也可以选择是否为数组。使用删除按钮删除,选中一行字段,可以删除该字段。
端口
输入端口

0

输入表

输出端口

0

追加表