自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 随手小记-Oracle数据库导出行数大于1048576行的数据集到excel

备注:1048576是xlsx文件的最大行数。

2024-07-18 16:33:04 91

原创 SpringBoot调用WebService的实践

SpringBoot架构中,java调用webservice soap请求的一个实践

2024-06-12 15:29:51 1528 3

原创 SpringBoot学习笔记

作者学习java-SpringBoot框架的一些随手小记

2024-06-09 21:40:40 720

原创 WebService的配置

如果提示”对操作“XXX”的回复消息正文进行反序列化时出错。那么多半是因为字符长度不够。

2024-06-04 18:35:46 210

原创 SAP HCM 失败的HR结构权限

作者接了写入数据到HCM的任务,故想在测试系统自己做一笔数据试试,但是奇怪的是,作者本身是sap_all的权限,却在pa30无法读取人员信息。于是乎,通过各种手段查询资料,这方面作者要提一句,不要问AI,可能因为受众少的原因,ai在这方面回答的不算出色,甚至有点误导。注意SU53中的这张图,提示缺少什么类型就给他配什么类型,如图缺少P就给P,提示计划版本01,就给配01.(SU53如下图)第二步,进入OOSB--用户(结构权限),给用户配上上一步配好的参数文件,点击保存。2.OOSB--用户(结构权限)

2024-05-31 15:36:43 172

原创 ABAP--SQL语句查询程序(开箱即用)

& 包括 ZOPENSQLF01。*& 包括 ZOPENSQLTOP。*& 包括 ZOPENSQLF02。*& 包括 ZOPENSQLF04。*& 包括 ZOPENSQLF06。*& 包括 ZOPENSQLI01。*& 包括 ZOPENSQLI01。

2024-03-29 17:55:50 1382

原创 ABAP查询工单状态

1.用JEST(对象状态表)关联到TJ02(系统状态表)进行查询。2.使用函数STATUS_READ查。

2024-03-29 17:40:12 171

原创 Oracle数据库中的提示(hint)

咨询同事后,发现应该是数据库CBO帮我基于成本优化了代码,虽然本人写得sql是查询temp表的tss字段,但是数据库还是帮我找了c表中的tpd_value字段,并尝试转化为number类型(C表中,tpd_value字段有很多空值,所以必然转化不成功),出现报错提示ora-01722.我们写的sql,数据库CBO会自动帮我们优化成节省成本的代码去执行,当然,这也会带来一些不必要的麻烦。图中,TPD_VALUE是字符串类型,本人本意将其转为数字类型后,存储到TEMP表中,然后与1比对,没想到,这样会报错。

2024-03-11 18:29:18 598

原创 ABAP那些坑

背景:作者所在公司的SAP系统,工单有关联关系,比如说有A,B,C三张工单,A可以关联到B,B可以关联到C,但是生产线始终有A工单进行生产,B,C工单仅用于统计报工,不会下发到MES系统。ABAP认为,作者是声明了两个变量,但是l_rpl_aufnr的类型是C(1),而l_rpl_aufnr_f的类型是afko-aufnr,由于工单是0开头的12位字符串,这里into甚至不会报错,直接给工单里的第一个字符0到l_rpl_aufnr,直接导致死循环。吃过此亏,谨以为记。写完之后,自信回头,传到生产机。

2024-03-02 16:26:20 223

原创 Oracle 数据库中行转列的写法

oracle数据库常见的行转列功能

2024-02-05 16:09:59 1533 2

原创 MES&WMS分BU项目经验教训(2)

Parallel.For处理同样的数据时间会比直接使用for循环快300s左右,效率大概加快20%,这是因为单次循环里面每一笔数据都跑得很快导致,如果单次循环里面的速度越慢,Parallel.For的优势就会更明显。在上一篇文章中,博主是放弃了调用一次sap,一次性处理所有数据的方式,从而选择了多次调用sap,一次处理一笔货物移动的方式。// 设置最大并行数为系统可用的逻辑处理器核心数量。这次案例说明了,即便处理相同的数据,也不是并行的速度一定会比单线程运行有很大的提升,这算是一个小小的经验教训吧。

2024-01-03 09:56:33 423 1

原创 MES&WMS分BU项目经验教训

涉及到MES和WMS改造非常多,例如:SAP下达工单到MES要带MRP范围、MES下达备料需求给WMS也要带对应的BU标识、WMS要根据BU标识划分仓位库位等等。此次经验教训来自于WMS拆分BU上线后,仓库部门会提供一份历史库存清单,这份清单包含历史库存料号、现有库存、旧仓位、分BU后的新仓位等信息,而博主需要根据这份清单,做一个程序批量移动WMS和SAP的库存。SAP移动库存的程序很简单,整合一下excel的信息,调用标准的货物移动BAPI即可。

2024-01-02 12:05:02 1874

