吐槽一下用友U8的API开发
用友公司作为全国财务系统的一流企业,按理说在文档的编写上应该严谨、可靠。但是用友在这方面做的却不尽人意,不仅仅是文档写的简单、潦草,而且还错误百出。关键的是,没有客服支持。很多搞U8二次开发的朋友,因为遇到问题无法解决,最后都放弃了。
我最近开始做U8的二开,从最基础的C#开始学,一点儿一点儿研究。在开发过程中遇到了一些U8的坑,我列举出来供大家参考,今后有人再遇到同样的问题就可以避开了。
一、U8的ADODB:
在Visual Studio的IDE中,引入U8的ADODB时,并没有要求复制到本地,而且这个属性也是不可编辑的。
关键问题是,程序的编译也不报错。
但是程序的运行时报错:系统异常:未能加载文件或程序集“adodb, version=2.6.0.0, culture=neutral, publickeytoken=79a4e7ad54eeabca”或它的某一个依赖项。系统找不到指定的文件。
解决办法:将ADODB.DLL文件复制到程序目录下即可。
二、生成销售订单时报错
按照U8 API的开发文档,运行程序时,提示如下错误:
"系统异常:savebody:保存表尾数据时失败,不能保存!类型不匹配"
涉及到一百多个字段,所以这个错误提示毫无意义,根本不知道具体是哪个字段的问题。只能凭猜测,一点儿一点儿试,最后发现是dreleasedate这个字段的问题。
API文档里是这样写的:

注意看,这里注明的是必填字段,所以我在C#里是这样声明的:
public DateTime dreleasedate;
而实际上,这个字段并不是必填字段,声明语句修改成下面这样:
public DateTime? dreleasedate;
运行结果正常了。
上面只是我目前遇到的”坑“,预计未来还会有更多的坑等着我,在此,鄙视一下用友U8的文档编写者,你们也太不负责任了!
吐槽一下用友U8的API开发的更多相关文章
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 某企业用友U8+中勒索病毒后数据修复及重新实施过程记录
近期某客户中了勒索病毒,虽然前期多次提醒客户注意异地备份,但始终未执行,导致悲剧. 经过几天的努力,该客户信息系统已基本恢复正常运行,现将相关过程记录如下,作为警示. 方案抉择 交赎金解密:风险过高, ...
- 主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了
随着月末来临,又到了汇报总结的时刻. (图片来自网络) 到了这个特殊时期,你的老板就一定想要查看企业整体的运转情况.销售业绩.客户实况分析.客户活跃度.Top10 sales. 产品情况.订单处理情况 ...
- 万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用
在上一篇内容我们介绍了如何利用低代码开发套件实现低代码应用与U8+系统的对接集成,本次给大家带来的是如何将用友U8+系统中的数据进行价值扩展和实际应用. 我们以生产物料齐套分析为例来说明如何利用低代码 ...
- 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南
欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
- 天气预报API开发
天气预报API开发 一. 寻觅篇 最近想要跟着视频练习一下利用API开发一个天气预报系统,就在网上找了一下可以用的API,结果好多都已经失效了... 1. 百度车联网天气预报 ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...
- API 开发实践
整个2015年,如果要给自己打上一个标签的话,那应该就是 API. 在各个不同的系统中定制各种 API 框架. 在做商城对接各种电商 ERP 的 API 开发中,我采用的是兼容SHOPEX 的 API ...
随机推荐
- K8s进阶之多租户场景下的资源配额(ResourceQuota)
概述 ResourceQuota官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/ 在 Kubernetes( ...
- RBMQ案例三:发布/订阅模式
在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 -- 分发一个消息给多个消费者(consumers).这种模式被称为&quo ...
- Java中如何让多线程按照自己指定的顺序执行
摘要:基于如何让多线程按照自己指定的顺序执行这个场景,浅谈Thread中join()函数的作用和原理. join的作用 之前有人问过我一个这样的面试题:如何让多线程按照自己指定的顺序执行?这个问 ...
- 算法新手村 Day01
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 前言: 算法 算法的分类 几个排序算法 0.两值交换 1.选择排序 动图 思路 代码 2.冒泡排序 动图 思路 代码 3.插入排序 动图 思路 ...
- 【转载】Controller-runtime控制器的实现
介绍 controller-runtime框架实际上是社区帮我们封装的一个控制器处理的框架,底层核心实现原理和我们自定义一个controller控制器逻辑是一样的,只是在这个基础上新增了一些概念,开发 ...
- [CRCI2008-2009] CVJETICI
[CRCI2008-2009] CVJETICI 观察图片及样例一: 注:下文中的被占领,指的是在这一个区间内,才有交叉开花的可能. 第一张小图发现 $2 \sim 3$ 被占领. 第二张小图发现 $ ...
- Select 组件实现【全选】(基于 Element)
〇.前言 在 Element 中,Select 组件支持单选和多选,但是并没有全选的属性,因此只能通过其事件和属性来实现,本文将实现一个简单的示例. 注意:本文的示例中,通过 leixing1 来兼容 ...
- 几分钟了解下java虚拟机--01
JDK, JRE, JVM的关系 ⚙ 解释器: 逐行转换字节码为机器码 即时编译器(JIT):将热点代码(经常执行的代码段)编译成高效的本地机器码,并缓存起来以供后续直接执行 Just-In-Time ...
- ES索引迁移优化:3倍速ReIndex + 零感知切换
在大模型驱动的时代,向量模型.索引抽取模型.文本切分模型(chunking)的迭代速度令人目不暇接,几乎每几个月就要升级一次.随之而来的,是Elasticsearch索引结构的频繁变更需求.然而,ES ...
- HarmonyOS NEXT仓颉开发语言实战案例:动态广场
大家好,今日要分享的是使用仓颉语言开发动态广场页面,也比较像朋友圈页面: 整个页面分为两部分,分别是导航栏和状态列表,导航栏比较简单,我们可以先写下导航栏的具体代码和页面的基本结构: Column{ ...