当前位置: 首页 > news >正文

【SAP-HCM】--HR人员信息导入函数

人员基本信息导入函数:HR_MAINTAIN_MASTERDATA

人员其他信息类型导入函数:HR_INFOTYPE_OPERATION

不逼逼,直接上代码,这两个函数还是相对简单易懂的

*根据操作类型查找对应的T529A 操作类型对应的值IF gt_alv IS NOT INITIAL.SELECT massn,stat1,stat2INTO TABLE @DATA(lt_t529a)FROM t529aFOR ALL ENTRIES IN @gt_alvWHERE massn = @gt_alv-massn.ENDIF.**操作
*        pernr TYPE p0000-pernr, "人员编码
*        begda TYPE p0000-begda, " 开始日期
*        endda TYPE p0000-endda, " 结束日期
*        massn TYPE pspar-massn, "操作类型
*        massg TYPE p0000-massg, "操作原因
*        plans TYPE pspar-plans, "职位
*        werks TYPE pspar-werks, "人事范围
*        persg TYPE pspar-persg, "员工组
*        persk TYPE pspar-persk, "员工子组
**组织分配
**        btrtl TYPE p0001-btrtl, "人事子范围
*        abkrs TYPE p0001-abkrs, "工资范围
*        ANSVH type P0001-ANSVH, "事业部
*        SACHP type P0001-SACHP, "人事管理员
*        SACHZ type P0001-SACHZ, "时间管理员
*        SACHA type p0001-SACHA, "工资管理员
*
**个人数据
*        nachn TYPE p0002-nachn, "姓名
*        vorna TYPE p0002-vorna, "英文名
*        name2 type p0002-name2, "曾用名
*        gesch TYPE p0002-gesch, "性别码  1代表男  2代表女
*        gbdat TYPE p0002-gbdat, "出生日期
*        gbort TYPE p0002-gbort, "出生地
**        gblnd TYPE p0002-gblnd, "出生国家
**        gbdep TYPE p0002-gbdep, "省份
**        natio TYPE p0002-natio, "国籍
*        famst TYPE p0002-famst, "婚姻状况
*        hukot TYPE p3527-hukot, "户口类型 考虑添加
*        ZTELENT type P0002-ZTELENT,"人才类型*定义局部变量,局部表及结构,用于反馈数据是否导入成功DATA:lt_pprop TYPE TABLE OF pprop,ls_pprop TYPE pprop,lt_pskey TYPE TABLE OF pskey,ls_pskey TYPE  pskey.DATA:lt_return    LIKE bapireturn,lt_return1   LIKE bapireturn1,lt_hr_return LIKE hrhrmm_msg.DATA:lt_return_sd LIKE bapireturn1,lt_return_cj LIKE bapireturn1,ls_pa0002    LIKE p0002,ls_pa3527    LIKE p3527,lt_return2   LIKE bapireturn1,lt_key       LIKE bapipakey.* 定义人事子范围 使用变量参考DATA:lv_btrtl TYPE p0001-btrtl.DATA:lv_tabix TYPE i.SORT lt_t529a BY massn.LOOP AT gt_alv INTO gs_alv.lv_tabix = sy-tabix.READ TABLE lt_t529a INTO DATA(ls_t529a) WITH KEY massn = gs_alv-massn BINARY SEARCH.IF sy-subrc = 0.
*定义信息类型是0000的数据类型ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-stat1'.ls_pprop-fval = ls_t529a-stat1 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-stat2'.ls_pprop-fval = ls_t529a-stat2 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ENDIF.*定义信息类型是0000的数据类型ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-MASSG'.  "操作原因ls_pprop-fval = gs_alv-massg . "'A1'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.**定义信息类型是0001的数据类型
*    ls_pprop-infty = '0001'.
*    ls_pprop-fname = 'P0001-BTRTL'. "人事子范围
*    ls_pprop-fval =  gs_alv-btrtl .             "'1010'.
*    APPEND ls_pprop TO lt_pprop.
*    CLEAR ls_pprop.
*   定义信息类型是0001的  人事自范围IF gs_alv-werks = '9300' OR gs_alv-werks = '9800' OR gs_alv-werks = '9900'.lv_btrtl = '1010'.ELSEIF gs_alv-werks = '9500'.lv_btrtl = '1020'.ELSEIF gs_alv-werks = '9600'.lv_btrtl = '1030'.ELSEIF   gs_alv-werks = '9700'.lv_btrtl = '1040'.ENDIF.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-BTRTL'. "人事子范围ls_pprop-fval =  lv_btrtl .APPEND ls_pprop TO lt_pprop.CLEAR:ls_pprop,lv_btrtl.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-ABKRS'. "工资范围ls_pprop-fval = gs_alv-abkrs .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-ANSVH'. "事业部ls_pprop-fval = gs_alv-ansvh .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHP'. "人事管理员ls_pprop-fval = gs_alv-sachp .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHZ'. "时间管理员ls_pprop-fval = gs_alv-sachz .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHA'. "工资管理员ls_pprop-fval = gs_alv-sacha .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*公司代码=人事范围=组??(后台字段关联关系相等)ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-BUKRS'. "公司代码ls_pprop-fval = gs_alv-werks ."'9900'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SBMOD'. "组ls_pprop-fval = gs_alv-werks .                          " '9900'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*  0002开始日期ls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-BEGDA'. "0002的开始日期ls_pprop-fval = gs_alv-begda .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   姓名 p0002-nachnls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NACHN'. "ls_pprop-fval = gs_alv-nachn .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   英文名 p0002-vornals_pprop-infty = '0002'.ls_pprop-fname = 'P0002-VORNA'. "ls_pprop-fval = gs_alv-vorna .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   曾用名 P0002-NAME2ls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NAME2'. "ls_pprop-fval = gs_alv-name2 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   性别码 p0002-geschls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GESCH'. "ls_pprop-fval = gs_alv-gesch .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   出生日期 p0002-gbdatls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBDAT'. "ls_pprop-fval = gs_alv-gbdat .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   出生地 p0002-gbortls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBORT'. "ls_pprop-fval = gs_alv-gbort .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   出生国家 p0002-gblndls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBLND'. "ls_pprop-fval = gs_alv-gblnd .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   省份p0002-gbdepls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBDEP'. "ls_pprop-fval = gs_alv-gbdep .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   国籍 p0002-natiols_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NATIO'. "ls_pprop-fval = gs_alv-natio .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   婚姻状况 p0002-famstls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-FAMST'. "ls_pprop-fval = gs_alv-famst .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*   人才类型 P0002-ZTELENTls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-ZTELENT'. "ls_pprop-fval = gs_alv-ztelent .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '3527'.ls_pprop-fname = 'P3527-HUKOT'. "ls_pprop-fval = gs_alv-hukot .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 创建人员基本信息,主要用于创建对应的人员编码CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'EXPORTING
*       PERNR           = '00000000'massn           = gs_alv-massn   "'Z0'            "操作类型actio           = 'INS'           "插入操作/修改操作/删除操作tclas           = 'A'             "数据保留的事物类begda           = gs_alv-begda  "sy-datum        "起始时间endda           = gs_alv-endda  "'99991231'      "结束时间
*       OBJPS           =
*       SEQNR           =
*       SPRPS           =
*       SUBTY           =werks           = gs_alv-werks         "人事范围persg           = gs_alv-persg         "员工组persk           = gs_alv-persk         "员工子组plans           = gs_alv-plans         "职位
*       DIALOG_MODE     = '0'
*       LUW_MODE        = '1'
*       NO_EXISTENCE_CHECK       = ' '
*       NO_ENQUEUE      = ' 'IMPORTINGreturn          = lt_returnreturn1         = lt_return1hr_return       = lt_hr_returnTABLESproposed_values = lt_ppropmodified_keys   = lt_pskey.IF lt_return-type = 'E'.CONCATENATE '创建人员编号失败' lt_return-message INTO gs_alv-zmessage.gs_alv-icon = '@5D@'.ELSE.gs_alv-zmessage = '创建人员编号成功'.gs_alv-icon = '@5B@'.READ TABLE lt_pskey INTO ls_pskey INDEX 1.IF sy-subrc = 0.gs_alv-pernr =  ls_pskey-pernr.ENDIF.COMMIT WORK AND WAIT.*准备0002信息类型的数据,传入对应的数据ls_pa0002-pernr = gs_alv-pernr.  "人员编号ls_pa0002-begda = gs_alv-begda.  "开始日期ls_pa0002-endda = gs_alv-endda.  "结束日期ls_pa0002-nachn = gs_alv-nachn.  "姓名ls_pa0002-vorna = gs_alv-vorna.  "英文名ls_pa0002-name2 = gs_alv-name2.  "曾用名ls_pa0002-gesch = gs_alv-gesch.  "性别码ls_pa0002-gbdat = gs_alv-gbdat.  "出生日期ls_pa0002-gbort = gs_alv-gbort.  "出生地ls_pa0002-gblnd = gs_alv-gblnd.  "出生国家ls_pa0002-gbdep = gs_alv-gbdep.  "省份
*      ls_pa0002-natio = gs_alv-natio. "ls_pa0002-famst = gs_alv-famst.  "婚姻状况ls_pa0002-ztelent = gs_alv-ztelent. "人才类型ls_pa3527-pernr = gs_alv-pernr.  "人员编号ls_pa3527-begda = gs_alv-gbdat.  "开始日期ls_pa3527-endda = gs_alv-endda.  "结束日期ls_pa3527-hukot = gs_alv-hukot.  "人才类型*锁定人员编码CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'EXPORTINGnumber = gs_alv-pernrIMPORTINGreturn = lt_return_sd.*修改0002信息类型的数据CALL FUNCTION 'HR_INFOTYPE_OPERATION'EXPORTINGinfty            = '0002'              "HR模块把人员信息进行了分类,不同的信息需要指定不同的信息类型number           = ls_pa0002-pernr     "人员编码subtype          = ls_pa0002-subty     "子信息类型objectid         = ls_pa0002-objps     "对象标识lockindicator    = ls_pa0002-sprps     "人力资源主数据记录的锁定标志validityend      = ls_pa0002-endda     "结束日期validitybegin    = ls_pa0002-begda     "开始日期recordnumber     = ls_pa0002-seqnr     "相同关键值信息类型记录的编号record           = ls_pa0002           "人员信息表operation        = 'MOD'               "判断是插入还是修改(值域看ACTIO)tclas            = 'A'                 "数据保留事务类,一般用默认即可dialog_mode      = '0'                 "nocommit         = ''                  "
*         VIEW_IDENTIFIER  =secondary_record = ls_pa3527IMPORTINGreturn           = lt_return2key              = lt_key.
*IF lt_return2 IS NOT INITIAL.CONCATENATE gs_alv-zmessage lt_return2-message '但是信息类型0002创建失败,请检查'  INTO gs_alv-zmessage.gs_alv-icon = '@5D@'.ENDIF.CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'EXPORTINGnumber = gs_alv-pernrIMPORTINGreturn = lt_return_sd.ENDIF.MODIFY gt_alv FROM gs_alv INDEX lv_tabix.CLEAR:gs_alv,lt_pprop,ls_pprop,lt_pskey,ls_pskey,lt_return,lt_return1,lt_hr_return,lt_return_sd,lt_return_cj,ls_pa0002,lt_return2,lt_key,lv_tabix.ENDLOOP.

