SAP财务过账BAPI函数使用以及代码

article/2025/8/5 10:07:07

本文只是整理备用大部分整理自:https://www.cnblogs.com/chaguoguo/p/14006892.html

一、BAPI介绍

BAPI_ACC_GL_POSTING_POST:

主要用于处理总账凭证的过账。

它允许外部系统或程序直接向SAP的总账模块发送过账请求,而无需通过传统的用户界面(GUI)。

BAPI_ACC_DOCUMENT_POST:

提供更广泛的会计凭证处理能力,可能包括不仅限于总账凭证的其他类型凭证。

它允许更复杂的会计凭证过账操作,具体取决于SAP系统的配置和版本。

二、如何使用这些BAPI

使用这些BAPI通常涉及以下步骤:

准备数据:

确定需要过账的会计凭证的所有相关数据,如凭证日期、过账日期、凭证类型、公司代码、货币、科目、金额等。

这些数据需要按照BAPI要求的格式和参数进行准备。

调用BAPI:

使用ABAP的CALL FUNCTION语句调用相应的BAPI。

将准备好的数据作为BAPI的输入参数传递。

调用BAPI时,还需要处理可能的异常和错误返回。

处理返回信息:

BAPI执行后,会返回一个或多个包含结果信息的表(如BAPIRET2)。

需要检查这些返回信息以确定BAPI是否成功执行,以及是否有任何错误或警告消息。

提交事务:

如果BAPI成功执行且没有错误,通常需要提交事务以保存更改。

这可以通过调用BAPI_TRANSACTION_COMMIT函数模块来实现。

错误处理:

如果在调用BAPI或处理返回信息时遇到错误,需要采取适当的错误处理措施。

这可能包括回滚事务、记录错误日志或通知用户。

先定义一个结构:

代码如下:

FUNCTION zbpm_rfc017.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(P_SYSTEM) TYPE  CHAR4 DEFAULT 'BPM'
*"     VALUE(P_UNAME) TYPE  UNAME DEFAULT SY-UNAME
*"     VALUE(P_NAME1) TYPE  CHAR12 OPTIONAL
*"  TABLES
*"      IT_ZS007 STRUCTURE  ZFICOS007 OPTIONAL
*"      IT_ZS0072 STRUCTURE  ZFICOS007 OPTIONAL
*"----------------------------------------------------------------------DATA: ls_head      LIKE bapiache09, "抬头lt_glitem    LIKE TABLE OF bapiacgl09, "总账ls_glitem    LIKE bapiacgl09,lt_cust      LIKE TABLE OF bapiacar09, "客户ls_cust      LIKE bapiacar09,lt_vendor    LIKE TABLE OF bapiacap09, "供应商ls_vendor    LIKE bapiacap09,lt_tax       LIKE TABLE OF bapiactx09, "税ls_tax       LIKE bapiactx09,lt_curren    LIKE TABLE OF bapiaccr09, "货币金额ls_curren    LIKE bapiaccr09,lt_return    LIKE TABLE OF bapiret2,ls_return    LIKE bapiret2,lt_exten     LIKE TABLE OF bapiparex,ls_exten     LIKE bapiparex,lt_extension LIKE TABLE OF bapiacextc,ls_extension LIKE bapiacextc,lv_key       LIKE bapiache09-obj_key,ls_customer  LIKE bapiacpa09,lt_crite     LIKE TABLE OF bapiackec9,ls_crite     LIKE bapiackec9.DATA: gs_output  LIKE zficos007,
*        it_zs0072  LIKE TABLE OF zficos007,gs_output2 LIKE zficos007.DATA: wa_zexten      LIKE zficos039.DATA: lv_tabix  LIKE sy-tabix,lv_item   LIKE sy-tabix,p_taxrate LIKE vbak-netwr,lv_tabix2 TYPE sy-tabix,lv_meins  LIKE t006-msehi.DATA: t_tax_info LIKE TABLE OF rtax1u15.*保存 传输数据CREATE OBJECT json_serEXPORTINGdata = it_zs007[].CALL METHOD json_ser->serialize.CALL METHOD json_ser->get_dataRECEIVINGrval = jsonstr.ls_zrfc_logs-funcname   = 'ZBPM_RFC017'.ls_zrfc_logs-zsystem    = p_system.ls_zrfc_logs-uname      = p_uname.ls_zrfc_logs-zname1     = p_name1.ls_zrfc_logs-erdat      = sy-datum.ls_zrfc_logs-uzeit      = sy-uzeit.
*  ls_zrfc_logs-ep_type    = ep_type.
*  ls_zrfc_logs-ep_message = ep_message.ls_zrfc_logs-jsonstr1   = jsonstr.MODIFY zrfc_logs FROM ls_zrfc_logs.SELECT *INTO TABLE @DATA(lt_zppt011b)FROM zppt011b.SORT lt_zppt011b[] BY zbh.LOOP AT it_zs007 ASSIGNING FIELD-SYMBOL(<ls_output>).ADD 1 TO lv_tabix2 .<ls_output>-zpaixu = lv_tabix2.IF <ls_output>-budat CA '.-' OR <ls_output>-bldat CA '.-'.<ls_output>-message = '日期格式请使用YYYYMMDD'.<ls_output>-ztype = 'E'.ENDIF.*<ls_output>-hkont =READ TABLE lt_zppt011b INTO DATA(ls_zppt011b) WITH KEY zbh = <ls_output>-hkont BINARY SEARCH.IF sy-subrc EQ 0.<ls_output>-hkont = ls_zppt011b-hkont.ENDIF.<ls_output>-hkont = |{ <ls_output>-hkont ALPHA = IN }|.<ls_output>-ebeln = |{ <ls_output>-ebeln ALPHA = IN }|.<ls_output>-ebelp = |{ <ls_output>-ebelp ALPHA = IN }|.APPEND <ls_output> TO it_zs0072[].ENDLOOP.SORT it_zs0072[] BY zxuhao zpaixu.DELETE ADJACENT DUPLICATES FROM it_zs0072[] COMPARING zxuhao.LOOP AT it_zs0072 INTO gs_output2 WHERE ztype EQ ''."抬头ls_head-username   = sy-uname.ls_head-header_txt = gs_output2-bktxt.  "抬头文本ls_head-comp_code  = gs_output2-bukrs.  "公司代码ls_head-doc_date   = sy-datum."gs_output2-bldat.  "凭证日期ls_head-pstng_date = gs_output2-budat.  "过账日期ls_head-doc_type   = gs_output2-blart.        "凭证类型ls_head-bus_act    = 'RFBU'.      "业务事务ls_head-fis_period = gs_output2-budat+4(2).        "会计期间ls_head-ref_doc_no = ''.          "参考凭证编号CLEAR: lv_item.LOOP AT it_zs007 INTO gs_output WHERE zxuhao EQ gs_output2-zxuhao.ADD 10 TO lv_item.
*总账CASE gs_output-bschl.WHEN '40' OR '50' OR '80' OR '90' OR '81' OR '91'OR '83' OR '93' OR '84' OR '94' OR '85' OR '95'OR '86' OR '96'.
*          IF gs_output-mwsk1 IS INITIAL." gs_output-hkont NE '0066010001'.ls_glitem-itemno_acc     = lv_item.            "行项目编号ls_glitem-gl_account     = gs_output-hkont.    "科目号ls_glitem-costcenter     = gs_output-kostl.    "成本中心IF gs_output-kostl IS NOT INITIAL.
*            IF gs_output-fkber IS INITIAL.SELECT SINGLE func_area INTO ls_glitem-func_area FROM csks WHERE kostl EQ gs_output-kostl.
*            ENDIF.
*            ls_glitem-func_area = gs_output-fkber.ENDIF.ls_glitem-tax_code       = gs_output-mwsk1.    "税码ls_glitem-alloc_nmbr     = gs_output-zuonr.    "分配编号ls_glitem-item_text      = gs_output-sgtxt.    "项目文本ls_glitem-orderid        = gs_output-aufnr.    "销售订单号ls_glitem-tax_code       = gs_output-mwsk1. "税码ls_glitem-material       = gs_output-matnr.ls_glitem-ref_key_1      = gs_output-xref1.ls_glitem-ref_key_2      = gs_output-xref2.ls_glitem-plant          = gs_output-werks. "工厂ls_glitem-quantity       = gs_output-menge. "数量ls_glitem-orderid        = gs_output-aufnr. "订单号ls_glitem-value_date     = gs_output-valut. "起息日ls_glitem-po_number      = gs_output-ebeln. "采购订单ls_glitem-po_item        = gs_output-ebelp. "采购订单行项目IF NOT gs_output-meins IS INITIAL.CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'EXPORTINGinput          = gs_output-meins
*               LANGUAGE       = SY-LANGUIMPORTINGoutput         = lv_meinsEXCEPTIONSunit_not_found = 1OTHERS         = 2.ls_glitem-base_uom       = lv_meins. "基本计量单位ENDIF.*          ls_glitem-wbs_element    = ''.              "WBS元素APPEND ls_glitem TO lt_glitem.CLEAR ls_glitem.
*          ENDIF.WHEN OTHERS.ENDCASE.*客户IF gs_output-bschl+0(1) EQ '0' OR gs_output-bschl+0(1) EQ '1'.ls_cust-itemno_acc = lv_item.
*        ls_cust-customer   = gs_output-kunnr."客户
*        ls_cust-gl_account = gs_output-hkont."科目ls_cust-customer   = gs_output-hkont.ls_cust-ref_key_1  = gs_output-xref1.ls_cust-ref_key_2  = gs_output-xref2.ls_cust-sp_gl_ind  = gs_output-umskz. "特殊总账标识ls_cust-pmnttrms   = gs_output-zterm.ls_cust-alloc_nmbr = gs_output-zuonr.IF gs_output-zfbdt IS NOT INITIAL.ls_cust-bline_date = gs_output-zfbdt.   "付款基准日期ELSE.ls_cust-bline_date = gs_output-budat.   "付款基准日期ENDIF.
*        ls_cust-bline_date = gs_output-budat.ls_cust-item_text  = gs_output-sgtxt."项目文本APPEND ls_cust TO lt_cust.CLEAR ls_cust.ENDIF.* 供应商IF gs_output-bschl+0(1) EQ '2' OR gs_output-bschl+0(1) EQ '3'.ls_vendor-itemno_acc = lv_item.           "行项目编号ls_vendor-vendor_no  = gs_output-hkont.   "科目ls_vendor-sp_gl_ind  = gs_output-umskz.   "特殊总账ls_vendor-pmnttrms   = gs_output-zterm.   "付款条件IF gs_output-zfbdt IS NOT INITIAL.ls_vendor-bline_date = gs_output-zfbdt.   "付款基准日期ELSE.ls_vendor-bline_date = gs_output-budat.   "付款基准日期ENDIF.ls_vendor-ref_key_1  = gs_output-xref1.ls_vendor-ref_key_2  = gs_output-xref2.ls_vendor-alloc_nmbr = gs_output-zuonr.   "分配编号ls_vendor-item_text  = gs_output-sgtxt.   "项目文本APPEND ls_vendor TO lt_vendor.CLEAR ls_vendor.ENDIF.*货币ls_curren-itemno_acc = lv_item.IF gs_output-bschl+0(1) EQ '0' OR gs_output-bschl+0(1) EQ '2'OR gs_output-bschl+0(1) EQ '4' OR gs_output-bschl+0(1) EQ '8'OR gs_output-bschl EQ '70'. "借方ls_curren-amt_doccur = gs_output-dmbtr.ELSE.ls_curren-amt_doccur = 0 - gs_output-dmbtr.ENDIF.IF gs_output-mwsk1 IS NOT INITIAL ."AND gs_output-hkont NE '0066010001'CLEAR t_tax_info[].CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'EXPORTINGi_bukrs = gs_output-bukrsi_mwskz = gs_output-mwsk1i_waers = gs_output-waers "''i_wrbtr = gs_output-dmbtrTABLESt_mwdat = t_tax_info.LOOP AT t_tax_info INTO DATA(ls_t_tax).IF gs_output-bschl+0(1) EQ '0' OR gs_output-bschl+0(1) EQ '2'OR gs_output-bschl+0(1) EQ '4' OR gs_output-bschl+0(1) EQ '8'OR gs_output-bschl EQ '70'. "借方ls_curren-amt_doccur = ls_t_tax-kawrt.ELSE.ls_curren-amt_doccur = 0 - ls_t_tax-kawrt.ENDIF.ENDLOOP.ENDIF.
*      IF gs_output-mwsk1 IS NOT INITIAL AND p_taxrate IS NOT INITIAL.
*        ls_curren-amt_base = ls_curren-amt_doccur / p_taxrate.
*      ENDIF.IF gs_output-waers IS INITIAL.ls_curren-currency = 'CNY'.ELSE.ls_curren-currency = gs_output-waers.ENDIF.IF gs_output-kursr IS NOT INITIAL.ls_curren-exch_rate = gs_output-kursr.ENDIF.APPEND ls_curren TO lt_curren.CLEAR ls_curren.**原因代码 附加字段
*      IF gs_output-rstgr IS NOT INITIAL.
*        ls_extension-field1 = gs_output-rstgr.
*        APPEND ls_extension TO lt_extension.
*        CLEAR ls_extension.
*      ENDIF.*扩展字段wa_zexten-posnr = lv_item.wa_zexten-bschl = gs_output-bschl. "记账码wa_zexten-matnr = gs_output-matnr. "物料wa_zexten-rstgr = gs_output-rstgr. "付款原因代码wa_zexten-werks = gs_output-werks. "工厂wa_zexten-kostl = gs_output-kostl. "成本中心ls_exten-structure = 'ZFICOS039'.ls_exten-valuepart1 = wa_zexten.APPEND ls_exten TO lt_exten.*一次性供应商IF gs_output-name1 NE '' OR gs_output-ort01 NE ''.ls_customer-name = gs_output-name1.ls_customer-city = gs_output-ort01.ls_customer-country = 'CN'.ENDIF.*获利段字段 "参考结构 CE0HL00IF gs_output-vkorg IS NOT INITIAL. "销售组织ls_crite-itemno_acc = lv_item.ls_crite-fieldname = 'VKORG'.ls_crite-character = gs_output-vkorg.APPEND ls_crite TO lt_crite.ENDIF.IF gs_output-vtweg IS NOT INITIAL. "分销渠道ls_crite-itemno_acc = lv_item.ls_crite-fieldname = 'VTWEG'.ls_crite-character = gs_output-vtweg.APPEND ls_crite TO lt_crite.ENDIF.IF gs_output-kndnr IS NOT INITIAL. "客户ls_crite-itemno_acc = lv_item.ls_crite-fieldname = 'KNDNR'.ls_crite-character = gs_output-kndnr.APPEND ls_crite TO lt_crite.ENDIF.IF gs_output-fkber IS NOT INITIAL. "功能范围ls_crite-itemno_acc = lv_item.ls_crite-fieldname = 'FKBER'.ls_crite-character = gs_output-fkber.APPEND ls_crite TO lt_crite.ENDIF.IF gs_output-skost IS NOT INITIAL. "发送方成本中心ls_crite-itemno_acc = lv_item.ls_crite-fieldname = 'SKOST'.ls_crite-character = gs_output-skost.APPEND ls_crite TO lt_crite.ENDIF.*税项目IF gs_output-mwsk1 IS NOT INITIAL ."AND gs_output-hkont NE '0066010001'
*        CLEAR t_tax_info[].
*
*        CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
*          EXPORTING
*            i_bukrs = gs_output-bukrs
*            i_mwskz = gs_output-mwsk1
*            i_waers = gs_output-waers "''
*            i_wrbtr = gs_output-dmbtr
*          TABLES
*            t_mwdat = t_tax_info.LOOP AT t_tax_info INTO DATA(ls_tax_info2).CLEAR ls_tax.ADD 10 TO lv_item.ls_tax-itemno_acc = lv_item.ls_tax-tax_code   = gs_output-mwsk1.ls_tax-acct_key   = ls_tax_info2-ktosl.ls_tax-cond_key   = ls_tax_info2-kschl.ls_tax-taxjurcode = ls_tax_info2-txjcd.ls_tax-taxjurcode_deep  = ls_tax_info2-txjcd_deep.ls_tax-taxjurcode_level = ls_tax_info2-txjlv.APPEND ls_tax TO lt_tax.CLEAR ls_tax.CLEAR ls_curren.ls_curren-itemno_acc = lv_item.
*          ls_curren-currency   = 'CNY'.IF gs_output-waers IS INITIAL.ls_curren-currency = 'CNY'.ELSE.ls_curren-currency = gs_output-waers.ENDIF.ls_curren-amt_doccur = ls_tax_info2-wmwst.ls_curren-amt_base = ls_tax_info2-kawrt.APPEND ls_curren TO lt_curren.CLEAR ls_curren.ENDLOOP.ENDIF.CLEAR: gs_output.ENDLOOP.IF sy-uname EQ 'IT0003'.BREAK-POINT.ENDIF.IF gs_output2-zsfyz EQ 'X'.ls_exten-structure = 'BAPI-PARK'.APPEND ls_exten TO lt_exten.CLEAR ls_exten.ENDIF.CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'EXPORTINGdocumentheader    = ls_headcustomercpd       = ls_customerIMPORTINGobj_key           = lv_keyTABLESaccountgl         = lt_glitem "总账accountreceivable = lt_cust "客户accountpayable    = lt_vendor "供应商accounttax        = lt_tax "税currencyamount    = lt_currenextension1        = lt_extensioncriteria          = lt_critereturn            = lt_returnextension2        = lt_exten.READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.IF sy-subrc EQ 0.ROLLBACK WORK.LOOP AT lt_return INTO ls_return WHERE type EQ 'E'.CONCATENATE gs_output2-message '_' ls_return-message INTO gs_output2-message.ENDLOOP.gs_output2-ztype = 'E'.ELSE.COMMIT WORK AND WAIT.gs_output2-belnr = lv_key+0(10).gs_output2-message = '更新成功'.gs_output2-ztype = 'S'.ENDIF.MODIFY it_zs0072 FROM gs_output2.CLEAR: lt_glitem,lt_cust,lt_vendor,lt_tax,lt_curren,lt_exten,lv_key,ls_customer.ENDLOOP.ENDFUNCTION.