原创 基于.NET的一些C#小技巧

1.关于Task类和Tread类,很明显,他们都是微软提供给开发者控制线程的类,理论上Task类应该用得更多,甚至百度上搜C#多线程都是介绍Task类的。后面经排查发现,其他线程跑完的时候,关闭了数据流,因为用的是同一个数据库对象,所以这个跑得慢的线程就没法把数据写入数据库了,增加一段代码解决。介绍一下背景,公司日常生产中遇到一个BUG,发现某些电池的电压值不存在于系统中,经排查,原生文件中有该电压值,只是代码获取不到。//循环声明线程去获取文件里的电压值,假设资源足够,暂时也没遇到过资源不足的情况。

2023-12-24 17:19:37 52 1

原创 计算点到点集合的最短距离问题

在本文中,我们讨论了点到点集合距离计算的问题,并介绍了使用 KD 树和并行处理的解决方案。这种方法能够显著提高计算效率,特别是在处理大量数据时。希望本文能为读者提供有价值的参考,鼓励在实际应用中探索更高效的数据处理和计算方法。

2023-12-18 23:07:31 266

原创 OOALV的一个实例

重要的是要会调用标准类中的方法,sap中方法的返回值并不会很明显,很多时候需要读文档和调试才行,当然现在也可以问ai,但是ai准确度不高。gr_column->set_short_text( '物料编号123123' ).* " 填充内部表 gt_table(这里是示例,你需要替换为实际的数据源)" 获取 ALV 列对象。" 显示 ALV 表格。" 创建 ALV 对象。纯手敲实例,复制粘贴可运行。

2023-12-18 18:49:43 31

原创 浅谈SAP的OOALV

SAP OOALV

2023-12-17 16:12:02 147 1

原创 项目实战:使用C#字符串拼接将DataTable批量插入Oracle 11g数据库

1.oracle数据库中split函数估计大家都不陌生,这个函数用于拆分字符串,但是由于我们的字符串太大了,使用的是clob类型进行存储,所以要写一个clob_split的函数,将clob拆分成对应。最后总结:做项目中由于现实条件的制约,总是会存在各种各样奇怪的因素,如此次项目,原本只是一个简单的功能,利用OracleBulkCopy 类可以轻松解决,但是由于行业生产线方面的原因,//接下来,要在存储过程中,将字符串的信息解析出来并插入预先定义好的表中,在此之前,需要依赖两个自定义函数。

2023-12-13 16:17:38 530 1

原创 谈谈佛教-空性

初读这个故事,大家从字面上都会觉得惠能的佛歇胜神秀一筹,但是仔细一想,从普世价值和教育意义上来说,“时时勤拂拭,勿使惹尘埃”明显更实用和实际的指导意义,适用于日常生活中的各种情境,提醒人们时刻保持内心的清净和警觉,避免被世俗的烦恼所困扰。传统游戏中,玩家有固定的变强路线,而“时时勤拂拭,勿使惹尘埃”则告诉我们,玩游戏应该用心运营,这才能一步一步变强。但是“本来无一物,何处惹尘埃”出来就告诉你,规则都是假的,我玩游戏不需要规则,变强是一部分人的游戏玩法,而我不喜欢做游戏的榜一之类的。这里强调的是自由度。

2023-12-11 23:56:52 52

