hrwj_edi

1.概要

.直接从vss抽取生成文件.数据不需要保存在本地数据库中.

.实现方案见"HRWJ-EDI接口方案及实现"文档


.程序位置:

\\192.168.1.22\临时存储\hrwj_edi\server


.关于数据环境

基于MSCM环境,需要做以下更新(oracle):

alter table tb_0044 add f022b_0044 blob;
alter table tb_0044 add f023n_0044 int default 1;
alter table tb_1126 add f013n_1126 int default 1;
alter table tb_5606 add f023n_5606 int default 1;
edi_oracle.sql是Oracle脚本,包括新建的tb_2851,tb_2853及v_log需要的表及Trigger和Sequence

edi_mysql.sql是对应的MySQL脚本.


SQL脚本位于SVN的“workdb\document\设计文档\EDIZone\hrwj”目录下.


.调试数据

-- 增加过滤条件
insert into tb_2853(buid,mis_id,f001n_2853,f002d_2853) values('18','V00001',10501,TO_DATE('2013-10-10','yyyy-MM-dd'));
insert into tb_2853(buid,mis_id,f001n_2853,f002d_2853) values('18','V00001',10502,TO_DATE('2013-10-10','yyyy-MM-dd'));

-- 增加供应商GLN
insert into tb_2851(buid,mis_id,gln,f001v_2851) values('18','V00011','1234567890123','测试供应商1');
insert into tb_2851(buid,mis_id,gln,f001v_2851) values('18','BC0534','3134567890123','测试供应商2');


.部署时从192.168.3.104的环境导出


.特别注意事项:

---如果单据不需要本地保存(如没有相应表,则单据类型属性设置为"不自动保存"--f013n_0044)

---抽取规则的供应商字段必须配置成:buid,venderid (有顺序要求) ---在平台模式下,每个机构的供应商ID是单一项可以唯一确定的,对于分区情况用二者的组合表示


2.配置

2.1 hotfox.conf

  <!-- 调试使用的连接 -->
	<database encrypted_password="false">
	<conn constr="Provider=MSDASQL.1;Password=???;Persist Security Info=True;User ID=mscm_app;Data Source=edi_app" count="20" name="laton" db_ext="oracle_ext.dll"/>
	<conn constr="Provider=MSDASQL.1;Password=???;Persist Security Info=True;User ID=vss;Data Source=edi_app" count="20" name="vss_db" db_ext="oracle_ext.dll"/>
	</database>
	<!--需要加载的插件 -->
	<plugin>
		<dll path="ivap.dll"/>
		<dll path="bbox.dll"/>
		<dll path="lm.dll"/>
		<dll path="svrm.dll"/>		
		<dll path="dd.dll"/>
    <dll path="dxi_hrwj_task.dll"/> 
 		<dll path="v_log.dll"/>
	</plugin>


2.2 bbox.conf

<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<config>
<dbc>laton</dbc>
<enable_semq>false</enable_semq> <!-- 是否启用SEMQ-->

</config>


2.3 dd.conf

<?xml version="1.0" encoding="gb2312" standalone="no"?>
<config>
	<src_dbc>
		<default>vss_db</default>
		<!--默认数据库连接名,未指定数据库连接名的规则用此连接-->
	</src_dbc>
	<dbc>laton</dbc>
	<dxi_mode>2</dxi_mode> <!-- dxi模式 1-平台模式 2-企业模式 -->
	<check_rule>false</check_rule> <!--是否校验规则 -->
</config>

2.4 lm.conf

<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<config>
<dbc>laton</dbc>
<dxi_mode>2</dxi_mode> <!--dxi模式 1-平台模式 2-企业模式 -->
</config>

2.5 dxi_hrwj_task.conf

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<config>
	<dbc>laton</dbc>
	
	<vss_db><!-- VSS源数据库,支持多个数据源-->
	<item>
	<name>vss_db</name>
	<buid>18</buid>
	</item>
	</vss_db> 
	<tmp_vss_db>vss_db</tmp_vss_db> <!-- 中间库或者仅用于提供模式信息的任一vss_db-->
	<schema_name></schema_name>
<!-- 任务表名称 -->
<task_table_name>EDITASKLIST</task_table_name>
<!-- 任务键值表名称 -->
<task_key_table_name>EDITASKKEY</task_key_table_name>	
	<task_scan_interval>20</task_scan_interval> <!-- 任务记录表扫描间隔(单位:秒) 默认:30-->
        
	<task_schedule> 
	<mode>2</mode>
	<task_handler>
	<item>21</item>
	</task_handler>
	</task_schedule>
	    
<output_path>D:\EDIZone\server\data</output_path> <!--接口文件输出目录 -->
<!--单据类型对照-->
<bill_type_code_map>
<item>
<id>60001050</id> <!-- 单据类型 -->
<code>PO</code> <!-- 标准编码 -->
</item>

