BeeDI支持基于Http Post方式传递表单数据,既可采用名值对的参数方式上传表单项,也可通过Json格式封装表单数据上传。下面以Solr为例介绍BeeDI 的Post表单操作。
1 启动Solr
在命令行模式执行Solr启动命令
solr start -e cloud
然后全部采用默认设置,solr启动完毕,界面如下:
2 创建集合
在Microsoft Edge地址栏输入http://127.0.0.1:8983/solr,打开Solr管理页面,在其中创建集合person,然后在schema中增加字段name string、sex string、sg string、minzu string、hkszd text_cjk、zy text_cjk,字段添加完毕,在地址栏输入http://localhost:8983/solr/person/schema?f1=name,显示如下字段信息。
也可通过BeeDI的Solr接口查看,如下图:
3 Post表单方式写入文档
在BeeDI中新建模板作业web_update,从资源箱【DB】中拖拽【MSSQL】、【其它】中选择【Post传输】接口图标到模板页,结果如下:
双击模板页中的MSSQL节点,设置接口连接参数,如图所示:
选择【确定】按钮,显示MSSQL接口包含的表
双击模板页中的Post传输节点,设置接口连接参数:
【数据接口名】输入solr_update
【服务URL】输入 http://127.0.0.1:8983/solr/person/update
点击【调用参数】单元值,然后点击单元栏右侧的【设置】按钮,在弹出的【参数设置】对话框中依次添加参数commitWithin、overwrite、wt,结果如下图
点击【确定】按钮关闭参数设置对话框。
勾选【Post数据】,指示Post发送数据。
Post传输接口最终定义如下:
选择【确定】按钮关闭【Post传输接口】对话框,在模板页自动增加对应的装载组件,如下图:
从资源箱【组件】中拖拽【映射】组件图标到模板页,如图:
从MSSQL接口窗口拖拽表节点dbo.PERSON_L到模板页的映射组件释放,结果如下:
修改射组件窗口中的输出别名NO2,将其改为key,双击MSSQL接口窗口的表节点dbo.PERSON_L,然后从显示的列节点中拖拽NO2到映射组件窗口,结果如下:
为保证Post传递的json信息与Solr模式一致,进行如下调整:
将输出别名NO2重命名为id,并将对应输入表达式改为
convert(VARCHAR,dbo.PERSON_L.NO2)
其它别名大写转小写,结果如下:
点击映射组件窗口顶部的【选项】按钮,指定key为逻辑主键,勾选【Json映射】,结果如图:
选择【确定】按钮关闭选项对话框。
从MSSQL接口窗口表节点dbo.PERSON_L重拖拽列节点NO2到模板页释放,增加列NO2对应的抽取组件,结果如图:
点击装载组件窗口_post_字段对应的输入表达式,然后点击单元格的设置按钮,弹出【表达式脚本设置】对话框,操作如下:
在【抽取】窗口显示可用抽取组件的输出列,选择【变量】窗口,显示可用的脚本变量,包含对应映射组件的变量,本例中为map_5。
在输入表达式通过抽取列、变量及函数构造脚本
"[" + toJson(getMapValue(map_5,query_6.NO2)) + "]",界面如下:
选择【确定】按钮关闭对话框,然后依次对装载组件的其它字段进行赋值,分别在commitWithin、overwrite、wt对应的表达式中输入"1000"、"true"、"json",最终结果如下:
选择映射组件窗口顶部的【预览】按钮,显示将要Post传递的表单信息。
选择装载组件窗口顶部的预览按钮,显示将要发送的Post数据,结果如下:
选择工具栏【启动】按钮,通过Post方式向Solr写入数据,任务运行结束后,在Solr管理页面执行文档查询,可以看到Post传递的数据,如下图:
4 Post表单方式读取文档
在BeeDI中新建模板作业web_query,从资源箱【DB】中拖拽【MSSQL】、【其它】中选择【Post传输】接口图标到模板页,双击模板页中的MSSQL节点,选择已经配置的数据接口名,选择【确定】按钮,显示MSSQL接口包含的表。
双击模板页中的Post传输节点,设置接口连接参数:
【数据接口名】输入solr_query
【服务URL】输入 http://127.0.0.1:8983/solr/person/select
点击【调用参数】单元值,在其中设置参数q
设置完成后的界面如下:
选择【确定】按钮关闭【传输接口】对话框,在模板页自动增加对应的装载组件,如下图:
从MSSQL接口窗口表节点dbo.PERSON_L重拖拽列节点NO2到模板页释放,增
加列NO2对应的抽取组件,鼠标点击装载组件窗口q字段对应的输入表达式,在其中输入脚本 "id:" + toString(query_4.NO2),完成后的界面如下:
选择装载组件窗口顶部的【选项】按钮,在弹出的【选项】对话框中编辑【反馈脚本】,在其中输入以下脚本:
MAP response;
response = parseJson(post_ret_3);
response = getMapValue(response,"response");
response = getMapValue(response,"docs");
print(toJson(response));
界面操作如下图
选择【确定】按钮关闭对话框,返回模板页操作界面。
选择工具栏【启动】按钮,通过Post方式从Solr读取数据,选择BeeDI【日志】窗口,可以查看读取的Solr文档,结果如下图: