I’m building a GI and need the ToLocationID data field from the POReceiptLineSplit data class.
However, when I click on the POReceiptLineSplit link, that field does not exist in that data class. Am I missing something? How can I access it for my GI?
I’m building a GI and need the ToLocationID data field from the POReceiptLineSplit data class.
However, when I click on the POReceiptLineSplit link, that field does not exist in that data class. Am I missing something? How can I access it for my GI?
In Put Away mode on this screen:
This appears to be related to WMS and specifically screen PO302020. First some technical “digging” and then I’ll try to explain.
Technical Details
According to the ASPX page, this screen uses PX.Objects.PO.WMS.ReceivePutAway+Host.
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="PX.Objects.PO.WMS.ReceivePutAway+Host" PrimaryView="HeaderView">
PutAwayMode.cs contains the following which looks like it probably is the right spot in code, although admittedly, this isn’t something I’m familiar with.
using WMSBase = WarehouseManagementSystem<ReceivePutAway, ReceivePutAway.Host>;
public partial class ReceivePutAway : WMSBase
...
According to PutAwayMode.cs, it looks like ToLocationID from INTran is programmatically added to POReciptLineSplit by way of some more fancy code.
public class ToLocationID : FieldAttached.To<POReceiptLineSplit>.AsInteger
...
var links =
SelectFrom<POReceiptSplitToTransferSplitLink>.
InnerJoin<INTran>.On<POReceiptSplitToTransferSplitLink.FK.TransferLine>.
Where<POReceiptSplitToTransferSplitLink.FK.ReceiptLineSplit.SameAsCurrent>.
View.SelectMultiBound(Base, new[] { row })
.AsEnumerable()
.Cast<PXResult<POReceiptSplitToTransferSplitLink, INTran>>()
.ToArray();
...
state = PXFieldState.CreateInstance(
value: state.Value,
dataType: typeof(string),
isKey: false,
nullable: null,
required: null,
precision: null,
length: null,
defaultValue: null,
fieldName: nameof(INTran.toLocationID),
descriptionName: null,
displayName: state.DisplayName,
error: null,
errorLevel: PXErrorLevel.Undefined,
enabled: false,
visible: Base.WMS.Header.Mode == PutAwayMode.Value,
readOnly: true,
visibility: PXUIVisibility.Visible,
viewName: null,
fieldList: null,
headerList: null);
return state;
Short Version
Ok, so using these breadcrumbs, you want to add the DAC’s POReceiptSplitToTransferSplitLink and INTran.
POReceiptSplitToTransferSplitLink contains:
[CompanyID]
,[ReceiptType]
,[ReceiptNbr]
,[ReceiptLineNbr]
,[ReceiptSplitLineNbr]
,[TransferDocType]
,[TransferRefNbr]
,[TransferLineNbr]
,[TransferSplitLineNbr]
,[Qty]
You will link POReceiptLineSplit to POReceiptSplitToTransferSplitLink by the Receipt* fields and then connect INTran via the Transfer* reference fields. This is when you should be able to use INTran.ToLocationID that you need.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.