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 would like to send emails with links that open up the ACU mobile app to a screen and record. The only way I have found to do this is with a Push Notification, however this is not an option for me.A use case for this is when a reminder is sent out to a field employee the link takes them to the web app, when the mobile app would be much more functional and appropriate.I think the technique is called deep linking. I am not sure if this requires development to work with the mobile app or is even a feature. Please advise if this is possible, and if not lets please add it to the feature request list.
I am posting this topic as a discussion because I am doubtful there is a answer to this issue that can be provided in the forum, and I don’t want to post a topic that will not have an answer. This drives Chris crazy. :-)I customized the Projects screen so that I can “filter” the results that show up in the Attributes tab.My customer has over 2000 project attributes. Yes, you read that correctly, over 2000.I created a cross reference table that links project attributes to the Project template. When a template is selected, I overrode the Answers view to discard the attributes that are not linked to the template.In my override, I get the current PMProject from the cache. I then store the template ID from that record into a variable to be used later in the override to do the filtering.When the screen is first loaded or refreshed, there is only one record in the PMProject cache.If you make a change to an attribute value and save the screen, another project gets added to the cache.In my
Im trying to import 1 decimal value (a quantity of a kit at a particular location) from a GI table that has parameters. I dont know how to convert from the result to a single value? The below code doesnt work. Dictionary<string, string> parameters = new Dictionary<string, string>(); parameters.Add("SiteID", row.SiteID.ToString()); parameters.Add("KitID", row.InventoryID.ToString()); PXGenericInqGrph gi = PXGenericInqGrph.CreateInstance("KitBuild3", "KitBuild3", parameters); PXResultset<GenericResult> results = gi.Results.Select(); GenericResult result = results.FirstOrDefault(); //var kitQtyList = results?.Cast<GenericResult>()?.ToList()?.Select(r => r.Values["KitQty"])?.ToList(); decimal? kitQty = Convert.ToDecimal(result.Values["KitQty"]);
Im seriously struggling with trying what i think is quite simple. Ive posted several times a similar question but none of the answers have worked.. I’ve built a farely basic GI “KitBuild3” (though it does reference other GI’s per the 2024r1 changes)which returns Im trying to read the single value KitQty(later I will work out parameter based on SiteID/InventoryID of the SOLine if it ever works)PXGenericInqGrph gi = PXGenericInqGrph.CreateInstance("GI640596", "KitBuild3"); PXResultset<GenericResult> results = gi.Results.Select(); string test = ""; foreach (GenericResult resultRow in results) { object oformula = (Dictionary<string, object>)resultRow.Values; foreach (KeyValuePair<string, object> kvp in (Dictionary<string, object>)oformula) { if(kvp.Key.ToString() == "KitBuild2") { test = tes
Ive created a PXProjection DAC and Im just trying to multiple a field by a constant (for now). The PXFormula field of DfltCompQtyCalc keeps returning null no matter what I try? It works when I remove the Multiply<> operator. Also if I just define the PXFormula<index1>.. I get a list of 2’s so the constant is fine also? Why cant I multiply the two!! using System;using PX.Data;using PX.Data.BQL;using PX.Data.BQL.Fluent;using PX.Data.ReferentialIntegrity.Attributes;using PX.Data.WorkflowAPI;using PX.Objects.CM;using PX.Objects.Common.Attributes;using PX.Objects.CS;using PX.Objects.GL;using PX.Objects.IN;using PX.Objects.PO;using PX.Objects.SO;namespace AutoKitAssembly{ [Serializable] [PXCacheName("KitAssy_Sub2")] [PXProjection(typeof(Select2<INKitSpecStkDet, InnerJoin<KitAssy_Sub1,On<INKitSpecStkDet.kitInventoryID,Equal<KitAssy_Sub1.kitInventoryID>,And<INKitSpecStkDet.revisionID,Equal<KitAssy_Sub1.revisionID>>>>
Hello Community,Any idea how can I redirect the user to Acumatica’s landing page (Home ScreenID=00000000)?
Tenants Overview Multi-Tenancy and Customizations Multi-Tenancy and Set of Active Features IsActive method Features.xml File Custom Feature Checks DACs, Graphs and Extensions in Multi-Tenant InstanceThis post describes how DACs, Graphs and DAC/Graph extensions are applied to Acumatica sites with multiple tenants. The article attempts to answer when and why the code behavior depends on the tenant. Different factors are considered:Location of the code - is it Acumatica source code or customization. Presence of the IsActive method in DAC/Graph extension. Features.xml file. Custom checks for the feature switch in the business logic.It is easy to reason about instances with a single active tenant. There is no need to worry how the data is shared between active tenants, which entities will be available to which tenants. The things become more complex for multi tenant instances, especially, when the customizations are involved. This is why this article will focus on multi tenant instances
When we try to open/print the Sales Orders or Shipment confirmations, the website throws the following two errors. They both seem to be related to the same issue, but I’m not sure where to fix this issue. Any advice on how to fix?Error Log for Shipment ConfirmationError Log for Sales Orders
public delegate void PersistDelegate(); [PXOverride] public void Persist(PersistDelegate baseMethod) { try { if (Base.Document.Current != null) { ARRegisterExt aRInvoiceExt = PXCache<ARRegister>.GetExtension<ARRegisterExt>(Base.Document.Current); if (aRInvoiceExt != null) { if (aRInvoiceExt.UsrWingAmount == null || aRInvoiceExt.UsrWingAmount != Base.Document.Current.CuryOrigDocAmt) { aRInvoiceExt.UsrWingAmount = Base.Document.Current.CuryOrigDocAmt; //Generation http url var client = new RestClient(); string imageUrl = "https://material.angular.io/assets/img/examples/shiba2.jpg"; var request = new RestRequest(imageUrl, Method.GET); by
When entering a Barcode value in the Inventory ID field on the Issues (IN302000) screen, the error raised:i tried to do a customization to add that feature by adding the AlternateID and the CrossItemAttribute using this code: public class INIssueEntryExtension : PXGraphExtension<PX.Objects.IN.INIssueEntry>{ [PXMergeAttributes(Method = MergeMethod.Append)] [CrossItem(Filterable = true, BqlField = typeof(INTran.inventoryID))] [PXDimensionSelector(InventoryAttribute.DimensionName, typeof(Search2<InventoryItem.inventoryID, LeftJoin<INItemXRef, On<INItemXRef.inventoryID, Equal<InventoryItem.inventoryID>>>>), typeof(InventoryItem.inventoryCD), typeof(INItemXRef.alternateID), typeof(InventoryItem.descr))] [PXUIField(DisplayName = "Inventory or Alternate ID")] protected virtual void _(Events.CacheAttached<INTran.inventoryID> e) { }}The AlternateID column succssefully appea
I'm working on a custom script to automatically update the external ID and description of an employee after the record is inserted into the Data Maps table for Type "Employees."I created a simple Inserted event to test the trigger, but I'm encountering an error.using System;using PX.Objects;using PX.Data;namespace MYOB.AdvancedLive.People.Objects.PP{ public class MPTimesheetDataMapMaint_Extension : PXGraphExtension<MYOB.AdvancedLive.People.Objects.PP.MPTimesheetDataMapMaint> { protected void DataMap_RowInserted(PXCache sender, PXRowInsertedEventArgs e) { PXTrace.WriteInformation("DataMap_RowInsertedevent triggered."); var datamap = e.Row; if (datamap == null) return; } }}
I’m trying to add a button to the Sales Orders list - S301000PL. I’ve defined the action in a Graph Extension and see it available as a ‘Graph Action’ on the Customization Project screen (SCREENS → SO301000 > Actions). The action is available on the drop-down panel on SO3010PL alongside the standard options.Clicking the action gives the error “At least one record hasn’t been processed”Trace gives:Autofac.Core.Registration.ComponentNotRegisteredExceptionThe requested service 'PX.Data.DacDescriptorGeneration.IDacDescriptorProvider' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependencyI have set a breakpoint within the action handler, but it doesn’t get hit.The action is defined by this code: public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry> { public override void I
On expense receipt screen we need customization.We need to add Customer and Customer Name for mobile app.(We can easily add Customer Name for web).But for mobile app. How can we add additional field.Original Acumatica Code:[PXDBInt][PXUIField(DisplayName = "Project/Contract")][PXDimensionSelector(ContractAttribute.DimensionName,typeof(Search2<Contract.contractID, LeftJoin<EPEmployeeContract,On<EPEmployeeContract.contractID, Equal<Contract.contractID>,And<EPEmployeeContract.employeeID, Equal<Current2<employeeID>>>>>, Where<Contract.isActive, Equal<True>, And<Contract.isCompleted, Equal<False>, And<Where<Contract.nonProject, Equal<True>, Or2<Where<Contract.baseType, Equal<CTPRType.contract>, And<FeatureInstalled<FeaturesSet.contractManagement>>>, Or<Contract.baseType, Equal<CTPRType.project>, And2<Where<Contract.visibleInEA, Equal<True>>, And2<Feat
I have created a custom screen which contains two grids in separate tabs. one grid is a read only grid. while other grid allows to CRUD operations. In this grid I use fully custom DAC. when I trying to insert data, even when insert correct values (not null) for each column sometimes it gives “cannot insert values to columns since null”. Even I set values after clicking save button it inserts an empty row as above.DAC:using System;using PX.Data;namespace EMPPlanningToolR4N5{ [Serializable] [PXCacheName("PTFillerReelWidths")] public class PTFillerReelWidths : IBqlTable { #region Width [PXDBInt(IsKey = true)] [PXUIField(DisplayName = "Width")] [PXDefault(0)] public virtual int? Width { get; set; } public abstract class width : PX.Data.BQL.BqlInt.Field<width> { } #endregion #region PaperTypeID [PXDBString(2, IsKey = true, IsFixed = true, InputMask = "")] [PXUIField(DisplayName = "Paper Type ID")] [PXDefault("##")] [PXSelector(typeof(PTPaperTyp
I have two custom fields Absolute Variance Quantity for rows and Total Absolute Variance Quantity in the header. I can get these fields to update via PI Review and Scan and Count just fine, but when I do an action such as Set Not Entered To Zero, the custom header field won’t update.Here, the only value that got send to the custom header field was the first line (21), but the header field should be close to 101,772Here is my code for the field definitions and this screen:INPIHeaderExt.usrTotalAbsVarQty[PXDBQuantity][PXDefault(TypeCode.Decimal, "0.00")][PXUIField(DisplayName = "Total Absolute Variance Qty.", Visibility = PXUIVisibility.SelectorVisible, Enabled = false)]INPIDetailExt.usrAbsVarQty[PXDBQuantity()][PXUIField(DisplayName="Absolute Variance Quantity", Enabled = false)][PXFormula(null, typeof(SumCalc<INPIHeaderExt.usrTotalAbsVarQty>) )] Code Editor: INPIReview (Physical Inventory Review)using System;using System.Collections;using System.Collections.Generic;using System.L
Hi,In Live Instance,For a Grid(Form-Tabs screen) I am Trying to add around 30 lines.Up to 28 lines Data got Entered..When we are trying to Enter 29th line Getting Below ErrorThe Page was not displayed Because the Request Entity is too large. In our Local Instances we are not getting this type of Issue.What are the changes need to do to Solve this in Live Instance?How can I replicate this Issue in Local to debug the code?Thanks,Giri.
Hello, I can update an inventory item with the code below. I’m not suggesting it’s the best way but it works, the description is updated and saved to the database.public SelectFrom<InventoryItem>.View InventoryItemView;public PXAction<InventoryItem> UpdateItem;[PXButton][PXUIField(DisplayName = "Update Item")]public virtual IEnumerable updateItem(PXAdapter adapter){ List<InventoryItem> l = InventoryItemView.Select().RowCast<InventoryItem>().ToList<InventoryItem>(); InventoryItemView.Current = l.First(); InventoryItemView.Current.Descr = String.Concat(InventoryItemView.Current.Descr, "X"); InventoryItemView.UpdateCurrent(); InventoryItemView.Cache.Persist(PXDBOperation.Update); return adapter.Get();}Using the same method I can update a sales order line.public SelectFrom<SOLine>.View SOLineUpdateView;public PXAction<InventoryItem> UpdateSOLine;[PXButton][PXUIField(DisplayName = "Update SOLine")]public virtual IEnumerable updateSOLine(PXAdapter a
Hi Community,If I have edited a customization project, but I did not re-publish it back to the server, is there a way to export/ revert back to the original customization project published in a tenant? I made changes I wish to undo that are not in the server because I did not publish it after making changes. When I re-open the current existing project, the changes I don’t want are in the project. Thanks,RJ
HI All, I have a processing form built on the graph below, and so far, I can’t for the life of me get the Processing buttons to show. I’m wondering if this is due to the processing form running on a DAC with the PX Hidden attribute - have never tried this before, or am I missing something else? There is a View Delegate involved which takes data from a MASCCommissionDetail DAC which is persisted to the Database, and summarizes the data into a List of MASCProcessDetail. The form is shown below. This works exactly as required (except that there is no Process/Process All buttons visible)The MASCProcessDetail DAC is marked with the PXHidden attribute: Essentially what I’m trying to do, isSummarise all the data in MASCCommissionDetail into MASCProcessDetail. There is a many to one relationship between MASCCommissionDetail (many) and MASCProcess Detail (one), and when the processing form runs create one record in APInvoice for each MASCProcessDetail record. (I know how to do this part
Hello!I’m trying to edit a report, but when I clicked on the “Edit report” button instead of downloading, it just sends me to a screen called “report definitions”Can I get some help? Really appreciate your answers, thanks
Hi Everyone,I’m creating a processing form to process SOLines based on some functionality, a part of the code is to set the Line note for each SOLine. i tried joining the SOLine to Note table on NoteID. and tried a second way to update the Note table on the database: var note = PXSelect<Note, Where<Note.noteID, Equal<Required<Note.noteID>>>> .Select(graph, soLine.NoteID) .FirstOrDefault()?.GetItem<Note>();var lineNoteText = "...........";note.NoteText = lineNoteText;a “Null Object reference” raised for the note variable. so i thought to use the seconde one: PXDatabase.Update<Note>( new PXDataFieldAssign<Note.noteText>(lineNoteText), new PXDataFieldRestrict<Note.noteID>(soLine.NoteID) );none of them worked…any thoughts?
When referencing an email address in a notification message, is it possible to use a mailto: link in the message? If I use mailto: in a link in the richtext visual mode, it prepends an http:// in front of it when saved. If I edit as html, it removes the mailto: when saved.
I have 2 Field Attribute Custom: Name and Short Description (using customization Project).On the Import Scenarios page, I added the mapping to 2 Fields Name and Short DescriptionAt Data providers I also added 2 fieldsHowever, I use Import by Scenario to import my items into stock items.Then the Import items successfully but the two Field Attribute Custom are Name and Short Description it is null. I don't know if I was wrong or where the config was missing? But my Attribute Custom Fields cannot set Value?
Is there a simple way I can display the default vendor remit-to address to show on the bills and payments screen? I’ve checked and the RemittanceAddress view does not appear in the Data View dropdown under Add Data Fields tab in screen editor.
Hello Community, I was looking for a way to default the shipment quantity to 0 when creating the “Create Shipment” button on Sales Order or from the Process Orders screen. I thought I could just extend the “CreateShipment” method to accomplish this but not having much luck. See below for the code I have. Is there possibly a setting in Acumatica for this I missed or an issue with the code below? public delegate void CreateShipmentDelegate(CreateShipmentArgs args); [PXOverride] public void CreateShipment(CreateShipmentArgs args, CreateShipmentDelegate baseMethod) { // Call the original method to ensure default behavior baseMethod(args); Base.Transactions.Current.BaseQty = 0; Base.Transactions.Current.Qty = 0; Base.Transactions.Current.ShippedQty = 0; Base.Transactions.Current.BaseShippedQty = 0; Base.splits.Current.Qty = 0; Base.splits.Current.BaseQty = 0; Base.Transact
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.