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

ABAP开发-批量导入BAPI和BDC_1

系列文章目录


文章目录

  • 系列文章目录
    • @[TOC](文章目录)
  • 前言
  • 一、概念
  • 二、BDC和BAPI数据导入
    • 1、BDC数据导入(录屏)
    • 2、BAPI数据导入
  • 三、实例
    • 1、BAPI
    • 2、BDC
  • 总结

前言


一、概念

SAP中,对一个事务码反复操作并且达到批量处理数据的效果,即批量导入,重复操作一类数据,从而用程序模拟业务人员的操作,节约时间。
批量导入的方法从原理上看分两大类:屏幕录制、功能调用

二、BDC和BAPI数据导入

1、BDC数据导入(录屏)

TCODE:SHDB
Batch Input是一种数据批量输入SAP系统的辅助程序,SAP系统的资料、格式可以通过Batch Input录入SAP系统,Batch Input机制是模拟事务处理将数据录入R/3系统,Batch Input类似SAP的CATT,控制性好,处理能力强
最后的保底方案

2、BAPI数据导入

TCODE:SE37
BAPI是一种SAP系统预留的标准对象的操作函数,可使用SE37查看代码
开发者通过自定义程序,按照操作函数的使用规范,把一定格式的数据,导入到BAPI的参数里,系统会自动创建标准对象,从而达到批处理效果
更可靠,若存在BAPI,推荐用BAPI,不用BDC,系统标准的函数-可以操作标准的对象,不会受到屏幕变化自开发等影响
实现步骤: SE37测试(BAPI_PO_CHANGE->BAPI_TRANSACTION_COMMIT)-》写程序

三、实例

1、BAPI

对采购订单行项目的短文本进行修改

TCODE:ME22
找一个标准采购订单如下,原本的短文本如下,看之后返回,以防在下面操作时被锁
在这里插入图片描述
TCODE:SE37
输入功能模块:BAPI_PO_CHANGE
点显示,可以看到具体代码,标准程序不要点修改!!
在这里插入图片描述
点执行
在这里插入图片描述
在导入参数的PURCHASEORDER中的值中填入采购单号
在这里插入图片描述
点击表中的POITEM,点击值“详细信息查看”
点击“单一结构”
在这里插入图片描述
PO_ITEM中填00010(修改第一个行项目)
因为要修改短文本,所以在SHORT_TEXT中填入修改后的短文本“测试质量流量计&CS200D029C03”
点击对号
在这里插入图片描述
然后退出,就可以看到已经改了一条目
在这里插入图片描述
点击POITEMX,目的:告诉系统改的是谁
在这里插入图片描述
点击“单一条目”
在这里插入图片描述
将PO_ITEM值改为00010,因为要修改的是短文本,所以将SHORT_TEXT值填上"X",点对号
在这里插入图片描述
点击执行
在这里插入图片描述
然后再到se37中,执行测试序列
输入功能模块名称BAPI_TRANSACTION_COMMIT,点击功能模块-》执行-》测试序列
在这里插入图片描述
在这里插入图片描述
测试序列中输入功能模块BAPI_PO_CHANGE、BAPI_TRANSACTION_COMMIT,即要更改的是BAPI_PO_CHANGE,提交更改到数据库 BAPI_TRANSACTION_COMMIT,然后点执行
在这里插入图片描述
同样的,输入采购订单号,PO_ITEM、PO_ITEMX中分别输入要更改的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
都填好之后,返回点执行
在这里插入图片描述
点退回
在这里插入图片描述
来到如下界面,点执行,就提交了
在这里插入图片描述
在这里插入图片描述
再打开ME22,查看该采购订单的短文本,显示已经被修改为“测试质量流量计&CS200D029C03”
在这里插入图片描述

注:SE37中,填入功能模块名称-》显示-》函数模块文档
函数模块文档中通常包含以下部分:
在这里插入图片描述
以BAPI__PO_CHANGE为例
1、Functionality该功能模块的作用
BAPI_PO_CHANGE使我们能改变采购订单

2、Functions in Detail功能详情
Authorization授权
当创建采购订单时,会检查以下授权对象
M_BEST_BSA (document type in PO)采购订单中的文档类型
M_BEST_EKG (purchasing group in PO)采购订单中的采购组
M_BEST_EKO (purchasing organization in PO)采购订单中的采购组织
M_BEST_WRK (plant in PO)采购工厂

3、Transfer具体有哪些字段
Purchase order number采购订单编号:PurchaseOrder字段唯一标识采购订单,必须填充此字段才能执行CHANGE方法;
Header data标头数据:采购订单的Header数据在PoHeader表中传输;
Item data项目数据:采购订单的item数据存储在Poltem表中,数量和交货日期/时间的更改应该在PoSchedule表中进行
Services and items服务和限制:不能使用Change方法对现有项执行更改,只能创建新项目
Conditions条件
Supplier and delivery address供应商和交货地址
Partner roles合作伙伴角色
Export/import data导出导入数据

4、RETURN返回信息
返回信息
如果 PO 已成功更改,则 HEADER 和 item 表中将填充 PO 中的信息。
返回消息
消息在 Return 参数中返回。这还包含有关接口数据是被错误填充还是可能被错误填充的信息(启发式接口检查)。如果已成功创建 PO,则 PO 编号也会与相应的消息一起放置在返回表中。

5、Restrictions限制
使用此功能模块,无法:
创建分包组件(只能使用现有组件)
创建配置(只能使用现有配置)
将文档附加到采购订单
更改外贸数据
更改服务数据
更改或重新分解BOM
无法使用BAPI创建或更改具有开票计划的PO项目

6、Example
对采购订单进行更改的示例
标头数据更改 、项目的更改、交货时间表变更、账户分配变更 、条件变化 、更换合作伙伴

SE37中查看标准程序,事实上我们最不需要关心的是源代码,因为通常是极其复杂的,我们需要关心的是导入、导出、正在更改、表中的信息
导入:
可以看到PURCHASEORDER这个参数不是可选的,即若要修改采购订单,则必须涉及到采购订单号
在这里插入图片描述
表:
上面的实例中,要修改的是短文本,那么可以从表中看到
在这里插入图片描述
在这里插入图片描述
双击关联类型
在这里插入图片描述
可以看到采购订单的采购订单项目,比如PO_ITEM是采购凭证的项目编号,即me22中的项目字段;SHORT_TEXT是要修改的短文本
在这里插入图片描述
在这里插入图片描述
同样的,可以在表中看到POITEMX,双击其关联类型
在这里插入图片描述
可以看到和POITEM是对应的
在这里插入图片描述

2、BDC

TCODE:SHDB
点击新建记录
在这里插入图片描述
输入“记录”、“要录屏的事务代码”、点击“开始记录”
在这里插入图片描述
会跳转到如下界面
在这里插入图片描述
修改短文本,点击保存,弹出会话框,点击“是”
在这里插入图片描述
可以看到如下,要改的采购凭证、项目号、短文本
点击返回,弹出对话框“是否保存更改到记录条目”,点击“是”
通过EKPO-TXZ01(01)、EKPO-TXZ01(02)来区分改的是采购订单的哪个行项目(即改的是哪个项目号的)
在这里插入图片描述
在这里插入图片描述
选中记录,点击程序
在这里插入图片描述
填入程序名,自己起一个名字,点√
在这里插入图片描述
此时,在se38里即可查到此次创建的程序
在这里插入图片描述
需要将代码改为如下:

