调用c4ws可被这个companySpecified害惨了

事情是这样的,一个老系统,用.NET的WebSite的模式开发的,其中用于调用Infor ERP LN的Web Services(SOAP)的方法,动态的传递company这个参数,C4WS后端始终读取到默认的公司。

这种WebReference的方式我以前没用过,都是自动拼装XML来调用C4WS的。一开始用了很多办法记录日志,想要知道到底传到后端的XML中的company是什么,到最后终于看到并没有传递正确的company,这才去找哪里控制的,终于注意到这里的companySpecified,默认值没有,但是一直是false。手动设置为true就解决了。

Loading

Infor ERP LN中序号被占用怎么解决?

如果你遇到系统断线等异常情形,可能会出现如下类似的报错。

大概的意思是某个号码被占用了。

以前的BaaN 5时代可以直接找到First Free Number这个Session,在LN中需要从Numbers Group的Session中找到相应的序列,并修改其First Free Number。

Loading

Infor LN ERP在线帮助、用户手册

又有新同事来问我有没有LN ERP的宝典,可以学习一下的。

除了让他看已经录制的微课短视频以外,还提示他善用F1来看实时的帮助文件。

最后我推荐他到Infor的官方网站来看Infor Documentationhttps://docs.infor.com/zh-cn/,这里以中文版为例,登录进去以后长这样:

然后选择ERP & Finance下的LN

这时候,你可以选择合适的ERP版本了,截止发文时间,默认是CE

你会发现有3个链接,分别对应

Infor LN UI 用户手册简体中文2021-04-29
Infor LN 联机帮助简体中文2021-07-13
Infor LN Documentation List CEEnglish2021-07-02

我们切换到10.4,也是我现在用的版本

Infor LN ERP 10.4在线手册:https://docs.infor.com/zh-cn/ln/10.4

当然了你还可以切换到其它版本,我都帮你列好了!

Infor LN ERP 10.7在线手册:https://docs.infor.com/zh-cn/ln/10.7

Infor LN ERP 10.6在线手册:https://docs.infor.com/zh-cn/ln/10.6

Infor LN ERP 10.5在线手册:https://docs.infor.com/zh-cn/ln/10.5

Infor LN ERP 10.5在线手册:https://docs.infor.com/zh-cn/ln/10.3

Loading

非常规方式处理Oracle+.NET开发全球化的时区显示

咨询了几个大牛有关.NET开发中全球化的时区显示问题,大家的意见有三个:

1、使用UTC Time记录到数据库,展示的时候根据用户所选择的时区进行转换展示
2、使用固定时区DateTime记录到数据库,展示的时候根据用户所选择的时区进行转换展示
3、记录timestamp到数据库,选择DateTime.UTCTime转为秒或毫秒级别的timestamp,展示的时候转为时间类型,并根据用户所选择的时区进行转换展示

大部分人喜欢1,其次是3,最后是2

而我今天要分享的这个Oracle数据库下的开发,有个前提就是我不能修改数据库,也不能修改写入数据库的时间是指定时区的,因为Infor LN ERP中更新此时间字段,幸运的是它本来就是UTC Time。

但是呢,我不能直接用第1条方案,因为我有些筛选条件,根据用户的日期(时间)还需要筛选数据,那么我不想:既修改展示阶段的时间时区,又修改查询时候的输入时间。

于是就有了今天的非常规方案:sessiontimezone

当我们在Oracle数据库中执行以下SQL时,可以知道数据库的时区和我当前连接的时区。

SELECT BTIMEZONE,SESSIONTIMEZONE,TZ_OFFSET(DBTIMEZONE),TZ_OFFSET(SESSIONTIMEZONE) FROM DUAL;

那么我们就可以使用:TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24,来动态的展示当前连接所在时区的时间了

SELECT TO_CHAR(A.T$CNFT + TO_NUMBER(SUBSTR(TZ_OFFSET('" + GetUserTimeZone() + "'),1,3))/24, 'YYYY-MM-DD HH24:MI:SS') AS ConfirmedTime FROM MYTABLE A

