SAP_ABAP模块-批量导入货源清单

news2024/11/18 19:54:17

一、业务背景

        有个朋友做ECC 6.0的项目,期初上线时,有一个需求是批量导入货源清单,我问了好几个朋友,加上自己以前的积累,硬是没有找到一个完全能用的程序,下面我来说一下我遇到的问题;

        对货源清单不熟悉的小伙伴,可以先看一下我之前写过的一篇文章;

SAP_MM模块-货源清单_sap 货源清单-CSDN博客文章浏览阅读2.3k次,点赞27次,收藏33次。本文详细介绍了SAP系统中的货源清单定义、维护方式,包括手工创建、通过框架协议和信息记录创建,以及自动产生货源的过程。还重点讲解了货源清单的启用方式、优先级确定和在采购申请中的应用,以及与配额协议、框架协议的关系。https://blog.csdn.net/qq_40141758/article/details/136895836

二、遇到的问题;

(一)没有直接能用的程序;

        无论是自己手头上的,还是问朋友拿到的,很多都只有S4版本的程序,要知道,S4版本的代码,很多都是用了新语法的,根本就无法直接在ECC版本上使用,要改起来也感觉比较麻烦;

(二)LSMW录屏无法满足效果;

自己用LSMW录屏,存在以下几个问题;

(1)标准的录屏,发现没法区分表头和行项目,导致披导时,同一个物料 + 工厂,只能录入一条数据,这里比较简单,只截一个主要的图,如果对LSMW不熟悉的,可以网上随便搜一下资料看看,这里由于LSMW录入无法达到预期效果,就不重点讲了,找不到资料想了解LSMW的,可以私聊交流。

如上图所示,不同物料 +工厂(不同的表头数据),可以正常录入一条数据,但是不能录入多条,同一个物料 +工厂,维护多条供应商数据时,会被覆盖。

(2)自己手动区分表头和行项目(但是实际发现不可行,不知道如何匹配上,有知道的小朋友欢迎评论或者私信指导一下,不甚感激),下面记录一下我当时的想法:

A、录屏时,如果录入多行数据,由于当时想的是,录入的数据有可能是3行、4行等不固定的行数,所以下面02的部分数据就不要了,只保留01行的。

B、维护源结构:通过手动新增表头和行项目(类别用标准的BOM导入结构,H代表表头,I代表行项目,导入EXCEL时原本想着可以用同样的方法导进去系统)

C、维护源字段,把表头需要的字段和行项目需要的字段分别维护好

D、然而,在维护结构关系时,发现没有办法把源结构和源字段匹配上!!!

如下图所示,只能分配表头,无法分配行项目~~

我们来看一下,LSMW批量导入BOM时,这个地方是如下图所示的,但是这个用的是系统标准的Object-0030 BOM。

目前没有进一步研究,不清楚标准功能,是否可以录屏实现像BOM这种多层结构的数据录入,也就导致这个LSMW录屏的方式,目前无法正常达到我们的目的,有知道的小伙伴可以分享一下,感谢感谢~~

(三)拿到的数据无法直接用:

最终从一个朋友手中,拿到一个ECC版本的披导程序,但是测试发现,也是只能录入一条数据!!

1、源程序;

        看一下朋友发过来的程序中,以下BDC录屏部分的代码就知道,只能维护一条数据~~

2、优化后的代码;

        最终,经过一边让别的ABAP开发朋友指导,一边改,终于是改完了,以下附上完整的代码记录以及使用方法;

*&---------------------------------------------------------------------*
*& Program ID/Name: Z_TEST_ZGY    Date written: 2024-08-18
*& Author's name:   风沙        Last update:
*& Program title:   货源清单创建
*& Project Name:
*& Version: 1.0
*---------------------------------------------------------------------*
* Description: (Incl. Related Function Area and System)
*
*---------------------------------------------------------------------*
* Include:
*
*---------------------------------------------------------------------*
* Calls: (RFC and BPI)
*
*---------------------------------------------------------------------*
* Function Modules:
*
*---------------------------------------------------------------------*
* Table:
*
*---------------------------------------------------------------------*
* Change History
*---------------------------------------------------------------------*