相关文章:

【SAP-HCM】--HR人员信息导入函数

人员基本信息导入函数:HR_MAINTAIN_MASTERDATA 人员其他信息类型导入函数:HR_INFOTYPE_OPERATION 不逼逼,直接上代码,这两个函数还是相对简单易懂的 *根据操作类型查找对应的T529A 操作类型对应的值IF gt_alv IS NOT INITIAL.S…...

【开源】基于JAVA的大学兼职教师管理系统

项目编号: S 004 ,文末获取源码。 \color{red}{项目编号:S004,文末获取源码。} 项目编号:S004,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管…...

Pyhon函数

import time # # for i in range(1,10): # j1 # for j in range(1,i1): # print(f"{i}x{j}{i*j} " ,end) # print() #复用,代码,精简,复用度高def j99(n1,max10): for i in range(n,max):jifor j in ran…...

使用vuex完成小黑记事本案例

使用vuex完成小黑记事本案例 App.vue <template><div id"app"><TodoHeader></TodoHeader><TodoMain ></TodoMain><TodoFooter></TodoFooter></div> </template><script> import TodoMain from …...

进阶理解:leetcode115.不同的子序列(细节深度)

这道题是困难题&#xff0c;本章是针对于动态规划解决&#xff0c;对于思路进行一个全面透彻的讲解&#xff0c;但是并不是对于基础讲解思路&#xff0c;而是渗透到递推式和dp填数的详解&#xff0c;如果有读者不清楚基本的解题思路&#xff0c;请看我的这篇文章算法训练营DAY5…...

