2017-03-08 3 views
0

私はAcumaticaのBAccountテーブルにリンクするユーザー定義テーブルを持っています。私がしようとしているのは、UDFが設定されているときにCreateDateTimeを保存するためにPXDBCreatedDateTime属性を使用することです。これは可能ですか?今はうまくいかないようです。PXDBCreatedDateTimeが拡張テーブルで機能しない

[PXTable(typeof(BAccount.bAccountID),IsOptional=true)] 
public class CustomerExtension : PXCacheExtension<BAccount> 
{ 
    [PXDBCreatedDateTime()] 
    [PXUIField(DisplayName = "Date")] 
    public DateTime? CreatedDateTime { get; set; } 

    public class createdDateTime : IBqlField { } 
} 

答えて

0

BAccountテーブルには既に同じ名前の「CreatedDateTime」フィールドが含まれているため、動作しないと想定します。私は最初にテーブル拡張フィールドに別のフィールド名を使用します。これは、すでに同じ名前で存在するフィールドと競合する可能性があるためです。また、基本テーブルが挿入または更新されたとき(最初に拡張テーブルが追加された後)に拡張テーブルが挿入されます。これは、拡張フィールドの変更によって発生する場合と発生しない場合があります。これはまた、PXDBCreatedDateTimeフィールドから適切な日付を取得するためのいくつかの問題を引き起こします。標準の日付時刻フィールドを使用する方が良いかもしれませんし、フィールドの変更時に日付を更新するためにいくつかのタイプの式を使用する方がよいかもしれません。私はその式を研究しなければならないだろう。ユーザーフィールドの設定者のロジックを使用し、日付フィールドにPXDependsOnFields属性を追加し、nullの場合は日付フィールドを設定できます。 PXDependsOnFieldsをエクステンションで試したことはありませんが、ロジックが有望なのかもしれません。

+0

ええ、そうです。作成した名前をCreateDateTime1に変更しました。ダー。ありがとうブレンダン! –

+0

喜んで助けてください。私たちは多くの拡張テーブルを使用します。拡張フィールドがすべて同じ2文字で開始されるため、これらのフィールドは常にユニークで、私たちのものとして識別可能です(多くの拡張が存在するシナリオでは) – Brendan

関連する問題