acumatica
Out-of-Box 판매 주문 엔터티에 특성 지원 추가
수색…
소개
Acumatica ERP를 사용하면 귀사의 특정 요구 사항에 따라 엔터티 (리드, 재고 / 비 재고 품목 등)를 유연하고 의미있게 분류 할 수있는 속성을 정의 할 수 있습니다. 속성은 시스템의 오브젝트에 대한 추가 정보를 지정할 수있는 특성입니다. 속성은 비즈니스 계정 (리드, 기회, 고객 및 사례 포함), 주식 및 비 주식 항목을 하나 이상의 속성으로 그룹화 한 클래스의 컨텍스트에서 정의됩니다.
비고
이 예제는 Acumatica 6.0 시리즈에 적용 가능합니다.
이 기사에서는 즉시 판매 주문 엔터티에 Acumatica ERP 특성 지원을 추가하는 방법을 안내합니다
핵심에서는 엔티티 주 DAC가 CSAnswers
테이블을 참조하는 GUID 열 ( NoteID
)을 가져야하며 엔티티 클래스를 식별하는 필드가 있어야합니다.
Order Type
을 사용하여 특정 주문 유형별 정보를 수집하는 속성 목록을 정의합니다.
SOOrderTypeMaint
Graph에 대한 그래프 확장을 작성하고 데이터 순서를 선언하여 특정 주문 유형에 대한 속성 목록을 정의하십시오. 바로 사용하지 않는 CSAttributeGroupList<TEntityClass, TEntity>
public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
[PXViewName(PX.Objects.CR.Messages.Attributes)]
public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}
SOOrderEntry
Graph에 대한 그래프 확장을 작성하고 현재 주문 유형별 특성에 대한 데이터보기를 선언하십시오.
public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
public CRAttributeList<SOOrder> Answers;
}
SOOrder
DAC 용 DAC Extension을 SOOrder
CRAttributesField
특성으로 장식 된 사용자 정의 필드를 선언하고 ClassID
필드를 지정합니다.이 경우에는 OrderType
입니다.
public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
#region UsrAttributes
public abstract class usrAttributes : IBqlField { }
[CRAttributesField(typeof(SOOrder.orderType))]
public virtual string[] UsrAttributes { get; set; }
#endregion
}
Customization Engine을 사용하여 아래와 같이 Order Types
수정 페이지 ( SO201000
)
<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>
맞춤 엔진을 사용하여 아래와 같이 Sales Orders
페이지 수정 ( SO301000
)
<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>