REPORT zyt36_me22_36130NO STANDARD PAGE HEADING LINE-SIZE 255.* Include bdcrecx1_s:
* The call transaction using is called WITH AUTHORITY-CHECK!
* If you have own auth.-checks you can use include bdcrecx1 instead.
*include bdcrecx1_s.
DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE."定义BDC,CALL TRANSACTION时需要传的
DATA:   bdcmessage LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE."用来接收CALL TRANSACTION回来以后的MESSAGE*** End generated data section ***START-OF-SELECTION."调用perform"准备BDC的数据PERFORM bdc_dynpro      USING 'SAPMM06E' '0105'.
*perform bdc_field       using 'BDC_CURSOR'"和光标相关,不用管
*                              'RM06E-BSTNR'.PERFORM bdc_field       USING 'BDC_OKCODE''/00'.PERFORM bdc_field       USING 'RM06E-BSTNR''4500000056'."record-BSTNR_001."PO HEADER号,自己填入采购订单号4500000056PERFORM bdc_dynpro      USING 'SAPMM06E' '0120'.
*perform bdc_field       using 'BDC_CURSOR'
*                              'EKPO-TXZ01(01)'.PERFORM bdc_field       USING 'BDC_OKCODE''=BU'.
*perform bdc_field       using 'RM06E-EBELP'
*                              record-EBELP_002."Item的行项目号PERFORM bdc_field       USING 'EKPO-TXZ01(01)''测试测试BDC质量流量计&CS200D029C03'."record-TXZ01_01_003."短文本PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.PERFORM bdc_field       USING 'BDC_OKCODE''=YES'.
*perform bdc_transaction using 'ME22'."根据上面的BDCDATA调用事务代码CALL TRANSACTION 'ME22' USING bdcdata"ME22代表的是事务代码;光标落在TRANSACTION上,按F1,可以弹出帮助文档,CALL TRANSACTION-USING中有CALL TRANSACTION的语法用法MODE 'N'    "N-no screen mode ,不弹出屏幕  A--all screen mode    E--only error screenUPDATE 'A'  "A/S :同步/异步MESSAGES INTO bdcmessage.  "用定义的变量BDCMESSAGE来接MESSAGE*如何确定BDC是否执行成功
*1、sy-subrc = 0  并且需要查看BDCMESSAGE,不能包含A/E/X
*2、sy-subrc <>0 失败,失败里面有一个特殊的情况:sy-subrc = 1001,标识屏幕上面的字段出现了问题,需要检查的bdcdata*成功了才需要提交数据库,否则 ROLL BACK回滚数据IF sy-subrc = 0."成功的第一个条件 sy-subrc = 0LOOP AT  bdcmessage INTO DATA(lw_message).IF lw_message-msgtyp = 'A' OR lw_message-msgtyp = 'E' OR lw_message-msgtyp = 'X'."包含其中任何一个,我们认为调用失败,需要回滚数据CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.EXIT."程序结束ENDIF.ENDLOOP.ELSE.WRITE: / '数据更新失败'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.EXIT.ENDIF."成功了才会进行提交的操作CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
*   WAIT          =
* IMPORTING
*   RETURN        =.*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.CLEAR bdcdata.bdcdata-program  = program.bdcdata-dynpro   = dynpro.bdcdata-dynbegin = 'X'.APPEND bdcdata.
ENDFORM.*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
*  IF FVAL <> NODATA.CLEAR bdcdata.bdcdata-fnam = fnam.bdcdata-fval = fval.APPEND bdcdata.
*  ENDIF.
ENDFORM.

在这里插入图片描述
检查-》激活-》执行,提示标准采购订单已更改
在这里插入图片描述
此时,ME22中即可看到修改后的短文本
在这里插入图片描述

代码解释:
(1)双击“定义BDC”的语句DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.中的 LIKE后的BDCDATA,显示如下:
显示的是为了调用transaction需要往里面填的值,用perform填这些的值,除了采购订单号和短文本需要我们自己填入,其他的都是默认录屏带出的
在这里插入图片描述
(2)perform

  • perform bdc_dynpro :给PROGRAM、DYNPRO 、DYNBEGIN赋值
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM  = PROGRAM.BDCDATA-DYNPRO   = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.
ENDFORM.
  • perform bdc_field:给FNAM、FVAL赋值
FORM BDC_FIELD USING FNAM FVAL.
*  IF FVAL <> NODATA.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.
*  ENDIF.
ENDFORM.

(3)CALL TRANSACTION ‘ME22’ USING BDCDATA"

CALL TRANSACTION 'ME22' USING BDCDATA"ME22代表的是事务代码;光标落在TRANSACTION上,按F1,可以弹出帮助文档,CALL TRANSACTION-USING中有CALL TRANSACTION的语法用法MODE 'N'"N-no screen mode ,不弹出屏幕UPDATE 'A'.

在这里插入图片描述
在这里插入图片描述
优化,事实上我们不想要上面的代码那样在里面直接写采购订单号和短文本,我们需要的是传入一个参数,然后来改;思路:定义一个structure,里面包含采购订单号和短文本

创建PERFORM子例程
在这里插入图片描述
在这里插入图片描述
由于这里直接双击perform创建子例程不成功,所以我直接在SE38创建了INCLUDE程序
在这里插入图片描述
在这里插入图片描述
再优化后的代码:
主程序:

REPORT zyt36_me22_36130NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE zyt36_me22_36130_d01.
INCLUDE zyt36_me22_36130_f01.INITIALIZATION."初始化事件里面,给想要改的PO赋值
*准备数据ls_bdc-ebeln = '4500000056'."PO numberls_bdc-ebelp = 10."ITEM number 行项目号ls_bdc-txz01 = 'demo测试测试BDC质量流量计&CS200D029C03'."短文本APPEND ls_bdc TO lt_bdc.START-OF-SELECTION.
*根据LS_BDC,对PO数据进行更改LOOP AT lt_bdc INTO ls_bdc.PERFORM change_po_bdc USING ls_bdc.ENDLOOP.

INCLUDE zyt36_me22_36130_d01:

