SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,ABAP调用MMPV/MMRV来批量更新会计期间(TODO)
之前用MMRV,MMPV来一次一个月来修改会计期间。
如果是老的测试机,可能是10几年前的,一次1个月,更新到当前期间,搞个100多次,手都抖。
SAP MM学习笔记 - 错误 M7053 - Posting only possible in periods 2010/08 and 2010/07 in company code 1000_sap m7053-CSDN博客
所以就想找那种可以一次搞定的方法,下面来看一下。
TODO:最终也没搞成,先放这里,给朋友们参考下,以后有空再说
1,MMRV - 查看当前会计期间
比如这里是 2009/11

2,OMSY - 初期化会计年月
修改前:2009/11

啊,出错了
会社Code 3000 无法初期化。
Msg 番号 MM011

看来也不是随便能改的哈
我在另一个会社Code上更新是可以更新的。

OMSY and OB52 - SAP Community
这个帖子里大致说了OMSY,MMPV/MMRV,OB52 的用途:
- OMSY - 初期化某个公司代码的会计期间,只能用一次
OMSY to fix up the Initial Period and Year for a company code for material management .
After setting you should touch this setting & used only once.
- MMPV / MMRV:MM中的日常开关账期用
For opening & closing periods in MM side, you used MMPV and MMRV to
set back posting allowed and to check which period is open in SAP system.
- OB52:FI 用
OB52 is used for FI side only. It control period in all Account Types A, K, D,M, S
and specially Account Type ?+? which stands for valid for all accounts type .
既然OMSY只能运行一次,那就只能从MMPV,MMRV身上着手想办法了。
3,通过ABAP代码自动批量开关账期
SAP ABAP 自动批量开关账期程序 OB52和MMPV_sap ob52-CSDN博客
TA的代码里面有几个错误:
a),Type "SLIS_T_FIELDCAT_ALV" 未定義
[ABAP] The type "slis_formname"is unknown._abap slis-CSDN博客

这就需要加上 type-pools,就可以include进来了:
type-pools: slis. "调用类型组
b),不支持関係演算子 "-"

好像也没啥好办法,先放到一个变量里面,再放到关系演算子里面

c),SELECT * using a JOIN must have an INTO clause.
項目 "@GT_T001" 未定義,相似的名称是 "GT_T001"

c),v_comp_code,v_process,v_year 这3个参数,要放到汎用Module的Import参数里面

实行前
会社Code:3000
当期:2009/11

运行Report
输入参数:
- S_COMP:会社Code, 比如这里输入 3000
- S_POPER:当期会计期间,比如这里输入 10 (因为现在是2024/10)
- P_EXECUT:选这项表示执行批量更新

执行完只会发现其实根本没变:)
TODO:看来还有需要修改的地方,以后有时间再继续改
原文里也说了实现思路了,我这里把自己的图贴一贴,有需要的可以参考一下,反正我也没成。
要是你搞成了,给我发个Message告诉哪里错了啊。
3-1,ABAP代码
a),SE38 Report

