脚本是一段 PHP 代码,可以被应用中心执行以实现特定功能。应用中心支持通过脚本实现以下功能:
编写脚本对于应用中心来说不是必须的,但通过编写脚本却可以极大地增强应用中心的处理能力,这对于实施复杂度高、应用中心标准化功能满足不了的项目是一个很好的选择。
新版应用中心采取前后端分离方式实现,前端和后端采取规定好的数据结构进行通信, 因此用户自己编写脚本过程中读取和设置数据时要满足规定好的结构。
应用中心各控件数据结构说明如下: 单行文本、多行文本、数字文本、货币文本、自动编号:具体值,例如:
1.5.1获得当前表单 id 方法:getFormId() 输入:无 输出:当前表单 id
1.5.2获得当前表单 guid 方法:getFormGuid() 输入:无。 输出:当前表单 guid。
1.5 1.5.3获得表单 guid 方法:getFormGuidById($i_id) 输入: $i_id 表单 id。 输出:指定表单 guid。
1.5.11 清除列表数据 方法:function clearDetailTable($s_item_guid) 输入:$s_item_guid 字段 guid。 输出:无。
1.5.15 根据表单 guid 获得表单 id 方法:function getFormIdByGuid($s_guid) 输入:$s_guid 表单 guid。 输出:表单 id。
1.5.16 根据字段 GUID 获得字段 ID 方法:function getItemIdByGuid($s_guid) 输入:$s_guid 字段 guid。 输出:字段 id。
1.8 举例 以倍数换算为例,举例说明如何使用自定义函数。首先,定义如下提取触发器:
function calculate_it($PLUGIN_UTILS){
自定义函数仅在触发器的局部实现了自定义处理逻辑。除此之外,应用中心还支持在整个触发器范围内自定义处理逻辑。要实现整个触发器范围内的自定义处理,需要满足以下条件:
如果是提取触发器,填充方式里除了匹配之外,其他填充方式不得存在。
自定义提取或者回填处理引擎命名规则为:XXX 名称,对应的实现文件为:XXX 名称.php,例如:处理引擎为 get_goods_lot,对应的实现文件为:get_goods_lot.php。
以初始化数据为例,举例说明如何使用脚本引擎实现自定义提取逻辑,触发器定义如下:
处理引擎定义为"fill_it",填充方式空着,即什么都不定义。 引擎脚本文件 fill_it.php 包含以下内容:
$PLUGIN_UTILS->getItemGuidByName($PLUGIN_UTILS->getFormId(), "寄送方式");
$PLUGIN_UTILS->setOptionValues($plugin_s_select,
$PLUGIN_UTILS->setValue($plugin_s_select, "01");
$plugin_s_list = $PLUGIN_UTILS->getItemGuidByName($PLUGIN_UTILS->getFormId(), "列表 ");
$plugin_s_guid = $PLUGIN_UTILS->getItemGuidByName($PLUGIN_UTILS->getFormId(), "列表 ", "发票名称");
$plugin_s_guid2 = $PLUGIN_UTILS->getItemGuidByName($PLUGIN_UTILS->getFormId(), "列表", "发票号");
$PLUGIN_UTILS->clearDetailTable($plugin_s_list);
$PLUGIN_UTILS->setValue($plugin_s_guid, "充值卡");
以回写发票信息为例,举例说明如何使用脚本引擎实现自定义回填逻辑,触发器定义如下:
回写条件和更新方式不定义。处理引擎写上 back_it。 脚本引擎文件 back_it.php 包含如下内容:
$plugin_i_target_formid = $PLUGIN_UTILS->getFormIdByName("特性展示", "test112102");//目标表单 id
$PLUGIN_UTILS->getItemIdByName($plugin_i_target_formid, "列表");//
$PLUGIN_UTILS->getItemIdByName($plugin_i_target_formid, "列表", "发票号");//目标字段发票号 id
$PLUGIN_UTILS->getItemIdByName($plugin_i_target_formid, "列表", "说
$PLUGIN_UTILS->getItemIdByGuid("{C55A3264-04D4-297B-7685-26AFE7FE 10C2}");//本表单字段发票号 id
$PLUGIN_UTILS->getItemIdByGuid("{B8240BDB-5A0B-21F3-D676-2E9A07DC 36CF}");//本表单字段发票名称 id
$plugin_arr_row = $PLUGIN_UTILS->getRowByName("列表"); if(!empty($plugin_arr_row)){
foreach($plugin_arr_row as $plugin_row){ $sql = "select id from
app_data_{$plugin_i_target_formid}_list_{$plugin_i_target_list_id}
col_$plugin_i_target_fph_id='{$plugin_row["col_$plugin_i_source_f
$PLUGIN_UTILS->getDb()->createCommand($sql)->queryOne();
if(!empty($plugin_target_row)){
{$plugin_row["col_$plugin_i_source_fph_id"]},发票项目:
{$plugin_row["col_$plugin_i_source_fpmc_id"]}";
app_data_{$plugin_i_target_formid}_list_{$plugin_i_target_list_id}
set col_$plugin_i_target_bz_id='$plugin_s_value' where