门店连接错误:Multiple-step operation generated errors
领域:
零售\门店连接
受影响产品:
Dynamics AX 2009 SP1 RU6 RETAIL R2
Dynamics AX 2009 SP1 RU7 RETAIL R2 Refresh
问题:
当把数据从AX HQ数据库部署到POS数据库时,您可能会遇到一个关于向数据库插入数据的问题。在零售门店连接数据库中,以下错误消息会出现在outgoing message表:
举例:
Multiple-step operation generated errors. Check each status
value., table 'ADDRESS': 5637213327
原因:
当向POS数据表插入数据时,插入大于某一列最大字符个数的数据是不允许的。在POS表中,大约有150个列的大小比HQ数据库中的相应列小。
ADDRESS表中CITY列就是一个例子。在HQ数据库中,它最多可以有60个字符,然而在POS数据库中,它只有30个字符。当在HQ CITY中加入一个超过30字符的数据,再运行包含ADDRESS表的N-1010 job,门店连接错误就发生了。
解决方法:
官方解决方法还未出现,但您有两种选择:
- 在给合作伙伴的Retail POS 插件中,可以修改其中一个名为CreateDatabase的服务,使它包含正确的数据库脚本。这个脚本可以用这篇博客后附件的脚本所替代。您需要使用Visual Studio来编译一个新的dll文件。
- 第二种选择是用一个修改过的脚本创建AxRetailPos数据库,这个脚本在R2 Refresh版本中提供。
如果您希望收集关于HQ DB和POS DB中数据表的模式差异,您可以:
首先,将SQLDICTIONARY数据表从HQ导出到AXRETAILPOS数据库;
然后,执行以下job来查看两者string大小的区别
SELECT o.name as TABLENAME, c.name as "COLUMN NAME",d2.strsize as HQ, c.max_length/2 as POS FROM sys.objects o, sys.columns c, SQLDICTIONARY d1, SQLDICTIONARY d2 WHERE o.type_desc ='USER_TABLE' AND o.object_id = c.object_id AND d1.fieldid = 0 AND d1.SQLNAME = o.name AND d2.fieldid > 0 AND d1.tableid = d2.tableid AND d2.SQLNAME = c.name AND c.system_type_id=231 AND d2.strsize > (c.max_length/2) ORDER BY o.name, c.name |
3. HQ数据库上的字段更小
POS中有些数据表的列比HQ中的更大。
对此我们不提供脚本,因为对AX应用的修改会破坏代码或关系。
同上的流程:
SELECT o.name as TABLENAME, c.name as "COLUMN NAME", d2.strsizeas HQ, c.max_length/2 as POS FROM sys.objects o, sys.columns c, SQLDICTIONARY d1, SQLDICTIONARY d2 WHERE o.type_desc ='USER_TABLE' AND o.object_id = c.object_id AND d1.fieldid = 0 AND d1.SQLNAME= o.name AND d2.fieldid > 0 AND d1.tableid = d2.tableid AND d2.SQLNAME = c.name AND c.system_type_id=231 AND d2.strsize <> (c.max_length/2) ORDER BY o.name, c.name |
输出:
TABLENAME |
COLUMN NAME |
HQ |
POS |
POSFUNCTIONALITYPROFILE |
CENTRALTABLESERVERPORT |
10 |
50 |
POSHARDWAREPROFILE |
DRAWERDEVICENAME |
30 |
60 |
POSHARDWAREPROFILE |
DUALDISPLAYIMAGEPATH |
259 |
260 |
POSHARDWAREPROFILE |
MSRDEVICENAME |
30 |
60 |
POSISERRORS |
CODEUNIT |
100 |
250 |
POSISFORMLAYOUT |
TITLE |
30 |
50 |
POSISKEYBOARDBUTTONCONTROL |
DEFAULTCOLOR |
10 |
20 |
POSISKEYBOARDMAPPINGTRANS |
KEYCHAR |
1 |
10 |
POSISLANGUAGETEXT |
LANGUAGEID |
5 |
7 |
POSISLOG |
LOGSTRING |
0 |
1000 |
POSISTILLLAYOUT |
RECEIPTID |
10 |
18 |
RBOLOYALTYCUSTTABLE |
STREET |
60 |
250 |
RBOSTAFFTABLE |
FIRSTNAME |
20 |
30 |
RBOSTAFFTABLE |
LASTNAME |
20 |
30 |
RBOSTORETABLE |
CULTURENAME |
7 |
10 |
RBOTRANSACTIONSALESTRANS |
CREATEDBY |
5 |
10 |
RBOTRANSACTIONSALESTRANS |
DISCGROUPID |
10 |
50 |
RBOTRANSACTIONSALESTRANS |
FILELOGID |
10 |
20 |
RBOTRANSACTIONTABLE |
CREATEDBY |
5 |
10 |
原文地址: