更改自定义字段长度

时间:2018-01-04 20:35:38

标签: acumatica

我正在使用自定义字段(字符串类型),现在想要增加其长度。我增加了数据访问和项目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> `

1 个答案:

答案 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>

只需发布一次即可更改表格,您可以稍后将其删除。