*&---------------------------------------------------------------------*
*& Include ZYT36_ME22_36130_D01
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*   data definition    从系统的复制来的
*----------------------------------------------------------------------*
DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE."定义BDC ,CALL TRANSACTION时需要传的
DATA:   bdcmessage LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE."用来接收CALL TRANSACTION回来以后的MESSAGEDATA:BEGIN OF RECORD,
* data element: BSTNRbstnr_001(010),
* data element: AUFEPebelp_002(005),
* data element: TXZ01txz01_01_003(040),END OF record.
"定义一个数据结构,用来保存需要更改的PO数据
TYPES: BEGIN OF TY_S_BDC,EBELN TYPE EBELN,"PO号EBELP TYPE EBELP,"行项目号TXZ01 TYPE TXZ01,"短文本END OF TY_S_BDC.
*定义一个变量,用来存放我们需要更改的PO
DATA: LS_BDC TYPE TY_S_BDC,LT_BDC TYPE TABLE OF TY_S_BDC.

INCLUDE zyt36_me22_36130_f01:

*&---------------------------------------------------------------------*
*& Include ZYT36_ME22_36130_F01
*&---------------------------------------------------------------------**&---------------------------------------------------------------------*
*& Form change_po_bdc  根据传入参数修改PO短文本
*&      --> LS_DBC
*&---------------------------------------------------------------------*
FORM change_po_bdc USING is_bdc TYPE TY_S_BDC.DATA : lv_pos TYPE c LENGTH 2,lv_val TYPE bdc_fval."通过bdc的type得来的"调用perform"准备BDC的数据  录屏的形式生成performPERFORM bdc_dynpro      USING 'SAPMM06E' '0105'.
perform bdc_field       using 'BDC_CURSOR'"和光标相关,不用管'RM06E-BSTNR'.PERFORM bdc_field       USING 'BDC_OKCODE''/00'.PERFORM bdc_field       USING 'RM06E-BSTNR'is_dbc-ebeln."record-BSTNR_001."PO HEADER号,自己填入采购订单号4500000056PERFORM bdc_dynpro      USING 'SAPMM06E' '0120'.
*perform bdc_field       using 'BDC_CURSOR'
*                              'EKPO-TXZ01(01)'.PERFORM bdc_field       USING 'BDC_OKCODE''=BU'.
perform bdc_field       using 'RM06E-EBELP''0010'. "record-EBELP_002."Item的行项目号* 处理短文本的字段名字lv_pos = is_dbc-ebelp+2(2)."跳过前两位,取两位lv_val = 'EKPO-TXZ01(' && lv_pos && ')'."拼接短文本字段名PERFORM bdc_field       USING 'EKPO-TXZ01(01)''测试测试BDC质量流量计&CS200D029C03'."record-TXZ01_01_003."短文本PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.PERFORM bdc_field       USING 'BDC_OKCODE''=YES'.
*perform bdc_transaction using 'ME22'."根据上面的BDCDATA调用事务代码CALL TRANSACTION 'ME22' USING bdcdata"ME22代表的是事务代码;光标落在TRANSACTION上,按F1,可以弹出帮助文档,CALL TRANSACTION-USING中有CALL TRANSACTION的语法用法MODE 'N'    "N-no screen mode ,不弹出屏幕  A--all screen mode    E--only error screenUPDATE 'A'  "A/S :同步/异步MESSAGES INTO bdcmessage.  "用定义的变量BDCMESSAGE来接MESSAGE*如何确定BDC是否执行成功
*1、sy-subrc = 0  并且需要查看BDCMESSAGE,不能包含A/E/X
*2、sy-subrc <>0 失败,失败里面有一个特殊的情况:sy-subrc = 1001,标识屏幕上面的字段出现了问题,需要检查的bdcdata*成功了才需要提交数据库,否则 ROLL BACK回滚数据IF sy-subrc = 0."成功的第一个条件 sy-subrc = 0LOOP AT  bdcmessage INTO DATA(lw_message).IF lw_message-msgtyp = 'A' OR lw_message-msgtyp = 'E' OR lw_message-msgtyp = 'X'."包含其中任何一个,我们认为调用失败,需要回滚数据CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.EXIT."程序结束ENDIF.ENDLOOP.ELSE.WRITE: / '数据更新失败'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.EXIT.ENDIF."成功了才会进行提交的操作CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
*   WAIT          =
* IMPORTING
*   RETURN        =.
ENDFORM.
*----------------------------------------------------------------------*
*        Start new screen                      从系统的复制来的                        *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.CLEAR bdcdata.bdcdata-program  = program.bdcdata-dynpro   = dynpro.bdcdata-dynbegin = 'X'.APPEND bdcdata.
ENDFORM.*----------------------------------------------------------------------*
*        Insert field                          从系统的复制来的                           *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
*  IF FVAL <> NODATA.CLEAR bdcdata.bdcdata-fnam = fnam.bdcdata-fval = fval.APPEND bdcdata.
*  ENDIF.
ENDFORM.

总结

相关文章:

ABAP开发-批量导入BAPI和BDC_1

系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、概念二、BDC和BAPI数据导入1、BDC数据导入&#xff08;录屏&#xff09;2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中&#xff0c;对一个事务码反复操作并且达到批量处理数据的效果&#xff0…...

iOS 语音循环播放设置

本地文件、网络文件&#xff0c;区别就是URL创建方式 1、使用AVPlayerItem与AVPlayer&#xff08;这个简单&#xff0c;只需要设置回调&#xff09;&#xff0c;而不是AVAudioPlayer&#xff08;这个麻烦&#xff0c;需要设置代理、计时器等等&#xff09; 2、设置AVPlayerIte…...

PlantUML——类图

背景 类图是UML模型中的静态视图&#xff0c;其主要作用包括&#xff1a; 描述系统的结构化设计&#xff0c;显示出类、接口以及它们之间的静态结构和关系。简化对系统的理解&#xff0c;是系统分析与设计阶段的重要产物&#xff0c;也是系统编码和测试的重要模型依据。 在U…...

ASP.NET Core实现鉴权授权的几个库

System.IdentityModel.Tokens.Jwt 和 Microsoft.AspNetCore.Authentication.JwtBearer 是两个常用的库&#xff0c;分别用于处理 JWT&#xff08;JSON Web Token&#xff09;相关的任务。它们在功能上有一定重叠&#xff0c;但侧重点和使用场景有所不同。 1. System.IdentityM…...

生成:安卓证书uniapp

地址&#xff1a; https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书&#xff1a; 官网&#xff1a; keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…...

探索Web3:从去中心化应用到全球数字化未来

Web3 是互联网发展的下一步&#xff0c;它通过去中心化的理念重新定义了数字世界。与传统的Web2相比&#xff0c;Web3将数据主权交还给用户&#xff0c;让每个人都可以在没有中介的情况下安全地交换信息和价值。本文将探索Web3的基本概念&#xff0c;去中心化应用&#xff08;D…...

AR向左,AI向右,智能眼镜来到十字路口

从Google Glass到Vision Pro&#xff0c;人类对智能眼镜的探索有进展&#xff0c;但都不算成功&#xff0c;直至Ray-Ban Meta的出现&#xff0c;这才让行业对智能眼镜重燃信心&#xff0c;从去年开始&#xff0c;随着AI大模型应用的深入&#xff0c;智能眼镜又有了新的故事可说…...

CTF靶场搭建及Web赛题制作与终端docker环境部署

写在前面 ╔══════════════════════════════════════════════════════════════════════════╗ 哈喽大家好&#xff01;我是Myon&#xff0c;趁着我的云服务器还没过期&#xff0c;这次给大家出一…...

Java 应用程序CPU 100%问题排查优化实战

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

计网(王道的总结)-数据链路层-网络层-传输层

由于时间有限&#xff0c;把每个王道的章节最后一节放在一起&#xff0c;分别看看复习知识点。 3.6.4 IEEE 802.11 无线局域网 重点&#xff1a; 3.7 广域网 真题考频&#xff1a;极低 3.8以太网交换机 4.1网络层的功能 4.2.1IPv4分组 最重要的&#xff1a; TTL&#xff1a;…...

1-4 C单向链表

目录 1.0 基本概念 2.0 初始化链表 2.0 插入数据 3.0 删除数据 4.0 获取链长度 5.0 查询链表 6.0 返回第一个节点 7.0 打印链表节点 8.0 释放内存 9.0 链表调用 1.0 基本概念 线性表的顺序存储&#xff1a;用一块连续的内存空间&#xff0c;线性表的链式存储&#xff…...

在Windows 10中使用SSH远程连接服务器(附花生壳操作方法)

SSH 在 linux 中是一种重要的系统组件&#xff0c;用户可以使用 SSH 来远程连接 linux 系统的计算机&#xff0c;或者传输文件。不过在 win10 以前&#xff0c;windows 并不原生支持 SSH&#xff0c;需要借助第三方工具来使用 SSH 功能。而实际上&#xff0c;微软在 2015 年就曾…...

韶音科技嵌入式面试题及参考答案

Bootloader 的启动流程是什么&#xff1f; Bootloader 是在操作系统内核运行之前运行的一段小程序。它的启动流程主要分为以下几个阶段。 首先是硬件初始化阶段。这个阶段会对处理器以及一些关键的硬件设备进行初始化。比如&#xff0c;会配置处理器的工作模式、设置堆栈指针等…...

C++ ——— 类的 6 个默认成员函数之 构造函数

目录 何为默认成员函数 一、构造函数 构造函数的概念 构造函数的特性 日期类的构造函数 栈的构造函数 编译器自动生成的构造函数 总结 何为默认成员函数 默认成员函数就是用户没有显示实现&#xff0c;但是编译器会自动生成的成员函数称为默认成员函数 一、构造函数 …...

【优选算法篇】:揭开二分查找算法的神秘面纱--数据海洋中的精准定位器

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;c篇–CSDN博客 文章目录 一.二分查找算法二.算法模板模板一模板二模板三 三.例题演练1.x的平…...

【机器学习算法】——数据可视化

1. 饼图&#xff1a;显示基本比例关系 import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False# ——————————————————————————————————————————————————————…...

比特币与区块链原理解析:矿机挖矿与去中心化的未来

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

SpringBoot教程(十四) SpringBoot之集成Redis

SpringBoot教程&#xff08;十四&#xff09; | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 &#xff08;举例讲解&#xff09;2.4 项目中使用之工具类封装 &#xff08;正式用这个&#xff09;2.5 序列化 &…...

Qt之第三方库QCustomPlot使用(二)

Qt开发 系列文章 - qcustomplot&#xff08;二&#xff09; 目录 前言 一、Qt开源库 二、QCustomPlot 1.qcustomplot介绍 2.qcustomplot下载 3.qcustomplot移植 4.修改项目文件.pro 5.提升QWidget类‌ 三、技巧讲解 1.拖动缩放功能 2.等待更新 总结 前言 Qt第三方…...

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域&#xff0c;大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员&#xff0c;以其简洁直观的特点和广泛的适用性&#xff0c;不仅能独立解决诸多实际问题&#xff0c;更是诸多先进大模…...

深入探索JavaScript循环语句:从基础到高级应用

深入探索JavaScript循环语句&#xff1a;从基础到高级应用 在前端开发中&#xff0c;JavaScript 的循环语句是构建动态和交互式网页的关键工具。本文将全面介绍 JavaScript 中的几种主要循环语句&#xff0c;包括 for、while、do...while 以及 for...in 和 for...of&#xff0…...

从0开始深度学习(35)——YOLO V5原理详解

以YOLO V5s为例&#xff0c;介绍YOLO V5的网络结构&#xff0c;以及其中具体的功能模块 1 YOLO V5的整体网络结构 YOLO V5网络结构分为四个部分&#xff1a; 输入端&#xff1a; 输入端负责对输入图像进行预处理&#xff0c;包括数据增强、锚框计算等。骨干网络&#xff08;Ba…...

高级数据库模式设计与性能优化

数据库模式设计不仅仅是创建表和字段那么简单&#xff0c;还需要考虑数据的一致性、性能优化、安全性和可扩展性等多个方面。本文将深入探讨数据库模式设计的高级技巧&#xff0c;并提供一个实际的例子来展示如何在项目中应用这些技巧。 1. 数据库模式设计的高级技巧 1.1 多对…...

【开源免费】基于SpringBoot+Vue.JS图书进销存管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 082 &#xff0c;文末自助获取源码 \color{red}{T082&#xff0c;文末自助获取源码} T082&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

监控易助力扩容1000个点位

铁路交通作为城市发展的重要动脉&#xff0c;其IT系统的稳定运行对于保障铁路运输的安全与高效至关重要。近期&#xff0c;四川某铁路用户为了进一步提升IT基础资源的监控和管理水平&#xff0c;决定对现有的运维体系进行扩容升级&#xff0c;引入了监控易一体化运维软件&#…...

克服大规模语言模型限制,构建新的应用方法——LangChain

大模型 大模型的出现和落地开启了人工智能(AI)新一轮的信息技术革命&#xff0c;改变了人们的生 活方式、工作方式和思维方式。大模型的落地需要数据、算力和算法三大要素。经过几 年发展&#xff0c;大模型的数据集(包括多模态数据集)制作已经形成了规约&#xff0c;Meta、Go…...

MacOS 下 pico/pico2 学习笔记

