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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值