糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > das for gyb2.0新增特性说明

das for gyb2.0新增特性说明

时间:2023-11-19 17:27:58

相关推荐

das for gyb2.0新增特性说明

以下特性是因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新增特性说明》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。