1.安装开发工具 cmake brew install cmakeopenocd brew install openocdarm-none-eabi-gcc 用 brew 安装的版本会出现如下错误&#xff1a; arm-none-eabi-gcc: fatal error: cannot read spec file nosys.specs: No such file or directory用 arm 官方的版本没有问题。 cd …...

Leetcode 每日一题 1.两数之和

目录 问题描述 示例 示例 1 示例 2 示例 3 提示 解决方案 算法思路 过题图片 代码实现 复杂度分析 注意事项 题目链接 结论 问题描述 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你找出数组中和为目标值的那两个整数&#xff0c;并返回它们的数组下…...

柯桥职场商务英语生活英语口语培训外贸纺织口语学习

"等一下"该怎么说&#xff1f; 大家应该都知道&#xff0c;wait a moment是一个祈使句&#xff0c;祈使句就难免带有命令的口吻&#xff0c;还有点不耐烦。 如果你把“等一下”说成wait a moment&#xff0c;外国人多半认为你是个傲慢无礼的人。毕竟在他们看来wait a…...

ElasticSearch如何做性能优化?

大家好&#xff0c;我是锋哥。今天分享关于【ElasticSearch如何做性能优化&#xff1f;】面试题。希望对大家有帮助&#xff1b; ElasticSearch如何做性能优化&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&#xff0c;性能优化是…...

深度学习常用损失函数介绍

均方差损失&#xff08;Mean Square Error&#xff0c;MSE&#xff09; 均方误差损失又称为二次损失、L2损失&#xff0c;常用于回归预测任务中。均方误差函数通过计算预测值和实际值之间距离&#xff08;即误差&#xff09;的平方来衡量模型优劣。即预测值和真实值越接近&…...

PSHuman 部署笔记

目录 github地址&#xff1a; 依赖项&#xff1a; xformers安装&#xff1a; 解决方法&#xff0c;安装xformers smpl_data下载&#xff1a; 推理步骤&#xff1a; SMPLDataset 香港科技大学提出了一种叫PSHuman的新框架。这个方法利用了一个多视角扩散模型的“先验知识…...

怎么样能使Ubuntu的文件浏览器显示当前目录的路径,而不是只显示一个文件名?

默认情况下Ubuntu的文件浏览器是只显示当前目录的目录名的&#xff0c;这很不便我们查看路径或直接利用路径进行定位&#xff0c;那么怎么样能使Ubuntu的文件浏览器显示当前目录的路径呢&#xff1f; 两种方法&#xff1a; 第1种-临时方法 按下快捷键 Ctrl L&#xff0c;导航…...

自回归模型(AR )

最近看到一些模型使用了自回归方法&#xff0c;这里就学习一下整理一下相关内容方便以后查阅。 自回归模型&#xff08;AR &#xff09; 自回归模型&#xff08;AR &#xff09;AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…...

工具推荐-js爬取工具

现在测试方向都偏向于从js中的接口来入手找到可以进的点&#xff0c;关于快速扫描js文件来发现敏感接口的工具有很多&#xff0c;下面的jjjjs就是其一 项目地址: GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件&#xff0c;自动fuzz api接口&#xff0c;指定api接口&#x…...

CSS学习记录05

CSS外边距 CSS margin属性用于在任何定义的边框之外&#xff0c;为元素周围创建空间。通过CSS&#xff0c;您可以完全控制外边距&#xff0c;一些属性可用于设置元素每侧&#xff08;上、右、下和左&#xff09;的外边距。 Margin - 单独的边 CSS拥有用于为元素的每一侧指定…...

差异基因富集分析(R语言——GOKEGGGSEA)

接着上次的内容&#xff0c;上篇内容给大家分享了基因表达量怎么做分组差异分析&#xff0c;从而获得差异基因集&#xff0c;想了解的可以去看一下&#xff0c;这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。 1.准备差异基因集 我就直接把上次分享的拿到这…...

ISO 45001 职业健康安全管理体系的实施具有多方面的重要意义

对企业的意义 提升企业形象&#xff1a;实施 ISO 45001 体系体现了企业对员工职业健康安全的重视和承诺&#xff0c;有助于树立良好的企业形象&#xff0c;增强企业在社会公众、客户、投资者等方面的认可度和美誉度&#xff0c;提升企业的市场竞争力。增强员工满意度和忠诚度&a…...

HarmonyOS-中级(三)

文章目录 合理使用动画和转场Web组件和WebView给应用添加通知和提醒 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;HarmonyOS专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月08日12点12分 合理使用动画和转场 动效场景设计&#x…...