***********************************************************************

REPORT Z_TEST_ZGY MESSAGE-ID zdev NO STANDARD PAGE HEADING.

INCLUDE <icon>.

*--------------------------------------------------------------------*
* Data Declaration
*--------------------------------------------------------------------*
DATA: BEGIN OF ig_file OCCURS 0,
      matnr LIKE eord-matnr,"物料号
      werks LIKE eord-werks,"工厂
      vdatu(8),"有效从
      bdatu(8),"有效至
      lifnr LIKE eord-lifnr,"供应商
      ekorg LIKE eord-ekorg,"采购组织
      reswk LIKE eord-reswk,"供货工厂
      meins LIKE eord-meins,"单位
      feskz LIKE rm06w-feskz,"固定货源
      notkz LIKE eord-notkz,"冻结
      autet LIKE eord-autet,"MRP
      END OF ig_file.


DATA: BEGIN OF ig_out OCCURS 0,
      matnr LIKE eord-matnr,
      werks LIKE eord-werks,
      lifnr LIKE eord-lifnr,
      icn(4) TYPE c,
      msg TYPE string,
      END OF ig_out.

DATA: ig_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE .
DATA: ig_bdcmsg LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

TYPE-POOLS: slis.
DATA: fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DEFINE add2fc.
  fieldcat-fieldname = &1.
  fieldcat-seltext_l = &2.
  fieldcat-just = &3.
  fieldcat-icon = &4.
  append fieldcat.
  clear fieldcat.
END-OF-DEFINITION.

DATA: layout TYPE slis_layout_alv .
DATA: trans_mode TYPE c.

*--------------------------------------------------------------------*
* Selection Screen
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_path LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_n TYPE c DEFAULT 'X' RADIOBUTTON GROUP bdc,
            p_e TYPE c RADIOBUTTON GROUP bdc,
            p_a TYPE c RADIOBUTTON GROUP bdc.
SELECTION-SCREEN END OF BLOCK b2.

*--------------------------------------------------------------------*

* AT SELECTION-SCREEN
*--------------------------------------------------------------------*
AT SELECTION-SCREEN.
  IF p_n = 'X'.
    trans_mode = 'N'.
  ELSEIF p_e = 'X'.
    trans_mode = 'E'.
  ELSE.
    trans_mode = 'A'.
  ENDIF.

*--------------------------------------------------------------------*
* start-of-selection on value-request
*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = ''
      def_path         = 'C:\'
      mask             = ',TXT FILES(*.TXT),*.TXT,'
      mode             = 'O'
      title            = '选择导入文件'
    IMPORTING
      filename         = p_path
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

*--------------------------------------------------------------------*
* start-of-selection
*--------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM frm_upload_txt.
  PERFORM frm_delete_data.
  PERFORM frm_run_bdc.
  PERFORM frm_show_alv.

*&---------------------------------------------------------------------*
*&      Form  frm_upload_execl
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_upload_txt .
* { add by yuanxin at 20130627 将函数WS_UPLOAD替换成GUI_UOLOAD
*  CALL FUNCTION 'WS_UPLOAD'
*    EXPORTING
*      filename                = p_path
*      filetype                = 'DAT'
*    TABLES
*      data_tab                = ig_file
*    EXCEPTIONS
*      conversion_error        = 1
*      file_open_error         = 2
*      file_read_error         = 3
*      invalid_type            = 4
*      no_batch                = 5
*      unknown_error           = 6
*      invalid_table_width     = 7
*      gui_refuse_filetransfer = 8
*      customer_error          = 9
*      no_authority            = 10
*      OTHERS                  = 11.

  DATA L_P_FILE TYPE STRING.
  L_P_FILE = p_path.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                = L_P_FILE
      FILETYPE                = 'ASC'
      HAS_FIELD_SEPARATOR     = 'X'
    TABLES
      DATA_TAB                = ig_file
    EXCEPTIONS
      FILE_OPEN_ERROR         = 1
      FILE_READ_ERROR         = 2
      NO_BATCH                = 3
      GUI_REFUSE_FILETRANSFER = 4
      INVALID_TYPE            = 5
      NO_AUTHORITY            = 6
      UNKNOWN_ERROR           = 7
      BAD_DATA_FORMAT         = 8
      HEADER_NOT_ALLOWED      = 9
      SEPARATOR_NOT_ALLOWED   = 10
      HEADER_TOO_LONG         = 11
      UNKNOWN_DP_ERROR        = 12
      ACCESS_DENIED           = 13
      DP_OUT_OF_MEMORY        = 14
      DISK_FULL               = 15
      DP_TIMEOUT              = 16
      OTHERS                  = 17.
* end }
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF ig_file[] IS INITIAL.
    MESSAGE s001 WITH '没有读取到数据,程序将停止!'.
    STOP.
  ENDIF.

  SORT ig_file BY matnr werks.
