2014-09-06 175 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,随你。