Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Customizations for developers. See Low Code | No Code Forum for non-technical discussions
Recently active
I have a grid with two columns (DataField ButtonAnchor1, LinkCommand ButtonClick1) and (DataField ButtonAnchor2, LinkCommand ButtonClick2). These links work, but the user wants the links hidden unless the row is selected. The examples I find for hiding/showing are related to button bar buttons - not links/buttons in gridlines. While I see a Row_Selected event, I don’t see a Row_Unselected event to allow me to hide an in-row button when a row is no longer selected.Any ideas?
I am attempting to add new columns to the Shipping Zone (CS207500) page. When I ‘Customize Existing Screen’, I can select “Shipping Zones”. However, when I publish (even before adding columns), I get the following error:Building directory '\WebSiteValidationDomain\CstPublished\pages_cs\'.\WebSiteValidationDomain\CstPublished\pages_cs\cs207510.aspx(1): error ASPPARSE: The file '/WebSiteValidationDomain/CstPublished/pages_cs/CS207500.aspx.cs' does not exist.The file '\WebSiteValidationDomain\CstPublished\pages_cs\CS207500.aspx.cs' does not exist. This happens during the validation phase of the publish.Using:Acumatica Cloud ERP 2021 R2Build 21.212.0039 What am I doing wrong?
Hello,I would like to override the ‘Create Service Order’ action from Projects, as shown below.I’ve found the source code for the action in a class called DialogBoxSOApptCreation but I don’t know how to extend the class or override the action. The class and action definition are below. public abstract class DialogBoxSOApptCreation<TExtension, TGraph, TMain> : PXGraphExtension<TExtension, TGraph> where TExtension : PXGraphExtension<TGraph>, new() where TGraph : PXGraph, new() where TMain : class, IBqlTable, new() { public CRValidationFilter<DBoxDocSettings> DocumentSettings; #region Actions #region CreateSrvOrdDocument public PXAction<TMain> CreateSrvOrdDocument; [PXButton] [PXUIField(DisplayName = "Create Service Order", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)] public virtual IEnumerable createSrvOrdDocument(PXAdapter adapter) {
Version: 22.109.0023We just upgraded the system from 21R1 to 22R1. just noticed one change: when new email was created (CR306015) and saved, forward option is disabled by default. Seems the option is only enabled for deleted and processed mpstatus. In 21R1 we can forward saved draft email.Is there a way to allow the option for draft email, from customization project?tried with Base.Forward.SetEnabled(true); but did not work
I have a custom field on the customers screen for biller/billing nbr. I want to default that onto the sales orders screen when the customer value is updated. I attached my current code to add biller/billing nbr onto the customers screen and sales orders screen. Right now, I had attempted to reset the default value on the sales orders screen when the location was updated, but it still isn’t populating. What am I missing within the code to populate the custom field?
I am attempting to add the item code and dangerous class from stock item screen to inventory transaction summary but I dont know how to coding or join which table to do it. Pls help me if u have any idea. Thank you in advance.
Hi,I create a custom field named UsrInvoiceNote on Sale Order and Shipment. I am implementing a trigger handler when field this field is update on Sale Order. The main target is coping the value to linked Shipment.configuration of custom fieldHere is the snippet code: protected void SOOrder_UsrInvoiceNote_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e) { var row = (SOOrder)e.Row; var ext = row.GetExtension<SOOrderExt>(); // handle update shipment var query = new SelectFrom<SOShipment>.InnerJoin<SOOrderShipment>.On<SOOrderShipment.shipmentNbr.IsEqual<SOShipment.shipmentNbr>> .Where<Use<SOOrderShipment.orderType>.AsString.IsEqual<@P.AsString>.And<Use<SOOrderShipment.orderNbr>.AsString.IsEqual<@P.AsString>>> .View(Base); var shipments = query.Select(row.OrderType, row.OrderNbr); foreach (SOShipment sm in shipments) { sm.Us
I'm facing an issue after doing customization to the web site like the picture below anyone got this problem before ? its not from the code error i guess it is from the libraries right?
Hi,I am implementing event handler RowInserted for Shipment with the goal: copy value a custom field from Sale Order and set it to the field on Shipment (also custom field).Here is code: protected void SOShipment_RowInserted(PXCache cache, PXRowInsertedEventArgs e) { var row = (SOShipment)e.Row; var query = new SelectFrom<SOOrder>.InnerJoin<SOOrderShipment>.On<SOOrder.orderNbr.IsEqual<SOOrderShipment.orderNbr> .And<SOOrder.orderType.IsEqual<SOOrderShipment.orderType>>> .Where<Use<SOOrderShipment.shipmentNbr>.AsString.IsEqual<@P.AsString>> .View(Base); SOOrder order = query.Select(row.ShipmentNbr).TopFirst; if(order!=null){ var orderExt=order.GetExtension<SOOrderExt>(); row.GetExtension<SOShipmentExt>().UsrIn
HelloI’m designing a custom transaction screen, but I need to initialize the CurrencyRate controlHow to properly initilize this the CurrencyRate Control <pxa:PXCurrencyRate DataField="CuryID" ID="edCury" runat="server" DataSourceID="ds" RateTypeView="currencyinfo" DataMember="_Currency_"></pxa:PXCurrencyRate> When the screen is initialized, the transaction currency is not base currency. But the initial curyrate shown is 1.When I change the currency rate type or date, the curyrate is properly calculated, but I wish I had the correct curyrate since I open the transaction screen.
on the Customer Location screen I have added two new tables and new DACs of course and I have modified the Location table to have a few custom fields. I have added the Location_Ext to the Visual studio project after adding the fields. The screen allows me to update the custom fields all day long. But I am trying to create a custom action to loop my custom table and put the total of one of the fields in there. I don’t think I have a problem looping the table. It uses the view I added for the screen and seems to work but trying to put the total in Location.UsrSettlementAmt. I don’t see a Location.UsrSettlementAmt. What gives? Below is the custom action. public PXAction<Location> CalculateSettlement; [PXButton(DisplayOnMainToolbar = true)] [PXUIField(DisplayName = "Settlement Total", Enabled = true)] protected virtual void calculatesettlement() { decimal? d = 0; foreach (SettlementDetail sd in InvoiceSettlement.Select())
I have been asked if there is a way to have the filters selected for the Default and Item Status set to True and Active by default as this is what the person using this screen has to do each time they open it. I don’t believe it’s possible to alter those fields programatically or get the screen to remember what they were set to.I thought maybe having the underlying query that the grid uses changed to use values in fields defined at the top might work. I’m not sure how to update the query used for the details for the grid though. Is this possible and are there any examples of how to go about it?Thanks for any help,Phil
Hi,I want to copy field Invoice Note in Invoices to Sales Orders and whenever this field is updated in Invoices, the field in Sales Orders should be updated with same value.What happen in my mind: create a custom field in Sales Orders, then implement Event Handler FieldUpdated of the field “Invoice Note” set value for custom field.However, I don’t if it is possible and how to set value for custom field in Sales Order in Event Handler.Any suggestions greatly appreciated.
I am preety new in the acumatica customization….is there any chance for me to call external API call so that i can get the data ? after the data is being collected and presented i would like to enable user to select the data which then he can save.I was thinking to create screen, also to create custom unbound DAC-s but i am not sure how to work with the rest of the requirements, any suggestion would mean a lot.Maybe i could perform the get method using some other methods….i am currently stuck...at first i was thinking to call Acumatica POST call, but the problem is that i must first perform “login” so that i can “POST” the data, but i must use only one link from that external app….that is the reason which i wanted to create the GET call from the Acumatica itself….
Added two grids to the Customer Locations Screen. The screens work fine up to the point where I hit save. Then it says it cannot set Location ID cannot be empty. So Location ID is not being grabbed by the data view I assume. The Definitions of the two data views are below: namespace LocationTab{ public class CustomerLocationMaint_Extension : PXGraphExtension<CustomerLocationMaint> { #region Event Handlers public PXSelect<InvoiceRatesDetail, Where<InvoiceRatesDetail.locationID, Equal<Current<Location.locationID>>>> InvoiceRates; public PXSelect<SettlementDetail, Where<SettlementDetail.locationID, Equal<Current<Location.locationID>>>> InvoiceSettlement; #endregion }} For the data definition in code (table one InvoiceRatesDetail): #region LocationID [PXDBInt(IsKey=true)] [PXDBDefault(typeof(Location.locationID))] [PXParent(typeof(Select<Location, Where<Location.locationID, Equal<Current<Invoic
Hi All, I’m trying to complete a order from SO but everytime i click the “complete order” nothing happened. When i look at error trace it shows that the “item CustomerID is not found (restricted:False,external:True,value:018*** )”.
Hey all,I am attempting to create a staging table for scrubbing import/integration files as a proof of concept. The T190 training uses scripts to create the tables and doesn’t actually show you how to make them from scratch. With that being said, I am trying to figure out how to marry the two and create a staging table and complementary screen. I am able to create the table in server and create a column that is the primary key.I then bring in the table using the “Add Custom Table Schema”. Next, I bring in the code via “New DAC” and select “Generate Members from Database”. It successfully finds the primary key on my table and creates the dac definitions. I then go to screens and add a FormGrid screen. I then marry the DAC and Graph up.using System;using PX.Data;namespace AACustomTable{ public class StagingTables : PXGraph<StagingTables> { public PXSave<MasterTable> Save; public PXCancel<MasterTable> Cancel; public PXFilter<MasterTable> MasterView;
On SOOrderEntry.cs we have the ‘Prepare Invoice’ PXAction. I’d like to add a new PXAction that allows me to run the same functionality as the InvoiceOrder method but I want to add some additional criteria to the selection of the SOLine records so I can invoice a sub-set of the details.I suspect that I have to PXOverride the InvoiceOrder method within my customization but, here’s the challenge, I would like to leave the regular ‘Prepare Invoice’ functionality alone.So do I have to try to copy all of the underlying code for my button or is there a way that my PXAction can do some magic ‘temporarily replace the InvoiceOrder function with this code until I’m done and then swap back in the regular InvoiceOrder function’ coding?
Hello,I think I’m missing something obvious but I’m struggling.I’ve overridden the ConvertQuoteToProject method on Project Quotes (PM304500).The baseMethod is called and this creates a project, I use SelectFrom to get the PMProject object and this contains the data I would expect.Now I want to access the RevenueBudget data but this is returning a null value. Is there a way for me to force Acumatica to load data into this child cache?My code is below, the final if statement always resolves to true because the Cache for RevenueBudget is null.I found the load method which I thought might fill the cache but it didn’t seem to work- graphProjectEntry.RevenueBudget.Cache.Load()public delegate void ConvertQuoteToProjectDelegate(PMQuote row, ConvertToProjectFilter settings); [PXOverride] public void ConvertQuoteToProject(PMQuote row, ConvertToProjectFilter settings, ConvertQuoteToProjectDelegate baseMethod) { baseMethod(row, settings); int? projectID
I have a user table and a grid. I want to ensure that when the user selects a customer in the From Customer field, that customer id is not already in the To Customer column.I’m using the FieldVerifying event on the FromCustomerID field to do the work.This is how I am doing it. Note that the BAccount line is just so that I can populate the error message with something useful to the user in the error message. protected void _(Events.FieldVerifying<ICSMCCustomersToMerge, ICSMCCustomersToMerge.fromCustomerID> e) { if (e.Row == null || e.NewValue == null) return; ICSMCCustomersToMerge row = e.Row; //see if FromCustomer is in the ToCustomer column ICSMCCustomersToMerge check = Details.Search<ICSMCCustomersToMerge.toCustomerID>((int?)e.NewValue); if (check != null) { //get the AcctCD so it can be displayed in the error message BAccount bAccount = SelectFrom<BAccount>.Where<BAccount.bAccountID.IsEqual<@P.AsInt>>.View.Select(this, (int?)e.NewV
Hello, My goal is to create multiple shipments from the SalesOrder SO Workflow, one for each associated warehouse. My first step was to copy over the existing action/function and ensure that it functioned as the original.The below code has been copied and slightly modified to work in an extension. I have disabled the PXLongOperation as well for two reasons, 1) it caused a PX1008 error, 2) is allows easier debugging. The code should be functionally equivalent to the default implantation, however I get the following exception:“Another process has updated the 'SOOrder' record. Your changes will be lost.” at PX.Data.PXAction`1.<Press>d__38.MoveNext() at PX.Data.PXAction`1.PressImpl(Boolean internalCall, Boolean externalCall) at PX.Objects.SO.SOShipmentEntry.CreateShipment(CreateShipmentArgs args) at PX.Objects.PM.MaterialManagement.SOShipmentEntryMaterialExt.CreateShipment(CreateShipmentArgs args, Action`1 baseMethod) at PX.Objects.SO.SOOrderEntry_Extension.CreateShipment(P
Good day all,How can I add a new field from the same data class to the records or what would be the best way to add a new field to an Inquiry screen form a pre-existing data class?For exampe:On the IN407000 screen (Inventory Lot/Serial History) in the Records grid, there are multiple fields with links to diffrent data classes.CustomerI Fields Data Class = PX.Objects.AR.Customer Any links to docuemnts, examples would be great. Thanks so much
Try to update Screen Appointment List to add addressline1 shows error after publish in mobile update screen FS400100 { update container "Appointments" { fieldsToShow = 9 add field "SettingsAddress#AddressLine1"{ displayName = "Address" selectorDisplayFormat = KeyDescription listDisplayFormat = CaptionValue forceIsVisible = True } } }
Hello,I believe the below code should always disable the BasePrice field on the IN202000->PriceCost tab. But it does not. public class NonStockItemMaint_Extension : PXGraphExtension<PX.Objects.IN.NonStockItemMaint> { #region Event Handlers protected virtual void _(Events.RowSelected < InventoryItem> e) { if (e.Row is InventoryItem row) { PXUIFieldAttribute.SetEnabled<InventoryItemCurySettings.basePrice>(e.Cache, row, false); } } }
I have a field in a custom DAC and I created a SQL constraint to ensure it is unique. [FromCustomerID] [int] NOT NULL UNIQUE,Is there a way I can setup this DAC field to enforce this constraint so that it doesn’t require the DB to be hit prior to identifying the value entered in a grid is invalid?This is my DAC field: #region FromCustomerID [Customer(IsKey = true)] [PXUIField(DisplayName = "From Customer")] [PXRestrictor(typeof(Where<BAccount.parentBAccountID, IsNull>), ICSMessages.ChildAccount)] public virtual int? FromCustomerID { get; set; } public abstract class fromCustomerID : PX.Data.BQL.BqlInt.Field<fromCustomerID> { } #endregion
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.