ENDFORM. " frm_upload_execl

*&---------------------------------------------------------------------*
*&      Form  frm_run_bdc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_run_bdc .
  DATA wl_file LIKE LINE OF ig_file.

  DATA:BEGIN OF LT_SOURCE OCCURS 0,
      matnr LIKE eord-matnr,"物料号
      werks LIKE eord-werks,"工厂
      END OF LT_SOURCE.

  LOOP AT ig_file.
    MOVE ig_file-matnr to LT_SOURCE-matnr.
    MOVE ig_file-werks to LT_SOURCE-werks.
    APPEND LT_SOURCE.
    clear ig_file.
  ENDLOOP.

  DELETE ADJACENT DUPLICATES FROM LT_SOURCE COMPARING  matnr werks.

  data : lv_item TYPE numc2 VALUE 0."用于修改一个物料 +工厂,有多个供应商的情况,用于传值

  data:LV_EORD_VDATU type char50.
  data:LV_EORD_BDATU type char50.
  data:LV_EORD_LIFNR type char50.
  data:LV_EORD_EKORG type char50.
  data:LV_EORD_RESWK type char50.
  data:LV_EORD_MEINS type char50.
  data:LV_RM06W_FESKZ type char50.
  data:LV_EORD_NOTKZ type char50.
  data:LV_EORD_AUTET type char50.
  data:lv_erod_vdatu type char50.

  CLEAR: LT_SOURCE , ig_file.
  LOOP AT LT_SOURCE.

    CLEAR ig_bdcdata.
    REFRESH ig_bdcdata.

    PERFORM frm_fill_bdc USING:
            'X' 'SAPLMEOR' '0200',
            ''  'BDC_OKCODE' '/00',
            ''  'EORD-MATNR' LT_SOURCE-matnr,
            ''  'EORD-WERKS' LT_SOURCE-werks,
            'X' 'SAPLMEOR' '0205',
            ''  'BDC_OKCODE' '=BU'.

    CLEAR :lv_item."不清空的话,会一直累加。
    LOOP AT ig_file where matnr = LT_SOURCE-matnr and
                          werks = LT_SOURCE-werks.
      CLEAR wl_file.
      MOVE-CORRESPONDING ig_file TO wl_file.

      lv_item = lv_item + 1. " 计数器递增


      clear :LV_EORD_VDATU,LV_EORD_BDATU, LV_EORD_LIFNR, LV_EORD_EKORG, LV_EORD_RESWK, LV_EORD_MEINS, LV_RM06W_FESKZ, LV_EORD_NOTKZ, LV_EORD_AUTET.
      concatenate 'EORD-VDATU'  '('  lv_item  ')' into LV_EORD_VDATU.
      concatenate 'EORD-BDATU'  '('  lv_item  ')' into LV_EORD_BDATU.
      concatenate 'EORD-LIFNR'  '('  lv_item  ')' into LV_EORD_LIFNR.
      concatenate 'EORD-EKORG'  '('  lv_item  ')' into LV_EORD_EKORG.
      concatenate 'EORD-RESWK'  '('  lv_item  ')' into LV_EORD_RESWK.
      concatenate 'EORD-MEINS'  '('  lv_item  ')' into LV_EORD_MEINS.
      concatenate 'RM06W-FESKZ'  '('  lv_item  ')' into LV_RM06W_FESKZ.
      concatenate 'EORD-NOTKZ'  '('  lv_item  ')' into LV_EORD_NOTKZ.
      concatenate 'EORD-AUTET'  '('  lv_item  ')' into LV_EORD_AUTET.

      PERFORM frm_fill_bdc USING:

             ''  LV_EORD_VDATU wl_file-vdatu,
             ''  LV_EORD_BDATU wl_file-bdatu,
             ''  LV_EORD_LIFNR wl_file-lifnr,
             ''  LV_EORD_EKORG wl_file-ekorg,
             ''  LV_EORD_RESWK wl_file-reswk,
             ''  LV_EORD_MEINS wl_file-meins,
             ''  LV_RM06W_FESKZ wl_file-feskz,
             ''  LV_EORD_NOTKZ wl_file-notkz,
             ''  LV_EORD_AUTET wl_file-autet.
    clear:ig_file.
    endloop.

    CALL TRANSACTION 'ME01' USING ig_bdcdata
                            MODE trans_mode
                            UPDATE 'S'
                            MESSAGES INTO ig_bdcmsg.
    CLEAR ig_out.
    ig_out-matnr = wl_file-matnr.
    ig_out-werks = wl_file-werks.

    LOOP AT ig_bdcmsg.
      CASE ig_bdcmsg-msgtyp.
        WHEN 'S'.
          ig_out-icn = icon_led_green.
        WHEN 'E' OR 'A'.
          ig_out-icn = icon_led_red.
        WHEN 'I'.
          ig_out-icn = icon_led_inactive.
        WHEN 'W'.
          ig_out-icn = icon_led_yellow.
      ENDCASE.

      MESSAGE ID ig_bdcmsg-msgid
              TYPE ig_bdcmsg-msgtyp
              NUMBER ig_bdcmsg-msgnr
              WITH ig_bdcmsg-msgv1
                   ig_bdcmsg-msgv2
                   ig_bdcmsg-msgv3
                   ig_bdcmsg-msgv4
              INTO ig_out-msg.

      APPEND ig_out.
      CLEAR: ig_out-icn,ig_out-msg.
    ENDLOOP.

    CLEAR wl_file.
    CLEAR ig_out.
  ENDLOOP.
  SORT ig_out BY matnr werks lifnr.
  DELETE ADJACENT DUPLICATES FROM ig_out.
