Infor ERP LN的数据表里的两个隐藏字段:T$REFCNTD和T$REFCNTU

拿Item General Data的Table – tcibd001举例,如果你在数据库里直接查询,你会看到两个字段:T$REFCNTD和T$REFCNTU,图示如下:

但是,如果从LN里面的ttaad4500看表结构,你是看不到的。

这两个字段有什么用呢?

refcntd – Referential Control Delete Mode
refcntu – Referential Control Update Mode

字段Refcntd存储一条记录的删除约束的数量
字段Refcntu存储一条记录的更新约束的数量。
只要通过Tools模块新增的表,这两个字段会自动添加到每个Baan/LN表中,您不必手动添加它们。

以下来自官方的介绍:

To guarantee referential integrity, the Baan/LN Database stores reference counters, which indicate how many times a record is used in a parent child relation. Since baan/LN can store each data in a several different database, we can not use the referential integrity mechanisms of the database itself. The field Refcntd stores the number of delete constraints to a record, the Refcntu stores the number of update constraints to a record. These fields are automatically added to each Baan table so you do not have to add them manually.

Only if the reference counter is zero, can the parent record be deleted.
Reference counters are only applicable if the Referential Control Delete Mode (refcntd) or Referential Control Update Mode (refcntu) in the relation is “Restricted (with counter)”.

为什么要说这个呢

重点来了,有时候,你需要从外部程序往Baan/LN的表写记录,那么就得考虑给这两个字段赋值的问题了。

别忘了在你的语句中增加这两个字段,比如:(T$REFCNTD,T$REFCNTU) VALUES (0,0)

至于为啥赋值为零,我这个新表其实没啥关联的表,那么都默认为0了。

好了,春节将至,特以此文收官祝广大Infor ERP LN/Baan战友们2021牛年大吉大利、身体健康、万事如意!

Loading

Infor ERP LN有用的Session:ttstpdeldeflt Remove User Defaults

在使用Infor ERP LN的过程中,由于网络中断或者不稳定经常会出现用户打开某个Session的时候报错,信息类似如下:

Fatal error : value DsNheight=-280 out of range

那么这时候,用户怎么也打不开想要使用的Session了,这时候就需要用到这个有用的Session:Remove User Defaults.

输入用户的账号,选择相应的公司,然后输入对应的Session Code,点击Remove即可。

Loading

通过Infor LN ERP中的EAN字段来聊聊UPC和Code 128

很多人一提起条码(BarCode),我就犯嘀咕,因为我不知道他们每个人所表达的是否是一个东西。

因为条码实在太多了,一维的,二维码,图书的,行业专用的。如果打开BarTender软件,你会发现选择如下。而GS1只是GTIN是全球贸易项目代码(Global Trade Item Number)的一个数据来源而已。

我们常见的微信二维码用得是 QR Code,图书用的是ISBN,商场超市买的很多物品是EAN或UPC编码。

言归正传,在我们Infor LN ERP里面的General Item Data里面有个可以维护EAN的地方,截图如下,红色框里的按钮是我们的客户化定制,连接了一个Web,会自动传递当前的Item Code,如果未匹配过EAN Code,就会自动从已购买的清单里面分配一个,如果已获取就直接显示出来。这个Web页面后台有个数据库,记录着Item Code和EAN Code的一一对应,同时也有一个所有的EAN Code的清单,这个是从第三方机构付费购买的。

如果是美国的公司,这里的EAN Code大概率都是用UPC-A编码,因为UPC(Universal Product Code)码是美国统一代码委员会制定的一种商品用条码,主要用于美国和加拿大地区。

UPC条码也有标准版和缩短版两种,标准版由12位数字构成,缩短版由8位数字构成。

标准版的UPC12的编码结构为:系统码(1位)+厂商码(5位)+商品码(5位)+校检码(1位)。

后来随着欧洲、亚洲、澳洲的需求,增加了一位国家代码,就是第一位,UPC也变成了13位了。美国和加拿大的国家码是0。

标准版的UPC13的编码结构为:国家码 (1位)+ 系统码(1位)+厂商码(5位)+商品码(5位)+校检码(1位)。

而EAN(European Article Number)码是国际物品编码协会制定的一种商品用条码,已经在全球90多个国家和地区使用,通用于全世界。

分配给中国物品编码中心的前缀区间为690-696,再由中国物品编码中心统一分配企业代码,产品代码则由制造商根据规定自己编制。

贴一张最近在国内热销的酒精制品的商品条码图,你用微信扫一扫就能看到来自中国物品编码中心的查询信息。

标准EAN13编码结构为:国家码(2/3位)+厂商码(5/4位)+商品码(5位)+校检码(1位)。

