发布时出现 Acumatica 错误——但未更改代码

Acumatica Error When Publishing -- But No Code Changes Were Made

我正在处理一个专注于库存的自定义处理屏幕。我的代码使用了一个简单的处理语句,并将 InventoryItem 作为数据:

public PXProcessing<InventorySiteItems> Processing;

但是我需要做一个join数据源,所以改成:

public PXProcessingJoin<InventoryItem, 
 LeftJoin<INItemSite, On<InventoryItem.inventoryID, Equal<INItemSite.inventoryID>>,
 InnerJoin<INLocationStatus, On<INLocationStatus.siteID, Equal<INItemSite.siteID>,
     And<INLocationStatus.inventoryID, Equal<INItemSite.inventoryID>>>>>>   Processing;

这一切都奏效了。但是,为了进行一些调试以检查重复记录,我使用自定义编辑器更改了我的处理屏幕。我想将 InventoryID 添加到列中。 InventoryCD 已经存在,但我想要实际 ID,因为它是唯一的。

我做了更改,但是当我去发布它时,我现在明白了:

Building directory '\WebSiteValidationDomain\App_RuntimeCode\'.
\App_RuntimeCode\SOBackorderProcess.cs(28): error CS0246: The type or namespace name 'InventoryRawAttribute' could not be found (are you missing a using directive or an assembly reference?)
\App_RuntimeCode\SOBackorderProcess.cs(28): error CS0246: The type or namespace name 'InventoryRaw' could not be found (are you missing a using directive or an assembly reference?)
\App_RuntimeCode\SOBackorderProcess.cs(28): error CS0246: The type or namespace name 'IsKey' could not be found (are you missing a using directive or an assembly reference?)
\App_RuntimeCode\SOBackorderProcess.cs(28): error CS0246: The type or namespace name 'DisplayName' could not be found (are you missing a using directive or an assembly reference?)
\App_RuntimeCode\SOBackorderProcess.cs(28): error CS0246: The type or namespace name 'InventoryRawAttribute' could not be found (are you missing a using directive or an assembly reference?)
Compiler time, in seconds: 8.4989854

我试图取消更改,但错误仍然存​​在。

我仔细检查了 AcumaticaERP\Pages\PS 目录,ASP 文件是:

<%@ Page Language="C#" MasterPageFile="~/MasterPages/ListView.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="PS501000.aspx.cs" Inherits="Page_PS501000" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPages/ListView.master" %>

<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
    <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%"
        TypeName="Plyler.SOBackorderProcess"
        PrimaryView="Processing"
        >
        <CallbackCommands>

        </CallbackCommands>
    </px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phL" runat="Server">
    <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Width="100%" Height="150px" SkinID="Primary" AllowAutoHide="false">
        <Levels>
            <px:PXGridLevel DataMember="Processing">
                <Columns>
                <px:PXGridColumn DataField="Selected" Width="60" ></px:PXGridColumn>
                <px:PXGridColumn DataField="InventoryCD" Width="70" ></px:PXGridColumn>
                <px:PXGridColumn DataField="Descr" Width="280" ></px:PXGridColumn>
                <px:PXGridColumn DataField="INItemSite__SiteID" Width="140" />
                <px:PXGridColumn DataField="INLocationStatus__QtyOnHand" Width="100" />
                <px:PXGridColumn DataField="INLocationStatus__QtyAvail" Width="100" />
                <px:PXGridColumn DataField="Availability" Width="70" ></px:PXGridColumn></Columns>
            </px:PXGridLevel>
        </Levels>
        <AutoSize Container="Window" Enabled="True" MinHeight="150" />
        <ActionBar >
        </ActionBar>
    </px:PXGrid>
</asp:Content>

所有这些都已发布、编译,并且 运行 过去几天都很好。但是,一旦我添加了该字段,现在我就无法发布它了——即使我支持更改。

我看到一个关于权限问题的旧 post,建议添加:

<add key="aspnet:DisableAppPathModifier" value="false" /> 

到 -- 下的网络配置文件,我已经完成了,没有任何改变。

是什么导致了这个问题?

[编辑] 我从不在我的源代码中调用 InventoryRaw: 这是 SOBackorderProcess.CS 的第 28 行:

这里是添加了代码片段(遗憾的是,行为没有变化)

跟踪指向源代码文件: App_RuntimeCode\SOBackorderProcess.cs

您在库存属性的第 28 行有 5 个未引用的类型: 库存原始属性 库存原料 关键点 显示名称

您需要在源代码文件中添加 using 命名空间指令或使用命名空间完全限定类型。

示例:

using PX.Objects.IN;
[InventoryRaw]

[PX.Objects.IN.InventoryRaw]

编辑:

删除部署到 App_RuntimeCode 文件夹的延迟文件。 首先检查App_RuntimeCode文件夹下的目标IIS虚拟目录下的web服务器文件系统中是否有源代码文件。

然后对于 Acumatica 网站的每个租户,检查从代码和数据访问部分部署的自定义项目。