2017-08-01 40 views
0

私はAcumaticaで返品注文を処理しようとしています。これはタイプRCの受注を作成し、受領確認アクション受注タイプの出荷を作成した後、出荷時に出荷確認を呼び出します。しかし、受注で定義されたアクションのリストでは、受領証登録に対応するアクションは見つかりません。私たちがスクリーンを通してやっているようにプログラム作成でCreate Receiptアクションを呼び出す方法について誰かが私を導くことができますか?Acumatica - プログラム受注で販売受注(タイプRC)で受領アクション登録を呼び出す方法

これは私が出荷に出荷を確認して起動し、領収書を作成するために、類似した何かを探してどのようである:

var adapter = new PXAdapter(graph.CurrentDocument); 
adapter.Arguments.Add("actionID", SOShipmentEntryActionsAttribute.ConfirmShipment); 
PXLongOperation.StartOperation(graph, delegate() 
{ 
    foreach (SOShipment soShipment in graph.action.Press(adapter)) ; 
}); 

答えて

2

これは、以前Acumaticaが提供するソリューションであり、私はいくつかの画面では、この方法を試してみましたが、それが働いていました。次のコードでは、私はこれをテストすることができます前にソートするために1つのより多くの問題をしました

docgraph.Document.Current = docgraph.Document.Search<SOShipment.shipmentNbr>("mYsHIPMENTnUMBER"); 
      docgraph.Cancel.Press(); 
      foreach (var action in (docgraph.action.GetState(null) as PXButtonState).Menus) 
      { 
       if (action.Command == "Confirm Shipment") 
       { 
        PXAdapter adapter2 = new PXAdapter(new DummyView(docgraph, docgraph.Document.View.BqlSelect, new List<object> { docgraph.Document.Current })); 
        adapter2.Menu = action.Command; 
        docgraph.action.PressButton(adapter2); 

       } 
      } 

internal class DummyView : PXView 
     { 
      List<object> _Records; 
      internal DummyView(PXGraph graph, BqlCommand command, List<object> records) 
       : base(graph, true, command) 
      { 
       _Records = records; 
      } 
      public override List<object> Select(object[] currents, object[] parameters, object[] searches, string[] sortcolumns, bool[] descendings, PXFilterRow[] filters, ref int startRow, int maximumRows, ref int totalRows) 
      { 
       return _Records; 
      } 
     } 
+0

を「領収書の作成」をごSOOrderEntryおよびコマンドにグラフを変更してみてください。プログラムでOrder-type RCを作成しています。グラフのインスタンスを作成し、返品注文の必須フィールドとその他の情報を記入します。 Save.Press()アクションを呼び出すと、エラー - 「請求先住所」レコードを挿入すると少なくとも1つのエラーが発生しました。私は画面を介して注文を作成するとき、私はちょうど顧客を選択する - アドレスは自動的に入力されます。私もアドレスの詳細を更新しようとしましたが、同じエラーです。どのように必要な詳細を自動的に塗りつぶされたように画面を完了すると?またはどのフィールドを見つけてデータが欠落しているかを調べることができます。 – Raj

+1

コードを投稿する必要があるかもしれません。ただし、コミットが必要なフィールドを設定した後で、レコードをキャッシュに戻して更新していることを確認してください。たとえば、SOOrder.BaccountID = ;次に、graph.Document.Update(SOOrder);これにより、他のフィールドへの入力が必要なイベントがトリガーされます。 – Hybridzz

+0

ありがとう@Hybridzz、私はそれを克服することができました。 Create Receiptアクションを呼び出すと、PX.Data.PXDialogRequiredExceptionが発生します。ダイアログにOKを返すにはどうしたらいいですか?ビューでこのSetAnswer()メソッドが見つかりましたが、WebDialogResultとともにダイアログの識別子を渡す必要があり、WebDialog識別子を取得する方法がわかりません。 – Raj

関連する問題