Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Customizations for developers. See Low Code | No Code Forum for non-technical discussions
Recently active
Hello Team,I Got Some Error during customization on Acumatica 2024 R1, the codes works fine on Acumatica 2021 R2, but when upgrading to Acumatica 2024 R1 it throw error A data corruption state has been detected here simple customization code. protected virtual void _(Events.FieldUpdated<RQRequisition,RQRequisition.vendorID> e){ if (e.NewValue != null) { int? vendorID = Convert.ToInt16(e.NewValue); foreach (var line in Base.Lines.Cache.Cached.RowCast<RQRequisitionLine>()) { var vendorPrice = GetVendorPrice(vendorID, line.InventoryID, line.SiteID, line.PromisedDate); decimal lastPrice = vendorPrice == null ? 0m : vendorPrice.SalesPrice ?? 0m; Base.Lines.Cache.SetValueExt<RQRequisitionLine.curyEstUnitCost>(line, lastPrice); Base.Lines.Cache.RaiseExceptionHandling<RQRequisitionLine.curyEstUnitCost>(line, null, null); } }}
Hi All, I want to add a related Item to SOLine in a sales order programmatically. I tried to find a relationship between SOLine DAC and RelatedItem DAC. But I was unable to find a clue to proceed with this requirement. Any help would be much appreciated. Thanks
Hello Acumatica Community,We have developed a customization that requires storing an API Key, but we need to ensure that generic users cannot access it. Our initial approach was to save it as a password field in the database. However, we noticed that this method still allows the key to be read as base64 from snapshot files, which can then be converted back to the actual key.Our customers are mostly using SaaS instances from Haufe, so we're unable to modify snapshot configuration files directly. Therefore, we're looking for solutions to either:Hide or secure the key in a way that prevents it from being exposed via snapshots, or Exclude the custom table that stores the key from being included in snapshots through a customization project.If these options aren't feasible, is there a way to manage the key externally or implement a similar secure solution like dynamic encription?Any suggestions or insights would be greatly appreciated. Thank you!
One of my clients recently had a very significant issue due to the way the Acumatica Customization Projects screen works when publishing customizations to the Customer Portal. Because of the behavior of the publishing screens, a mistake was made that unpublished the portal project and opened up some security issues as the customization on the portal is used to restrict user’s access to Acumatica data based on some items such as the class of the user.Here is the scenario:We have a large number of projects published in ERP. We have ONE project published in the Portal. When you open the Customization Projects screen in the Portal, it shows all projects, both ERP and Portal. The same is true in the ERP screen. It shows everything.In ERP, we have the Selected checkbox saved next to all projects EXCEPT the portal project. If you try to publish a portal project in ERP, you will get an error, which is good.If you open Customization Projects in the Portal, it shows all the projects and th
I created a sales order, and the shipment has been confirmed with an attached inventory reference. Now, I need to delete the shipment, but since the inventory reference is in a released status, I'm unable to proceed. Is there any way to resolve this?
After converting from 22R2 to 24R1, I’m now getting this error:The method or operation is not implemented. I’m not sure why since my class is deriving from the PXBqlTable class as required:https://help.acumatica.com/(W(3))/Help?ScreenId=ShowWiki&pageid=0f93d1d7-e0e5-b731-8677-4fb4fe145e0c Am I supposed supposed to implement the GetBqlTableSystemData() method? How?Here’s my class:[Serializable] //[PXHidden] public class InventoryItemPrintSelectFilter : PXBqlTable, IBqlTable { #region Selected [PXBool] [PXUIField(DisplayName = "Selected")] public virtual bool? Selected { get; set; } public abstract class selected : PX.Data.BQL.BqlBool.Field<selected> { } #endregion #region InventoryID public abstract class inventoryID : PX.Data.BQL.BqlInt.Field<inventoryID> { } protected Int32? _InventoryID; [StockItem(Visibility = PXUIVisibility.SelectorVisible)] [PXDefault] public virtual Int32? I
On SOOrderEntry the Contact field has AllowAddNew set to True in the aspx. I’d like to default the BAccountID field value on the screen that pops up (CR302000).When you click the + button on the Customer screen under contacts, I see that button is really a PXAction hiding as a new record button. In that case, the contact that is created is automatically assigned to the Customer’s BAccountID.Is there an event that I can intercept when the AllowAddNew button is clicked? Or should I add my own button and hide the existing button?
Hi Team,I’m working on customizing the Modern UI in the 24R2 (24.193.0116) preview version. Specifically, I’m adding a new tab to the Sales Order screen and have created a new field, UsrIsMagentoOrder, which I’ve included in the corresponding .html and .ts files.However, I’m encountering issues when running the following commands:npm run getmodules npm run build npm run getmodulesnpm run buildI’m receiving errors with these commands and am unable to see the changes reflected on the screen. Any guidance on resolving these errors would be greatly appreciated.Thank you!
I am busy upgrading my projects to Build 24.113.0010. I keep getting this error when I publish the customization in the project editor:[2024-10-17 09:41:07.313] Failed to load types from the PX.Data.BQL.Fluent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null assembly with the message: Method 'GetWhereExpression' in type 'PX.Data.BQL.Fluent.SearchFor`1' from assembly 'PX.Data.BQL.Fluent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.[2024-10-17 09:41:07.442] Failed to load types from the PX.Objects.PR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null assembly with the message: Method 'GetWhereExpression' in type 'Where`1' from assembly 'PX.Data.BQL.Fluent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.[2024-10-17 09:41:09.142] Validation failed.I installed SmartFix_T200 to test a project and got the same result.
Where is the the best place to put own code to manipulate the attached invoice PDF of an E-Mail before it gets send?What about PX.Objects.CR.Extensions.ActivityDetailsExt.CreateNotificationProvider()?How can i PXOverride it?Pascal
Hi, I want to know if there is a way to change the text displayed on the Sales order Transactions Grid ?And I would like to add this text to the Quote screen as well. is this possible ? Thanks.
Hello,I have a custom long run in a IEnumerable action and upon return, the Shipping_Contact fields return as disabled. Currently, I have to manually cancel the order to re-enable them- see below for my code:public PXAction<SOOrder> CustomAction;[PXProcessButton(CommitChanges = true, Category = "Processing", DisplayOnMainToolbar = true, Connotation = PX.Data.WorkflowAPI.ActionConnotation.Success)][PXUIField(DisplayName = "Custom Action", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]public virtual IEnumerable customAction(PXAdapter adapter){List<SOOrder> list = new List<SOOrder>() { Base.Document.Current };Base.Persist();PXLongOperation.StartOperation(Base, delegate (){ /*Logic*/ });return list;}To say I tried it.. I have tried adding Base.Cancel.Press(), Base.Shipping_Contact.View.RequestRefresh(); right before returning the list but as I expected, this does not work. I figure this is because the IEnumerable return overrides anything I
In Production Details screen’s extension, I have added an Action called ConnectToMRN. In it’s workflow extension I have defined a dialog box also. I customized the Action such that it pop up the dialog box on click the button using the customization editor as bellow. Following is complete workflow customization code of the production details screen.public class ProductionOrderWorkflow : PXGraphExtension<ProdDetail_Workflow, ProdDetail>{ public sealed override void Configure(PXScreenConfiguration config) { Configure(config.GetScreenConfigurationContext<ProdDetail, AMProdItem>()); } protected static void Configure(WorkflowContext<ProdDetail, AMProdItem> context) { var formAssign = context.Forms.Create("FormAssign", form => form.Prompt("connectto").WithFields(fields => { fields.Add("ConnectTo", field => field .WithSchemaOf<MRMaterialRequest.refNbr>() .I
Hello,Looking for a little guidance on how to get client side JavaScript to work. We are evaluating a platform called UserFlow the automates onboarding by guiding you through the product with prompts and such.The installation require injecting JavaScript into the body of the page then calling a couple of functions to initialize and start user flows.I placed the main JavaScript into a columns container in the header of the Customers page, then attempted to initialize in the Init property of the data source. I even put a couple of buttons on the screen to call the initialize and start functions. Does it look like this should work? Thanks,Mark
I have created a custom screen called Material Reques Note (MRN). I need to add two button which crate an Issue and a Transfer base on the MRN data. When trying to create an INTran DAC instance for each inventory item in the MRN it does not works. According to the investigations did by me I assumes that INTran type instance did not initiated correctly. I hope that may need to Set more field values. Following is my action code for one button. public PXAction<MRMaterialRequest> CreateIssue; [PXButton(DisplayOnMainToolbar = true, CommitChanges = true)] [PXUIField(DisplayName = "Create Issue", Enabled = true)] protected virtual IEnumerable createIssue(PXAdapter adapter) { MRMaterialRequest mrn = MaterialRequestView.Current; PXResultset<MRInventoryItems> items = MaterialDetailsView.Select(); PXLongOperation.StartOperation(this, () => CreateIssueDoc(mrn, items) ); return a
I have an unbound DAC that I’m using to display ARSalesPrice records in a grid in a pop-up screen. It works fine.The SalesPricesView view I’m using for the grid uses a public IEnumerable routine to collect and populate the view.After .Inserting the records into the view, I call SalesPricesView.Cache.IsDirty = false;When the pop-up screen is closed, I call SalesPricesView.Cache.Clear();Now when I try to save the order and I’m calling the base Persist I get this error:The table schema of the MyDACTable table was not found in the cache. The table is locked by another process. Please try again later.MyDACTable is made up of all Unbound fields and has the [PXVirtual] attribute. The view definition is:[PXVirtualDAC]public PXSelect<MyDACTable> SalesPricesView; I don’t why Persist would care that the MyDACTable table was in the cache since it isn’t being asked to save anything.
In the implementation of ICCHostedPaymentFormProcessor::GetDataForPaymentFormthis function has the object parameter inputData as default method input to build the payment formbut the address data is coming empty inputData.CustomerData.AddressData Is there anyway or permission required so address data returns with the customer data, customer data has name and email address, but AddressData is coming null
I created a process screen that works now fine when run manually (Process and process all buttons). I added a scheduled task in the SM205020 screen. When the time to execute comes, the task unfortunately does not triggers. Other scheduled tasks for some other screens are triggered as expected. I removed and recrated the scheduled task that does not work, I reduced the number of the invoices to process but nothing works. Has anyone an idea ?Below my settings (no conditions are set in this case) :
Created connected applciation and flow type is Hybridbased on the doc here https://help.acumatica.com/(W(19))/Help?ScreenId=ShowWiki&pageid=9cd888ba-aa9a-4140-b5e9-4da297fade89I should be able to do get request and redirect to https://<Acumatica ERP instance URL>/identity/connect/authorizeI’m sending all the needed paramters but at the end I’m getitng this error“Sorry, there was an error : unauthorized_client"Not sure what can be the possible reason, the user that created the app has administrator priviliges already and assigned to all roles.
I’m planning to make the SOOrder.ShipVia field required and want to add an error message to help our employees.I have found a couple of examples but am working with this right now:namespace PX.Objects.SO{ public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry> { #region Event Handlers protected void SOOrder_ShipVia_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e) { var row = (SOOrder)e.Row; if(row == null) { string errorMsg = "Ship Via Cannot be Empty"; throw new PXSetPropertyException(errorMsg, PXErrorLevel.Warning); } } #endregionNot being a programmer, I’m sure there is something simple missing, but I would appriciate the help.
I have to do a customization in the production order maintenance screen where in the line details tab there is a generate button to create the line in sequence 000001 and so on.But I want to change it to grab the production number for example (PP000004) and the lot/serial number generated is PP000004-000001, PP000004-000002, PP000004-000003 and so on till the quantity to generate is satisfied. How to achieve this via customization? The generate button needs to be extended to change the Lot/ Serial number, any help would be appreciated! Thank you!
RequirementAfter clicking "Prepare Invoice" on the Shipments screen, I need to recalculate the invoice line items to match the actual quantity for the credit card charge. For instance, if the Sales Order (SO) has a quantity of 10 but only 2 have been shipped, the credit card fee should be based on the 2 quantities instead of the original 10. This involves two steps:Recalculate the invoice line items and update the document total accordingly. Once the recalculation is complete and the document is ready, programmatically trigger the capture button on the Applications tab.I’m currently using the ARInvoice_RowPersisting event in the SOInvoiceEntry graph. While the recalculation works well, I’m struggling to find the right place to invoke the capture button. Whenever I attempt this, I encounter an Acuminator warning, and in some cases, it leads to an infinite loop or stack overflow exception.I would appreciate your assistance.CODE /// <summary> /// AR Invoice row persisting e
Hi everyone,I created a new customised processing screen based on the logic of the SO505000: a filter provides a list of actions; when the user selects one of them, the invoices affected by that action are displayed in a grid below. Finally, a dedicated method is invoked, depending on the action chosen, when the user clicks on the ‘Process’ button.This works very well, but I've run into a problem: on a local instance, the processing dialog appears every time the ‘Process’ button is pressed, and this is the expected behaviour However, on a remote instance (saas), the process dialog appears just once, on the first execution after publishing. Thereafter, it doesn’t appear anymore even if the process is actually executed. I don't see wha's wrong... Below, the DAC used to describe the filter :public class ARInvoiceEIprocessFilter : IBqlTable{ #region Action [PXUIField(DisplayName = "Action")] [PXDefault(ARInvoiceEIProcess.DefaultValue)] [PXStringList( new string[] { ARIn
HiI need help because i want to view my RefNbr on my GLTran base on my module but when i click this it is not getting the record of the refnbr
Hi,I’m having trouble with one of my projects.I created a screen linked to a table I made. When I select my client through the selector, the client’s data is displayed in the designated fields. However, when I try to add new data by pressing the "+", I encounter a problem: the default client ID is set to -2147483647. When I enter information into the form and save, two rows are created in the table—one with a new ID but empty fields, and another with the values I entered into the form.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.