2017-03-02 9 views
0

SalesQuotationIdとPersonnelnumberを提供するCSVファイルを受け取ったので、findメソッドを使用してSalesQuotationを検索するジョブを作成しました。PersonnelNumberに基づいてHCMWorker RecIdフィールドを更新します

SalesQuotationTableには、RecIdHCMWorkerが格納されているフィールドがあります。問題は、私はCSVファイルに人員番号だけがあることです。 PersonnelNumberに基づいてHCMWorkerのRecIdを変更する方法がわかりません。

static void UpdateHCMWorkerField(Args _args) 
{ 
    #File 
    CommaTextIo   inFile; 
    Container   con; 
    int     i; 
    FileIOPermission permission; 
    FilePath   readFile; 

    SalesQuotationTable   salesQuotationTable; 
    SalesQuotationId  quotationId; 
    str     worker; 


    HcmWorker      hcmWorker; 
    ; 
    readFile = "File.csv"; 

    permission = new FileIOPermission(readFile, #io_read); 
    permission.assert(); 

    inFile = new CommaTextIo(readFile, #io_read); 
    inFile.inFieldDelimiter(","); 

    while (inFile.status() == IO_Status::Ok) 
    { 
     con = inFile.read(); 

     quotationId = conPeek(con,1); 
     worker = conPeek(con,2); 

     salesQuotationTable = salesQuotationTable::find(quotationId,true); 

     if(salesQuotationTable && worker) { 
      ttsBegin; 


// Obviously, this is not working working because I am trying to update the RecId field with a string value. 

     salesQuotationTable.WorkerField = worker; 
     salesQuotationTable.update(); 

      ttscommit; 
     } 
     info("Done!"); 
     } 
    } 

答えて

1

あなたはHcmWorkerテーブルに静的関数findByPersonnelNumberを使用してPersonnelNumberによってHcmWorkerレコードを見つけることができます。代わりにsalesQuotationTable.WorkerField = worker;

salesQuotationTable.WorkerField = HcmWorker::findByPersonnelNumber(worker).RecId; 
関連する問題