2015-05-22 101 views
-2

這是SAP PI場景..有2個字段:registeration_id和Transaction_id。 最初我會將Transaction_id和registeration_id設置爲1.應該生成文件,直到Transaction_id達到9999並且文件應該包含更新後的值registeration_id和Transaction_id。但一旦達到9999,registeration_id應該變爲2,並且應該創建文件。注意:當TRANSACTION_ID是97,它應該跳過98. registeration_id應該跳過2和9邏輯問題..請解決

public class Ex2 { 
static int regId=1; 
static int transID=1; 
public static void main(String args[]) 
{ 
    int i; 
    //int ilength = 0; 
    for(i=1;i<=9999;i++) 
    { 

     if(transID!=9999) 
     { 
      //System.out.println(transID); 
      Properties properties = new Properties(); 
      File propertiesfile = new File("Sequence.properties"); 
      try { 
       propertiesfile.createNewFile(); 
       properties.load(new FileInputStream(propertiesfile)); 
      } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
       System.out.println("Error:File not read"); 
      } 
      if(transID!=97) 
      { 
       transID++; 
       System.out.println(transID); 
      } 
      else 
      { 
       transID=99; 
      } 
      String m=""; 
      String n=""; 
      properties.setProperty(m, String.valueOf(transID)); 
      properties.setProperty(n, String.valueOf(regId)); 
      properties.store(new FileOutputStream(propertiesfile), null); 
      break; 
     } 
     else 
     { 
      if(regId!=1 && regId!=8) 
      { 
       regId++; 
       System.out.println(regId); 
      } 
      else if(regId==1) 
      { 
       regId=3; 
       System.out.println(regId); 
      } 
      else 
      { 
       regId=10; 
      } 
     } 
    } 
} 

請提供您的寶貴意見。它既不是生成文件,也沒有計數器遞增。應該改變什麼?如何完成這種情況?提前 感謝

+0

你的問題在哪裏? –

+0

@SergiyMedvynskyy它既不會生成文件也不會像預期的那樣運行 –

+0

您能否請您發佈正確的代碼?由於你沒有在'properties.store(new FileOutputStream(propertiesfile),null);'行上處理可能的'FileNotFoundException'',所以你的代碼不會被編譯。在修復之後,你的代碼會創建一個文件並寫入'「= 1」',就像你說的那樣。 – Tom

回答

0
if(transID==98) 
    { 
     transID++; 
     System.out.println(transID); 
    } 

transID需要在somepoint遞增,一旦transID通過對9999迭代,regId永遠不會改變,因爲'i' 9999爲好,即使「我」沒有停止循環,財產將永遠不會增加regId,因爲regId值不會改變,直到transID 9999條件中的else。

+0

*「一旦transID迭代到9999」*什麼時候應該發生? OPs在第一次迭代後突破了'for'循環。 – Tom

+1

@湯姆,沒有抓到那T_T –

+0

沒有抓到什麼?我的評論或OP在第一次迭代後破裂? – Tom