此处的GetUserTimeZone就是根据当前用户的市区设置,读取到一个“-5:00”或”6:00″形式的TimeZone。

至于用户的时区是根据用户所属的国家来还是根据用户的个人设定,这里的逻辑可以灵活设定优先级。

虽然非常规方案可以满足需要,但是不具备普遍性,性能上也会很依赖Oracle数据的配置。

如果您碰巧也有类似的场景,不妨试试这个方案。

Loading

.Net下请求Infor LN ERP WebService的5种方式

随着这几年Restful API的兴起,Web API遍地都是。以前老的WCF、WebService等的SOAP的份额越来越少。但总有些古老的应用或者企业级如ERP应用还是通过Web Service的方式提供对外集成接口。Infor LN ERP就是其中一个。

我这几年尝试了以下5中方法,与LN进行对接。

1、客户端代理类
2、动态代理类
3、WebClient
4、WebRequest
5、HttpClient

但前两种已经被我放弃了,后三种呢其实都是HTTP Request,通过标准的写法都可以很方便的与LN对接,注意两点:

1、拼接发起请求的XML
2、LN WebService返回500报错的时候,报错信息的转换
3、不要直接用using的方式使用HttpClient,因为由来已久的高并发时无法释放资源的bug,会让你崩溃。

至于后面三个方法,你可以从网络上找到一大把的Util/Helper类库,我就不贴出来了。

Loading

深入了解Infor Factory Track:8份帮助文档

www.inforxtreme.com搜索Factory Track,记录还不多,目前之后141条记录,大概50条都是Manual或者Solution,从历史的记录中看到Bridgelogix和Factory Track的联系:原来早在2010年Infor就收购了条码管理解决方案供应商Bridgelogix。

下载了7个pdf文档,自己觉得有需要的信息也汇总到了word文档。

因为涉及版权,有想要一起学习的朋友,可以加我微信索取,请勿任意传播。

全英文文档加起来有超过500页,计划1周内读完,再来准备测试环境和下一步行动:Infor Mongoose application development framework。

Loading

通过税改,看Infor ERP LN/BaaN的圈子氛围

前面发了2篇关于税改的文章,通过朋友圈发给自己的微信朋友们,同时也斗胆发送到几个自己所在的QQ群,通过各个群的一些反馈,从点滴中看到了目前整个圈子的氛围。

有些QQ群发了之后,就群主表达了欢迎之意,后面就没有人有任何反馈了;而有些群即便是有不少跟帖,但表现出的针锋相对、鄙夷、自信的确让人很费解。因涉及隐私,不便截图,就将一些QQ群的话摘录一下。

这个方案不靠谱,直接在国家税码中增加一个新税率就好,新税率的生效日期为2018-05-01

我的点评:我们不必因为自己公司的特殊应用,或未涉及的应用,而否定了别人的全盘周全考虑。但怀疑和否定的态度值得肯定!

可以直接将系统税码17的税率改成16,后台再修改名字,后台GTM修改名称把17修改为16

我的点评:这明显是IT技术思维,不是业务顾问的思考问题和解决问题的习惯。很多时候我们的确可以通过直接操作数据库来完成一些事情,但不到万不得已不能去用。应对税改的方案应该有很多,如果不放弃自己唯一的“后台思维”,怎能拥抱并拥有除此之外的N多个方案?

能不用后台改表不,我相信上面几个说的方案,运行一段时间后,系统会乱的一塌糊涂。别和我讨论这个话题啊。只有***给出解决方案是基本正确,有部分小瑕疵,不影响大局,其它都是错的。

我的点评:尽管我认同此人的“后台思维”,但并不表示你可以否定它。很多技术或顾问有个不好的习惯,不自觉的就以打击别人来提高自己,但殊不知:杀敌一千 ,自损八百的道理。还有,很多人愿意分享,不一定是因为自己非常强大才有资格分享,如果你真认为自己的方案更好、更完整,请多花点时间分享出来,不要费那么多时间去研究别人写得方案,而最终就是为了评价和贬低别人。

