Search code examples
c#acumatica

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


I am working on a custom processing screen focused on inventory. My code was using a simple processing statement with InventoryItem as the Data:

public PXProcessing<InventorySiteItems> Processing;

However, I needed to make a joined data source, so I changed it to:

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;

This all worked. But, In order to do some debugging to check for duplicate records, I went to change my Processing Screen using the customization editor. I wanted to add InventoryID to the columns. InventoryCD was already there, but that I wanted the actual ID, since it is unique.

I made the change, but when I went to publish it, I get this now:

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

I tried to back the change out, but the errors stay.

I double checked in the AcumaticaERP\Pages\PS directory, and the ASP file is:

<%@ 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>

All of this has been published, compiling, and running just fine for the past several days. But as soon as I added that field, now I cannot get it to publish -- even though I backed the change out.

I saw an old post about an issue with permissions, where it was suggested adding:

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

To the web config file under -- and I have done that with no change.

What could have changed that now causes this issue?

[EDIT] I NEVER call InventoryRaw in my source code: Search Results Here is Line 28 of SOBackorderProcess.CS:

Screenshot of VS Studio

Here it is with the snippet added (with no change in behavior, sadly) Screenshot of edited code


Solution

  • The trace points to source code file: App_RuntimeCode\SOBackorderProcess.cs

    You have 5 unreferenced types on line 28 on Inventory attribute: InventoryRawAttribute InventoryRaw IsKey DisplayName

    You need to add using namespace directive in source code file or fully qualify the types with namespace.

    Example:

    using PX.Objects.IN;
    [InventoryRaw]
    
    [PX.Objects.IN.InventoryRaw]
    

    EDIT:

    To remove lingering files deployed to App_RuntimeCode folder. First check if there are source code files on the web server file system in the target IIS virtual directory under App_RuntimeCode folder.

    Then for each tenant of the Acumatica website, check for customization items deployed from Code and Data Access section.

    enter image description here