2017-05-24 14 views
0

現在、私はEpicorによって作成されたBPMが期待どおりに機能していないか見直しが必要です。現在、以下のコードに基づいてBPMを使用することで、システム内の受注を参照することになります。また、価格変更があった場合は注文を出荷する時刻に新しい価格が反映されます。このコードによって、間違った価格表が予想されない顧客から回収されているようです。たとえば、価格表は顧客#1242に添付されますが、価格は顧客#1269に基づいて更新されます。 (彼らは共通部品番号を共有して推測し、コードが最新の値を取得)Epicor 10 BPMワークフローデザイナーでBAQをリンクする(カスタムコードを避ける)

今私の問題は、私は私がなく、わずかな程度に、私は上記のものから、前にコードをレビューしてきた、書き込みコードの経験を持っていないですそれは私に提供されました。今私が考えているより簡単な習慣は、BAQを作成し、それをBPMで参照し、BAQをBPMの参照として利用して価格を更新することです。

いくつかのフォーラムとEpicorsのトレーニング資料を調べて、私はBPMでBAQをリンクする方法について決定的な答えは見つけられませんでした。

(また、私の説明は理にかなっていると、コードは問題が推測を取るお気軽に反映している場合)

BPMコード:私は、コードを解決

var ttShipHead_xRow = (from ttShipHead_Row in ttShipHead 
         where ttShipHead_Row.ReadyToInvoice == true 
         select ttShipHead_Row).FirstOrDefault(); 
if (ttShipHead_xRow != null) 
{ 

foreach (var ShipDtl_iterator in (from ShipDtl_Row in Db.ShipDtl 
              where ttShipHead_xRow.PackNum == ShipDtl_Row.PackNum 
              && ttShipHead_xRow.Company == ShipDtl_Row.Company 
              select ShipDtl_Row)) 
{ 
var ShipDtl_xRow = ShipDtl_iterator; 
//ShipDtl_xRow.UnitPrice = 1; 
var today = DateTime.Today; 
var PriceList_xRow = (from PriceLst_Row in Db.PriceLst 
               from PriceLstParts_Row in Db.PriceLstParts 
              where ShipDtl_xRow.PartNum == PriceLstParts_Row.PartNum 
               && PriceLst_Row.ListCode == PriceLstParts_Row.ListCode 
               && PriceLst_Row.Company == PriceLstParts_Row.Company 
               && PriceLst_Row.Company == ShipDtl_xRow.Company 
               && PriceLst_Row.EndDate >= today 
          select PriceLstParts_Row).FirstOrDefault();          
        if (PriceList_xRow != null) 
        { 
            var OrderDtl_xRow = (from OrderDtl_Row in Db.OrderDtl 
                     where ShipDtl_xRow.OrderLine == OrderDtl_Row.OrderLine 
                     && ShipDtl_xRow.PartNum == OrderDtl_Row.PartNum 
                      && ShipDtl_xRow.OrderNum == OrderDtl_Row.OrderNum 
                      && ShipDtl_xRow.Company == OrderDtl_Row.Company 
                      select OrderDtl_Row).FirstOrDefault(); 
                {          
              if (OrderDtl_xRow != null) 
                { 
                          if (ShipDtl_xRow.UnitPrice != PriceList_xRow.BasePrice) 
                          { 
                           ShipDtl_xRow.UnitPrice = PriceList_xRow.BasePrice; 
                          } 
                          if (ShipDtl_xRow.UnitPrice != OrderDtl_xRow.UnitPrice) 
                          { 
                           OrderDtl_xRow.DocUnitPrice = PriceList_xRow.BasePrice; 
                           OrderDtl_xRow.UnitPrice = PriceList_xRow.BasePrice;  
                          } 
                } 
                } 
      } 
     } 
    } 

答えて

0

が、まだ特定できませんでしたBPMのBAQをリンクする有効な方法

問題は次のコードが欠けていたことでした:

&& ttShipHead_xRow.CustNum == ShipDtl_Row. CustNum 

最初のforeach文。

関連する問題