对比一下EAN和UPC的编码,你会发现这两个条码简直一模一样,宽度、高度、条码粗细,位置。不同处是
1、EAN把国家码打在左侧条码内外侧,而UPC是只讲国家码打在条码外侧
2、而最后一位5,EAN打印在条码内测,UPC打印在外侧。

所以当你看到左右两侧都有数字的时候,就是UPC码,卖到美国和加拿大的。

再回到上面看我贴得医用酒精消毒棉片,看看到底是UPC还是EAN?

因为EAN码是在UPC码基础上形成的,所以,在技术上EAN系统的光电阅读器可以阅读UPC系统的条码,而UPC系统的光电阅读器却不能阅读EAN码。

从位数上看的出区别,所以美国亚马逊的商品默认用UPC的话,一旦要上架到欧洲市场,就可以简单的在UPC编码前增加0变成13位的EAN码即可。

亚马逊规定,要在亚马逊上传商品每个商品都需要相对应的条码,UPC码或者EAN码都行。当然了EBay也有同样的要求!中国区的用户可以去亚马逊官方指定的供应商购买,网址:www.barcodestalk.com。

上面是大概的价格,当然购买中国区的到中国物品编码中心官网: http://www.ancc.org.cn/ ,价格上除了一次性加入费用,还有胶片制作费和系统维护费。

说了这么多了,你对EAN和UPC的定义、差别、价格、用途等都了解过了,再来看下Code 128,这个其实在我们仓库、生产运营中更常见,我们常见的生产工单、料号、数量、批次、波次等信息大都用这种条码形式来打印。最普通的扫描枪也能识别这个条码。Code 128可以接受标准数字和大写字母,小写字母,特殊字符,所以除了在企业内部管理,在物流、仓储领域应用非常广泛。

到此为止,我们把Infor LN ERP应用最多的条码就介绍完毕了,如果你还有其它问题,欢迎留言探讨。

Loading

Infor ERP LN有用的Session whinp1200m000: Rebuild Planned Inventory Transactions

在仓库的Inventory Planning模块,可以看到Planned Inventory Transactions(whinp1500m000)可以看每一个Item Code在某个仓库的计划进出状态及明细,当然了这里的数据也会反映在计划模块的Item Order Plan(cprrp0520m000)上,但有很多时候,因为网络中断或者其它原因造成在其它业务模块所操作的订单,未能正确的在此处进行必要更新,就造成了不同步。

比方说采购员取消一个采购订单行的时候,如果订单行取消成功了,但此处未更新,就会造成看到还有一笔Open的待收货订单,当然了跑MRP的话,也会根据此错误信息来下采购单。

其实很多时候,我们应该用事务处理,就是一旦失败,就回滚操作,但因为业务逻辑太复杂,此处并未使用事务操作。正因为如此,才有了一个标准的Session – whinp1200m000,你可以通过这个Session来模拟运行来检查一下你公司的系统数据时候有问题。

注意这里有个选项:Update Mode,默认是模拟Simulate,如果要修正数据记得勾选为Update。

Loading

Infor ERP LN/BaaN中Economic Stcok的计算公式

闲来无聊,问了几个同事,居然没有一个答对的。

有的说Economic Stock需要考虑Inventory Blocked,有人说需要考虑Committed(上图没有显示出来,因为默认不显示,而我们公司在用Commitment),核心的On Order和Allocated是大家公认的。

于是花了几分钟从代码中找到正确的公式: Economic Stock = On Hand + On Order – Allocated

function calculate.total.fields()
{
select sum(whwmd215.qhnd):cum.stoc, sum(whwmd215.qall):cum.allo,
sum(whwmd215.qord):cum.ordr, sum(whwmd215.qblk):cum.blck
from whwmd215
where whwmd215._index2 = {:whwmd215.item}
selectdo
cum.econ = cum.stoc + cum.ordr – cum.allo
selectempty
cum.stoc = 0
cum.allo = 0
cum.ordr = 0
cum.blck = 0
cum.econ = 0
endselect
display.total.fields(
“whwmd215.qhnd”, cum.stoc,
“whwmd215.qall”, cum.allo,
“whwmd215.qord”, cum.ordr,
“whwmd215.qblk”, cum.blck,
“econ.stock”, cum.econ,
“tcibd001.cuni”, tcibd001.cuni)
}

发现越来越没追求了,静搞些初级的东西。

Loading

有空加一下

近期被多人在微信、QQ问些Infor ERP LN问题,最后不欢而散。

问得人觉得,他很客气和礼貌的询问了我是否有空、是否愿意回答,觉得理所当然。而他们不知道,我碍于面子,没有直接回绝。

当我问对方是否加入了我创办的Infor ERP LN私房菜的时候,对方居然都会有一样的回答:有空加一下

看到这句话,我知道他不会加入,哪怕免费都不会。因为有些问题,我让他看我博客的分享,他都不愿意行动。