*&---------------------------------------------------------------------*
*& REPORT ZTOOLSR0001
*&---------------------------------------------------------------------*
*& 自动开账期程序
*&---------------------------------------------------------------------*
* OB52 参考SAP程序 RFPERIOD_OPEN 和 RFPERIOD_CLOSE
* 直接更新 T001B 这个表
*--------------------------------------------------------------------*
REPORT ztoolsr0001.TABLES: t001b.
TABLES: t001.type-pools: slis. "调用类型组SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.SELECT-OPTIONS: s_comp FOR t001b-bukrs,s_poper FOR t001b-frpe1 MODIF ID ty1 NO INTERVALS NO-EXTENSION.SELECTION-SCREEN SKIP 1.PARAMETERS: p_select RADIOBUTTON GROUP g1 USER-COMMAND uc DEFAULT 'X',p_execut RADIOBUTTON GROUP g1,p_close RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK blk1.TYPES: BEGIN OF ty_result,bukrs TYPE t001-bukrs,mkoar TYPE t001b-mkoar,bkont TYPE t001b-bkont,vkont TYPE t001b-vkont,frye1 TYPE t001b-frye1,frpe1 TYPE t001b-frpe1,toye1 TYPE t001b-toye1,tope1 TYPE t001b-tope1,frye2 TYPE t001b-frye2,frpe2 TYPE t001b-frpe2,toye2 TYPE t001b-toye2,tope2 TYPE t001b-tope2,lfgja TYPE marv-lfgja,lfmon TYPE marv-lfmon,vmgja TYPE marv-vmgja,vmmon TYPE marv-vmmon,blankcell TYPE c,END OF ty_result.DATA: gt_result TYPE STANDARD TABLE OF ty_result.
DATA: gt_t001 TYPE STANDARD TABLE OF t001,gt_t001b TYPE STANDARD TABLE OF t001b,gt_marv TYPE STANDARD TABLE OF marv.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,gs_layout TYPE slis_layout_alv.DATA: lv_dateDiff TYPE i.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF screen-group1 EQ 'TY1' AND p_execut EQ 'X'.screen-active = 1.ELSEIF screen-group1 EQ 'TY1' AND p_execut NE 'X'.screen-active = 0.ENDIF.MODIFY SCREEN.ENDLOOP.START-OF-SELECTION.PERFORM frm_select_comp_code.IF NOT gt_t001 IS INITIAL.IF NOT p_select IS INITIAL. " 查询账期PERFORM frm_select_posting_process. " 查询财务账期PERFORM frm_select_material_periods." 查询物料账期PERFORM frm_set_result_and_alv_show.ELSEIF NOT p_execut IS INITIAL. " 打开账期IF NOT p_execut IS INITIAL AND NOT s_poper IS INITIAL.lv_dateDiff = s_poper-low+1(2) - sy-datum+4(2) .IF s_poper-low+1(2) LT sy-datum+4(2).MESSAGE '输入期间不可小于当前期间' TYPE 'S' DISPLAY LIKE 'E'.RETURN.ELSEIF lv_dateDiff GT 1 .MESSAGE '输入期间 - 当前期间不可大于 1' TYPE 'S' DISPLAY LIKE 'E'.RETURN.ENDIF.ENDIF.PERFORM frm_select_posting_process.PERFORM frm_set_new_posting_process. " 开财务账期PERFORM frm_post_material_process. " 开物料账期MESSAGE '执行成功,请退出后等待一会儿(约1min)再重新进入查看' TYPE 'S'.ELSEIF NOT p_close IS INITIAL. " 关闭账期 - 只针对财务账期PERFORM frm_select_posting_process.PERFORM frm_set_new_posting_process. " 关财务账期ENDIF.ELSE.MESSAGE '未查询到公司数据,请检查后重试;或联系系统管理员维护ZMASTERT0001表' TYPE 'S' DISPLAY LIKE 'E'.ENDIF.END-OF-SELECTION.FORM frm_select_comp_code.
*--------------------------------------------------------------------*
* 有一个公司代码主数据 ZMASTERT0001
* 如果这个表忘记维护怎么办
* 加一个不更新账期的字段
*--------------------------------------------------------------------*SELECT*FROMt001INNER JOIN zmastert0001 ON t001~bukrs EQ zmastert0001~bukrsINTO CORRESPONDING FIELDS OF TABLE gt_t001WHERE t001~ktopl EQ 'CAUS'AND zmastert0001~not_up_acc_date NE 'X'AND t001~bukrs IN s_comp.ENDFORM.FORM frm_select_posting_process.IF NOT gt_t001 IS INITIAL.SELECT*FROMt001bINTO CORRESPONDING FIELDS OF TABLE gt_t001bFOR ALL ENTRIES IN gt_t001WHERE bukrs EQ gt_t001-bukrs.ENDIF.
ENDFORM.FORM frm_select_material_periods.SELECT*FROMmarvINTO CORRESPONDING FIELDS OF TABLE gt_marvFOR ALL ENTRIES IN gt_t001WHERE bukrs EQ gt_t001-bukrs.
ENDFORM.FORM frm_set_new_posting_process.DATA: ls_t001b LIKE LINE OF gt_t001b.DATA: lv_from_year_1 TYPE t001b-frye1,lv_from_process_1 TYPE t001b-frpe1,lv_to_year_1 TYPE t001b-toye1,lv_to_process_1 TYPE t001b-tope1,lv_from_year_2 TYPE t001b-frye2,lv_from_process_2 TYPE t001b-frpe2,lv_to_year_2 TYPE t001b-toye2,lv_to_process_2 TYPE t001b-tope2,lv_year TYPE t001b-frye1.FIELD-SYMBOLS: <lfs_t001b> LIKE LINE OF gt_t001b.*--------------------------------------------------------------------*
* 初始化值
*--------------------------------------------------------------------*lv_year = sy-datum+0(4).IF NOT p_close IS INITIAL. " 关闭账期lv_from_year_1 = lv_year.lv_from_process_1 = sy-datum+4(2).ENDIF.lv_to_year_1 = lv_year.IF s_poper IS INITIAL.lv_to_process_1 = sy-datum+4(2).ELSEIF s_poper-low+1(2) GE sy-datum+4(2).lv_to_process_1 = s_poper-low+1(2).ENDIF.lv_from_year_2 = lv_year.lv_from_process_2 = '13'.lv_to_year_2 = lv_year.lv_to_process_2 = '16'.LOOP AT gt_t001b ASSIGNING <lfs_t001b>.IF NOT p_close IS INITIAL.<lfs_t001b>-frye1 = lv_from_year_1.<lfs_t001b>-frpe1 = lv_from_process_1.ENDIF.<lfs_t001b>-toye1 = lv_to_year_1.<lfs_t001b>-tope1 = lv_to_process_1.<lfs_t001b>-frye2 = lv_from_year_2.<lfs_t001b>-frpe2 = lv_from_process_2.<lfs_t001b>-toye2 = lv_to_year_2.<lfs_t001b>-tope2 = lv_to_process_2.ENDLOOP.MODIFY t001b FROM TABLE gt_t001b. " 更新 T001B 表
ENDFORM.*--------------------------------------------------------------------*
* 开物料账期
*--------------------------------------------------------------------*
FORM frm_post_material_process.DATA: ls_t001 TYPE t001.DATA: lv_year TYPE lfgja,lv_process TYPE nperi.
*--------------------------------------------------------------------*
* 初始化值
*--------------------------------------------------------------------*lv_year = sy-datum+0(4).IF s_poper IS INITIAL.lv_process = sy-datum+4(2).ELSEIF s_poper-low+1(2) GE sy-datum+4(2).lv_process = s_poper-low+1(2).ENDIF.LOOP AT gt_t001 INTO ls_t001.CALL FUNCTION 'ZTOOLSFM04_MMPV_JOB'EXPORTINGv_comp_code = ls_t001-bukrsv_year = lv_yearv_process = lv_process.ENDLOOP.
ENDFORM.FORM frm_set_result_and_alv_show.DATA: ls_result TYPE ty_result,ls_t001b TYPE t001b,ls_marv TYPE marv.SORT gt_t001b BY bukrs mkoar.LOOP AT gt_t001b INTO ls_t001b.MOVE-CORRESPONDING ls_t001b TO ls_result.AT NEW bukrs.READ TABLE gt_marv INTO ls_marv WITH KEY bukrs = ls_t001b-bukrs.IF sy-subrc EQ 0.MOVE-CORRESPONDING ls_marv TO ls_result.ENDIF.ENDAT.APPEND ls_result TO gt_result.CLEAR: ls_result, ls_t001b, ls_marv.ENDLOOP.SORT gt_result BY bukrs mkoar.PERFORM frm_init_layout.PERFORM frm_set_fieldcat.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = sy-repidi_callback_pf_status_set = 'FRM_ALV_PF_STATUS'i_callback_user_command = 'FRM_ALV_USER_COMMAND'is_layout = gs_layoutit_fieldcat = gt_fieldcatTABLESt_outtab = gt_resultEXCEPTIONSprogram_error = 1OTHERS = 2.
ENDFORM.FORM frm_init_layout.gs_layout-colwidth_optimize = 'X'.gs_layout-zebra = 'X'.
ENDFORM.FORM frm_set_fieldcat.DATA: ls_fieldcat TYPE LINE OF slis_t_fieldcat_alv.PERFORM frm_init_fieldcat USING:'BUKRS' '公司代码','MKOAR' '账户类型','BKONT' '终止科目','VKONT' '起始科目','FRYE1' '年度','FRPE1' '从','TOYE1' '年度','TOPE1' '到','FRYE2' '年度','FRPE2' '从','TOYE2' '年度','TOPE2' '到','BLANKCELL' '财务账和物料账分隔列','LFGJA' '当期会计年度','LFMON' '当期过账期间','VMGJA' '上期会计年度','VMMON' '上期过账期间'.ENDFORM.FORM frm_init_fieldcat USING fieldname TYPE slis_fieldcat_alv-fieldnameseltext TYPE slis_fieldcat_alv-seltext_l.DATA: ls_fieldcat TYPE LINE OF slis_t_fieldcat_alv.ls_fieldcat-fieldname = fieldname.ls_fieldcat-seltext_s = seltext.ls_fieldcat-seltext_m = seltext.ls_fieldcat-seltext_l = seltext.ls_fieldcat-no_zero = 'X'.APPEND ls_fieldcat TO gt_fieldcat.
ENDFORM.FORM frm_alv_pf_status USING lt_extab TYPE slis_t_extab.SET PF-STATUS 'ZTOOLSR0001'.
ENDFORM.FORM frm_alv_user_command USING lv_ucomm LIKE sy-ucommls_selfield TYPE slis_selfield.DATA: lr_grid TYPE REF TO cl_gui_alv_grid.DATA: ls_layout TYPE lvc_s_layo.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lr_grid.CALL METHOD lr_grid->check_changed_data.ls_selfield-refresh = 'X'.ls_selfield-row_stable = 'X'.ls_selfield-col_stable = 'X'.CALL METHOD lr_grid->get_frontend_layoutIMPORTINGes_layout = ls_layout.ls_layout-cwidth_opt = 'X'.CALL METHOD lr_grid->set_frontend_layoutEXPORTINGis_layout = ls_layout.IF lv_ucomm EQ 'ZUPDATE'.PERFORM frm_set_new_posting_process. " 开财务账期PERFORM frm_post_material_process. " 开物料账期MESSAGE '执行成功,请退出后等待一会儿(约1min)再重新进入查看' TYPE 'S'.ENDIF.CALL METHOD lr_grid->refresh_table_display.
ENDFORM.
b),SE37 共通Module
本质上是在共通Module里面调用了MMRV/MMPV来1次一个月进行更新


