2016-03-22 8 views
0

案件を販売注文に変換しながら、案件のカスタムフィールド値を案件から販売注文にコピーする必要があります。 サンプルコードを見て、カスタムフィールドを受注から出荷に渡しました。このコードを使用して、「受注の作成」アクションをオーバーライドしようとしました。 OpportunityMaint拡張クラスで使用した次のコードスニペットOpportunityからSales Orderにカスタムフィールド値を渡す方法は?

パブリックPXActionアクション; [PXButton] [PXIntList(new int [] {1,2,3}) [PXIntList(new int [] {1,2,3}) 、新しい文字列[]){ "請求書の作成"、 "受注の作成"、 "アカウントの作成"} PXInt] int型?たAction、 [PXString] 文字列ACTIONNAME) { 場合(たAction == 2) { // Implement So Order行挿入ハンドラ } return Base.Action.Press(adapter); }

コード部分がトリガーされていません。 は よろしく、 R.Muralidharan

答えて

0

あなたはCreateSalesOrderアクションを上書きする必要があります。このオプションを実装するためのより良いソリューションを楽しみにしています。以下は、私がチャンスを販売注文にプッシュしなければならなかったコードのスニペットです。

public class OpportunityMaint_Extension : PXGraphExtension<OpportunityMaint> 
{ 
    public PXAction<CROpportunity> createSalesOrder; 
    [PXUIField(DisplayName = Messages.CreateSalesOrder, MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)] 
    [PXButton(ImageKey = PX.Web.UI.Sprite.Main.DataEntry)] 
    public virtual IEnumerable CreateSalesOrder(PXAdapter adapter) 
    { 
     PXGraph.InstanceCreated.AddHandler<SOOrderEntry>((graph) => 
     { 
      graph.RowInserted.AddHandler<SOOrder>((cache, args) => 
      { 
       var soOrder = (SOOrder)args.Row; 
       var soOrderExt = PXCache<SOOrder>.GetExtension<SOOrderExt>(soOrder); 

       foreach (CROpportunity opportunity in adapter.Get()) 
       { 
        soOrderExt.UsrOpportunityID = opportunity.OpportunityID; 
       } 
      }); 
     }); 
     return Base.createSalesOrder.Press(adapter); 
    } 
} 
+0

ありがとう。私はテストして、それは正常に働いた –

関連する問題