他以为我是要他的99元终生的会费,他不知道的是我在评估自己:看我义务回答了问题的时间,对别人是否有价值。

我坚信自己所做的事情是有价值的,相信只有你产生了价值认可,彼此才会共享价值。

从今以后,不再理所当然的回答任何人的LN问题。我会说:有空回你

不是我吓唬你,还没加入的,赶紧啦!

 

Loading

Infor Factory Track初印象

从多个渠道了解到Infor在Barcode,或者说WMS领域的产品Factory Track,但一直未看到过演示,也未体验操作过。近期在Jerry Huang的帮助下,终于一睹真面目。

先发个截图,需要更多截图,请加入我的知识星球:Infor ERP LN私房菜

目前有个直观印象,下一步想深入体验和研究一下,以下是我的一些感触:

亮点:

  1. 用户界面UI的确挺漂亮,特别是扁平化设计的各功能模块的图标
  2. 功能齐备:仓库的各种日常操作都可以在PDA手持设备上操作
  3. 实时通讯:与Infor ERP LN通过ION连接
  4. 独立部署:不需要跟Infor ERP LN安装在一起
  5. 兼容浏览器:相当于微信、手机自带的浏览器,那怕在平板或者电脑上都能使用用户端。

不足:

  1. 没看到原生的App,既然已经运行于安卓环境中,直接在浏览器中运行,那么很多硬件的功能就无法很好地使用,这点我想不通。
  2. 操作体验上,菜单和返回等明显太呆板,用过了微信,再用这种会发现一个返回、一个跳转就要多几次点击。

疑问:

  1. Infor官网看到Factory Track这个产品归类在Supply Chain Management,为何中文翻译为面对制造业流程自动化解决方案
  2. Infor Mongoose application development framework跟ION或本身LN的4GL相比,其定位是什么?

Loading

一段思考,鼓励自己,也希望可以帮助到一些人

近期跟10多年前就就久仰大名,加了电话到通讯录,却从未谋面的BaaN圈内知名人士、创业者熊宇,终于有了第一次面对面交流。其学业和职业的发展经历甚是与众不同,更加不同的,可以说是独特的是其创业的初心、对企业的定位、人生的理解。短暂相聚,未能尽兴,虽说几个小时的聊天,那些紧张、惊险、曲折又生动的经历足可以写一篇上万字的杂记,但我觉得还是需要去花更多时间,去写一篇关于他的更加专业的人物访谈。今天就写点,通过此次交流,带给我一些新的思考。

如果你无路可走,你会拼命寻找出路;

如果你只找到1条路,你会毫不犹豫的走下去;

但如果你有2条路可走,你一定会犹豫,到底选择走哪条路好。

成功一定有方法,失败一定有原因。

成功者的道路都是相似的:想法 》行动》挣扎》突破》成功

大多数人在挣扎过程放弃,放弃的原因不是真的坚持不住了。

是禁不住诱惑,转行了。

我们都会犯这样的错误,得不到的永远是最好的,其他行业都比我们从事的好。

做.NET遇到瓶颈了,发现当下Java工资更高,PHP更流行,Python更热门,就转型了。

做Infor LN /BaaN ERP,发现SAP不错,Oracle不错,干了没几年就放弃LN了。

做传统制造业太压抑了,没啥前景,互联网行业自由发展快,跳槽去做互联网了。

做了之后才发现到处是坑,然后就像兔子一样在各个不同领域跳来跳去,想找一个没坑的,工资高的,升职快的,赚钱容易的,直到一事无成。

机会越多不代表越好,最难的是保持专注,我过去10多年随接触领域和行业颇多,也做了不少尝试,大家可以通过博客了解到,但我的职业从未离开过Infor LN/BaaN ERP,从未离开.NET,未离开Web,从未离开制造业企业信息化。

虽然我积累的速度慢,但在这2个领域,再持续努力个几年,加上中国制造2025的到来,我相信届时不成为此方面的专家、大牛也难。

就像熊宇所创立的指北,从2001年的13家BaaN咨询顾问公司,到如今全中国才只有3-5家。大浪淘沙,现在还在坚持着的,本身就已经是成功。我很感谢熊宇所说的一句话:你能坚持10多年在写博客,本身就是中国Infor LN/BaaN ERP自媒体传播第一人了。

不管这句话是否是恭维,但我相信,从这个月初我重新定位博客和Infor ERP LN私房菜知识星球,并提出这个目标开始,我已经走在路上。无非是坚持的问题了。

我认为:自媒体的能带给大家的最大价值就是传播价值,虽然我可以创作有价值的分享,但去传播那些乐于分享的人、以及其自己的经历、经验、闪光点,才更有价值。

我相信:只有自己相信,才能更可信,才有人愿意追随、愿意支持你。

Loading