FUNCTION ztoolsfm04_mmpv_job .
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*" IMPORTING
*" REFERENCE(V_COMP_CODE) TYPE BUKRS
*" REFERENCE(V_PROCESS) TYPE NPERI
*" REFERENCE(V_YEAR) TYPE LFGJA
*"----------------------------------------------------------------------
* DATA: v_mode TYPE rfpdo-allgazmd.
* DATA: wa_bdcdata TYPE bdcdata,
* it_bdcdata TYPE STANDARD TABLE OF bdcdata.
*
* v_mode = 'N'.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-program = 'RMMMPERI'.
* wa_bdcdata-dynpro = '1000'.
* wa_bdcdata-dynbegin = 'X'.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'BDC_CURSOR'.
* wa_bdcdata-fval = 'I_XCOMP'.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'BDC_OKCODE'.
* wa_bdcdata-fval = '=ONLI'.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'I_VBUKR'.
* wa_bdcdata-fval = v_comp_code.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'I_LFMON'.
* wa_bdcdata-fval = v_process.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'I_LFGJA'.
* wa_bdcdata-fval = v_year.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'I_XCOMP'.
* wa_bdcdata-fval = 'X'.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CLEAR wa_bdcdata.
* wa_bdcdata-fnam = 'I_XMOVE'.
* wa_bdcdata-fval = ''.
* APPEND wa_bdcdata TO it_bdcdata.
*
* CALL TRANSACTION 'MMPV' USING it_bdcdata MODE v_mode.
*
* COMMIT WORK AND WAIT.
*--------------------------------------------------------------------*
* 使用 BDC 录屏并不能实现
* 只能直接调用程序 RMMMPERI
* 直接调用程序 RMMPERI 会返回日志屏幕
* 所以还得去后台调用
*--------------------------------------------------------------------*
* JobDATA: v_start_time LIKE sy-uzeit,v_report TYPE sy-repid,v_jobcount TYPE tbtcjob-jobcount,v_jobname TYPE tbtcjob-jobname.* v_jobname = 'ZMMPVJOB' && sy-datum.CONCATENATE 'ZMMPVJOB' sy-datum INTO v_jobname.v_report = 'ZREPORTXXX'.v_start_time = sy-uzeit + 7. " 系统当期时间后21s* 定义后台作业CALL FUNCTION 'JOB_OPEN'EXPORTINGjobname = v_jobnamejobclass = 'A'IMPORTINGjobcount = v_jobcount.SUBMIT rmmmperiWITH i_vbukr = v_comp_codeWITH i_bbukr = v_comp_codeWITH i_lfmon = v_processWITH i_lfgja = v_yearWITH i_xcomp = 'X'WITH i_xinco = ''WITH i_xmove = ''USER sy-unameVIA JOB v_jobnameNUMBER v_jobcountAND RETURN.CALL FUNCTION 'JOB_CLOSE'EXPORTINGjobcount = v_jobcountjobname = v_jobnamesdlstrtdt = sy-datumsdlstrttm = v_start_time
* strtimmed = 'X'.
ENDFUNCTION.
c),SE11 新规Table ZMASTERT0001
该表用于控制具体要执行哪些公司的账期。

比如我这里填了 会社Code 3000,表示要执行会社Code3000 的账期
3-2,SE38 执行

说是成功了
TODO:其实没有成功

以上代码的原文请参照如下文章:
SAP ABAP 自动批量开关账期程序 OB52和MMPV_sap ob52-CSDN博客
以上就是本章的内容。
更多SAP顾问业务知识请点击下面目录链接
https://blog.csdn.net/shi_ly/category_12216766.html
相关文章:
SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,ABAP调用MMPV/MMRV来批量更新会计期间(TODO)
之前用MMRV,MMPV来一次一个月来修改会计期间。 如果是老的测试机,可能是10几年前的,一次1个月,更新到当前期间,搞个100多次,手都抖。 SAP MM学习笔记 - 错误 M7053 - Posting only possible in periods 2…...
Pytorch实现RNN实验
一、实验要求 用 Pytorch 模块的 RNN 实现生成唐诗。要求给定一个字能够生成一首唐诗。 二、实验目的 理解循环神经网络(RNN)的基本原理:通过构建一个基于RNN的诗歌生成模型,学会RNN是如何处理序列数据的,以及如何在…...
四、Drf认证组件
四、Drf认证组件 4.1 快速使用 from django.shortcuts import render,HttpResponse from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import BaseAuthentication from rest_framework.exception…...
C++:静态成员
静态成员涉及到的关键字尾static 静态成员变量要在类外初始化 去掉static关键字类型类名::变量名 静态成员变量不属于任何对象 所有对象共享一份 静态成员可以不通过对象直接访问 类名::成员名 静态成员依旧受访问修饰符的约束 …...
28 Vue3之搭建公司级项目规范
可以看到保存的时候ref这行被提到了最前面的一行 要求内置库放在组件的前面称为auto fix,数组new arry改成了字面量,这就是我们配置的规范 js规范使用的是airbnb规范模块使用的是antfu 组合prettier&eslint airbnb规范: https://github…...
【pytorch】张量求导3
再接上文,补一下作者未补完的矩阵运算的坑。 首先贴一下原作者的图,将其转化为如下代码: import torch import torch.nn as nn import torch.optim as optim# 定义一个简单的两层神经网络 class TwoLayerNet(nn.Module):def __init__(self):super(TwoLayerNet, self).__in…...
Servlet——springMvc底层原理
我们也先了解一下什么的动态资源,什么是静态资源。 静态资源:无需程序运行就可以获取的资源(照片、html、css、js等) 动态资源:需要通关程序运行才可以获得的资源。 (其实动态、静态的资源都与Servlet有…...
Json 在线可视化工具,分享几个
文章目录 1.json.cn2.json4u.cn3.jsonvisual.com4.jsoncrack5.altearius.github.io6.json.wanvb.com 前序:本文是对多种 Json 在线可视化工具 的介绍、分享。Json官网 https://www.json.org/json-en.html 个人比较中意第四款: https://jsoncrack.com/ed…...
LLM | llama.cpp 安装使用(支持CPU、Metal及CUDA的单卡/多卡推理)
1. 详细步骤 1.1 安装 cuda 等 nvidia 依赖(非CUDA环境运行可跳过) # 以 CUDA Toolkit 12.4: Ubuntu-22.04/24.04(x86_64) 为例,注意区分 WSL 和 Ubuntu,详见 https://developer.nvidia.com/cuda-12-4-1-download-archive?targ…...
矩阵求解复数(aniwoth求解串扰)
所以这种求解串扰的格式是因为,有串扰的共轭项在方程组中 复数共轭项的作用,但是这是二次方程,...
Redis: Sentinel哨兵监控架构及环境搭建
概述 在主从模式下,我们通过从节点只读模式提高了系统的并发能力并发不断增加,只需要扩展从节点即可,只要主从服务器之间,网络连接正常主服务器就会将写入自己的数据同步更新给从服务器,从而保证主从服务器的数据相同…...
C++ 语言特性30 - 模板介绍
目录 一:C11 之前的模板特性 1. 函数模板: 2. 类模板: 3. 模板特化: 4. 模板参数: 5. 模板元编程: 二:C11的模板特性 1. 变长模板(Variadic Templates)ÿ…...
算法笔记(七)——哈希表
文章目录 两数之和判定是否互为字符重排存在重复元素存在重复元素 II字母异位词分组 哈希表:一种存储数据的容器; 可以快速查找某个元素,时间复杂度O(1); 当频繁查找某一个数时,我们可以使用哈希表 创建一个容器&#…...
【基础算法总结】链表篇
目录 一, 链表常用技巧和操作总结二,算法原理和代码实现2.两数相加24.两两交换链表中的节点143.重排链表23.合并k个升序链表25.k个一组翻转链表 三,算法总结 一, 链表常用技巧和操作总结 有关链表的算法题也是一类常见并且经典的题…...
探索路由器静态IP的获取方式
在网络配置中,路由器静态IP是一个重要的概念。对于家庭网络或办公室网络而言,正确配置静态IP地址是确保网络稳定性和管理的关键步骤之一。但是,很多人对于静态IP地址的获取方式可能感到困惑。在本文中,我们将探讨它的获取途径&…...
Vivado - JTAG to AXI Master (GPIO、IIC、HLS_IP)
目录 1. 简介 2. JTAG to AXI Master 2.1 添加 IP Core 2.2 基本TCL命令 2.2.1 复位 JTAG-to-AXI Master 2.2.2 创建并运行写入传输事务 2.2.3 创建并运行读取传输事务 2.2.4 命令列表 2.3 帮助信息 2.4 创建TCL读写程序 2.4.1 Read proc 2.4.2 Write proc 2.4.3 …...
Java中JWT(JSON Web Token)的运用
目录 1. JWT的结构2. JWT的优点3. JWT的流转过程4.具体案例一、项目结构二、依赖配置三、用户模型四、JWT工具类五、JWT请求过滤器六、安全配置七、身份验证控制器八、测试JWT JWT(JSON Web Token)是一种开放标准(RFC 7519)&#…...
CSS3练习--电商web
免责声明:本文仅做分享! 目录 小练--小兔鲜儿 目录构建 SEO 三大标签 Favicon 图标 布局网页 版心 快捷导航(shortcut) 头部(header) logo 导航 搜索 购物车 底部(footer࿰…...
Linux 默认内核版本更改
随笔记录 目录 1. 背景介绍 2. 解决方法 2.1 查看所有可用版本 2.2 安装指定版本内核 2.3 检查当前内核列表 2.4 检查当前默认内核 2.5 设置新的默认内核 2.6 确认内核是否成功加载 2.7 重启 2.8 删除其他版本内核 1. 背景介绍 linux 一般安装多个内核版本&…...
【ubuntu】修改用户名、主机名、主文件夹名、登录名、密码
目录 1.他们是什么 2.修改方法 2.1 修改用户密码 2.2 修改主机名 2.2.1 切换到root用户 2.2.2 修改名称 2.3 修改用户名 主文件夹名 登录名 2.2.1 sudoers 2.2.2 passwd 2.2.3 shadow 2.2.4 group 2.2.5 修改主文件夹名 3.重启 1.他们是什么 (1…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