ENDFORM. " frm_run_bdc


*&---------------------------------------------------------------------*
*&      Form  frm_fill_bdc
*&---------------------------------------------------------------------*
*       BDC 公用
*----------------------------------------------------------------------*
FORM frm_fill_bdc USING v_1 v_2 v_3.
  IF v_1 = 'X' .
    ig_bdcdata-program = v_2 .
    ig_bdcdata-dynpro  = v_3 .
    ig_bdcdata-dynbegin = 'X' .
  ELSE.
    ig_bdcdata-fnam = v_2 .
    ig_bdcdata-fval  = v_3 .
  ENDIF .

  APPEND ig_bdcdata .
  CLEAR ig_bdcdata .
ENDFORM. " frm_fill_bdc

*&---------------------------------------------------------------------*
*&      Form  frm_show_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_show_alv .
  REFRESH fieldcat.
  add2fc: 'MATNR' '物料号' 'L' '',
          'WERKS' '工厂' 'L' '',
          'LIFNR' '供应商' 'L' '',
          'ICN' '' '' 'X',
          'MSG' '' 'L' ''.

  layout-colwidth_optimize = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_interface_check  = ''
      i_callback_program = sy-repid
      is_layout          = layout
      it_fieldcat        = fieldcat[]
    TABLES
      t_outtab           = ig_out
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM. " frm_show_alv