报错:Invalid HTTP method: PATCH executing PATCH http://XXX.XXX

分析&#xff1a; 问题在于我使用feignclietn调用PatchMapping方法时&#xff0c;发送的 PATCH 请求方法出现了不匹配的情况。虽然说springboot自带了RESTful风格的方法&#xff08;GET、POST、PUT、DELETE、PATCH&#xff0c;但是PATCH相较于前几个来说算是新的HTTP方法&#…...

Open WebUI项目源码学习记录(从0开始基于纯CPU环境部署一个网页Chat服务)

感谢您点开这篇文章:D&#xff0c;鼠鼠我是一个代码小白&#xff0c;下文是学习开源项目Open WebUI过程中的一点笔记记录&#xff0c;希望能帮助到你&#xff5e; 本人菜鸟&#xff0c;持续成长&#xff0c;能力不足有疏漏的地方欢迎一起探讨指正&#xff0c;比心心&#xff5e…...

WPF Prism 01-BootstrapperShell

Prism介绍 Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本&#xff0c;并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现&#xff0c;这些模式有…...

在Ubuntu22.04 jammy下用qemu模型riscv32环境装鸿蒙(未完成,待续)

在使用实体ESP32C3 安装鸿蒙失败后&#xff0c;就是这个&#xff1a;完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32&#xff08;主要是想针对ESP32C3和S3&#xff09;开发板的鸿蒙系统(失败)-CSDN博客转向用qemu模拟环境装鸿蒙 学习手册riscv32_virt/README_zh.md OpenHar…...

第2章:CSS基本语法 --[CSS零基础入门]

CSS(层叠样式表,Cascading Style Sheets)是用来描述HTML或XML(包括各种XML:SVG, MathML 或 XHTML)等文档的外观和格式的语言。以下是CSS的基本语法: 1.选择器 1.元素选择器 元素选择器是基于HTML标签名称来选择元素的。当你使用元素选择器时,你是在告诉浏览器对页面…...

win11 恢复任务栏copilot图标, 亲测有效

1、修改C:\Windows\System32\IntegratedServicesRegionPolicySet.json&#xff0c;解除中国不能使用copilot的限制。 使用Notepad搜索copilot全文搜索&#xff0c;将下面两处的“CN,”删除&#xff0c;删除后如下&#xff1a; {"$comment": "Show Copilot on t…...

Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)

在当前的电商市场中&#xff0c;拼多多以其独特的拼团模式和优惠价格吸引了大量用户&#xff0c;成为继淘宝、京东之后的又一大电商平台。对于数据分析和市场研究者来说&#xff0c;获取拼多多的商品详情数据显得尤为重要。本文将介绍如何使用Python爬虫技术&#xff0c;通过调…...

如何在x86模拟器和鸿蒙API9如何使用MQTT模块ohos_mqtt

目录 引言 安装失败的原因 如何编译so文件的x86_64版本 下载源代码 安装NDK 代码编译 安装MQTT软件包 避免MQTT软件包自动升级 设置libs 客户端程序的编写 运行测试 结语 参考文献 引言 在上周的博客&#xff08;如何在鸿蒙API9和x86模拟器中使用MQTT-CSDN博客&am…...

VB.NET 从入门到精通:开启编程进阶之路

摘要&#xff1a; 本文全面深入地阐述了 VB.NET 的学习路径&#xff0c;从基础的环境搭建与语法入门开始&#xff0c;逐步深入到面向对象编程、图形用户界面设计、数据访问、异常处理、多线程编程以及与其他技术的集成等核心领域&#xff0c;通过详细的代码示例与理论讲解&…...

芝法酱学习笔记(1.3)——SpringBoot+mybatis plus+atomikos实现多数据源事务

一、前言 1.1 业务需求 之前我们在讲解注册和登录的时候&#xff0c;有一个重要的技术点忽略了过去。那就是多数据源的事务问题。 按照我们的业务需求&#xff0c;monitor服务可能涉及同时对监控中心数据库和企业中心数据库进行操作&#xff0c;而我们希望这样的操作在一个事…...

图像处理插件:让小程序焕发视觉新生的秘密武器

在小程序开发中&#xff0c;图像处理是一个重要的环节&#xff0c;它涉及到图片的加载、显示、裁剪、压缩等多个方面。为了简化这一复杂过程&#xff0c;开发者通常会使用图像处理插件。这些插件不仅提供了丰富的图像处理功能&#xff0c;还封装了底层的图像操作逻辑&#xff0…...