2011-10-18 12 views
1

生産状況をコードで変更する必要がありますが、ProdTableフォームから変更する必要はありません。私が持っている問題は、クラスProdMultiReleaseがProdTableフォームから実行されることを期待しているということです。 (10行目:RunBaseMultiParm :: initFromForm(prodMultiRelease、引数);)生産状況をコードで変更するにはどうすればよいですか? (AX 2009)

更新: ここではいくつかの追加情報があります。まず、次のように試してみました。

static void Job1(Args _args) 
{ 
    Args args; 
    ProdTable prodTable; 
    ; 
    prodTable = ProdTable::find('PRD_00005166', true); 
    args = new Args(); 
    args.record(prodTable); 
    new MenuFunction(menuitemactionstr(ProdRelease), MenuItemType::Action).run(args); 
} 

これはうまくいきません。

static void startprod(Args _args) 
{ 
    ProdTable   prodTable; 
    ProdMultiStartUp ProdMultiStartUp; 
    ; 
    prodTable.selectForUpdate(true); 
    select prodTable where prodTable.ProdId =='0267_074'; 
    prodTable.ProdStatus = prodStatus::StartedUp; 
    prodTable.update(); 
    info('done'); 
} 

これはうまく動作しますが、単純にステータスを設定に問題がある場合、私は知らない。

今、私はこのようなものを持っています。

アップデート2: 私は私がそれをやると思う:

prodTable.autoUpdate(prodStatus::Released); 
+0

私は解放する製造指図を更新したいと思い、より正確には。 – supertobi

+1

あなた自身が答えを見つけた場合は、投稿して受け入れてください。 – 10p

答えて

4

私は最善の方法はでそれを行うことだと思う:

prodTable.autoUpdate(prodStatus::Released); 
0

これを実行している間、私は問題を抱えていましたコード。次のコードは、私の仕事:

static void setProdStatusStarted(Args _args) 
{ 
    ProdUpdStartUp  prodUpdStartUp; 
    ProdParmStartUp  prodParmStartUp; 
    ProdParametersDim prodParametersDim; 
    ProdTable   prodTable; 

    ProdId    prodId = "PROD-0001"; 

    prodTable = ProdTable::find(prodId); 

    ttsBegin; 
    prodParmStartUp.initValue(); 
    prodParmStartUp.initParmDefault(); 

    prodParametersDim = ProdParametersDim::find(prodTable.InventDimId); 

    prodParmStartUp.initFromProdParametersDim(prodParametersDim); 
    prodParmStartUp.ProdId = prodTable.ProdId; 
    prodParmStartUp.PostNowBOM = NoYes::No; 
    //CompletePickListJournal property allows it to create additional picking list journals which are missing for the BOM. 
    prodParmStartUp.CompletePickListJournal = NoYes::Yes; 

    prodParmStartUp.insert(); 
    ttsCommit; 

    prodUpdStartUp = ProdUpdStartUp::construct(); 
    prodUpdStartUp.parmParmBuffer(prodParmStartUp); 
    prodUpdStartUp.run(); 
} 

Check this blog

+0

あなたはどのAXバージョンを使用していますか? – supertobi

+0

バージョン:AX 2012 R3 CU9 –

関連する問題