分享一下给我们啊,看不下去了

我的点评:真正的强者是可以接受别人的挑战的,如果自己技术和能力不行,多花点时间脑补,提高功力。激怒强者的结果未必好。但对于自高自大的强者,新人、年轻人其实无需畏惧,当你到了这个年龄,你会做得比他更优秀。智者千虑,必有一失;愚者千虑,必有一得。敢于挑战强者的勇气是需要的!

那些人直接通过GTM改的,是什么脑子哦

我的点评:虽然我也不认同直接GTM修改,但没必要通过这种损人不利己的话来显得自己的很专业,系统是人涉及的,熟悉业务的人,开发过这个系统的人,可以准确无误的仅通过数据库的操作来完成前台正常流程一模一样的数据。这并不为奇,同样我觉得这也是GTM存在的一个原因。

QQ群的交流,随着五一的来临还在持续,明显看出来,很多人看到上述的交流后,跟我有同样的感触,选择静默,继续潜水。

但我大胆呼吁:别人说得不全面,你可以补充;别人说得不对,你可以分享自己的做法;希望不管是甲方、还是乙方,不管是业务用户,还是IT用户,都能拥有包容和尊重的态度。

有一种理想的人际关系叫做:相互欣赏

即便我们做不到,但求同存异,共同发展,应该是我们的一致目标。

感谢你还一直看我啰嗦,那么最后来点干货吧,同时附上一张图,据说看懂得人都是聪明人。

关于采购订单和销售订单的税率的计算,以下是我的测试结果,如有异议,可自行测试。

采购订单上的Tax Amount是根据Planned Receipt Date(应该是Line的,不是Header的)来计算每个订单行所对应的税码在此时间生效的税率。

销售订单上的Tax Amount是根据Planned Delivery Date(应该是Line的,不是Header的)来计算每个订单行所对应的税码在此时间生效的税率。

如上图,5月1日生效的VAT17的税率为16%,那么计算的结果就是

800*0.16=128
43796.24*0.16=7007.49

如果不想批量改Open订单的Tax Code,并且Audit也没问题的话,用这个方法就行。不管你会不会用,反正我会用。

除了截图,我还附上一些代码,是通过Where Used Table Field 找到所有tcmcs032.edat的使用清单,逐个检查代码后找到的一个最简单的应用例子。估计能看此文看到这里的人都能看得懂:

function get.sing.tax()
{
	select	tcmcs032.*
	from	tcmcs032
	where	tcmcs032._index1 = {:tcmcs036.ccty, :tcmcs036.cvat}
	order by tcmcs032._index1 desc
	as set with 1 rows
	selectdo
		tax.rate = tcmcs032.pvat
	selectempty
		tax.rate = 0
	endselect
}

所以,税改的方案,每家公司都可以在自己的测试系统进行一些测试,省得盲信盲从。

比方说测试重点是老订单在新税率启用后,究竟如何操作的问题:你可以创建一些销售订单和采购订单,然后针对那个税码创建一个第二天生效的税率,接着第3天完成采购订单和销售订单的后继操作,看看到底税率和发票的操作有没有问题。

再假如说你要测试退货的问题,你可以选择一个老采购或销售订单,选择在第三天进行操作,就知道问题所在了。

Loading

重磅:增税改革Infor ERP税率调整方案及相关税务处理建议

自4月12日《制造业增值税降低,Infor ERP LN中税率调整的注意事项》发布后,我一直等待着Infor官方的消息,至今未看到。但可喜的是看到来自拓创,这家圈内很有名气的Infor ERP咨询顾问公司的一篇公众号文章,介绍LN和BaaN 4的调整内容和修改方案,还有政策解读和财务层面需要多注意的事项,真得要赞一个。

忍不住贴一张图,更多详情请访问:《增税改革Infor ERP税率调整方案及相关税务处理建议

Loading

制造业增值税降低,Infor ERP LN中税率调整的注意事项