*&---------------------------------------------------------------------*
*&      Form  frm_delete_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_delete_data .
  DATA: BEGIN OF il_a017 OCCURS 0,
        matnr LIKE a017-matnr,
        werks LIKE a017-werks,
        lifnr LIKE a017-lifnr,
        END OF il_a017.
  DATA: vl_index LIKE sy-tabix.

  SELECT matnr werks lifnr
    INTO TABLE il_a017
    FROM a017
     FOR ALL ENTRIES IN ig_file
   WHERE matnr = ig_file-matnr
     AND werks = ig_file-werks
     AND lifnr = ig_file-lifnr.
  SORT il_a017 BY matnr werks lifnr.

  LOOP AT ig_file.
    vl_index = sy-tabix.
    READ TABLE il_a017 WITH KEY matnr = ig_file-matnr
                                werks = ig_file-werks
                                lifnr = ig_file-lifnr
                                BINARY SEARCH.
    IF sy-subrc <> 0.
      ig_out-matnr = ig_file-matnr.
      ig_out-werks = ig_file-werks.
      ig_out-lifnr = ig_file-lifnr.
      ig_out-icn = icon_led_red.
      CONCATENATE  '该物料的工厂级别' ig_out-lifnr  '采购信息不存在' INTO ig_out-msg.
      APPEND ig_out.
      DELETE ig_file INDEX vl_index.
    ENDIF.
    CLEAR: ig_out,ig_file.
  ENDLOOP.
  IF ig_file[] IS INITIAL.
    MESSAGE s000 WITH '没有合适的数据,程序将停止!'.
    STOP.
  ENDIF.
ENDFORM. " frm_delete_data

*Text elements
*----------------------------------------------------------
* 001 导入文件路径
* 002 模式


*Selection texts
*----------------------------------------------------------
* P_A         A 单步处理
* P_E         E 出错处理
* P_N         N 批量处理
* P_PATH         文件名称


*Messages
*----------------------------------------------------------
*
* Message class: ZDEV
*000   & & & & &
*001   重复:序列号-&在地点&下已经存在!

3、前台操作界面;

这三个不同模式,对应事务码SM35执行批处理的那三个模式

A:单步处理,也就是SM35的处理/前台,执行的时候弹出操作对话框

E:出错处理,也就是SM35的仅显示错误,执行的时候,有错误的才会有弹框显示错误信息

N:批量处理,也就是SM35的不可见,执行的时候,全部后台执行,直到执行完。

该代码注意的地方;
(1)以下的PERFORM frm_delete_data中,会把物料没有维护采购信息记录的数据删除;譬如说,同一个物料 + 工厂下,需要维护三个供应商,但是其中一个供应商没有维护采购信息记录,那么这条数据会单独剥离出来,并且在ALV输出时会提示。

然后只会导入进去两条其他的数据。

4、注意事项;

(1)MRP字段与固定供应商字段的影响

货源清单,不维护MRP字段的时候,是可以不需要维护采购信息记录的;但是如果维护了MRP字段,那么采购信息记录是必须要有的。

注意,如果维护了固定供应商字段,那么也必须要要有采购信息记录;

综上所述,该程序也可以优化成,就算该供应商不维护对应的采购信息记录,也可以导入进去,但是就不能维护MRP字段和固定供应商字段了,否则就会报错,根据实际情况优化。

(2)批导过程注意事项;

A、批导模板要用带分隔符的TXT文档,不能带标题,如下图所示的字段顺序,放到TXT时,需要去掉标题行

B、同一个物料 +工厂的货源清单中,如果有多个供应商时,MRP字段尽量只维护一个供应商,如果维护多个供应商时,会显示警告信息; 提示       

记录 被冻结。处理是不可能的

消息号 06705

该问题原因就是同时维护了MRP字段,然后有效期又有重叠部分,就会出现警告消息。

最开始以为是供应商主数据或者物料或者是哪里冻结住了,后面网上看了一下资料,再切换了一下英文环境下操作,发现错误提示如下“Several sources MRP-relevant on one date”,就是说一个日期与多个MRP相关

如果这里不注意这个问题,那么使用这个批导程序录入时,就会提示这个“记录被冻结”的错误消息~~但是实际上也能录入进去,就是会给用户一些错觉而已。

3、S4版本的货源清单批量导入程序,由于是朋友给的,不是自己开发的成品,就不拿出来分享了,有需要的小伙伴可以私信交流。

