Share via


门店连接错误: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,门店连接错误就发生了。

解决方法:

官方解决方法还未出现,但您有两种选择:

  1. 在给合作伙伴的Retail POS 插件中,可以修改其中一个名为CreateDatabase的服务,使它包含正确的数据库脚本。这个脚本可以用这篇博客后附件的脚本所替代。您需要使用Visual Studio来编译一个新的dll文件。
  2.  第二种选择是用一个修改过的脚本创建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

 

原文地址:

https://blogs.msdn.com/b/emeadaxsupport/archive/2011/08/18/store-connect-error-multiple-step-operation-generated-errors.aspx

 

CreateDatabaseR2Refresh.txt