</bill_type_code_map>
	
   <task_data_map> <!-- 任务类型和单据类型映射配置-->
   
	  <item>
			<taskid>21</taskid> <!--订单-->
	  <use_tmp_db>false</use_tmp_db> <!--是否使用中间临时库,默认:false -->
	  <dd_mode>2</dd_mode> <!-- 抽取方式 1-通过tb_change_log 2-直接调用dd -->
	  <dd_rule_id>10501</dd_rule_id> <!--抽取规则ID,仅当dd_mode=2时 -->			
			 <script>
			 1;60001050;60001051;10501;10502 <!-- 订单是特殊处理的,1是处理方式编码 -->
       </script>
       <filter>
       <enable>true</enable> <!--是否启用过滤,默认:false -->
       </filter>
       
				<task_define>		<!-- 每个任务的定义-->
					<tables>
						<table>
							<name>purchase0</name>
							<field>*</field>  <!--select字段名 *表示全部 -->
						</table>
						<table>
							<name>purchase</name>
							<field>*</field>  <!--select字段名 *表示全部 -->
						</table>
						<table>
							<name>purchaseitem</name>
							<field>*</field>  <!--select字段名 *表示全部 -->
						</table>												
					</tables>
					<relations>	<!-- 关系描述-->
						<relation>purchase0.SHEETID=purchase.REFSHEETID</relation>
						<relation>purchase.SHEETID=purchaseitem.SHEETID</relation>
					</relations>
				</task_define>       
	  </item>
			  		  
	 </task_data_map>	
</config>


其中:

      <dd_rule_id>10501</dd_rule_id>
             <script>
             1;60001050;60001051;10501;10502
       </script>
     
    假设在MSCM中的顺序是直送(配送),直通订单。
    <script>是针对订单的特殊处理,示例中用分号(;)分隔的各项含义:
    1-处理方式编码,固定
    60001050-直送(配送)订单对应的本地单据类型
    60001051-直通订单对应的本地单据类型
    105101-直送(配送)订单对应的抽取规则
    10502-直通订单对应的抽取规则
    
    在指定<script>时,不需要抽取规则配置,因为通过tb_chagne_log是根据单据类型映射抽取规则的.
    <dd_rule_id>仅在<dd_mode>为2且没有<script>时才需要配置.

2.6 10501抽取规则

从MSCM修改而来.

.单据类型设置为:不自动发送。(SEMQ未启用)

---是否要buid的名称
---中间库有bu_info,但vss并没有

以下是修改前后的差异对比.
(1) 原来的配置(通过中间库)
---主表抽取语句

select a.sheetid||'_'||a.logistics,a.buid,b.buname,a.logistics,(case a. logistics when 1 then '?±?í??μê' when 3 then '?±?íDC' end )
 Logistics_name , a.buid||'_'||a.destshopid,c.shopname,a.venderid,d.vendername, a. orderdate,a.orderdate + a.validdays - 1,
 a. EDITOR,a. EDITDATE,a. CHECKER,a. CHECKDATE,sysdate,a. NOTE, a.buid||'_'||a.sgroupid,a.buid||'_'||a.venderid,a.sheetid from
Purchase a left join bu_info b on a.buid=b.buid left join shop c on (a.buid=c.buid and a.destshopid=c.shopid) left join
vender d on (a.buid=d.buid and a.venderid=d.venderid) where a.logistics<>2 
 
---明细表抽取语句
 Select a.buid||'_'||a.goodsid,a.barcode,b.goodsname,b.spec,'1??='||a.pkgvolume||'('||b.unitname||')' as transport_format,a.QTY,
trunc(a.qty/a.pkgvolume) as pkqty,
a.COST,round(a.qty*a.cost,2),b.unitname,
a.qty||'('|| b.unitname||')'  
from purchaseitem a  left join goods b on  (a.goodsid=b.goodsid
 and a.buid=b.buid)  left join purchase c on  (a.sheetid=c.sheetid
 and a.buid=c.buid)
where a.sheetid='%s' and a.buid='%s' and c.logistics=%s
---主键字段
SHEETID,BUID,LOGISTICS
---供应商字段
BUID,VENDERID

(2)修改后的配置
---主表抽取语句
select a.sheetid||'_'||a.logistics,@buid as buid,'' as buname,a.logistics,(case a. logistics when 1 then '?±?í??μê' when 3 then '?±?íDC' end ) Logistics_name ,
 @buid||'_'||a.destshopid,c.shopname,a.venderid,d.vendername, a. orderdate,a.orderdate + a.validdays - 1, a. EDITOR,a. EDITDATE,a. CHECKER,a. CHECKDATE,sysdate,a. NOTE, @buid||'_'||a.sgroupid,@buid||'_'||a.venderid,a.sheetid
 from Purchase a
 left join shop c on (a.destshopid=c.shopid)
 left join vender d on (a.venderid=d.venderid) 

