Skip to main content
Question

What's the process for bringing in an outside field to a customized GI?

  • June 8, 2026
  • 4 replies
  • 29 views

Forum|alt.badge.img

For example, in Generate Forecasts, AM502000, I need to bring in a cross reference to display since our reports all use cross refs for internal work. I’m comfortable enough with the no-code to bring in fields in “Add Data Fields”, but I’m stuck on this. From what I can gather, I’d be doing a graph extension, but I’m lost on the rest. 

Could someone either point me in the right direction for examples I can pull from, or can you tell me the process? 

Thanks much in advance. The ability to have a cross reference displayed will be game changing on many of our screens. 
 

4 replies

darylbowman
Captain II
Forum|alt.badge.img+16

I need to bring in a cross reference to display 

What do you mean by this? Are you talking about Stock Item Cross-References or something else?

You’re solidly in development territory. How complicated the code will be depends very much on what you’re trying to do, but if you don’t have development background, I suggest you get someone to help you who does.


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • June 8, 2026

Great question! 
 

Our company is currently maxed out at paying for customizations for right now, unfortunately, so I’m doing what I can where I can and picking the lowest hanging fruit. I have done some trainings with C#, and a tiny bit of SQL, but most of my experience is scripting in Python.


OOP is still new for me, and I know there’s a lot to learn before I can confidently write my own code in Acu, but I’m putting in time every week to bridge that gap. 

My hope is that this sort of call to another DAC is something that has a relatively standard syntax and process of implementation. I’m guessing it’s a DAC extension? Is that correct? 

The previous question stands, can someone point me in a direction to teach myself, or is that something some can tell me how to do here? Either way, I’ll be continuing education to get to where simpler customization can get done in-house. This is more of a request to hopefully have an example to learn from. 


darylbowman
Captain II
Forum|alt.badge.img+16

I’ll be continuing education to get to where simpler customization can get done in-house

In that case, you’re at the right place, and I’m sure someone will spend more time getting you a sufficient answer, but to get started, you’ll need to decide how you’re going to handle Items with multiple cross-references / Alternate IDs since it is a one-to-many relationship.

You’ll need to create a DAC extension on PX.Objects.AM.AMForecastStaging and add a new field like AlternateID from PX.Objects.IN.INItemXRef (but call it something like UsrItemAlternateID):

[PXDBString(50, IsUnicode = true, IsKey = true, InputMask = "")]
[PXDefault()]
[PXUIField(DisplayName = "Alternate ID")]
public virtual String AlternateID { get; set; }
public abstract class alternateID : PX.Data.BQL.BqlString.Field<alternateID> { }

Then you’ll probably need to create a graph extension on PX.Objects.AM.GenerateForecastProcess to actually compute and set the value into your new field (including deciding how to handle multiple cross-references). I would probably recommend using a RowSelecting event handler on AMForecastStaging to run the logic.

Good luck!


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • June 8, 2026

Fantastic! Thank you. The key we use in a GI for the one I need is =’Catalog ID’.