Acumatica 定制项目中的 CREATE VIEW 语句

CREATE VIEW Statement in Acumatica Customization Project

有谁知道如何将 CREATE VIEW SQL 语句推送到 Acumatica 自定义项目中?

我知道如何在 SQL Management Studio 中执行此操作,但通过自定义项目执行此操作对 Acumatica SaaS 客户很有用。

您应该执行以下步骤:

  1. 在 Management Studio 中创建您的 SQL 视图(出于演示目的,我坚持使用简单的 PositivePay 视图):

    CREATE VIEW [dbo].[PositivePay] AS
    SELECT
        APPayment.RefNbr,
        APPayment.ExtRefNbr,
        APRegister.DocDate,
        APRegister.OrigDocAmt,
        CashAccount.ExtRefNbr BankAccountID
    FROM APPayment 
    JOIN APRegister 
        ON APRegister.CompanyID = APPayment.CompanyID 
            AND APRegister.RefNbr = APPayment.RefNbr 
    JOIN CashAccount 
        ON APPayment.CashAccountID = CashAccount.AccountID 
            AND APPayment.CompanyID = CashAccount.CompanyID 
    WHERE APPayment.CompanyID = 2 AND APPayment.DocType= 'CHK'
    GO
    
  2. 打开您的自定义项目并单击代码,然后根据您的SQL视图生成新的DAC,如下面的屏幕截图所示:

  3. 为您的新 DAC 定义关键字段并保存更改。对于 PositivePay,我们将 RefNbr 字段顶部的 PXDBString 属性的 IsKey 设置为 true

    [PXDBString(15, IsUnicode = true, InputMask = "", IsKey = true)]
    [PXUIField(DisplayName = "Ref Nbr")]
    public string RefNbr { get; set; }
    
  4. 单击 DB 脚本,select 您的 SQL 视图名称 DBObject 名称 并按照以下模式将 SQL 脚本放入 自定义脚本 控件中:

    IF EXISTS
    (
        SELECT * FROM sys.views
        WHERE name = 'PositivePay' AND schema_id = SCHEMA_ID('dbo')
    )
    DROP VIEW [dbo].[PositivePay]
    GO
    
    CREATE VIEW [dbo].[PositivePay] AS
    SELECT
        APPayment.RefNbr,
        APPayment.ExtRefNbr,
        APRegister.DocDate,
        APRegister.OrigDocAmt,
        CashAccount.ExtRefNbr BankAccountID
    FROM APPayment 
        JOIN APRegister 
            ON APRegister.CompanyID = APPayment.CompanyID 
                AND APRegister.RefNbr = APPayment.RefNbr 
        JOIN CashAccount 
            ON APPayment.CashAccountID = CashAccount.AccountID 
                AND APPayment.CompanyID = CashAccount.CompanyID 
    WHERE APPayment.CompanyID = 2 AND APPayment.DocType= 'CHK'
    GO