1.首先需要做个增强,像记账码那些,才能传入,参考

https://www.cnblogs.com/zfswff/p/5702405.html,

2.如果是汇票类型的凭证,想使用该BAPI,需要另外做增强,参考

https://www.cnblogs.com/liangliang245916893/p/12888762.html

3.按照记账码区分总账/客户/供应商等,参考

https://blog.csdn.net/wangjolly/article/details/105610551

4.可以调用过账bapi前,可以使用BAPI_ACC_DOCUMENT_CHECK检查是否能成功

回到报表,填写参考事务码F-02的填写就好了,

注意,有些像销项税之类的科目,需在税项目额外增加一行,同时总账项目里的这行的金额需要计算。


http://www.hkcw.cn/article/aqwVKldvfB.shtml

相关文章

PyTorch ——torchvision数据集使用

如果下载的很慢&#xff0c;可以试试下面这个

C#里与嵌入式系统W5500网络通讯(4)

怎么样修改W5500里的socket收发缓冲区呢? 需要进行下面的工作,首先要了解socket缓冲区的作用,接着了解缓冲区的硬件资源, 最后就是要了解自己的需求,比如自己需要哪个socket的收发送缓冲区多大。 硬件的寄存器为: 这是 W5500 数据手册中关于 Sn_RXBUF_SIZE(Socket n …

【PostgreSQL 04】PostgreSQL性能飞跃指南:从慢查询到服务器配置的全栈优化实战

PostgreSQL性能飞跃指南&#xff1a;从慢查询到服务器配置的全栈优化实战 关键词&#xff1a; PostgreSQL性能优化、查询优化、数据库调优、执行计划、索引优化、服务器配置、EXPLAIN分析、数据库性能监控 摘要&#xff1a; 你的PostgreSQL查询慢得像蜗牛爬行&#xff1f;数据库…

基于内存高效算法的 LLM Token 优化:一个有效降低 API 成本的技术方案

在使用 OpenAI、Claude、Gemini 等大语言模型 API 构建对话系统时&#xff0c;开发者普遍面临成本不断上升的挑战。无论是基于检索增强生成&#xff08;RAG&#xff09;的应用还是独立的对话系统&#xff0c;这些系统都需要维护对话历史以确保上下文的连贯性&#xff0c;类似于…

Marvin - 生成结构化输出 和 构建AI工作流

文章目录 一、关于Marvin1、项目概览2、相关链接资源3、功能特性4、为什么选择Marvin&#xff1f; 二、安装三、示例1、结构化输出工具marvin.extractmarvin.castmarvin.classifymarvin.generate 2、代理式控制流marvin.runmarvin.Agentmarvin.Task 四、核心抽象概念1、任务2、…

智慧新基建数字孪生,绘就桥梁运维新画卷

图扑融合中国风元素&#xff0c;打造智慧桥梁新基建数字孪生体系。以古韵山水风格呈现桥梁三维模型&#xff0c;精准映射结构细节。实时汇聚应力、位移等数据&#xff0c;兼具古典意境与现代科技。助力桥梁全生命周期管理&#xff0c;在传统美学与前沿技术交融中&#xff0c;提…

Codeforces Round 1028 (Div. 2) C. Gellyfish and Flaming Peony

Codeforces Round 1028 (Div. 2) C. Gellyfish and Flaming Peony 题目 Gellyfish hates math problems, but she has to finish her math homework: Gellyfish is given an array of n n n positive integers a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,a…

while循环判断数字位数

while循环 #include <stdio.h> int main() {int x;int n 1;printf("请输入待测数字&#xff1a;\n");scanf("%d",&x);getchar();x / 10;while (x > 0){n;x / 10;}printf("位数为&#xff1a;%d\n",n);printf("请按下回车键退…

牛顿迭代算法-深度解析

牛顿迭代算法-深度解析 一、牛顿迭代算法的起源与基本概念1.1 算法起源1.2 基本概念 二、牛顿迭代算法的原理与推导2.1 几何原理2.2 数学推导2.3 收敛性分析 三、牛顿迭代算法的代码实现3.1 Python实现3.2 C实现3.3 Java实现 四、牛顿迭代算法的时间复杂度与空间复杂度分析4.1 …

SpringAI+DeepSeek大模型应用开发实战

内容来自黑马程序员 这里写目录标题 认识AI和大模型大模型应用开发模型部署方案对比模型部署-云服务模型部署-本地部署调用大模型什么是大模型应用传统应用和大模型应用大模型应用 大模型应用开发技术架构 SpringAI对话机器人快速入门会话日志会话记忆 认识AI和大模型 AI的发…

Python打卡第42天

浙大疏锦行 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 回调函数 Hook本质是回调函数&#xff0c;所以我们先介绍一下回调函数 回调函数是作为参数传递给其他函数的函数&#xff0c;其目的是在某个特定事件发生时被调用执行。这种机制允许代码…

hysAnalyser --- 逐包分析MPEG-TS的功能说明

前言 hysAnalyser 是一款新颖、独具特色的 MPEG-TS 数据分析工具&#xff0c;定位于 1&#xff09;音视频开发和测试人员&#xff1a;和MEPG-TS有关开发、调试、测试辅助&#xff1b; 2&#xff09;和MPEG-TS相关业务系统的运维人员&#xff1a;如数字电视、OTT、互联网流媒体…

语音转文字工具

平时工作和学习比较忙&#xff0c;可能没时间听讲座&#xff0c;只能看回放&#xff0c;回访也很长&#xff0c;这时&#xff0c;我们可以借助语言转文字&#xff0c;通过阅读文字快速了解讲座的重点&#xff0c;今天给大家分享一个本人经常用的语言转文字工具&#xff0c;改工…

vue3(入门,setup,ref,计算属性,watch)

vue3(入门&#xff0c;setup,ref,计算属性,watch) 项目创建 Vue2&#xff08;选项式api&#xff09; 分散 vue3&#xff08;组合式api&#xff09; setUp&#xff08;&#xff09; setup返回值可以是一个渲染函数 面试题&#xff1a; setup和vue2中的配置项可以同时存在吗&a…

c++ 类型转换函数

测试代码&#xff1a; void testTypeTransfer() { // 测试类型转换函数class Distance {private:int meters;public:// 类型转换函数&#xff0c;int表示转化为int类型operator int() {std::cout << "调用了类型转换函数" << endl;return meters; }Dist…

如何使用 Docker 部署grafana和loki收集vllm日志?

环境: Ubuntu20.04 grafana loki 3.4.1 问题描述: 如何使用 Docker 部署grafana和loki收集vllm日志? 解决方案: 1.创建一个名为 loki 的目录。将 loki 设为当前工作目录: mkdir loki cd loki2.将以下命令复制并粘贴到您的命令行中,以将 loki-local-config.yaml …

汽车安全 2030 预测 (功能安全FuSa、预期功能安全SOTIF、网络安全CyberSecurity):成本、效益与行业影响

汽车安全 2030 预测 (功能安全FuSa、预期功能安全SOTIF、网络安全CyberSecurity)&#xff1a;成本、效益与行业影响 到 2030 年&#xff0c;汽车行业将迎来一场安全技术的深度变革&#xff0c;其中 “三重安全防护”&#xff08;功能安全 FuSa、预期功能安全 SOTIF、网络安全&…

AI视频“入驻”手机,多模态成智能终端的新战场

文&#xff5c;乐乐 今天&#xff0c;无线蓝牙耳机&#xff08;TWS&#xff09;已经成为人人都用得起的产品。 但退回到9年前&#xff0c;苹果AirPods是全球第一款真正意义上的无线蓝牙耳机。靠着自研并申请专利的Snoop监听技术&#xff0c;苹果解决了蓝牙耳机左右延时和能耗…

嵌入式学习笔记 - FreeRTOS v9.0.0 与v10.0.1不同版本占用资源对比

以下为用示例对比freeRTOS v9.0.0版本以及v10.0.1版本占用资源的境况&#xff0c;两者均在运行完全相同的任务包括任务内容与数量的情况进行对比&#xff0c;任务的创建均使用静态内存方式创建&#xff0c;每个任务的任务堆栈均设置相同大小&#xff0c;并且freeRTOSconfig.h文…

Git仓库大文件清理指南

前言 当大文件被提交到 Git 仓库后又删除&#xff0c;但仓库体积仍然很大时&#xff0c;这是因为 Git 保留了这些文件的历史记录。要彻底清理这些文件并减小仓库体积&#xff0c;你需要重写 Git 历史。 注意事项 这会重写历史 - 所有协作者都需要重新克隆仓库 备份你的仓库 …