Recherche…


Introduction

Acumatica ERP vous permet de définir des attributs pour une classification flexible et significative d'une entité (éléments principaux, actions / non stockés, etc.) en fonction des besoins spécifiques de votre entreprise. Un attribut est une propriété qui vous permet de spécifier des informations supplémentaires pour les objets du système. Les attributs sont définis dans le contexte d'une classe qui est un regroupement des comptes d'entreprise (y compris les pistes, les opportunités, les clients et les cas), les articles en stock et les articles non stockés par une ou plusieurs de leurs propriétés.

Remarques

Cet exemple est applicable à la série Acumatica 6.0

Cet article fournit des instructions pour ajouter la prise en charge de l'attribut ERP Acumatica à l'entité de commande client prête à l'emploi.

À la base, votre DAC principal d'entité doit avoir une colonne GUID ( NoteID ) pour référencer la table CSAnswers et doit avoir un champ identifiant la classe de l'entité.

Nous utiliserons le type d' Order Type pour définir la liste des attributs permettant de collecter des informations spécifiques au type d'ordre.

Créez une extension de graphique pour SOOrderTypeMaint Graph et déclarez la vue de données pour définir la liste des attributs pour un type de commande particulier. Nous utiliserons CSAttributeGroupList<TEntityClass, TEntity>

public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
    [PXViewName(PX.Objects.CR.Messages.Attributes)]
    public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}

Créez une extension de graphique pour le graphique SOOrderEntry et déclarez la vue de données pour les attributs spécifiques au type de commande en cours.

public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
    public CRAttributeList<SOOrder> Answers;
}

Créez l'extension DAC pour SOOrder DAC et déclarez le champ défini par l'utilisateur avec l'attribut CRAttributesField et spécifiez le champ ClassID - dans notre cas, il s'agit de OrderType .

public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
    #region UsrAttributes

    public abstract class usrAttributes : IBqlField { }

    [CRAttributesField(typeof(SOOrder.orderType))]
    public virtual string[] UsrAttributes { get; set; }

    #endregion
}

Modifier la page Order Types ( SO201000 ) comme ci-dessous à l'aide du moteur de personnalisation

<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>

Modifier la page des Sales Orders SO301000 ( SO301000 ) comme ci-dessous à l'aide du moteur de personnalisation

<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>

Télécharger le package de déploiement



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow