ABAP开发-批量导入BAPI和BDC_1
系列文章目录
文章目录
- 系列文章目录
- @[TOC](文章目录)
- 前言
- 一、概念
- 二、BDC和BAPI数据导入
- 1、BDC数据导入(录屏)
- 2、BAPI数据导入
- 三、实例
- 1、BAPI
- 2、BDC
- 总结
文章目录
- 系列文章目录
- @[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数据导入(录屏)2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中,对一个事务码反复操作并且达到批量处理数据的效果࿰…...
RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式
文章目录 六. RPC(RPC通信模式)客户端服务端 七. Publisher Confirms(发布确认模式)1. Publishing Messages Individually(单独确认)2. Publishing Messages in Batches(批量确认)3. Handling Publisher Confirms Asynchronously(异步确认) 六. RPC(RPC通信模式) 客⼾端发送消息…...
并非传统意义上的整体二分
是的,如标题所见,本文章会以作者所理解的整体二分思想来介绍一系列整体二分食用方法。 一下内容均是作者本人理解,可能会与算法本身冲突。 1 本质 1.1 板子及从中的启发 我们在做主席树板子的时候,如果使用整体二分࿰…...
PostgreSQL的一主一从集群搭建部署 (同步)
一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2 二、安装数据库 源码包方式(主) 1、创建用户 [rootkeep-postgres12-node1 ~]# groupadd postgres [rootkeep-post…...
ios逆向某新闻 md5+aes
本期的案例比较简单,也许是ios逆向算法本来就比较简单的原因,所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例,这也是首篇ios的案例,所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…...
grpc的负载均衡
grpc的负载均衡分为client-side load balance和server-side load balance。 所谓的“客户端负载均衡”是指主调方调用被调方的时候,在grpc.DialContext里需要指定grpc.WithDefaultServiceConfig,这个DefaultServiceConfig默认是用pick-first策略。也支持…...
提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)
作者:来自 Elastic Shubha Anjur Tupil 几分钟内即可开始使用 Elastic Rerank 模型:强大的语义搜索功能,无需重新索引,提供灵活性和成本控制;高相关性、顶级性能和文本搜索效率。 使用我们全新的先进跨编码器 Elastic …...
【51单片机】程序实验1112.外部中断-定时器中断
主要参考学习资料:B站【普中官方】51单片机手把手教学视频 前置知识:C语言 单片机套装:普中STC51单片机开发板A4标准版套餐7 码字不易,求点赞收藏加关注(•ω•̥) 有问题欢迎评论区讨论~ 目录 程序实验11&12.外部中断-定时器…...
webrtc-java:引领Java进入实时通信新时代
webrtc-java:引领Java进入实时通信新时代 项目地址:https://gitcode.com/gh_mirrors/we/webrtc-java 在现代互联网应用中,实时通信(Real-Time Communication, RTC)已成为连接人们的桥梁。而说起RTC技术的先锋,不得不…...
TongWeb7-东方通快速使用手册
TongWeb7-东方通 快速使用手册 文章目录 第1章 TongWeb7 产品介绍 1.1 概述1.2 规范支持 第2章 TongWeb7 安装 2.1 TongWeb7 安装要求 2.1.1 TongWeb7 支持的操作系统2.1.2 系统要求2.1.3 其他 2.2 安装TongWeb72.3TongWeb7 目录结构说明2.4 TongWeb7 的启动和停止 第3章 应用…...
JVM内存区块
大家好,经过前两篇文章的介绍,大家对数组也有了一定了解,其实所有的数组都是对象,我们在方法中引用数组的变量叫做引用变量(简称引用),那么数组到底是存放在哪里的呢,为什么引用再出…...
C语言单元总结
黑色加粗表示刷题刷到这样的题 红色加粗表示可能重要 单元一 程序设计宏观认识 C语言程序框架 C语言程序最基本的程序框架由两部分构成,分别是 1) 编译预处理 2) 函数组 C语言程序构成 C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成…...
通过PS和Unity制作2D动画之一:创建形象
1、通过路径画出轮廓 使用路径的过程中,需要注意: 1)如果使用形状工具作图,比如使用椭圆工具画正圆形,需要设置其属性为“路径”。 2)使用路径选择工具,再按住Alt键点击某个路径,可…...
Notable是一款优秀开源免费的Markdown编辑器
一、Notable简介 Notable是一款开源的跨平台Markdown编辑器,支持Linux、MacOS、Windows以及国产操作系统等多种主流操作系统。它以其高颜值和强大的功能,成为了许多用户的首选工具。 主要特性 实时预览: Notable提供了实时预览功能&…...
基于MFC绘制门电路
MFC绘制门电路 1. 设计内容、方法与难点 本课题设计的内容包括了基本门电路中与门和非门的绘制、选中以及它们之间的连接。具体采用的方法是在OnDraw函数里面进行绘制,并设计元器件基类,派生出与门和非门,并组合了一个引脚类,在…...
C—指针初阶(2)
如果看完阁下满意的话,能否一键三连呢,我的动力就是大家的支持与肯定,冲! 二级指针 我们先看概念以及作用:用来存放一级指针的地址的指针 先看例子,我们逐一分析 我们先分析上面那个“1” 标注那里&#x…...
Linux 基础环境的开发工具以及使用(下)
1. make / Makefile 自动化构建的工具 1)引入 在我们进行一些大型的工程的时候,代码量是极其大,当我们代码在进行一系列的编译的时候,难免会出现一些错误,当我们对错误进行一系列的更改之后,难道我们需要…...
constexpr、const和 #define 的比较
constexpr、const 和 #define 的比较 一、定义常量 constexpr 定义:constexpr用于定义在编译期可求值的常量表达式。示例:constexpr int x 5;这里,x的值在编译期就确定为5。 const 定义:const表示变量在运行期间不能被修改&…...
期末复习-Hadoop综合复习
说明 以下内容仅供参考,提到不代表考到,请结合实际情况自己复习 目录 说明 一、题型及分值 二、综合案例题-部署Hadoop集群 或 部署Hadoop HA集群 案例 1:Hadoop 基础集群部署 案例 2:Hadoop HA 集群部署 案例 3ÿ…...
禁用SAP Hana错误密码锁定用户功能
背景 公司项目适配多种数据库其中包含SAP Hana,由于有同事的数据库连接工具保存了某个在用的数据库的旧密码,导致时不时会被锁用户。通过查询官方文档已解决,这里统一记录一下。 禁用密码锁定方法 以下按系统管理员和普通用户的解法分别列…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
