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 custom table being added to the database and maintained with a new screen. I want to add a combo box to an existing screen that gets populated with the values form my new custom table. I cant seem to find documentation on this type of scenario and how I can go about this.
Hello, Sorry, fields, not filed. typo.I meet a weired case. We have 2 enrionments, production with license, demo without.Both are actually on a same server and with same version 21.208.0032. A same customization.Within the same customizaiton, we defined a customization field called “RowNumber” on shiplinesplit screen. now calling line details. It is designed to show the line# actually. We put the function to set the RowNumber in SOshiplinesplit_Rowselected eventIt works fine on production envrionment, see pic 1however it shows empty on demo, see below Too strange, how is this? please help.
Hello, We have a need to conditionally disable/enable line level fields. Simply like below:If SOline.CWI= True, enable “Price per LB”, disable “Unit Price”While SOline.CWI= false, Disable “Price per LB”, enable “unit price.” Actually, this can be achieved before, by putting codes in SOline_rowselected like: protected void SOLine_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { SOLine soLine = (SOLine)e.Row; if (soLine != null) { SOLineExt soLineExt = PXCache<SOLine>.GetExtension<SOLineExt>(soLine); if (soLineExt.CWI == true) { PXUIFieldAttribute.SetEnabled<SOLine.curyUnitPrice>(cache, soLine, false); PXUIFieldAttribute.SetEnabled<SOLineExt.usrPricePerLB>(cache, soLine, true);..... } else { PXUIFieldAttribute.SetEnabled<SO
Not going into a long discussion of what I’m doing - but basically I need to add something similar to Notification Templates where user can specify text with the ((Fieldname)) syntax off a graph in a PXRichTextEdit box.I’ve got the code working that if I manually type in the syntax, I can do the replacements and it’s all great. However, I can’t get the Insert\Datafield option to show the values from the graph. <px:PXRichTextEdit AllowInsertPrevParameter="False" AllowInsertParameter="True" AllowLoadTemplate="False" AllowSourceMode="True" AllowSearch="True" AllowPlaceholders="True" AllowMacros="True" AllowAttached="True" textmode="MultiLine" Height="100" Width="100%" runat="server" ID="edHeader" DataField="Header" Style="border-width: 0px; border-top-width: 1px; width: 100%;"> <AutoSize Enabled="True" MinHeight="216" ></AutoSize> <InsertDatafield TextField="Header" ValueField="Path" DataSourceID="ds" ImageField="Icon" DataMember="EntityItem
Hello, We are having some legacy codes like below (with some modifications to make it look short): protected void SOLine_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { SOLine soLine = (SOLine)e.Row; if (soLine != null) { PXUIFieldAttribute.SetEnabled<SOLineExt.usrEstWgt>(cache, soLine, false); InventoryItem item = PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>> .Select(Base, soLine.InventoryID); if (item != null) { InventoryItemExt rowExt = PXCache<InventoryItem>.GetExtension<InventoryItemExt>(item); SOLineExt soLineExt = PXCache<SOLine>.GetExtension<SOLineExt>(soLine); cache.SetValue<SOLineExt.usrBrand>(soLine, rowExt.UsrBrand); cache.SetValue<SOLineExt.usr
Hello, We recently have a direct upgrade from 2020R2 to 2021R2.After the upgrade, the customization projects show:"version of the default workflow in the customization project is not equal to the current version in system" On 4 screens, PO, SO, shipment, invoice.However, if I can “UPGRADE PREDEFINED workflow” button, the system show error1 time is : “The given key was not present in the dictionary.”another time is “Object reference not set to an instance of an object.” How can I solve this, thank you.
Overview: I have a custom table to display info to a grid. When the user clicks a button on the form, I call two methods. One to delete the records matching the filter and then re-add the data back into the table using the same filter values. The data in the table cannot be “selected” using a normal select statement as I have to parse fields from the AuditHistory table (ModifiedFields contains null delimited field/value pairs). I am “de-normalizing” the data so there is one record in the custom table for each modified field in the ModifiedFields column. This is what the customer has requested.The form works as expected except that the DeleteData method only works EVERY OTHER TIME! Here is the sequence of events:open form. At this point there is no data in the table. Click Get New Data The DeleteData fires and nothing is deleted (obviously...there is no data in the table matching the filter yet) Data is added to the table as desired using the filter field values. The user clicks
Before anyone panics, I am not planning on deleting ANYTHING from a core Acumatica table! :-)I’ve read this post but it involved deleting in a “one-time” fashion using export scenarios. I don’t think that is an option for my use case.My requirement to to create a SQL View that can pull data using a GI. Got that under control. The issue for me is that it is not possible (AFAIK) to create a View in SQL to pull the data and de-normalize it without using a loop in SQL, which is not allowed in a SQL View.My plan is to create a custom screen that can use C# in an Acumatica customization to process the data and store it in a custom SQL table. When a user uses the custom screen to pull data into the table, I want to delete EVERYTHING from that table that was put in there previously by that user. Otherwise this table will grow very large for no useful purpose.I know I can pull a record set and cycle through it and delete rows one at a time. Is there an option in Acumatica I have not found
We are having performance issues with the Pack stage of Pick, Pack, Ship where when scanning multiple identical items the barcode is not being processed fast enough before the next barcode is scanned and we are getting doubling up in the barcode field as a result. I am trying to investigate to see what happens when the barcode is scanned to see if we can come up with an alternative screen or eliminate unnecessary bottlenecks. When I try to view the business logic source for the barcode field it shows PX.Objects.SO.WMS.PickPackShip+Hostbut the screen is blank. Does this mean the code is in a plugin or something and unavailable to see what it’s doing? Is there a way to see what processes are being performed? Does anyone have any other ideas for how to go about troubleshooting the process or get around the performance issues? Thanks for any advice, Phil
I am pulling data from a table based on a PXFilter. One parameter of the Where clause is to pull based on the current logged in User ID. I created a public variable _currentUser that holds the User ID.public Guid? _currentUser = CommonServiceLocator.ServiceLocator.Current.GetInstance<ICurrentUserInformationProvider>().GetUserId();How can I pass that value into the Select for the View? If I put an @P parameter, it compiles. If I try to use a View.Select(this, _currentUser) to pass in the parameter, I get all kinds of errors. I can’t pass in the actual _currentUser variable because I think it needs to be a type, not a value.public SelectFrom<QTCAuditHistoryReport>. Where<QTCAuditHistoryReport.screenID.IsEqual<QTCAuditHistoryReportFilter.screenID.FromCurrent>.And<QTCAuditHistoryReport.changeDate.IsEqual<QTCAuditHistoryReportFilter.changeDate.FromCurrent>.And<QTCAuditHistoryReport.reportingUserid.IsEqual<@P.AsGuid>>>>.View.ReadOnly Deta
I must be missing something simple, but I cannot figure out how to add the additional standard toolbar buttons (insert, delete, move next, etc.) to my custom screen. My screen shows the Save and Cancel standard toolbar buttons, but not the rest.I’ve experimented with setting various properties for the datasource and form, but have not yet figured it out.I thought maybe I selected the wrong template, but I created another screen to test and it also only had save and cancel. Tried reading through the T220 training pdf and did not see anything.
I am working on upgrading Acumatica to 2021 R2. This release includes the redesigned toolbar. I would like to reorder some of the Actions on the toolbar. So I follow the process outlined in the help documentation. However, when I click “Reorder Actions” and select a category other than “Top Level”, I am seeing duplicate actions. Moreover the Move Up and Move Down do not appear to work consistently with these duplicate actions. See the screenshot below. This is on a site that is populated with Sales Demo data and has no customizations published. As you can see, each of the 4 actions in the Other category on the Sales Order screen (SO301000) is listed twice. And if you try to use the Move Up, Move Down buttons, they do not behave as expected. This makes it impossible to know which action is the one being displayed and I am unable to order them as I’d like. Any help would be appreciated.
Long story short - I have a form that has a parent record and on a tab a child grid. In that grid is a “notes” type field that I want to be able to edit with the HTML Editor.Example of this would be like the Activities tab on the cases where the notes show under the child grid. The issue is that I really need it to be ENABLED right on the form.I could put the grid into “form editing” mode and have it there, but then navigating between the records becomes a pain as the flow of what I am working on users need to be able to click through and review the child records and edit the notes quickly and going in and out of form editing mode of the child grid isn’t very user-friendly.
When we have a table widget on dashboards, usually we want to see a total for it as well but apparently it is not possible to do so. (yellow highlight from below snip) Is there anyway to hide widgets titles pane and tables headings (red pen area in below snip) Has anyone has done something for any of these?
As per the 22R1 developer release notes customization projects should under go certification process. So, I have a few queries on 22R1 Upgrade and hoping anyone or Acumatica team can help me on the below queries. What is the process of submitting the code for certification? Usually, there will be a lot of enhancements/CRs/Issues will be there for the same customer, Do we need to submit the code for certification each time we do a code change? Is this mandatory or we can still go ahead for upgrade and get the certification later? Is there any tool to validate the customization from our local environment? Thanks in advance!
I need to validate that the Default BOM ID was captured for stock items with a specified prefix. I added an event to RowUpdating, when I try to get the extension from InventoryItemExt there was an error that this class is obsolete. Now I am not sure how to get the AMBOMID value from the InventoryItem DAC.
I have been asked if there is a way to limit who shows up in the price manager Selector on the Stock Items screen under the Price/Cost tab as in the screenshot below.I have created a generic inquiry which shows who we want to see. It has the following DACS:Users → UsersInRoles - Inner join on usernameUsers → Contacts - Inner join on pkID = userIDCondition = UsersInRoles.RoleName Equals PurchasingThis seems to give the restricted set of users/contacts we want.How do I go about changing the Selector for this field to use this as a the query instead of showing the full list of employees if shows now? Thanks for any help, Phil
Hello,I’m trying to create shipment by code. I’ve already create the shipment successfully, but while I trying to create shipment from same sales order but different inventory, it’ll show message below.Here is my code I currently use. foreach (SOShipmentPlan res in tmpShipmentPlan.Cache.Cached) { //foreach(list in List<SOPreShipmentLine> lists) { } var plan = (SOShipmentPlan)res; plan.Selected = true; SOOrder order = PXSelect<SOOrder, Where<SOOrder.orderType, Equal<Required<PreAddSOFilter.orderType>>, And<SOOrder.orderNbr, Equal<Required<PreAddSOFilter.orderNbr>>>>>.Select(this, plan.OrderType, plan.OrderNbr); graph.soshipmentplan.Update(plan); graph.CreateShipment(order, shipment.SiteID, shipment.ShipDate, false, shipment.Operation, null); graph.soshipmentplan.Cache.Clear();
In the Sales Order screen, I want to take an Inventory ID value that the user has entered, say, “APPLE”. I want to look for that value in another table and possibly replace the value of APPLE with some other value.I have tried changing e.NewValue in a FieldVerifying event.A very simple version of my code is here and AMCOTTON is an existing inventory item. So, in testing this I hoped that it would but AMCOTTON into that field regardless of what I entered.protected void SOLine_InventoryID_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e, PXFieldVerifying InvokeBaseHandler) { e.NewValue = "AMCOTTON"; if (InvokeBaseHandler != null) InvokeBaseHandler(cache, e); }However, I end up with a blank field value.Is FieldVerifying the right event to make changes to e.NewValue?
When a user saves a Purchase Order, the LastPrice in the POVendorInventory table is updated. If there are multiple lines in the PO for the same item, they may have different Unit Costs for the same inventory item. When the table is updated, the last record in the grid is what ends up in the field.If there are multiple lines with the same inventory ID, my customer wants to update the LastPrice field with the LOWEST unit cost, not the last one to be processed.To complicate this, they want to change the LastPrice field to the lowest Unit Cost if it is overridden in the Purchase Receipts screen. Based on my testing, if you edit the Unit Cost on the Purchase Receipts screen, I don’t see that it updates the POVendorInventory table. They want it to update the table if the Unit Cost is overridden. Honestly, it seems like that should be standard business logic. On the Purchase Receipts screen, you are entering the ACTUAL cost of the item.Since the customer wants to update the LastPrice fi
Hello!On some of our projects we have custom made Reports where it is essential to know who printed it, in case one of them gets lost within the warehouse. We added the Report via Workflow Automation “Run Report” Action with the Customization Project Editor and would now like to attach a “Field Update” to it, that saves the Display Name of the Person clicking on the action into a userfield called “SOOrder.DocketPrinted”.Has anyone an idea or solution to this?Greetings
As you may have come across, in most of Aumatica screens when we change InventoryID, many other fields for the row get reset forcing user to re-enter the values that results in wasting time and frustration. We are experiencing this on our heavily used AP Bills and Purchase Order. As pilot I tried to fix POLine to restore the values entered by user when InventoryID is changed through RowUpdated event handler. The code works and restores the value of intended fields (see partial code below) but the problem is the total fields of the header are not refreshed. For example if I have only one POLine, upon chaning the InventoryID, header is reset to zero but when the custom handler restores the POLine values, the header remains zero.Can someone advise how I can refresh POOrder related totals when POLine value is updated in event handler of POLine? protected void POLine_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e, PXRowUpdated InvokeBaseHandler) { //InvokeBaseHa
Hello,I Have two dropdown list fields. I need to change the second dropdown values dynamically based on first dropdown selected value.Code below:- #region Feature [PXDBString(30, IsKey = true, IsUnicode = true, InputMask = "")] [PXUIField(DisplayName = "Feature")] [PXStringList( new string[] { SSS.SSP.Helper.Constant.Agree, SSS.SSP.Helper.Constant.Inspect }, new string[] { SSS.SSP.Helper.Messages.Agree, SSS.SSP.Helper.Messages.Inspect })] public virtual string Feature { get; set; } public abstract class feature : PX.Data.BQL.BqlString.Field<feature> { } #endregion #region ValidFor [PXDefault()] [PXDBString(5, IsKey = true, IsUnicode = true, InputMask = "")] [PXUIField(DisplayName = "Valid For")] [PXDependsOnFields(typeof(SSPSetupActive.fe
Hi There,I am working on a project which need to cater for multiple tenant and dual-language (English and Malay) on Acumatica Framework 2021 R1.The setup at System Locales is done for both languages. My issue is that I am able to localize/translate the first tenant but unable to do so for the other tenants. I used the Translation Dictionaries to download the file to excel format for the translation exercise. For instance, I manage to download the “Company Profile” from the first tenant and uploaded the file after I have translated all the labels. But for the second and the rest of the tenants, I am unable to retrieve the “Company Profile” through Translation Dictionaries. I am getting the following message “No Records Found” but the “Company Profile” screen is available in the second tenant.Hope, I can get some help from the experts here. Thank You
We have a requirement where we need to make sure if a certain user is logged into the system, in the Invoices screen, we need the Customer, Location to be filled automatically and a custom field called Sales Channel (dropdown field) must be filled as LOCAL or FOREIGN according to the logged in user. How can we approach this development. I have attached a screenshot for reference.Thank you.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.