我正在使用自定义字段(字符串类型),现在想要增加其长度。我增加了数据访问和项目XML部分的长度并发布了它。根据新长度输入值我得到错误"字符串或二进制数据将被截断。声明已经发生了变化"。下面是Project XML,我试图将长度从12增加到15
`<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> `
答案 0 :(得分:0)
如果您能够访问数据库,最好的选择是直接更改字段的长度。只需确保更新项目以使用新的长度。
如果您无法访问数据库并且它适用于您,最简单的选择是创建具有所需长度的新Usr字段(不同的名称)。这是因为Acumatica应用了项目中定义的表自定义,但忽略了对用户字段的任何更改(如果它们已经存在),这些是以&#34; Usr&#34;开头的字段。
另一种方法是编写一个包含SQL查询的临时自定义项目,以便为您更新表字段。请注意,这不是官方推荐的,所以要小心并首先在非生产环境中进行测试,但在某些情况下它很有用。以下是此类项目的XML,如果您在Customization元素中输入Acumatica版本,则可以直接使用它:
<Customization level="500" description="Changes Usr field length"
product-version="YOURACUMATICAVERSIONHERE">
<Sql TableName="Account" CustomScript="ALTER TABLE [Account]
ALTER COLUMN [UsrBRXAccountID ] nvarchar(15);" />
</Customization>
只需发布一次即可更改表格,您可以稍后将其删除。