迟迟未看到Infor中国官方或者任何一个Infor LN合作伙伴利用好这个制造业增值税调整的消息,进行一次事件营销。比方说在自己的企业官网或微信公众号告诉客户如何修改,或提供集中培训,或将制作好的文档及视频教程(现在做视频教程很简单)发给客户。如果能将图文版或视频公开,公开让所有的Baan ERP LN客户(不论是否为合作伙伴自己的客户)都能看到,相信这对任何一个Infor和合作伙伴发布方都是一种正面和积极的宣传,都能让为数不多的国内用户体验到这家公司(合作伙伴)的超高的服务理念和水准、开放的视野和境界。
就连国产ERP如金蝶、用友,我都看到朋友圈在转发,的的确确感觉到LN圈子的氛围还需提升。连微软都全力拥抱开源,而我们的Infor以及合作伙伴还未及时转变思路,拿现在的产品和服务能力与态度,迎接中国制造2025,真是任重而道远呀。
距离5月1日还有18天,我依然相信如果有Infor原厂或LN合作伙伴看到这篇文章,会有所行动。我就不啰嗦写图文的详细步骤了。大致说一下在哪里改,用到什么Session,重点说一下我觉得需要注意的事项:

一、在哪里改

二、用到哪些Session

看上图,同时附上了子Session编码如下,根据自己公司的Tax Parameters的设置和LN的版本,用到的Session有所不同,仅供参考:

1、Tax Codes – tcmcs0137m000
2、Tax Codes by Country – tcmcs0536m000
3、Single Tax Rates – tcmcs0132m000
4、Posting Data for Single Tax Codes – tfgld0571m000/tfgld0171s000
5、Tax Handling – tctac0138m000/tctax0138m000

三、需要注意的事项

1、除了创建16%的新税率用于常见的进项税和销项税,还得创建10%的新税率,替代11%
2、Posting Data for Single Tax Codes这个要在5月1日来改,正好假期,可以提前一天准备。
3、开口销售订单行(Open Sales Order Line),需要在5月1日前批量更改税率
4、开口采购订单行(Open Purchase Order Line),需要在5月1日前批量更改税率
5、历史的采购订单发票,需要在财务匹配发票时(Invoice Match)进行手动选择最新税率的编码(Tax Code)
6、有人说直接保留原来17的Tax Code,只修改Rate,然后5月1日生效不就行了吗?这也是一种办法,但是如果你的原Tax Code上带有17的字样,多少都会产生误解。但这不失为一种简洁的处理方式!

2018年4月13日补充如下:

对于Open Sales/Purchase Order lines我们还可以不去修改,如果Audit或者财务没问题的话,还可以只是更新一下原有VAT17和VAT11的税率即可,新增一条,生效期为2018年5月1日。

背景:
2018年3月28日,李克强主持召开国务院常务会议,确定深化增值税改革措施进一步减轻市场主体税负,《关于调整增值税税率的通知 财税〔2018〕32号》政策解读如下:

2018年5月1日开始施行。
制造业等行业增值税17%的税率降低为16%。
交通运输、建筑、基础电信服务及农产品等货物行业增值税11%的税率降低为10%

一般纳税人销售额认定标准由原来的50万和80万调整为500万;已申请为一般纳税人的企业在一定期限内可以再转为小规模纳税人。
部分先进制造业、现代服务业、电网企业等特定企业未抵扣完的进项税税款予以退还。
原适用17%税率且出口退税率为17%的出口货物,出口退税率调整至16%。原适用11%税率且出口退税率为11%的出口货物、跨境应税行为,出口退税率调整至10%。外贸企业2018年7月31日前购进时已按调整前税率征收增值税的,执行调整前的出口退税率;购进时已按调整后税率征收增值税的,执行调整后的出口退税率。
实施上述措施,全年将减轻市场主体税负超过4000亿元,内外资企业都将同等受益。会议指出,此举是为进一步完善税制,支持制造业、小微企业等实体经济发展,持续为市场主体减负。

Loading