---明细抽取语句
  Select @buid||'_'||a.goodsid,a.barcode,b.goodsname,b.spec,'1??='||a.pkgvolume||'('||b.unitname||')' as transport_format,a.QTY,
trunc(a.qty/a.pkgvolume) as pkqty,
a.COST,round(a.qty*a.cost,2),b.unitname,
a.qty||'('|| b.unitname||')'  
from purchaseitem a  left join goods b on  (a.goodsid=b.goodsid
 )  left join purchase c on  (a.sheetid=c.sheetid
 )
where a.sheetid='%s'
 
---主键字段
SHEETID,BUID,LOGISTICS

---供应商字段

BUID,VENDERID


3.生成的文件样例

文件名称:3134567890123_PO_20131012022239171.txt

内容:

HEAD	A0HG201309270001_1	18		1	直送门店	18_A0HG	盛世名门便利店	BC0534	深圳市鑫欣威食品有限公司	2013-09-27	2013-09-28	张月	2013-09-27	张月	2013-09-27	2013-10-12 02:22:36	订单进价仅做参考,实际进价以验收时的进价为准	18_5	18_BC0534	A0HG201309270001
DETAIL	18_434345	2143434500000	豆沙包60g	60g	1??=12(包)	1	0	9.96	9.96	包	1(包)
DETAIL	18_434348	2143434800001	紫薯包60g	60g	1??=12(包)	1	0	11.52	11.52	包	1(包)
DETAIL	18_440732	2144073200009	四海高级川辣鱼蛋128粒	128粒	1??=1(包)	1	1	80.77	80.77	包	1(包)
DETAIL	18_528024	2152802400002	豆腐串1*1*1	1*1*1	1??=1(包)	2	2	19.6	39.2	包	2(包)
DETAIL	18_551480	2155148000004	五丰猪红(盒装)500g	500g	1??=1(盒)	3	3	3	9	盒	3(盒)
DETAIL	18_718014	2171801400004	墨鱼烧400g(1包*22粒)	(1包*22粒)	1??=1(包)	2	2	11.5	23	包	2(包)
DETAIL	18_1129315	6936167200943	鑫欣威烤鱼棒2.5kg	2.5kg	1??=4(包)	1	0	66.6	66.6	包	1(包)
DETAIL	18_1292075	6932397920125	安井撒尿肉丸(114粒)2500g	2500g	1??=4(袋)	1	0	65.46	65.46	袋	1(袋)
DETAIL	18_1292077	6936167200547	福祺墨鱼棒(58条)2500g	2500g	1??=4(袋)	1	0	69.31	69.31	袋	1(袋)

4.关于软件包

服务器程序文件包含: (有部分保留和不确定的模块未被完全清理)

aced.dll
bbox.conf
bbox.dll
bbox.pr
BillInterface.conf
BillInterface.exe
boost_date_time-vc80-mt-gd-1_48.dll
boost_system-vc80-mt-gd-1_48.dll
borlndmm.dll
bugreport.dll
bugreport.exe
cc3260mt.dll
componentinfo.conf
cximagecrtd.dll
dataclear.conf
data_model.dll
dbcplugin.conf
dbcplugin.dll
dbghelp.dll
dd.conf
dd.dll
dxi_change_log.conf
dxi_change_log.dll
dxi_hrwj_task.conf
dxi_hrwj_task.dll
File.dll
ForFa.dll
hotfox.conf
hotfoxd.bat
hotfoxd.exe
informix_ext.dll
ivap.conf
ivap.dll
libbz2.dll
libdb47.dll
libdb47d.dll
libeay32.dll
lm.conf
lm.dll
lssdk.dll
lua.dll
manifest.xml
midas.dll
MSVCRTD.DLL
mtp.conf
mtp.dll
mysql_ext.dll
nframework.dll
oracle_ext.dll
rudp.dll
sheetdicts.xml
sheet_event.conf
sqlserver_ext.dll
ssleay32.dll
stlpmt45.dll
stlportd.5.2.dll
svrm.conf
svrm.dll
sybase_ext.dll
Uninstall.exe
unzdll.dll
update.conf
update.dll
v_log.conf
v_log.dll
Xalan-C_1_10D.dll
XalanMessages_1_10D.dll
xerces-c_2_8D.dll
zlibd.dll

microsoft.vc80.debugcrt

平台模式下的工具适应性如下:

backuptools.exe
---备份工具,无法使用

datacleattool.exe
---数据清理配置工具.
---无法支持oralce,不使用.(以后扩展)

pmanagedlog.exe
---日志工具.不需要,用新的日志机制代替

scimanager.exe
---组件安装程序,不使用

servermanager.exe
---服务管理程序.过于冗余,不使用

vsprocedure.exe
---托管服务器存储过程导入工具,不需要

cm.exe
---组件管理器.不需要

config.exe
---配置工具.不使用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值