关于erp:小公司用什么ERP软件合适

小公司用什么ERP软件适合?这应该是很多小型企业都会有的疑难,明明上了ERP,却发现应用起来处处水土不服: 性能冗余:很多性能宣传的时候说得天花乱坠,理论落地后才发现有的性能用得很少,甚至基本用不到。被动调整:往往是企业去配合ERP软件调整流程,而不是软件依据业务流程进行定制,后期的数据整顿、流程标准耗时耗力。老本过高:模块化的ERP软件自身价格就很高,因为性能过于简单还要组织员工个体培训,培训老本又是一笔收入。想要依据业务流程变动扩大零碎,又多出一笔二开老本,切实是很难用得起。......说了这么多,小公司到底该怎么抉择适合的ERP软件呢?上面我将带大家理解一下小公司引进ERP软件时须要思考的因素,再针对筹备上ERP软件的企业,剖析下引进怎么的ERP软件最合适。 示例中提到的零碎放在这里了,大家感兴趣的能够试一下——https://www.jiandaoyun.com(ERP模版一键装置,在线试用)对于小公司来说,什么样的ERP软件,算是好的抉择?1、老本效益高现实的ERP软件应提供正当的价格和高性价比,尤其是对于估算无限的小公司来说。抉择那些初始投资较为低廉,提供通明定价和灵便付费打算(如月付或年付)的ERP软件会更加适合。 2、上手快,用户敌对ERP零碎应易于装置和配置,页面设计直观敌对,领有清晰的导航和易于了解的功能模块,使得用户能够疾速上手,无需长时间的专业培训,缩小员工的学习曲线,进步工作效率。 3、灵活性和可扩展性强随着小公司的倒退,其业务需要可能会发生变化。因而,ERP软件应具备良好的灵活性和可扩展性,可能轻松增加新性能或模块,以适应企业的成长和变动。 4、定制化能力强尽管小公司可能不须要高度定制的解决方案,但抉择一个可能提供肯定水平定制化的ERP软件是无益的。这确保了软件可能更好地合乎公司的特定业务流程和需要。 5、易于集成好的ERP软件应可能与公司现有的软件工具(如CRM、OA等)集成,实现数据和流程的无缝对接,防止信息孤岛,进步数据一致性和工作效率。 6、技术支持弱小抉择一个提供牢靠技术支持和客户服务的ERP供应商对于确保零碎稳固运行和及时解决应用中遇到的问题十分重要。良好的技术支持可能大大降低经营危险。 最好的抉择——零代码平台搭建目前已有越来越多的中小型企业抉择零代码平台搭建ERP零碎,解决了过来被知名度较高的软件“绑架”的窘境。许多企业可能在刚开始花了一大笔钱引进SAP、金蝶等专为大型企业设计的ERP软件,却在实际操作过程中频频发现找不到与本身业务需要相匹配的性能。而零代码平台能够提供可视化的开发环境,容许非技术用户通过拖放组件、配置而非编写代码的形式,来构建应用程序。并且通常采纳SaaS订阅式付费服务,企业按月或按年领取订阅费用即可。这种形式升高了ERP系统实施的技术门槛,减速了部署过程,并缩小了老本,特地适宜资源无限的小公司。 1、疾速部署零代码平台使得ERP零碎的设计、开发和部署过程大为简化。小公司能够疾速构建出合乎本身业务需要的ERP零碎,迅速投入使用,放慢业务流程的优化和数字化转型步调。 2、性价比高传统的ERP零碎开发和施行通常须要大量的后期投资,包含购买软件许可、硬件设施以及领取开发和征询费用。零代码平台则能缩小企业对业余开发人员的依赖,显著升高了这些老本,使得小公司也可能承当得起。 3、易于定制和保护零代码平台提供的高度可定制性使得企业能够依据本人的具体需要和随时变动的市场条件,灵便调整ERP零碎的性能。同时,零碎的保护和更新也变得更加简略快捷。 4、用户敌对的操作界面零代码平台通常提供直观的操作界面和丰盛的用户领导,使得非技术背景的员工也可能轻松上手,无效进步工作效率。 5、弱小的集成能力许多零代码平台提供了丰盛的API接口和预构建的集成模块,不便公司将ERP零碎与其余业务零碎进行集成,实现数据流的无缝对接。 ERP软件应用场景这里还是以结尾提到的ERP软件为例,具体谈谈ERP软件的理论利用场景。通常来讲,ERP软件通过六大外围模块造成智能解决方案,提供从订单到发货全流程信息管理。买通进销存和生产治理的信息壁垒,帮忙制作企业升高制作老本、进步合作效率、保障产品质量。全方位买通销售、洽购、生产全线流程,适应业务需要的自定义零碎,轻松把控企业全局。 1、客户治理模块客户信息的统计与保护:业务员将客户信息录入零碎中便于统计和查问;客户信息剖析,制订战略决策:依据数据分析,实时洞察客户信息变动,如订单量减少或缩小,制订正当决策;客户访问/跟进记录:销售对客户的跟进和访问造成记录,便于查问和参考。 2、销售治理模块销售与客户签订合同,造成订单;业务员依据销售合同,制作业务流转单,明确合同中对应产品的物料 BOM 及物料需要,并指定仓库中可用的资料进行库存锁定,同时确定需洽购的资料明细;销售依据订单内容进行产品发货及发货前的质量检验,如有不合格产品进行退补货;依据合同订单、发货退货、质量检验的数据,生成销售业绩报表,员工可查问本人提成,管理者可洞察销售业绩变动。 3、洽购治理模块依据业务流转单产生的物料洽购需要,或局部非订单的备料洽购需要,对立制订洽购合同;对洽购合同进行交货期管制和物流到货跟踪,发动物料洽购入库,对品质异议物料进行洽购退货和抵偿;业务员将供应商信息录入零碎,并进行供应商状况剖析,制订最佳洽购抉择;依据洽购状况生成洽购报表,实时查看洽购数据。 4、技术治理模块依据业务流转单产生的生产需要,正当制订生产打算,并进行生产派工;依照生产打算,提前进行生产领料,准时排产,如物料有余则发动洽购申请;员工进行竣工汇报,记录工时及生产实绩,并对生产成品进行质检,统计产量和合格成品数。 5、生产治理模块依据业务流转单产生的生产需要,正当制订生产打算,并进行生产派工;依照生产打算,提前进行生产领料,准时排产,如物料有余则发动洽购申请;员工进行竣工汇报,记录工时及生产实绩,并对生产成品进行质检,统计产量和合格成品数。 6、库存管制模块依据洽购/生产/销售发动的出入库申请进行审核并实现实物库存更新;对局部物料进行其余入库/出库解决,更新零碎库存;定期盘库,确保库存准确性;对局部资料进行状态转换,更新零碎库存。 如何应用零代码平台搭建ERP零碎?只需五步,即可疾速搭建ERP零碎1、表单工具在零代码平台上,用户能够通过拖放界面来创立表单,用于数据输出和收集。在ERP零碎中,这些表单可用于收集订单信息、客户数据、库存记录等。 操作步骤:抉择所需的字段类型(如文本、日期、下拉菜单等),将它们拖到表单上,而后配置每个字段的属性(如是否必填、默认值等)。理论利用:创立客户信息录入表单、洽购订单表单等。 2、流程工具流程工具使用户可能定义和自动化业务流程,如审批流程、订单解决流程等。这些流程确保了ERP零碎中的工作依照既定的逻辑程序执行。 操作步骤:应用可视化编辑器定义流程的各个步骤,包含工作、决策点和完结点。为每个步骤调配相应的操作和责任人。理论利用:设置洽购申请的审批流程、销售订单的解决流程等。 3、仪表盘仪表盘为用户提供了一个直观的界面,展现要害性能指标和实时数据。这对于监控企业经营和做出疾速决策来说十分重要。 操作步骤:抉择须要展现的数据指标,利用图表、表格和计数器等组件将这些数据可视化。理论利用:构建库存程度仪表盘、财务状况仪表盘等。 4、知识库知识库性能容许企业集中存储和治理文档、手册和其余重要信息,有助于进步信息共享的效率,并反对员工培训。 操作步骤:创立常识分类,上传和编辑文档,设置拜访权限。理论利用:存储产品手册、操作流程指南、培训资料等。 5、数据初始化在应用ERP模板之前,须要依据理论应用需要进行数据初始化录入,如产品数据、客户数据、供应商数据、仓库数据等。实现初始化配置后,即可体验残缺的ERP业务流。 操作步骤:筹备数据文件,应用零代码平台提供的数据导入工具将数据导入零碎。依据须要配置数据映射,确保数据正确导入对应的字段中。理论利用:导入初始的客户数据库、历史订单记录、库存清单等。 以上就是全部内容,心愿对您有帮忙。

February 28, 2024 · 1 min · jiezi

关于erp:小工厂有必要使用ERP系统吗

ERP零碎(企业资源规划系统)是一种集成的管理软件,能够帮忙企业集成和治理其外围业务流程,包含生产、洽购、销售、库存治理、财务等方面。 而小工厂是否有必要应用ERP零碎,就取决于很多因素了。简略说,小工厂要不要用ERP零碎次要看你们业务需要和将来打算。如果业务简略、规模小,兴许简略工具就够了。但如果须要更好的信息流动、决策反对,或者将来有扩张打算,ERP零碎可能是个更好的抉择。衡量一下老本和理论需要,抉择适宜本人的就行!上面就先剖析一下影响小工厂应用ERP的因素,再针对正在筹备上ERP的企业,介绍一下目前最好的零碎抉择——零代码平台搭建。 本文用到的零碎放在这里了,大家能够自取>>>>https://www.jiandaoyun.com❓ERP零碎,上不上?以下是思考小工厂是否应用ERP零碎的一些因素,仅供参考,大家还是要具体情况具体分析: 规模和复杂性:小规模、简略业务构造的工厂可能不须要简单的ERP零碎。如果业务流程绝对简略,可能能够应用较为根底的管理工具来满足需要。集成需要:如果工厂有多个部门,须要不同部门之间协同工作,那么ERP零碎的集成性能将变得更为重要。ERP能够确保各个部门之间的信息晦涩,提高效率。信息可视化和决策反对:ERP零碎能够提供实时的数据和报告,有助于管理层做出更理智的决策。如果小工厂须要更好的信息可视化和决策反对,ERP零碎可能是一个无益的抉择。财务管理:如果小工厂须要更弱小的财务管理工具,可能解决简单的财务交易和报告,那么ERP零碎可能是一个有用的工具。老本和投资:思考到小工厂的规模,老本可能是一个重要因素。在决定是否采纳ERP零碎时,须要衡量零碎的老本和对业务的潜在增值。将来扩大:如果小工厂打算将来扩充规模或减少业务复杂性,采纳ERP零碎可能是一个久远的投资,有助于应答将来的挑战。综合思考这些因素,小工厂能够依据本身状况决定是否有必要应用ERP零碎,或者是否能够抉择一些更简略的管理工具来满足以后需要。 ❓上ERP零碎之前,怎么选?这里首先倡议,中小型企业优先选择轻量化的ERP管理系统;大型企业须要搭建更欠缺的ERP零碎。如果企业想要对供应商、仓储或者销售局部进行精细化治理,那么再依据估算和以上细则灵便抉择SRM零碎、WMS零碎、CRM零碎等。现在,市面上的ERP零碎很多,那么企业在抉择ERP零碎时,需联合产品能力、服务能力、背景能力来思考,这样能力实现估算利用的最优化。具体思考细则曾经给大家整顿好了: JDY作为零代码产品,最大的特色即是个性化搭建、批改利用,以适配不同行业、类型、规模企业的需要,因而JDY提供7套 ERP 场景利用模板以供选择: ✅零代码绕开落地妨碍1.计划劣势通过官网 ERP(离散制作)、ERP(流程制作)解决方案,能够为企业一站式解决降本、增效、保质等业务难题。降本:实现库存、物料、洽购的信息化治理,能够合理配置企业资源,升高企业治理老本和财务老本;增效:实时共享业务数据,员工能够在电脑/手机上随时查问,进步了员工的效率,从而为公司带来更高的效率和业绩;保质:通过物料、生产、发货三道质检工序,管控产品全生命周期品质状况。 2.超高性价比通过本计划可能收费疾速落地ERP业务,按人数免费,新增场景利用0老本,真正实现 all in one!在商业环境中,“永恒收费”的概念是不切实际的。所谓的“收费”往往只是一个吸引用户的幌子——完全免费的零碎通常会限度性能或应用权限,无奈满足企业日益增长的需要。而JDY提供免费版、标准版、企业版和独享版4个版本。免费版提供30人以内的根底性能应用,标准版5040起/年提供残缺高级性能,企业版提供更全面的开放平台,独享版反对公有部署,均反对性能&人数增长。秉持“收费可应用,付费实现更大价值的准则“,产品价格远低于市面上常见的进销存产品。 ✅选型要点分享那么面对这么多不同类型的ERP产品,企业该怎么去筛选ERP零碎呢?依据我这些年部署ERP的教训,给大家总结了以下几个须要思考的点: 1.明确企业需要首先找出短缺、瓶颈、不统一、效率低下、节约资金或生产力低下的流程或零碎,把这些流程和零碎都梳理起来。而后拉着解决方案、IT团队、最终用户,以及从事特定业务畛域的人员,去和他们探讨,听听他们的意见。 我在ERP购买的晚期阶段看到的一个常见谬误是,人们广泛关注定价、附加性能,甚至解决方案的延申和补充。这些事件的确很重要,但它不应该放在第一步就去思考。 2.比拟不同ERP产品大多数企业抉择管理系统时都会被市面上各种各样的产品弄得目迷五色,所以留神选型的时候要采取大局观的形式,不要陷在小细节的陷阱里。例如—— 是抉择传统部署形式还是云部署?企业现有的流程和业务的定制化需要是否被满足?ERP 是否与整个企业现有技术兼容?必要时,是否能够与财务和人力资源性能配合应用?而在我看来,最最重要的一个思考点其实是——ERP是否灵便并且可能适应组织一直变动的复杂性?企业的业务是在一直变动倒退的,而且时要继续扩大的,所以在选型业务零碎的时候,一个可定制,一个集成性,是最次要的两个因素。定制波及更改软件代码,配置是软件内选项的排列。而对于传统的ERP零碎来说,通常定制价格更高,所以在与 ERP 供应商单干前肯定要提出这个问题。否则,后续对于ERP零碎的保护和迭代将会成为一个无底洞。 3.落地能力和服务反对能力当企业曾经明确了本人的需要并且理解了不同ERP之间的区别,这个时候考查ERP厂商的零碎落地能力和服务反对能力就很重要了。 所选厂商对于客户体验的器重水平如何,品牌口碑如何?产品落地周期,落地老本如何,会有多少个乙方的成员参加部署?零碎测试该怎么做,公司外部该派谁去跟这个我的项目?有没有和不同部门的业务成员沟通,提炼他们对业务上的需要?零碎的易用性如何,基层员工是否疾速上手?......这些都是须要思考的问题,前期工作做不好,ERP 上线后可能会导致重大问题,甚至可能间接用不了,后期投入全副打水漂。 4.敲定一个ERP零碎这里给大家将市面上的ERP分为3级,并且列举出他们的特点,供各位老板在选型的时候参考: 第一层:这些ERP规模宏大、功能强大且低廉,适宜有足够估算的大型企业。第二层:这些零碎通常实用于注册资本在5000万-5个亿的企业,提供大量的个性和性能,旨在与快速增长的企业一起疾速扩大。第三层:年总收入在0至5000万范畴内的企业最好在这一层抉择,因为估算少,人力财力物力都跟不上,这种状况下云部署是一个很好的抉择。 ❓选定了零代码平台,怎么搭建?在理解完这样一套优良的ERP零碎后,你兴许会好奇,该如何开发这套零碎并引进公司呢?如何在平台搭建一套零碎?先放出咱们公司在用的零代码平台,给大家展现一下平台丰盛的功能模块: 表单工具通过简略的拖拽操作,即可搭建出各类数据收集表单。表单的灵便应用,可促使团队成员合作,晋升全员的工作效率。 流程工具当表单须要多方参加,按肯定程序提交数据时,就须要用到流程。流程的正确应用,有利于标准治理流程。 仪表盘通过仪表盘,可对表单收集的数据进行多维度、实时展现,不便管理层把握组织全貌,助力管理决策。 知识库通过知识库,结构化地积淀组织的制度标准、业务知识与员工教训,建设云端常识管理体系。 权限治理公司前方数据分析人员,须要全方面把握公司状况,因而领有所有表单和报表的查看权限。 公司后方客户服务人员,平时只须要用到客户相干信息记录/查问,因而只领有某表单和报表的查看权限。 贯彻“全民开发”概念目前,数字化转型曾经不只是管理层和 IT 团队的责任,而是须要更多的业务、管理人员参加其中。 ”全民开发是零代码开发平台呈现当前被提出来的概念,指的是在肯定规定下充分调动组织各角色独特参加的流程治理形式和利用分层开发方式。“企业中的不同角色都能够参加到全民开发当中来,这些角色的定位能够是: 全民开发的模式可能帮忙企业在 IT 部门、业务部门和整个组织层面放慢、加深数字化转型进度,优化工作模式,实现降本增效。那么,在应用零代码开发平台的前提下,不同的企业应该如何发展全民开发呢? 基于多家用户的服务教训,我梳理出了适宜不同规模企业的全民开发发展形式,上面将从题主所在的这种守业型企业的角度开展介绍——守业型企业是指创建工夫短,或者规模尚未发展壮大的企业,守业型企业往往没有很多业务部门,治理上以外围团队为主。 守业型企业的日常经营逻辑,根本能够简化为如下循环: 敏捷地抓住市场机会,当先一步实现产品的稳固供给,是守业型企业的生存之道;继续积攒组织能力,为下一次增长做更全面的筹备,是守业型企业的倒退之道。守业型企业既要生存,又要倒退,这决定了守业型企业具备如下特点: 守业型企业发展全民开发是最容易上手的因为在守业型企业中,提出全民开发诉求的通常是老板自己,而数字化转型工作自身又是一项“一把手”工程,所以守业型企业老板能够站在全局的高度推动全民开发落地。 守业型企业老板须要一马当先,作为公司第一位学习并上手应用JDY的开发者。通过官网的帮忙核心和模板核心,老板能够对JDY的应用、利用场景进行全面学习;接着依据企业的理论需要自行搭建业务利用,并将其投入理论的业务中进行验证。;验证实现后,胜利的教训能够被批量复制;老板能够在其助理、部门负责人中抉择学习能力强,违心成为全民开发者的人进行造就,帮忙他们把握简道云的应用,辅助他们一步步地实现利用搭建,从而逐渐丰盛企业的利用矩阵。❓员工如何高效利用CRM零碎即便公司已领有优良的ERP零碎,员工也能够通过一直晋升自我来在客户跟进中获得更好的体现。公司须要保障的:用户敌对性:确保ERP零碎界面简略直观,易于应用。如果零碎过于简单,可能会升高员工的应用积极性,甚至影响到员工的操作效率。培训和教育:提供全面的培训,确保员工理解如何正确应用ERP零碎。这包含零碎的基本功能、数据输出和查问、报表生成等。培训应该是继续的,以适应零碎更新和员工变动。设立系统管理员:指定专门的系统管理员,负责零碎的日常保护和反对。员工遇到问题时,可能迅速失去解决,不至于影响工作效率。激励和认可:激励员工踊跃应用ERP零碎,并在实践中获得成绩时给予认可和处分。这有助于建设员工对系统的信念,进步应用积极性。定期更新和降级:确保ERP零碎放弃最新状态,定期进行更新和降级。新的性能和性能改良能够进步零碎的效力,也可能吸引员工更踊跃地应用新个性。建设专门的反对渠道:提供员工一个能够随时获取帮忙的渠道,能够是在线反对、FAQ页面或专门的帮忙台。这有助于解决员工在应用ERP零碎过程中遇到的问题。制订规范操作流程:制订并推广规范的操作流程,确保员工在应用ERP零碎时有一个明确的领导。这有助于缩小谬误和混同,进步整体效率。员工本身须要留神的:为了充分利用ERP零碎,员工能够采取以下措施—— 零碎培训:加入公司提供的ERP零碎培训,学习零碎的基本功能和操作方法。了解零碎的架构和流程对于更无效地应用它是至关重要的。被动学习:被动去理解ERP零碎的新性能和更新,关注相干培训和教育资源。一直地学习能够进步本人在零碎中的熟练程度,并更好地应答工作中的需要。相熟罕用性能:专一于熟练掌握与本人工作密切相关的ERP性能。不肯定要精通所有性能,而是深刻理解与本人日常工作间接相干的局部。进步数据输出准确性:在应用ERP零碎时,确保输出的数据准确无误。高质量的数据输出有助于生成牢靠的报表和剖析,进步工作效率。积极参与:参加公司推广ERP零碎的相干流动,例如用户培训、反馈会议等。积极参与可能让员工更深刻地了解零碎,并提出改良倡议。正当利用系统资源:学会如何无效地利用ERP零碎提供的资源,例如报表、剖析工具等。这能够帮忙员工更好地监控业务情况,及时做出决策。及时反馈问题:如果在应用ERP零碎过程中遇到问题或发现系统漏洞,及时向系统管理员或相干负责人反馈。这有助于进步零碎的稳定性和功能性。❓ERP零碎搭建好了,有啥用?ERP零碎面向制造业,涵盖了 客户治理、销售治理、洽购治理、技术治理、生产治理、库存治理六大次要场景。通过六大外围模块造成智能解决方案,提供从订单到发货全流程信息管理。买通进销存和生产治理的信息壁垒,帮忙制作企业升高制作老本、进步合作效率、保障产品质量。全方位买通销售、洽购、生产全线流程,适应业务需要的自定义零碎,轻松把控企业全局。次要解决传统制造业场景的三大痛点: 生产成本高:因难以把握库存信息,导致物料节约重大;合作效率低:因订单、生产数据不通明,导致员工间沟通不及时;品质管控难:因短少欠缺的品质监管体系,导致品质问题层出不穷。 1.客户治理模块客户信息的统计与保护:业务员将客户信息录入零碎中便于统计和查问;客户信息剖析,制订战略决策:依据数据分析,实时洞察客户信息变动,如订单量减少或缩小,制订正当决策;客户访问/跟进记录:销售对客户的跟进和访问造成记录,便于查问和参考。 2.销售治理模块销售与客户签订合同,造成订单;业务员依据销售合同,制作业务流转单,明确合同中对应产品的物料 BOM 及物料需要,并指定仓库中可用的资料进行库存锁定,同时确定需洽购的资料明细;销售依据订单内容进行产品发货及发货前的质量检验,如有不合格产品进行退补货;依据合同订单、发货退货、质量检验的数据,生成销售业绩报表,员工可查问本人提成,管理者可洞察销售业绩变动。 ...

February 26, 2024 · 1 min · jiezi

关于erp:ERP交付前景在哪国产ERP项目交付质量为什么比不过SAP

ERP交付前景在哪?国产ERP我的项目交付品质为什么比不过SAP?咱们明天聊聊国产ERP我的项目为啥总是输给国外一些老牌ERP厂商,比方SAP。一边是国内豪强SAP,一边是国内的ERP厂商们,1vsN,看似简略,实则难如登天。大公司嘛,资源雄厚,教训老道;而国内的不少新创公司可能比拟灵便,有些特色,但想赶超国内程度,还是得多多致力能力迎头赶上的。 本文会从比拟业余的视角,给大家扒一扒这个问题的各个层面——历史渊源:ERP零碎在国内外的倒退历程客观事实:国产ERP在哪些方面仍需致力?为什么还是倡议:中小企业抉择国内零代码平台来搭建ERP零碎?零代码平台搭建进去的ERP零碎有哪些性能?想体验一下零碎的话,能够这里自取>>>>https://www.jiandaoyun.comERP零碎在国内外的倒退历程为什么把这部分内容单拎进去探讨呢?因为这对ERP零碎的后续倒退其实是起着决定性作用的,能够说,ERP零碎在国内外的倒退经验了多个阶段的演进过程,但这个演进过程并不是同步的。 1.起源阶段(1970s-1980s)国内倒退:ERP的起源能够追溯到20世纪70年代和80年代,过后公司开始应用MRP(物料需要打算)零碎来治理生产流程。国内倒退:在国内,随着改革开放,一些大型制作企业引入了国外的MRP零碎,以进步生产效率。2.MRP到ERP(1990s)国内倒退:MRP零碎逐步演变为ERP零碎,笼罩了更多的业务流程,包含财务、人力资源、洽购等。SAP成为国内市场上当先的ERP提供商。国内倒退:随着市场需求的增长,国内企业开始引入更全面的ERP零碎,以应答业务的复杂性。3.ERP零碎寰球遍及(2000s)国内倒退:ERP零碎在寰球范畴内失去广泛应用,不仅限于大型企业,中小型企业也开始采纳。云计算的衰亡为ERP提供了新的部署模式。国内倒退:中国企业逐步意识到ERP零碎的重要性,尤其是在退出WTO后,面对国内市场竞争的压力,ERP的利用在中国逐步遍及。4.挪动化和云计算时代(2010s-至今)国内倒退:挪动化和云计算等新技术的崛起扭转了ERP零碎的交付形式,使其更加灵便和便捷。ERP零碎的性能持续扩大,涵盖更多畛域,如大数据分析、人工智能等。国内倒退:中国企业在数字化转型的背景下,对ERP零碎的需要进一步减少。国内的ERP厂商也逐步锋芒毕露,提供更适应外乡市场的解决方案。5.将来趋势国内倒退:ERP零碎将持续交融新技术,如区块链、物联网等,以应答一直变动的业务环境。国内倒退:中国企业将更加重视数据安全、智能化和定制化需要,国产ERP厂商无望在外乡市场和国内市场上获得更大的份额。总体而言,ERP零碎在国内外的倒退历程经验了从简略的MRP零碎到笼罩多个业务畛域的全面性解决方案的演变,同时也受到技术创新和市场需求变动的影响。 为什么大多数国产ERP我的项目交付品质绝对较低无奈与SAP等国内巨头相媲美?这种状况的呈现是有多方面起因的SAP等国内公司领有宏大的团队、丰盛的寰球实践经验、严格的行业标准遵循以及跨文化沟通劣势,使其在软件开发、我的项目交付和长期反对等方面更具竞争力。国产ERP厂商须要加大在技术创新、规范遵循、国际化团队建设等方面的投入,以晋升交付品质,实现与国内巨头的竞争均衡。 1.资源投入与规模的差别首先,咱们得聊聊资源和规模的事。国内ERP巨头如SAP在研发、测试、反对等方面领有宏大的团队,资金投入也是相当宏大。相比之下,国产ERP厂商可能面临资源绝对无限的挑战,导致在软件开发、测试、和我的项目反对方面的投入有余,有时候人少钱也少,开发团队弄得有点像小作坊,得啃老本,也就没那么从容。(1)全球化竞争的影响国内巨头在寰球范畴内的竞争使得它们不得不投入大量资金和人才,以在各地区建设弱小的团队来适应多元化的市场需求。这种全球化的运作模式使得它们可能更好地了解不同国家和地区的商业环境,进步我的项目的交付灵活性。(2)资源稀缺与灵活性的挑战国产ERP厂商面临的挑战之一是在无限的资源下,如何进步我的项目交付的灵活性。不足大规模团队可能导致在适应不同客户需要和市场变动方面的绝对滞后,须要在项目管理和协调方面寻找更具创新性的解决方案。 2.技术水平和教训积攒的不同而后,咱们聊聊技术和教训,这也是个硬骨头。SAP在ERP这条路上好几十年的技术积攒不是盖的。他们能一直排汇和利用最新的技术。可咱们国产的ERP厂商们绝对年老,尚未建设起足够深厚的技术积攒和实践经验,面对疾速更新迭代的技术,显得有些顾此失彼。(1)技术创新与利用国内巨头之所以在技术水平上占优势,不仅仅是因为积攒了丰盛的教训,更因为它们可能疾速排汇和利用最新的技术。这种敏锐的技术创新意识使得它们在推出新性能、进步性能和安全性方面更具劣势。(2)跨畛域交融的挑战国产ERP厂商在技术方面可能须要更多的跨畛域交融,不仅仅关注ERP外围性能,还须要思考如何整合人工智能、物联网等新兴技术,以适应将来企业倒退的多样化需要。 3.行业标准与标准的执行差别最初,别忘了行业标准和标准这一出戏。SAP那帮大佬们可是寰球打拼多年,他们对各种国内标准一目了然,严格遵循全球通用的行业标准和标准,确保软件的稳定性和可维护性,跨文化沟通也不成问题。可是国产ERP有时候可能得在这些方面多费点心思,在制订和执行行业标准方面存在不足之处。(1)文化差异对规范了解的影响国内巨头的寰球一体化经营使得它们在各国家遵循类似的行业标准,但在国产ERP中,因为文化和语言的差别,可能存在对于行业标准了解的偏差。这要求国产厂商更加重视本土化的规范遵循,以更好地服务国内和国内客户。(2)全球化团队与多元文化协同的劣势国内巨头因为其全球化的经营模式,团队成员可能来自不同国家和文化背景,这种多元文化协同的劣势有助于更好地了解和满足不同地区客户的需要。国产ERP厂商能够从构建更多元化的团队中吸取灵感,进步与客户的沟通和理解能力。通过深刻开掘这些方面,咱们置信,在将来倒退中,国产ERP厂商能够通过更富创新性的治理和团队构建,以及更灵便的技术利用,逐渐放大与国内巨头的差距,晋升整体竞争力。 还是倡议中小企业抉择国内零代码平台主打本地化生态交融,操作体验晦涩度高,本土化施行落地经验丰富1.先说说为什么抉择国内搭建的ERP零碎SAP这种国外厂商往往基于其外围产品在中国倒退,但因网络环境、本地生态等因素,其操作体验并不能达到预期。因为本地化生态和操作习惯,即便是SAP在中国的信息化治理也须要适配本地化治理的需要,在网络监管、工作社交等方面,国内的零碎有本土化劣势。 生态集成:钉钉、企微、飞书、微信,更符合中国企业治理习惯老本劣势:在价格上更具竞争力,尤其是对于中小型企业,可能提供更经济实惠的解决方案疾速响应能力:外乡ERP零碎公司更容易迅速适应当地市场的变动,能更快地推出新性能或修复问题技术支持和服务:更疾速、更贴心的本地反对,语言和文化上更贴近用户2.再说说为什么抉择零代码平台(1)绝对于代码/低代码开发✅疾速出现:原型即产品,前端页面所见即所得,无需简单上线部署 ✅门槛低:无需代码编程能力和简单建模逻辑,会Excel就能搭建利用,企业培训班一周就能上手 ✅疾速迭代:小规模调整配置门路短,即用即弃,简直无缄默老本 ✅成绩复用:可积淀模板、利用分享,装备知识库,保留施行落地文档 (2)绝对于垂直套件二开✅挪动端功能齐全:挪动端自适应,可实现扫码、拍照,IM工具深度集成,集成音讯/待办 ✅数据分析能力:数据工厂+仪表盘,提供利用内剖析能力,适宜轻量级数据分析 ✅凋谢水平高:API接口、webhook、流程接口,文档齐全,插件平台+自建插件 (3)绝对于合作工具✅数据结构体系残缺: 业务剖析数据,是面向业务后果、面向绩效指标的,为了掂量治理指标业务流动数据,记录的是业务过程中的一笔笔单据、留痕,一个个具体的业务动作业务审计数据,是所有业务数据(次要是业务流动数据)的增删改记录业务根底数据,是次要为了业务剖析数据口径对立而设置的,还能够不便业务单据对立调用的数据,分为企业构造数据(通讯录、组织架构等)、业务构造数据(货品表、仓库表、客户表等)、援用数据(各类字典表) 只有这样的数据结构,能力满足治理上要求的过程留痕、后果有据可依——JDY的性能围绕这样的数据结构,提供了大量撑持: 表单,既面向业务根底数据管理,又面向业务流动数据填报流程表单,提供流程类的业务流动数据构建数据工厂、仪表盘,面向业务流动数据到业务剖析数据的提炼转化智能助手、聚合表、数据联动、关联数据、关联查问,面向业务根底数据到业务流动数据之间,多样的简单关系数据日志,提供了所有业务审计数据的主动生成(4)绝对于其余零代码产品✅业务经验丰富该平台在各行各业都积攒下来了一批很有声望的客户,并且继续单干到当初,比方—— 制作行业有上汽、中国烟草、一汽等知名企业建筑行业有绿城,中国电建、河南国基建设等批发行业有娃哈哈,蒙牛,港福珠宝等...... ERP零碎性能ERP即为企业资源打算治理,是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)、生产打算等集成一体化的企业管理软件。咱们公司应用的ERP零碎,其次要性能分为六个模块,客户能够依据本人的须要自由选择想要应用的性能,并在此基础上进行二次搭建,相较于传统ERP更加灵便高效,非常适合中小型企业应用。 因为由客户本人搭建,进销存、仓库治理、设施治理、生产治理等需要更加贴近业务理论因为由客户本人搭建,客户分明数据结构,自行构建的仪表盘更合乎业务管理的须要将来保护、降级成本低,企业能够自行保护,不依赖第三方厂商一体化BI,表单即数据源,集体级数据看板数据源和凋谢能力,反对excel导入,反对API、Webhook、插件,与企业自有零碎更无效交融1.客户治理企业的财务管理人员可通过ERP零碎中的决策反对智能零碎,全面理解和把握企业的经营情况,精确的剖析和制订企业的倒退方向,无效的管制和升高企业的运作老本;企业的中层管理者能够通过ERP零碎安顿好相应的采购计划、生产打算、销售打算和资金打算;企业的基层管理者能够通过ERP零碎操作下达日常的工作指令。 2.销售治理ERP零碎的销售治理是从产品的销售打算开始,对其销售产品、销售地区、销售客户各种信息的治理和统计;可对销售数量、单价、金额、利润、绩效、客户服务做出全面的剖析。 3.洽购治理ERP零碎的洽购治理能够为企业确定正当的订货量、优良的供应商和放弃最佳的平安储备;可能随时提供订购和验收的信息,跟踪和督促外购或委托加工的物料,保障货物及时达到;还能够建设供应商的档案,可能帮忙企业动态把握我的项目洽购老本和利润的管控,缩小可控的损失。 4.技术治理技术治理模块蕴含工艺治理、主料/辅料治理、工艺治理等局部;车间管理者能够通过零碎进行打算的生产、质检、完成度等工作,负责人状况、实现状况在线记录;管理层随时查看打算进度,一旦产品质量出现异常,输出单号便可查问残缺档案。 5.生产治理企业确定它的一个总生产打算,再通过零碎层层细分后,下达到各部门去执行;将企业的整个生产过程有机的联合在一起,使得企业可能无效的降低库存,提高效率;同时各个本来扩散的生产流程的主动连贯,不会呈现生产脱节,耽搁生产交货工夫。 6.库存管制ERP零碎的库存管制会联合其余模块的数据对企业的库存进行正当的管制;在保障生产所需的物资供应短缺的同时防止企业的库存积压;功能模块通常能够依据组织的需要进行定制和配置,以满足不同的业务需要,从而进步组织的效率和经营管理水平。 以上就是全部内容,更多干货欢送关注。

February 23, 2024 · 1 min · jiezi

关于erp:可视化应用构建之发布

一 ,创立分组 比方创立一个物料治理分组,能够了解为菜单,前面用户能够通过物料治理菜单关上应用。 为分组勾选页面: 而后点击公布利用 二,公布利用界面填写:抉择一个一级菜单,点【确定】 三,公布之后,配置权限,限度哪些用户能够拜访 3.1 创立角色 如下图,关上搜寻框 输出“角色治理” 点击关上角色治理页面 ,新增角色: 组织选默认组织,勾选 【物料申请治理】权限 。点保留。 3.2 给用户受权角色 搜寻受权关上受权页面: 给用户调配角色: 调配后,刷新网页,能够看到本人创立的菜单。 点击菜单能够关上应用。

September 6, 2023 · 1 min · jiezi

关于erp:一文讲透erp系统是什么

erp零碎是什么?这个看似简略的问题还真不好解答。因为当初99%的人都把ERP“零碎”和ERP“软件”混同了!ERP本来次要是专一于制造业的信息化问题,我把它叫真正的ERP“零碎”。但当初基本上只有是一个软件系统都能够叫ERP零碎,什么订单、生产、进销存、财务、仓库、客户、供应商、供应链......都能够是ERP,所以这种我把它成为单个的ERP “软件”。所以造成了市场上,几百到上百万的ERP软件都有,很多人对ERP零碎绝对确切的内含不清晰,让人感觉这一市场水分很大且很不标准...... 所以这篇就给大家把ERP零碎掰开揉碎了讲下,心愿对各位想要选型的老板有所帮忙!想要理解ERP零碎是什么,你得晓得它最后创造进去是为了解决哪些问题,而这是ERP最内核的货色—— 01 ERP零碎是咋演变进去的?ERP的创造实质上是为了解决企业大规模生产的问题。十八世纪产业革命之后,手工业作坊迅速向工厂生产的方向倒退,呈现了制造业。简直所有的企业所谋求的根本经营指标都是要以起码的资金投入而取得最大的利润。谋求这一指标的后果,则使制造业产生了很多问题—— 如何确定产品所需的原材料数量? 如何依据销售状况,制订原材料的订购打算? 如何造成残缺严密的产、供、销供应链路? 企业中“多种类小批量生产”,和“大批量生产”两种状况并存,如何辨别布局? ......针对这些问题,1965年APICS协会提出了MRP(物料需要打算)的概念,这就是ERP的前身—— MRP蕴含生产打算”,“物料清单”和“库存信息”三大块: 根据生产打算,答复"生产什么?" 利用物料清单,答复“须要什么?” 再根据库存信息,答复“现有什么原料” 最终通过MRP计算出“还短少多少原料,须要何时供给到位,以保障生产的顺利进行”。 解决了产、供、销的问题之后,企业又发现了新的问题—— “企业实现生产后到底是赚钱了还是赔钱了?到底达没达到企业的经营指标?”于是又在MRP上进一步减少了经营打算、销售与运作打算,倒退出了MRP II—— 它将治理重心放宽,转移到所有制作相干的资源上,从而解决了企业经营指标的问题。 随着第三次工业革命的到来,经济的井喷倒退,新的问题又产生了—— 企业财产从哪里来? 产品如何博得竞争? 如何在市场上放弃一贯劣势?从消费者来说,比的是企业的产品和技术,然而更深层次的,是企业治理理念及工具的较劲。而在引入ERP之前,企业内这些信息的交换大多通过纸张进行传递,迟缓而低效。✅趁着互联网的东风,ERP(企业资源打算)呈现了。颠覆改革了这些传递流程及流转形式:ERP在治理上,进行了更进一步的强化和细分——仓库治理、财务管理、销售与分销治理、人力资源管理、固定资产治理、流程治理、决策反对治理、政策法法规文件治理等。 看完这些再回去看我第一句的强调——ERP零碎和ERP软件是两个齐全不一样的货色! 02 那么怎么辨别ERP零碎和ERP软件呢?这很简略,ERP软件说白了就是具备ERP零碎中的某一块能力,比方有的ERP软件专门做财务,有的ERP软件专门做订单治理......但一个真正的ERP“零碎”,哪怕再简略也要可能治理这3大流程和1大模块—— 销售治理生产治理洽购治理以及这整个过程的财务管理我用了一个比拟轻量的零碎模板做了一张流程架构图,能很分明的解释我下面的观点。 参考零碎模板:https://www.jiandaoyun.com 这些常见ERP零碎功能模块包含但不限于以下: 订单解决供应链治理项目管理客户关系治理(CRM)仓库治理进销存治理财务管理生产工单治理...... 最初整个零碎出现的成果应该就是这样的(这是最根本的,也是企业最容易用起来的) 至于这些模块具体该怎么实现落地,靠着三两个字是说不明确的,如果大家有须要我后续会出一个专题,当然也能够间接来问我,我看到就会回的! 03 说了这么多,企业该怎么抉择ERP呢?还是那句话,首先,你得晓得你本人的企业是用某个独自的“ERP软件”就够了,还是要选型下面这种比拟全面的“ERP零碎”。一般来说,大型企业ERP针对的是常常部署现场/本地 ERP 解决方案并领有大量资源专门用于 IT 和其余反对来剖析、定制、降级和部署其软件解决方案的大型组织。而中小型企业 ERP通常是指带有业务管理应用程序的 ERP 软件系统,这些应用程序通常是为了满足中小型企业的特定需要而创立的,比方独自的生产治理、进销存或者财务管理模块。基于此,再去给企业抉择不同的ERP部署形式。最常见的 ERP 零碎类型包含云 ERP、本地 ERP和混合 ERP。 本地 ERP 软件在组织内的物理办公空间中现场施行和保护,托管在公司本人的计算机和服务器上,以便在施行后对整个零碎进行齐全管制、反对和所有权。基于云的 ERP 软件 是一种基于 Web 的解决方案,称为软件即服务 (SaaS),组织通常通过购买订阅来拜访和存储任何具备互联网连贯的设施上的数据。软件提供商反对的继续反对、更新、培训和灵便的定制。“混合”ERP 软件是指基于云的 ERP 零碎解决方案和本地 ERP 零碎解决方案的组合施行。托管和部署服务的组合因提供商而异。这些模型能够为 ERP 用户提供在交付模型之间迁徙的灵活性,或集成现有施行中不可用的劣势。我举个例子——如果是中小型企业,这里咱们以年产值5个亿为规范。5个亿以下的企业,是带不动也没有必要去部署相似于SAP、Oracl这样大型的ERP零碎的。如果目前就只须要做某一个模块,比方我就只管生产和洽购,但我未来企业还要持续发展壮大,后续是会陆续把ERP的这些重点模块都上了。这种状况下性价比最高的抉择就是抉择基于SaaS的ERP零碎,可能满足你小步快走的这个需要,而且它的自定义能力也可能满足企业的个性化需要。就拿制造业来说,上面这些基于SaaS平台搭建起来的模板全副都能够开箱即用,还能在模板的根底上自定义批改。 这些模板要是都拆分成一个个独自的传统业务零碎,那买下来可是一笔不小的费用,还不包含后续的施行和保护,更别提二开了。但如果是在SaaS平台上,买一个传统零碎的钱都齐全够上这些所有零碎了!我轻易截取了一个SaaS平台定价(简道云)能够看下—— 最初给大家整顿一个ERP零碎的选型清单,能够参考—— 你正在思考的正在思考的 ERP 软件/供应商是否:满足你的零碎要求吗?合乎/合乎公司指标?与以后现有系统集成/兼容?有合作伙伴网络/可提供本地反对吗?提供培训/反对选项?有客户的参考和倡议吗?不断改进和倒退以利用新技术并适应挑战?一旦 ERP 选项放大到与你以后零碎和指标最兼容的解决方案,就能够与组织的要害决策者一起审查零碎的长处和性能了!这样选出来的ERP零碎不会差的!erp零碎是什么? ...

September 5, 2023 · 1 min · jiezi

关于erp:建议收藏erp系统主要干什么的

随着企业的一直发展壮大,业务流程的复杂性也在逐步减少。为了无效治理和协调各个部门之间的信息和流程,erp零碎应运而生。本文将深入探讨erp零碎的定义、性能以及对企业的作用。 一、erp零碎的定义:erp,即企业资源布局(Enterprise Resource Planning)零碎,是一种集成化的软件解决方案,旨在将企业各个部门和性能之间的数据和流程整合到一个对立的平台上。这种整合性的治理形式相似于一台精细的交通管制核心,将不同路线上的车辆和行人协调治理,以确保交通顺畅流动。就像这个比喻一样,erp零碎通过集成、协调和优化企业内外部各种资源和流程,帮忙企业实现高效、协调和有序的经营。 二、erp零碎的性能当议论企业资源布局(erp)零碎的各个性能时,咱们能够深刻理解每个功能模块在理论业务中的利用和重要性。以下就以咱们公司应用的简道云erp零碎为例具体具体进行介绍: 模板指路>>>>https://www.jiandaoyun.com 可在线收费装置 1、客户治理:客户信息录入:在简道云erp零碎中,客户信息录入是建设客户数据库的第一步。通过收集客户的名称、联系人、地址、联系方式以及其余重要信息,企业可能建设起与客户的初步分割,为后续的业务拓展奠定根底。 客户信息汇总:汇总客户信息能够帮忙企业高深莫测地查看所有客户的根本信息,有助于及时理解客户数量、地区散布等状况,为市场营销和业务决策提供反对。 客户信息剖析:通过简道云erp零碎的数据分析性能,企业能够深刻开掘客户信息,理解客户的购买偏好、消费行为、订单历史等,从而更精准地进行市场定位和产品推广。 访问跟进:在erp零碎中记录和治理客户访问的打算和理论执行状况,有助于团队成员合作,确保客户关系失去无效跟进。零碎提供揭示性能,使团队可能按时跟进客户,建设良好的单干关系。 跟进记录:erp零碎中的跟进记录不仅能够保留与客户的通信记录,还能够记录客户提出的问题、需要以及团队采取的解决方案。这有助于建设长期单干关系,进步客户满意度。 2、销售治理:销售合同:容许企业不便地创立和治理合同文件。合同中能够蕴含产品描述、数量、价格、交货日期等要害信息,确保单方的权利失去保障,同时也为将来的单干提供参考根据。 业务流转:零碎可能跟踪销售业务从生成订单到交付和结算的全过程,帮忙不同部门的团队成员理解订单状态,及时调整资源分配和生产打算,进步协同效率。 发货质检:erp零碎的发货质检模块能够帮忙企业确保发往客户的产品合乎质量标准。在发货前进行质检,有助于缩小售后问题,保护企业名誉。 销售剖析:通过erp零碎提供的销售数据分析性能,企业能够综合思考销售趋势、季节性需要等因素,优化销售策略,更精确地预测市场需求,实现更高的销售额和利润。 3、洽购治理:洽购合同:洽购合同不仅是洽购流动的法律依据,也是洽购流程的外围。合同中蕴含了物料信息、交货工夫、价格协定等,有助于确保洽购的透明度和合规性。 洽购到货:帮忙企业追踪和记录物料的到货状况。通过及时更新库存信息,企业能够更好地把握物料供给状况,防止生产中断。 物料质检:洽购的物料品质间接影响产品的最终品质。erp零碎的物料质检性能能够帮忙企业确保洽购的物料合乎质量标准,升高品质危险。 洽购退货:当企业须要退还已购买的物料时,erp零碎的洽购退货性能可能帮忙企业标准退货流程,确保退货操作合规。 新增供应商:零碎记录和治理供应商信息,有助于建设稳固的供应链关系。企业能够随时查阅供应商信息,抉择适合的供应商单干。 供应商剖析:通过erp零碎的供应商剖析性能,企业能够评估供应商的绩效、交货准时率、品质体现等,帮忙企业做出更理智的供应商抉择。 4、技术治理:工艺治理:容许企业定义产品的制作工艺流程。通过具体规定每个生产步骤,企业能够确保产品质量的稳定性和一致性。 打样申请:新产品的开发通常须要通过打样阶段。erp零碎中的打样申请性能能够帮忙企业协调不同部门之间的沟通,推动新产品的开发过程。 产品信息:erp零碎保留产品的详细信息,包含规格、参数等。 5、生产治理:生产打算:用户能够制订生产打算,安顿生产工作和时间表。 生产派工:零碎反对将生产工作分派给具体的生产人员或工作组。生产领料:erp零碎容许生产人员支付所需的物料和原材料,确保生产顺利进行。 生产报工:用户能够报告理论的生产状况,记录产量、工夫等信息。生产质检:零碎反对生产过程的质量检查,确保产品达到规范要求。6、库存治理:入库治理:erp零碎记录物料和产品的入库操作,与洽购和生产流程相结合。出库治理:用户能够通过零碎进行物料和产品的出库操作,与销售和生产相关联。库存盘点:零碎反对定期或长期的库存盘点,帮忙用户核实理论库存与零碎记录的一致性。 总之,简道云erp零碎为企业提供了一个全面的治理平台,涵盖了客户关系、销售、洽购、技术、生产和库存等多个方面的性能,帮忙企业实现资源的高效利用和经营的优化。 三、erp零碎的作用当议论企业资源布局(erp)系统对企业的作用时,能够深入探讨其在各个方面的劣势和影响。 1、实时数据可视化与剖析:erp零碎可能从不同部门收集和整合数据,为企业提供实时的数据可视化和剖析性能。这使得管理层能够更清晰地理解企业的经营状况,以便做出精确的决策。通过数据分析,管理层能够发现趋势、模式和机会,从而更好地布局策略和战术。 2、库存治理与供应链优化:erp零碎能够帮忙企业实现更精细化的库存治理,防止过多的库存积压或供给有余。通过整合供应链数据,erp零碎可能优化物流和供应链运作,降低库存老本和运输成本,进步交付效率,从而满足客户需要。 3、财务管理与合规性:erp零碎在财务管理方面的作用不容忽视。它可能自动化财务流程,包含会计核算、报表生成、税务申报等,缩小人工谬误,进步财务数据的准确性和可靠性。此外,erp零碎还有助于确保企业恪守法规和合规性要求,升高潜在的法律危险。 4、客户关系治理:erp零碎能够整合客户信息,帮忙企业理解客户需要和偏好,实现更有针对性的营销和销售策略。通过CRM性能,企业能够建设更严密的客户关系,进步客户满意度,减少客户忠诚度,从而促成业务增长。 5、项目管理和合作:erp零碎有助于企业布局、执行和监控我的项目。它能够协调不同部门之间的单干,进步团队间的沟通效率,确保我的项目按时交付,达到预期指标。这有助于进步企业的项目管理能力,加强竞争力。 6、风险管理与预测:通过整合企业各个方面的数据,erp零碎能够帮忙企业更好地辨认和治理危险。它能够通过模仿和剖析预测将来可能呈现的问题,帮忙企业采取相应的预防措施,升高潜在的危险和损失。总体而言,erp零碎在古代企业中扮演着至关重要的角色,不仅帮忙企业优化经营流程、提高效率,还反对数据驱动的决策、促成翻新和灵活性,从而使企业可能更好地应答竞争和市场变动,实现可持续增长。以上就是本文全部内容,心愿对您理解erp零碎有帮忙。

August 22, 2023 · 1 min · jiezi

关于erp:业财一体化与数据集成平台实现数字化转型的关键利器

业财一体化始终是企业信息化畛域的热门话题,而随着ERP技术的降级和倒退,数据集成平台如轻易云正逐步锋芒毕露。本文探讨了不同的业财一体化架构模式,并重点介绍了轻易云数据集成平台的弱小集成劣势。该平台通过一站式的服务,包含数据采集、实时传输、数据荡涤和API治理等性能,助力企业实现多零碎无缝连贯和数据共享。同时,文章强调了在业财一体化和多异构零碎利用中,数据集成平台的重要作用,为企业的业务翻新和数字化转型提供牢靠的反对。无论是在业务中台+财务ERP还是财务系统集成方面,轻易云数据集成平台都展现出其微小的后劲和价值,助力企业实现高效、精确和可继续的业务和财务管理。[upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688873951-751692-a1.png~tplv-syqr462i7n-qeasy.image] 业财一体化始终是企业信息化畛域中经久不衰的话题。然而,随着ERP技术的一直降级,业界呈现了各种新名词,宣称业才解耦是一种颠覆性的解决方案,甚至还援用了浅近的会计学实践名词。 那么,到底产生了什么呢? 实际上,在具体的实现架构上,采纳了横向一体化的形式。通常有四种模式。第一种架构模式是依据当时形象出的标准化作业类型,从业务作业中生成业务凭证,并依据记账规定主动生成财务凭证,造成总账报表。这是会计分录的生成和记账过程。在总站阶段,还须要进行关联交易解决、固定资产账解决、手工支出确认、对账调整等一系列关照动作,生成当期的财务报表,也就是记录到报表的流程。这种业务和财务的自动化记账是经典ERP的根本准则。 [upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688873978-516976-a2.png~tplv-syqr462i7n-qeasy.image] 例如,对于制造业企业而言,应用这种架构模式能够实现从生产打算、洽购到物流配送的全过程治理。当制作企业接管到客户订单时,零碎主动依据产品配置信息生成相应的业务凭证,同时主动生成与之关联的财务凭证,实现业务和财务的一体化解决。通过自动化的记账和报表生成,企业可能更高效地进行成本核算、库存治理和财务剖析。 [upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688873995-779550-a3.png~tplv-syqr462i7n-qeasy.image] 第二种架构模式是在业务平台方开发出一个相似财务零碎的平台,依据业务类型进行形象,从业务交易中生成标准化的业务凭证。另一方面,在财务零碎方面开发出一个通用接口,依据会计核算规定生成相应的财务凭证。这个接口也被称为会计引擎,通过可配置的模板能够接管各种类型的业务凭证。这种形式实用于业务类型简单,不断涌现新业务类型,ERP零碎的业务模块无奈笼罩局部业务作业的企业,例如电商批发物流、电信等行业。 举个例子,对于电商批发物流企业而言,采纳这种架构模式能够实现从订单治理、仓储配送到销售结算的全流程治理。当电商企业接管到顾客订单时,业务平台依据订单信息主动生成相应的业务凭证,同时触发物流配送流程。在财务零碎中,会计引擎依据物流配送的核算规定主动生成相应的财务凭证,实现业务和财务的解耦。这种架构模式可能满足电商批发物流企业疾速变动的业务需要,同时确保了财务核算的准确性和可靠性。 [upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688874079-44212-a4.png~tplv-syqr462i7n-qeasy.image] 第三种架构模式具备较为欠缺的液态转换机制和零碎。晚期的国产财务软件采纳了一个会计平台来实现手工记账过程的数字化。在90年代,会计记账形式是将一项业务流动的多个原始凭证归集分录,例如发票、出库单或收款单等。手工填写一个凭证,将摘要信息、借贷分录等写在凭证上,而后将其复制到相应科目的账簿上。会计平台大多将手工账的凭证转变为在线表单,具备弱小的性能,能够配置多种核算形式和核算规定,体现了记账的灵活性。它既实用于管理水平较低的企业,也能够满足对液态一体化要求较高的企业的需要。然而,因为技术限度,晚期这类财务软件的数据库表、界面和表单是严密耦合的,与业务零碎的集成以及数据追溯能力较差。 [upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688874178-649865-a5.png~tplv-syqr462i7n-qeasy.image] 近年来,随着技术的倒退,一些新的解决方案采纳了大宽表数据仓库等技术来反对会计平台,能够记录更多的业务和财务信息。进步核算效率的同时,还可能满足治理会计的需要。因为处于业务零碎和总账零碎之间,这种形式常被称为财务中台。这种架构实用于大型团体总部的财务零碎,面对多个组织的业务零碎,同时解决核算和合并等需要。对于治理绝对较弱或业务变动较快的企业,业务零碎的前端数据品质较差,须要财务人员进行大量数据加工能力满足核算要求。 在施行业财交融数字化时,企业应依据本身的业务状况和管控要求抉择适合的架构策略。传统的ERP零碎可能无奈适应一直变动的市场环境,但一些厂商过于强调灵活性和翻新解耦,反而漠视了业财交融自身的严谨性,这也是不可取的。 这就是轻易云数据集成平台的弱小集成劣势派上用场了。轻易云数据集成平台为企业提供了一站式的服务,包含数据采集、实时数据传输、数据荡涤、API开发、API测试、API编排以及API治理等全方位性能。这使得企业能够更加便捷地实现零碎间的无代码连贯和数据集成,为业务翻新和数字化转型提供弱小的反对。 [upl-image-preview url=//pic.qeasy.cloud/2023-06-29/1687998894-344132-13333.png~tplv-syqr462i7n-qeasy.image] 在业财一体化和多异构零碎的利用中,轻易云数据集成平台施展着微小的作用。首先,它领有超过200+零碎利用和27000+数据接口,为企业提供丰盛的软件系统集成反对。企业能够轻松地将不同的业务零碎连接起来,实现数据的无缝传输和共享。其次,轻易云提供了大量的系统集成计划模板,使得数据集成变得更加便捷高效。企业能够依据本身需要抉择适宜的模板,疾速搭建集成计划,节俭了开发和配置的工夫。 [upl-image-preview url=//pic.qeasy.cloud/2023-06-29/1687998248-724619-a4.png~tplv-syqr462i7n-qeasy.image] 举个例子,思考到制造业企业可能波及到多个零碎,如生产管理系统、供应链管理系统和财务零碎,这些零碎之间的数据集成是业财一体化的要害。应用轻易云数据集成平台,企业能够轻松地连贯这些零碎,实现生产打算、洽购、库存和财务核算等各个环节的数据流动,确保数据的准确性和一致性。同时,轻易云数据集成平台继续每周减少新的平台接入,放弃与不断涌现的业务零碎的兼容性,为企业提供长期的集成反对。 另一个例子是跨国企业团体的财务系统集成。在这种状况下,企业须要面对多个组织的业务零碎和多个国家的法律和会计准则,数据集成变得尤为简单。轻易云数据集成平台的弱小集成能力能够帮忙企业解决这一挑战。通过将不同子公司的业务零碎与总部财务零碎无缝连贯,企业能够实现团体外部财务数据的共享和对立治理,确保财务报表的准确性和时效性。轻易云数据集成平台提供的丰盛性能和灵活性,使企业可能依据不同国家的会计规定进行数据转换和报表生成,满足合规要求。 [upl-image-preview url=//pic.qeasy.cloud/2023-06-29/1687998263-342473-mg-jg-2.png~tplv-syqr462i7n-qeasy.image] 综上所述,轻易云数据集成平台作为一种弱小的集成工具,与业财一体化的架构模式紧密结合,为企业提供了全方位的数据集成反对。通过轻易云数据集成平台,企业可能实现多零碎的无缝连贯,实时传输和荡涤数据,疾速开发和测试API,并灵便治理API接口。这为企业的业务翻新和数字化转型提供了牢靠的技术根底,助力企业在竞争强烈的市场中获得劣势。无论是在业务中台+财务ERP的利用还是多异构零碎的集成场景,轻易云数据集成平台都能施展其弱小的作用,助力企业实现高效、精确和可继续的业务和财务管理。 轻易云数据集成平台是一款专门针对企业财务ERP零碎打造的数据集成解决方案。咱们深知企业在财务数据处理方面的痛点,因而咱们的产品曾经反对金蝶、用友、浪潮、SAP等支流财务ERP零碎接口,能够让您一键疾速买通业财一体化。 以下是轻易云数据集成平台的一些亮点和干货: 多种ERP零碎反对轻易云数据集成平台曾经反对金蝶、用友、浪潮、SAP等支流财务ERP零碎接口,能够满足不同企业的需要。 疾速买通业财一体化通过轻易云数据集成平台的接口,企业能够疾速买通财务ERP零碎和业务零碎之间的数据壁垒,实现业财一体化。这不仅能够进步工作效率,还能够帮忙企业更好地掌握业务状况,做出更理智的决策。 高度平安保障轻易云数据集成平台在数据传输和存储方面有着高度平安保障。咱们采纳先进的数据加密技术和平安防护措施,确保企业的数据安全。 丰盛的数据处理性能轻易云数据集成平台不仅能够实现数据的主动同步和传输,还能够对数据进行荡涤、解决、剖析等操作,帮忙企业更好地利用数据,进步工作效率。 定制化服务轻易云数据集成平台还提供定制化服务,能够依据企业的具体需要,为其量身定制最适宜的数据集成解决方案。 业余技术团队反对轻易云数据集成平台领有一支业余的技术团队,他们不仅具备丰盛的教训和技术常识,还能够依据企业的需要提供业余的技术支持和征询。[upl-image-preview url=//pic.qeasy.cloud/2023-07-09/1688874524-595551-a1.png~tplv-syqr462i7n-qeasy.image]

July 9, 2023 · 1 min · jiezi

关于erp:用友U8和旺店通企业奇门单据接口集成

用友U8和旺店通·企业奇门单据接口集成 对接零碎:旺店通·企业奇门慧策最先以旺店通ERP切入商家外围治理痛点——订单治理,之后围绕电商经营治理中的外围治理诉求,先后布局流量获取、会员治理、仓库治理等其余重要经营模块。慧策的产品线从旺店通ERP起步,向前向后延长,全面布局批发企业经营,整体构建一体化智能批发解决方案,突破数据孤岛,AI植入零碎,实现智能决策,助力批发企业智能化转型。以后旗下领有店+小程序、数智门店POS、旺店通ERP、旺店通WMS、卡米全渠道、客优CRM、云筹大数据等多个PssS、SaaS产品,从前端吸引流量到后端集约化治理,助力企业智慧决策接通零碎:用友U8用友ERP-U8是一套企业级的解决方案,可满足不同的制作、商务模式下,不同经营模式下的企业经营治理,U8全面集成了财务、生产制作及供应链的成熟利用,延长客户治理至客户关系治理(CRM),并对于批发、分销畛域实现了全面整合。同时通过实现人力资源管理(HR),办公自动化(OA),保障行政办公事务、人力治理和业务管理的无效联合。用友ERP-U9是以集成的信息管理为根底,以标准企业经营,改善经营成绩为指标,最终实现从企业日常经营、人力资源管理到办公事务处理等全方位的产品解决方案。数据接口配置通过轻易云零碎数据集成平台新增创立集成计划,通过轻易云的计划市场能够一键复制,并且能够借鉴其余的计划配置实现计划制作,计划制作只须要两步,第一步先确定好对应的数据起源;源零碎:旺店通·企业奇门接口:查问退货入库单通过申请调度者配置对应的申请参数即可获取到对应的数据。指标零碎:用友U8接口:新增一张发货单,通过写入调度者匹配获取到的数据和写入的映射关系,即可主动生成合乎指标零碎:用友U8写入的数据主动产生写入队列,通过运行详情,零碎会主动帮你诊断计划的运行状况。实时监控到计划的运行状况零碎数据集成平台更加专一于数据集成与流程自动化的利用连接器,通过自研引擎,与各个平台或者服务实现对接,从而买通数据孤岛,实现数据的跨零碎自在流转,让数据真正成为企业的外围生产力。 旺店通·企业奇门接口明细调用接口:_wdt.stockin.order.query.refund_接口名称:_查问退货入库单_办法:_POST_申请参数字段字段名称类型配置值start_time开始工夫datetime end_time完结工夫datetime status状态string shop_no店铺编号string page_size分页大小string{{PAGINATION_PAGE_SIZE}}page_no页号string{{PAGINATION_START_PAGE}}响应参数字段字段名称类型配置值order_no入库单号string warehouse_no仓库编号string warehouse_name仓库名称string shop_no店铺编号string shop_remark店铺备注string src_order_no下层单据(退换单)编号string process_status退换单状态string status退货入库单状态string stockin_time更新工夫string created_time创立工夫string trade_no订单编号string trade_type零碎订单类别string order_type单据类别string order_type_name单据类别名称string goods_amount货款总额string actual_refund_amount理论退款金额string total_price扣除优惠后货款总额string post_fee邮费string other_fee其他费用string logistics_type物流类型string logistics_no物流编号string logistics_name物流名称string logistics_code物流单号string refund_no退换单编号string check_time入库审核工夫string customer_no客户编号string customer_name客户名称string nick_name客户网名string shop_name店铺名称string stockin_reason入库起因string flag_name退货单标记string platform_id平台idstring stockin_operator_name入库操作人姓名string check_operator_name审核人姓名string refund_remark退换备注string refund_operator_name退货员姓名string stockin_no入库单号string wms_outer_no内部仓库单号string wms_status内部仓库状态string wms_result后果string warehouse_id仓库idstring src_order_id业务单据idstring reason_id起因string fa_status财务同步状态string logistics_id物流公司dstring post_share_type邮资摊派类型string operator_id操作员idstring check_operator_id审核员idstring goods_type_count货品品种数string note_count便签条数string flag_id标记idstring details_list货品列表节点array details_list.stockin_id入库单主键idstring details_list.remark备注string details_list.goods_count货品数量string details_list.discount优惠金额string details_list.tax_amount税后金额string details_list.adjust_price纠错金额string details_list.right_price调整后单价string details_list.tid原订单原始单号string details_list.src_order_type订单类型string details_list.adjust_num纠错数量string details_list.modified最初批改工夫string details_list.rec_id明细表主键idstring details_list.src_order_detail_id下层单据(退换单)退回货品明细主键string details_list.spec_no商家编码string details_list.cost_price成本价string details_list.production_date生产日期string details_list.validity_days有效期天数string details_list.expire_date有效期string details_list.src_price原价string details_list.tax_price税后单价string details_list.tax税率string details_list.total_cost总成本string details_list.right_num调整后数量string details_list.num入库数量string details_list.num2辅助数量string details_list.right_cost调整后总金额string details_list.brand_no品牌编号string details_list.brand_name品牌名称string details_list.goods_name货品名称string details_list.prop2单品自定义属性2string details_list.goods_no货品编号string details_list.spec_name规格名称string details_list.spec_code规格编号string details_list.goods_unit根本单位string details_list.batch_no入库批次string details_list.batch_remark批次备注string details_list.position_no货位编号string details_list.oid原订单原始子单号string details_list.org_stockin_detail_id原始入库单明细string details_list.spec_iderp商品主键string details_list.batch_id批次string details_list.position_id货位idstring details_list.unit_id辅助单位string details_list.base_unit_id根本单位string details_list.unit_ratio单位比率string details_list.expect_num冀望数量string details_list.cost_price2辅助价格string details_list.share_post_cost邮资摊派老本string details_list.share_post_total邮资摊派总成本string details_list.created创立工夫string 用友U8接口明细接口:_api/returnorder/add_接口名称:_新增一张发货单_接口办法:_POST_申请参数字段名称类型define4单据头自定义项4stringentry.free10自在项10stringentry.num件数stringentry.define30单据体自定义项9stringdefine11单据头自定义项11stringentry.define33单据体自定义项12stringdefine13单据头自定义项13stringcode单据号stringentry.free7自在项7stringentry.define22单据体自定义项1stringdefine9单据头自定义项9stringentry.rowno行号stringentry.quantity数量stringentry.unit_code辅计量单位stringentry.define29单据体自定义项8stringdefine3单据头自定义项3stringentry.define34单据体自定义项13stringentry.define36单据体自定义项15stringentry.ExpirationItem有效期计算项stringdefine16单据头自定义项16stringentry.overdate生效日期stringcusname客户stringentry.free1自在项1stringentry.natprice本币单价stringdeptcode部门编码stringverifier审核人stringentry.free2自在项2stringoperation_type业务类型stringentry.discount2扣率2(%)stringremark备注stringentry.free5自在项5stringcmobilephone收货联系人手机stringentry.ExpirationDate有效期至stringentry.batch批号stringentry.free8自在项8stringentry.define32单据体自定义项11stringdefine15单据头自定义项15stringentry.unitrate换算率stringentry.imassdate保质期stringentry.quotedprice报价stringdeptname部门名称stringentry.item_code我的项目编码stringentry.price单价stringcdeliveradd收货地址stringentry.define27单据体自定义项6stringsaletypename销售类型stringentry.paramsKey申请参数keystringentry.define24单据体自定义项3stringentry.define28单据体自定义项7stringdefine7单据头自定义项7stringcustcode客户编码stringdefine8单据头自定义项8stringdefine6单据头自定义项6stringentry.nattax本币税额stringentry.sum价税共计stringcofficephone收货联系电话stringdefine2单据头自定义项2stringentry.define37单据体自定义项16stringsaletype销售类型编码stringentry.dmdate生产日期stringentry.inventory_code存货编码stringentry.free6自在项6stringmaker制单人stringdefine14单据头自定义项14stringentry.define26单据体自定义项5stringentry.define25单据体自定义项4stringentry.tax税额stringentry.cinvm_unit主计量单位stringentry.warehouse_code仓库编码stringentry.natmoney本币金额stringccontactname收货联系人stringcdeliverunit收货单位stringentry.warehouse_name仓库名称stringpersonname人员stringentry.inventory_name存货名称stringdefine1单据头自定义项1stringdefine10单据头自定义项10stringentry.cmassunit保质期单位stringpersoncode人员编码stringentry.free3自在项3stringentry.define35单据体自定义项14stringentry.natdiscount本币折扣额stringentry.taxrate税率stringentry.natsum本币价税共计stringcloser敞开人stringentry.define31单据体自定义项10stringdate单据日期stringentry.free9自在项9stringentry.free4自在项4stringentry.taxprice含税单价stringentry.discount折扣额stringstate订单状态stringentry.ExpiratDateCalcu有效期推算形式stringentry.socode销售订单号stringentry.invstd存货规格stringentry.ccomunitcode主计量单位编码stringdefine5单据头自定义项5stringentry分录arrayentry.money无税金额stringcusabbname客户简称stringentry.define23单据体自定义项2stringdefine12单据头自定义项12stringentry.discount1扣率(%)string零碎买通详情通过无代码的数据集成与数据建模的智能数据管道技术,帮忙企业将所有应用程序、数据库、事件和文件等数据信息提取到数据仓库中,并疾速将扩散的数据转化为数据集、API、自动化流程等开箱即用的数据服务。配置接口的模式对接旺店通·企业奇门和用友U8,使得单据无缝互通。打造企业外部数据一体化,让企业日常经营治理实现麻利数据化经营。实现供应链业务信息流的互通,同时反对供应链数据分析流程自动化,后果推送,推动相干供应链问题优化。及时买通供应链孤岛,实现数据驱动供应链协同,进一步晋升企业竞争力。 ...

January 27, 2023 · 1 min · jiezi

关于erp:从旺店通企业奇门到用友U8通过接口集成数据

接入零碎:旺店通·企业奇门慧策(原旺店通)是一家技术驱动型智能批发服务商,基于云计算PaaS、SaaS模式,以一体化智能批发解决方案,帮忙批发企业数字化智能化降级,实现企业规模化倒退。对接零碎:用友U8用友U8+承载了用友人十余年来为成长型企业的信息化管理所倾泻的心血,它以U8财务业务一体化、U8ERP、U8All-in-One、U8+形象随同中国经济的高速倒退一路走来,见证了成长型企业信息化从7个利用模块到127个产品及行业利用、从简略治理到粗放治理到精密治理、从部门级利用到企业级利用到供应链级利用、从部分到集成到全面到软件及云利用、从多数人利用到全员利用、从中国走向亚太走向世界的倒退历程。多零碎对接计划配置异构零碎具备十分丰盛的业务流程、简单的零碎架构和服务接口。在很多状况下,这两个零碎都是分别独立部署和运行的,各自领有不同的技术栈和编程模型,甚至两者在零碎平台、技术平台和编程语言上是齐全异构的。那么对接就须要依据接口配置对应的规定,例如取数就要依据查问接口获取旺店通·企业奇门的数据,并且依据对应的条件进行取数,指标零碎就必须依据指标零碎的格局,以及获取的数据进行加工解决后进行写入到用友U8中。轻易星散成平台的可视化配置轻松实现。 旺店通·企业奇门接口明细调用接口:_wdt.trade.query_接口名称:_订单查问_办法:_POST_申请参数字段字段名称类型配置值status订单状态string start_time开始工夫string022-04-12 09:00:11end_time完结工夫string022-04-12 09:59:11src_tid原始单号string trade_no订单编号string shop_no店铺编号string warehouse_no仓库编号string goodstax应用税率string has_logistics_no物流单号限度string src是否返回交易流水号、付款状态、付款工夫string logistics_no物流单号string page_size分页大小string{{PAGINATION_PAGE_SIZE}}page_no页号string{{PAGINATION_START_PAGE}}响应参数字段字段名称类型配置值trade_no订单编号string shop_no店铺编号string shop_name店铺名称string shop_remark店铺备注string warehouse_type仓库类型string warehouse_no仓库编号string src_tids原始单号string trade_status订单状态string consign_status发货状态string trade_type订单类型string freeze_reason解冻起因string fenxiao_type分销类别string fenxiao_nick分销商名称string trade_time下单工夫string customer_name客户名称string customer_no客户编码string pay_account买家付款账号string buyer_nick客户网名string receiver_name收件人string receiver_province收件人省份string receiver_city收件人城市string receiver_district收件人地区string receiver_address地址string receiver_mobile手机string receiver_telno电话string receiver_zip邮编string receiver_area省市县string receiver_ring区域string receiver_dtb大头笔string to_deliver_time派送工夫string bad_reason异样订单string logistics_id物流公司IDstring logistics_name物流公司名称string logistics_code物流公司编号string logistics_type物流形式string logistics_no物流单号string shop_id店铺idstring warehouse_id仓库idstring check_step审核步骤string unmerge_mask未合并标记string delay_to_time提早解决string customer_type 客户类型string customer_id 买家idstring receiver_country 收件人国家string pre_charge_time 预配送工夫string is_prev_notify是否京配string note_count便签条数string buyer_message_count买家留言条数string cs_remark_count客服备注条数string cs_remark_change_count客服备注变动string discount_change优惠变动金额string trade_prepay 应用的预贷款string pi_amount分期付款金额string other_cost其它老本string volume体积string sales_score销售积分string flag_id标记idstring is_sealed 不可合并拆分string gift_mask 赠品标记string split_from_trade_id拆分订单,原单IDstring logistics_template_id 物流单模板IDstring sendbill_template_id发货单模板idstring revert_reason 驳回起因string cancel_reason勾销起因string is_unpayment_sms 催未付款订单音讯发送标记string package_id包装idstring trade_mask订单标记位string reserve 保留string buyer_message买家留言string cs_remark客服备注string remark_flag标旗string print_remark打印备注string goods_type_count货品品种数string goods_count货品总数string goods_amount货品总额string post_amount邮资string other_amount其它费用string receivable应收金额string dap_amount款到发货金额string cod_amountCOD金额string ext_cod_fee买家COD费用string goods_cost货品预估老本string post_cost邮资老本string profit预估毛利string tax税额string invoice_title发票低头string salesman_id业务员string checker_id审核人string fullname业务员姓名string checker_name审核人string fchecker_id财审人string checkouter_id签出人string stockout_no出库单号string flag_name标记名称string trade_from订单起源string single_spec_no货品商家编码string raw_goods_count原始货品数量string raw_goods_type_count原始货品品种数string currency币种string split_package_num线上包裹拆分数string invoice_id发票IDstring version_id版本号string id_card_type证件类别string id_card证件号码string goods_list货品列表节点array goods_list.trade_iderp订单主键string goods_list.platform_id平台string goods_list.delivery_term发货条件string goods_list.refund_status退款状态string goods_list.pay_time子单付款工夫string goods_list.large_type大件类型string goods_list.discount总折扣金额string goods_list.paid已付string goods_list.weight估重string goods_list.tax_rate税率string goods_list.commission佣金string goods_list.invoice_type发票类别string goods_list.invoice_content发票内容string goods_list.modified最初批改工夫string goods_list.created创立工夫string goods_list.rec_iderp子订单主键string goods_list.spec_iderp内商品主键string goods_list.src_oid子订单编号string goods_list.platform_goods_id平台货品IDstring goods_list.platform_spec_id平台商品IDstring goods_list.suite_id组合装IDstring goods_list.flag区分子单拆分的唯一性标记string goods_list.src_tid原始订单编号string goods_list.gift_type赠品形式string goods_list.guarantee_mode担保形式string goods_list.bind_oid关联发货string goods_list.num下单数量string goods_list.price标价string goods_list.actual_num实发数量string goods_list.refund_num售后退款数量string goods_list.order_price成交价string goods_list.share_price摊派后价格string goods_list.adjust手工调整价string goods_list.share_amount摊派后总价string goods_list.share_post摊派邮费string goods_list.goods_name货品名称string goods_list.prop2自定义属性2string goods_list.barcode主条码string goods_list.goods_id货品idstring goods_list.goods_no货品编号string goods_list.spec_name规格名string goods_list.spec_no商家编码string goods_list.spec_code规格码string goods_list.suite_no组合装编码string goods_list.suite_name拆自组合装string goods_list.suite_num组合装数量string goods_list.suite_amount组合装摊派后总价string goods_list.suite_discount组合装优惠string goods_list.share_amount2 share_amount备份值string goods_list.is_print_suite是否打印组合装string goods_list.is_zero_cost 是否容许0老本string goods_list.stock_reserved 库存保留状况string goods_list.is_consigned平台已发货string goods_list.is_received是否打款string goods_list.is_master  是否为主子订单string goods_list.api_goods_name平台货品名称string goods_list.api_spec_name平台规格名称string goods_list.goods_type货品类别string goods_list.from_mask原始单标记string goods_list.cid类目idstring goods_list.remark备注string goods_list.base_unit_id根本单位string goods_list.unit_name根本单位名称string goods_list.pay_id交易流水单号string goods_list.pay_status子单付款状态string 用友U8接口明细接口:_api/saleorder/add_接口名称:_新增一张销售订单_接口办法:_POST_申请参数字段名称类型形容code订单号string sendaddress发货地址string ccusperson联系人string date日期string businesstype业务类型string ccuspersoncode联系人编码string typecode销售类型编码string caddcode收货地址编码string typename销售类型string define1单据头自定义项1string state单据状态string custcode客户编码string define2单据头自定义项2string cusname客户名称string define3单据头自定义项3string cusabbname客户简称string define4单据头自定义项4string define5单据头自定义项5string deptcode部门编码string define6单据头自定义项6string deptname部门名称string define7单据头自定义项7string personcode人员编码string define8单据头自定义项8string personname人员string dpremodatebt预竣工日期string define9单据头自定义项9string dpredatebt预发货日期string define10单据头自定义项10string define11单据头自定义项11string define12单据头自定义项12string define13单据头自定义项13string define14单据头自定义项14string define15单据头自定义项15string define16单据头自定义项16string memo备注string maker制单人string verifier审核人string closer敞开人string entry明细array entry.taxrate税率,默认16string entry.inventorycode存货编码string entry.inventoryname存货string entry.invstd规格型号string entry.unitcode销售单位编码string entry.unitname销售单位string entry.unitrate换算率string entry.quantity数量string entry.num件数string entry.unitprice单价string传入会主动从新计算相干价格及金额。如果传入了含税单价,以含税单价为准主动计算。entry.quotedprice报价string entry.taxunitprice含税单价,传入会主动从新计算相干价格及金额。string entry.money无税金额string entry.sum价税共计string entry.discount折扣额string entry.natdiscount本币折扣额string entry.discountrate扣率(%)string entry.discountrate2扣率2(%)string entry.natmoney本币金额string entry.natunitprice本币单价string entry.tax税额string entry.nattax本币税额string entry.natsum本币价税共计string entry.free1自在项1string entry.free2自在项2string entry.free3自在项3string entry.free4自在项4string entry.free5自在项5string entry.free6自在项6string entry.free7自在项7string entry.free8自在项8string entry.free9自在项9string entry.free10自在项10string entry.define22单据体自定义项1string entry.define23单据体自定义项2string entry.define24单据体自定义项3string entry.define25单据体自定义项4string entry.define26单据体自定义项5string entry.define27单据体自定义项6string entry.define28单据体自定义项7string entry.define29单据体自定义项8string entry.define30单据体自定义项9string entry.define31单据体自定义项10string entry.define32单据体自定义项11string entry.define33单据体自定义项12string entry.define34单据体自定义项13string entry.define35单据体自定义项14string entry.define36单据体自定义项15string entry.define37单据体自定义项16string entry.bgift是否赠品string(0=非赠品;1=赠品)entry.rowno行号string entry.paramsKey申请参数keystring 响应参数字段名称类型形容primaryWriteback回写参数object primaryWriteback.ididstring primaryWriteback.tradeidtradeidstring primaryWriteback.callBackStrategy回写计划object primaryWriteback.callBackStrategy.strategyId计划IDstring primaryWriteback.callBackStrategy.ididstring primaryWriteback.callBackStrategy.tradeidtradeidstring 零碎买通详情从API服务总线层面解决企业烟囱式业务系统集成现状 相互连接企业各业务零碎,实现流程端到端买通,复用已有的业务零碎能力,让集成架构、服务关系更清晰 应用对立的API治理平台,对API进行显性化、可视化,使所有API服务成为企业的数字资产,晋升API利用率,施展业务零碎价值,实现企业IT资产的可插拔、可复用、可组成。 ...

January 21, 2023 · 2 min · jiezi

关于erp:赛意SMOM和金蝶云星空单据接口对接

赛意SMOM和金蝶云星空单据接口对接 数据源零碎:金蝶云星空金蝶K/3Cloud在总结百万家客户治理最佳实际的根底上,提供了规范的管理模式;通过规范的业务架构:多会计准则、多币别、多地点、多组织、多税制利用框架等,无效反对企业的经营治理;K/3Cloud提供了规范的业务建模:35种规范ERP畛域模型、1046种模型元素、21243种模型元素属性组合,288个业务服务构件,让企业及搭档可疾速构建出行业化及个性化的利用。对接零碎:赛意SMOM赛意信息旗下产品-赛意制作经营管理系统SMOM产品通过华为云云商店考核,正式入驻华为云商店联营商品。通过联营联运模式,单方单干可能深刻产品、解决方案、生态等多个畛域。零碎对接接口配置通过轻易云零碎数据集成平台:数据集成计划。抉择开始创立数据集成计划菜单。在计划配置表单中抉择对应的源业务零碎:金蝶云星空,而后抉择对应的连接器。抉择对应的executeBillQuery作为数据对接起源。而后再写入指标平台配置指标零碎为赛意SMOM,并且抉择对应连接器(对于赛意SMOM的接口如何连贯能够在轻易云数据集成社区论坛bbs.qeasy.cloud中找到相干信息)。抉择好对应的InfWebApiController.SaveSuppliers接口作为数据写入动作实现第一步的接口配置。 金蝶云星空接口明细API:_executeBillQuery_NAME:_供应商查问_METHOD:_POST_申请参数接口字段字段名称预设值形容FSupplierIdFSupplierIdFSupplierId FNumber编码FNumber FName名称FName FCreateOrgId_FNumber创立组织FCreateOrgId.FNumber FUseOrgId_FNumber应用组织FUseOrgId.FNumber FDescription形容FDescription FShortName简称FShortName FMinPOValue最小订单量FMinPOValue小数FCountry_FNumber国家FCountry.FNumber单选辅助材料列表FBusinessStatus业务状态FBusinessStatus单据状态FProvincial_FNumber地区FProvincial.FNumber单选辅助材料列表FFreezeLimit解冻范畴FFreezeLimit多选下拉列表FAddress通讯地址FAddress多行文本FZip邮政编码FZip文本FFreezeDate解冻日期FFreezeDate日期FPurchaserGroupId_FNumber洽购组FPurchaserGroupId.FNumber根底材料FParentSupplierId_FNumber汇总公司FParentSupplierId.FNumber根底材料FLanguage_FNumber语言FLanguage.FNumber单选辅助材料列表FWebSite公司网址FWebSite多行文本FCustomerId_FNumber对应客户FCustomerId.FNumber根底材料FPayCurrencyId_FNumber结算币别FPayCurrencyId.FNumber根底材料FSettleTypeId_FNumber结算形式FSettleTypeId.FNumber根底材料FPayCondition_FNumber付款条件FPayCondition.FNumber根底材料FSettleId_FNumber结算方FSettleId.FNumber根底材料FPayAdvanceAmount单次预付额度FPayAdvanceAmount小数FTaxType_FNumber税分类FTaxType.FNumber单选辅助材料列表FTaxRegisterCode税务登记号FTaxRegisterCode文本FTendType_FNumber经营类型FTendType.FNumber单选辅助材料列表FChargeId_FNumber收款方FChargeId.FNumber根底材料FInvoiceType发票类型FInvoiceType下拉列表FTaxRateId_FNumber默认税率FTaxRateId.FNumber根底材料FFinanceDesc形容FFinanceDesc多行文本FTrade_FNumber行业FTrade.FNumber单选辅助材料列表FPRICELISTID_FNumber默认价目表FPRICELISTID.FNumber根底材料FDiscountListId_FNumber默认折扣表FDiscountListId.FNumber根底材料FFoundDate创建日期FFoundDate日期FNeedConfirm须要确认FNeedConfirm复选框FProviderId_FNumber供货方FProviderId.FNumber根底材料FLegalPerson法人代表FLegalPerson文本FWipStockId_FNumber默认WIP仓库FWipStockId.FNumber根底材料FRegisterFund注册资金(万元)FRegisterFund小数FRegisterCode工商登记号FRegisterCode文本FVmiBusinessVMI业务FVmiBusiness复选框FSOCIALCRECODE对立社会信用代码FSOCIALCRECODE文本FTendPermit生产经营许可证FTendPermit文本FVmiStockId_FNumberVMI仓库FVmiStockId.FNumber根底材料FRegisterAddress注册地址FRegisterAddress多行文本FDeptId_FNumber负责部门FDeptId.FNumber根底材料FStaffId_FNumber负责人FStaffId.FNumber根底材料FSupplierClassify_FNumber供应商分类FSupplierClassify.FNumber单选辅助材料列表FSupplyClassify供给类别FSupplyClassify下拉列表FSupplierGrade_FNumber供应商等级FSupplierGrade.FNumber单选辅助材料列表FGroup供应商分组FGroup分组FCompanyClassify_FNumber公司类别FCompanyClassify.FNumber单选辅助材料列表FCompanyNature_FNumber公司性质FCompanyNature.FNumber单选辅助材料列表FCompanyScale_FNumber公司规模FCompanyScale.FNumber单选辅助材料列表FCorrespondOrgId_FNumber对应组织FCorrespondOrgId.FNumber组织FStartDate失效日期FStartDate日期FEndDate生效日期FEndDate日期Limit最大行数{{PAGINATION_PAGE_SIZE}}金蝶的查问分页参数StartRow开始行索引{{PAGINATION_START_ROW}}金蝶的查问分页参数TopRowCount返回总行数 金蝶的查问分页参数FilterString过滤条件FAuditDate>='{{LAST_SYNC_TIME dateTime}}'示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=FieldKeys需查问的字段key汇合 金蝶分录主键ID格局:FPOOrderEntry_FEntryId,其它格局 FPurchaseOrgId.FNumberFormId业务对象表单IdBD_Supplier必须填写金蝶的表单ID如:PUR_PurchaseOrder响应参数接口字段字段名称预设值形容FSupplierIdFSupplierId FNumber编码 FName名称 FCreateOrgId_FNumber创立组织 FUseOrgId_FNumber应用组织 FDescription形容 FShortName简称 FMinPOValue最小订单量 小数FCountry_FNumber国家 单选辅助材料列表FBusinessStatus业务状态 单据状态FProvincial_FNumber地区 单选辅助材料列表FFreezeLimit解冻范畴 多选下拉列表FAddress通讯地址 多行文本FZip邮政编码 文本FFreezeDate解冻日期 日期FPurchaserGroupId_FNumber洽购组 根底材料FParentSupplierId_FNumber汇总公司 根底材料FLanguage_FNumber语言 单选辅助材料列表FWebSite公司网址 多行文本FCustomerId_FNumber对应客户 根底材料FPayCurrencyId_FNumber结算币别 根底材料FSettleTypeId_FNumber结算形式 根底材料FPayCondition_FNumber付款条件 根底材料FSettleId_FNumber结算方 根底材料FPayAdvanceAmount单次预付额度 小数FTaxType_FNumber税分类 单选辅助材料列表FTaxRegisterCode税务登记号 文本FTendType_FNumber经营类型 单选辅助材料列表FChargeId_FNumber收款方 根底材料FInvoiceType发票类型 下拉列表FTaxRateId_FNumber默认税率 根底材料FFinanceDesc形容 多行文本FTrade_FNumber行业 单选辅助材料列表FPRICELISTID_FNumber默认价目表 根底材料FDiscountListId_FNumber默认折扣表 根底材料FFoundDate创建日期 日期FNeedConfirm须要确认 复选框FProviderId_FNumber供货方 根底材料FLegalPerson法人代表 文本FWipStockId_FNumber默认WIP仓库 根底材料FRegisterFund注册资金(万元) 小数FRegisterCode工商登记号 文本FVmiBusinessVMI业务 复选框FSOCIALCRECODE对立社会信用代码 文本FTendPermit生产经营许可证 文本FVmiStockId_FNumberVMI仓库 根底材料FRegisterAddress注册地址 多行文本FDeptId_FNumber负责部门 根底材料FStaffId_FNumber负责人 根底材料FSupplierClassify_FNumber供应商分类 单选辅助材料列表FSupplyClassify供给类别 下拉列表FSupplierGrade_FNumber供应商等级 单选辅助材料列表FGroup供应商分组 分组FCompanyClassify_FNumber公司类别 单选辅助材料列表FCompanyNature_FNumber公司性质 单选辅助材料列表FCompanyScale_FNumber公司规模 单选辅助材料列表FCorrespondOrgId_FNumber对应组织 组织FStartDate失效日期 日期FEndDate生效日期 日期赛意SMOM接口明细接口:_SmomWebApiController.SaveSuppliers_接口名称:_保留供应商数据_接口办法:_POST_申请参数字段名称类型形容Description形容string ShortName短名称string EnglishName英文名称string SalesArea销售区域string DutyParagraph税号string Contacts联系人string ContactNumber联系人电话string ContactAddress联系人地址string Email邮件string State状态string PostalCode邮政编码string Remark备注string ErpKeyErpKeystring Code编码string Name名称string InfkeyInfkeystring IsDelete是否删除string 零碎数据对接可视化配置,即使是一般业务人员也能够疾速轻松对接多个平台,解决企业面临的数据孤岛,数据凌乱等问题,实现数据可见、可用、可经营。进行统一化,模块化,标准化的服务能力和输入,实现对业务端数据需要的精准满足和高效响应,也能够在业务数据需要的一直减少下,让企业有整套的可复用的api资产以更换,反对业务的失常运行,节俭开发成本。在不同的着重点和利用上解决数据共享,实现平台之间的独立治理。 ...

January 20, 2023 · 1 min · jiezi

关于erp:伯俊ERP与金蝶云星空对接集成连通应收单新增

伯俊ERP与金蝶云星空对接集成表头表体组合查问连通应收单新增(应收单-规范应收单(KD应收单销售退) 数据源零碎:伯俊ERP将来,伯俊科技也会砥砺前行,一直为品牌提供更全面的批发终端致胜利器。伯俊科技始终保持翻新倒退,摸索大批发行业发力方向及冲破机会,一直总结提炼以后及将来的新场景新玩法,优化降级本身体系的同时陪伴客户持续性倒退。指标零碎:金蝶云星空金蝶K/3Cloud在总结百万家客户治理最佳实际的根底上,提供了规范的管理模式;通过规范的业务架构:多会计准则、多币别、多地点、多组织、多税制利用框架等,无效反对企业的经营治理;K/3Cloud提供了规范的业务建模:35种规范ERP畛域模型、1046种模型元素、21243种模型元素属性组合,288个业务服务构件,让企业及搭档可疾速构建出行业化及个性化的利用。数据接口配置通过轻易云零碎数据集成平台新增创立集成计划,通过轻易云的计划市场能够一键复制,并且能够借鉴其余的计划配置实现计划制作,计划制作只须要两步,第一步先确定好对应的数据起源;源零碎:伯俊ERP接口:表头表体组合查问通过申请调度者配置对应的申请参数即可获取到对应的数据。指标零碎:金蝶云星空接口:应收单新增,通过写入调度者匹配获取到的数据和写入的映射关系,即可主动生成合乎指标零碎:金蝶云星空写入的数据主动产生写入队列,通过运行详情,零碎会主动帮你诊断计划的运行状况。实时监控到计划的运行状况 伯俊ERP接口明细API:_/rest/excute_NAME:_表头表体组合查问_METHOD:_POST_申请参数接口字段字段名称预设值形容start页码 从后果汇合的哪一行开始获取记录(从0计算)range页数500最多获取start行开始的多少条记录,思考零碎 性能,最大值将由零碎参数设定 (Bos3.0.properties#rest.query.max.range ,缺省为100)count是否计算总数true columns须要查问的字段ID,DOCNO须要查问的字段,不传默认查全副params过滤参数 构造,称为Expression,为嵌套二叉树构造params.expr1参数-1 通过combine指明两个Expression之间的关系params.expr1.expr1参数-1 params.expr1.expr1.condition条件WRITE_TIME between to_date('{{LAST_SYNC_TIME datetime}}','yyyy-mm-dd hh24:mi:ss') and to_date('{{CURRENT_TIME datetime}}','yyyy-mm-dd hh24:mi:ss') params.expr1.expr1.column字段 params.expr1.expr1.expr2参数-2 params.expr1.expr1.expr2.condition条件2 params.expr1.expr1.expr2.column字段BILLTYPE params.expr1.expr1.expr2.combine组合关系AND“and” “or” “and not” “or not”,若设置,必填expr1和expr2属性,疏忽 column和condition。params.expr1.expr2参数-2 params.expr1.expr2.condition条件replace(BILLDATE,'-')>=20220601 params.expr1.expr2.column字段 params.expr1.expr2.combine组合关系AND“and” “or” “and not” “or not”,若设置,必填expr1和expr2属性,疏忽 column和condition。params.table表名KD_RECEIVABLE params.command操作命令Query params.reftables关联表5196 响应参数接口字段字段名称预设值形容SOURCE_DOCNOSOURCE_DOCNO _autoFillResponseOWNERID创建人 _autoFillResponseCREATIONDATE创立工夫 _autoFillResponseFEETYPEFEETYPE _autoFillResponseBILLDATE单据日期 _autoFillResponseMODIFIEDDATEMODIFIEDDATE _autoFillResponseEDIFLAG接口标记 _autoFillResponseWRITE_TIMEWRITE_TIME _autoFillResponseORGANIZATION财务组织 _autoFillResponseAMT_RECEIVABLEAMT_RECEIVABLE _autoFillResponseDESCRIPTION备注 _autoFillResponseMODIFIERIDMODIFIERID _autoFillResponseBILLTYPEBILLTYPE _autoFillResponseDOCNO单据编号 _autoFillResponseIDID _autoFillResponsereftablesreftables _autoFillResponsereftables.DOCNO单据编号 _autoFillResponsereftables.NO款号 _autoFillResponsereftables.PRICELIST标准价 _autoFillResponsereftables.QTY数量 _autoFillResponsereftables.DISCOUNT折扣 _autoFillResponsereftables.PRICEACTUAL成交价 _autoFillResponsereftables.TOT_AMT_ACTUAL成交金额 _autoFillResponsereftables.OWNERID_TRUENAME创建人 _autoFillResponsereftables.CREATIONDATE创立工夫 _autoFillResponsereftables.MODIFIERID_TRUENAME批改人 _autoFillResponsereftables.MODIFIEDDATE批改工夫 _autoFillResponse金蝶云星空接口明细接口:_batchSave_接口名称:_应收单新增_接口办法:_POST_申请参数字段名称类型形容FID实体主键string实体主键FBillNo单据编号string单据编号FDATE业务日期string业务日期FCURRENCYID币别string币别FBillTypeID单据类型string单据类型FENDDATE_H到期日string到期日FCUSTOMERID客户string客户FBUSINESSTYPE业务类型string业务类型FEntityDetail明细array明细FEntityDetail.FMATERIALID物料编码string物料编码FEntityDetail.FTaxPrice含税单价string含税单价FEntityDetail.FPriceQty计价数量string计价数量FEntityDetail.FComment备注string备注FEntityDetail.FSOURCETYPE源单类型string销售订单号FEntityDetail.FSourceBillNo源单编号string源单编号FEntityDetail.FLot批号string批号FEntityDetail.FCOSTID费用我的项目编码string费用我的项目编码FEntityDetail.FCOSTNAME费用项目名称string费用项目名称FEntityDetail.FCOSTDEPARTMENTID费用承当部门string费用承当部门FEntityDetail.FSalUnitId销售单位string销售单位FEntityDetail.FSalQty销售数量string销售数量FEntityDetail.FEntityDetail_Link关联关系array FEntityDetail.FEntityDetail_Link.FEntityDetail_Link_FSTableName源单表名string FEntityDetail.FEntityDetail_Link.FEntityDetail_Link_FRuleId下推关系string FEntityDetail.FEntityDetail_Link.FEntityDetail_Link_FSBillId源单IDstring FEntityDetail.FEntityDetail_Link.FEntityDetail_Link_FSId表体IDstring FEntityDetail.FSETTLEORGID结算组织string FEntityDetail.FPAYORGID付款组织string FEntityDetail.FREMARK备注string FEntityDetail.FormId业务对象表单Idstring必须填写金蝶的表单ID如:PUR_PurchaseOrderFEntityDetail.Operation执行的操作string FEntityDetail.IsAutoSubmitAndAudit提交并审核bool FEntityDetail.IsVerifyBaseDataField验证根底材料bool是否验证所有的根底材料有效性,布尔类,默认false(非必录)数据对接价值通过无代码的数据集成与数据建模的智能数据管道技术,帮忙企业将所有应用程序、数据库、事件和文件等数据信息提取到数据仓库中,并疾速将扩散的数据转化为数据集、API、自动化流程等开箱即用的数据服务。配置接口的模式对接伯俊ERP和金蝶云星空,使得单据无缝互通。打造企业外部数据一体化,让企业日常经营治理实现麻利数据化经营。实现供应链业务信息流的互通,同时反对供应链数据分析流程自动化,后果推送,推动相干供应链问题优化。及时买通供应链孤岛,实现数据驱动供应链协同,进一步晋升企业竞争力。 ...

January 20, 2023 · 1 min · jiezi

关于erp:用友U8和旺店通企业奇门单据接口对接

用友U8和旺店通·企业奇门单据接口对接 对接零碎旺店通·企业奇门旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的批发云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力批发企业数字化智能化治理降级。为批发电商企业的订单治理及仓储治理提供解决方案,致力于帮忙企业实现数字化转型,企业规模化倒退对接指标零碎:用友U8用友U8+承载了用友人十余年来为成长型企业的信息化管理所倾泻的心血,它以U8财务业务一体化、U8ERP、U8All-in-One、U8+形象随同中国经济的高速倒退一路走来,见证了成长型企业信息化从7个利用模块到127个产品及行业利用、从简略治理到粗放治理到精密治理、从部门级利用到企业级利用到供应链级利用、从部分到集成到全面到软件及云利用、从多数人利用到全员利用、从中国走向亚太走向世界的倒退历程。接口计划配置零碎对接后期须要通过调研公司的业务,布局出最便捷,效率最高的整体流程。通过流程咱们须要建设对应的计划来吧这些流程一一的落地,轻易星散成平台开箱即用的、可视化拖、拉、拽实现接口服务编排与聚合。只须要依据指引设定好对应的参数即可启动应用。设定好源平台:旺店通·企业奇门的接口参数设置,以及设定好指标平台:用友U8的映射,即可启动计划进行测试 旺店通·企业奇门接口明细接口:_wdt.stockin.order.query.refund_接口名称:_查问退货入库单_接口办法:_POST_申请参数字段名称类型形容start_time开始工夫datetime增量获取数据,start_time作为开始工夫,格局:yyyy-MM-dd HH:mm:ssend_time完结工夫datetime增量获取数据,end_time作为完结工夫,格局:yyyy-MM-dd HH:mm:ssstatus状态string入库单状态 10已勾销20编辑中30待审核60待结算80已实现(默认查问80已实现单据)shop_no店铺编号string代表店铺所有属性的惟一编码,用于店铺辨别,ERP内反对自定义(ERP店铺界面设置),用于获取指定店铺单据数据信息page_size分页大小string每页返回的数据条数,输出值范畴1~50,不传本参数,输出值默认为40,应用举例单击这里page_no页号string不传值默认从0页开始响应参数字段名称类型形容order_no入库单号string入库单号warehouse_no仓库编号string代表仓库所有属性的惟一编码,用于仓库辨别,ERP内反对自定义(ERP仓库界面设置)warehouse_name仓库名称string仓库名称shop_no店铺编号string代表店铺所有属性的惟一编码,用于店铺辨别,ERP内反对自定义(ERP店铺界面设置),用于获取指定店铺数据信息shop_remark店铺备注string店铺备注src_order_no下层单据(退换单)编号string process_status退换单状态string10已勾销,20待审核,30已批准,40已回绝,50待财审,60待收货,63待推送,64推送失败,65委外待收货,69待收货(已结算),70局部到货,71局部到货(已结算),80待结算 ,90已实现。ERP版本V2.3.8.4及以上才可返回status退货入库单状态string入库单状态 10已勾销20编辑中30待审核60待结算80已实现stockin_time更新工夫string更新工夫 格局:yyyy-MM-dd HH:mm:sscreated_time创立工夫string创立工夫 格局:yyyy-MM-dd HH:mm:sstrade_no订单编号string零碎订单编号,默认单号为JY结尾,ERP内反对自定义(设置门路:设置——编码设置)trade_type零碎订单类别string零碎订单类别(1网店销售,2线下批发,3售后换货,4零售业务,5保修换新,6保修实现,7订单补发 .. 101自定义类型1,102自定义类型2,103自定义类型3,104自定义类型4 ,105自定义类型5,106自定义类型6)order_type单据类别string单据类别,默认返回3order_type_name单据类别名称string单据类别名称,默认为“退货入库”goods_amount货款总额string退回货款支出actual_refund_amount理论退款金额string理论退款金额total_price扣除优惠后货款总额string退回货品老本post_fee邮费string退货入库单的“邮资”other_fee其他费用string退货入库单的“其它金额”logistics_type物流类型string响应值为代表物流类型的数字,数字对应的物流类型名称单击这里logistics_no物流编号string代表物流所有属性的惟一编码,用于物流辨别,ERP内反对自定义(ERP物流界面设置)logistics_name物流名称stringERP设置的物流公司名称logistics_code物流单号string物流单单号refund_no退换单编号string退换单编号check_time入库审核工夫string customer_no客户编号string客户编号customer_name客户名称string退货人的姓名nick_name客户网名string客户网名shop_name店铺名称string店铺名称stockin_reason入库起因string入库起因flag_name退货单标记string退换单界面的标记platform_id平台idstring平台idstockin_operator_name入库操作人姓名string默认为'',入库操作人姓名check_operator_name审核人姓名string默认为'',审核人姓名refund_remark退换备注string默认为'',退换备注refund_operator_name退货员姓名string默认为'',退货员姓名stockin_no入库单号string入库单号wms_outer_no内部仓库单号string默认为'',对应内部仓库的单号wms_status内部仓库状态string默认为'0',内部状态,与wms对接应用 0初始化 1失败 2胜利'wms_result后果string默认为'',错误信息warehouse_id仓库idstring默认为'0',仓库idsrc_order_id业务单据idstring默认为'0',业务单据idreason_id起因string起因fa_status财务同步状态string默认为'0',财务同步状态logistics_id物流公司dstring默认为'0',物流公司idpost_share_type邮资摊派类型string默认为'0',邮费摊派类型0,不摊派 1,按数量摊派2,依照金额摊派'operator_id操作员idstring操作员idcheck_operator_id审核员idstring goods_type_count货品品种数string默认为'0',货品品种数note_count便签条数string默认为'0',便签条数flag_id标记idstring默认为'0',标记iddetails_list货品列表节点array退回货品列表节点details_list.stockin_id入库单主键idstring入库单主键iddetails_list.remark备注string备注details_list.goods_count货品数量string货品数量details_list.discount优惠金额string优惠金额details_list.tax_amount税后金额string税后金额details_list.adjust_price纠错金额string纠错金额details_list.right_price调整后单价string调整后单价details_list.tid原订单原始单号string原订单原始单号details_list.src_order_type订单类型string1洽购入库, 2调拨入库, 3退货入库, 4盘盈入库, 5生产入库, 6其余入库, 7保修入库, 8纠错入库, 9初始化入库 10 预入库 11 JIT退货入库 12 委外入库 details_list.adjust_num纠错数量string纠错数量details_list.modified最初批改工夫string最初批改工夫details_list.rec_id明细表主键idstring明细表主键iddetails_list.src_order_detail_id下层单据(退换单)退回货品明细主键string下层单据(退换单)退回货品明细主键,ERP版本V2.3.8.3及以上才可返回details_list.spec_no商家编码string代表单品(sku)所有属性的惟一编码,用于零碎单品辨别,SKU概念介绍,单击这里details_list.cost_price成本价string成本价details_list.production_date生产日期string生产日期,格局:yyyy-MM-dd HH:mm:ssdetails_list.validity_days有效期天数string有效期天数details_list.expire_date有效期string有效期,格局:yyyy-MM-dd HH:mm:ssdetails_list.src_price原价string原价details_list.tax_price税后单价string税后单价details_list.tax税率string税率details_list.total_cost总成本string总成本details_list.right_num调整后数量string调整后数量details_list.num入库数量string入库数量details_list.num2辅助数量string辅助数量details_list.right_cost调整后总金额string调整后总金额details_list.brand_no品牌编号string品牌编号details_list.brand_name品牌名称string品牌名称details_list.goods_name货品名称string货品名称details_list.prop2单品自定义属性2string单品自定义属性2details_list.goods_no货品编号string代表货品(spu)所有属性的惟一编号,用于零碎货品辨别,,SPU概念介绍,单击这里details_list.spec_name规格名称string规格名称details_list.spec_code规格编号string规格编号details_list.goods_unit根本单位string根本单位details_list.batch_no入库批次string入库批次details_list.batch_remark批次备注string批次备注details_list.position_no货位编号string货位编号details_list.oid原订单原始子单号string原订单原始子单号details_list.org_stockin_detail_id原始入库单明细string默认为'0',原始入库单明细details_list.spec_iderp商品主键stringerp内商品主键details_list.batch_id批次string默认为'0',批次details_list.position_id货位idstring默认为'0',货位ID,入库时默认IDdetails_list.unit_id辅助单位string默认为'0',辅助单位details_list.base_unit_id根本单位string默认为'0',根本单位details_list.unit_ratio单位比率string默认为'1.0000',单位换算关系details_list.expect_num冀望数量string默认为'0.0000',预期入库数量(根本单位数量,显示可主动转换成辅助单位)details_list.cost_price2辅助价格string默认为'0.0000',辅助成本价details_list.share_post_cost邮资摊派老本string默认为'0.0000',邮资摊派老本details_list.share_post_total邮资摊派总成本string默认为'0.0000',邮资摊派总成本details_list.created创立工夫string创立工夫用友U8接口明细接口:_api/returnorder/add_接口名称:_新增一张发货单_接口办法:_POST_申请参数字段名称类型形容code单据号string单据号date单据日期string单据日期operation_type业务类型string业务类型saletype销售类型编码string销售类型编码saletypename销售类型string销售类型state订单状态string订单状态custcode客户编码string客户编码cusname客户string客户cusabbname客户简称string客户简称deptcode部门编码string部门编码deptname部门名称string部门名称personcode人员编码string人员编码personname人员string人员cdeliverunit收货单位string收货单位ccontactname收货联系人string收货联系人cofficephone收货联系电话string收货联系电话cmobilephone收货联系人手机string收货联系人手机cdeliveradd收货地址string收货地址define1单据头自定义项1string单据头自定义项1define2单据头自定义项2string单据头自定义项2define3单据头自定义项3string单据头自定义项3define4单据头自定义项4string单据头自定义项4define5单据头自定义项5string单据头自定义项5define6单据头自定义项6string单据头自定义项6define7单据头自定义项7string单据头自定义项7define8单据头自定义项8string单据头自定义项8define9单据头自定义项9string单据头自定义项9define10单据头自定义项10string单据头自定义项10define11单据头自定义项11string单据头自定义项11define12单据头自定义项12string单据头自定义项12define13单据头自定义项13string单据头自定义项13define14单据头自定义项14string单据头自定义项14define15单据头自定义项15string单据头自定义项15define16单据头自定义项16string单据头自定义项16remark备注string备注maker制单人string制单人verifier审核人string审核人closer敞开人string敞开人entry分录array分录entry.unit_code辅计量单位string辅计量单位entry.num件数string件数entry.unitrate换算率string换算率entry.free1自在项1string自在项1entry.free2自在项2string自在项2entry.free3自在项3string自在项3entry.free4自在项4string自在项4entry.free5自在项5string自在项5entry.free6自在项6string自在项6entry.free7自在项7string自在项7entry.free8自在项8string自在项8entry.free9自在项9string自在项9entry.free10自在项10string自在项10entry.define22单据体自定义项1string单据体自定义项1entry.define23单据体自定义项2string单据体自定义项2entry.define24单据体自定义项3string单据体自定义项3entry.define25单据体自定义项4string单据体自定义项4entry.define26单据体自定义项5string单据体自定义项5entry.define27单据体自定义项6string单据体自定义项6entry.define28单据体自定义项7string单据体自定义项7entry.define29单据体自定义项8string单据体自定义项8entry.define30单据体自定义项9string单据体自定义项9entry.define31单据体自定义项10string单据体自定义项10entry.define32单据体自定义项11string单据体自定义项11entry.define33单据体自定义项12string单据体自定义项12entry.define34单据体自定义项13string单据体自定义项13entry.define35单据体自定义项14string单据体自定义项14entry.define36单据体自定义项15string单据体自定义项15entry.define37单据体自定义项16string单据体自定义项16entry.rowno行号string行号entry.inventory_code存货编码string存货编码entry.inventory_name存货名称string存货名称entry.warehouse_code仓库编码string仓库编码entry.warehouse_name仓库名称string仓库名称entry.invstd存货规格string存货规格entry.ccomunitcode主计量单位编码string主计量单位编码entry.cinvm_unit主计量单位string主计量单位entry.quantity数量string数量entry.price单价string单价,传入会主动从新计算相干价格及金额。如果传入了含税单价,以含税单价为准主动计算。entry.quotedprice报价string报价entry.taxprice含税单价string含税单价,传入会主动从新计算相干价格及金额。entry.money无税金额string无税金额entry.sum价税共计string价税共计entry.taxrate税率string税率entry.tax税额string税额entry.natprice本币单价string本币单价entry.natmoney本币金额string本币金额entry.nattax本币税额string本币税额entry.natsum本币价税共计string本币价税共计entry.discount折扣额string折扣额entry.natdiscount本币折扣额string本币折扣额entry.discount1扣率(%)string扣率(%)entry.discount2扣率2(%)string扣率2(%)entry.socode销售订单号string销售订单号entry.batch批号string批号entry.ExpirationDate有效期至string有效期至entry.cmassunit保质期单位string保质期单位entry.ExpirationItem有效期计算项string有效期计算项entry.dmdate生产日期string生产日期entry.overdate生效日期string生效日期entry.ExpiratDateCalcu有效期推算形式string有效期推算形式entry.imassdate保质期string保质期entry.item_code我的项目编码string我的项目编码entry.paramsKey申请参数keystring 数据对接成果大部分的企业都可能只用一套零碎组织架构简单,业务流程繁琐,外部同时有OA零碎、BI零碎、ERP零碎......且各个系统都须要独立登陆,造成IT部门数据监管艰难!如何在同一套中台零碎上关联多管理系统呢?系统集成平台,就能够无缝集成各个业务零碎,主数不对立、交易数据来回导出导入、业务交融等问题。通过轻易云系统集成平台完满联合:突破企业外部数据孤岛,无需繁琐的解决工序,与数据集成服务完满联合,让数据真正通起来。 资源互补:会集各种行业解决方案,资源互补,企业治理交融晋升。让对接开箱即用的、可视化拖、拉、拽实现接口服务编排与聚合。

January 20, 2023 · 1 min · jiezi

关于erp:旺店通企业奇门和用友BIP接口打通对接实战

旺店通·企业奇门和用友BIP接口买通对接实战 接通零碎:旺店通·企业奇门旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的批发云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力批发企业数字化智能化治理降级。为批发电商企业的订单治理及仓储治理提供解决方案,致力于帮忙企业实现数字化转型,企业规模化倒退写入指标:用友BIP用友BIP助力行业龙头企业、产业链外围企业以及平台型企业建设产业互联网经营平台,通过经营、治理、协同配置和共享资源,实现产业链上下游连贯与协同,并保障平安。数据接口配置应用轻易云零碎数据集成平台对应的模块:数据集成计划。而后抉择开始创立数据集成计划。在计划配置表单中抉择对应的源业务零碎:旺店通·企业奇门,而后抉择对应的连接器。抉择对应的查问调拨单作为数据对接起源。而后再通过写入指标平台配置指标零碎为用友BIP,并且抉择对应连接器(对于用友BIP的接口如何配置能够在轻易云数据集成社区论坛中找到相干信息,抉择好对应的转库保留接口作为数据写入动作,既能够实现第一步的数据对接配置。 旺店通·企业奇门接口明细接口:_wdt.stock.transfer.query_接口名称:_查问调拨单_接口办法:_POST_申请参数字段名称类型形容start_time开始工夫datetime增量获取数据,start_time作为开始工夫,格局:yyyy-MM-dd HH:mm:ssend_time完结工夫datetime增量获取数据,end_time作为完结工夫,格局:yyyy-MM-dd HH:mm:ssfrom_warehouse_no源仓库string代表仓库所有属性的惟一编码,用于仓库辨别,ERP内反对自定义(ERP仓库界面设置),用于获取指定仓库单据数据信息(不反对一次推送多个仓库编号)to_warehouse_no指标仓库string代表仓库所有属性的惟一编码,用于仓库辨别,ERP内反对自定义(ERP仓库界面设置),用于获取指定仓库单据数据信息(不反对一次推送多个仓库编号)status调拨单状态string调拨单状态10已勾销 20编辑中 30待审核 40已审核 42出库单待推送 44出库单推送失败 46待出库 50局部出库 60全副出库 62入库单待推送 64入库单推送失败 66待入库 70局部入库 80待结算 90调拨实现 (不传该字段默认返回全副状态的单据)transfer_no调拨单号string调拨单状态10已勾销 20编辑中 30待审核 40已审核 42出库单待推送 44出库单推送失败 46待出库 50局部出库 60全副出库 62入库单待推送 64入库单推送失败 66待入库 70局部入库 80待结算 90调拨实现 (不传该字段默认返回全副状态的单据)page_size分页大小string每页返回的数据条数,输出值范畴1~100,不传本参数,输出值默认为40,应用举例单击这里page_no页号string不传值默认从0页开始响应参数字段名称类型形容transfer_id调拨主键idstring调拨主键idtransfer_no调拨单号string零碎调拨单的编号,默认TF结尾type调拨类型string调拨类型(0:分步调拨,1:疾速调拨)mode调拨模式string调拨模式(0单品调拨 1货位调拨 2明细调拨)from_warehouse_no源仓库string源仓库编号,代表仓库所有属性的惟一编码,用于仓库辨别,ERP内反对自定义(ERP仓库界面设置)to_warehouse_no指标仓库string指标仓库编号,代表仓库所有属性的惟一编码,用于仓库辨别,ERP内反对自定义(ERP仓库界面设置)rec_id主键string主键lock_id锁定策略IDstring锁定策略IDapi_outer_no接口内部单号string接口内部单号from_wms_order_no递交的出库仓库内的单号string递交的出库仓库内的单号outer_no2递交的入库委外单号string递交的入库委外单号to_wms_order_no递交的入库仓库内的单号string递交的入库仓库内的单号error_info仓储错误信息string仓储错误信息wms_status操作状态string操作状态from_warehouse_id调出仓库string调出仓库to_warehouse_id指标仓库string指标仓库,货位调拨时,与from_warehouse_id相等address指标仓库地址string指标仓库地址logistics_id物流形式string物流形式out_goods_amount调出货品金额string调出货品金额(成本价之和)in_goods_amount调入货品金额(string调入货品金额(成本价之和)note_count便签条数string便签条数flag_id标记string标记status调拨单状态string调拨单状态10已勾销 20编辑中 30待审核 40已审核 42出库单待推送 44出库单推送失败 46待出库 50局部出库 60全副出库 62入库单待推送 64入库单推送失败 66待入库 70局部入库 80待结算 90调拨实现outer_no内部单号string内部单号creator_id制单员IDstring制单员IDcreator_name制单人姓名string调拨单治理的“创建者”字段contact联系人string联系人telno联系电话string联系电话logistics_type物流类型string物流类型logistics_no物流编号string代表物流所有属性的惟一编码,用于物流辨别,ERP内反对自定义(ERP物流界面设置)logistics_name物流名称string旺店通里设置的物流公司名称logistics_code物流单号string物流公司的运单号goods_count货品数量string货品数量goods_type_count货品品种数量string调拨单治理界面的“货品品种”字段goods_in_count入库数量string入库数量goods_out_count出库数量string出库数量modified最初批改工夫string最初批改工夫,格局:YYYY-MM-DD HH:MM:SScreated创立工夫string创立工夫,格局:YYYY-MM-DD HH:MM:SSremark备注string备注to_warehouse_address指标仓库地址string指标仓库地址details_listsku详情节点arraysku详情节点details_list.transfer_id调拨主键idstring调拨主键iddetails_list.rec_id调拨明细主键idstring调拨明细主键iddetails_list.goods_no货品编号string代表SPU所有属性的惟一编号,用于零碎货品的辨别,SPU概念介绍,单击这里details_list.spec_no商家编码string代表所单品(sku)所有属性的惟一编码,用于获取零碎单品的数据,SKU概念介绍,单击这里details_list.spec_code规格码string规格码details_list.spec_name规格名称string规格名称details_list.unit单位string单位details_list.num2辅助数量string辅助数量details_list.spec_id货品规格string货品规格details_list.cost_diff计算均匀成本价时的精度失落string计算均匀成本价时的精度失落details_list.flag_id标记string标记details_list.modified 最初批改工夫string 最初批改工夫details_list.created创立工夫string创立工夫details_list.barcode条码string条码details_list.out_cost_total调出总成本string调出总成本details_list.batch_id批次IDstring批次IDdetails_list.batch_no货品批次string货品批次details_list.batch_remark批次备注string批次备注details_list.from_position源货位string源货位details_list.to_position指标货位string指标货位details_list.expire_date有效期string有效期details_list.stock_num库存string调拨时的库存(显示用,不做根据)details_list.num调拨数量string调拨数量details_list.out_num出库数量string出库数量details_list.in_num入库数量string入库数量details_list.unit_name根本单位string根本单位details_list.aux_unit_name辅助单位string辅助单位details_list.aux_num辅助数量string辅助数量details_list.remark备注string备注用友BIP接口明细API:_/yonbip/scm/storetransfer/save_NAME:_转库保留_METHOD:_POST_申请参数接口字段字段名称预设值形容org库存组织code或id_findCollection find org_code from 4f73f755-1c4f-33e6-b5a1-7e3b8d894800 where code={{from_warehouse_no}}例:A23001code单据编号,编码规定是手动时必填{{transfer_no}}例:ZK20210417000002vouchdate单据日期{{created}}例:2021-04-17 00:00:00businesstype交易类型code或idA11001例:110000000000019outWarehouse出库仓库code或id{{from_warehouse_no}}例:02inWarehouse入库仓库code或id{{to_warehouse_no}}例:1920126858645760id转库单主表ID,更新操作时必填 例:1920126858642000memo备注{{remark}}例:表头备注totalQuantity整单数量 例:122_status操作标识Insert details转库单子表[st.storetrans.StoreTransDetail]details_list details.product物料id或code{{details_list.goods_no}}例:1920126858647891details.product_cCode物料编码{{details_list.goods_no}}例:CC00101details.modelDescription规格阐明 例:30g/包details.productsku商品SKUid或编码{{details_list.spec_no}}例:1920126858647892details.productsku_cCode物料sku编码{{details_list.spec_no}}例:CC00101-1details.batchno批次号 例:bt001details.producedate生产日期 例:2021-04-27 00:00:00details.invaliddate有效期至 例:2021-10-27 00:00:00details.expireDateNo保质期 例:1details.expireDateUnit保质期单位 details.id转库单子表ID,更新子表时必填 例:1920126858642001details.detailsid转库单子表ID 例:1920126858642001details.qty数量{{details_list.num}}例:12details.unit单位id或编码_findCollection find code from f9eedcc9-f1ff-31c0-9081-6aee9cf21740 where name={{unit_name}}例:1836523958194432details.unitName主计量_findCollection find code from f9eedcc9-f1ff-31c0-9081-6aee9cf21740 where name={{unit_name}}例:件(精度2)details.invExchRate换算率1例:件(精度2)details.subQty件数{{details_list.num}}例:件(精度2)details.stockUnitId库存单位id或编码_findCollection find code from f9eedcc9-f1ff-31c0-9081-6aee9cf21740 where name={{unit_name}}例:1836523958194432details.goodsposition出库货位id或编码 例:1836523958191100details.ingoodsposition入库货位id或编码 例:1836523958191200details.ingoodsposition_cName入库货位 例:入库货位Adetails.goodsposition_cName出库货位 例:出库货位Adetails.memo子表备注转库单下推例:表体备注details._status操作标识Insert例:表体备注零碎买通详情大部分的企业都可能只用一套零碎组织架构简单,业务流程繁琐,外部同时有OA零碎、BI零碎、ERP零碎......且各个系统都须要独立登陆,造成IT部门数据监管艰难!如何在同一套中台零碎上关联多管理系统呢?系统集成平台,就能够无缝集成各个业务零碎,主数不对立、交易数据来回导出导入、业务交融等问题。通过轻易云系统集成平台完满联合:突破企业外部数据孤岛,无需繁琐的解决工序,与数据集成服务完满联合,让数据真正通起来。 资源互补:会集各种行业解决方案,资源互补,企业治理交融晋升。让对接开箱即用的、可视化拖、拉、拽实现接口服务编排与聚合。 ...

January 20, 2023 · 1 min · jiezi

关于erp:5个最重要的ERP模块

ERP软件的价值能够通过其宽泛的前台和后盾流程的集中化失去最好的总结。有许多不同的ERP 模块能够增加到零碎中,进一步为你的业务定制解决方案。 以下是五个最重要的ERP模块,具体阐明了每个模块的性能以及它将如何为你的业务带来益处。 1. 供应链治理 最大化供应链管理效率是一个须要实现的根本业务流程。因为大量的挪动部件,供应链治理通常是简单的。这就是ERP模块和ERP解决方案发挥作用的中央。 与独立的软件相似,实时数据是SCM ERP软件模块的一个重要特色。有了供应链的实时信息,你能够很容易地在生产或分销过程中及时发现潜在问题。 除了需要打算,需求预测是SCM ERP模块的另一个要害性能。应用预测剖析,你的ERP解决方案的SCM模块可能预测产品或服务的将来需要。你能够应用这些数据来创立满足需要但不超过需要的生产打算。无效的预测工具能够通过缩小损耗和适量库存来降低成本。 2. 财务管理 财务管理模块是ERP中最有用的工具之一。因为财务是企业的支柱,一个无效的财务管理ERP工具将与企业的每一个分支单干。例如,可能应用实时销售数据来计算支出。 ERP的外围是对于工作流程和信息的集中化。利用财务工具将有助于汇总和治理资金如何在你的公司流动。你能够在模块中查看整个企业的财务状况。报告也应包含在财务管理模块中。 报告对于治理你的财务至关重要,并且能够通过先进的数据分析大大提高可操作性见解的倒退。此外,财务报表能够帮忙你制订估算,同时也让高管理解的企业的财务状况。 3. 项目管理 企业,无论大小,都要兼顾泛滥我的项目、打算、工作和人员。领有一个解决方案能够帮忙他们在打算和运行我的项目时放弃所有井井有条,以一种精确、可预测和有利可图的形式。 项目管理是ERP中的一个外围模块,以反对基于我的项目的生产和按我的项目提供服务。 根本的项目管理性能应包含: ● 我的项目布局: 可能轻松地布局我的项目,同时思考到以前的跟踪记录。● 追踪我的项目的演变:当波及到完成度、工夫和老本且偏离我的项目正规,向正确的人收回正告。● 日程安排和工夫治理: 可能轻松地注销工作我的项目的工夫,并思考到人们的工作日程。● 资源分配:确保人们在正确的工夫从事正确的工作。● 我的项目估算:包含人员老本,不仅对工夫,而且对调配的估算放弃实时查看。● 沟通和合作: 轻松地公布评论和关注,与内部利益相关者沟通,同时放弃所有口头的残缺历史记录。● 文档和文件: 间接或通过文件轻松地记录需要、规格。 4. 客户关系 弱小的客户关系对每个企业都是至关重要的,这就是为什么施行ERP CRM解决方案是十分无益的。当你应用正确的CRM工具时,跟踪你的客户、销售和线索变得很简略。 这个模块能够帮忙你治理客户、线索和销售过程。这些模块中通常蕴含的一些根本的CRM性能包含联系人列表、互动历史和根本剖析。这些性能是CRM的外围组成部分,能够确保你依据客户的购买历史等因素,为客户提供最相干的产品促销流动。 CRM模块还能够帮忙你找出谁是你的顶级客户,并针对他们提供潜在的穿插销售机会。你能够在以前被疏忽之处发现额定的销售机会。 5. 人力资源 人力资源是一个波及企业每个部门的模块。人力资源软件收集每个员工的数据,它一直地从你的所有部门产生信息,信息可依据须要在各部门之间共享。 一些常见的人力资源工作能够通过ERP软件模块自动化,包含跟踪假期或时间表或记录辅导工作或纪律口头。你的人力资源零碎甚至能够通过从CRM模块中提取销售和佣金数据来跟踪奖金。 ERP零碎模块最重要的劣势之一是它能够在外部工作流程中发明轻松的合作。当零碎放弃独立时,数据必须手动共享。因而,如果没有一个集成的人力资源模块,你可能须要进行从新格式化,以共享信息,这很容易造成人为谬误。 论断 随着企业规模的扩充,很难确保跟踪所有的事件。从财务管理到库存治理,施行正确的ERP模块能够帮忙你更无效地治理业务。 8Manage FAS一体化ERP软件通过一个零碎即可实现企业全面自动化和整体经营绩效管控,各业务环节同一系统管理,领有更高业务关联性、数据关联性与信息有效性。 零碎领有全面的功能模块笼罩,包含客户治理、销售自动化、项目管理自动化、洽购和供应商治理自动化、人力资源管理自动化、办公自动化、财务管理自动化、全局业务地图,各业务畛域和整体绩效治理和KPI实时反馈,为领导层提供实时决策信息。 在8Manage零碎,客户、合作伙伴、员工、承包商和供应商能够互相沟通、拜访和执行业务流程,而不会烦扰彼此的工作。 销售人员能够查看库存数据; 营销人员能够拜访销售报告; 高管们能够清晰、全面地理解公司。 ERP模块是一个弱小的工具,能够依据每个部门的业务流程进行定制,并加强跨部门的工作流程。8Manage FAS一体化ERP软件针对性地从企业治理的多个维度去解决企业经营中的难题,最终让企业达到间接疾速地进步经济效益的目标。

October 26, 2022 · 1 min · jiezi

关于erp:如何规划和管理ERP项目

ERP我的项目是一个大型企业治理信息化我的项目,是一项系统工程。ERP我的项目的迭代布局提供了许多益处:在我的项目晚期辨认并解决了次要危险;无效地辨认需要变更并确定其优先级;优化我的项目团队利用率;一直监测和纠正进度和品质。 如何布局ERP我的项目 制订施行打算 施行打算代表了我的项目的纲要,显示了我的项目各阶段打算迭代的总数,以及每个迭代的要害里程碑日期。项目经理和团队应用对我的项目的预计和已知的优先级,制订一个施行打算,将需要(性能和技术)大抵映射到每个预测迭代。每次迭代都应该有一个相干的指标,有助于实现整个我的项目指标。团队可能会发现某些需要会带来设计或架构危险,他们应该思考将这些需要调配给晚期迭代,以便尽早在我的项目中解决这些潜在危险。 迭代打算 迭代打算是我的项目布局的次要局部。与其余迭代和增量办法一样,每个阶段蕴含一个或多个迭代,迭代应继续两到六周,持续时间取决于迭代中实现的工作类型。每次迭代都应进行布局,以实现一组特定的指标,并解决一组项目风险。项目经理通常每天剖析和治理以后迭代打算。 团队的能力是团队在迭代中可能承当的工作量的宽泛度量。在布局迭代的工作范畴时,必须思考团队能力。容量由团队的规模、可用性和速度决定,这是指团队可能实现和测试用户案例和/或用户故事和更改申请的速度。 迭代打算信息应编译成一个简略的文档。打算的第一局部应反映迭代的范畴和指标。范畴的次要指标是明确迭代的指标、优先级和评估规范。此信息可用于跟踪迭代的进度并推动迭代评估。打算的其余部分捕捉迭代执行的具体打算。 请记住,每个层——施行和迭代打算必须放弃同步。迭代实现其指标的水平将影响将来的迭代,以及实现打算的里程碑。在进行阶段和迭代评估时,将取得反馈,这将导致打算须要调整。 分层 ERP 我的项目布局须要针对不同的我的项目规模和复杂性进行扩大,并蕴含以后打算范畴的正确具体水平。 ERP 我的项目布局还须要为特定受众显示适当的具体水平和打算范畴。例如,C 级主管、业务畛域经理和内部利益相关者关注公布日期、次要里程碑、业务影响以及必须做出重大决策的工夫点。另一方面,我的项目团队须要上层打算的细节来打算他们的日常工作和掂量进度。布局ERP我的项目的注意事项ERP我的项目蕴含许多与其余IT开发我的项目雷同的工作(业务需要、需要剖析、剖析、设计、施行、测试等)。作为需要剖析的一部分,ERP我的项目必须包含将已知需要映射到已抉择的产品或应用程序上。 在零碎构建产生的阶段,迭代更可能导致软件的外部公布。在构建了大量自定义扩大的我的项目上,应为每个迭代思考集成和集成测试工作,以确保自定义和配置作为一个残缺的零碎协同工作。 鉴于ERP我的项目需要的流动性,项目经理应该思考“受控迭代”的布局,这意味着每个迭代的内容和指标都是在我的项目晚期布局的,并在整个我的项目中亲密监控。我的项目团队通过辨认项目风险和解决晚期迭代中的最高优先级危险来确定迭代的内容。通过这种更可控的形式,能够通过我的项目的变更管制过程轻松地辨认和解决范畴变更。 帮忙布局ERP我的项目的工具 8Manage PM我的项目管理系统的设计人员在治理大型简单我的项目方面领有丰盛的教训。零碎提供以下性能,帮忙你充沛掌控ERP我的项目的潜在复杂性,以便增强问责制和进行无效沟通。 ● 我的项目打算与执行合二为一● 责任清晰,优化后果治理● 同时治理需要沟通与变更● 打算并追踪资源技能与工夫安顿● 精准全面和可按需组合的老本治理● 框架化并控制结构复杂性● 实时审计跟踪,数据完整性爱护 8Manage PM零碎反对工夫、资源、洽购、人力资源、品质、危险、老本治理等畛域,不仅帮忙企业优化项目管理流程,也不便了我的项目管理者更正当地把控各个环节,全面推动我的项目施行胜利。 最初的话 迭代和增量的ERP我的项目布局办法给我的项目团队带来了许多劣势,有助于缓解与ERP我的项目相干的挑战。在布局ERP我的项目时,倡议项目经理应用分层办法进行我的项目布局,而不是应用繁多、高度具体的打算。分层布局具备可扩展性,使团队可能专一于实现无效项目管理的要害指标、度量、里程碑和管制。

October 12, 2022 · 1 min · jiezi

关于erp:普适性强的ERPMES系统为什么难选4种挑选方案教你避坑

家喻户晓,制作企业想要推广数字化,ERP/MES零碎是其踏入数字化治理的要害第一步。究其原因,次要还是因为ERP/MES零碎岂但能够: 无效晋升企业工作效率;健全企业治理计划;填补企业治理办法系统漏洞;还能帮助制作企业在白热化的行业竞争中站稳脚跟。由此能够看出ERP/MES系统软件对企业的重要水平是不言而喻的。因此为了能更快的晋升企业治理能力和竞争能力,制作企业陆续开始洽购ERP/MES等系统软件。那在抉择的过程中,企业该如何抉择适宜本身的ERP/MES零碎呢?上面4种筛选计划教你完满避坑。 1、ERP/MES软件是否已真正欠缺?ERP/MES零碎厂商在与企业顾客沟通了解的过程中,个别都分明绝大多数企业更在意的是破费问题,真真正正要想把握软件是不是欠缺的企业非常少,而这被大部分企业疏忽的一点却又非常要害,很多ERP/MES零碎的质量指标与企业在具体使用程度有较大关联,因此只有企业在具体使用中才可能更容易的感触软件是否是真正欠缺的,如果企业能够轻松利用ERP/MES零碎并取得成功,而且在中后期利用实际效果不错的情景下,才能够表明ERP/MES零碎品质的稳定性和原始性。 但只管是曾经欠缺的ERP/MES零碎,在将来,随着企业需要一直迭代,零碎性能也会随之落后,甚至呈现不能满足于企业新需要的状况,那这种时候就必须要求ERP/MES零碎领有: 灵便配置能力;二次或屡次开发能力;满足多个零碎对接能力。为什么要满足这些能力?因为很多企业在选型初期的时候,对本身需要也只是一个初步的,而随着数字化治理的深刻摸索,必定会一直的呈现新性能和新需要须要实现。那这个时候如果ERP/MES零碎没有一个灵便配置和屡次开发的能力,那对企业在新需要(新畛域)的拓展将会带来很大的限度。 2、ERP/MES零碎能不能达到企业需要?很多制作企业对软件产品的理解并不深,所以在面对品种繁多的ERP/MES零碎,在劫难逃会有一些应接不暇。然而,无论是抉择出名ERP/MES产品还是新型的ERP/MES产品,咱们首先都要确定本身需要,只有依据理论需要能力挑选出更适合的ERP/MES零碎。 而在明确需要后,接下来就是对接软件厂商,这时候切记不要被软件厂商口头的宣传策动所蒙蔽,而是依据咱们本身了解,对ERP/MES零碎的作用发展粗疏剖析和考查,最好是能让厂商提供当场操作和收费应用,因为只有在应用和演试之后才能够更快的把握软件,同时也能更加明确该软件是不是能达到企业自身倒退的趋势需要。 3、切勿因贪便宜而误入ERP/MES厂商的陷阱有一些企业在选ERP/MES零碎时,稍不注意就有可能碰到价格陷阱,例如罕用的只谈价格不说需要、或者利用软件价格打伏击战等等。甚至会有一些软件厂商把价格压得很低,几千块钱就能够买到手。但通常这些便宜的系统软件要么就是落后很多年的零碎,要么就是存在完好的性能。实用性不高或执行不胜利,导致企业数字化转型整体失败,相似的案例呈现过很多,这也让很多企业客户抱怨万分,乃至呈现对整个ERP/MES行业丢失信念。 因而,一昧的贪便宜非常容易给企业导致侵害,企业筛选ERP/MES零碎时肯定要注意软件品质和服务能力,避免软件施行不胜利的案例产生在本人身上。 4、抉择不适合的ERP/MES零碎,或者会面临大麻烦在此之前,不少企业都感觉:本人只需掏钱买一款ERP/MES零碎就能够了,甚至都不思考轻易购买零碎会给本人带来什么麻烦问题。但事实表明,企业客户在碰到不靠谱的软件厂商时,仍然会有很多麻烦的,例如价格麻烦、隐形免费、执行麻烦、售后维修服务麻烦、拓展能力差等等,导致这种麻烦不仅有主观原因也是有客观原因,避开这种麻烦的最好形式便是自身清晰的需要+欠缺的软件+牢靠的软件厂商,能够给予多方位、系统化、多方位的售前和售后维修服务,能够在很短的時间内使问题取得美满的解决。 总而言之,企业在抉择适合的ERP/MES零碎时,最最最须要做的就是全面把握和理解ERP/MES零碎。与此同时,还须要短缺意识本人企业的管理机制,只有一直的深刻理解,沟通,比照,能力筛选到更适宜本身的ERP/MES零碎。 随着软件技术倒退更加成熟,当初也呈现了很多智能化的软件产品,就比方目前比拟火的低代码开发技术。近几年也开始有很多大型企业企业利用这种开发方式来个性化配置本人的ERP/MES零碎。 最具代表性的案例如:特斯拉放弃SAP,用低代码平台自研ERP零碎。据说特斯拉的开发团队只用了25集体,在4个月工夫内开发了整套ERP,那你感觉这到底是特斯拉牛?还是低代码牛呢?(具体情况大家能够去理解一下,也欢送在评论区一起探讨。) 织信Informat企业级低代码平台专一为制作企业提供ERP/MES/CRM等一站式管理系统,亮点在于其内置了:ERP、MES、进销存治理、财务管理、OA协同、CRM客户治理,项目管理等软件系统的定制部署及服务。而且它给企业提供的不单单是一个平台、更是依据企业状况制订不同的企业治理流程,自动化设定,系统集成,帮忙企业制订适宜本身的一站式信息化解决方案,能够无效实现企业的信息化+数字化治理,晋升团队效率,进步企业竞争力。 以上就是“普适性强的ERP/MES零碎为什么难选?4种筛选计划教你避坑”的全部内容,心愿对大家有所帮忙。如需理解更多ERP/MES零碎内容,或想进一步理解:如何在一个月工夫里,用织信低代码疾速搭建ERP/MES管理系统?在线试用。

September 13, 2022 · 1 min · jiezi

关于erp:基于WEB快速开发平台的轻量ERP

传统的企业零碎更多是以电脑软件端的利用模式运行,然而随着信息技术的倒退提高以及企业对系统利用需要的晋升,基于B/S的网页版的零碎受到越来越多企业的青眼,那么Web网页版ERP软件系统相较于电脑端软件有什么劣势呢?1、随着挪动办公和分布式办公越来越遍及,很多状况下都是在不同的地区及网络环境下办公,Web网页版ERP零碎能够在任何中央通过浏览器应用零碎,可能带来很好的应用灵活性。2、B/S架构的企业ERP零碎建设在广域网上,可能面向不同的用户群扩散地区应用,不同地区分公司都可间接在本身区域关上页面应用零碎,能够满足团体企业多地散布的利用需要。3、企业对治理的需要是一直变动降级的,所以企业ERP零碎也都须要一直进行更新降级,Web网页版零碎有着很好的扩展性,无论是开发还是保护都只有更新服务器端的软件即可同步更新,这样就利用厂商不断更新降级软件版本,为企业提供更好的零碎产品服务。相较于软件端系统,Web网页版ERP有着更好的灵活性、性能满足度和用户体验度,而且可能实现随时随地的便捷化治理,是ERP降级的优质抉择。力软低代码平台是一款基于B/S的一站式企业平台,曾经利用自身技术劣势帮忙泛滥企业实现了零碎的信息化降级,明天就来理解一下其内置的繁难ERP模块,所用表单间接在表单设计中配置即可。在左侧的菜单栏中找到利用案例-进销存治理,咱们能够看到进销存中罕用的各类表,这里简略展现一下。洽购申请洽购订单洽购入库付款单销售报价销售订单销售出库收款单LeaRun.WEB疾速开发平台

March 11, 2022 · 1 min · jiezi

关于erp:EDI和ERP之间的联系是什么

ERP零碎通常应用EDI技术来促成企业之间的通信。EDI是20世纪80年代公布的一种技术,用于在企业外部和企业之间传输电子文档。ERP用于治理组织的外部和内部资源,通过整合业务流程和经营帮忙增强沟通和决策。ERP 和 EDI 协同工作,通过向企业增加潜在的通信设施和供应链治理技术来进步我的项目效率。 电子数据交换(EDI)用电子文件传输伎俩取代了传统的商业数据通信形式,即电话和传真。应用计算机以电子形式接管和发送企业的业务数据,大大降低了治理老本。尽管 ERP 和 EDI 零碎能够协同工作,将企业的所有成员集成到同一个通信和数据库系统中,但 EDI 不须要 ERP。 EDI 能够简略地通过计算机运行并拜访网络。 ERP 零碎通过跨组织的 EDI 通信替换协调供应链治理,以简化治理工作。 ERP零碎能够缩小人为谬误,使业务更具老本效益,并有助于沟通,从实质上放大了EDI给传统业务带来的原始收益。 ERP 和 EDI 零碎独特缩小了企业之间通信所需的文书工作量。 在供应链治理中,EDI是一种专一于企业间电子通信交付的技术。此通信能够包含订单、付款告诉和装运验证。因为许多公司应用一种模式的EDI,许多ERP零碎在其程序中包含EDI技术。ERP和EDI零碎独特确保这些文件依据行业和法律规范进行标准化。 征询公司和组织通常有 ERP 和 EDI 参谋来帮忙他们解决零碎要求。 EDI 参谋解决翻译办法和接口技术,并反对 EDI 合作伙伴零碎。 ERP 参谋理解组织的需要和流程,并致力于构建 ERP 零碎以满足这些需要。 ERP 和 EDI 专家也可能致力于培训用户以最好地利用企业外部运行的零碎。 一些人认为,可扩大标记语言(XML)能够代替某些组织中的EDI。尽管XML在实质上与EDI类似,但因为每种技术结构其蕴含的数据的形式不同,人们认为它是不同的。目前,XML格局太大,不足规范,无奈像EDI技术那样在工业规模上实现它。然而,XML对EDI并没有威逼,因为所有模式的电子商务都反对电子通信的进一步倒退,从而反对EDI技术。。 知行软件能够为您提供什么?知行软件EDI零碎至今已与80+IT企业建设过单干,通过系统集成的形式为最终客户提供了EDI+ERP一体化解决方案。在以往的我的项目中,知行EDI零碎胜利对接SAP、金蝶、用友、鼎捷等出名ERP零碎,具备丰盛的对接教训 业余的技术支持 如果客户不想本人投入资源来做EDI运维相干的工作,知行软件提供高级技术支持服务,指定业余的运维团队来负责我的项目的运维,如果零碎呈现了任何问题,咱们的运维工程师都能够间接帮您解决。 业余开发培训 知行软件还能够提供业余的开发培训,尤其是针对于业余提供IT服务的企业,在承受EDI开发培训后,能够自行在知行之桥上进行施行。在将来,如果有更多EDI新需要,那么企业也能够间接帮最终用户实现开发。 如果您也有客户有EDI需要,知行软件作为EDI行业的专家,能够为您提供反对,作为整套零碎中承当数据传输作用的要害一环,期待与您的单干。

January 25, 2022 · 1 min · jiezi

关于erp:双十一到了你的ERP准备好了吗

往年的“双十一”已拉开帷幕,面对暴增的海量订单,商家除了要备好货品、做好仓储、实现经营筹备工作及各部门人员调度外,更重要的就是筛选一款解决疾速、稳固松软、性价比高的ERP零碎,确保能在双十一期间高效、有序地服务客户、实现发货、库存治理。 而市场竞争的加剧以及客户疾速变动的需要,使得企业与顾客、企业与供方的关系变得更加亲密和简单。洽购、进货、库存、销售等环节紧密联系,任何迁延与谬误都会造成重大的结果: 进销存供等要害业务模式不够晦涩:大部分商家习惯于传统经营模式,次要采纳手工缮写记录,甚至电话下单等口头形式,很容易造成遗记发货、漏收货款等问题。同时很难做到从订货、销售阶段就对需要和销售状况进行准确预测。 与其余 IT 零碎的集成难以实现:领取零碎、会员管理系统、营销零碎,以及与大型电商平台的对接,企业在这些方面有很大需要,但因为不足必要的技能与人才,往往难以实现。 难以及时把握扩散在各处的信息:在不同业务环节应用不同零碎,导致重要信息扩散各处,员工无奈快捷地随时理解最新业务数据,进而影响业务流程的停顿。 应用ERP零碎,不仅能疾速解决多平台、多店铺订单来回切换的麻烦、库存凌乱的问题,更能让店铺进入流程化的治理阶段,满足企业根本业务模块以及企业将来倒退的需要,大幅晋升工作效率、节约人力老本。 在双十一这个流量风口,ERP的抉择关系到大促的整体营收,肯定要抉择功能齐全、稳固好用、服务健全的零碎,这样能力在应用的过程中不至于节约大量的工夫和金钱。 LeaRun基于其疾速开发框架打造的进销存解决方案,辅之以表单、权限、工作流、微信、小程序、app等行业利用,为商家提供了一体化解决方案,帮忙客户疾速高效地实现进销存、供应链、治理等流动。 LeaRun的ERP零碎零碎稳固、功能齐全,可能全方位、智能化地帮用户加重工作量、缩小过错、进步工作效率、升高人力老本。 其工作流程能够自主配置,全程可视化设置,操作简略,可能疾速上手。随着精细化要求越来越高,企业能够依据行业的变动随时调整本人,跟上时代的步调。 并且其中内置了大量组织架构的相干组件及洽购、销售、付款的相干报表,充沛满足商户不同业务环节的需要。 同时,LeaRun疾速开发框架还能够开发挪动端产品,并和PC端联动同步。无论进货途中,或日常经营过程中,甚至休息时间,若有须要可随时通过玲珑挪动设施获取所无关业务或客户的信息,所有信息触手可及,效率有了显著进步。 欠缺的性能,简便易行的操作,以及LeaRun稳固耐用的特质,为企业提供平安稳固、承压性更强、可扩大并放弃疾速迭代状态的ERP零碎,一直满足电商企业新增业务需要点,助力企业治理的进一步优化,让专精于销售业务的商家顺利游走在技术最前沿。 ERP进销存管理系统演示案例:www.learun.cn/Home/VerificationForm 文.LeaRun

November 11, 2021 · 1 min · jiezi

关于erp:PHP-开源-ERP-系统-Discover

Discover 我的项目文档1. 根本介绍1.0 我的项目介绍Discover 是基于开发语言 PHP7.3,Laravel 框架开发。我的项目中采纳的拓展如下: dcat/laravel-adminovertrue/laravel-pinyinpropaganistas/laravel-phonespatie/laravel-enumyxx/laravel-quickzgldh/qiniu-laravel-storage1.1 实用场景生产加工羽绒,羽毛制品的厂家。 1.2 装置Github 地址, gitee 地址执行 composer install将 .env.example 复制重命名为 .env, 并在 .env 设置数据库账号密码等信息。执行 php artisan migrate 生成表构造。执行 php artisan db:seed --class=InitSeeder 初始化数据库。1.3 技术交换QQ群:1129427935 2. 洽购治理供应商档案->洽购订购->洽购入库 2.0 洽购订购洽购订购是做洽购预约,并不是理论入库 所有订单双击所在行即可编辑。 洽购订单审核时候,洽购数量必须大于0。 批改订单明细之后,鼠标来到焦点即实现批改。 2.1 洽购入库洽购入库是对订单进行入库操作 抉择曾经审核的洽购订购单。 生产洽购入库单会自动生产年月日的批次号,同时能够对入库明细进行调整。 3. 库存治理3.0 产品库存产品库存是产品名称,类型,属性,含绒量,测验规范齐全一样的为一个产品。 3.1 批次库存产品库存开展能够看到批次库存,批次库存是产品名称,类型,属性,含绒量,测验规范齐全一样的产品,然而入库有多个批次,比方2021-05-21入库一笔,2021-05-22 入库一笔,那这个产品就有两个批次号。 除了产品库存开展能够看到批次库存,咱们还有专门的批次库存报表。 3.2 产品检验洽购的产品当初入库了,过后填的含绒量不肯定精确,这时候我将仓库的产品抽样送检,查看理论含绒量,并填好测验的规范。 3.3 仓库库位在洽购入库的时候会让抉择一个仓库库位。本人查问库存的时候,能够晓得对应的货物放到哪个地位的。 3.4 库存往来仓库货物的每一笔出入库记录。 3.5 期初建账在第一次应用软件的时候,仓库有库存,这笔库存能够做期初录入进去。 ...

November 3, 2021 · 1 min · jiezi

关于erp:这些行业用ERP系统会有很大帮助

上篇:ERP零碎能帮你做些什么?ERP零碎的部署类型哪个更适宜你? 哪些行业能够从ERP 中受害?ERP 软件可用于任何行业,以帮忙企业提高效率。它提供了一种无效的沟通工具,能够治理外部和内部部门之间的信息、帮助日常流动来治理我的项目、跟踪指导方针的恪守状况以及解决日常业务经营中的简单问题。 ERP 软件系统十分多样化,是许多行业的要害局部,包含但不限于: 制造业工业机械和零部件修建和家居装修电子与科技汽车航空航天与国防医疗保健、制药和生命科学农业综合企业、农业和农业食品和饮料医疗保健和酒店服装、消费品和批发随着工夫的推移,ERP 零碎曾经倒退到包含对其余应用程序和反对日常业务性能的“ERP 模块”的反对。在许多 ERP 零碎中,这些通用性能区域被分组为 ERP 模块,包含但不限于:金融会计治理会计人力资源制造业订单解决供应链治理项目管理客户关系治理 (CRM)数据服务这些行业用ERP零碎会有很大帮忙 您的企业何时须要ERP?业务倒退通常侧重于与公司短期和长期增长相一致的指标,以及剖析潜在的业务挑战。对系统和流程进行定期剖析有助于确定企业何时可能须要集成 ERP 零碎。当初的低代码开发平台大多都能疾速开发出ERP零碎,例如白码低代码开发平台,它就能定制ERP零碎,白码平台的模板核心有ERP 管理系统模板你能够本人操作体验感受一下。你也能够看看它的具体的ERP管理系统解决方案理解更多。 当现有的业务零碎和流程是:不再运行或运行效率低下(节流或瓶颈)不再反对公司的成长不足升高危险的以后平安要求辨认损坏的流程对于增长和寻找改良畛域很重要。以下是一些可能表明流程不再反对公司增长的机会示例:重大依赖独自的数据库、电子表格或程序,这些都须要手动进行数据管理并且常常不同步。信息和剖析难以拜访或曾经过期。日常流程很艰难或过于耗时,例如纸质会计、财务报告等。销售和客户体验因数据不精确或不残缺而受到影响,并导致可靠性和服务名誉不佳。低效或简单的 IT 流程。以后零碎具备较差的可扩展性、碎片化的零碎遗留解决方案。IT 工夫用于修复或修补遗留零碎以尝试跟上增长。不支持物联网、人工智能等新技术和先进技术。一旦发现损坏的流程,企业就能够采取下一步措施来克服这些业务挑战并反对业务增长。您的制作业务是否具备适应性制作企业的特色以求生存和倒退?ERP的商业价值是什么?ERP 零碎用于帮忙各种规模的企业克服挑战——从小型企业到大型企业。晚期的业务实际可能不再跟上一直增长的需要,须要更高效的业务工具(如 ERP)来无效治理业务零碎和资源。 ERP 软件系统为企业的衰弱和倒退提供了许多益处。 ERP 性能和劣势节省成本并进步投资回报效率。通过 ERP 软件提供的集成和自动化进步生产力和效率。进步业务洞察力。应用繁多汇总的实在数据源和实时数据改良决策制定 。治理法规听从性。治理和监控对监管规范的恪守状况,甚至设置不合规警报。加重和升高危险。自动化外围业务经营、手动工作和报告。缩小人为谬误,开释员工工夫和资源 。增强合作。突破沟通阻碍,实现高效合作与协调,进步工作效率。进步供应链和分销网络的可靠性。应用需要驱动的 MRP 预测供需并为订单和供应链中的流量做好筹备。可扩展性。用于简化经营的统一基础架构能够随着您的业务增长而增长。优化客户和合作伙伴治理。服务、客户关系治理以及合作伙伴和供应商治理,从无缝共享信息中取得洞察力。如果感觉阿观的文章帮到你,那就留下赞+关注,谢谢您嘞!

October 9, 2021 · 1 min · jiezi

关于erp:ERP-操作文档

我的项目文档1. 根本介绍1.0 我的项目介绍我的项目是基于 B/S 架构,波及进销存,财务模块,单据打印曾经各种报表。 1.1 实用场景生产加工羽绒,羽毛制品的厂家。 2. 洽购治理供应商档案->洽购订购->洽购入库 2.0 洽购订购洽购订购是做洽购预约,并不是理论入库 所有订单双击所在行即可编辑。 洽购订单审核时候,洽购数量必须大于0。 批改订单明细之后,鼠标来到焦点即实现批改。 2.1 洽购入库洽购入库是对订单进行入库操作 抉择曾经审核的洽购订购单。 生产洽购入库单会自动生产年月日的批次号,同时能够对入库明细进行调整。 3. 库存治理3.0 产品库存产品库存是产品名称,类型,属性,含绒量,测验规范齐全一样的为一个产品。 3.1 批次库存产品库存开展能够看到批次库存,批次库存是产品名称,类型,属性,含绒量,测验规范齐全一样的产品,然而入库有多个批次,比方2021-05-21入库一笔,2021-05-22 入库一笔,那这个产品就有两个批次号。 除了产品库存开展能够看到批次库存,咱们还有专门的批次库存报表。 3.2 产品检验洽购的产品当初入库了,过后填的含绒量不肯定精确,这时候我将仓库的产品抽样送检,查看理论含绒量,并填好测验的规范。 3.3 仓库库位在洽购入库的时候会让抉择一个仓库库位。本人查问库存的时候,能够晓得对应的货物放到哪个地位的。 3.4 库存往来仓库货物的每一笔出入库记录。 3.5 期初建账在第一次应用软件的时候,仓库有库存,这笔库存能够做期初录入进去。 4. 销售治理客户档案->客户要货单->客户出货单 4.0 客户要货单企业的客户须要一批货物,这时候销售能够做一笔客户要货单。 4.1 客户出货单库管抉择审核通过的要货单进行出库。 点开批次详情,抉择出库的批次。 出库的产品肯定要有库存,否则选不到对应的库存出库。 输出要出库对应批次的数量。 审核即可实现出库。 5. 生产加工生产工作->物料申领->生产入库 5.0 生产工艺增加生产工艺 5.1 生产工作增加须要生产加工的工作 ...

June 12, 2021 · 1 min · jiezi

关于erp:特斯拉自建ERP的背后

**国内有位博主摘编了无关企业应用市场的一个故事。这个故事说到特斯拉在2012年行将推出Model S之际,因为不称心SAP的ERP产品的灵活性和价格,抉择废除SAP,改用低代码开发平台Mendix,用了25集体,四个月工夫自建ERP零碎。 这个故事的主人公是过后Tesla的CIO,Jay Vijayan。 一家汽车制作企业的信息系统无疑是非常复杂的。但在过后,SAP的汽车行业解决方案必定曾经蕴含了寰球汽车制作行业的最佳实际,肯定可能帮忙Tesla建设起根本的信息架构。一位做出如此决策的CIO想必肯定不信赖企业软件行业。但实际上,这位印度裔的IT高管自己在传统企业软件行业就任多年,从VMWare,到Oracle。他对SAP,Oracle这类集成解决方案的企业应用套件不堪称不相熟。从2000年开始,他在两家IT巨头企业负责的就是ERP相干的企业套件开发。 如果换了另外一家汽车企业的CIO,会不会做出跟他相似的决策呢?我感觉大概率不会。寰球简直所有的汽车整车厂商都买得起,也用得起品牌化的商业套件,有人抉择SAP,有人抉择Oracle。这些品牌套件对于汽车企业CIO来说,买的就是一个释怀。要可能做出舍弃现成的抉择,自力更生,只有行家里手才会这么做。这就像普通人买固定规格的品牌电脑,极客会买来配件本人DIY一样。Vijayan作为ERP产品公司的老兵,抉择不买ERP产品,而是自建,他要在外部压服老大Elon Musk,预计也是靠他的履历。如果在Vmware和Oracle干了十年以上的人说能够不买,能够本人实现,那还是比拟可信的。 如果你据说一家汽车企业本人花了很多钱开发出一套ERP,后果不能解决问题,最终还是乖乖地买了SAP的计划,你可能感觉这样的故事更可信一些。 问题是,为什么Vijayan的决策可能成为事实?自建ERP为什么没有成为特斯拉的梦魇? 1)自建信息系统的形象要求大幅升高 如果你要开一家饭馆,必须要思考到周边顾客的不同口味,你可能要筹备五十种以上的菜谱,天然也就须要多种类的原料进货。然而如果要为本人家做一顿晚饭,你只须要买本人爱吃的菜就能够。商品服务和自用服务永远存在这样的复杂度比照。 这个例子可能有点适度简略,软件产品的简单归根到底是因为它的形象要求。比方你用一个CRM利用,可能治理本人的客户订单,订单中能够减少产品明细,产品明细能够从产品目录中抉择,产品目录蕴含多层次的构造,购买A产品必须同时配套B产品;如果你要给客户打折,你既能够抉择百分比折扣,也能够抉择折让一个绝对值,甚至能够两个一起干。咱们用软件可能有这样的灵便度,是因为软件厂商依据纷繁复杂的商业实际,形象出了这样的逻辑和构造,让它可能满足大量客户的需要。 DIY的零碎就扔掉了架构形象的一部分包袱。尽管仍然须要肯定水平的形象,但只有亲密地吻合本人的需要就能够,不用思考其余行业和其余企业的差别。 而且,DIY零碎能够更大胆地应用间接具体而非形象的命名。比方特斯拉必然会波及到充电站治理,利用商业套件来治理,个别就须要借用形象的资产治理模块,一个充电站,一个充电桩,都必须归属形象的“资产”定义,在资产我的项目中还必须配置和充电站相干的资产类目。然而,自建零碎就能够大大方方地间接叫做“充电站治理”。这既简化了构造,也让用户更容易了解。 换句话说,像SAP这样的通用管理软件,并非不能用于特定行业的具体场景。只是它为了行业普适的须要,不得不建设更简单的抽象层次,让行业解决方案的设计和实施者可能通过配置管理实现行业落地。特斯拉自建ERP的落地则不须要这个适度简单的形象过程。 特斯拉甚至可能依据本人的业务模式对软件模块做出正当的舍弃。比方特斯拉并不存在经销商零碎(Dealer Management System),而经销商治理是汽车行业ERP的外围模块。去掉这一层会让整个ERP零碎简略很多。当然,特斯拉也有本人独有的需要,比方车辆软件的在线降级,软件包的抉择甚至要和出厂的批次精确关联。 2)Vijayan把握了成熟的架构模型 除了可能在商品级网站监控ERP产品根底上做减法,特斯拉的这位CIO还有反对他决策的法宝,那就是汽车制造业相干的架构模型常识。这个智慧资产并不是SAP软件的版权,也不属于任何其他软件企业,它不受任何知识产权法律的爱护。 在信息系统架构中,最重要的两个局部就是数据架构和流程架构,其中尤属数据架构更为重要,因为它是流程架构的根底。这些常识对于成熟ERP产品的开发和实施者来说是最重要,也是最有用的畛域常识。在很多IT征询我的项目中,征询公司给出的实施方案中最有价值的也是这些局部。我晓得一位英国的退休IT专家,就在本人的集体网站上卖几千份各种各样商业数据库的ER图(实体关系图)。你付他几千英镑,他把整个库都刻盘给你。Vijayan的教训必定足以笼罩这些局部。 当然大家也不要低估了这些模型的规模和实现的难度。对于汽车制造业这样的简单合作体来说,ERP软件所波及的数据对象至多有几百个,还有彼此之间盘根错节的关联关系。围绕不同业务环节的流程至多有数千个之多。所有这些架构常识都最终要转换成命名精确、构造清晰和逻辑欠缺的软件开发需要。 很多简单的事件会让普通人望而却步,然而行家里手就是不一样,他对复杂事物的内部结构了然于胸,天然能就地取材,巧手成器。咱们听到过退休工程师本人造飞机的故事感觉很离奇,但对于飞机工程师来说,他确实认为天下不只只有买飞机一个抉择,也能够本人造飞机。 3)低代码开发工具的助力 即使是行家里手,他要在短时间内开发出代替SAP商业产品的软件必然也须要工具。在Vijayan的采访文章中,他已经提到在2012年Model S公布之前,特斯拉只有十分无限的工夫来实现自建ERP零碎的开发,所以他抉择了一个在制造业有一些名气的Mendix低代码开发平台(起初被西门子收买)。低代码开发平台对企业关系数据利用的实现做了很多事后的封装工作。创立一个数据表,再建设录入和查问用的表单,配套数据增删查改相干的工作流,这些过程简直都不必反复写代码。这就是为什么Vijayan可能用四个月来实现。这个速度并不让我诧异。明天的低代码/零代码工具在四个月的尺度下确实能够实现非常复杂和大型的利用了。况且,据他本人说,还用了25集体。这25集体无疑是为了按业务环节分工,来同步创立大量的数据表和流程,从而缩短整体我的项目周期。 低代码开发工具可能实现的企业应用确实十分范式化,然而,绝大多数的企业应用自身就是范式化的。尤其像ERP这样的中后盾利用,它就是由数据架构、视图权限、统计分析和工作流等组件来组成的,99%的用户操作都能够形象为数据的增删查改操作。这就是为什么企业应用开发必然走向这个模式化搭建的方向,而不用齐全依赖原生技术栈。 实际上,即便是SAP,Oracle和微软的企业应用产品,它们也都反对低代码的利用自定义。Salesforce的Lightning,微软的Dynamics, Oracle的APEX都是相似的工具。SAP可能是在这个策略下最晚口头的巨头,它也在本月公布了RUUM的公测版本。尽管它定位是满足SAP客户长尾的个性化需要,但实际上用来解决骨干场景是一样的逻辑。 特斯拉在2014年当前还是回到了原生开发的策略上,换成微软的技术栈,用.Net开发出了最终版本的外部ERP零碎,被成为WARP。但我置信,特斯拉外部必定仍然在用低代码产品来解决很多问题,不可能所有的需要都跑去软件研发团队那里去排队。传统的DevOps过程注定是低廉的。国内的蔚来汽车技术团队甚至本人开发了一款叫“赤兔”的低代码平台,用来更快响应外部的IT需要。 同样,我也置信特斯拉相对不会傻到齐全不必商业软件产品。ERP可能自建,不代表所有的利用都可能或者须要自建。比方特斯拉相对不可能本人开发工业设计软件,也不须要开发本人的办公Office利用,这些专有产品就是应该买来开箱即用。灵便的抉择,永远都是最理智的抉择。 Vijayan 2016年就来到了特斯拉,据说他始终在筹备一家新的初创企业,但始终对外窃密。我大胆地猜想,他在开发一款面向大型企业的零代码利用开发产品,兴许他对当年的Mendix也有很多不满。**

January 21, 2021 · 1 min · jiezi

关于erp:ERP制造模块操作与设计开源软件诞生30

赤龙ERP制作模块解说--第30篇 用日志记录“开源软件”的诞生 【进入地址 点亮星星】----祈盼着一个激励博主开源地址: 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 说流程生产制作模块是满足制造业的ERP需要的治理模块。个别通过销售订单预测生产打算,而后再依据物料清单,生成具体的物料需要打算,根据物料属性断定哪些须要下达制作订单,哪些须要下达洽购订单。在实现必须的洽购和制作后最终产生能够销售的产品。 说业务上面咱们来聊聊赤龙ERP的制作模块的性能以及解决了哪些问题。 (1)优化的流程:制作模块原本应该蕴含的性能很多,除了BOM、MPS、MRP外,还应该蕴含车间生产治理、老本治理、品质治理等。但因为治理深度问题,咱们这里不思考生产过程中的管控,因为这部分的模块只能解决一个提醒和记录的作用,无奈真正的治理生产流程。咱们更多的是思考如何预测、如何打算、并最终如何达到打算。 (2)MPS与MRP:MPS次要打算的是主产品或者外围产品的需要,能够依据销售预测或手工打算。MRP与MPS是不同的,它次要是解决如何实现MPS的打算,通过更加明细的需要去下达订单而达到目标。MRP在过程中计算了哪些物料须要自制,哪些须要洽购,须要自制或洽购的数量,以及打算实现的开始与完结工夫。 (3)制作的根底数据:如果想要实现上述的性能,配置物料的制作属性,以及配置物料清单构造是必须的前提。 说操作一、物料制作属性 操作阐明: 1、进入“物料与服务”菜单,找到要保护的数据,点击“编辑”按钮 2、进入编辑页面后,抉择“制作属性”选项卡 3、抉择BOM属性、如果是自制须要输出生产前置期,保护后保留并提交审批 二、物料清单治理 操作阐明: 1、进入“制作治理”-“物料清单”菜单,可查看所有已保护的物料清单列表 2、新增物料清单 (1)点击“新增物料清单”按钮,进入编辑页面 (2)输出物料清单编码、版本,抉择主物料,点击“保留”按钮 (3)点击“新增物料清单行”,编辑行信息 (4)抉择物料,输出数量和生产前置期(程序字段用于断定行列表中的先后顺序) (5)点击“确定”按钮,实现行信息的保护 (6)日常治理中,可依据理论状况对BOM行编辑或删除 三、主生产打算治理 操作阐明: 1、进入“制作治理”-“主生产打算”菜单,可查看所有主生产打算列表 2、生成主生产打算 (1)点击“主动生成MPS”按钮 (2)抉择要生成打算的销售订单,可多选,点击“确定”按钮 (3)生成主生产打算胜利后,会主动跳转打算编辑页面 (4)打算行会依据销售订单行主动生成,可批改打算数量、物料属性和打算日期 (5)确认无误后,可提交,审核通过后失效 四、物料需要打算治理 操作阐明: 1、进入“制作治理”-“物料需要打算”菜单,可查看所有物料需要打算列表 2、生成物料需要打算 (1)点击“主动生成MRP”按钮 (2)抉择一个要生成物料需要打算的MPS,点击“确定”按钮 (3)生成物料需要打算胜利后,会主动跳转打算编辑页面 (4)打算行会依据BOM主动计算出,所有须要的物料列表以及打算数量、打算日期,也能够依据理论状况去调整 (5)确认无误后,可提交,审核通过后失效 (6)审批通过后的MRP,可依据打算行下达采购计划 (7)在行上抉择后(可多选),点击“下达采购计划”,生成采购计划胜利后会主动跳转到相应页面,确认数据后提交并审核,即可开始制订洽购订单了。 后记如果您对咱们正在做的开源软件感兴趣,欢送各种模式的单干,退出咱们一起打造一套开源的信息化解决方案。 带你理解不一样的【赤龙ERP】:https://www.redragon-erp.com(赤龙官网查看更多功能)

November 25, 2020 · 1 min · jiezi

关于erp:ERP应收应付进阶操作与子流程开源软件诞生29

赤龙ERP应收应酬进阶解说--第29篇 用日志记录“开源软件”的诞生 【进入地址 点亮星星】----祈盼着一个激励博主开源地址: 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 说流程应收应酬的主流程中有洽购发票和销售发票的治理性能,但如果产生了退货或折扣须要对之前的发票做冲抵,所以此时须要开具借项或贷项通知单,以实现对之前发票的修改。此外如果订单中波及到预付款和预收款,在发票解决时,须要先创立预付款/预收款发票,而后针对此发票做付款或收款。当开具了正式发票时,先核销预付款发票,而后再对发票残余金额做收付款。 不论是借项/贷项通知单,还是预付款和预收款发票,都会在付款或收款核销阶段,对原发票的付款或收款产生间接影响,除此之外,付款/收款阶段的冲销操作也会影响到对原发票的核销。 说业务上面咱们来聊聊应收应酬的性能以及解决了哪些问题。 (1)预付款/预收款的解决:因为一些订单须要预付款或预收款,但不论是付款还是收款,ERP必须核销发票,但在预付款预收款阶段还不会开具实在发票,所以ERP的通常的解决流程是开具预付款或预收款发票,而后再依据这些发票做收付款即可。 (2)预付款/收款发票核销:在开具正式发票后,须要用预付款/收款发票核销正式发票,而后再对正式发票做残余的付款或收款。 (3)借项贷项通知单:借项贷项通知单是在非凡状况下对规范发票实现金额的增减,发票已入账后无奈批改原始发票,所以须要应用借项贷项通知单做补充。 (4)对规范发票的收付款:在主流程中,收付款只须要核销规范发票,但在退出了预付款/预收款和借项贷项通知单后,收付款核销的发票就须要在计算预付款预收款金额,以及借项贷项通知单金额后再实现核销了。 (5)付款收款冲销:付款和收款时须要核销发票,但如果已入账的状况下,发现核销谬误,咱们能够手工操作冲销性能以实现对起源发票核销的冲回,以及新发票的核销。 说操作一、预付款发票 操作阐明: 1、进入“应酬发票”菜单,可依据发票类型查看预付款发票的列表 2、新增预付款发票 (1)点击“新增洽购发票”按钮,进入编辑页面 (2)抉择发票类型为“预付款发票”,抉择洽购订单,输出发票编码,发票金额以及付款形式,银行账号等,保留发票头 (3)预付款发票无需输出发票行,间接提交,审核通过后失效 (4)对预付款发票进行付款,新建付款单并核销预付款发票即可,与核销普通发票无任何区别 (5)在开具正式发票后,须要用预付款发票核销规范发票,以缩小应付款金额 (6)在编辑规范发票时,点击“预付款发票核销”输入框,并抉择要核销的预付款发票,会主动计算发票应酬金额 (7)在对规范发票进行付款时,会扣减预付款金额 二、预收款发票 预收款发票的操作流程与预付款基本一致,此处不再做反复阐明。 三、贷项通知单 操作阐明: 1、进入“应酬发票通知单”菜单,可查看所有通知单的列表 2、新建贷项通知单 (1)进入“应酬发票”菜单,在最右侧操作一览,点击“贷项通知单”--“新建贷项通知单”按钮 (2)此时会默认将规范发票的信息带到贷项通知单上 (3)输出通知单编码、通知单金额、通知单日期,保留头即可 (4)点击“新增告诉单行”,编辑行信息 (5)抉择规范发票行,点击“持续” (6)可批改单价,输出数量(必须为正数),税率,点击“确定” (7)通知单提交前,可编辑或删除告诉单行 (8)确认信息无误后,提交通知单,审批通过后数据失效 (9)在规范发票付款时,核销发票会计算发票金额、已核销金额、预付款金额、借项贷项通知单金额等多个金额后,判断可核销金额的逻辑 四、借项通知单 借项通知单的操作流程与贷项通知单基本一致,此处不再做反复阐明。 五、付款冲销/收款冲销 操作阐明: 1、进入“付款/收款治理”菜单,点击“编辑”按钮,进入要冲销的付款/收款单 2、对须要冲销的核销行,点击右侧的“冲销付款”按钮 3、填写要冲销的金额 4、抉择新的发票进行付款核销 5、因为是冲销,所以新发票的核销金额不能批改,点击“确定” 6、对于刚刚冲销的数据行,能够删除 ...

November 19, 2020 · 1 min · jiezi

关于erp:ERP出入库进阶操作与子流程开源软件诞生28

赤龙ERP出入库进阶解说--第28篇 用日志记录“开源软件”的诞生 【点亮星星】----祈盼着一个激励博主开源地址: 码云:https://gitee.com/redragon/re... GitHub:https://github.com/redragon19... 说流程在之前章节的赤龙ERP主流程中对出入库做了具体的介绍,但如果呈现了洽购退货或销售退货,库房如何解决?如果不波及订单的入库和出库如何解决?接下来咱们说一下这些流程。 洽购退货和销售退货实质是入库和出库的逆流程,其实也是到入库模块和出库模块,抉择类型为退货后,依据订单已入库或出库的信息进行退货解决,洽购退货相当于出库,销售退货相当于入库,和理论出入库的流向相同。退货个别对应着发票的变动,在应收应酬模块通过借项贷项通知单做解决。 无订单的出入库,咱们个别采纳杂项出入库的性能,杂项出入库跟一般出入库的区别是无需抉择订单,在入库或出库行上抉择物料,最终对库存产生影响。杂项出入库无需收付款动作,不产生应收应酬。 说业务上面咱们来聊聊退货和杂项出入库的性能以及解决了哪些问题。 (1)正流程与逆流程:入库和洽购退货、出库和销售退货是两个绝对应的正向和逆向流程,它们的操作基本一致,惟一不同的是,退货要依据已入库或已出库的数量进行,不能超出。其次是洽购退货减库存,销售退货加库存。 (2)杂项的了解:无订单的出入库咱们叫做杂项出入库,杂项能够了解成:在没有洽购或销售的状况下,产生须要对库存产生影响的动作,因为这种须要出入库的原因很多,场景也不尽相同,但产生雷同的后果,即对库存的影响,所以咱们对立叫做杂项入库或杂项出库。 (3)对财务的影响:退货间接影响发票和收付款,同时也会影响分录和凭证,所以会反馈到后续一系列的流程和数据中。杂项出入库不会有发票更不会产生收付款,但依然须要从财务账面上体现这类资产或老本,所以它只会影响分录而不会影响后续流程。 说操作一、洽购退货 操作阐明: 1、进入“入库单”菜单,依据入库类型可查看退货列表 2、新增洽购退货 (1)点击“新增入库/退货单”按钮,进入编辑页面 (2)抉择入库类型为洽购退货,而后抉择须要退货的洽购订单,抉择仓库,输出退货单编码和退货日期,保留退货头 (3)点击“新增退货行”按钮,编辑退货行信息 (4)抉择要退货的物料,点击“持续” (5)录入退货数量,并点击“确定” (6)退货提交前,可编辑或删除行 (7)点击“提交”按钮,并审批通过后失效 二、销售退货 销售退货的操作流程与洽购退货基本一致,此处不再做反复阐明。 三、杂项入库 操作阐明: 1、进入“入库单”菜单,依据入库类型可查看杂项入库列表 2、点击“新增入库/退货单”按钮,进入编辑页面 (1)抉择入库类型为杂项入库,无需抉择洽购订单,输出入库单编码和入库日期,保留即可 (2)点击“新增入库行”,编辑入库行信息 (3)抉择要入库的物料,输出单价、单位、入库数量,点击“确定” (4)杂项入库提交前,可编辑或删除行 (5)点击“提交”按钮,并审批通过后失效 四、杂项出库 杂项出库的操作流程与杂项入库基本一致,此处不再做反复阐明。 后记如果您对咱们正在做的开源软件感兴趣,欢送各种模式的单干,退出咱们一起打造一套开源的信息化解决方案。 带你理解不一样的【赤龙ERP】:https://www.redragon-erp.com(赤龙官网查看更多功能)

November 13, 2020 · 1 min · jiezi

关于erp:ERP的财务凭证的操作与设计开源软件诞生23

赤龙ERP财务凭证解说--第23篇 用日志记录“开源软件”的诞生 【进入地址 点亮星星】----祈盼着一个激励博主开源地址: 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 说流程如果ERP中不存在财务核算模块,那么凭证和分录就是零碎主流程的完结。对于财务来说,不论做的何种业务,不论业务的流程是什么,最终都会产生财务凭证,财务凭证也是记账的根据。从线下的角度来讲,传统的实现形式就是填写凭证单,有的企业也分为收入单和支出单,个别是由业务人员或商务人员填写,交给财务审核后再做账。而线上的操作变得更为简略,只有存在业务模块的凭证单据能够依据模板主动生成,而其余的凭证才可能会须要手工创立。这在很大水平上升高了业务人员和财务人员的工作量,也极大地升高了出错的概率。 说业务上面咱们来聊聊凭证和分录波及的性能以及解决了哪些问题。 (1)凭证模板:简略来说凭证模板是为了快捷生成凭证的,既然应用了ERP谁也不再心愿手工录入凭证,所以凭证模板就必不可少。凭证模板定义了两类模板,一类是自定义模板,它仅仅是为了使用户在手工填写凭证时更为不便和快捷;而另一类是业务模板,它实现了在子分类账中的分录的主动生成,这也是咱们常常所说的财务业务一体化的根底。 (2)子分类账:子分类账是一个两头概念,大家都晓得总分类账,即总账,是最终记录财务信息的中央。而子分类账是在总账之前记录财务信息的中央,子分类账全称是业务子模块分类账,作用就是将业务模块主动生成的会计分录记录其中,并作为最终过账的数据根底。联合上述的凭证模板就能够在子分类账中疾速的生成业务对应的会计分录。 (3)财务业务一体化:ERP中总会提到的一个词,但什么是财务业务一体化,大多数人都解释不清。其实简略来说,就是在ERP的业务模块操作时,同步生成财务数据,这个财务数据是静默生成的,对于业务来说能够是通明了,而财务就能够间接应用这些信息而无需手工做账,同时零碎在财务端只需对账和审核,甚至ERP还会在根本逻辑确定后帮忙用户做数据验证。 说操作一、凭证模板治理 操作阐明: 1、进入“凭证模板治理”菜单,可查看所有凭证模板的列表 2、新增凭证模板 (1)点击“新增凭证模板”按钮,关上编辑页面 (2)首先抉择业务类型,包含:自定义和其余各种业务 (3)输出模板名称和凭证字 (4)录入凭证行的会计科目并录入摘要 (5)如果存在多个借方和贷方,能够点击“加号”,增加新行 (6)如果是业务类型抉择了非自定义的业务,还须要在金额列抉择借方或贷方 (7)确认无误后,点击“凭证模板保留”即可 二、凭证治理 操作阐明: 1、进入“凭证治理”菜单,可查看所有凭证的列表 2、新增手工凭证 (1)点击“手工凭证”按钮,关上编辑页面 (2)抉择凭证模板,如果用户心愿手工录入凭证则不必抉择,否则抉择一个模板就会主动带出所有模板中的内容 (3)录入凭证字、凭证日期、摘要、会计科目、借贷方金额 (4)确认无误后,点击“凭证保留”按钮 (5)用户提交并审批通过后,凭证失效 3、新增主动凭证 (1)在凭证列表页,点击“主动凭证”,并抉择付款单生成或收款单生成 (2)抉择须要生成凭证的付款单或收款单,并点击“确定” (3)此时会依据付款单或收款单生成凭证,用户查看无误后,提交审批即可 三、子分类账分录 操作阐明: 1、进入各业务零碎,在数据审批通过后,可查看以后业务的会计分录 2、点击“从新生成分录”,可在凭证模板批改后,从新生成对应的会计分录 后记如果您对咱们正在做的开源软件感兴趣,欢送各种模式的单干,退出咱们一起打造一套开源的信息化解决方案。 【码云】或【GitHub】搜寻“赤龙ERP”点击星标,亦可退出咱们! 让咱们从小开始做点平凡的事!与开发者交换 kzca2000

November 4, 2020 · 1 min · jiezi

关于erp:带你探索主数据系统的奥秘开源软件诞生14

主数据的前世今生--第14篇 用日志记录“开源软件”的诞生 【点亮星标】----祈盼着一个激励博主开源地址: 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 主数据的前生主数据不是一个新词,但它同时也不是一个与生俱来的词汇。在很久很久以前(当然也没那么久),信息化零碎呈现后,产生了一个通用词汇--根底数据,根底数据其实就是管理系统中,常常被应用的底层数据,它们很少变动却频繁援用,所以由此得名。貌似根底数据的呈现曾经能够解决问题了,但主数据又是从何而来呢? 那么咱们就持续来看看信息化的倒退历程,起初诞生的信息化零碎,往往都是独立的,繁多的存在,而根底数据也是严密耦合在管理系统中,甚至呈现在各个模块中,保护它们没有对立的逻辑和规定,应用上也仅仅是提供本人的零碎外部调用而已。随着时代的变迁,呈现了越来越多的信息化产品,它们自身是互相孤立和隔离的,就算不孤立也是以不同零碎独立存在的。尽管零碎类型变得更丰盛,但应用的底层根底数据其实依然是那些内容,如果还把根底数据放在某一零碎中,显然是不合理的。零碎设计的前辈们就开始逐步把这些根底数据剥离,性能也做了剥离,最终造成了一个独自的零碎,就叫做主数据系统。从此“主数据”这个更为高大上的名字开始流传开来。 主数据系统解决了哪些问题之所以把主数据系统独立建设,肯定有它的本源所在。上面咱们就来别离聊聊。 (1)主数据须要对立的治理和存储,以前更多的是把各自的根底数据存储在各自的管理系统中独立治理,但实质上这些数据的治理应该是对立的,因为它们肯定是公司层面确认并器重的外围数据,离开治理会减少治理的复杂度和危险。 (2)主数据须要一套残缺的审批流程,所有这些数据的治理,不能是输出即失效的,公司层面肯定须要申请、审批、变更的流程。确认好这一流程对于企业中的外围数据的管控尤为重要,保证数据的唯一性、有效性、完整性才是主数据存在的另一个重大意义。 (3)主数据调用形式的对立,随着SOA,微服务的遍及和风行,主数据提供了更为支流的调用形式,通过Restful或Webservice提供调用接口,并应用缓存进步读取效率。此过程也会使主数据与业务零碎解耦,使数据的应用更高效、更平安。 肯定须要主数据系统吗?主数据系统当然有存在的劣势,甚至是绝对优势,但不是肯定要搭建主数据系统,这要看企业以后的倒退阶段以及将来的倒退布局。因为要建设一套欠缺的主数据系统必然要花费大量的工夫老本和保护治理老本。所以如果企业以后阶段的主数据体量无限,并且不处于高速倒退的行业,其实没有必要立马建设欠缺的主数据系统。能够思考建设成信息化零碎的一个模块,只有保障性能绝对独立即可,便于当前剥离。 主数据如何设计首先说说主数据管理的数据内容,次要包含: (1)客户 (2)供应商 (3)物料 (4)经营主体 (5)财务科目 (6)财务核算主体 其次来看这些模块都须要提供哪些性能: (1)申请及审核流程 (2)变更流程并保留变更历史记录 (3)综合查问和数据导出 (4)调用接口及调用记录 (5)数据安全性 设计时须要特地留神的中央: (1)主数据肯定要做好数据唯一性、完整性的验证,如果呈现反复数据或者有效的数据,会葬送主数据存在的意义。 (2)主数据变更时要严格审核,因为业务零碎在应用主数据时记录的是主数据的编码,所以如果变更了主数据的含意字段,可能会造成之前应用这条主数据的业务的含意内容发生变化,而产生微小危险。 (3)主数据需做好数据隔离,因为同类数据都存储在一起,但调用的时候要思考到不同的应用权限问题,所以必要的隔离是离不开的。 (4)主数据的调用安全性,因为采纳接口方式调用,所以API平安认证不可短少,毕竟主数据是企业外围的价值数据。 后记如果您对咱们正在做的开源软件感兴趣,欢送各种模式的单干,作为贡献者或间接退出咱们!让咱们一起打造一套开源的企业级信息化解决方案。 【码云】或【GitHub】搜寻“赤龙ERP”点击星标。期待着您的反对! 与开发者交换 kzca2000

September 23, 2020 · 1 min · jiezi

关于erp:国内ERP市场现状分析及解决方案

ERP从80年代开始进入中国,为我国的企业体制改革注入了新的生机。目前,ERP已成为中小企业、大型企业不可或缺的管理工具,是企业现代化和信息化水平的重要标记。 ERP不仅仅是一款软件,更是一种治理思维,它实现了企业外部资源和相干内部资源的整合。通过软件把企业的人、财、物、产、供、销及相应的物流、信息流、资金流、治理流、增值流等严密地集成起来。 目前这个市场的现状是怎么的呢? 1、治理理念深入人心 ERP进入中国三十多年,失去了蓬勃地倒退。在ERP进入中国后,就有一些信息化治理超前的大型企业开始尝试应用ERP,并且企业的生产效率失去了很 大的晋升。往后,在这些企业的影响以及国家推动信息化的号召下,更多的中小企业也开始应用ERP软件,ERP软件缓缓在国内遍及开来,其治理理念深刻企业 之心。 2、市场群雄逐鹿 ERP软件治理理念深入人心,然而市场的竞争十分的强烈,堪称是群雄逐鹿。国内巨头厂商在中国排开阵竞争,他们的产品具备超前的国内管理模式,也有中 国本地化的特色,加之产品比拟成熟,在大型企业的竞争中占有很大的劣势。而国内的ERP厂商,尽管他们的企业规模并没有国内企业那么大,然而他们深知外乡 化的需要,博得了中小企业市场。近年,国内企业也将更多的眼光投入到国内中小企业的身上,试图进一步扩充市场份额,而国内的企业也一直在进步自身 产品的定位,因而,在ERP软件市场,竞争变得越来越强烈。 3、挪动ERP是趋势 随着5G网络时代的到来,手机不再仅仅是通信工具,更是普及率最高的信息化终端。ERP的信息化治理也不再局限于PC端,办公人员心愿随时随地都能登录ERP零碎进行资源管理,因而挪动ERP就应需诞生了。 挪动ERP曾经利用于各行各业,它的特点是简洁、不便、成本低,并且能够解脱网线和PC的解放,给企业治理带来了很大的便当。  JNPF疾速开发平台的SaaS开发管理体系,ERP、BPM、OA三个零碎能够很好的交融利用,国内外企事业单位也能够最大化的感触到三者一体化应用的高效和便捷,也能够依此来最大化的进步企业的运行效率和经营收益。 简洁大气的界面 操作简略,web可视化开发,代码一键生成。 弱小的报表利用和报表统计 PC端大屏报表 丰盛的报表示例 人事、财务审批,对日常工作如销假、薪酬发放、差旅费报销、加班、外出、办公用品领用等等一系列流程规范化以及有条理统计,让繁琐的流程变为轻量级。 电子签章 多语言设置,国内外企业应用JNPF无障碍。 更有APP小程序挪动端一键同步,实现挪动ERP。 挪动互联网时代,挪动商务是不可阻挡的潮流,因而挪动ERP的前景是十分光明的。然而同时,挪动ERP不仅面临着ERP软件自身的挑战,同时也面临着挪动互联带来的挑战。

September 4, 2020 · 1 min · jiezi

关于erp:SpringBoot2搭建基础架构开源软件诞生4

技术框架篇--第4篇用日志记录“开源软件”的诞生 赤龙ERP开源地址:点亮星标,感激反对,加微信与开发者交换 kzca2000 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 筹备工作搭建根底框架前,肯定要筹备好开发环境。先装置软件(以我本地环境为例),包含: IDE(Eclipse最新版)JDK1.8Tomcat8.5MySQL8.0Redis最新版SVN、Git装置流程不做具体阐明。说几个须要留神的中央: (1)Tomcat装置好后须要对server.xml做一些配置和优化(端口、利用、域名、NIO、线程池、SSL等) (2)对JVM做必要的内存配置优化 (3)MySQL装置时留神编码UTF-8 (4)Redis须要配置明码和长久化(AOF) 框架的根本要求搭建利用的底层框架,总是要或多或少的依据情景思考一些问题,而不能是框架和技术的简略堆砌。那么搭建框架要满足哪些要求呢? (1)安全性:因为是信息化管理系统,应用的用户是企业外部的职员和高管,那么对于安全性和权限的思考就要晋升一个档次了。比方:谁能拜访哪些性能、谁能做哪些操作,谁能看到什么数据、又应用什么形式能够更便捷的实现各种安全性的思考。 (2)升高信息流的复杂性:简略解释一下,ERP零碎是一个很非凡的零碎,因为它是企业中简单治理流程、业务流程、财务流程的实现。所以它有着紧密的逻辑与流程,零碎中简直没有独立的模块或性能,零碎外部各局部相互依赖的复杂程度难以想象。如何升高这些依赖关系的复杂度,就是框架中急不可待解决的问题。 (3)进步开发效率:信息化零碎开发时的一大特点就是代码复用水平高,无论是反复的增删改查,还是表单解决,设置是各种报表,太多的反复工作会节约太多的工夫。开发人员应该把工作集中在逻辑和算法下面,而不是这些简略的复制粘贴批改上。 (4)灵便的可配置可扩大:信息化零碎的另一个特色就是个性化需要十分高,即便对于一个简略的流程,也可能呈现多样化的各种要求。这往往依据企业的治理状况而定。如何竭尽所能在缩小客户化开发的前提下,满足更多的需要是咱们要思考的问题。 (5)升高学习老本和保护老本:因为这是一款开源软件,咱们要思考的不能仅仅是高大上的技术应用,而是要能让更多的开发者和使用者,能够疾速部署,并进行个性化开发。无论在展现层、管制层、长久层,还是在各第三方组件的应用中都要尽量思考到如何让更多的人能够应用咱们的软件。 如何解决问题 针对以上的要求,咱们如何设计零碎,解决问题,并最终搭建满足咱们需要的底层框架呢?咱们一起来尝试摸索一下。 说到安全性,就离不开登陆、权限、加密这些场景。 (1)登陆我应用了cas,它是一个SSO框架,采纳票据验证机制保障了,认证的平安。 (2)受权我采纳了shiro框架与cas无缝整合,依据三类权限的设置,保障了菜单、按钮、数据的精密管制 (3)加密包含对HTTP头的加密(SSL),对要害业务数据的加密(AES、SHA1)升高信息流的复杂性,最外围的是如何梳理,如何切分业务,模块之间如何相互调用。 (1)梳理和切分业务其实更多的是教训问题,但有个通用的大准则,高内聚;也就是把关联性极高的性能放在一起,而对外裸露必要的接口供调用即可。其中还要思考到一些根底数据的通用化设计。比方:组织信息、职员信息、主数据、数据字典等,独自设计并对外提供有双层缓存的接口。(其中也要思考到缓存的更新策略) (2)模块间我用Maven父子我的项目做了划分,也为间接的接口调用和REST格调的API调用做了不同形式的设计如何进步开发效率,应该是咱们认真思考的话题。因为这真的很重要。如果解决切当甚至会节俭30%-40%的研发工夫。 (1)代码主动生成工具:我研发了一套能够主动生成Controller、Service、Dao、Model以及所有配置及注解的工具。以后这是基于我指定的代码标准。只须要批改两到三个配置项,即可一键在我的项目下生成咱们所需的代码。原本至多要编写半小时的代码,当初只须要10秒钟。 (2)可复用的工具包:十几年积攒的所有工具类可提供疾速的动态调用形式 (3)抽丝剥茧,独立的功能设计:很多罕用的第三方组件或技术的解决形式,形象进去,加以复用。比方:线程、Redis、JMS、Socket、Json、Groovy、Mongo等。 (4)多功能的AOP解决:基本思路是通过AOP及自定义注解灵便退出各种辅助解决性能。比方:办法缓存、主动set根底字段值、日志解决、数据权限管制等。 (5)必要的通用性能:通过Spring提供的技术,实现异样解决、类型转换、数据验证、API申请拦挡等各种解决要求。可配置可扩大其实说起来简略做起来难。可能很多软件都是这么宣传的,但真正做到的并不多。其实我认为次要做到如下几点就能够了: (1)字段的可扩大,即能够通过配置的形式减少辅助字段,并且能实现1对1构造,和1对多构造的两种形式。 (2)流程的灵活处理。软件往往设计上会固定某一主流程,只有设计上让这一流程的组织不固定,而绝对涣散的实现即可。 (3)功能性模块的高度可配:比方权限零碎、报表零碎、工作流、数据字典最初一个是无关升高学习老本和保护老本的问题。我感觉这更多是因为要匹配开源的要求,开源的使用者少数是集体或小团体,这对于遍及一款开源产品显得尤为重要。怎么做呢? (1)用最遍及的技术、起码的技术品种、实现更多的需要。 (2)提供最简略的配置文档以实现程序部署。对将来的思考为了思考单体需要的激增,不得不应答高并发以及高可用的情景。所以当初技术抉择以及底层搭建时就肯定要有所考量。以后框架肯定要能够疾速引入新技术并能够高效整合。我认为Springboot肯定是Java语言当下是最优的抉择,也为SpringCloud的降级做了足够筹备。 当然其中还有很多要思考的内容,比方:负载平衡、音讯队列、数据总线、读写拆散、异步并发、降级限流等。在此不展开讨论,如果有趣味可与开发者间接沟通。 后记明天的日志写的比拟长,但还没有包含很多中间件的优化和配置阐明,为了给开源软件的使用者简化他们的部署工作,我会在前面附加一个技术补充文章。 心愿您读完本文能够帮忙笔者进入【码云】或【GitHub】点点星标。感激大家的反对!

August 29, 2020 · 1 min · jiezi

一段让人瑟瑟发抖的ABAP代码

昨天11月1日是万圣节,Jerry在继续忙着调研SAP Commerce Cloud里的产品主数据管理。晚上回家到SAP国外的社交媒体上一看,好热闹啊。国外的SAP从业者们纷纷以各种各样的方式庆祝万圣节。 西方的万圣节也是一个历史悠久的节日了:早在两千多年前,欧洲基督教会就把每年的11月1日定为“天下圣徒之日”(All Hallows' Day)。这一天被看作是夏天正式结束之日,也就是新年伊始,严酷的冬天开始的第一天。当时的人们相信,故人的亡灵会在这一天回到故居地,在活人身上找寻生灵,借此再生。而活人则惧怕死人的魂灵来夺生,于是人们在这一天熄掉炉火和烛光,让死人的魂灵无法找到活人,同时又把自己打扮成妖魔鬼怪把死人的魂灵吓走。 所以,国外的ABAP开发者们在这天也不甘寂寞,一位老哥提出了用“Scare with ABAP”的主题来搞事情,为万圣节增添一些节日气氛。 这一提议得到了大家的纷纷响应。 对于这种ABAP字符串模板和字符串内嵌函数的使用,肯定不能够让ABAP老司机们瑟瑟发抖。 这种程度的ABAP代码显然也不足以让ABAP老司机们受到惊吓: 那么看看Jerry这段ABAP代码?没有任何语法错误,能够成功激活,成功执行。 源代码如下: REPORT 汪子熙的Report,吓死人了!!!!!. INCLUDE NOT. IF NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOTNOT NOT NOT NOT NOT NOT NOT NOT NOT NOT !NOT OR NOTNOT NOT !NOT OR NOT NOT NOT NOT NOT=>NOT( NOT ) ANDNOT NOT NOT !NOT OR NOT NOT !NOT AND NOT !NOT ... NOT. ...

November 5, 2019 · 1 min · jiezi

如何在Hybris-commerce里创建一个media对象

进入backoffice的Media中心,首先新建一个文件夹,用于存放即将创建的media对象:取名为jerryimage: 然后创建一个新的media对象,取名jerryproductimage:上传图片: 选择这个media对象存放的文件夹: 从staged catalog同步到online catalog: 同步成功:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

November 4, 2019 · 1 min · jiezi

在SAP云平台ABAP编程环境上编写第一段ABAP程序

距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP’s Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今,已经过去了两年的时间。 目前国内的技术媒体平台上,已经有了部分概要性介绍SAP Cloud Platform ABAP编程环境的中文文章,但涉及到具体操作细节的文章比较少。 Jerry最近会做一系列关于如何在SAP Cloud Platform上的ABAP编程环境上做开发的分享。 其实对于一个已经能够熟练使用ABAP Development Tools连接On-Premises ABAP Netweaver服务器做开发的传统开发人员而言,迁移到从On-Premises迁移到SAP云平台上的难度不大,只是需要注意一些开发理念上的转变,这个转变我们在后续具体做开发时会提到。 这种相对平缓的迁移和学习曲线,对于SAP全球庞大生态圈的企业和开发人员来说,无疑是一个好消息——这意味着SAP正在进行中的向云端数字化转型的旅程里,这些企业和个人也能够加入其中,并且他们以前在On-Premises时代积累的宝贵的技术和业务领域知识,能够继续在云时代发光发热。 我曾经在网络上了解到,很多自学SAP ABAP的朋友们,面临的第一道关卡就是在自己本地搭一台Netweaver服务器出来。作为一个写了12年代码的老开发人员,Jerry也搭过各种本地开发环境,深知这里面的水有多深。我以前的老板,也给我们分享过他当年来SAP成都研究院面试的时候,自己本地也搭过Netweaver,并且短短几天啃完几百页的Netweaver英文文档的经历。 相信每一位在本地搭建Netweaver的ABAP学习者,当成功看到Hello World输出的那一刻,成就感一定爆棚。 然而,当Jerry第一次在SAP Cloud Platform的ABAP编程环境上看到Hello World时,却没有多少成就感,因为直接按照ABAP Development Tool里的项目创建向导一步步操作就可以了,过程比较简单易懂——这也体现了云时代到来后,对传统应用开发人员工作方式的影响:无需费神去关心底层硬件或者操作系统等资源,可以把精力集中于应用程序逻辑的编写上。换言之,SAP负责管理和维护底层HANA数据库和中层的ABAP runtime,用户只需管理顶层的ABAP应用代码。 使用ABAP Development Tools的项目创建向导:New->ABAP Cloud Project: Service Instance Connection,选择SAP Cloud Platform CloudFoundry environment: 选择Region,输入用户名密码,前提是你得在这个region下有一个global Account。 下图是我在SAP Cloud Platform的CloudFoundry环境里的Global Account: 这个Global Account所属的space下面我创建了一个ABAP系统实例,ID为ME1: 这个ABAP运行实例具有16GB运行内存,64GB的HANA内存。 再回到ABAP Development Tools, 在项目创建向导里使用Cockpit里维护的上述属性: 点Next,在ABAP Development Tools里会看到一个嵌入的登录窗口。因为Jerry使用的是SAP社区Mentor的账号,所以登录窗口显示的标题是:Welcome to Mentors! ...

July 4, 2019 · 1 min · jiezi

一个SAP开发人员的养蚕流水帐

Jerry打算以此文来给汪子熙全家进行了一个多月的养蚕经历画上一个圆满的句号。 南方长大的80后,对蚕应该不会太陌生。大家还记得你们小时候学过的课文《蚕姑娘》么?课文开头是这样的: 春天天气暖洋洋,蚕卵里钻出蚕姑娘。 又黑又小的蚕姑娘,吃了几天桑叶,就睡在蚕床上,不吃也不动,脱下黑衣裳。醒了,醒了,变成黄姑娘。 又黄又瘦的蚕姑娘,吃了几天桑叶,又睡在蚕床上,不吃也不动,脱下黄衣裳。醒了,醒了变成白姑娘。 又白又嫩的蚕姑娘,吃了几天桑叶,又睡在蚕床上,脱下旧衣裳,换上新衣裳。醒了,醒了,从此一天一天发胖。。。 Jerry小时候当然也学过这篇课文,也按照语文老师的吩咐,在家里养了十几只桑蚕,并且观察它们每天的生长情况。准确的说,我小时只负责观察,一切其他的后勤工作都由我父母完成。由于年龄太小,当时所有的细节我都淡忘了,只依稀记得每只蚕最后都在纸盒里结出了洁白的茧。 时光荏苒,现在Jerry成为了父亲,开始协助汪子熙完成他的语文老师布置的养蚕观察作业。 感谢现在科技水平的飞速发展,我手上30倍的放大镜和三星手机1600万像素的摄像头,让我能够比小时候更清晰地观察蚕们的一举一动。 知乎上有一些很有意思的问题,概括起来大致为:为什么很多人喜欢蚕,但是讨厌,甚至害怕毛毛虫? 我养了一个多月的蚕,我想对于这个问题我有一定的发言权。以下是Jerry对这个问题的看法。下文所说的蚕,如无特殊说明,都指大家为了完成学校作业所养的桑蚕里的大白蚕。 1. 作为一个长期以农业占主导地位的国家,蚕因为能出产具有极高经济价值的蚕丝,从而在我国悠久的农业历史中始终享有很高的地位。早在商周时期,古人们就已经开始在室内养蚕,这个传统延续了几千年一直到现在。 秦汉以后,咱们的养蚕技术通过举世闻名的丝绸之路传入到中亚、南亚及西亚地区,进而传播到欧洲。简单的说,因为蚕对人类有用,所以人类喜爱它们。再加上文人墨客从人类的视角出发,在观察了蚕吃桑叶吐丝的行为之后,发出了"春蚕到死丝方尽,留赠他人御风寒"这种极富褒义色彩的感叹,这使得蚕又经常和另一个具有崇高意义的名词——教师关联起来。在我们从小就接受这些对于蚕正面评价的教育下,我们很难对蚕讨厌得起来。 2. 从外观上看,虽然都是软体动物,蚕和毛毛虫的颜值可谓一个在天上,一个在地上。蚕的全身洁白,白色在我国一直是纯洁的象征,而毛毛虫的颜色往往都很非主流;蚕的全身很光滑,不像毛毛虫那样浑身长满了让人害怕的绒毛。 蚕的性情非常温顺,不会对人造成任何伤害,所以Jerry经常把它们放在自己手上让它们爬来爬去,近距离观察。有的毛毛虫,身上的绒毛蜇到人的皮肤后,会让人很不适,因此大家都不喜欢。 3. 养蚕的环境散发出来的气味很香,至少Jerry闻到的味道是如此。那些动辄饲养上万只蚕的场所发出的气味不在本文讨论之内。蚕吃的桑叶本身带着植物特有的芳香,Jerry也曾经把鼻子凑在自己手上爬来爬去的蚕附近使劲闻,也没有闻到任何味道。而一般的毛毛虫,看着就够恶心了,我实在没有勇气去闻闻它们是什么味道。 4. 蚕很萌。蚕吃得白白胖胖圆圆滚滚在桑叶上蠕动着身子一节节地爬来爬去的样子很萌。如果养了一大群蚕,那么你一定能观察到这种情况:有时在忙忙碌碌啃桑叶的蚕们中间,间杂着几只高昂着头“思考蚕生”的另类: 比如下图正中这只。 关于蚕为什么会昂着头一动不动,网上公认的说法是它们这是在休息,在睡觉。每当这时,我都会忍不住,用手指头轻轻去摸摸它们。有的时候它们被我揩油之后,没有任何反应;有的时候像是受惊了一样,昂起的上半身猛地一缩,很好笑。 5. 蚕的一身都是宝。除了蚕丝能用来做丝绸,蚕丝被,蚕沙(蚕的粪便)能入药,做枕头,蚕蛹能食用之外,很多心灵手巧的小朋友们还用蚕茧做成了各种各样的小工艺品: 透过这些纯天然纯绿色的小手工,我们能看到孩子们如水晶般纯洁的心灵。 前面说到我那30倍放大镜和1600万摄像头的三星手机(这配置在2019年来看应该很渣吧), 是时候让它们出来发挥作用了。 下面是一张蚕宝宝的靓照,最左边棕色的椭圆形部分就是蚕的头部,剩下的都是它的躯干,在靠近头部的胸部部分有三对足,其后每一节身躯的底部都有一对足,总共7对14只足;大家如果仔细看这张照片,会发现蚕的足上其实长了绒毛,而且足的底部还有洗盘,能使自己牢牢吸附在桑叶上,这样能保证蚕即使在桑叶背面爬动时,也不会因为重力原因落到地上。 在躯干的最末一节还有一根小小的向上凸起的尖刺,这是蚕的尾角,我们可以用来辨别蚕的雌雄:雌蚕尾角往前翘且有黑点;雄蚕尾角往上翘而无黑点。这根看似不起眼的尾角对蚕来说是非常重要的器官:其生理作用主要是平衡蚕体内的水压,使蚕前后水压保持相同。蚕的体壁内,肠部,气管和神经等组织都浸泡在血液之中,从蚕的照片我们一眼就能看出蚕的体型是前部稍大尾部稍小,因此需要借助尾角,确保蚕尾部承受液体的压力和胸部的一致。  蚕躯干的每一节都还有一个非常醒目的黑点,这是所有昆虫都具有的呼吸器官——气门,只是蚕的比较明显容易被观察罢了。当蚕周围的气温发生变化时,蚕会借助开关气门的方法来调节体温,让身体的体温适应周围的温度。 那么蚕的眼睛和嘴呢? 先来张头部的正面特写。这小脑袋是不是很萌? 我们很容易根据人类的五官,去揣度蚕的眼睛所在的部位,即头部正中那两个小黑点,事实并不是这样。下面这张图才是蚕的眼在头部的正确部位。是的,我们说眼而不是眼睛,因为蚕作为昆虫,眼部构造和人的眼睛相差太多太多。蚕不像苍蝇,蜻蜓那些昆虫一样具有复眼,蚕的眼是单眼,包含一些感光细胞,能够感觉到光线的强弱,但并没有视觉作用。实际上蚕是靠嗅觉和触觉来判断前方的物体和前进方向,而非视觉。 蚕的嘴也非常有意思。 准确地讲,蚕是用“咀嚼式口器”来进食桑叶的。咀嚼式口器是昆虫具备的另一个非常典型的器官,用来取食固体食物,和人的嘴巴一样有上唇、下唇、上颚(牙齿)和舌,但同时它还有下唇须、下颚和下颚须。蚕的口器上颚前端有锋利的齿,叫做切区,用来切断桑叶纤维。当然,这个锋利是从蚕的角度出发针对桑叶而言的,对人的手指皮肤没有一丁点的破坏力。蚕进食桑叶时,口器会上下蠕动,在桑叶上留下一道道半圆形的缺口。 大家请看下面这段Jerry拍摄的蚕们狼吞虎咽进食桑叶的视频,注意观察文中提到的半圆形缺口: https://v.qq.com/x/page/n08915ahnh1.html 蚕的一生会经历下图四个阶段,在我们小学语文课文《蚕姑娘》里已经阐述清楚了。 蚕蛾产下的卵: 这些卵逐渐变成褐色后,就意味着新的蚕即将来到这个世上了。刚刚破卵而出的蚕个头非常小,遍体黑色,因为很像小蚂蚁,我们称之为“蚁蚕”。 蚁蚕不停得啃桑叶,逐渐长成了大家印象中的蚕的白白胖胖的样子。 蚕一生中总共会蜕4次皮,和其他很多昆虫一样,蚕在生长发育过程中其表皮不能随着身体长大而长大,因此当蚕的身体长大受到限制时,蚕就要蜕皮。Jerry也不知道导演雷德利·斯科特(Ridley Scott)的《异形》系列里的异形蜕皮生长的设定,是否受到了蚕蜕皮的启发。 看一段Jerry拍摄的蚕蜕皮的视频(这种视频很不容易拍到): https://v.qq.com/x/page/t0891... 这是Jerry收集的蚕蜕下的皮,也是一种中药。 ...

July 4, 2019 · 1 min · jiezi

2019年6月SAP发布的未来ABAP平台的发展方向

未来ABAP平台将始终是这些产品的技术平台: S/4HANA On-Premises和Cloud将基于一个统一的ABAP codeline: SAP云平台上的ABAP编程环境: 什么是SAP Cloud Platform上的ABAP编程环境?该编程环境使用基于云优化之后的ABAP编程语言,是传统ABAP编程语言的一个子集,有部分关键字和ABAP语言特性因为不适合云的使用场合,故在SAP Cloud Platform的ABAP环境上无法使用。 在SAP Cloud Platform的ABAP编程环境里推荐使用ABAP Restful编程模型,能方便地扩展云和On-Premises系统上的SAP解决方案。 使用基于Eclipse的ABAP Development Tool这个开发IDE,同时能充分利用SAP云平台上提供的各种服务。 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

July 3, 2019 · 1 min · jiezi

CRM和C4C里的组织架构-Organizational-Structure

CRM(WebClient UI) CRM(SAP GUI,事务码PPOMA_CRM) C4C以列表方式显示: 以图形方式显示: UI模型:/SAP_BYD_APPLICATION_UI/mom/org/COD_OrgUnit_OWL.OWL.uicomponent 明细页面:/SAP_BYD_APPLICATION_UI/mom/org/COD_OrgUnit_TI BO name: OrganisationalUnit通过递归执行association ChildOrganisationalUnit就可以得到unit hierarchy: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

July 2, 2019 · 1 min · jiezi

SAP-Marketing-Cloud里的contact-main-facet是什么意思

界面如下: Basically, contact data for SAP Hybris Marketing can be loaded from various sources, such as an ERP system, a web shop, social media and many more.Contact数据源可以来自各个渠道,例如ERP系统,电商,社交媒体账号等等。每个渠道都可以成为Marketing Cloud系统里最终完整contact实例的一块拼图,这个完整的contact实例也称为Golden record。Each source may contribute to the building of the Golden Record, which represents the most valuable contact master data stored in one single record per contact.而数据源渠道自身也被称为Main facets,用于提供常规意义上的contact信息,以及额外信息,例如地址信息,电子邮箱地址,信用卡号,手机号等等。这些额外信息也称为additional facet。Therefore, the sources themselves are considered as Main Facets, which might provide general contact data, such as address data or data for customer-specific fields. A Main Facet might also have data, for example, a loyalty card number, an email address, a phone, a mobile or a fax number. Because of their identifyingnature, we consider these attributes as Additional Facets. ...

July 2, 2019 · 1 min · jiezi

ABAP很厉害是怎么一种体验?

知乎上偶然看到这个问题,觉得很有意思,我也来回答一发。我本科和研究生学的是计算机专业,做项目用C/C++,研究生三年项目的代码量大概在三到四万行左右。2007年大学毕业加入SAP成都研究院一直工作到现在,工作中用的最熟练的编程语言是ABAP,Java和JavaScript。当然做SAP Cloud application Studio这个工具开发时,也用过一段时间的C#。做一个SAP内部的大数据项目也用过一阵子Scala,Python和Go语言在做Hyperledge Fabric on SAP Cloud Platform时也学了一些皮毛。我没有把自己定位成“ABAP开发人员”或是“Java开发人员”,而是“SAP应用开发人员”。也就是说组织给我分配一个开发任务,我自己就得去琢磨,选择合适的编程语言来完成。ABAP,Java和JavaScript这三门我工作中用的最多的编程语言,在我眼中没有优劣之分,就是不同的编程工具,有各自的适用场合,如此而已。我曾经写过一篇文章:Jerry的ABAP, Java和JavaScript乱炖百度即可找到,里面包含了我对这三门语言一些特性的横向比较。文章链接:https://www.cnblogs.com/sap-j…回到ABAP语言本身,我认识SAP总部Walldorf很多资深的ABAP应用开发人员,当然也包括ABAP编程语言本身的开发人员,即用C语言开发ABAP虚拟机和运行时的那些同事,称呼他们为计算机科学家更合适。我想任何资深的ABAP应用开发人员,在他们面前也没有资格说自己“ABAP如何如何厉害”,因为这些计算机科学家们才是ABAP世界的创世主和维护者。C和ABAP的关系,可以参考我这篇文章:聊聊C语言和ABAP文章链接:https://www.jianshu.com/p/a99…至于一些网络上老生常谈的问题,诸如:做ABAP开发有前/钱途吗?为什么ABAP开发的收入比Java开发高/低?我已经在一些文章里表明了我的个人意见:上图文章的链接:https://blogs.sap.com/2017/01…中文版:ABAP开发人员未来应该学些什么文章链接:https://www.jianshu.com/p/b74…我写过的其他一些关于ABAP的文章:Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现:https://www.jianshu.com/p/ceb…Jerry的ABAP原创技术文章合集:https://www.jianshu.com/p/020…300行ABAP代码实现一个最简单的区块链原型:https://www.jianshu.com/p/844…ABAP vs Java, 蛙泳 vs 自由泳:https://www.jianshu.com/p/4a0…动手使用ABAP Channel开发一些小工具,提升日常工作效率:https://www.jianshu.com/p/1cb…我用ABAP做过的那些无聊的事情:https://www.jianshu.com/p/688…使用Visual Studio Code编写和激活ABAP代码 (上):https://www.jianshu.com/p/0db…你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧:https://www.jianshu.com/p/97c…关注Jerry的公众号“汪子熙”,轻松获得所有SAP文章:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

April 13, 2019 · 1 min · jiezi

我做SAP CRM One Order redesign的一些心得体会

框架开发和应用程序的开发完全不一样。举个具体的最近折腾我的例子: 创建新的service order,维护header的shipping data,此时order和shipping data的mode 都是creation,然后创建line item,添加product,header的shipping data带到line item,然后在line shipping data做修改,item的mode变成了change,此时不存盘,直接删除该item,然后马上另外创建一个item,继续编辑,此时第二个item的mode是creation,前一个item的change mode变为deletion,然后再删除第二次加的line item,不存盘,再创建第三个project,维护一些数据,存盘。此时我代码里的buffer处理会出问题,存到DB确实有一条item数据,但是已经corrupt掉了。 由于我buffer 处理logic有bug, 我花了很大功夫最后发现是第二次被删除的那条数据的内容被错误存到了DB里: 我甚至花了大量的时间来找重现这个错误的办法,因为最初我是偶然的机会发现这个错误,但是没留意我的操作,最后才找到能稳定复现问题的步骤,赶紧记录下来: 这个buffer处理的bug直接导致了今天三个新bug: 这就是框架开发的难度。如果是做应用,可以和PO商量,哪个客户吃饱了做这种操作?不支持。但是这些操作从Oneorder框架的角度来看,无非就是create, update和delete三个local buffer的处理罢了,没有任何理由不支持这种sequence的操作。反过来说,当developer经过一段时间努力之后能够自如地应对这些挑战,从这些bug中抽丝剥茧定位问题,给出correction,他的开发能力一定能得到很大提升。Developer对于自己编程能力的提升是没有止境的,我来之前本早已对自己的编程能力非常自信,但是经过这21天的开发,我还是造了一共40个bug出来。但我最终都fix了他们,每解决一个bug就像以前Wuji老师用游戏打比方一样,获得一定经验值。bug越难经验值越高。我做这个POC确实是全神贯注拿出全部精力去做,就这样都还生产了这么多bug,确实很烧脑。我每踩一个坑,都会用Jerry : timestamp这种格式写下注释. 如果用Jerry做关键字搜索,能发现34处坑:每一处坑趟过之后都增加了我对one order的理解,我把这些bug当作我的一笔财富。比如看这个"this code is ugly"的注释,点进去看: 确实很ugly,这恰恰就是fix注1里提到那个buffer更新bug的correction的一部分,加了注释估计没接触过one order的人也看不懂。我们拿成都现在已经完成一部分的product harmonization为例来看:7531行代码。而这个POC,做到今天是第21天,代码量已经超过product harmonization一半了。请看其中我highlight的这个class,是我的搭档IMS写的,他从2010年开始做One order。这个class 到现在写了921行,就为了实现一个功能:把partner的数据从新表里读出来,放到对应的buffer里去。为什么有921行?因为buffer的插入很有讲究。我每天吃饭,骑车的时候都在想这些buffer的东西。这个redesign的关键用三个词来概括的话,就是buffer, buffer, buffer.2017-05-15 9:45PMModel redesign targetOne order model redesign主要发生在下图我画的黑色方框内的模块, 下列是需要完全重新开发, 而非harmonization的内容新的数据库表。每个object type一张表,比如BUS2000116是Service process,有且仅有一张header 表,BUS2000131是sales item,有且仅有一张item表围绕这些数据库表的CRUD API.简单的说,就是这两件事。当然和One order 框架的复杂程度相关。Scope其中有9个component是硬骨头,当前POC已经done了两个,我用黄色标记。现有的POC,整体框架已经搭起来了,one order在新的model下已能正常工作,productive实现除了上述提到的7个硬骨头之外,不存在做不出来的东西和Feature. 当然,根据大家这么多年的开发经验,POC不可能100%暴露productive开发的所有问题。概括起来说,就是我们不需要从头空想一套东西来实现,一切以现有的POC为基础,这也是Carsten现在对这个POC非常重视的原因,每个方法,每行代码,在他力所能及可以抽出时间review的时候,他都不放过。开发这个事情并不是说工作认真负责就能deliver高质量的代码。打个不恰当的例子,我和Oliver工作都很认真,但我们还是生产了38个bug.和Carsten一起工作一个月,我对他工作风格的体会:一方面,他review你东西的时候非常仔细,非常注重细节,包括我之前举的例子,比如某方法是在LOOP里call还是外面call好,method的参数设置等等。另一方面,对于什么才是正确的design,他往往只给出大方向,overall的思路,但不会具体到可以直接拿来实现那么细的粒度,比如他不会告诉你为了实现他的思路,需要几个class,每个class几个方法,每个方法参数如何定义。他这种工作方式make sense,因为Chief Architect不需要把事情拆分这么细。这样就造成我最近按照我自己的理解去实现他那些思路,所以经常返工,refact. 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

March 10, 2019 · 1 min · jiezi

你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧

最近Jerry在忙一个项目,技术栈换成了nodejs平台,语言换成了JavaScript,因为赶项目进度,一直没时间更新公众号。感谢大家的支持,关注人数还是慢慢地增长到了3000。今天我们来聊聊一个比较轻松的话题。当今这个数字化时代,大家的生活都离不开互联网。互联网公司为了确保服务器不会因为软硬件问题宕机而影响自己的业务,纷纷使出浑身解数,包括设计更健壮的架构,实现高质量的代码,提供硬件条件更好的机房等。当然也有一些脑洞大开的公司,另辟蹊径,采取让佛祖对服务器进行开光的方式,来实现"服务器永不宕机"的美好愿望。下面是Jerry从一则搜狐新闻上看到的一些有趣的图片,转贴于此,新闻原文网址:http://www.sohu.com/a/1166219…有请高僧给服务器贴上灵符:看着这个符咒,Jerry想起了自己曾经通关过无数遍的仙剑奇侠传98柔情版里各种各样的灵符。高僧正在认真地进行开光仪式:这些难道是IT管理员,或者SAP称呼的Basis们,虔诚地跪在服务器前向佛祖祈祷“永不宕机”吗?除了“永不宕机”外,“永无bug”也是程序员们另一个美好的愿望。于是乎,有些程序员希望通过在代码头部加上这种注释,来获得一些心理上的慰藉。而对于SAP ABAP程序员,一看到bug这个词,最容易联想到什么?不知道大家心中的答案是什么,Jerry的答案是:ST22。ABAP程序在执行时,如果遇到了没有捕捉的异常,程序会终止,同时ABAP运行时会产生一个类似Windows系统蓝屏的core dump:这种dump可以在事务码ST22里查看。一般来说,一个有经验的ABAP程序员,通过分析ST22里提供的程序崩溃时的上下文信息,系统变量的内容,调用栈等等,不难修复这种bug。下图是ST22里dump的一个例子,值得一提的是大家可能会忽略的BASIS Developer View, 里面包含了引起运行时错误的ABAP语句对应的C语言实现的具体文件位置,比如下图的//bas/753_STACK/src/krn/abap/runt/abassert.c。大家还记得我写过的聊聊C语言和ABAP 这篇文章么?这里我偷个懒,把那篇文章里介绍C语言和ABAP语言关系的文字引用过来:为什么这篇文章要把C语言和ABAP放在一起讲,而不是别的语言比如Java和ABAP呢?因为ABAP语言底层是基于C/C++实现的,包括其关键字(比如最简单的关键字WRITE的C++实现有2千多行)和虚拟机(ABAP Runtime)。SAP内部的一群计算机科学家们发明了ABAP这门伟大的语言,由它实现的各种SAP应用帮助了全球超过180个国家和地区的客户们更好地运行其业务。通过Google我们能搜索到一些关于这些SAP计算机科学家们的介绍,比如这个链接:http://sapexperts.wispubs.com…SAP内部的Netweaver开发服务器上是能够浏览这些C语言代码的。Jerry 2017年在德国工作时,业余时间比较多,相关的C代码也阅读了不少,比如ABAP里最简单的WRITE关键字,其C语言实现有2000多行。可惜因为这些C语言实现对客户和partner不可见,因此无法在这里给大家分享它们的逻辑。再回到ST22。相信每一位ABAP程序员运行代码看到ST22的dump后,心里都会很沮丧。这个时候,如果有佛祖能够给引起bug的代码开开光,那将是一件很鼓舞人心的事情。相信无论使用何种编程语言的程序员,看到下图红色高亮的这两行字,都会精神为之一振:佛祖保佑,永无bug这段代码佛祖已经做过开光处理,绝无可能再产生bug如何实现ST22里这个显示效果?其实ST22和Windows系统蓝屏显示逻辑一样,都是一段静态模板文本加上运行时异常的实际动态内容合并而成。模板文字存储在ABAP Netweaver服务器的数据库表里。我们只需要在ST22的框架代码把模板文本从数据库表读出之后,将佛祖开光的文本动态添加到模板文本的头部,就大功告成了。实现步骤非常简单,在ST22标准程序SAPMS380的subroutine read_snapt内创建一个隐式增强。从read_snapt的代码能看出ST22的模板文本是存储在数据库表SNAPT里的。把佛祖开光的文本注入到read_snapt输出的头部:这段隐式增强的代码我放在了我的Github上:https://github.com/i042416/Kn…最终效果就是每次出现了运行时程序执行错误后,程序员到ST22里查看dump时,总能看到“佛祖保佑,永无BUG”几个字。这个例子其实也再次体现了Jerry之前提到的,作为ABAP开发环境和运行环境和二而一的Netweaver,给开发者提供了强大的可扩展性。最后也是最重要的1. 本文提供的步骤涉及到了对ABAP框架代码的隐式增强,请谨慎使用。禁止在测试服务器和生产服务器使用! 否则由此造成的一切负面后果,Jerry本人及SAP概不负责。2. 如果真的想确保自己交付的代码“永无BUG”,程序员还是得老老实实练好自己的内功,而不要把自己的命运交给佛祖。毕竟国内这么多程序员,这么多行代码,要是每一位程序员每一行代码都要由佛祖开光,佛祖得多累鸭,佛祖忙不过来鸭!更多阅读动手使用ABAP Channel开发一些小工具,提升日常工作效率聊聊C语言和ABAPABAP vs Java, 蛙泳 vs 自由泳300行ABAP代码实现一个最简单的区块链原型Jerry的ABAP原创技术文章合集ABAP开发人员未来应该学些什么Jerry的ABAP, Java和JavaScript乱炖我用ABAP做过的那些无聊的事情不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧那些年我用过的SAP IDE使用Visual Studio Code编写和激活ABAP代码

March 10, 2019 · 1 min · jiezi

Fiori Fundamentals和SAP UI5 Web Components

这周有位同事邀请我给团队讲一讲SAP技术的演进历史,所以我准备了下面几个主题来介绍。其中SAP的技术回顾和演进,我的思路就是从前后台两方面分别介绍。我画了一张非常简单的图:去年5月我写过一篇文章:SAP UI和Salesforce UI开发漫谈,简要回顾了SAPUI技术的发展,从最古老的SAP GUI绘制界面,到Webdynpro / WebUI再到现在广泛使用的Fiori UX。当时这篇文章介绍到Fiori(UI5)就嘎然而止了,如今大半年过去了,我们继续聊聊Fiori的发展动向。根据Jerry从SAP社区上已经发布的信息来看,Fiori的两个发展方向,我个人概括为:1. 兼容并蓄,即通过Fiori Fundamentals,让使用非UI5开发框架的前端开发人员,用其喜爱的技术,也能开发出符合Fiori UX的应用。2. 轻装上阵,即通过SAP UI5 Web Components,既能继续提供像之前UI5控件库那些开箱即用的众多UI控件,又避免了前端应用对UI5框架的依赖。我们来分别了解一下这两个新概念。Fiori Fundamentals看看SAP官网上的权威定义:https://experience.sap.com/ne…Jerry在上图把最关键的信息都用红色高亮出来了。重点:1. Fiori Fundamentals在前端应用里扮演着一个轻量级展现层的角色,可配合Angular, React和Vue等前端框架一起使用。2. Fiori Fundamentals不是一项新的UI技术,更不会取代UI5,而是一个CSS和HTML标签的集合,使得开发人员能使用其偏爱的UI框架去开发具有Fiori UX风格的应用。同样,Jerry去年年底写的另一篇文章 SAP Fiori + Vue = ?,介绍的其实就是Fiori Fundamentals针对于Vue的实现。刚刚提到的重点2,Fiori Fundamentals是一系列CSS和HTML标签页的集合,那么我们到Jerry的这篇文章里介绍的例子去找找。这是例子里引用的CSS:这是SAP Fiori Fundamentals帮助文档里提到的绘制表格的标签:在我的Vue应用里如何消费这些标签:至于为这个标签绘制而成的表格添加事件处理机制,其方法和纯粹的Vue应用完全一致,因此一个传统的Vue开发人员,借助Fiori Fundamentals的帮助,几乎不需要任何额外的学习就能够进行SAP Fiori应用的前台界面开发。SAP UI5 Web ComponentsSAP德国的UI5开发人员Peter Muessig最近在SAP社区上发表了一篇博客:UI5 Web Components - the Beta is there,大家可以通过本文末尾的"阅读原文"来阅读他的原文。如Peter文章题目所说,SAP最近发布了UI5 Web Components的Beta版本,并邀请广大SAP生态圈的开发人员试用并提出意见。Peter的文章不长,但是为了方便不喜欢读英文的朋友们也能快速了解这个UI5 Web Components是个什么东东,Jerry还是把里面一些要点用我自己的语言表述出来。下面的部分并非Peter文章内容的简单翻译,而是Jerry阅读了之后,基于自己的理解再加上自己的扩充。大家如果对我文章的内容有质疑,欢迎留言讨论。SAP UI5 Web Components,是SAP将之前SAP UI5控件库里的控件,按照Web Components标准规范重新实现后的产物。相信了解SAP UI5的朋友们,看了我上面这句描述,脑子里会冒出这些问题:1. 什么是Web Components标准?2. SAP为什么要做这个重新实现的事情?3. 重新实现后的产物到底是个什么东东?关于第一个问题,直接访问Web Components的官网即可找到答案。程序猿们都懂的,org结尾的网站最喜欢定义各种几百页甚至上千页的技术规范,Web Components也不例外:https://www.webcomponents.org…前端组件化一直是前端生态圈很火热的讨论话题之一,像前端三驾马车Angular,React和Vue都有自己的组件化实现,而webcomponents.org上定义的规范,其实就是给出了一个标准,只有满足这个标准里的实现,才能算是一个通用的组件化实现,才能被所有现代浏览器支持。这个规范的内容也托管在github上的:https://github.com/w3c/webcom…里面包含四大标准Shadow DOM,Custom Elements,HTML Templates和CSS changes,SAP UI5 Web Components的实现当然也满足这些标准。第二个问题,SAP开发UI5 Web Components的动机。Jerry个人的看法:给客户和Partners提供一种更灵活的使用UI5控件的方式,避免对UI5框架的依赖。举个例子,如果我们想使用UI5控件库里提供的button控件,就算只在XML视图里写简单的一行定义,最后运行时的UI5框架也会执行许多很复杂的逻辑,Jerry在四年前写的UI5框架自学教程里曾详细描述过:https://blogs.sap.com/2015/10…而借助SAP UI5 Web Components,开发人员根本不需要导入UI5框架,就能直接使用UI5里的控件。按照Peter文章的描述,SAP UI5 Web Components能用于任何前端框架中,即下图中高亮的最后一句话。此时自然需要回答第三个问题了。SAP UI5 Web Components到底是个什么东东?上图传达的重点:1. SAP UI5 Web Components并不是基于UI5框架的。换句话说,和UI5框架没有任何依赖关系,可以独立使用。2. SAP UI5 Web Components并不是SAP UI5框架的接替者,而应看作后者的一种补充。3. 将UI5控件库提供的控件在HTML层级暴露给消费者,而非传统方式下的API层面暴露方式。如此一来,UI5 Web Components可以不依赖于UI5框架,能直接用于其他的前端框架。看个具体的例子:在浏览器里打开下面的HTML页面,会看到一个UI5按钮。点击后弹出这个按钮实例的innerHTML属性的值。这是一个最简单的SAP UI5 Web Components的Hello World例子。例子里我们使用了SAP UI5 Web Components自定义的标签<ui5-button>。对于前端应用开发人员来说,这个自定义的标签和W3C里的button标签没有任何不同,至少从消费方式上来说完全一致。关于UI5 Web Components里诸如<ui5-button>这类自定义标签的详细说明,可以查看SAP帮助文档:https://sap.github.io/ui5-web…运行时,和在UI5框架里使用控件一样,仍然有一个专门的ButtonRenderer负责生成按钮原生的HTML代码:从运行时生成的HTML源代码我们不难发现,UI5 Web Components自定义的HTML标签只是起着占位符(place holder)的作用,真正承载运行时用户可以与之交互的实际按钮,还是通过上图ButtonRenderer生成的HTML原生button标签。需要强调的是,通过上述ButtonRenderer生成的运行时按钮实例,仍然满足使用UI5框架的传统方式绘制的控件一样的特性,比如传统方式下SAP保证的所有产品标准,像Accessibility,Internationalization这些,在SAP UI5 Web Components里仍然继续支持,无需应用开发人员额外的编程实现。本地用npm install @ui5/webcomponents命令安装UI5 Web Components之后,就可以找出里面最简单的组件实现,Button.js, 来学习SAP是如何基于Web Components标准,采用ES6支持的mobule和class等特性实现一个自定义标签的。将来Jerry或许可以邀请SAP成都研究院的一些专职做前端开发的同事来分享这里面的技术细节。最后,SAP UI5 Web Components的使用场景是什么?以上是照搬Peter的文字。适用场景有二:1. 在没有使用前端框架开发而成的简单静态页面里,如果想添加一些能够提供用户交互的控件,可以考虑SAP UI5 Web Components。2. 在已有的基于其他前端开发框架的Web应用里,如果需要一些能与用户交互的控件而又不想重复造轮子,那么可以到SAP UI5 Web Component官网上去找找。另一方面,SAP UI5框架仍然是SAP推荐的开发具有企业级复杂度和响应式前端应用的方案。最后,有朋友可能会有疑问,Jerry前一篇文章 SAP Fiori + Vue = ?里介绍的fundamental-vue,里面不是也存在SAP自定义的用于Vue应用的HTML标签吗?https://github.com/SAP/fundam…那么fundamental-vue到底算Fiori Fundamentals还是Web Component?一张图来回答:关于这两个概念大家如果有疑问,请直接留言给我,或者点击“阅读原文”,跳转到SAP社区上给Peter留言,感谢阅读。相关阅读SAP UI5和微信小程序对比之我见当我用UI5诊断工具时我用些什么在Kubernetes上运行SAP UI5应用(上)在Kubernetes上运行SAP UI5应用(下)SAP Fiori + Vue = ?SAP Fiori应用的三种部署方式Jerry的Fiori原创文章合集SAP成都C4C小李探花:浅谈Fiori Design GuidelinesJerry和您聊聊Chrome开发者工具Jerry的UI5框架代码自学教程Jerry的碎碎念:SAPUI5, Angular, React和VueSAP Cloud for Customer 使用SAP UI5的独特之处要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 24, 2019 · 1 min · jiezi

用ABAP代码读取S/4HANA生产订单工序明细

在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示:很简单的几行ABAP代码:DATA: lt_operation TYPE TABLE OF afvgd.CALL FUNCTION ‘PM_ORDER_DATA_READ’ EXPORTING order_number = ‘000001000381’ TABLES iafvgd = lt_operation EXCEPTIONS order_not_found = 1.IF sy-subrc <> 0. WRITE:/ ’not exist’. RETURN.ENDIF.需要读取的数据都在这里:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 24, 2019 · 1 min · jiezi

Salesforce和SAP Netweaver里数据库表的元数据设计

从Salesforce官网可以了解到Salesforce的force.com平台里数据库表的设计:https://developer.salesforce….Every logical database object that Force.com exposes is internally managed using metadata. Objects, (tables in traditional relational database parlance), fields, stored procedures, and database triggers are all abstract constructs that exist merely as metadata in Force.com’s Universal Data Dictionary (UDD). 每个force.com暴露出来的逻辑数据库对象在内部都被metadata元数据管理。数据库表,表的字段,存储过程和数据库触发器,在force.com里只不过都是抽象的实体,以元数据的方式存在于force.com的UDD数据字段中。而SAP Netweaver也有类似salesforce force.com的UDD概念,在Netweaver ABAP里成为ABAP Data Dictionary - DDIC,事务码SE11打开。SAP的数据库表有design time和runtime运行时的概念。也支持在ABAP程序运行时动态生成新的数据库表,以及运行时根据数据库表对应的实例,反方向得到其design time信息的方法,类似其他编程语言比如Java中的反射,不过在ABAP里我们不习惯这样叫,而是称之为ABAP Run Time Type Identification, 简称RTTI。以上图显示的数据库表TADIR为例,其字段的元数据都存储在另一张表DD03L里。通过查询条件TABNAME = TADIR, 即可从数据库表DD03L里找到TADIR所有字段的元数据,包括字段名,字段的ABAP data element名称,内部数据类型和字段长度等等。当然大多数时候我们如果需要获取这些元数据,不需要通过查表的方式,ABAP DDIC给我们提供了丰富的API,这些函数的命名有规律:DD*GET:而一张表的运行时信息,通过菜单Utilities->Runtime Object->Display查看:不过这些信息一般来说和ABAP应用开发人员关系不大,所以很少留意。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

SAP ABAP里数据库表的Storage Parameters从哪里来的

如何查看ABAP数据库表的storage parameter?事务码SE11,utilities->Database Object->Database Utility:点这个Storage Parameters:上面SAPGUI里显示的数据实际来自HANA数据库里的System view:TABLES, 使用如下的SQL语句就能查询到COMM_PORODUCT的storage parameters(存储参数了):SELECT *FROM “SYS”.“TABLES"WHERE SCHEMA_NAME = ‘SAPAG3’ AND TABLE_NAME = ‘COMM_PRODUCT’要获取更多Jerry的原创文章,请关注公众号"汪子熙”:

February 14, 2019 · 1 min · jiezi

S/4HANA服务订单Service Order的批量创建

我工作中接到一个任务,需要在性能测试系统里创建一亿条服务订单service order来做性能测试。这么大规模的数据量,当然只能用代码来创建了。本文提到的所有ABAP代码,我均已上传到我的Github上了:https://github.com/i042416/KnowlegeRepository/tree/master/ABAP/S4This document provides guide about how to generate a large volume of service order ( confirmation ) and service request test data in S4CRM performance test system for performance measurement purpose.The data is generated based on a series of ABAP reports. ZCRMS4_CREATE_MATERIAL_OPTPattern for material number: prefix for generated material ID. Take above screenshot for example, once executed, you will get a series of materials with the following material ID:Pattern for short text: for example if you specify “Android phone S”, you will get the following description pattern:ZCRMS4_HOME_CREATE_BPSZCRMS4_HOME_CREATE_ORDER_LOOPThis report is used to create a large number of Service Orders.Order description: define the description pattern of created service orders.For example, the input parameter in the above screenshot will lead to the created orders with the following description patterns:Max number of created items: if you specify an integer N, a random number among 1 ~ N of line items will be created for each Service order.Max item quantity value: if you specify an integer N, the line item quantity value will be assigned with a random integer among 1 ~ N.Material Number Range:Let’s say you have first created 10000 materials with ID prefix as “ANDROID”, which means now in table MARA you already have 10000 records with ID starting from ANDROID00000000001 and ending with ANDROID00000010000.Now in this report, you specify Material Number Range as ANDROID00000000001 and ANDROID00000010000, so that when this report create a new line item, it will randomly pick up a material among this material repository and assigned to created line item.Sold-to party range: behaves the same as Material Number Range. You have to first create a series of business partners and write down their ID prefix, for example you create 100 BP with prefix BCP. Then maintain Sold-to party range as BCP0000000001 to BCP0000000100. This report will randomly pick one among the 100 BP and assigned it as the Sold to party in Service Order’s header level.ZCRMS4_HOME_CREATE_SR_LOOPUsed for Service Request mass data generation. The input parameter behaves the same as ZCRMS4_HOME_CREATE_ORDER_LOOP.During the period that those reports are running, you can use report ZTABLESIZE to check the number of created records currently. This report will list table name, table record number and table storage size accordingly.You are supposed to run these reports via background job to avoid TIME OUT issue.Please do not occupy ALL Background work processors so that the normal system operation like TR import are not hindered.要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 14, 2019 · 2 min · jiezi

S/4HANA生产订单的标准状态和透明工厂原型状态的映射

事务码CO03查看生产订单的状态:从下面的界面能看出S/4HANA里生产订单在任意时刻可能存在多个状态:生产订单的ID和状态ID的关系是1:N,维护在数据库表VSAUFK里:如何把上述SAP系统标准状态映射到透明工厂原型的5个状态去呢?目前的映射实现采取的是“关键状态法”:只要生产订单的状态里包含I0048 - distributed to MES, 就认为该订单处于组装状态只要生产订单的状态里包含I0012 - distributed to MES, 就认为该订单处于已交货状态如果C4C创建的销售订单还未同步到S/4HANA,或者虽然同步到S/4HANA,但是S/4HANA的生产订单尚未创建完成,即下图右边灰色区域的时间窗口所示,此时如果查询生产订单状态,API会返回状态排队中.也就是说,app里尚存在两个状态,“加工”和“检测”,在S/4HANA生产订单里找不到对应可映射的标准状态。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

SAPGUI系统登录页面配置的SAProuter有什么用

大家在安装完SAPGUI后,准备添加系统列表进行登录时,注意过这个SAProuter字段么?从SAP的帮助文档上可以找到SAProuter的定义:https://help.sap.com/saphelp_…SAProuter is an SAP program that acts as an intermediate station (proxy) in a network connection between SAP systems, or between SAP systems and external networks. SAProuter controls the access to your network, and, as such, is a useful enhancement to an existing firewall system (port filter).Figuratively, the firewall forms an impenetrable “wall”around your network. However, since particular types of connections need to penetrate this wall, a “gate”has to be made in the firewall. SAProuter assumes control of this gate.In short, SAProuter provides you with the means of controlling access to your SAP system.SAProuter是一个SAP发布的应用,在SAP系统与系统之间,SAP系统与外部网络之间扮演着代理的角色。SAProuter能实现对SAP系统的访问控制,是企业防火墙的有效补充。如下图所示,部署于企业局域网的客户端SAPGUI进行系统登录,登录请求通过局域网内的SAP router转发到Internet网络上的另一台SAP Router,再转发给部署于企业内网的ERP服务器。上述描述的场景里,形象的说好比在ERP服务器所在的企业内网和SAPGUI的客户端所在的内网打了两个洞,在洞里部署两台SAP router确保只有受限的网络请求能够进出这两个被防火墙保护的安全网络。这种“打洞”的思路在SAP另一款解决方案:SAP cloud connector里有类似的用法:详情参考我的文章:使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数:https://www.jianshu.com/p/3f2…我们可以把用SAPGUI登录系统的快捷方式保存到本地,下次双击即可直接用SAPGUI登入系统:用记事本打开,发现这些.sap文件的内容如下:我们主要观看红色高亮部分。H表示主机名,S表示服务Service。要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 14, 2019 · 1 min · jiezi

为什么S/4HANA的生产订单创建后会自动release

在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release:通过第86行的IF语句的条件检测不难找到原因。变量PROFILE_TMP的类型为TCO43:这个scheduling profile的配置在路径Production->Shop Floor Control->Master Data->Define Production Scheduling Profile里:如下图所示:Automatic Actions标签页里的On Creation->Release勾选中,意思就是Production Order创建后自动释放。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

为什么S/4HANA的销售订单创建会触发生产订单的创建

调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建。销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAINTAIN相当于CRM里的CRM_ORDER_MAINTAIN,在LOOP里处理每一个行项目:观察这个函数内部的调用栈,发现一个subroutine EIGENFERTIGUNG_BEARBEITEN.:EIGENFERTIGUNG的意思是Own production:BEARBEITEN的意思是TO EDIT:在这个增强里,硬编码了通过Production order maintain的函数CO_61_ORDER_EDIT去创建production order的逻辑:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

如何给SAP C4C的产品主数据division配置出新的下拉选项

如图:C4C产品主数据division字段默认的下拉菜单选项:切换成调试模式,找到UI这个字段绑定的模型字段名称:/Root/MaterialDivision:再找到这个UI模型字段绑定到的core BO字段:Material.Common.MaterialDivisionCode: 进入Business Configuration的Activity List,找到Division的配置:在这里添加一行新纪录:03-沈阳自动所产品线要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

什么是SAP GUI的client

我们用SAPGUI登录某个系统时,除了用户名和密码外,还要指定一个必填字段client:这个client是什么东东?看文档:SAP Client is the highest hierarchical organizational unit within an SAP system that contains master records and tables. The transactions processed at SAP client level is valid and applicable for all company code data and enterprise structures.Client is a three digits numerical key and from a business point of view, client represents as a corporate group. User is required to enter client key while logging on to the SAP system.SAP client是SAP系统里包含了主数据和业务数据的层级结构最高的组织单元标识符,业务上来说代表一个企业,技术类型是一个三位的正整数。Important Client CharacteristicsEvery SAP user’s access and authorizations must assigned to the SAP client on which client users are working.It is used to differentiate between development, quality and product system within the same or different serverThe data entered at client level is valid for all organizational units.Each client can have one or more company codes, plants and locations but there will be not have connection between clients.事务码SCC4查看Netweaver系统上所有已创建的client列表:要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 14, 2019 · 1 min · jiezi

S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析

题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINSTRUCTIONVALUE IT_PIINSTRUCTION = IT_PIINSTRUCTION IT_PMPARTNER_OLD = IT_PMPARTNER_OLD IT_PMPARTNER = IT_PMPARTNER IT_PRT_ALLOCATION_OLD = IT_PRT_ALLOCATION_OLD IT_PRT_ALLOCATION = IT_PRT_ALLOCATION IT_DOCLINK_OLD = IT_DOCLINK_OLD IT_DOCLINK = IT_DOCLINK IT_OPR_RELATIONS_OLD = IT_OPR_RELATIONS_OLD IT_OPR_RELATIONS = IT_OPR_RELATIONS IT_STATUS_OLD = IT_STATUS_OLD IT_STATUS = IT_STATUS IT_PLANNED_ORDER = IT_PLANNED_ORDER IT_MILESTONE_OLD = IT_MILESTONE_OLD IT_MILESTONE = IT_MILESTONE IT_PSTEXT_OLD = IT_PSTEXT_OLD IT_PSTEXT = IT_PSTEXT IT_RELATIONSHIP_OLD = IT_RELATIONSHIP_OLD IT_RELATIONSHIP = IT_RELATIONSHIP IT_COMPONENT_OLD = IT_COMPONENT_OLD IT_COMPONENT = IT_COMPONENT IT_OPERATION_OLD_AFVU = IT_OPERATION_OLD_AFVU IT_OPERATION_OLD_AFVV = IT_OPERATION_OLD_AFVV IT_OPERATION_OLD_AFVC = IT_OPERATION_OLD_AFVC IT_OPERATION = IT_OPERATION IT_SEQUENCE_OLD = IT_SEQUENCE_OLD IT_SEQUENCE = IT_SEQUENCE IT_ITEM_OLD = IT_ITEM_OLD IT_ITEM = IT_ITEM IT_HEADER_OLD = IT_HEADER_OLD IT_HEADER = IT_HEADER.好在绝大部分内表都是空的。我们就一起来看看非空列表里包含的数据。IT_STATUS状态迁移。STAT是SAP系统状态ID,其描述信息在表TJ02T里能查到。比如I0001状态的四位标识符是CRTD,意思是已创建-CreatedINACT栏为X的状态代表该Production Order当前已经从该状态跳转到了其他状态。上图的意思是该Production Order已经从状态I0001已创建,进入了状态I0002- Released已释放。IT_COMPONENT要理解Production Order component这个概念,我们先看一个已经创建好的生产订单。下图component的意思是为了生产REDUCER_A这个成品,我们需要生产它的组件0010 COVER1, 0020 AXIS和0030 BASE。那么REDUCER_A和其三个组件运行时的信息,就维护在内表IT_COMPONENT里。IT_OPERATION同理,一个生产订单可以包含若干生产工序,比如下图的Manual processing, Maching,Assembly和Testing,对应的系统状态都是REL - Released。这些工序信息维护在内表IT_OPERATION里IT_SEQUENCE该生产订单的前置文档信息,即我们说的文档流 - document flowIT_ITEM待生产的成品明细,比如物料主数据ID,待生产数量,单位等。IT_HEADER很好理解,生产订单抬头信息:要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 14, 2019 · 1 min · jiezi

SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理

1972年,SAP诞生,推出了RF系统(实时财务会计系统), 后来命名为R1。R指Real time。3既指第三代系统,又代表3层架构。三层架构分别为下图的Presentation server Layer,Application server layer和Database server layer。值得一提的是,时光之轮已经驶入了2019年的猪年,presentation server层除了上图传统的SAPGUI外,也支持其他的技术:ABAP In EclipseABAP in WebIDEABAP in Visual Studio Code在我 微信公众号“汪子熙”里曾经发表过一篇公众号文章:那些年我用过的SAP IDE里面介绍过上述提到的不同的presentation layer(展现层)的实现技术。下图是在Eclipse里进行ABAP开发:在浏览器里进行ABAP开发:在微软的Visual Studio Code里开发:再看中间的应用服务器层:这里能看出应用服务器层是支持负载均衡的,SAPGUI的使用者会指定消息服务器Message Server的地址,用户通过SAPGUI登录时,消息服务器会将用户请求分配到负载最小的应用服务器实例上。下图含义为在任意一个SAP系统的服务器实例里,使用事务码SM51都可以查看该系统所有的应用服务器实例。而数据库服务器的实例,从菜单System-Status里可以得到。SAP Netweaver 应用服务器可以连接多个数据库,每个数据库可以来自不同的数据库提供商。使用事务码DBCO在Netweaver应用服务器上维护指向数据库服务器的连接明细:从DBMS这个字段能得到所有NetWeaver支持的数据库服务器,比如MaxDB,Infomix,微软的SQL Server,Oracle DB等。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 14, 2019 · 1 min · jiezi

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的

大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢?https://github.com/i042416/Kn…通过阅读SAP S/4HANA有关生产订单的标准代码发现,生产订单使用的plant工厂数据来自表VBAP的字段WERKS。FV45EFMA_VBAP正是销售订单的行项目表。问题就转化为这个2800和销售订单行项目的关系。这个2800来自结构体KUWEV的字段DWERK Delivering Plant:Ship-to Party’s View of the Customer Master RecordFV45PF0K_KOMKG_KOMPG_FUELLEN,第45行。第32行重要的函数 RV_CUSTOMER_MATERIAL_READDA_KUNNR:这个字段存放的是我代码里硬编码的这个客户ID:VBAK-VKORG:VBAK-VKORGVTWEG: distribution channelSPART: division然后通过函数LOCATION_ISS_PLANT_DETERMINE决定出plant:从这里能看出这个plant来自客户主数据的ship to 视图:kuwev KUWEV-DWERKkuwev的值从哪里来?从KNVV的字段VWERK里来:knvv是客户主数据的Sales data存储表:如何查看S/4HANA里的客户主数据的Sales相关数据?事务码BP:根据客户ID搜索之后,在明细页面里将Display in BP role的下拉菜单宣称FLCU01 Customer:点这个Sales and distribution按钮:2800就维护在这里的:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 3, 2019 · 1 min · jiezi

一些通过SAP ABAP代码审查得出的ABAP编程最佳实践

这两个IF ELSE分支里检测的条件其实逻辑上来说都是同一类,应该合并到一个IF分支里进行检查:It is an expensive operation to open a file in application server with 50MB file size.Current logic is:1. Open the file in application server2. Read the file content line by line3. If the file is regarding IPG or MIDH or TPG, handle with each line separatelyThe correct logic should be:1. Check the file path whether it is IPG or MIDH or TPG related. If not, quit the report.2. Handle with each line directly without evaluate file path in the BIG loop.The validation logic for input records should be improvedLoop at all service BOM, check whether the ID in current loop does exist in validation table lt_valid_prod or lt_valid_sp. If so, delete them via DELETE TABLE XXX FROM <current line>.Improvement: use DELETE XXX WHERE product_id NOT IN <range table>. It is more efficient when lt_srv_bom_file has a huge number of records. See comparison below ( unit: second )这是一个性能问题。使用ABAP原生支持的NOT IN关键字可以获得更好的性能。性能评测如下:Avoid using SELECT to access table with a large number of entriesIn product / IObject area, the best practice is to use OPEN CURSOR / FETCH NEXT CURSOR to access big DB table.如果需要用ABAP OPEN SQL读取一张包含海量记录的数据库表,那么推荐使用OPEN CURSOR进行分块读取。Although this solution will spend almost the same time to fetch the data from DB, it has far less memory consumption compared with using SELECT to fetch ALL data from DB at one time.The original dump due to out of memory issue could be eliminated by replace SELECT with OPEN CURSOR statement.这种方式和直接用SELECT相比,能显著减少内存消耗量。使用并发编程提高应用程序场景通过下面这段代码模拟一个费时的ABAP程序:定义一个ABAP函数:这个函数里执行一大堆计算,然后把传入的product ID写到一张自定义表ZJERRY1里。调用这个函数的代码:注意第二种方案使用STARTING NEW TASK达到的并发执行效果:通过比较,第二种解决方案的效率是第一种的四倍。1. The more CPU & DB time spent in ZINSERT, the better performance will be gained by usingparallel processing (Asynchronous RFC call).2. The more number of ZINSERT call, the better performance will be gained by using parallelprocessing.要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 3, 2019 · 2 min · jiezi

SAP HANA Delivery Unit概念简述

介绍在SAP HANA应用开发领域里,我们通常用package来存储modeler views和XS工程等模型。这些包应该被部署到最终的生产服务器上。Delivery Unit是SAP HANA原生开发对象的部署方式,可以被看成一系列包的集合,用于Transportation management的统一管理。SAP HANA提供了一个统一的管理平台,称为HANA Application Lifecycle Management来管理Delivery Unit. 只有具有权限“sap.hana.xs.lm.roles: :Administrator”的用户才能操作Delivery Unit。 下面介绍操作Delivery Unit的两种方式。SAP HANA Studio选择右键菜单里的Transport Management:直接使用具有下列命名规范的url:http://&lt;host_address>:80<instance_number>/sap/hana/xs/lm/index.html我们能用HANA Application Lifecycle Management做哪些事情?导入/导出/创建Delivery unit,搜索包。 第一次使用HANA Application Lifecycle Management时,我们必须提供一个Vendor ID。Delivery Unit的创建页面:在SAP HANA SP07里, HANA安装完毕后,系统会自动创建一些delivery unit,位于PRODUCTS->Delivery Units下面. 我们可以在里面增加,删除或者更改Delivery Unit。Delivery Unit本身的创建操作是很简单的:将包分配给这个Delivery Unit:Delivery Unit和里面包含的包可以通过下面的菜单导出成.tgz文件:导入Delivery Unit时,其包含的包会在HANA实例上创建:SAP HANA Studio提供了DU的管理控制台,切换到modeler视图,选择Setup下面的Delivery Unit进入控制台:创建DU,给其分配包:导入/导出DU:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 3, 2019 · 1 min · jiezi

SAP S/4HANA生产订单的BAdI增强点之Initialize方法

在S/4HANA里创建生产订单时,有一个增强点WORKORDER_UPDATE:这个CAUFVDB里存放的是生产订单抬头级别的数据:我们来观察下运行时这个结构里存放的数据。请大家用我github上这个简单的报表创建一个生产订单:https://github.com/i042416/KnowlegeRepository/blob/master/ABAP/SmallApp/209_create_S4_SalesOrder.abap断点触发后,结构体CAUFVDB里的字段,我们一个一个分析:AUFNR: 这个字段代表生产订单的ID,因此此时还没有保存,所以是临时ID。WERKS 工厂ID plant ID,2800。DISPO MRP controller for the order:001PVERW: 1在表T411里发现1代表Production:PLNBEZ:待生产的物料主数据IDPLNAW: Application of the task listP的含义,在表TCA09里找到代表Routings for productionPLNTY:Task list type: N在表TCA01里代表routingPLNNR:Key for Task List Group50000023PLNAL: Group counterPDATV: valid from dateAUFLD: Date of BOM Explosion/Routing TransferAUFPL: Routing number of operations in the orderRSNUM: Number of reservation/dependent requirementsGAMNG: Total Order Quantity 要生产的产品个数GMEIN: 生产的产品的单位TERKZ: 2 - scheduling type2在表T482里的类型是backwards schedulingAUART: 生产订单类型 PP04AUTYP:生产订单category:10 PP Production OrderBUKRS: company codeKAPPL:application code KA条件技术表里KA代表OrdersKALSM:PP-PC1 costing sheetZAEHL和MZAEHL都是内部计数器KLVARP:Costing Variant for Planned CostsKLVARI:Costing Variant For Actual CostsSFCPF:Production Scheduling Profile 这个SIA是我自己配的。AVOUEB:布尔值,Indicator: Display operation overviewFLG_TERM: 布尔值,Indicator: Scheduling must take data changes into accountTYPKZ: 1 Category of object causing the load (order category)代表Work orders (detailed scheduling / routing…)AUKBED:Indicator: Calculate capacity requirements 布尔值要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

February 3, 2019 · 1 min · jiezi

SAP S/4HANA销售订单创建时,会自动触发生产订单的创建

这个自动触发的过程是怎么实现的?使用下面的代码创建一个销售订单:DATA: ls_header TYPE bapisdhd1, ls_headerx TYPE bapisdhd1x, lt_bapiret2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE, po_order_number TYPE bapivbeln-vbeln, lt_partners TYPE TABLE OF bapiparnr, lt_order_items_in TYPE TABLE OF bapisditm, lt_order_item_x TYPE TABLE OF bapisditmx, ls_order_item_x LIKE LINE OF lt_order_item_x, ls_order_items_in LIKE LINE OF lt_order_items_in, lt_schdlin TYPE TABLE OF bapischdl, ls_schdlin LIKE LINE OF lt_schdlin, lt_schdlinx TYPE TABLE OF bapischdlx, ls_schdlinx LIKE LINE OF lt_schdlinx, ls_partners LIKE LINE OF lt_partners, lt_order_text TYPE TABLE OF bapisdtext, ls_order_text TYPE bapisdtext.ls_header-serv_date = ‘20200101’.ls_header-doc_type = ‘TA’.ls_header-purch_no_c = ‘a’.ls_headerx-purch_no_c = ‘X’.*ls_header-sales_org = ‘0001’.*ls_header-distr_chan = ‘01’.ls_header-division = ‘01’.ls_header-comp_cde_b = ‘0001’.ls_headerx-comp_cde_b = ‘X’.ls_headerx-doc_type = ‘X’.ls_headerx-updateflag = ‘I’.ls_partners-partn_role = ‘WE’. “ship to partyls_partners-partn_numb = ‘0000000001’.APPEND ls_partners TO lt_partners.ls_partners-partn_role = ‘AG’. " sold to partyls_partners-partn_numb = ‘0000000001’.APPEND ls_partners TO lt_partners.ls_order_items_in-item_categ = ‘TAN’.ls_order_items_in-material = ‘REDUCER_A’.ls_order_items_in-target_qty = 999.ls_order_items_in-itm_number = 10.ls_order_item_x-item_categ = ‘X’.ls_order_item_x-material = ‘X’.ls_order_item_x-target_qty = ‘X’.ls_order_item_x-itm_number = ‘X’.ls_order_item_x-updateflag = ‘I’.APPEND ls_order_item_x TO lt_order_item_x.APPEND ls_order_items_in TO lt_order_items_in.ls_schdlin-itm_number = 10.ls_schdlin-req_qty = 3.ls_schdlinx-itm_number = ‘X’.ls_schdlinx-itm_number = ‘X’.ls_schdlinx-updateflag = ‘X’.APPEND ls_schdlin TO lt_schdlin.APPEND ls_schdlinx TO lt_schdlinx.“ls_order_text-doc_number = SALESDOCUMENT.ls_order_text-itm_number = ‘000010’.ls_order_text-text_id = ‘0006’.“ls_order_text-langu = ‘E’.ls_order_text-langu_iso = ‘ZH’.ls_order_text-format_col = ‘’.ls_order_text-text_line = ‘Test 2 DSFSDFDSFDS’.ls_order_text-function = ‘006’.APPEND ls_order_text TO lt_order_text.CALL FUNCTION ‘SD_SALESDOCUMENT_CREATE’ EXPORTING sales_header_in = ls_header sales_header_inx = ls_headerx int_number_assignment = ‘X’ IMPORTING salesdocument_ex = po_order_number TABLES return = lt_bapiret2 sales_items_in = lt_order_items_in sales_items_inx = lt_order_item_x sales_schedules_in = lt_schdlin sales_schedules_inx = lt_schdlinx sales_partners = lt_partners sales_text = lt_order_text.LOOP AT lt_bapiret2 ASSIGNING FIELD-SYMBOL(<return>) WHERE type = ‘E’. WRITE:/ ‘Error:’, <return>-message COLOR COL_NEGATIVE. RETURN.ENDLOOP.IF po_order_number IS INITIAL. WRITE:/ ‘PO number initial’. RETURN.ENDIF.CLEAR: lt_bapiret2.CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’ EXPORTING wait = ‘X’ IMPORTING return = lt_bapiret2.LOOP AT lt_bapiret2 ASSIGNING <return>. WRITE:/ ‘Message:’, <return>-message COLOR COL_POSITIVE.ENDLOOP.用事务码SAT分析,发现总共创建消耗的时间为3.98秒,其中1.84秒花费在EIGENFERTIGUNG_BEARBEITEN这个subroutine上。用一下Google Translate:发现EIGENFERTIGUNG的含义就和生产有关:own productionBEARBEITEN的意思是TO eidt:看这个函数CO_61_ORDER_EDIT:这个函数的描述信息指向了它是用来做生产用的:这个函数所在的包也透露了它的作用,是负责生产相关实现的:观察一下传入这个函数的各参数值:要获取更多Jerry的原创文章,请关注公众号"汪子熙”: ...

February 3, 2019 · 2 min · jiezi

如何在SAP C4C里使用ABSL消费第三方Restful API

首先我们得有一个可以正常工作的Restful API:然后在Cloud for Customer的Cloud Application Studio里创建Restful API的模型,把第一步可以正常工作的Restful API url填进模型里去:然后在ABSL里使用如下代码进行消费:import ABSL;if( this.OutboundDeliveryID.IsInitial() == false){ raise already_delivered.Create(“E”); return;}var HttpMethod = “GET”;var HttpResource = “”; // not requiredvar ContentType = “”; // not requiredvar Body = “”; // not requiredvar HeaderParameter : collectionof NameAndValue; // not requiredvar URLParameter : collectionof NameAndValue;var URLParameterEntry : NameAndValue;URLParameterEntry.Name = “SoID”;URLParameterEntry.Value = this.ID.content;URLParameter.Add(URLParameterEntry);var response = WebServiceUtilities.ExecuteRESTService(“JerryExternalService”, “JerryExternal”, HttpMethod, HttpResource,URLParameter, HeaderParameter,ContentType, Body);this.OutboundDeliveryID = response.Content;raise delivery_message.Create(“S”, this.OutboundDeliveryID);要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 3, 2019 · 1 min · jiezi

SAP技术专家的ABAP调试器培训材料

首先弄清楚ABAP Classic调试器和新调试器的区别:Classic debugger:(1) Static breakpointa. BREAK-POINT : non-user specific b. BREAK user name user specific(2) Dynamic breakpointNew debugger:(1)Static breakpoint(2)Dynamic breakpointa. session breakpointb. external breakpointSession 断点和External断点的区别(1) Session BP is only visible in all external sessions belonging to the same user session, while External BP is visible across all user sessions. Therefore, only External BP is valid for BSP / Webdynpro debugging.(2) When a user logs off, Session BP will be deleted while external BP persists.By setting this flag, if external session A is running, and in external session B ( A and B belongs to the same user session ) you set a session breakpoint in the program source code, the BP will be triggered immediately .ABAP独占断点(Exclusive Breakpoint)和非独占断点的区别下图是非独占断点:下图是独占断点:Exclusive mode means the application to be analyzed exclusively occupies a work process of the application server during debugging. If all exclusive debug work processes are occupied, the Debugger is switched to non-exclusive mode. (rdisp/wpdbug_max_no )Limitation for non-exclusive mode:Due to technical limitations in ABAP debugger implementation, there are following limitations when debugger is run under non-exclusive mode:(1) No possible to debug statement between SELECT and ENDSELECT. In this case, program terminates with this error:(2) No possible for conversion / field exit.(3) No possible for debugging in production system, program terminates with exception DEBUGGING_NOT_POSSIBLE.ABAP调试器里的一些指标该如何阅读?考虑下面这段最简单的ABAP代码:调试器里查看A1这个类型为内表的变量:这里的[2×1(8)]是什么意思?2: table row number1: table column number8: byte length of table rowThe time for which the new Debugger is active is determined by the profile parameter rdisp/max_debug_lazy_time – which is set to 600 seconds in the standard version. After this time space has elapsed, the Debugger process is exited automatically and control is passed back to the application.一些小技巧:how to debug background RFC?解决方案:使用事务码sbgrfcmon小技巧2:如何调试update task小技巧3:如何使用ABAP观察点 Watch point练习:我们进入事务码SE09时,会观察到User字段会自动被填充成当前登录用户。如何通过观察点快速找到是哪一行代码赋的值?When we use SE09, how can we find the logic of the User? When and where is this field filled? What does content come from?Debugging step by step will be very time-consuming.小技巧4:使用ABAP检查组 Check group小技巧5:事务码SRDEBUG小技巧6:调试脚本要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

January 31, 2019 · 2 min · jiezi

SAP CRM One Order跟踪和日志工具CRMD_TRACE_SET

事务码CRMD_TRACE_SET激活跟踪模式: 在跟踪模式下运行One Order场景。运行完毕后,使用事务码CRMD_TRACE_EVAL:双击参数,就能看到参数明细:点Callstack也能看到调用栈明细:这个工具的实现原理是怎样的?ABAP include CRM_TRACE_PART_ONE做了下面的事情:检查One Order的trace模式是否打开了,如果打开,负责收集调用的时间戳,执行工作进程ID,调用栈上下文:另一个ABAP include CRM_TRACE_PART_TWO负责把调用信息写入INDX表。 在这些ABAP include上使用where used list,可以搞清楚哪些API可以支持跟踪模式。除了用上述事务码打开调试模式以外,也可以设置user parameter “CRM_DEBUG_CODE”来达到同样目的。这个参数的检测包含在include CRM_TRACE_PART_TWO里.ABAP包CRM_TOOLS里还有其他有用的工具:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 31, 2019 · 1 min · jiezi

SAP CRM系统订单模型的设计与实现

SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容。在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对SAP应用的理解:模型以及基于模型的增删改查。只是同我们大学专业课学习时完成的家庭作业相比,SAP模型的复杂程度增加了好几个数量级。和传统的增删改查相比,以订单编排领域为例,SAP订单模型的"增",还需要考虑实际业务流程中各种类型的前置和后序订单,即SAP使用的术语 文档流(Document Flow)。而"改", 除了订单自身状态的迁移外,还包括订单模型提供的各种可执行逻辑。这些逻辑既包括订单模型本身字段的更改,也可以包括订单与第三方系统的交互。在很多上下文里,我们称这些逻辑为Action。如下图右下角所示:既然订单模型复杂度如此之高,那么引入一种精良的能支持企业级订单编排应用的高质量建模方式,就显得至关重要。随便看些例子,SAP CRM总共支持多少种标准的订单类型?下图中BUS2000开头的就是不同的订单类型,我没有具体数过,但是几十种总是有的。而SAP Cloud for Customer,虽然位于CRM命名空间下面的Business Object的数量比SAP CRM要少一些,但是基本的用于实现销售自动化流程的订单模型仍然一应俱全。我们先来看SAP CRM的订单模型。有没有可能用一套模型来描述SAP CRM支持的几十种订单类型呢?有,那就是SAP CRM One Order模型,其自描述的名称就体现了该模型的特色。Jerry曾经试图搞清楚"One Order"这个称呼,是来自SAP官方,还是仅仅被SAP开发人员内部使用。用搜索引擎根据关键字One Order搜索,得到的结果几乎全是Jerry写的博客,囧。不过进系统根据ONE ORDER为关键字还是能搜索出大把的代码。我的文章 Jerry的WebClient UI 42篇原创文章合集里有这张架构图:其中One Order框架从架构上讲,位于上图红色区域内,包括数据库表,ABAP结构体以及操作它们的API代码。SAP One Order框架有多成功?搜索引擎输入关键字"SAP CRM ONE ORDER", 第一条搜索结果即Jerry写的一篇博客。其中第一段话就给大家做了详细的阐述:尽管它如此成功,但当Jerry刚刚接触One Order的时候,吃惊地发现,竟然没有一个比较直观的图形化界面,能够显示出这个模型的全貌。不过瑕不掩瑜,对于一个诞生于20年前的框架来说,我们不应该用20年后的标准来苛求它。我们想象一下,不同类型的订单,有什么共同点?无非每种订单都有抬头结构,行项目。有的结构,从业务上说可以同时出现在订单的抬头和行项目,比如参与订单的业务伙伴明细(Involved parties), 组织架构(Organization Unit)等等。有的字段只有行项目才能出现,比如卖出的产品信息(Product, Scheduled Line)。SAP One Order建模的原理,类似我们小时候玩的积木。组成One Order模型最小粒度的单元,就是一个个扮演积木作用的结构体,在事务码CRMC_OBJECTS里查看。下图是这些结构体的列表,如果SAP标准的结构体不能满足需要,客户仍然可以自行创建新的结构体。然后我们用搭积木的方式,将业务上具有关联关系的若干结构体组合起来,共同分配给某个订单类型,比如描述服务流程的订单类型BUS2000116,就由下列这些结构体组成:有了模型之后,剩下的就是实现基于这些模型的增删改查操作,即ABAP编程。One Order API的代码实现原理,实际上就是设计模式里的模板(Template)模式和观察-发布者模式的结合体。我们学习模板模式的时候,有一个经典的例子,上帝通过模板模式主宰芸芸众生的生老病死。我们每个人被父母实例化出来之后,只能被动地实现上帝在模板里定义好的四个方法:生,老,病,死,而不能够更改这个模板本身,比如调换这四个方法的顺序。即使是乔布斯,也没有办法给自己添加一个"永生"的方法。听起来很残酷,但这是事实。那么,One Order框架里,作为One Order应用的上帝,定义了哪些模板方法?事务码CRMV_EVENT,指定BUS2000116, 执行:得到下图列表。红色的第一列,就是前文提到的组成One Order模型的积木。蓝色的第二列,是这些积木对发生在自己身上的感兴趣的事件列表。从图中可以看到这些事件名称都是自描述的,比如AFTER_CREATE, BEFORE_CHANGE, BEFORE_DELETE等等。第三列黑色的ABAP函数,就是这些事件的监听函数。这些监听函数的后缀EC代表Event Callback。借助上述框架,One Order应用的开发人员的开发工作就变得无比轻松:1. 通过搭积木的方式,定义出自己应用需要的One Order模型2. 实现模型里需要关注的事件对应的监听函数。至于这些监听函数什么时候被调用到?应用开发人员完全不用操心。由此我们能发现,One Order框架的实现,把编程复杂度从应用开发人员身上转移到了框架实现身上。One Order框架内部的实现比较复杂,一篇文章的篇幅无法讲述清楚。况且通常情况下,One Order框架的使用者只需要了解CRM_ORDER_READ, CRM_ORDER_MAINTAIN等API的用法即可。如果想了解更多细节,可以参考我的SAP社区博客:1. Buffer logic in One Order header extension Readhttps://blogs.sap.com/2017/03…2. Logic of FILL_OW function module in One Orderhttps://blogs.sap.com/2017/03…3. Logic of CHANGE_OW function module in One Orderhttps://blogs.sap.com/2017/03…4. Logic of CREATE_OW function module in One Orderhttps://blogs.sap.com/2017/03…5. Logic of SAVE_EC function module in One Orderhttps://blogs.sap.com/2017/03…6. CHANGED_AT, HEAD_CHANGED_AT and CRM_CHANGED_AT in order header tablehttps://blogs.sap.com/2017/04…One Order的API之一,为消费者提供修改操作的CRM_ORDER_MAINTAIN, 所有SAP标准支持的结构体都作为输入参数之一出现在参数列表里:这种设计方法虽然让参数列表显得有点冗长,但是从另一方面看,也起到了自描述的效果, 确保API的使用者即使不阅读文档,仅凭浏览这些参数本身,就能大概了解该API到底支持One Order哪些数据的修改。这也符合那份著名的来自Google的API设计最佳实践文档里提到的,好的API应该满足的条件之一:易学易用,自描述,不易造成误解。在我的另一篇文章 Hello World, S/4HANA for Customer Management 1.0 我曾经提到,SAP CRM的部分功能迁移到SAP S/4HANA后,部分实现做了一些改造,其中就包括One Order的改造。Jerry是负责One Order改造设计的三位人员之一,详细的改造原理和实现我已经分享到SAP社区了,这里只简述一些核心概念。https://blogs.sap.com/2018/03…https://blogs.sap.com/2018/03…为什么要改造?因为SAP CRM搬到了S/4HANA上,而S/4HANA的一个强大之处,在我同事Zhang Sean的文章 S/4HANA业务角色概览之订单到收款篇 里也提到了,那就是S/4HANA在SAP历史上第一次实现了OLTP和OLAP的完美结合,即一套系统的唯一数据源,可以同时满足Transaction事务型应用和Analytics分析报表型应用的需要。而SAP CRM One Order没有改造之前的模型是无法和S/4HANA的上述特性匹配的。改造之前,每个组成One Order模型最小粒度的结构体,都有自己独立的一张专属数据库表,命名规范一般是CRMD_加上结构体名。这套底层存储模型如果原封不动地搬到S/4HANA里,在运行报表统计等应用时会出现性能问题——为了取出报表结果,后台需要在很多个结构体的存储表中做各种数据库表的内外连接操作。当参与连接操作的数据库表尺寸增长到一定数量级后,整个应用的性能表现不佳。Jerry也参与了性能评测,最后我们决定对One Order的底层数据模型做改造。因为留给我们从调研到改造的原型开发,再到正式开发一共只有八个月的时间,因此我们选择了一种代价最小,对One Order框架改动最小的方式。首先我们抛弃了之前每个结构体拥有一张专属数据库表的做法,在S/4HANA里,每种订单类型只拥有两张表,一张存储抬头级别的数据,另一张存放行项目数据。之前散落在不同结构体表中的字段,如今统一维护在这两张表里。由于所有的字段都平铺在这两张表里,我们内部形象地称其为平坦表(Flattened Table)。存储模型大大简化之后,我们基于这两张表再创建CDS view,让上层的报表应用消费。这样改造后简化的模型,能满足S/4HANA中OLAP应用的需求。针对S/4HANA OLTP应用的改造,用一句话概括,就是我们采用设计模式里的适配器模式(Adapter), 在API与简化后的数据库表之间引入一个微型的中间件,扮演Adapter的角色。当消费者通过One Order API进行读操作时,中间件负责把存储在简化后的数据表中的数据进行还原,再填充到One Order API上层的缓存中。对后者来说,它对底层存储模型发生的变化毫不知情,因为Adapter封装了底层数据读取的逻辑并做了格式转换,所以One Order API上层不需要做任何改动,也完全能够像在SAP CRM里一样正常运行。而当消费者调用One Order API进行写操作时,在存储于各个结构体对应的缓存中的数据持久化到数据库之前,同样是Adapter负责把这些分散在不同缓存结构中的数据做一个合并,合并后的结构体再写入平坦表。讲完了CRM One Order订单模型的设计,我们再来简单看看SAP Cloud for Customer的订单模型设计。虽然SAP Cloud for Customer的后台对客户和Partners不可见,但我们仍然可以从合法渠道获得一些其订单模型的设计信息。https://archive.sap.com/discu…从SAP社区上这位SAP员工的回复,我们得知ESF2和BOPF有很多相似之处,设计理念类似,但ESF2主要用于部署在云端的产品,比如SAP Cloud for Customer上Business Object的开发,而后者主要服务于On Premises解决方案比如S/4HANA。因为Jerry不能够把C4C后台ESF2的界面给大家看,所以我选择了展示S/4HANA的Business Object开发框架BOPF,因为前面说了,二者很多方面都非常相似。同之前介绍的SAP CRM One Order框架一样,通过BOPF实现的订单模型,同样由若干个结构体通过搭积木的方式组成,这些结构体如上图红色高亮区域所示,每个结构体也有自己的专属存储数据库表。而SAP CRM One Order里每个结构体的事件监听函数,采取的是ABAP传统的面向过程的函数实现,而BOPF则采取了实现指定接口的ABAP类,二者原理相同,只是实现细节有差异。SAP C4C的订单模型,虽然和SAP CRM传统的One Order模型一样,每个结构体拥有一张专属的数据库表,但是在运行报表程序时并不会出现性能问题,这是怎么做到的?答案是采用了TREX,一个专为只读报表应用优化过的存储仓库。换句话说,SAP C4C的事务处理和报表处理使用的是两套不同的存储系统,这一点和S/4HANA不同。SAP Cloud for Customer的订单模型,在Cloud Application Studio里对客户和Partners是可见的,大家感兴趣的可以自行去查看。希望这篇文章能让大家对SAP CRM两款产品中的订单模型设计有最基础的认识,感谢阅读。相关阅读SAP的这三款CRM解决方案,您能区分清楚么SAP S4CRM vs C4C, 诸葛亮和周瑜?基于SAP Kyma的订单编排增强介绍要获取更多Jerry的原创文章,请关注公众号"汪子熙":SAP CRM系统订单模型的设计与实现 ...

January 22, 2019 · 1 min · jiezi

SAP Customer Data Cloud(Gigya)的用户搜索实现

我在Gigya前台根据email搜索,输入一个邮箱地址,回车,在Chrome开发者工具里观察到到后台的网络请求:这是一个post请求:__RequestVerificationToken请求体:{“query”:“SELECT * FROM accounts WHERE (profile.email = ‘abc@sap.com’) OR (profile.email CONTAINS ‘abc@sap.com’) OR (loginIDs.emails = ‘abc@sap.com’) OR (loginIDs.emails CONTAINS ‘abc@sap.com’) ORDER BY lastUpdatedTimestamp desc LIMIT 20 START 0”,“format”:“json”,“apiKey”:“3__ZoBjMduuUpCQF86dWF0B-yjUlPDudlQ7FtPlrmxUnKFN”}这次搜索结果的响应:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 22, 2019 · 1 min · jiezi

SAP S/4HANA里如何创建Customer主数据以及执行后续处理

来自Jerry的同事Zhang Sean.1, Launch tcode: BP and select the Organization2, Maintain the information for Customer role3, Maintain information for name and search4, Maintain the Address5, Maintain the information for Sales and Distribution6, then maintain which Sales Area this customer is assigned to, you could also maintain the information for other Sales Area by the button “Switch Area”. Then after that you shall maintain the information for Order, Shipping, Billing.7, last but the most important, remember to save the BP, then you will get the Customer for the SD business.8, Then you could start business transaction in the defined Sales Area. e.g. create Sales Quotation by Tcode: VA219, The created Customer is entered for the Sold-To Party, and Ship-To Party. And one existing Material is used(Later we will have one exercise to show how to create new Material.)But this time, we see one issue.Pricing error: Mandatory condition TTX1 is missing10, we go to the Item conditions, and click the Analysis to analyze the pricing conditions.11, we got a pricing list, and try to find the TTX1 entry. And the 020 entry is mentioned that Condition Record is missing, we go deeper by clicking the 020 entry under TTX1.12, It seems that there is no condition record maintained for this export taxes.13, Let’s go to the pricing master to maintain export taxes for condition type TTX1.14, enter the information there and save the entry.15, go back to the Quotation Creation Page, where we have the conditions, and click the “Update” to update the conditions automatically. And select the Carry out new pricing. Then the Entry for TTX1 will be proposed in the condition list.16, let’s try again with the Pricing Analysis, you will see the check is also successful.17, let’s go back to the Quotation Header and Save, then there will be one Popup to mention that the document is incomplete. And go to edit and maintain the information accordingly.18, and go back to Quotation Header, it’s mentioned document is complete. So Save it and you did it!19, with that, you managed to create Quotation, and then you could continue the business to create Sales Order, Delivery, Transfer Order, and Billing, Accounting, and Payment.20, Create Sales Order by reference to Quotation: 20004141 (Tcode: VA01)21, Create Delivery by reference to Sales Order: 24615 (Tcode: VL01N)Picking the quantity and Save.22, Post Goods issue for the Delivery (Tcode: VL02N)23, create Billing by reference delivery(Tcode: VF01)24, but in the billing document, it’s mentioned “The journal entry has not yet been created.”. Open the billing document you created with Tcode VF02.And menu: Billing Document, use the option “Release to Accounting"And it’s mentioned “Customer 1000260 is not defined in company code 1010"25, try to define the customer in company code 1010.Open the customer(1000260) in BP, and create new BP role Customer(Fin. Accounting)26, Then go back to the VF02, and use the option “Release to Accounting”, this time, the release will be successful. The accounting documents are generated. You could check this with the document flow.27, in the document flow, but the last account document is still not cleared, where payment is needed from customer, but before that, you need to know how much the customer will pay.You could open the billing document by VF03, and goto28, then you got to know 1498 is the amount. Go to the accounting receivable.(Tcode: F-28)29, Open the Document flow, then all the accounting documents are clear!, Well done, you made it.要获取更多Jerry的原创文章,请关注公众号"汪子熙”: ...

January 22, 2019 · 3 min · jiezi

自开发Web应用和SAP Customer Data Cloud Identity服务的集成

今天的文章继续由SAP成都研究院的云时代女王,Aviva给大家分享关于SAP Customer Data Cloud的一些使用经验。Aviva之前的文章可以在本文末尾处获得。下面是她的正文。*大家好,我是Aviva。本人在SAP不负责Gigya的开发工作,只是出于个人兴趣,在业余时间阅读了SAP官网上Gigya的帮助文档后,就Gigya提供的网站登录接入功能做了一些非常简单的Hello World级别的例子,在此分享给大家。2017年SAP收购了以色列创业公司Gigya, 现在Gigya又被称作SAP Customer Data Cloud,是SAP C/4HANA的五朵云之一。所以下文在不同的上下文出现的SAP Customer Data Cloud和Gigya,大家可以认为这两组词表达的是同一个意思。文章分为两部分,第一部分,简单介绍SAP Customer Data Cloud的业务,第二部分用一个demo介绍如何在自己的网站中使用SAP Customer Data Cloud中的某些服务。Customer Data Cloud从功能上分为三大模块:SAP Customer IdentitySAP Customer ConsentSAP Customer Profile我们首先来简单了解一下这三大功能模块。SAP Customer Identity提供跨渠道和跨设备的用户身份识别,在Web,移动设备和物联网设备上提供统一的注册,身份验证,登录等用户体验。除此之外,SAP Customer Identity还提供单点登录,无密码的身份验证,能够安全地识别来自任何接入端的在线访问者。通过抓取客户授权的身份数据,SAP Customer Identity可以推动个性化、即时营销、销售和服务,同时尊重消费者隐私并满足数据保护法规。Gigya 在安全上做了很多工作,确保用户数据不被窃取和攻击。SAP Customer Consent提供了开箱即用的工作流程,帮助企业明确提出各项服务条款,隐私政策,营销沟通,以及其他需要用户授权的同意请求等等。每次企业更新服务条款和隐私政策,SAP Customer Consent会自动触发新的用户同意请求,并记录每次用户的同意选项和授权的时间。企业管理员可以访问用户整个使用周期内每一次授权的历史记录,从而有效地解决政府对隐私的监管和审计。在企业的数字生态系统中,通过将用户的配置文件与企业的应用程序和服务同步,在每个渠道上强制执行用户的隐私许可,满足关键数据隐私要求。SAP Customer Consent提供了跨平台和跨设备的用户隐私设置服务中心,使用户在整个使用产品的生命周期内,都能透明地管理自己的偏好设置,控制企业对自己的隐私数据的访问规则,从而帮助企业和客户建立透明可信任的关系。SAP Customer Profile通过抓取用户授权后的第一手数据,SAP Customer Profile为用户建立丰富的用户档案,让企业的每个应用程序和服务都可以无缝的使用它们。企业各种应用和服务的用户资料通过统一的平台对管理员开放,同时也能为营销人员提供各种用户数据的分析报告,以及为客户细分和个性化的营销方案提供数据支撑。下面通过一个简单的demo,向大家介绍如何将SAP Customer Identity集成到我们自己的Web应用中。我开发了一个基于nodejs的Web应用。后台使用nodejs + express框架,前端使用SAP UI5。登陆SAP Customer Data Cloud的RAAS(Registration-as-a-Service)平台。首先在RAAS平台上创建site和应用。本地开发和测试使用的Site Domain可以填成localhost:创建一个新的Application:创建了Site 和Application之后,Site会自动生成对应的API Key:Application会产生User Key和Secret。其次,在Web应用的index.html中引入Gigya Web SDK:<script src=“https://cdns.gigya.com/js/gigya.js?apikey=YOUR-API-KEY-HERE"></script>然后使用SAP UI5开发Web应用的登录页面 login.view.xml和控制器login.controller.js。Gigya 提供了一个默认的用户登录注册页面,只需两行代码就可以在我们的Web应用里使用。这种便捷的使用方式体现了RAAS的含义。在xml视图中嵌入一个div标签:在控制器实现的初始化函数中加入:gigya.accounts.showScreenSet({ screenSet: ‘Default-RegistrationLogin’, containerID: me.byId(‘LoginGigya’).sId });Gigya的登录和注册服务就加入我们自己的Web应用中去了。除了使用默认的登录屏幕设置之外,我们当然可以直接在Gigya平台上定制登录页面和注册流程。Gigya提供了UI Builder,在UI Builder里可以使用默认的控件,通过拖拽就可以生成不同的登录页面(类似SAP Cloud for Customer UI Designer),也可以直接修改html和css,修改登录和注册流程等等。Gigya定义了许多不同类型的事件,这些事件由用户交互来触发,例如用户登录,按钮点击等。应用程序可以注册监听感兴趣的事件,并在收到这些事件时执行代码。下面是简单的监听用户登录和注销事件的代码:var me = this;gigya.accounts.addEventHandlers({ onLogin: me.login, onLogout: me.onLogout, context: me });登录后,在控制台简单地打印一些字符串。login: function (response) { console.log(“LOGIN!!!!!!!!!!!!!!!!!”); console.log(response);**},关于Gigya支持的所有事件和事件相关参数,可以参考用户手册:https://developers.gigya.com/…在Web应用后台,我们还可以使用Rest API的方式访问Gigya的相关服务。举个例子,在后台获取用户的Account信息,调用Rest API 需要用到Site 的API Key 和Application的User Key和Secret。以上只是基于Gigya提供的服务进行的一些最简单的练习。关于Gigya更多的功能介绍,请移步官网上去查看,有很详细的介绍:https://developers.gigya.com/ 感谢阅读。Aviva另外两篇文章:Hyperledger Fabric on SAP Cloud PlatformSAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例要获取更多Jerry的原创文章,请关注公众号"汪子熙”: ...

January 22, 2019 · 1 min · jiezi

SAP S/4HANA extensibility扩展原理介绍

SAP产品总的extensibility扩展原理介绍:看Jerry这篇文章。SAP Cloud for Customer Extensibility的设计与实现我的同事Boris写的。而本文是S/4HANA extensibility扩展性专题:Enhancement ConceptSCFD_REGISTRY - Extensibility RegistryBusiness ContextExtensible CDS ViewExtension field is available, extend view generate, on registered CDS view.Extensible OData ModelUse report CFD_CREATE_FLX_CLASS to generate classes …MPC_FLX and …DPC_FLXData Transfer and Business Scenario要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 22, 2019 · 1 min · jiezi

SAP专家培训之Netweaver ABAP内存管理和内存调优最佳实践

培训者:SAP成都研究院开发人员Jerry Wang1. Understanding Memory Objects in ABAPNote1: DATA itab WITH HEADER LINE for processing individual table rows have short forms that implicitly use the header line as work area. These short forms are allowed only outside of ABAP Objects./SF0A0001/ANONYMOUS4951422. Use Reference to Access Memory ObjectABAP里引用的用法3. ABAP和很多其他语言一样,支持写时拷贝:As internal tables and strings can become very large, the copy operation may be quite time-consuming. On the other hand, the copy operation is only necessary if a modification is made via one of the references, which is NOT always the case.For this reason, ABAP runtime delays the copy operation until a modification is actually made. These object types (internal tables and strings) keep track of the number of references that point to them, which is referred to as “reference counting.”4. 写时拷贝的工作原理5. ABAP的内存管理之内存清理内存释放关键字CLEAR,REFRESH和FREE的区别:6. ABAP引用类型的内存分配7. ABAP字符串(String)类型的内存分配8. ABAP内存垃圾回收器的工作原理9. ABAP内存垃圾回收的实现算法10. ABAP垃圾回收机制的触发时机11. ABAP垃圾回收的手动触发,请谨慎使用12. 更多关于引用类型的变量在ABAP垃圾回收算法中的影响13. ABAP bound memory的含义the sum of the size of the memory object and the bound memory of all DIRECT children that are table bodies or strings with a reference count of one.Upon deleting the memory object, the bound memory is the minimum amount of memory that is released, and the referenced memory is the maximum amount that can be released. Therefore, the amount of memory that is actually released is somewhere between these two values.14. ABAP内存预分配算法(preallocation mechanism)介绍15. ABAP已分配内存和已使用内存的区别For internal tables and strings, ABAP runtime environment uses a preallocation mechanism that automatically reserves some EXTRA storage when the memory object is created to allow for potential growth.It avoids many allocation and deallocation operations. Otherwise, ABAP runtime environment would have to allocate new storage every time the memory object grows.Due to this preallocation mechanism, both internal tables and strings also have “allocated memory” and “used memory” values as memory sizes.Allocated memory is the amount of memory that is set aside for the memory object. Used memory is the current size of the memory object used by the application.For class objects and anonymous data objects, used memory and allocated memory are the same. Because their size is fixed, they don’t require additional space to accommodate growth.16. ABAP程序内存消耗的尺寸计算介绍17. 什么是ABAP内存分配中的SCC - strongly connected component - 强连通组件18. 有用的ABAP内存分析和调优工具,事务码S_MEMORY_INSPECTOR19. 具体例子,您知道下面这段代码,新生成的引用类型的变量,内存是从哪里分配的?堆?不完全对。Logging on to an application server opens a user session. A user session is assigned its own memory area of the SAP memory, in which SPA/GPA parameters can be stored.For every user session , a main session ( external session ) can be opened. Each main session is assigned its own memory area of ABAP memory ( EXPORT — IMPORT ) rdisp/max_alt_modesEach call of an ABAP program creates a new internal session, in which the called program is loaded.20. 什么是ABAP程序的PXA - Program Execution Area21. ABAP程序的用户上下文 - User Context22. 什么是ABAP的工作进程23. ABAP工作进程的内存虚拟地址空间和物理地址空间的映射Roll Area:Memory area with a set (configurable) size that belongs to a work process.For technical reasons, the roll area is always the first memory available to use for a work process. Only afterwards can extended memory be requested.When the context of a work process changes, the data is copied from the roll area to a common resource known as the roll file. To prevent repeated copying, another roll buffer is located in between, which is part of the shared memoryPaging area:Allocation of memory for the current internal session by transferring pages out of memory, similarly to operating system paging. SAP’s memory management concept currently limits SAP Paging to cases where the ABAP commands EXTRACT and EXPORT… TO MEMORY… are used.Private memory:If the extended memory is fully occupied, or the limit for the work process has been exceeded, private memory is assigned to the work process. This is known as private memory because it is specific to the process, and the user context can no longer be processed by a different work process (PRIV mode).ABAP扩展内存 - extended memoryUser context is stored in the extended memory (EM) to enable fast context change . Depending on the operating system, how SAP implements EM addressing/mapping is different.When the context is changed, the user context is not copied as with the roll area. Instead it is allocated to alternating work processes by mapping operations which results in a faster context change because less data is copied and mapping an extended area is not work-intensive. The result is low CPU usage and shorter access times.SAP dispatcher is responsible for the following principle tasks:1. Initialization, reading profile parameters, starting work processes and logging on to the message server2. Evenly distributing the transaction load across work processes3. Connecting to the GUI layer4. Organizing communication processes这道题的答案:The roll area consists of two segments. The first segment, which can be set with the parameter ztta/roll_first, is assigned to the work process first as memory. If this is used up, the work process has more memory assigned to it. The amount of memory is determined by the difference between the ztta/roll_area and ztta/roll_first parameters.正确答案,不能一概而论,有三种情况。情况1:Roll area: if ( roll_current_area + request size <= roll_area )情况2:Extended memory: if ( roll_current_area + request size > roll_area ) AND ( extend memory is not full )情况3:Private memory: if ( roll_current_area + request size > roll_area ) AND ( extend memory is full )要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

January 15, 2019 · 4 min · jiezi

ABAP文档生成工具

本文介绍的工具原理和JavaDoc类似,位于software component BBPCRM1. 在ABAP类里新建一个名为CLASS_DOCU的私有方法。然后把所有的注释写在这个方法源代码的前面。2. 在每个方法前面,采用和JavaDoc语法一样的方式对ABAP方法书写注释,比如@param修饰输入参数,@return修饰返回参数等。3. 所有方法的文档书写完毕之后,使用事务码CLASS_DOCUGEN生成文档。4. 接下来在事务码SE24,SE80里就可以在class builder里查看这些生成的文档了。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 15, 2019 · 1 min · jiezi

S/4HANA业务角色概览之订单到收款篇

大家好我叫Sean Zhang,中文名张正永。目前在S/4HANA产品研发部门任职产品经理,而这一阶段要从2017年算起,而在那之前接触更多还是技术类的,比如做过iOS、HANA、ABAP、UI5等等开发。然后在团队中负责设计和架构之余,也尝试做过一些SAP内部培训课程的讲师,比如在HANA、Fiori、Architecture Modeling等方面。我所在的团队,S/4HANA Sales(SD)成都团队,主要负责S/4HANA里销售模块相关的标准应用研发,或者笼统的理解为SD(Sales and Distribution 销售与分销)模块相关的,所以后续我就用SD简称。如果要追溯的话,我们团队应该是从2012年开始参与SD的产品开发,然后在2014年加入S/4HANA的研发。从最开始主要耕耘在底层的数据模型,到现在我们参与或主导了SD的分析、定价、合同、开票等等领域,当然SD产品的研发部门除了在成都还在欧美多地有研发团队。S/4HANA SD成都团队不仅在多个SD的核心领域有贡献,同时在一些重要前沿也属于先行者,比如在探索机器学习方面,团队最近尝试的一嵌入式机器学习应用也有幸被授予SAP中国研究院的2018年度的最佳产品之一。如果大家对于机器学习如何在S/4HANA中落地感兴趣,下次我的团队成员也可以跟大家一起分享和讨论。今天跟大家分享在订单到收款(Order-to-Cash,有时也简写为O2C)流程中的业务角色,通过熟悉这些主要业务角色,不仅能了解O2C的业务和解决方案,也能了解业务角色在整个S/4HANA里的运转模式继而推而广之。如果大家有关于S/4HANA产品的问题,特别是SD模块的,可以留言讨论。背景过去的企业业务系统,由于技术限制,需要在多方做出不同程度的平衡,比如数据处理的深度,广度,响应的高速性,实时性和简单性等等。当需要专注在数据的广度和深度分析时,会更像是一个OLAP(在线分析处理)系统,而需要实时快捷处理事务操作时更偏向于OLTP(在线事务处理)系统。在S/4HANA里,第一次实现了OLTP和OLAP的完美结合,大部分的业务可以在一套系统的一个数据源上完成。以往一个用户需要在多套系统间来回切换,然后再汇总数据,特别是在月末或季度末,通过漫长等待才能得到最终数据报表的岁月已经成为历史。在S/4HANA里,对于业务人员,一切变得简单和实时,这体现了2014年时SAP提出的一种系统设计思想设想——至简(Simplicity)。事务和分析操作融为一体,这也是为什么在S/4HANA里,我们不仅有事务处理,还有嵌入式分析(Embedded Analytics)。至简不仅仅意味着系统架构的简化,同时也包括业务流程的简化。在过去,每个业务人员需要面对繁杂的基于功能的应用界面,如下左图示例:而在S/4HANA里,所有的应用和解决方案都是基于角色提供(Role Based),换言之,每个业务人员只需要关注跟自己相关的信息,而这主要是通过IAM来实现。IAM的全称叫身份和访问管理(Identity and Access Management),负责确保业务用户访问应用的安全性。业务用户通过业务角色获得 Fiori 应用的访问权限。业务角色可包含一个或多个业务目录,从而包含多个应用。更多细节可以参考最新的SAP帮助文档。为了帮助企业更便捷的使用这一套基于角色的方案,S/4HANA在不同的模块为不同的经典业务角色预定义了各种角色模板,比如在财务领域有应付账款会计、应收账款经理、总账会计等;在销售领域有内部销售代表、销售经理等等。企业的关键用户基于角色模板创建角色,并根据实际业务进行调整,最后赋予每个具体的用户。SAP发布的标准业务角色模板有40个以上,而对于不同行业和国家提供超过200个模板,具体信息可以参照IAM的应用“业务角色模板”。业务角色是为业务服务的,不同的业务需要有不同的应用,继而其需要的业务角色模板也会不同。每个企业的业务在专属领域里会直接或间接的需要有不同的业务流程,比如:从商机到收款(Lead to Cash)从寻源到付款(Source to Pay)从差旅到报销(Travel to Reimburse)从市场到商机(Market to Lead)从设计到运营(Design to Operate)据不完全统计,大部分企业里有超过十个端对端的业务流程。而今天我们的讨论源于从商机到收款这个流程,其通过C/4HANA和S/4HANA的结合可以完整落地。在S/4HANA 销售模块(Sales-SD)中主要是解决该流程中的订单到收款(Order to Cash)这一部分。当然直接面向客户(C-Customer)的商机到订单(Lead to Order)主要是在C/4HANA中完成。接下来我们就一起详细探讨一下从订单到收款流程。从订单到收款在从订单到收款的整个过程中,按照维基百科的解释主要有九大流程:https://zh.wikipedia.org/wiki…S/4HANA,作为企业的数字核心(Digital Core),从订单的录入和履行到开票和付款都能完整体现在系统层面。其中一些典型的流程可以用下图表示:为了保驾护航这些流程,S/4HANA的销售领域已经提供的标准角色模板有:(1) 定价专家(SAP_BR_PRICING_SPECIALIST)(2) 内部销售代表 (SAP_BR_INTERNAL_SALES_REP)(3) 退货与退款职员(SAP_BR_RETURNS_REFUND_CLERK)(4) 开票员工(SAP_BR_BILLING_CLERK)(5) 销售经理 (SAP_BR_SALES_MANAGER)(6) 销售流程经理 (SAP_BR_SALES_PROCESS_MANAGER)当然为了完整实现订单到收款,还会有其他角色,比如装运专家(SAP_BR_SHIPPING_SPECIALIST)和应收账款会计(SAP_BR_AR_ACCOUNTANT)等等,如果大家有兴趣今后我们可以单独分享。接下来我们对订单到收款流程中这几个角色逐一介绍,希望借此能帮助大家理解各种业务角色在标准的企业管理中的常见任务与活动。因为我所在的团队正好负责其中销售经理和销售流程经理相关的应用研发,如果有任何问题也欢迎讨论。1. 定价专家此角色主要负责管理销售中的定价,使价格保持为最新状态并使其及时可用。定价专家定义销售中的定价条件记录。基于这些数据和配置专家进行的定价配置,系统计算销售凭证和开票凭证中的价格和成本。其中包括维护特定赠品的特定条件记录(排除奖励数量或包含奖励数量)。在订单到收款的流程中,定价专家会在业务开始之前就会加入,属于偏主数据管理的范畴。因为大多数的事务操作都离不开价格的设置。当然在实际业务中,由于销售策略和市场的变化,定价也会有调整。此角色能开展以下任务:创建、更改、显示和删除用于价格、折扣和附加费的条件记录执行价格、折扣和附加费的批量变更创建、更改、显示赠品的条件记录2. 内部销售代表此角色主要负责管理各种销售凭证和主数据记录。截图中展示的是销售订单相关的应用,其实从下面长长的单子就能发现在内部销售代表这个角色里有非常多的应用,不管是对各种不同的销售凭证的管理,还是对销售相关的主数据维护,甚至监控凭证履行等等。一方面说明内部销售代表在企业的日常运营的重要性,另一方面从标准产品的角度提供了灵活性,每个企业可以基于标准的角色,根据不同类别的细分用户类去建立特定的业务角色,通过增加或删除一些业务目录从而达到对具体销售人员的权限管理。在订单到收款的流程中,内部销售代表会负责大部分报价和订单管理的活动,从订单的录入到订单的履行,同时跟其他业务角色也有合作,比如装运专家,仓库人员。此角色能开展以下任务:创建、更改和显示销售凭证,如以下项:销售询价、销售报价、销售合同、销售订单或借项和贷项凭证请求管理不同销售凭证清单,例如,重复或不完整的销售凭证跨整个从订单到收款场景流程组件跟踪销售订单状态查看关于客户的信息显示主数据记录、如物料或业务伙伴创建销售主数据记录,例如,客户物料在我的销售概览应用中显示有关各种销售活动的信息在销售订单履行流程中监控、解决和协调重要的未处理问题配置并管理产品分配作为检查销售和库存运输订单中物料可用性的方法监控特定时间期间内产品分配对象、分配期间、特征值组合和订单项目的产品分配情况附上一些相关的应用截图。3. 退货与退款职员此角色主要负责客户退货管理以及触发退款。在订单到收款的流程中,如果涉及到客户因为商品质量等原因需要退货,就需要由企业的退货职员管理。此角色能开展以下任务:从开票凭证或销售订单中创建客户退货编辑客户退货确定客户退货退款查看客户退货详细信息处理无费用销售订单4. 开票员工此角色主要负责监控和管理所有开票流程。开票管理是在订单到收款流程中,从销售领域到财务领域的重要环节。开票员工需要基于前导凭证去管理这个环节,甚至负责管理销售佣金等事宜。此角色能开展以下任务:基于先前凭证(例如,交货、开票凭证请求和借贷凭证请求)创建、管理、更改和输出开票凭证(例如,发票、贷项凭证和借项凭证)并将其过账到财务会计基于先前凭证创建、管理、更改和输出临时开票凭证创建、管理、更改和输出由开票凭证组成的发票清单创建和管理可从内部和外部源中持久保存可开票数据的开票凭证请求以条件合同的形式管理返利协议和销售佣金生成和管理条件合同的结算凭证以结算返利协议并在客户财务会计中创建付款创建部分、增量和最终结算以及增量应计结算5. 销售经理此角色主要负责监控和优化销售流程和销售计划,并分析销售特定的关建性能指标 (KPI),例如,销售量和利润率。前序的四个角色可以把主要的事务流程完成,但是对于一个企业的管理而言,分析和监控业务的运营状况至关重要。所以销售经理的活动会从订到到付款的整个过程贯穿始终。此角色能开展以下任务:监控和优化销售流程和销售计划分析销售特定的 KPI,例如,报价转换率、销售合同转换率、新接销售订单、延期交货订单、交货绩效、销售量、利润率和贷项凭证获取与您最相关的销售特定 KPI 的图形概览,例如,收到的销售订单、客户退货、不完整的销售凭证、延期交货订单、利润率、已冻结和逾期销售订单通过实时计划和分析预测销售并设置目标关于销售计划的解决方案,可以参照我的这篇博客:S/4HANA之管理销售计划入门https://blogs.sap.com/2018/03…为了帮助销售经理更智能化的监控和优化销售流程,在S/4HANA里,我们提供了嵌入式预测分析解决方案。https://blogs.sap.com/2018/06…附上一些相关的应用截图。6. 销售流程经理此角色主要负责从订单到收款流程,需要了解企业中的所有销售订单流程的绩效和一致性。流程经理借助S/4HANA的流程业绩监控解决方案开展活动,监控流程中某些步骤的持续时间,以及执行流程期间触发的重要事件出现次数的关键指标。通过这些关键指标的帮助,流程经理可以轻松确定销售流程的运行状态是否良好,并能够快速找出有待改善的区域。此角色可开展以下活动:跟踪交货冻结或开票冻结检测对销售订单的关键字段进行的更改监控提前期(例如从订单到交货或从发货到开票的提前期)关于订单到收款流程绩效监控,后续我单独再分享。如果想提前了解也可以参考这篇SAP社区的博客:Order-to-Cash Performance Monitoring in S/4HANAhttps://blogs.sap.com/2015/09…总结通过对S/4HANA的销售模块中主要业务角色的介绍,大家应该对从订单到收款流程中的角色活动有一个基本的了解,同时对于如何在S/4HANA里去实现OLAP和OLTP的结合有一个直观的感觉。更多详尽的内容请参照SAP官方帮助文档,如果有任何问题,欢迎讨论,谢谢大家。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 15, 2019 · 1 min · jiezi

SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子

出于工作需要,Jerry写了这篇文章,给某些Partner做参考。以前Jerry曾经介绍过SAP C/4HANA的五朵云到底包含哪些具体产品,其实在SAP官网上有更权威的中文解释:https://www.sap.com/china/pro…其中明确提到销售云包含SAP Cloud for Customer(C4C),SAP Revenue Cloud和Callidus Cloud。有Partner询问有没有更详细的步骤介绍,关于如何在第三方系统里调用SAP C4C暴露出的Restful API进行集成。本文就给出一个具体的例子,将SAP C4C销售订单的创建功能通过自定义的OData服务暴露出来,然后Partner可以根据项目需要选择合适的编程语言(本文选择JavaScript)来消费。Jerry以前发布过一个视频,演示了如何在SAP C4C里手动创建一个销售订单,步骤可以说简单易懂。https://v.qq.com/x/page/d0809…现在我们通过OData的方式将销售订单的创建功能暴露出来,就能在第三方系统或者应用里完成C4C的订单创建。大家如果对SAP OData还不太了解,可以先读一读我这篇文章开头的部分:SAP OData编程指南下面是详细步骤。登录C4C系统,访问工作中心Administrator,工作中心视图OData Service Explorer,这里可以在SAP发布的标准OData服务和客户自定义的OData服务之间切换。因为客户自定义OData服务能够允许客户自行决定从哪一个Business Object的哪一些节点,选择哪一些字段来生成OData模型,通过这种灵活的方式可以避免Business Object上客户业务场景里不需要的字段出现在OData模型中。点击New按钮新建一个OData服务:给Work Center View字段指定一个用来做权限控制的视图,只有分配了这个视图的用户才有权限访问这个OData服务。点击Select Business Object从弹出对话框中选择基于哪一个Business Object创建OData模型。下图就是一个已经创建好并处于Active状态的OData服务。左边显示的是CustomerQuote这个BO的Root节点的所有字段,每个字段都有一个可以勾选或取消的Select属性,勾选则该BO字段会出现在右侧的OData模型里。除了Root节点之外,BO的其他子节点上的字段当然也是可以出现在OData模型里的,比如我上图右边OData模型的子节点CustomerQuoteItem, CustomerQuoteParty和CustomerQuoteText等,就是分别从左边BO的同名节点选中后自动带到右边的OData模型中去的。理论上,完成基于BO模型进行OData模型的创建并激活后,这个OData服务就可以使用了,这体现了SAP C4C OData服务自定义框架的强大之处。然而我也收到了一些朋友从后台给我提的一些问题,罗列如下。问题1: 仍然以本文销售订单创建这一场景为例,假设我希望我创建的OData服务能够允许消费者调用时指定External Reference的值,但是我找遍整个BO列表,也没发现销售订单的BO上有叫这个名称的字段啊?Jerry答:External Reference是UI文本,不是BO字段的技术名称。给C4C系统在浏览器里的url添加参数debugMode=true, 然后刷新页面,按住Ctrl键再单击External Reference字段,就能看到这个UI字段绑定到UI模型上哪一个字段了。在这个UI模型字段上再点击Show Model,就能看到这个UI模型字段绑定到的BO字段名称为BuyerID。所以我们在OData开发工具里,只需把BO字段BuyerID选中,移动到右边的OData模型里即可。问题2:我想让我的OData服务支持行项目数据的创建,比如指定产品ID,描述和购买数量等等。我怎么知道哪些BO节点上的字段需要添加到OData模型中去?Jerry答:现在我们换一种方法,打开Cloud Application Studio的UI Designer,定位到销售订单创建页面的UI模型COD_SALESORDER_QC, 找到Product ID字段,在它的Properties面板里即可看到这个Product ID字段绑定的BO字段的名称和完整路径:Root-.ItemProposal-~ProductUUID-~content因此我们需要将BO对应路径下面的ProductUUID字段添加到OData模型中去。这里能观察到ProductID的Create和Update是没有勾选上的,而ProductUUID则支持Create和Update,这个行为和C4C销售订单行项目创建的标准实现有关——消费者需要提供待创建行项目包含的产品UUID,然后C4C会根据UUID到系统中查询出对应的产品,显示其ID到UI上。如果消费者在调用OData服务时,没有指定ProductUUID,则行项目创建逻辑不会执行。OData模型创建好之后,在用编程语言消费之前,我们可以先用工具Postman(或者C4C自带的测试工具)进行测试。因为SAP C4C后台对Cross-site request forgery(跨站请求伪造)这种攻击采取的防御实现和SAP CRM,SAP S/4HANA一样,采取的是CSRF token验证机制,因此我们在调用OData服务进行销售订单创建时,需要将一个合法的CSRF token一并传递给C4C系统。如何得到一个合法的CSRF token呢?在Postman里构造一个HTTP GET请求,头部字段名为x-csrf-token, 值为fetch:发送这个HTTP GET请求,服务器端会生成一个CSRF token,通过HTTP响应结构头部字段x-csrf-token返回给消费者:sNwnYC9cV4xeGSYZmJ8Dtw==下面我们再在Postman里新建一个HTTP Post请求,将之前通过HTTP GET拿到的CSRF token,以HTTP Post请求头部字段的方式发送给C4C系统。关键在于HTTP Post请求的请求体。下图高亮部分是我在HTTP Post请求里指定的创建销售订单的输入数据:在Postman里发送这个Post请求,几秒钟后得到C4C的响应,订单创建成功,ID为9000000451:为了方便大家对比,下面是我用Postman消费我创建的OData服务生成的销售订单在系统里的显示。字段1~6对应的Postman输入字段可以在前文找到。蓝色区域高亮显示的字段,我在Postman里构造的输入里并没有维护,而是通过SAP C4C系统的各种determination配置,自动决定出来的。最典型的有SAP老司机们天天打交道的Partner determination,Organization determination,Pricing determination等。Postman里测试通过后,就可以写代码消费了。如果想直接复制粘贴我下面列出的代码,可以从我的github上获得:https://github.com/i042416/Kn…注意本代码只用于演示目的,缺少健壮的出错处理,不能直接用于生产环境中。下面的代码使用nodejs提供的request模块向C4C请求CSRF token。注意第3行的url和第11行的Authorization头部的值,我都是用的虚假值,请大家替换成自己实际使用的C4C url和认证信息。Token拿到之后,将其放入第41行构造的HTTP Post请求的头部结构中,作为字段x-csrf-token的值。第47行发送该POST请求,C4C响应的数据存放于JavaScript变量data中。最后我通过简单的console.log打印出创建成功的销售订单ID:在命令行里用node执行这个js文件,会打印出从C4C获取到的CSRF token,以及成功创建的订单ID。我们再回顾一下用SAP C/4HANA Sales Cloud中的C4C OData同外部系统做集成的三个主要步骤:1. 在C4C的OData模型编辑页面里,根据业务需要,从对应的BO节点里选择合适的字段,添加到OData模型中。2. 用Postman或者C4C自带的OData测试工具对OData模型进行测试,确保其正常工作。3. 根据项目需要选择合适的编程语言消费OData服务。如果对于SAP C4C OData有更多的问题需要讨论,欢迎留言。感谢阅读。Jerry关于OData的更多文章1. SAP OData编程指南2. OData服务同步模式和异步模式的讨论https://blogs.sap.com/2015/06…3. OData服务的性能分析https://blogs.sap.com/2015/07…https://blogs.sap.com/2016/01...4. 基于SAP CDS view生成OData服务https://blogs.sap.com/2016/03…5. OData的offline支持5.1 https://blogs.sap.com/2016/08…5.2 https://blogs.sap.com/2016/08…5.3 https://blogs.sap.com/2016/08…6. 使用ABAP消费SAP C4C标准OData服务https://blogs.sap.com/2017/08…7. SAP CRM,C4C和S/4HANA里OData服务实现的横向比较https://blogs.sap.com/2017/08…8. 使用Java和jMeter对需要支持CSRF验证的OData服务进行高并发性能测试https://blogs.sap.com/2017/08…9. 使用C4C OData + ABSL消费自定义BO的逻辑https://blogs.sap.com/2017/12…要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

January 15, 2019 · 1 min · jiezi

SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例

今天这篇迟到的文章,来自我的同事Aviva。去年SAP C/4HANA发布之后,SAP的从业者们可能或多或少都读过一些来自SAP官方渠道,比如微信公众号"SAP天天事"发布的一些文章,提到了"企业数字化转型", “智慧企业"等概念。那么这些概念如何落地呢?请看本文介绍的SAP成都研究院数字创新空间做出的一个尝试。Jerry在去年Aviva的一篇文章 Hyperledger Fabric on SAP Cloud Platform里就曾经介绍过她,不过Jerry也是最近才得知她"英文"名字的由来:“Aviva"这个单词,在希伯来语里的意思是"美好的春天”, 而这篇文章的作者Aviva,中文名字里正好有一个春字。为什么说是迟到的文章呢?因为这个创新案例早在去年上半年就结束了,然而作为同事们评价的"美腻与智慧的化身”,“云时代女王”,“大家前沿技术的引路人”, Aviva工作上总是有很多事情要忙,因此直到项目做完的半年后,才能空出档期完成这篇文章。此外,Aviva的正文里所有关于案例的截图都是从SAP成都研究院数字创新空间另一位女同事,Zhang Jane(张琦)制作的演示视频中截取的,这里表示感谢。Jane制作的关于这个创新案例的展示视频:<iframe frameborder=“0” width=“677” height=“380.8125” allow=“autoplay; fullscreen” allowfullscreen=“true” src=“https://v.qq.com/txp/iframe/p...;amp;vid=m0823f5fo83&amp;autoplay=false&amp;full=true&amp;show1080p=false&amp;isDebugIframe=false" style=“margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;"></iframe>Jane是一位美貌与才华并重的女同事,我在文章 SAP成都研究院数字创新空间沟通S/4HANA和C/4HANA的智能服务演示视频和Coresystems分享预告 里曾经贴过张琦的绘画和书法作品。这里再贴两张Jane元旦画的画,算是。。。算是给大家拜个早年:下面是Aviva的正文。*大家好,我是SAP成都研究院的开发人员Aviva。今天我想给大家分享一个我去年参与开发的项目,在SAP C/4HANA上结合近些年比较热门的人工智能和增强现实技术打造的一个创新案例。这个案例只是一个原型开发,并不是C/4HANA已经发布的标准功能。人工智能大家或多或少都有所了解,而增强现实技术(Augmented Reality,简称 AR), 按照维基百科的介绍,是一种实时地计算摄影机影像的位置及角度,并伴之与相应图像、视频和3D模型参与的技术,其目标是在屏幕上把虚拟世界的物体渲染在现实世界并允许使用者进行互动。听起来有点抽象和高深?我们马上进入案例介绍,通过实际的例子大家就能理解这个技术的用途了。而增强现实技术在移动设备上的实现,我们作为应用开发人员,可以简单的使用网上一些流行的AR开源框架进行应用开发。至于这些开源框架的源码,由于时间和精力限制,我也没有深入研究,我在介绍过程中会给出开源框架的github链接,感兴趣的朋友可以自行去阅读。本文前半部分我想首先介绍这个创新案例的用户故事,后半部分简单描述技术实现。用户故事(User Story)近些年来,诸如人工智能和AR(增强现实)等技术迅猛发展,如何利用好这些先进技术,帮助企业实现数字化转型,是一个值得思考的问题。 某足球制造商想要使用一种高科技的新型材料来制造2018年世界杯使用的足球。这家足球制造商的采购人员找到了一家名叫科创材料的企业,该企业是世界上最先进的足球材料供应商之一。科创材料使用了SAP Sales Cloud系统(SAP Cloud for Customer的Sales模块),希望以此为基础,结合AR,人工智能等前沿技术,打造出一个新的销售工具。这个新的销售工具如何使用呢?我们来看一个具体的使用场景。制造商的采购人员在科创材料的微信公众号上发起会话进行材料咨询。根据制造商的采购员提出的要求,科创材料的人工智能助手推荐了几款合适的材料。比如采购人员希望用一款高科技的原材料生产足球:那么科创材料的数字助手会推送一个公众号图文消息:采购人员点击之后,会看到科创材料的数字助手从SAP Sales Cloud系统后台的产品主数据中进行搜索,返回匹配采购人员要求的6款高科技原材料:为了让采购人员更直观地感受每种新型材料的外观,质地和性能等参数,除了常规的文字和图片介绍外,该销售平台还提供了根据这些原材料制作的成品3D模型展示:以及供客户在移动设备上能实际操作的AR页面,比如体验通过不同材质的皮革制成的足球,在不同场景下的弹力,滚动距离,滚动轨迹的差异等等。点击上图的Test Material按钮进入AR页面进行体验,会询问用户是否授权访问手机摄像头。允许之后,将手机摄像头对准事先准备好的marker(增强现实的实现技术之一,典型的载体是打印了特定图像的一张纸),即可在手机摄像头对准的现实区域内看到一个虚拟的足球。此时采购人员就能在手机上通过手机触动这个虚拟足球的方式,来模拟现实中的踢球动作,以此来体验不同材质制成的足球的各项参数。比如下图显示的是触球后足球的滚动距离和空中运行轨迹。在微信公众号页面里可以做一些简单的配置,选择其中几种材料,以对比的方式显示它们的参数差异。假如采购人员通过初步筛选,发现其中几款材料比较合适,然而对于最后购买哪款犹豫不决,于是该采购人员把经过初步筛选的几款材料通过微信分享给其他同事,让这些同事帮忙甄别,通过投票选出最合适的材料。采购人员点击Create Poll按钮发起投票请求:选中第一,第三和第四款之后,通过微信分享给其他同事所在的微信群里:微信群里的其他同事打开这个分享页面后,点击Vote Materials开始投票,同时可以留言讨论并查看投票结果。等同事们都投完票后,科创材料数字助手自动将投票结果告知采购人员。经过微信群里讨论,大家一致认为应该购买得票数最高的那款原材料。于是采购人员告诉数字助手,决定买2吨 。数字助手通过Sales Cloud的报价单模型,生成了一张包含报价的PDF推送给采购人员:这就是足球制造商的采购人员使用这个创新解决方案的完整流程。我们希望通过这个简单的创新案例,展示出SAP C/4HANA和当今一些新技术相结合,从而帮助企业实现数字化转型,成就智慧企业的可能性。当然,这里选择足球的原材料和成品只是作为一个例子帮助大家更直接地感受到人工智能和增强现实给企业流程管理带来的便利和改善,大家可以自行把足球脑补成其他的物品,比如机械臂,汽车,家电等等。这个创建案例的亮点:(1) 集成SAP Sales Cloud,引导客户完成购买之旅。(2) 利用微信和Recast.AI与客户交互,实现销售过程自动化。(3) 利用AR技术呈现SAP系统内不同产品主数据对应的原材料差异,方便专业人士的验证和体验,加速购买决策流程。以上介绍了这个创新案例的应用场景,下面我们来聊聊技术实现。从开发层面说,该创新案例可分为下图这几个模块:(1) 微信公众号网页端。使得用户可以在微信应用里查看原材料的详细信息,和基于每种原材料制作的成品的3D模型,并提供分享页面,创建投票页面等功能。(2) AR 页面,使用AR的方式,展示各种原材料制成的足球。(3) Proxy Service,又称消息服务器,中间服务器,用于链接微信页面和SAP C4C后台系统,并结合Recast.AI提供智能客服。(4) C4C Backend service(后台服务)增量开发,根据微信用户输入的产品关键字(比如"高科技材料”,搜索系统的产品主数据并返回匹配内容。限于文章篇幅,本文不会深入到代码层面介绍这四个模块的实现,只是简要叙述其原理。对细节感兴趣的朋友欢迎留言私聊。微信公众号网页端网页端就是指前面提过的原材料显示页面,包括3D模型显示页面,投票页面等。我用的框架是Angular,开发了一个单页面应用,它有一个外壳页面index.html,在app.js中创建了AngularJS的module。在config.js中使用Angular的config配置页面以及和页面关联得控制器,配置路由规则,配置渲染和加载规则。这些没什么可说的,毕竟我司和国内的Angular高手数不胜数。其中3D模型的显示我用的是threejs这个基于webGL的JavaScript框架。基于webGL的开源框架,需要支持webGL的浏览器,通过这个框架将3D模型,主要是每种足球原材料的obj 文件,mtl文件和各种纹理图片渲染成最后在微信里看到的不断旋转的3D足球。这些3D模型文件在我的电脑上长这个样:obj文件: 一种开放的几何定义文件格式,它仅表现3D几何体,即顶点的位置,以顶点列表的方式定义每个多边形的顶点,法向量和面的UV坐标,以及纹理顶点。顶点以逆时针存储,不必显式声明法向量。其中obj3.0格式支持多边形(Polygon),直线(Lines),表面(Surfaces),和自由形态曲线(Free-form Curves)。直线和多角形通过它们的点来描述,曲线和表面则根据于它们的控制点和依附于曲线类型的额外信息来定义。这些信息支持规则和不规则的曲线,包括那些基于贝塞尔 (Bezier)曲线,B样条(B-spline),基数(Cardinal/Catmull-Rom样条),和泰勒方程(Taylor equations)的曲线。obj文件的一个例子:mtl文件(Material Library File): 材质库文件,描述的是物体的材质信息,采用ASCII存储,任何文本编辑器可以将其打开和编辑。一个mtl文件可以包含一个或多个材质定义,对于每个材质都有其颜色,纹理和反射贴图的描述,应用于物体的表面和顶点。用作3D物体表面的纹理的各种png图片:这个很好理解。比如下图是某种材质制成的成品足球:那么它对应的纹理文件是这样的:我的任务就是使用threejs的API把这些模型merge在一起,生成最后带有3D视觉效果的JavaScript对象。为了避免让本文成为threejs编程教程,我不展开描述,感兴趣的朋友请查询threejs官网:https://threejs.orgAR页面该页面也是基于另一个增强现实的JavaScript框架AR.js开发的,从github上的Star数目就能看出其受欢迎的程度。https://github.com/jeromeetie…这个页面的具体编码工作是SAP成都研究院数字创新空间在德国的兄弟团队完成的,这里不做更多介绍。微信消息服务器开发一个服务端应用,部署在SAP云平台上(其他云平台也行),然后把服务的url配置到微信公众号的开发者中心中去即可。具体开发方式我之前的C4C同事张航和大卫哥已经做过详细介绍,这里不再重复:SAP成都研究院大卫哥:SAP C4C中国本地化之微信小程序集成SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成而基于Recast.AI的智能客服实现,我的同事Jerry在他的文章 使用Recast.AI创建具有人工智能的聊天机器人 里详细介绍过使用方法。C4C后台服务开发根据用户微信输入的关键字,去C4C系统查找匹配的产品主数据。我们前面视频里显示的6款原材料,在C4C系统主数据配置如下:而关于PDF文件在SAP ABAP Netweaver系统的生成,我的同事Jerry写过很多文章:(1) Convert word document into PDF via Adobe Livecycle Enterprise servicehttps://blogs.sap.com/2013/11…(2) Another way to preview PDF in CRM web client UI with little codinghttps://blogs.sap.com/2013/12…(3) Create Webservice enabled Adobe PDF attachment in CRM Applicationhttps://blogs.sap.com/2014/05…(4) Export WebClient UI table to PDFhttps://blogs.sap.com/2017/05…(5) How to render PDF which displays picture from the image attachment of your custom BOhttps://blogs.sap.com/2017/05…当然,选择SAP系统外的第三方PDF生成方案也是可以的,生成PDF后,将文件的url推送到微信上,用户点击url即可在微信里打开PDF查看内容。这部分后台开发主要是我的同事Liao, Janet(廖婧)完成的,这里表示感谢。这个C/4HANA同人工智能与增强现实技术结合的创新案例就介绍到这,感谢阅读。相关阅读一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA打通C/4HANA和S/4HANA的一个原型开发:智能服务创新案例SAP成都研究院大卫哥:SAP C4C中国本地化之微信小程序集成SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成使用Recast.AI创建具有人工智能的聊天机器人机器学习在SAP Cloud for Customer中的应用在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图要获取更多Jerry的原创文章,请关注公众号"汪子熙”: ...

January 15, 2019 · 1 min · jiezi

SAP S/4HANA使用ABAP获得生产订单的状态

在S/4HANA里,我们如何根据一个销售订单的行项目,查看对应的生产订单状态?双击行项目:点击Schedule line:这里就能看到生产订单的ID和状态了。其中订单的状态存储在表vsaufk里,注意订单和状态可以是1对多的关系。状态的ID和描述信息存储在表tj02t里,所以有了下面的代码:METHOD get_prod_order_status.DATA: lt_status TYPE TABLE OF j_status,lt_text TYPE TABLE OF tj02t,lv_id LIKE iv_prod_order_id,ls_result LIKE LINE OF rt_status_in_s4_format.lv_id = iv_prod_order_id.CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’EXPORTINGinput = lv_idIMPORTINGoutput = lv_id.SELECT stat INTO TABLE lt_status FROM vsaufk WHERE inact = space ANDaufnr = lv_id.CHECK sy-subrc = 0.SELECT * INTO TABLE lt_text FROM tj02t FOR ALL ENTRIES IN lt_statusWHERE istat = lt_status-table_line AND spras = ‘EN’.LOOP AT lt_text ASSIGNING FIELD-SYMBOL(<text>).CLEAR: ls_result.ls_result-status_id = <text>-istat.ls_result-status_code = <text>-txt04.ls_result-status_text = <text>-txt30.APPEND ls_result TO rt_status_in_s4_format.ENDLOOP.ENDMETHOD.测试一下,成功拿到所有状态,和事务码CO03里看到的一样。要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

January 15, 2019 · 1 min · jiezi

一个SAP开发人员的2018年终总结

我是SAP成都研究院的Jerry Wang,我喂自己袋盐。时间过得真快,2017年发生的事情还历历在目,一转眼,2018年又马上要结束了。Jerry惊恐地发现,随着年龄的增长,时光流逝的速度仿佛有加快的趋势。因此,年终的记录显得更为重要。把自己一年做的无论工作还是生活上的事情梳理一遍,若干年后来回味,一定非常有意思。2017年,Jerry的工作和生活,可以用这两个关键字概括:编程和游泳。更多详情可以参阅我的文章:Jerry的2017, 编程与游泳2018年,我的关键字变成了:编程与自媒体。Jerry是怎么想起在2018年,尝试着写微信公众号文章的呢?这要从很久很久以前说起。Jerry是2007年1月进入SAP成都研究院的。工作一两年之后,平时做开发遇到技术问题,我要么就请教身边的资深同事,要么就用即时通讯软件请教SAP其他地区的同事,像上海,德国,以色列这些地方的同事。当时SAP内部用的还是Messenger(用过这个软件的朋友们估计都有一把年纪了)。一个偶然的机会,我在Google上搜索一个技术问题时,发现了一个称为SDN的网站, SAP Developer Network。我惊讶地发现,这个网站上的其他网友,使用的编程语言和我每天工作中使用的一样都是ABAP,并且上面既有提问和解答,也有专门的技术博客。当时我的感受,就像阿里巴巴发现了芝麻开门这句咒语一样。从那一天起,我每天工作之余,都会花一些时间浏览SDN,遇到有网友提问而我知道线索的,我会去回答;看到别人写的好的技术博客,我会精读。一段时间过后,我觉得SDN帮助我提升了自己的技术,是时候从一个单纯的内容索取者(content consumer)转变成内容生产者(content producer)了。在我当时的老板Posei的鼓励下,我从2013年写下第一篇博客,从SDN改版成SCN(SAP Community Network), 再到如今的SAP Community,我始终保持了在上面写英文博客的习惯。我想,去年SAP Community的组委会让我成为SAP Mentor, 可能并不是我写的这630篇博客内容有多优质,而是对我这些年这份坚持的一种肯定。再说到微信公众号,一个IT从业人员非常熟悉的,获取知识和讯息的平台。Jerry关注了很多技术公众号,阅读完作者的文章之后,总是习惯把文章里面的知识和技巧自己动手做一做,想办法融合到工作中去。https://github.com/i042416我的github上有三个仓库,分别存放了ABAP,JavaScript和Java的代码片段。这些片段是我读了高手们的微信公众号文章后,把高手们在文章中传达的思路融入到SAP应用开发中而成。我通过这种方式,把微信公众号文章读到的知识,真正融合成自己知识体系的一部分。Jerry觉得这种学习方式有点像鸟山明《龙珠》里描述的沙鲁和魔人布欧,他们都是通过不断融合其他高手来提高自己的战斗力。再回到我想开始写微信公众号文章的原因:1. 微信公众号上别人的文章看得多了,自然而然的,我同样问自己:为什么你不在上面贡献点原创的东西呢?2. 去年年底正好读了昔日Airbnb女神朱赟的一篇文章,提到她开始写公众号文章之后,对自己工作和生活产生的一些积极改变。我当时很羡慕女神朱赟在业界的影响力,超高的人气和广阔的人脉。然而,光是羡慕别人,有用么?3. 我在之前的文章 SAP成都研究院35岁以上的开发人员都去哪儿了? 里提到,我是一个工作上很需要新鲜感的开发人员,喜欢不断尝试和挑战新的未知事物。在我每一篇微信文章写好之后点击群发按钮之前,我都无法预知我的关注者会做出怎样的评价。这种新鲜感是我想要的。综合以上三点,就有了我今天这个公众号。当然我除了要感谢SAP成都研究院其他肯赏脸在这个公众号上写文章的同事之外,也要感谢SAP中国研究院宽松的氛围和我的各级领导们对这件事情的大力支持。他们不但没有觉得我在业余时间做这件事情是不务正业,而且还帮助我转发这些文章,让它们能够传播得更广。2018年这个公众号总共发了87篇文章,其中我自己写了55篇,其余的文章是Jerry在SAP成都研究院的23位同事贡献的:SAP成都研究院2018年总共87篇技术文章合集Jerry一篇文章的平均写作时间是3小时,那么55篇的总共时间是165小时。这165个小时全是Jerry下班后的业余时间,如果按一周工作40小时计算,那就是4周多一点。由此可见,这55篇文章花费了Jerry相当一部分业余时间,不过好在我还是坚持了一整年。在2019年,我的更新频率或许不如今年,因为我可能会有其他新鲜事物要去尝试。能够给员工充分提供这种自由度让他/她们能够分享出自己的专长,无怪乎每年SAP中国研究院都会赢得各种最佳雇主的奖项。当然自媒体不仅仅局限于微信公众号。Jerry也经常浏览知乎,不过看得最多的还是讲游泳练习的文章和游戏发烧友的技术分享。2018年我在知乎上也获得了525个关注,456个赞同和809次文章收藏。我最初接触简书,同样是搜索游泳技术文章,通过百度发现了这个平台。除了收获636个粉丝和1603个喜欢之外,简书还有个贴心的功能,统计文章总字数。不知不觉中我已写下46万字了?CSDN:ITPub:腾讯云社区:阿里云栖社区的编辑专门给我创建了一个云栖社区的公众号:InWeHub:这里也要感谢ITPub,腾讯云,阿里云栖社区和InWeHub四位编辑今年对我的帮助和支持,祝你们2019年工作一切顺利。2018年的自媒体经历就说到这里。今年是我接触游泳的第三个年头。虽然我按照原计划学会了自由泳,但我只会右侧换气。我希望在2019年学会双侧换气。今年除了继续在Labs里窝着之外,还是抓住了机会到几个客户那里跑了几趟。今年3月的时候:5月跑了两家:刚刚过去的12月,作为一个成都人,Jerry见识了沈阳的大雪。去之前,听闻温柔可爱的小姐姐Carol告诉我工厂车间里没有空调和暖气,不过幸好我运气不错,去的那几天沈阳一点也不冷,最冷也就零下几度左右。六月份的时候,感谢Cissy主持的Toast Master,让我在公司里过了一把玩棍的瘾,也因此认识了SAP成都研究院的国家二级运动员,能双手使棍的Haytham Xu。更多Haytham和我与双截棍背后的故事,请参考这两篇文章:一个SAP开发人员的双截棍之路SAP成都研究院许聚龙:Hello, Coresystems!最后,让我用回答问题的方式,结束这篇流水账似的年终总结。在微信公众号后台,我时常收到一些提问,有这几种类型:你是如何从一个毕业生成长为SAP技术专家的?你是如何处理技术深度和技术广度这二者的平衡的?我是一个开发人员,工作5年了,感觉自己技术没啥长进,到瓶颈期了。你为什么有那么多的东西可以写成文章?首先我需要申明的是,Jerry不是那些业界上成名已久的大佬,和向我提问的各位一样,我只是一个普通的开发人员,大家问的很多类似上面列举的这种非技术问题,其实我也给予不了太多的帮助。我能给大家分享的是自己的一个习惯。在工作中我处理一些特别复杂的技术问题时,喜欢把思路用笔涂鸦在笔记本上,后来我才知道,这种做法有个时髦的名字:思维导图。在我做开发的时候,我脑子也在高速运转, 边写代码边想一些问题,比如:1. 我正在实现的这个功能,我记得今天上班地铁上看到一个高手的博客里介绍的一个解法更简捷高效。我把这件事情记在本子上,等忙完了去研究高手的解法。2. 我正在实现的这个功能,调用这几个API之后,或者在Spring/Maven里, 或者在yaml, xml, json这些配置文件里做几个配置就OK了,我的任务是完成了,然而这些API/配置为什么能够工作?背后的原理是什么?我把这些疑问记在本子上,等忙完了去研究。3. 当一个技术问题折腾了我很长时间才解决之后,我会在本子上写下反思:为什么我一开始没找到正确的突破口,浪费了这么多调试的时间?是知识有欠缺,还是一开始思路就错了?为什么会造成这种思路错误的现象?下次有办法避免吗?4. 我现在工作在SAP产品A上,我参与开发的这个功能,在SAP产品B和C上也都支持。这些需求类似的功能,在SAP产品A,B和C上的技术实现,因为其产品本身技术架构的区别而存在差异。那么把这个功能在A,B和C上的实现做个横向比较,优缺点各是什么?把这个比较的任务记在本子上,等忙完了去研究。时间一长,我的笔记本上就记下了很多这种零散的内容。经过我的归纳和整理,最后的输出就是我在SAP Community和自媒体平台上的技术文章了。我在SAP工作12年,总共写满了16本笔记本,叠在一起大概22厘米高。回到上面那些在公众号后台向我提出的问题,如果让我用四个字作答,我的答案就是做到:专注,坚持。2018年还有几十个小时就将永远离开我们了。在过去的一年,我要感谢我的父母,妻子和儿子,感谢我的亲人对我工作的支持;我要感谢我的领导Posei,感谢他对我职业生涯发展规划的建议和我工作中犯下错误的宽容;我要感谢和我一块写公众号文章的成都同事们,感谢SAP成都研究院C4C团队的每一位同事(的美食),感谢一块合作过的上海同事们;我要感谢关注我微信公众号,给我留言提问的朋友们;我要感谢各大社区和我保持长期联系,辛勤工作的编辑们;我要感谢一有优惠活动,第一时间想到我的健身顾问们;在即将到来的2019年里,Jerry预祝大家一切都好。我是SAP成都研究院的Jerry Wang,我喂自己袋盐。我们2019年再见。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 15, 2019 · 1 min · jiezi

SAP Cloud for Customer销售订单External Note的建模细节

SAP Cloud for Customer的销售订单创建页面里,我们可以给一个订单维护External Note,当这个订单同步到S/4HANA生成对应的生产订单后,这个note可以作为备注提示生产工人。它的建模逻辑是:首先进入调试模式,查看到这个字段绑定到UI模型的TextCollection/CustomerInformation上然后进入Cloud Application Studio,找到UI模型这个字段,查看发现它又绑定到了BO的TextByTextTypeCodeAndLanguageCode.这里不难猜测出,SAP C4C BO上支持多种类型的note,通过typecode区分。那么我怎么知道External Note对应的typecode的值呢?这个好办,在系统里维护一条带有External note数据的销售订单,比如这条:然后通过OData读取这条销售订单,OData url如下:https://jerry.sap/c4c/odata/c…‘00163E7209B31EE98297C038F2A3FDDC’)/CustomerQuoteText响应里包含的字段TypeCode的值10024就是External Note的type code。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 15, 2019 · 1 min · jiezi

SAP成都研究院2018年总共87篇技术文章合集

2018年很快就要结束了。Jerry在2017年年底准备开始写这个公众号时,给自己定的目标是:2018年至少保证每周发布一篇高质量的文章。如今2018年就快过去了,高质量与否需要大家来反馈,至少从量上看,已经达到我订的目标了。当然这87篇技术文章,有31篇文章是Jerry的成都研究院同事贡献的,在这里对这些同事表示感谢。按照名字的字母顺序,依次感谢:Chen VickyDeng SunHe AndrewLi BenLiao JanetMa HongboPeng SunShinePing JingJingSong HaoTang MinnaWang CongWen AvivaWu DavidXia JasonXu BorisXu HaythamYang JoeyYao YoyoZhang HarryZhang JonathanZhang SeanZheng KateZhou Shuai下面是文章列表。文章后面如果未跟作者名字,则默认作者是Jerry本人。这个视频是我的同事,Zhou Shuai用他的无人机完成的SAP成都研究院大楼的航拍,欢迎广大SAP同仁来访问参观。1. Jerry的CDS view自学系列 2. Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集3. Jerry的ABAP, Java和JavaScript乱炖4. C4C和微信集成系列教程5. Jerry的2017, 编程与游泳6. Jerry的UI5框架代码自学教程 1/1/20187. Jerry的碎碎念:SAPUI5, Angular, React和Vue 1/2/20188. ABAP开发人员未来应该学些什么 1/3/20189. Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现 1/5/201810. SAP的这三款CRM解决方案,您能区分清楚么 1/6/201811. SAP Fiori应用的三种部署方式 1/8/201812. 关于S/4HANA里Sales Office 和Sales Organization那些事儿 1/10/2018 Zhang Sean13. SAP成都研究院35岁以上的开发人员都去哪儿了? 1/13/201814. Jerry的WebClient UI 42篇原创文章合集 1/14/201815. Jerry的CRM Middleware(中间件)文章合集 1/16/201816. 从产品展示页面谈谈Hybris的特有概念和设计结构 1/17/2018 Zhang Jonathan17. 阿里云上到底能运行SAP哪些产品? 1/19/201818. Jerry的ABAP原创技术文章合集 1/21/201819. Jerry的Fiori原创文章合集 1/26/201820. OAuth 2.0协议在SAP产品中的应用 2/3/201821. 从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator 2/10/2018 Zhang Jonathan22. Hello World, S/4HANA for Customer Management 1.0 2/28/201823. 从程序猿到SAP产品经理,我是如何转型的?(上篇)3/11/2018 Xia Jason24. 从程序猿到SAP产品经理,我是如何转型的?(下篇)3/18/2018 Xia Jason25. 那些年我用过的SAP IDE 3/24/201826. SAP S4CRM vs C4C, 诸葛亮和周瑜? 3/30/201827. SAP成都C4C小李探花:浅谈Fiori Design Guidelines 4/8/2018 Zhou Shuai28. Jerry和您聊聊Chrome开发者工具 4/15/201829. SAP成都研究院李三郎:SCP Application Router简介 4/22/2018 Li Ben30. Jerry眼中的SAP客户数据模型 4/28/201831. 300行ABAP代码实现一个最简单的区块链原型 5/3/201832. SAP UI和Salesforce UI开发漫谈 5/8/201833. 汶川大地震中的SAP成都研究院 5/12/201834. SAP成都研究院的体育故事 5/13/2018 Deng Sun35. 使用Java程序消费SAP Leonardo的机器学习API 5/14/201836. 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 5/16/201837. 使用JDBC操作SAP云平台上的HANA数据库 5/18/201838. 用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办 5/23/201839. 金庸和古龙,Netweaver和微服务,以及SAP Hybris Revenue Cloud 5/25/2018 Chen Vicky40. SAP成都研究院马洪波:提升学习力,增强竞争力,收获一生乐趣 5/27/2018 Ma, Hongbo41. SAP Cloud for Customer 使用SAP UI5的独特之处 5/30/2018 Yang Joey42. 一个SAP顾问在美国的这些年 6/2/2018 Song Hao43. SAP成都研究院菜园子小哥王聪:当我用UI5诊断工具时我用些什么 6/4/2018 Wang Cong44. 写在Github被微软收购之际 - Github的那些另类用法 6/5/201845. 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务 6/7/201846. 企业数字化转型与SAP云平台 6/10/201847. SAP UI 搜索分页技术 6/16/2018 Wang Cong48. SAP OData编程指南 6/18/201849. SAP数据中心概述 6/23/201850. SAP成都研究院飞机哥:程序猿和飞机的不解之缘 6/24/2018 Zhang Harry51. SAP成都研究院DevOps那些事 6/30/2018 Ping, Jingjing52. ABAP vs Java, 蛙泳 vs 自由泳 7/3/201853. SAP产品的Field Extensibility 7/14/201854. SAP Cloud for Customer Extensibility的设计与实现 7/21/2018 Xu Boris55. 从产品展示页面谈谈Hybris系列之三:Hybris Service层介绍 7/28/2018 Zhang Jonathan56. SAP成都研究院姚瑶:软件质量保证工作的变迁 8/3/2018 Yao Yoyo57. SAP移动应用解决方案之一:HTML5应用 + Cordova = 平台相关的混合应用 8/8/2018 Yang Joey58. 使用Recast.AI创建具有人工智能的聊天机器人 8/9/201859. SAP成都研究院安德鲁:自己动手开发一个Chrome Extension 8/18/2018 He Andrew60. 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图 8/21/201861. 一个SAP开发人员的双截棍之路 8/22/201862. 机器学习在SAP Cloud for Customer中的应用 8/26/201863. 你的项目刚刚启动?是时候考虑Globalization了!9/1/2018 Wang Cong64. 聊聊C语言和ABAP 9/7/201865. SAP成都研究院郑晓霞:Shift Left Testing和软件质量保证的一些思考 9/13/2018 Zheng Kate66. Hyperledger Fabric on SAP Cloud Platform 9/16/2018 Wen Aviva67. SAP云平台,区块链,超级账本和智能合约 9/18/201868. 动手使用ABAP Channel开发一些小工具,提升日常工作效率 9/22/201869. 打通C/4HANA和S/4HANA的一个原型开发:智能服务创新案例 9/26/201870. 我用ABAP做过的那些无聊的事情 9/29/201871. 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧 10/8/201872. SAP成都研究院数字创新空间沟通S/4HANA和C/4HANA的智能服务演示视频和Coresystems分享预告 10/13/201873. SAP成都研究院许聚龙:Hello, Coresystems!10/17/2018 Xu Hathyam74. SAP成都研究院Sunshine: 我的C4C实习感受和保研之路 10/25/2018 Peng, Sunshine75. Jerry的知识星球:SAP中国神秘奶牛关卡 10/29/201876. 金庸的武侠世界和SAP的江湖 11/1/201877. 加入Jerry的知识星球,共同讨论SAP技术 11/3/201878. SAP成都研究院大卫哥:SAP C4C中国本地化之微信小程序集成 11/7/2018 Wu David79. SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成 11/12/2018 Zhang Harry80. 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma 11/18/201881. SAP S4CRM 1811 服务订单API介绍 11/24/2018 Song Hao82. 在Kubernetes上运行SAP UI5应用(上)12/2/201883. 在Kubernetes上运行SAP UI5应用(下) 12/4/201884. 一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA的方法介绍 12/7/201885. SAP成都研究院廖婧:SAP C4C社交媒体集成概述 12/8/2018 Liao Janet86. SAP Fiori + Vue = ?12/18/201887. 浅谈SAP C4S自动化 12/25/2018 Tang Minna要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

January 15, 2019 · 2 min · jiezi

SAP Cloud for Customer里Sales Order和Sales Quote的建模方式

SAP Cloud for Customer的Sales工作中心里有Sales Quote和Sales Order两个视图,一个用于销售报价单,另一个用于销售订单。流程上是先有报价单 ,报价单是一份OFFER,并不具备法律效力,只有在生成销售订单后,即买卖双方都对报价单上的内容进行一些协商后,达成一致生成的最终订单,才具有法律效力。现在我需要搞清楚Sales Order这个视图的UI是基于哪个Business object创建的。SAP C4C的UI都是基于MVC pattern设计的,首先在Chrome开发者工具里找到UI的模型名称:/BYD_COD/SalesOnDemand/SalesOrder/UI/COD_SALESORDER_TI.TI.uicomponent到cloud Application Studio的UI Designer里打开这个UI 模型,在Data model区域找到Business object的名称为CustomerQuote,这就有点怪了,我起初以为是Sales Order。后来在CustomerQuote这个BO上发现一个字段叫做TypeCode,才知道Sales Order和Sales Quote这两个业务模型底层的技术模型都是共享CustomerQuote这个BO,可以通过TypeCode来区分。typecode为30,代表这是个Sales Quote:typecode为2059代表是一个Sales Order:要获取更多Jerry的原创文章,请关注公众号"汪子熙":

January 13, 2019 · 1 min · jiezi