acumatica
Hinzufügen einer Attributunterstützung zu einer Out-of-Box-Bestellungseinheit
Suche…
Einführung
Mit Acumatica ERP können Sie Attribute für eine flexible, aussagekräftige Klassifizierung eines Unternehmens (Lead, Stock / Non Stock-Produkte usw.) gemäß den Anforderungen Ihres Unternehmens definieren. Ein Attribut ist eine Eigenschaft, mit der Sie zusätzliche Informationen für Objekte im System angeben können. Attribute werden im Kontext einer Klasse definiert, bei der es sich um eine Gruppierung der Geschäftskonten (einschließlich Leads, Opportunities, Kunden und Kunden), Bestand und Nicht-Lagerartikel nach einer oder mehreren Eigenschaften handelt.
Bemerkungen
Dieses Beispiel gilt für die Acumatica 6.0-Serie
In diesem Artikel finden Sie eine Anleitung zum Hinzufügen von Acumatica ERP-Attributunterstützung zur werkseitigen Verkaufsauftragsentität
Im Kern muss der Entity-Haupt-DAC über eine GUID-Spalte ( NoteID
) verfügen, um auf die CSAnswers
Tabelle zu CSAnswers
, und über ein Feld verfügen, das die Klasse der Entität CSAnswers
.
Wir werden den Order Type
, um eine Liste von Attributen zu definieren, um bestimmte auftragstypspezifische Informationen zu sammeln.
Erstellen Sie eine Diagrammerweiterung für SOOrderTypeMaint
Graph und deklarieren Sie die Datenansicht, um eine Liste von Attributen für einen bestimmten Auftragstyp zu definieren. Wir werden CSAttributeGroupList<TEntityClass, TEntity>
public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
[PXViewName(PX.Objects.CR.Messages.Attributes)]
public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}
Erstellen Sie eine Diagrammerweiterung für SOOrderEntry
Diagramm, und deklarieren Sie die Datenansicht für Attribute, die für den aktuellen Auftragstyp spezifisch sind.
public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
public CRAttributeList<SOOrder> Answers;
}
Erstellen DAC - Erweiterung für SOOrder
DAC und erklären benutzerdefiniertes Feld mit verziertem CRAttributesField
Attribute und geben Sie die ClassID
Feld - in unserem Fall ist es OrderType
.
public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
#region UsrAttributes
public abstract class usrAttributes : IBqlField { }
[CRAttributesField(typeof(SOOrder.orderType))]
public virtual string[] UsrAttributes { get; set; }
#endregion
}
Ändern Order Types
Seite ( SO201000
) , wie unten Customization Engine
<px:PXTabItem Text="Attributes">
<Template>
<px:PXGrid runat="server" BorderWidth="0px" Height="150px" SkinID="Details" Width="100%" ID="AttributesGrid"
MatrixMode="True" DataSourceID="ds">
<AutoSize Enabled="True" Container="Window" MinHeight="150" />
<Levels>
<px:PXGridLevel DataMember="Mapping">
<RowTemplate>
<px:PXSelector runat="server" DataField="AttributeID" FilterByAllFields="True" AllowEdit="True"
CommitChanges="True" ID="edAttributeID" /></RowTemplate>
<Columns>
<px:PXGridColumn DataField="AttributeID" Width="81px" AutoCallBack="True" LinkCommand="ShowDetails" />
<px:PXGridColumn DataField="Description" Width="351px" AllowNull="False" />
<px:PXGridColumn DataField="SortOrder" TextAlign="Right" Width="81px" />
<px:PXGridColumn DataField="Required" Type="CheckBox" TextAlign="Center" AllowNull="False" />
<px:PXGridColumn DataField="CSAttribute__IsInternal" Type="CheckBox" TextAlign="Center" AllowNull="True" />
<px:PXGridColumn DataField="ControlType" Type="DropDownList" Width="81px" AllowNull="False" />
<px:PXGridColumn DataField="DefaultValue" RenderEditorText="False" Width="100px" AllowNull="True" />
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>
</Template>
</px:PXTabItem>
Ändern Sales Orders
Seite ( SO301000
) , wie unten Customization Engine
<px:PXTabItem Text="Attributes">
<Template>
<px:PXGrid runat="server" ID="PXGridAnswers" Height="200px" SkinID="Inquire"
Width="100%" MatrixMode="True" DataSourceID="ds">
<AutoSize Enabled="True" MinHeight="200" />
<ActionBar>
<Actions>
<Search Enabled="False" />
</Actions>
</ActionBar>
<Mode AllowAddNew="False" AllowDelete="False" AllowColMoving="False" />
<Levels>
<px:PXGridLevel DataMember="Answers">
<Columns>
<px:PXGridColumn TextAlign="Left" DataField="AttributeID" TextField="AttributeID_description"
Width="250px" AllowShowHide="False" />
<px:PXGridColumn Type="CheckBox" TextAlign="Center" DataField="isRequired" Width="80px" />
<px:PXGridColumn DataField="Value" Width="300px" AllowSort="False" AllowShowHide="False" />
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>
</Template>
</px:PXTabItem>
Laden Sie das Bereitstellungspaket herunter