原创 设计模式之工厂模式(C#)

工厂模式是最简单且最常用的设计模式之一,主要利用接口的特性:允许实现类来实例化接口类型的变量。由于 ConcreteShapeFactory 类实现了 IShapeFactory 接口,因此可以将一个实现了接口的类的实例赋值给接口类型的变量。由于本人职业原因,目前只会发C#和ABAP两种编程语言的文章,发文也是为了自我总结和学习,但是代码都是相通的,希望文章能带给大家帮助。接口的一个重要特性:允许用实现了该接口的类的实例来实例化接口类型的变量。// 实现形状的工厂接口的具体形状工厂类。

2023-12-10 17:28:10 29 2

原创 软件工程中的设计模式

不久前的面试过程中,面试官问了一些设计模式的概念。老规矩,所有光讲概念,不讲代码的文章都是耍流氓,下面展示一段由C#编写的桥接模式的示例(ps:桥接模式属于结构型模式的一种,强调类和对象的组合)3. **行为型模式**:用于对象之间的通信和职责分配,包括观察者模式、策略模式、模板方法模式、命令模式等。2. **结构型模式**:用于处理类和对象的组合,包括适配器模式、装饰器模式、代理模式、组合模式等。1. **创建型模式**:用于对象的创建机制,包括工厂模式、抽象工厂模式、建造者模式、单例模式等。

2023-12-09 17:27:35 68

原创 C#委托机制的作用和优势

下面我们来讲讲委托的作用,光说理论,不写代码举例的都是耍流氓,文章底部有使用委托的最简单例子,起码可以增加代码的可读性哈哈哈~总的来说,委托是 C# 中非常重要的一种特性,它在事件驱动、异步编程、解耦和灵活性等方面发挥着重要作用,提供了一种强大而灵活的方法来处理方法的动态调用和处理。委托可以帮助降低代码的耦合度,提高代码的灵活性和可维护性。C# 提供的泛型委托类型(如 `Func` 和 `Action`)允许定义各种不同类型的方法签名,使得委托能够表示不同参数和返回值类型的方法。

2023-12-09 14:24:06 710

原创 abap并行处理框架

由于abap不像C#,java等编程语言,它没有多线程机制,但是sap官方提供了一个并行处理框架,来实现在sap系统内处理大量数据的方法。lt_jobs TYPE TABLE OF bgRFC_JOBHANDLE, " 存储并行处理作业句柄。DATA: lt_tasks TYPE TABLE OF i WITH EMPTY KEY, " 存储任务列表。lt_results TYPE TABLE OF ty_result, " 存储结果。* 调用并行处理框架。

2023-12-09 13:52:22 76

原创 C#异步多线程的例子

下面用C#写一段伪代码来使用异步多线程实现一个简单的任务调度器,可以接受多个任务,并使用多线程并行执行这些任务。Console.WriteLine($"任务 {taskNumber} 开始执行...");Console.WriteLine($"任务 {taskNumber} 执行完成.");// 这里延时2秒来模拟任务执行时间。Console.WriteLine("所有任务已完成。// 模拟创建多个任务,这里假设有5个任务。// 模拟任务执行的时间。// 等待所有任务完成。// 模拟任务执行的异步方法。

2023-12-09 13:36:46 45

原创 SAP中锁的概念

管理员和开发人员需要了解不同类型的锁以及它们如何影响系统的性能和并发访问,以便有效地设计和管理数据访问策略。在SAP中,锁是用于管理并发访问数据的机制。:当一个事务尝试获取某个数据的锁时,如果该数据已经被其他事务锁定,就会发生锁冲突。当一个事务正在对数据执行操作时,系统会对相关数据进行锁定,以确保事务能够完成并维护数据的完整性。:SAP使用锁来管理并发访问,以防止多个用户同时对相同数据进行修改或访问,从而避免数据混乱和不一致。:一旦事务完成了对数据的操作,系统会释放相应的锁,以允许其他事务访问这些数据。

2023-12-09 13:14:53 91

原创 C#使用多线程读取多个XML文件

所以,即使有100个XML文件,但在整个处理过程中,同时处理的任务数量始终不会超过限制的最大并行任务数量(10个)。在给定的示例代码中,通过限制最大并行任务数量为10个,尽管有100个XML文件,但代码仅同时处理最多10个文件。循环中的任务创建部分,会检查当前并行任务数量,并在达到最大并行任务数量时停止创建新的任务,直到某些任务完成并释放了资源。因此,该代码能够处理所有100个XML文件,但处理的同时最多只有10个任务在执行。),然后移除已完成的任务,以便腾出一个空位来启动新的任务。

2023-12-09 00:56:27 126

原创 C#将字符串反射成可执行语句

在项目中,我们时常遇到要将字符串转化为可执行语句的需求。但是我百度上找了一圈竟发现没几个人能正确写出反射的具体代码。Console.WriteLine($"计算结果:{result}");Console.WriteLine("编译错误:");// 通过反射获取 Calculator 类型和其方法。// 创建 CSharpCodeProvider 实例。// 获取编译后的程序集。// 调用方法并输出结果。// 添加需要的程序集引用。// 要执行的代码字符串。// 编译代码字符串。

2023-12-09 00:40:46 99 1

原创 SAP报工接口

E_MESSAGE = '获取工作订单属性时发生错误。'. " 错误消息。E_MESSAGE = '报工和物料移动操作成功。E_MESSAGE = '创建物料移动时发生错误。'. " 错误消息。E_MESSAGE = '报工过程中发生错误。E_SUCCESS = 'S'. " 成功标志。E_SUCCESS = 'E'. " 错误标志。E_SUCCESS = 'E'. " 错误标志。E_SUCCESS = 'E'. " 错误标志。E_SUCCESS = 'E'. " 错误标志。

2023-12-09 00:20:53 135

原创 C#将DataTable中的数据导出到Excel

作为一名程序猿,常常遇到用户要导出数据的情况,其中将DataTable中的数据导出到excel最为频繁。saveDialog.Filter = "Excel 文件 (*.xlsx)|*.xlsx";Console.WriteLine("导出失败:" + ex.Message);saveDialog.FileName = "导出数据.xlsx";// 将 DataTable 中的数据导入 Excel 工作表。// 调用导出到 Excel 的方法。// 保存 Excel 文件。

2023-12-08 23:51:36 666

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除