Custom Transaction Field Sourcing
Hello and welcome to our bi-weekly series, Ask the Professor, where we tackle a question from you, our viewers. We pulled today’s question from Reddit, from Neogia. Neogia’s question is:
My boss asked me to create a custom body field, “project”, in item receipt where it will show the custom body field “project” of its Purchase Order. The purchase order custom body field has “text area” field type where my boss said only free-form text can use the “Sourcing & Filtering Tab”. Is there any way, I can show the “project” custom body field to the Item Receipt without changing the PO’s “project” custom body field’ type?
Based on the question, this is what I think you are asking. First, you already have a transaction body field labeled project. This field is present on your purchase order form right now. You want to create a similar field for the Item Receipt, and that field would get its default value from a linked purchase order. You also mentioned that it is either your, or your managers, understanding, that only fields that are Free-Form Text types, are able to be sourced from somewhere else.
I want to start by letting you know that there are a variety of fields that can have their data sourced from elsewhere. We can see this by going to Customization, then Lists, Records & Fields, then Transaction Body Fields and clicking New. I’m using a transaction body field in this example because that is the type you are working with, but this information is the same for almost all custom fields. If we go to the Sourcing & Filtering subtab we see options to source this record from somewhere else. We can change the type up here. I’ll go ahead and scroll through a few of these. We can see that with many of these, the selection boxes under Sourcing & Filtering remain. This is because these types of fields can have their data sourced from somewhere else.
Prior to recording this video, I created a custom, free form text field, labeled project, and set it to show on my purchase order form. Let’s take a look. We see the project field down here. I’ll go ahead and enter all the data we need to create this purchase order. I’ll also add a project here in this new field we created, and let’s save this purchase order. If I were to receive this right now, there would be no place for the data in the project field to flow into. That is, I do not have a project field on my Item Receipts. There are a few different ways that I can get this data onto my Item Receipt, and the method I choose is going to depend on how I want to use this field later.
The first method I could use is to simply show the same Project field on my Item receipt that I have on my Purchase Order. If I open my transaction body field, and I can do that through my recent records. Under the Applies To subtab, I can select Item Receipt. I could also check this, View From Order Only, checkbox if I want this to be read only on the Item Receipt, but not editable. I’ll go ahead and save this so we can take a look at how this works.
The second method we could use, is to create a second field that would apply to the Item Receipt, and have that source from the Purchase Order. If we click on new from here, we can create a new Transaction body field. We could have also gone to Customization, then List, Records & Fields, then selected New under Transaction Body Fields. I’ll call this Project 2, and apply it to the Item Receipt. Under Sourcing & Filtering, I’ll select Create From, in the Source list. This will give me the ability to access most of the fields that are on the record the Item Receipt was created from, which is the Purchase Order in this case. Under Source From, I’ll start typing Project and then select it when it comes up. Here in the header section I am also going to uncheck Store Value, because the way I have my account setup was preventing this from working with this box checked, when I was testing this, and I want you to see how it should work. The last thing I am going to do is go to the Display subtab, and under the subtab menu, select Main. This just allows us to see the field more easily. Had I not selected this the field would be under the custom subtab on the Item Receipt record. I’ll choose Save, and let’s take a look at how these work.
I’ll open the same purchase order from my recent records, and click Receive to receive the order. On the item receipt, we see that both Project, and Project 2, are filled in with the same information. So why would you want to use one over the other. This is all going to depend on how you will use the data later. Will the data be setup to print in different locations using the same transaction form layout, for example? Will you use a script that will access the data in the record, but use the data in different ways between the two record types? There are also other reasons why, but I am not going to try and list them all right now. I probably couldn’t think of them all anyway. My recommendation is that you use the first way, that is display the same field on both records, unless you have a compelling reason not to.
In addition to the two ways listed above, there are a couple of other ways you could populate the field using mass updates, workflows or scripting. These all have their uses. For example, if you wanted to do some complex data processing on the field you might use a script or workflow. If you needed to update historical transactions you would probably use a mass update, to at least perform the update, if not keep the records themselves updated.
The last point that I want to mention is that while it is easy to think of Item Receipts as only coming from Purchase Orders, they can also come from a few other transactions, the most common one being the RMA.
Neogia, thanks for the question, and we hope this is a sufficient answer to set you up for success. If you have questions you would like us to answer please send them to firstname.lastname@example.org, or just let us know what you think. You can visit us on the web at www.erpprofessor.com, or connect with us on social media with the following links. Thanks for watching.