Acumatica 更改自定义字段长度
我使用了自定义字段(字符串类型),现在想增加它的长度。我增加了数据访问和项目XML部分的长度并发布了它。根据新的长度输入值时,我得到错误“字符串或二进制数据将被截断。语句已被删除”。下面是我试图将长度从12增加到15的XML项目Acumatica 更改自定义字段长度,acumatica,Acumatica,我使用了自定义字段(字符串类型),现在想增加它的长度。我增加了数据访问和项目XML部分的长度并发布了它。根据新的长度输入值时,我得到错误“字符串或二进制数据将被截断。语句已被删除”。下面是我试图将长度从12增加到15的XML项目 `<PXGridLevel DataMember="AccountRecords" ParentId="phL_grid_Levels#0" TypeFullName="PX.Web.UI.PXGridLevel"> &
`<PXGridLevel DataMember="AccountRecords" ParentId="phL_grid_Levels#0"
TypeFullName="PX.Web.UI.PXGridLevel">
<Children Key="Columns">
<AddItem>
<PXGridColumn TypeFullName="PX.Web.UI.PXGridColumn">
<Prop Key="DataField" Value="UsrBRXAccountID" />
<Prop Key="Width" Value="170" />
</PXGridColumn>
</AddItem>
<PXGridColumn DataField="AccountClassID" OriginalIndex="2" />
</Children>
</PXGridLevel>
</Page>
<Table TableName="Account">
<Column TableName="Account" ColumnName="UsrBRXAccountID"
ColumnType="string" AllowNull="True" MaxLength="15" DecimalPrecision="2"
DecimalLength="15" IsNewColumn="True" IsUnicode="True" />
</Table>
<DAC type="PX.Objects.GL.Account">
<Field FieldName="UsrBRXAccountID" TypeName="string" MapDbTable="Account"
TextAttributes="#CDATA" StorageName="AddColumn">
<CDATA name="TextAttributes"><![CDATA[[PXDBString(15)]
[PXUIField(DisplayName="BRX Account ID")]]]></CDATA>
</Field>
</DAC>
</Customization> `
`
`
如果您能够访问数据库,最好的选择是直接更改字段的长度。只需确保更新项目以使用新长度即可
如果您无法访问数据库,并且它对您有效,最简单的选择是创建一个具有所需长度的新Usr字段(不同名称)。这是因为Acumatica应用项目中定义的表自定义,但忽略对用户字段的任何更改(如果已经存在),这些字段以“Usr”开头
另一种方法是编写包含SQL查询的临时自定义项目,以便为您更新表字段。请注意,这不是官方建议的,因此请小心,首先在非生产环境中测试它,但在某些情况下它是有用的。以下是此类项目的XML,如果在Customization元素中输入Acumatica版本,则可以直接使用:
只需发布一次就可以更改表,以后可以将其删除。发布时,长度更改是否传播到数据库?如果您可以直接访问数据库,则可以使用数据库管理实用程序(如Microsoft SQL Server management Studio)检查USRBRXACCOUNT字段长度。我刚刚介绍了该场景,可以很好地增加字段大小。我可以输入值,没问题。我猜就像HB_Acumatica提到的一样,DB大小的变化并没有使其达到DB。确保您的测试站点中没有其他公司使用相同的旧尺寸定制。您好,感谢您的快速响应。否大小更改没有传播到数据库,因为它的数据类型仍然显示“nvarchar(12)”。如何修复它请?重新测试我放在一起的东西似乎你是正确的,它不是因为某些原因改变数据库。(版本6.10.1511-MySql)。我唯一的建议是更改数据库中现有的列名,然后重置站点并发布。然后传输数据。这似乎是针灸的一个问题,因为它没有看到大小的变化。当我取消发布和重新发布时,它也不起作用。