2014-09-06 162 views
1

我是COBOL的新手,我想知道如何爲每個事務自動生成唯一的ID。例如,自動生成一個跟蹤ID。使用COBOL自動生成唯一ID

+2

您介意與我們分享您到目前爲止所嘗試的內容嗎?它有助於我們理解您所嘗試的內容,並避免我們提出已被您解僱的解決方案。 – Bart 2014-09-06 18:53:05

+0

最簡單的方法是將「添加一個」添加到您保留的全局事務計數中。如果您有N個唯一可識別的程序集,請將程序實例1..N附加到計數的前面。如果你不確定有多少程序正在運行,你可以調用一個隨機數生成器(確保它有128位)並使用它;如果這樣做是正確的話,兩個ID匹配的機會非常小(這是MS GUID如何作爲一階解釋工作)。 – 2014-09-06 20:40:12

+0

您可能對COBOL不熟悉,但這並不意味着我們不需要知道編譯器/供應商,操作系統,您擁有的程序類型,是否有同事,本地標準,程序規範等。沒有更多信息@ IraBaxter的評論一如既往,一旦我們確實瞭解了更多關於您的特定案例的信息,這通常是一個公平的答案。以防萬一它回答你的問題,不,沒有功能爲你做這個。 – 2014-09-06 23:03:56

回答

0

這是不容易的一個全球唯一的ID進行,但也不是很難使用,你可能手頭上在交易的時間的數據來模擬,考慮:

01 Unique-ID. 
    05 UI-Customer-Num  Pic 9(?). 
    05 UI-Date    Pic 9(8). 
    05 UT-Time    Pic 9(7). 
*>Populate with Compute UI-Random = 999999999 * Function Random() 
    05 UI-Random   Pic 9(8). 

假設你有一個客戶號碼,您可以使用您在交易中擁有的數據在十分之一秒內創建一個唯一的ID。只需在該端添加一個大的隨機數,並且您有一個唯一的ID。

如果跟蹤ID不提供任何數據給臨時閱讀器返回任何數據非常重要,那麼可以使用最終的Unique-ID並通過單向散列運行,如SHA1,SHA2,SHA256,隨你。