以下特性是因gyb2.0的需要而引入,作为das系统的新增特性。
1.支持系统字段可以配置
目前是为了支持gyb2而增加的功能.
在lm.conf中配置.目前仅支持的系统字段有:
SF_SRC_ORGID = 55, /// 源机构(零售商)SF_SHEET_ID = 56, /// 单据编号SF_DEST_ORGID= 58, /// 供应商mis
默认字段名分别为:src_orgid,sheet_id,mis_id.
可按需要扩展.
该特性不需要增加到原gyb中,对于非通用的单据处理,代码未做修改不支持此特性。
这也意味着统一代码需要做相应的修改.
das和原gyb的单据处理以及接口方面可能要各自发展.
配置方法如下:
<!--系统字段配置,默认:55-src_orgid, 56–sheet_id --><system_fields><item><code>55</code><name>SOURCEORGID</name></item><item><code>56</code><name>SHEETID</name></item><item><code>57</code><name>TARGETNO</name></item></system_fields>
2.供应商机构映射
服务器是按机构id控制用户数据访问范围的。
服务器接收单据后需要根据零售商为供应商分配的MIS编号,映射到供应商机构Id.
lm.conf按以下方式配置
<!-- 是否映射目标接收机构,默认:false--><map_vender_orgid>true</map_vender_orgid><!-- 目标机构id映射命令 --><cmd_get_vender_orgid>select coorgid from tb_9011 where orgid='@SOURCEORGID' and f001v_9011='@TARGETNO'</cmd_get_vender_orgid>
<cmd_get_vender_orgid>默认为:
select co_orgid from tb_1068 where f003v_1068 = '@mis_id' and orgid = @src_orgid
目前实现时对新增的<cmd_get_vender_orgid>未做有效性检查,包括语句的有效性,参数是否在系统字段范围.
CLMPlugin::GetCoOrgID修改为:
int CLMPlugin::GetCoOrgID(CQQ_ORGID orgid,const char *vender,CQQ_ORGID &co_orgid) {int para_num = cmd_parser_.GetParamNum();vector<string> vs;for (int k=0;k<para_num;k++) {stParamPair *pp = parser.GetParam(k);switch(pp->fld_id_) {case SF_SRC_ORGID: {string s = LogMsg("%ul",orgid);vs.push_back(s);}break;case SF_MIS_ID:vs.push_back(vender);break;default:return -1;}}char *buffer;parser.Instance(&buffer,vs);string sql = buffer;delete []buffer;GETDBC(pdbor,this->local_dbc_.c_str());AUTO_QUERY_RECORDSET(CRecordset,prs,pdbor);prs = pdbor->Query(adCmdText,sql.c_str());if (prs==0) return -1;if (prs->IsEof()) {return -1;}_variant_t vtOrgId;if (!prs->GetFieldValue(0,vtOrgId)) {return -1;}co_orgid = vtOrgId.lVal;return 0;}
3.允许单据表没有send_status,send_time
lm.conf增加<app_prop>配置项.
<app_prop>1<app_prop> <!--应用属性,适应不同应用而引入的属性.默认:0 -->
代码修改:
int CLMPlugin::handle_event(EVENT_TYPE e,void *arg) {
case DATA_SEND_OUT: { ///< 单据已发送
if app_prop_&1) { ///< lm不响应DATA_SEND_OUT,即不修改单据表的发送状态和时间. das for gyb2.0没有这些字段
return 0;
}
}
4.附:lm.conf完整配置
4.1 服务器lm.conf
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<config>
<dbc>laton</dbc>
<load_data_interval>30</load_data_interval>
<backup_mis_file>false</backup_mis_file>
<mis_log_verbose>1</mis_log_verbose>
<mis_log_path>data\mislog</mis_log_path>
<RunParams>
<ImportData>0</ImportData>
<ExportData>0</ExportData>
</RunParams>
<import_file_path>data\retail\autosend</import_file_path>
<!-- 是否映射目标接收机构,默认:false-->
<map_vender_orgid>true</map_vender_orgid>
<cmd_get_vender_orgid>select coorgid from tb_9011 where orgid='@SOURCEORGID' and f001v_9011='@TARGETNO'</cmd_get_vender_orgid>
<!-- 多数据源模式(不同的源机构的数据存储在不同的数据库中) 0:单数据源 1:多数据源.默认: 0 -->
<multi_ds>1</multi_ds>
<!--数据源连接串模板 -->
<ds_connstr_template>
<database>das_server_21</database>
<item>
<ds_name>das_db_10008</ds_name>
<connstr_template>Provider=MSDASQL.1;Password=@password;Persist Security Info=false;User ID=@user;Data Source=PostgreSQL30;Location=postgres;Initial Catalog=gybao</connstr_template>
<db_ext>pg_ext.dll</db_ext> <!--数据库扩展 -->
</item>
</ds_connstr_template>
<!--系统字段配置,默认:55-src_orgid, 56–sheet_id -->
<system_fields>
<item>
<code>55</code>
<name>SOURCEORGID</name>
</item>
<item>
<code>56</code>
<name>SHEETID</name>
</item>
<item>
<code>57</code>
<name>TARGETNO</name>
</item>
</system_fields>
<item>
<code>58</code>
<name>TARGETORGID</name>
</item>
</config>
4.2 前置机lm.conf
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<config>
<dbc>laton</dbc>
<load_data_interval>30</load_data_interval>
<backup_mis_file>false</backup_mis_file>
<mis_log_verbose>1</mis_log_verbose>
<mis_log_path>data\mislog</mis_log_path>
<RunParams>
<ImportData>1</ImportData>
<ExportData>0</ExportData>
</RunParams>
<import_file_path>data\retail\autosend</import_file_path>
<on_duplicate_key>3</on_duplicate_key>
<!--系统字段配置,默认:55-src_orgid, 56–sheet_id -->
<system_fields>
<item>
<code>55</code>
<name>SOURCEORGID</name>
</item>
<item>
<code>56</code>
<name>SHEETID</name>
</item>
</system_fields>
<app_prop>1</app_prop> <!--应用属性,适应不同应用而引入的属性.默认:0 -->
</config>
如果觉得《das for gyb2.0新增特性说明》对你有帮助,请点赞、收藏,并留下你的观点哦!