三、总结:

1、LSMW这个功能有空还是要再研究下,看看多层结构的数据录入,如果标准的LSMW不存在时,是否可以自己单独录入;

2、货源清单录入功能,需要注意维护采购信息记录;

3、同一个物料 +工厂的货源清单,有效期有重叠时,注意MRP字段不要全部都维护;

        最后,预告一个批量处理SAP数据的工具,RPA相关的工具,可以批量录入主数据或者MIGO过帐等操作的,但是目前还没仔细研究完,后续研究完会再分享出来~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件造价咨询】软件造价之全国各省市功能点单价分析

在软件工程领域&#xff0c;功能点是衡量软件规模的一种单位&#xff0c;功能点分析是一种广泛使用的方法&#xff0c;用于估算软件项目的规模和成本。其中功能点单价是指每功能点的软件开发费用&#xff08;单位&#xff1a;元/功能点&#xff09;。 本篇文章通过调研了20多份…

运维开发——局域网SSH访问服务器与应用

摘要 本博文主要介绍局域网SSH访问登陆虚拟机和及其应用相关配置操作。 1. 局域网SSH访问登陆虚拟机 目标&#xff1a;在局域网内A电脑使用SSH登陆B电脑上虚拟机的服务器。 前提条件:B电脑为宿主机&#xff0c;可以正常使用ssh访问虚拟机服务器&#xff0c;虚拟机网络连接方…

【面试题】文本左右对齐

文本左右对齐 学习 一、题目 这个问题是一个典型的文本排版问题。 二、解题思路 初始化&#xff1a;创建一个结果列表result来存储每一行的文本&#xff0c;以及一个临时列表current_line来存储当前正在构建的行的单词。 贪心算法填充&#xff1a;遍历words数组&#xff0c;…

Linux:开发工具(2)

一、Linux编译器-gcc/g使用 1.1 为什么我们可以用C/C做开发呢&#xff1f; 无论是在windows、还是Linux中&#xff0c;C的开发环境不仅仅指的是vs、gcc、g&#xff0c;更重要的是语言本身的头文件&#xff08;函数的声明&#xff09;和库文件&#xff08;函数的实现&#xff0…

WPF动画

补间动画&#xff1a;动画本质就是在一个时间段内对象尺寸、位移、旋转角度、缩放、颜色、透明度等属性值的连续变化。也包括图形变形的属性。时间、变化的对象、变化的值 工业应用场景&#xff1a;蚂蚁线、旋转、高度变化、指针偏移、小车 WPF动画与分类 特定对象处理动画过…

本地项目上传github

一、先在github&#xff08;GitHub: Let’s build from here GitHub&#xff09;上创建仓库 1&#xff0c;登录github后&#xff0c;点击右上角头像&#xff0c;点击 Your repositories 2&#xff0c;点击new 3&#xff0c;填写仓库名&#xff0c;假设命名 testhub&#xff0…

【机器学习】全景指南:从基础概念到实战流程的全面解析

文章目录 1.引言1.1机器学习的重要性1.2机器学习的应用范围1.3本文的内容结构 2. 机器学习的基本概念与分类2.1 机器学习的定义2.2 机器学习的分类 4. 强化学习&#xff08;Reinforcement Learning&#xff09; 3. 机器学习的工作流程3.1 数据收集与准备1. 数据源与类型2. 数据…

win10怎么查看CPU多核占用率

想要看自己有几个CPU处理器&#xff0c;可以在设备管理器里查看&#xff1a; 查看多核占用率&#xff0c;搜索任务管理器&#xff0c;然后打开&#xff0c;任务管理器——性能——CPU 右下角就可以看到我的是1个CPU&#xff0c;6个内核&#xff0c;12线程 想要看每个CPU占用…

Unity3D 自定义窗口

Unity3D 自定义窗口的实现。 自定义窗口 Unity3D 可以通过编写代码&#xff0c;扩展编辑器的菜单栏和窗口。 简单的功能可以直接一个菜单按钮实现&#xff0c;复杂的功能就需要绘制一个窗口展示更多的信息。 编辑器扩展的脚本&#xff0c;需要放在 Editor 文件夹中。 菜单栏…

