Skip to main content
Question

ModernUI Screen throwing View not found error

  • February 12, 2026
  • 5 replies
  • 0 views

I’ve been extolling the virtues of the Modern UI to my colleagues, especially how straight forward it is to code. Unfortunately I’ve found myself stuck on a screen where I simply cannot see the issue. The classic UI version of the screen is working fine, but I cannot get the Modern UI screen to work. The environment is 2025R2.

The screen is supported by the following DAC

using System;
using PX.Data;
using PX.Objects.CS;

namespace SoImportDemo
{
[PXCacheName(Helpers.Messages.ZZSoImportSetup)]
[PXPrimaryGraph(typeof(ZZSoImportSetupMaint))]
public class ZZSoImportSetup : PXBqlTable, IBqlTable
{
#region NumberingID
[PXDBString(10, IsUnicode = true, InputMask = "")]
[PXSelector(typeof(Numbering.numberingID),
DescriptionField = typeof(Numbering.descr))]
[PXUIField(DisplayName = "Numbering Sequence")]
[PXDefault("SOIMPORT")]
public virtual string NumberingID { get; set; }
public abstract class numberingID : PX.Data.BQL.BqlString.Field<numberingID> { }
#endregion

#region ClientID
[PXDBString(50, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Client ID")]
public virtual string ClientID { get; set; }
public abstract class clientID : PX.Data.BQL.BqlString.Field<clientID> { }
#endregion

#region TenantID
[PXDBString(50, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Tenant ID")]
public virtual string TenantID { get; set; }
public abstract class tenantID : PX.Data.BQL.BqlString.Field<tenantID> { }
#endregion

#region Secret
[PXDBString(100, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Secret")]
public virtual string Secret { get; set; }
public abstract class secret : PX.Data.BQL.BqlString.Field<secret> { }
#endregion

#region Scope
[PXDBString(100, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Scope")]
public virtual string Scope { get; set; }
public abstract class scope : PX.Data.BQL.BqlString.Field<scope> { }
#endregion

/// system field removed for brevity ///
}
}

and Graph

using System;
using PX.Data;
using PX.Data.BQL.Fluent;

namespace SoImportDemo
{
public class ZZSoImportSetupMaint : PXGraph<ZZSoImportSetupMaint>
{

public PXSave<ZZSoImportSetup> Save = null;
public PXCancel<ZZSoImportSetup> Cancel = null;

public SelectFrom<ZZSoImportSetup>.View SetupView = null;

}
}

And here is the Tyepscript and HTML for the screen
 

import { createSingle, graphInfo, PXView, PXScreen, PXFieldState, viewInfo } from "client-controls";

@graphInfo({
graphType: "SoImportDemo.ZZSoImportSetupMaint",
primaryView: "SetupView",
})
export class ZZ101000 extends PXScreen {
@viewInfo({ containerName: "SO Import Preferences" })
SetupView = createSingle(ZZSoImportSetup);

}

export class ZZSoImportSetup extends PXView {
NumberingID: PXFieldState;
ClientID: PXFieldState;
TenantID: PXFieldState;
Secret: PXFieldState;
Scope: PXFieldState;
}
<template>
<qp-template id="form-Setup" name="7-10-7" class="equal-height">

<qp-fieldset id="columnA-Setup" view.bind="SetupView" slot="A">
<field name="NumberingID"></field>
</qp-fieldset>

<qp-fieldset id="columnB-Setup" view.bind="SetupView" slot="B">
<field name="ClientID"></field>
<field name="TenantID"></field>
<field name="Secret"></field>
<field name="Scope"></field>
</qp-fieldset>

</qp-template>
</template>

When the screen is opened the following error is show in the trace

I cannot for the life of me see what the issue is. The view names are correct the field names are all correct as far as I can see. Any help would be greatly appriciated.

5 replies

abhimanyuprajapati52
Jr Varsity I
Forum|alt.badge.img

Hi ​@jumble0470,

The PXViewDoesNotExistException indicates that the Modern UI runtime cannot resolve the graph view metadata.

Although SelectFrom<T>.View works in Classic UI, Modern UI can fail to detect it correctly for screen binding.

Try changing your graph view declaration to a standard PXSelect:

public PXSelect<ZZSoImportSetup> SetupView;

Rebuild and republish, then retest.

Modern UI is stricter about view metadata resolution, and using PXSelect<> ensures the view is properly registered and discoverable.


Forum|alt.badge.img+8
  • Captain II
  • February 12, 2026

Should this:

public SelectFrom<ZZSoImportSetup>.View SetupView = null;

be

public PXSetup<ZZSoImportSetup> SetupView;

And then have in the constructor, the following:

ZZSoImportSetup SetupView = SetupView.Current;

Based on what ​@abhimanyuprajapati52 mentioned about, this would be a similar potential solution to making sure that the view is discoverable.


aryanjadhav50
Freshman II
Forum|alt.badge.img
  • Freshman II
  • February 13, 2026

Hi ​@jumble0470 
Rebuilding the Specific screens will help you resolving the issue. 

 

Ex:  npm run build-dev --- --env screenIds=(Your Screen ID)

  • Go to Customization Projects

    • All Modern UI files (*.ts*.html) are included

    • No partial or old files remain

    • Republish the customization project


Forum|alt.badge.img+9
  • Captain II
  • February 13, 2026

@jumble0470 

 

I have experienced similar issues where the aspx screen did not have the correct view. Could you check your aspx (if it exists) and see whether there are still “MasterView” or “DetailView”.


jhonlloydgelica69
Freshman I

Hello @jumble0470, the error you're seeing indicates that Fluent BQL (SelectFrom<T>.View) doesn't initialize properly for setup screen patterns. Setup screens expect single-record semantics, and the Acumatica framework needs specific initialization that only PXSelect<T> or PXSetup<T> provides.

Update your view and rebuild your project
Frontendsources> screen > npm run build-dev --- --env customFolder=development