数据结构-哈希表(C语言)

哈希表的概念 哈希表就是&#xff1a; “将记录的存储位置与它的关键字之间建立一个对应关系&#xff0c;使每个关键字和一个唯一的存储位置对 应。” 哈希表又称&#xff1a;“散列法”、“杂凑法”、“关键字&#xff1a;地址法”。 哈希表思想 基本思想是在关键字和存…...

HCIA-综合实验(三)

综合实验&#xff08;三&#xff09; 1 实验拓扑2 IP 规划3 实验需求一、福州思博网络规划如下&#xff1a;二、上海思博网络规划如下&#xff1a;三、福州思博与上海思博网络互联四、网络优化 4 配置思路4.1 福州思博配置在 SW1、SW2、SW3 上配置交换网络SW1、SW2、SW3 运行 S…...

Java程序员的成长路径

熟悉JAVA语言基础语法。 学习JAVA基础知识&#xff0c;推荐阅读书单中的经典书籍。 理解并掌握面向对象的特性&#xff0c;比如继承&#xff0c;多态&#xff0c;覆盖&#xff0c;重载等含义&#xff0c;并正确运用。 熟悉SDK中常见类和API的使用&#xff0c;比如&#xff1…...

几种常用的排序

int[] arr new int[]{1, 2,8, 7, 5};这是提前准备好的数组 冒泡排序 public static void bubbleSort(int[] arr) {int len arr.length;for (int i 0; i < len - 1; i) {for (int j 0; j < len - i - 1; j) {if (arr[j] > arr[j1]) {int temp arr[j];arr[j] ar…...

性能测试【第三篇】Jmeter的使用

线程数:10 ,设置10个并发 Ramp-Up时间(秒):所有线程在多少时间内启动,如果设置5,那么每秒启动2个线程 循环次数:请求的重复次数,如果勾选"永远"将一直发送请求 持续时间时间:设置场景运行的时间 启动延迟:设置场景延迟启动时间 响应断言 响应断言模式匹配规则 包括…...

业务:业务系统检查项参考

名录明细云平台摸底1.原有云平台体系&#xff1a;VMware、openstack、ovirt、k8s、docker、混合云系列及版本 2.原有云平台规模&#xff0c;物理机数量、虚拟机数量、迁移业务系统所占配额 3.待补充系统摸底 (适用于物理主机)每一台虚拟机或物理机&#xff1a; 1.系统全局参数…...

解决公网下,k8s calico master节点无法访问node节点创建的pod

目的&#xff1a;解决pod部署成功后&#xff0c;只能在node节点访问&#xff0c;而master节点无法访问 原因&#xff1a;集群搭建时&#xff0c;没有配置公网进行kubectl操作&#xff0c;从而导致系统默认node节点&#xff0c;使用内网IP加入k8s集群&#xff01;如下&#xff…...

六边形架构

Alistair Cockburn是于1953年出生在美国的一位软件开发方法学家。他毕业于康奈尔大学计算机科学专业&#xff0c;并获得了博士学位。 Cockburn在敏捷软件开发领域做出了许多重要的贡献&#xff0c;他被广泛认可为敏捷方法学的奠基人之一。他提出了许多关于敏捷开发的原则和实践…...

基于单片机的智能家居安保系统(论文+源码)

1.系统设计 本次基于单片机的智能家居安保系统设计&#xff0c;在功能上如下&#xff1a; 1&#xff09;以51单片机为系统控制核心&#xff1b; 2&#xff09;温度传感器、人体红外静释电、烟雾传感器来实现检测目的&#xff1b; 3&#xff09;以GSM模块辅以按键来实现远/近程…...

盘点3种Python网络爬虫过程中的中文乱码的处理方法

网络爬虫过程中三种中文乱码的处理方案&#xff0c;希望对大家的学习有所帮助 一、思路 其实解决问题的关键点就是在于一点&#xff0c;就是将乱码的部分进行处理&#xff0c;而处理的方案主要可以从两个方面进行出发。其一是针对整体网页进行提前编码&#xff0c;其二是针对…...

小程序富文本图片大小问题

文章目录 概要uniapp小程序情况解决方法及完整示例 概要 在小程序使用富文本或者在nuiapp&#xff08;小程序的&#xff09;使用富文本都会转为 <rich-text nodes"<p class"p class">内容</p>”></rich-text>如果是这种情况的话在css…...

Diagrams——制作短小精悍的流程图

今天为大家分享的是一款轻量级的流程图绘制软件——Diagrams。 以特定的图形符号加上说明&#xff0c;表示算法的图&#xff0c;称为流程图或框图。流程图是流经一个系统的信息流、观点流或部件流的图形代表。我们常用流程图来说明某一过程。 流程图使用一些标准符号代表某些类…...

Elasticsearch基础条件查询

条件查询 query&#xff1a;查询 match&#xff1a;匹配 match_all&#xff1a;匹配所有 #第一种 GET /shopping/_search?q名字:张三#第二种 GET /shopping/_search {"query": {"match": {"名字": "张三"}} }#全量查询 match_all G…...

【SAP-ABAP】SAP与外围系统对接方式

SAP作为接受方 1.JAVA直接配置IP、账号、密码&#xff08;有些人叫SAPWEBAPI&#xff09;调用SAP里面的RFC函数 2.SAP发布RFC函数&#xff0c;配置webservice地址 3.SAP发布ODATA服务 4.SAP发布restful的http服务 5.我不太懂的UI5和FIORI本质好像也是odata服务 6.IDOC SA…...

云计算的发展趋势

云计算的发展一直是一个极具活力和创新的领域。随着技术的不断进步和应用场景的拓展&#xff0c;云计算将在未来继续发挥重要作用。以下是云计算发展的一些趋势&#xff1a; 边缘计算的崛起&#xff1a; 随着物联网设备的普及和应用场景的增多&#xff0c;边缘计算成为一个重要…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...