XML migration script defining a custom window with two tabs: a header tab for master data and a detail tab for line items. Follows the iDempiere AD (Application Dictionary) pattern for window, tab, and field definitions. Use this as a template when creating new windows via migration XML.
<?xml version="1.0" encoding="UTF-8"?>
<Migration Name="Custom Sales Support Window" SeqNo="100"
Script="202603021000_CustomWindow.xml">
<!-- Window -->
<Step StepType="AD" Action="Insert" TableName="AD_Window">
<Column ColumnName="Name">Sales Support</Column>
<Column ColumnName="Description">Sales order support and shipping estimation</Column>
<Column ColumnName="WindowType">M</Column>
<Column ColumnName="IsSOTrx">Y</Column>
<Column ColumnName="IsActive">Y</Column>
<Column ColumnName="EntityType">U</Column>
</Step>
<!-- Header Tab -->
<Step StepType="AD" Action="Insert" TableName="AD_Tab">
<Column ColumnName="Name">Sales Support</Column>
<Column ColumnName="AD_Table_ID" Lookup="AD_Table">XX_SalesSupport</Column>
<Column ColumnName="TabLevel">0</Column>
<Column ColumnName="SeqNo">10</Column>
<Column ColumnName="IsInsertRecord">Y</Column>
<Column ColumnName="IsSingleRow">Y</Column>
</Step>
<!-- Detail Tab -->
<Step StepType="AD" Action="Insert" TableName="AD_Tab">
<Column ColumnName="Name">Support Lines</Column>
<Column ColumnName="AD_Table_ID" Lookup="AD_Table">XX_SalesSupportLine</Column>
<Column ColumnName="TabLevel">1</Column>
<Column ColumnName="SeqNo">20</Column>
<Column ColumnName="IsInsertRecord">Y</Column>
</Step>
</Migration>