用Python爬取高德地图路径规划数据——01. 指定起终点爬取-Python程序及详解

这个Python程序旨在从高德地图API获取路径规划数据&#xff0c;解析这些数据&#xff0c;并最终将其保存到JSON和CSV文件中。下面&#xff0c;我将详细讲解每个部分的功能和实现方式。 1. 导入所需的模块 import requests import json import time import csvrequests: 用于发…

spring boot自动配置

Spring自动配置是Spring框架的一个核心特性&#xff0c;它允许开发者通过在类路径下的配置类发现bean&#xff0c;而无需在应用程序中显式地进行bean的声明。Spring Boot利用这一特性&#xff0c;通过starter依赖的机制和EnableAutoConfiguration注解&#xff0c;帮助开发者快速…

Adobe After Effects AE V2023-23.6.6.2 解锁版下载安装教程 (视频合成和特效制作)

前言 Adobe After Effects&#xff08;简称AE&#xff09;是一款专业的图形视频处理软件&#xff0c;数字影视特效合成软件&#xff0c;视频后期特效制作软件。主要用来创建动态图形和视觉特效&#xff0c;支持2D以及3D&#xff0c;是基于非线性编辑的软件&#xff0c;透过图层…

原生js用Export2Excel导出excel单级表头和多级表头数据方式实现

原生js用Export2Excel导出excel单级表头和多级表头数据方式实现 原生js用Export2Excel导出excel单级表头和多级表头数据方式实现HTML文件导入需要的文件HTML文件中实现导出函数HTML总代码实现汇总&#xff08;直接复制代码&#xff0c;注意js引入路径&#xff09; 原生js用Expo…

小区社区超市商城停车场管理系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

Ai学术叫叫兽全网最新创新点改进系列:丰富文章的热力图如何制作,论文装逼必用神器!极大丰富文章内容,并提升论文实验效果及其质量!

Ai学术叫叫兽全网最新创新点改进系列&#xff1a;丰富文章的热力图如何制作&#xff0c;论文装逼必用神器&#xff01;极大丰富文章内容&#xff0c;并提升论文实验效果及其质量&#xff01; 所有改进代码均经过实验测试跑通&#xff01;截止发稿时YOLOv8、YOLOv10均已改进40&…

tekton什么情况下在Dockerfile中需要用copy

kaniko配置如下 如果docker中的workDir跟tekton中的workDir不一致需要copy。也可以通过mv&#xff0c;cp达到类似效果

大数据——Flink原理

摘要 Apache Flink是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行&#xff0c;以内存执行速度和任意规模来执行计算。 1. FLink特点 1.1. 事件驱动型(Event-driven) 事件驱动型应用是一类具有状态的应…

基于 NXP LPC5516 + MC33665 + MC33774 的菊花链 HVBMS 储能方案

在 ESS 储能系统中&#xff0c;HVBMS 一般会采用两级或三级架构&#xff0c;从而实现从电池模组到电池簇&#xff0c;再到电池堆的分级管理和控制。本方案则给大家讲解基于 LPC5516 MC33665 MC33774 菊花链 HVBMS 方案&#xff0c;涵盖了 BMU、BJB、CMU&#xff0c;构建 HVBM…

简洁清新个人博客网页模板演示学习

30多款个人博客、个人网站、个人主页divcss,html在线预览,个人静态页面模板(wordpress、帝国cms、typecho主题模板).这些简洁和优雅的博客网页模板,为那些想成为创建博客的个人或媒体提供灵感设计。网页模板可以记录旅游、生活方式、食品或摄影博客等网站。部分网页模板来源网友…

MySQL8.0.0.28数据库安装配置

MySQL8.0.0.28数据库安装配置 1. 安装前的准备工作 1.1 确认目前服务器上是否存在MySQL 命令&#xff1a;rpm -qa | grep mysql 说明&#xff1a;若返回空信息&#xff0c;就说明当前环境没有安装MySQL&#xff1b;直接跳到第4步操作后续。 1.2 检查当前环境是否有自带的m…