SAP PP ECN CSAP_MAT_BOM_MAINTAIN
刚开始的时候ECN总是加不上,
参考kimi给出的案例
点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cth1ipmqvl7f04qkggdg
效果 加上了
FUNCTION ZPBOM_PLM2SAP.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" VALUE(OUTPUT) TYPE ZSM8_SALESORDER_CREATE_OUTPUT
*" TABLES
*" INPUT_PBOM STRUCTURE ZPBOM
*" OUTPUT_MESSAGE STRUCTURE ZMAT_MESSAGE
*"----------------------------------------------------------------------
* 新增 input_bom
* 修改 input_bom
* 删除 ECN 日期TABLES: MAST,STPO,STKO,STPU.DATA: TEMP_MAT TYPE MATNR,TEMP_WERKS TYPE WERKS_D,TEMP_STLNR LIKE MAST-STLNR, "物料单号(bom号)RETURN(220) TYPE C,ISFIND(1) TYPE C,FROMDATE(10) TYPE C.DATA:TEMP_MATNR TYPE MATNR.DATA: BEGIN OF ZLOG,MATNR TYPE MATNR,WERKS TYPE WERKS_D,INTERFACENAME(60) TYPE C,LOGDATE TYPE DATUM,LOGTIME TYPE UZEIT,MAKTX TYPE MAKTX,MEINS TYPE MEINS,MBRSH TYPE MBRSH,LVORM TYPE LVORM,MTART TYPE MTART,SPART TYPE SPART,MATKL TYPE MATKL,BISMT TYPE BISMT,LGFSB TYPE LGFSB,EORIGINNO(40) TYPE C,CREATER(20) TYPE C,MESSAGETYPE(1) TYPE C,MESSAGE(220) TYPE C,END OF ZLOG.DATA: BEGIN OF SUBMATNR_COUNT,"用于记录在同一层级下相同子物料,相同数量,出现的次数。SUBMATNR TYPE MATNR,MENGE TYPE KMPMG,COUNT TYPE I,END OF SUBMATNR_COUNT.DATA:SAP_SUBMATNR_COUNT LIKE SUBMATNR_COUNT,PLM_SUBMATNR_COUNT LIKE SUBMATNR_COUNT.DATA: NO1 TYPE I,NO2 TYPE I.DATA:I_STKO LIKE STKO_API01.DATA:BEGIN OF GS_INPUTPBOM,MATNR TYPE MATNR,WERKS TYPE WERKS_D,IDNRK TYPE IDNRK,KMPMG TYPE KMPMG,XUHAO TYPE I,MEINS TYPE MEINS,SORTP TYPE SORTP,LOGDATE TYPE DATUM,LOGTIME TYPE UZEIT,END OF GS_INPUTPBOM.DATA:GT_STPO_INPUT LIKE TABLE OF STPO_API03 WITH HEADER LINE.DATA: SAP_STPO LIKE TABLE OF STPO WITH HEADER LINE.DATA: PDATAV LIKE CSAP_MBOM-DATUV.*1. 根据父物料字段,对输入BOM表排序:SORT INPUT_PBOM BY STLAN WERKS MATNR IDNRK KMPMG.*2.将plm的bom格式转化为SAP能处理的单层bom,并处理(行项目新建或修改和删除的处理)CLEAR TEMP_MAT.CLEAR TEMP_WERKS.I_STKO-BASE_QUAN = 1.I_STKO-BOM_STATUS = '01'.LOOP AT INPUT_PBOM.CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'EXPORTINGINPUT = INPUT_PBOM-MATNRIMPORTINGOUTPUT = INPUT_PBOM-MATNR.TRANSLATE INPUT_PBOM-MATNR TO UPPER CASE.* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'EXPORTINGINPUT = INPUT_PBOM-IDNRKIMPORTINGOUTPUT = INPUT_PBOM-IDNRK.TRANSLATE INPUT_PBOM-IDNRK TO UPPER CASE.CLEAR GS_INPUTPBOM.*2.1 当从一个小bom切换到另一个小bom时的处理;
*2.1.1 可以是第一个bom的第一条记录,
*2.1.2 或者是另开始一个小bom数据IF ( TEMP_MAT <> INPUT_PBOM-MATNR OR TEMP_WERKS <> INPUT_PBOM-WERKS )."2.1.1当是第一个bom的第一条数据时IF ( TEMP_MAT IS INITIAL ) AND ( TEMP_WERKS IS INITIAL ).TEMP_MAT = INPUT_PBOM-MATNR.TEMP_WERKS = INPUT_PBOM-WERKS.CLEAR PLM_SUBMATNR_COUNT.PLM_SUBMATNR_COUNT-SUBMATNR = INPUT_PBOM-IDNRK.PLM_SUBMATNR_COUNT-MENGE = INPUT_PBOM-KMPMG.PLM_SUBMATNR_COUNT-COUNT = PLM_SUBMATNR_COUNT-COUNT + 1."保存传入的数据到zinputpbom透视表中,作为记录。GS_INPUTPBOM-MATNR = INPUT_PBOM-MATNR.GS_INPUTPBOM-WERKS = INPUT_PBOM-WERKS.GS_INPUTPBOM-IDNRK = INPUT_PBOM-IDNRK.GS_INPUTPBOM-KMPMG = INPUT_PBOM-KMPMG.GS_INPUTPBOM-XUHAO = PLM_SUBMATNR_COUNT-COUNT.GS_INPUTPBOM-MEINS = INPUT_PBOM-MEINS.GS_INPUTPBOM-SORTP = INPUT_PBOM-SORTP.GS_INPUTPBOM-LOGDATE = SY-DATUM.GS_INPUTPBOM-LOGTIME = SY-UZEIT.CLEAR TEMP_MATNR.SELECT SINGLE MATNR INTO TEMP_MATNR FROM ZINPUTPBOMWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.IF TEMP_MATNR IS INITIAL.INSERT INTO ZINPUTPBOM VALUES GS_INPUTPBOM.ELSE.UPDATE ZINPUTPBOM SET SORTP = GS_INPUTPBOM-SORTP LOGDATE = SY-DATUM LOGTIME = SY-UZEITWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.ENDIF.COMMIT WORK AND WAIT."准备行项目数据CLEAR TEMP_STLNR.SELECT SINGLE STLNR INTO TEMP_STLNR FROM MAST WHERE MATNR = TEMP_MAT AND WERKS = TEMP_WERKS AND STLAN = '1'.IF TEMP_STLNR IS INITIAL. "sap原数据没有bom时的处理CLEAR GT_STPO_INPUT.IF INPUT_PBOM-STVKN IS NOT INITIAL.GT_STPO_INPUT-ITEM_NODE = INPUT_PBOM-STVKN.ENDIF.GT_STPO_INPUT-CHG_NO_TO = INPUT_PBOM-AENRA.GT_STPO_INPUT-VALID_TO = INPUT_PBOM-DATUB+0(4) && '-' && INPUT_PBOM-DATUB+4(2) && '-' && INPUT_PBOM-DATUB+6(2).GT_STPO_INPUT-REL_PROD = 'X'."标识 与生产相关项目GT_STPO_INPUT-AI_GROUP = 'A'."替代组GT_STPO_INPUT-AI_PRIO = '1'."优先级GT_STPO_INPUT-AI_STRATEG = '01'."策略GT_STPO_INPUT-USAGE_PROB = '100'."使用比例GT_STPO_INPUT-IDENTIFIER = '1'."标识GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串GT_STPO_INPUT-CHANGE_NO = INPUT_PBOM-AENNR.PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点APPEND GT_STPO_INPUT.ELSE. "sap原数据有bom时的处理,指定bom中要更改的具体条目CLEAR GT_STPO_INPUT.IF INPUT_PBOM-STVKN IS NOT INITIAL.GT_STPO_INPUT-ITEM_NODE = INPUT_PBOM-STVKN.ENDIF.GT_STPO_INPUT-CHG_NO_TO = INPUT_PBOM-AENRA.GT_STPO_INPUT-VALID_TO = INPUT_PBOM-DATUB+0(4) && '-' && INPUT_PBOM-DATUB+4(2) && '-' && INPUT_PBOM-DATUB+6(2).GT_STPO_INPUT-REL_PROD = 'X'."标识 与生产相关项目GT_STPO_INPUT-AI_GROUP = 'A'."替代组GT_STPO_INPUT-AI_PRIO = '1'."优先级GT_STPO_INPUT-AI_STRATEG = '01'."策略GT_STPO_INPUT-USAGE_PROB = '100'."使用比例GT_STPO_INPUT-IDENTIFIER = '1'."标识GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串GT_STPO_INPUT-CHANGE_NO = INPUT_PBOM-AENNR.PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.
* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点CLEAR SAP_STPO.CLEAR SAP_STPO[].SELECT * INTO CORRESPONDING FIELDS OF TABLE SAP_STPO FROM STPOWHERE STLNR = TEMP_STLNR AND STLTY = 'M' AND IDNRK = INPUT_PBOM-IDNRK AND MENGE = INPUT_PBOM-KMPMG ORDER BY STLKN STPOZ.IF LINES( SAP_STPO[] ) >= PLM_SUBMATNR_COUNT-COUNT.CLEAR NO1.LOOP AT SAP_STPO.NO1 = NO1 + 1.IF NO1 = PLM_SUBMATNR_COUNT-COUNT.GT_STPO_INPUT-BOM_NO = SAP_STPO-STLNR.GT_STPO_INPUT-ITEM_NODE = SAP_STPO-STLKN.GT_STPO_INPUT-ITEM_COUNT = SAP_STPO-STPOZ.IF ( SAP_STPO-SORTF IS NOT INITIAL ) AND ( INPUT_PBOM-SORTP IS INITIAL ).GT_STPO_INPUT-SORTSTRING = SAP_STPO-SORTF. "排序字符串ENDIF.EXIT.ENDIF.ENDLOOP.ENDIF.APPEND GT_STPO_INPUT.ENDIF.ELSE."2.1.2 当完成一个小bom,处理该层小bom的数据同步。进入下一个小bom数据的准备CLEAR SAP_STPO.CLEAR SAP_STPO[].CLEAR SAP_SUBMATNR_COUNT.* SELECT * INTO CORRESPONDING FIELDS OF TABLE sap_stpo FROM stpo WHERE stlnr = temp_stlnr AND stlty = 'M' ORDER BY idnrk MENGE STLKN STPOZ.
*
* LOOP AT sap_stpo."比较输入bom数据和SAPbom数据,判断需要删除的行项目(即输入无,而SAP有的行项目):这里是用物料号做的比较,是否ok?
* IF sap_stpo-IDNRK = sap_submatnr_count-submatnr AND sap_stpo-MENGE = sap_submatnr_count-MENGE.
* sap_submatnr_count-COUNT = sap_submatnr_count-COUNT + 1.
* ELSE.
* CLEAR sap_submatnr_count.
* sap_submatnr_count-submatnr = sap_stpo-idnrk.
* sap_submatnr_count-MENGE = sap_stpo-MENGE.
* sap_submatnr_count-COUNT = sap_submatnr_count-COUNT + 1.
* ENDIF.
* 删除用ECN处理
* isfind = '0'.
* CLEAR NO2.
* LOOP AT gt_stpo_input.
* IF sap_stpo-IDNRK = gt_stpo_input-COMPONENT AND sap_stpo-MENGE = gt_stpo_input-comp_qty.
* NO2 = NO2 + 1.
* IF NO2 = sap_submatnr_count-COUNT.
* isfind = '1'.
* EXIT.
* ENDIF.
* ENDIF.
* ENDLOOP.
* IF isfind = '0'."对要删除的行项目做标记,待处理
* gt_stpo_input-bom_no = sap_stpo-STLNR.
* gt_stpo_input-ITEM_NODE = sap_stpo-STLKN.
* gt_stpo_input-ITEM_COUNT = sap_stpo-STPOZ.
* gt_stpo_input-fldelete = 'X'.
* APPEND gt_stpo_input.
* ENDIF.
* ENDLOOP."下面执行小bom的数据同步CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'EXPORTINGMATERIAL = TEMP_MATPLANT = TEMP_WERKSBOM_USAGE = '1' "物料清单用途 默认1CHANGE_NO = INPUT_PBOM-AENNRVALID_FROM = PDATAVI_STKO = I_STKOFL_BOM_CREATE = 'X'FL_NEW_ITEM = 'X'FL_COMPLETE = 'x'TABLEST_STPO = GT_STPO_INPUTEXCEPTIONSERROR = 1OTHERS = 2.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'."BOM同步成功与否的记录CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = SY-MSGIDMSGNR = SY-MSGNOMSGV1 = SY-MSGV1MSGV2 = SY-MSGV2MSGV3 = SY-MSGV3MSGV4 = SY-MSGV4IMPORTINGMESSAGE_TEXT_OUTPUT = RETURN.IF SY-SUBRC <> 0.CLEAR OUTPUT_MESSAGE.RETURN = RETURN+12(10).OUTPUT_MESSAGE-MESSAGETYPE = 'E'.ELSE.CLEAR OUTPUT_MESSAGE.OUTPUT_MESSAGE-MESSAGETYPE = 'S'.ENDIF.OUTPUT_MESSAGE-MESSAGE = RETURN.OUTPUT_MESSAGE-MATNR = TEMP_MAT.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGINPUT = OUTPUT_MESSAGE-MATNRIMPORTINGOUTPUT = OUTPUT_MESSAGE-MATNR.OUTPUT_MESSAGE-WERKS = TEMP_WERKS.APPEND OUTPUT_MESSAGE.ZLOG-MATNR = OUTPUT_MESSAGE-MATNR.ZLOG-WERKS = OUTPUT_MESSAGE-WERKS.ZLOG-MESSAGETYPE = OUTPUT_MESSAGE-MESSAGETYPE.ZLOG-MESSAGE = OUTPUT_MESSAGE-MESSAGE.ZLOG-LOGDATE = SY-DATUM.ZLOG-LOGTIME = SY-UZEIT.ZLOG-INTERFACENAME = 'ZPBOM_PLM2SAP'.INSERT INTO ZLOGOFMATNRORBOM VALUES ZLOG.COMMIT WORK AND WAIT.CLEAR ZLOG.CLEAR GT_STPO_INPUT[]."进入下一个小bom数据的准备TEMP_MAT = INPUT_PBOM-MATNR.TEMP_WERKS = INPUT_PBOM-WERKS.CLEAR PLM_SUBMATNR_COUNT.PLM_SUBMATNR_COUNT-SUBMATNR = INPUT_PBOM-IDNRK.PLM_SUBMATNR_COUNT-MENGE = INPUT_PBOM-KMPMG.PLM_SUBMATNR_COUNT-COUNT = PLM_SUBMATNR_COUNT-COUNT + 1."保存传入的数据到zinputpbom透视表中GS_INPUTPBOM-MATNR = INPUT_PBOM-MATNR.GS_INPUTPBOM-WERKS = INPUT_PBOM-WERKS.GS_INPUTPBOM-IDNRK = INPUT_PBOM-IDNRK.GS_INPUTPBOM-KMPMG = INPUT_PBOM-KMPMG.GS_INPUTPBOM-XUHAO = PLM_SUBMATNR_COUNT-COUNT.GS_INPUTPBOM-MEINS = INPUT_PBOM-MEINS.GS_INPUTPBOM-SORTP = INPUT_PBOM-SORTP.GS_INPUTPBOM-LOGDATE = SY-DATUM.GS_INPUTPBOM-LOGTIME = SY-UZEIT.CLEAR TEMP_MATNR.SELECT SINGLE MATNR INTO TEMP_MATNR FROM ZINPUTPBOMWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.IF TEMP_MATNR IS INITIAL.INSERT INTO ZINPUTPBOM VALUES GS_INPUTPBOM.ELSE.UPDATE ZINPUTPBOM SET SORTP = GS_INPUTPBOM-SORTP LOGDATE = SY-DATUM LOGTIME = SY-UZEITWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.ENDIF.COMMIT WORK AND WAIT."准备行项目数据CLEAR TEMP_STLNR.SELECT SINGLE STLNR INTO TEMP_STLNR FROM MAST WHERE MATNR = TEMP_MAT AND WERKS = TEMP_WERKS AND STLAN = '1'.IF TEMP_STLNR IS INITIAL.CLEAR GT_STPO_INPUT.IF INPUT_PBOM-STVKN IS NOT INITIAL.GT_STPO_INPUT-ITEM_NODE = INPUT_PBOM-STVKN.ENDIF.GT_STPO_INPUT-CHG_NO_TO = INPUT_PBOM-AENRA.GT_STPO_INPUT-VALID_TO = INPUT_PBOM-DATUB+0(4) && '-' && INPUT_PBOM-DATUB+4(2) && '-' && INPUT_PBOM-DATUB+6(2).GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串GT_STPO_INPUT-CHANGE_NO = INPUT_PBOM-AENNR.PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.
* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点APPEND GT_STPO_INPUT.ELSE.CLEAR GT_STPO_INPUT.IF INPUT_PBOM-STVKN IS NOT INITIAL.GT_STPO_INPUT-ITEM_NODE = INPUT_PBOM-STVKN.ENDIF.GT_STPO_INPUT-CHG_NO_TO = INPUT_PBOM-AENRA.GT_STPO_INPUT-VALID_TO = INPUT_PBOM-DATUB+0(4) && '-' && INPUT_PBOM-DATUB+4(2) && '-' && INPUT_PBOM-DATUB+6(2).GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串GT_STPO_INPUT-CHANGE_NO = INPUT_PBOM-AENNR.PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.
* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点CLEAR SAP_STPO.CLEAR SAP_STPO[].SELECT * INTO CORRESPONDING FIELDS OF TABLE SAP_STPO FROM STPOWHERE STLNR = TEMP_STLNR AND STLTY = 'M' AND IDNRK = INPUT_PBOM-IDNRK AND MENGE = INPUT_PBOM-KMPMG ORDER BY STLKN STPOZ.IF LINES( SAP_STPO[] ) >= PLM_SUBMATNR_COUNT-COUNT.CLEAR NO1.LOOP AT SAP_STPO.NO1 = NO1 + 1.IF NO1 = PLM_SUBMATNR_COUNT-COUNT.GT_STPO_INPUT-BOM_NO = SAP_STPO-STLNR.GT_STPO_INPUT-ITEM_NODE = SAP_STPO-STLKN.GT_STPO_INPUT-ITEM_COUNT = SAP_STPO-STPOZ.IF ( SAP_STPO-SORTF IS NOT INITIAL ) AND ( INPUT_PBOM-SORTP IS INITIAL ).GT_STPO_INPUT-SORTSTRING = SAP_STPO-SORTF. "排序字符串ENDIF.EXIT.ENDIF.ENDLOOP.ENDIF.APPEND GT_STPO_INPUT.ENDIF.ENDIF.*2.2 某一小bom内行项目数据的处理:添加该行行项目。ELSE.IF INPUT_PBOM-IDNRK = PLM_SUBMATNR_COUNT-SUBMATNR AND INPUT_PBOM-KMPMG = PLM_SUBMATNR_COUNT-MENGE.PLM_SUBMATNR_COUNT-COUNT = PLM_SUBMATNR_COUNT-COUNT + 1.ELSE.CLEAR PLM_SUBMATNR_COUNT.PLM_SUBMATNR_COUNT-SUBMATNR = INPUT_PBOM-IDNRK.PLM_SUBMATNR_COUNT-MENGE = INPUT_PBOM-KMPMG.PLM_SUBMATNR_COUNT-COUNT = PLM_SUBMATNR_COUNT-COUNT + 1.ENDIF."保存传入的数据到zinputpbom透视表中GS_INPUTPBOM-MATNR = INPUT_PBOM-MATNR.GS_INPUTPBOM-WERKS = INPUT_PBOM-WERKS.GS_INPUTPBOM-IDNRK = INPUT_PBOM-IDNRK.GS_INPUTPBOM-KMPMG = INPUT_PBOM-KMPMG.GS_INPUTPBOM-XUHAO = PLM_SUBMATNR_COUNT-COUNT.GS_INPUTPBOM-MEINS = INPUT_PBOM-MEINS.GS_INPUTPBOM-SORTP = INPUT_PBOM-SORTP.GS_INPUTPBOM-LOGDATE = SY-DATUM.GS_INPUTPBOM-LOGTIME = SY-UZEIT.CLEAR TEMP_MATNR.SELECT SINGLE MATNR INTO TEMP_MATNR FROM ZINPUTPBOMWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.IF TEMP_MATNR IS INITIAL.INSERT INTO ZINPUTPBOM VALUES GS_INPUTPBOM.ELSE.UPDATE ZINPUTPBOM SET SORTP = GS_INPUTPBOM-SORTP LOGDATE = SY-DATUM LOGTIME = SY-UZEITWHERE MATNR = INPUT_PBOM-MATNRAND WERKS = INPUT_PBOM-WERKSAND IDNRK = INPUT_PBOM-IDNRKAND KMPMG = INPUT_PBOM-KMPMGAND XUHAO = PLM_SUBMATNR_COUNT-COUNT.ENDIF.COMMIT WORK AND WAIT."准备行项目数据CLEAR TEMP_STLNR.SELECT SINGLE STLNR INTO TEMP_STLNR FROM MAST WHERE MATNR = TEMP_MAT AND WERKS = TEMP_WERKS AND STLAN = '1'.IF TEMP_STLNR IS INITIAL.CLEAR GT_STPO_INPUT.GT_STPO_INPUT-REL_PROD = 'X'."标识 与生产相关项目GT_STPO_INPUT-AI_GROUP = 'A'."替代组GT_STPO_INPUT-AI_PRIO = '1'."优先级GT_STPO_INPUT-AI_STRATEG = '01'."策略GT_STPO_INPUT-USAGE_PROB = '100'."使用比例GT_STPO_INPUT-IDENTIFIER = '1'."标识GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.
* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点APPEND GT_STPO_INPUT.ELSE.CLEAR GT_STPO_INPUT.IF INPUT_PBOM-STVKN IS NOT INITIAL.GT_STPO_INPUT-ITEM_NODE = INPUT_PBOM-STVKN.ENDIF.GT_STPO_INPUT-CHG_NO_TO = INPUT_PBOM-AENRA.GT_STPO_INPUT-VALID_TO = INPUT_PBOM-DATUB+0(4) && '-' && INPUT_PBOM-DATUB+4(2) && '-' && INPUT_PBOM-DATUB+6(2).GT_STPO_INPUT-REL_PROD = 'X'."标识 与生产相关项目GT_STPO_INPUT-AI_GROUP = 'A'."替代组GT_STPO_INPUT-AI_PRIO = '1'."优先级GT_STPO_INPUT-AI_STRATEG = '01'."策略GT_STPO_INPUT-USAGE_PROB = '100'."使用比例GT_STPO_INPUT-IDENTIFIER = '1'."标识GT_STPO_INPUT-ITEM_NO = INPUT_PBOM-POSNR. "项目号 默认9000GT_STPO_INPUT-ITEM_CATEG = INPUT_PBOM-POSTP. "项目类别ICT 默认LGT_STPO_INPUT-COMPONENT = INPUT_PBOM-IDNRK. "组件:即子物料GT_STPO_INPUT-COMP_QTY = INPUT_PBOM-KMPMG. "数量GT_STPO_INPUT-COMP_UNIT = INPUT_PBOM-MEINS. "单位GT_STPO_INPUT-REL_COST = 'X'. "成本核算标准相关GT_STPO_INPUT-SORTSTRING = INPUT_PBOM-SORTP. "排序字符串PDATAV = INPUT_PBOM-DATUV+0(4) && '-' && INPUT_PBOM-DATUV+4(2) && '-' && INPUT_PBOM-DATUV+6(2) .GT_STPO_INPUT-VALID_FROM = PDATAV.
* gt_stpo_input-comp_scrap = ."部件废品用百分比表示(BTCI)
* gt_stpo_input-issue_loc = ."生产订单的发货地点CLEAR SAP_STPO.CLEAR SAP_STPO[].SELECT * INTO CORRESPONDING FIELDS OF TABLE SAP_STPO FROM STPOWHERE STLNR = TEMP_STLNR AND STLTY = 'M' AND IDNRK = INPUT_PBOM-IDNRK AND MENGE = INPUT_PBOM-KMPMG ORDER BY STLKN STPOZ.IF LINES( SAP_STPO[] ) >= PLM_SUBMATNR_COUNT-COUNT.CLEAR NO1.LOOP AT SAP_STPO.NO1 = NO1 + 1.IF NO1 = PLM_SUBMATNR_COUNT-COUNT.GT_STPO_INPUT-BOM_NO = SAP_STPO-STLNR.GT_STPO_INPUT-ITEM_NODE = SAP_STPO-STLKN.GT_STPO_INPUT-ITEM_COUNT = SAP_STPO-STPOZ.IF ( SAP_STPO-SORTF IS NOT INITIAL ) AND ( INPUT_PBOM-SORTP IS INITIAL ).GT_STPO_INPUT-SORTSTRING = SAP_STPO-SORTF. "排序字符串ENDIF.EXIT.ENDIF.ENDLOOP.ENDIF.APPEND GT_STPO_INPUT.ENDIF.ENDIF.ENDLOOP.*3. 所有bom项跑完了,对最后一个小bom的处理CLEAR SAP_STPO.CLEAR SAP_STPO[].CLEAR SAP_SUBMATNR_COUNT.* SELECT * INTO CORRESPONDING FIELDS OF TABLE sap_stpo FROM stpo WHERE stlnr = temp_stlnr AND stlty = 'M' ORDER BY idnrk MENGE STLKN STPOZ.
*
* LOOP AT sap_stpo."比较输入bom数据和SAPbom数据,判断需要删除的行项目(即输入无,而SAP有的行项目):这里是用物料号做的比较,是否ok?
* IF sap_stpo-IDNRK = sap_submatnr_count-submatnr AND sap_stpo-MENGE = sap_submatnr_count-MENGE.
* sap_submatnr_count-COUNT = sap_submatnr_count-COUNT + 1.
* ELSE.
* CLEAR sap_submatnr_count.
* sap_submatnr_count-submatnr = sap_stpo-idnrk.
* sap_submatnr_count-MENGE = sap_stpo-MENGE.
* sap_submatnr_count-COUNT = sap_submatnr_count-COUNT + 1.
* ENDIF.
*
* isfind = '0'.
* CLEAR NO2.
* LOOP AT gt_stpo_input.
* IF sap_stpo-IDNRK = gt_stpo_input-COMPONENT AND sap_stpo-MENGE = gt_stpo_input-comp_qty.
* NO2 = NO2 + 1.
* IF NO2 = sap_submatnr_count-COUNT.
* isfind = '1'.
* EXIT.
* ENDIF.
* ENDIF.
* ENDLOOP.
* IF isfind = '0'.
* gt_stpo_input-bom_no = sap_stpo-STLNR.
* gt_stpo_input-ITEM_NODE = sap_stpo-STLKN.
* gt_stpo_input-ITEM_COUNT = sap_stpo-STPOZ.
* gt_stpo_input-fldelete = 'X'.
* APPEND gt_stpo_input.
* ENDIF.
* ENDLOOP.CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'EXPORTINGMATERIAL = TEMP_MATPLANT = TEMP_WERKSBOM_USAGE = '1' "物料清单用途 默认1CHANGE_NO = INPUT_PBOM-AENNRVALID_FROM = PDATAVI_STKO = I_STKOFL_BOM_CREATE = 'X'FL_NEW_ITEM = 'X'FL_COMPLETE = 'x'TABLEST_STPO = GT_STPO_INPUTEXCEPTIONSERROR = 1OTHERS = 2.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'."BOM同步成功与否的记录CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = SY-MSGIDMSGNR = SY-MSGNOMSGV1 = SY-MSGV1MSGV2 = SY-MSGV2MSGV3 = SY-MSGV3MSGV4 = SY-MSGV4IMPORTINGMESSAGE_TEXT_OUTPUT = RETURN.IF SY-MSGTY = 'S'.CLEAR OUTPUT_MESSAGE.OUTPUT_MESSAGE-MESSAGETYPE = 'S'.ELSE.CLEAR OUTPUT_MESSAGE.
* RETURN = RETURN+12(10).OUTPUT_MESSAGE-MESSAGETYPE = 'E'.ENDIF.OUTPUT_MESSAGE-MESSAGE = RETURN.OUTPUT-RETURN-MSGTY = OUTPUT_MESSAGE-MESSAGETYPE.OUTPUT-RETURN-MSGTX = OUTPUT_MESSAGE-MESSAGE.OUTPUT_MESSAGE-MATNR = TEMP_MAT.CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'EXPORTINGINPUT = OUTPUT_MESSAGE-MATNRIMPORTINGOUTPUT = OUTPUT_MESSAGE-MATNR.OUTPUT_MESSAGE-WERKS = TEMP_WERKS.APPEND OUTPUT_MESSAGE.ZLOG-MATNR = OUTPUT_MESSAGE-MATNR.ZLOG-WERKS = OUTPUT_MESSAGE-WERKS.ZLOG-MESSAGETYPE = OUTPUT_MESSAGE-MESSAGETYPE.ZLOG-MESSAGE = OUTPUT_MESSAGE-MESSAGE.ZLOG-LOGDATE = SY-DATUM.ZLOG-LOGTIME = SY-UZEIT.ZLOG-INTERFACENAME = 'ZPBOM_PLM2SAP'.INSERT INTO ZLOGOFMATNRORBOM VALUES ZLOG.COMMIT WORK AND WAIT.CLEAR GT_STPO_INPUT[].ENDFUNCTION.
相关文章:
SAP PP ECN CSAP_MAT_BOM_MAINTAIN
刚开始的时候ECN总是加不上, 参考kimi给出的案例 点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cth1ipmqvl7f04qkggdg 效果 加上了 FUNCTION ZPBOM_PLM2SAP. *"------------------------------------------------------------------…...
STM32HAL I2C函数
8.5 使用IIC协议读写EEPROM 硬件方式实现 (HAL库) **HAL_I2C_Mem_Write() :这种方法可以写1个或者多个字节 ** /*** brief 以阻塞模式向指定的内存地址写入数据* param hi2c 指向 I2C_HandleTypeDef 结构体的指针,包含指定 I2C 的配置信息…...
技术转管理需要有哪些思维上的转变?
不少项目管理行业的负责人都是从技术岗产生,那么技术岗做的是代码、调试之类的内容,除了负责范围增加外,还有什么思维方面的转变呢? 1、从个体到团队 个体的技能决定着工作的完成度,而在管理工作岗位上,项…...
数据结构漫游记:初识vector
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的…...
RestTemplate远程调用、服务注册、
一.RestTemplate Spring给我们提供了一个RestTemplate的API,可以方便的实现Http请求的发送。 同步客户端执行HTTP请求,在底层HTTP客户端库(如JDK HttpURLConnection、Apache HttpComponents等)上公开一个简单的模板方法API。RestTemplate通过HTTP方法为常…...
ARP..
ARP 0 前言 真正接触到现网才发现ARP十分重要,无论是排错还是S-MLAG都需要用到ARP这个协议,以前对于ARP的理解比较混乱;所以这次对其中的主要内容做个梳理;一定要学好ARP!!! 1 ARP的概念 Ar…...
电子电器架构 ---整车区域控制器
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
HBase、Hive、Redis 和 MongoDB的对比
1. 数据库管理 操作HBaseHiveRedisMongoDB创建数据库N/A (HBase 没有数据库概念)CREATE DATABASE db_name;N/A (Redis 没有数据库命名功能)use db_name; (自动创建)查看数据库N/ASHOW DATABASES;INFO 查看全局信息show dbs;删除数据库N/ADROP DATABASE db_name CASCADE;N/Adb.…...
前端在WebSocket中加入Token
在WebSocket通信中加入Token主要是为了实现身份验证和授权,确保只有经过验证的用户可以建立WebSocket连接。由于WebSocket API本身不支持直接在连接时设置HTTP头部,因此需要采用一些变通的方法来传递Token。以下是几种常见的方法: 1、通过UR…...
图解HTTP-HTTP报文
参考资料:图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行(CR LF作为换行符)数据行构成的文本。 请求报文及响…...
后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
在现在常用的登录验证码方式有很多种,但是都不可避免被攻击,但是有很多方式可以防止被攻击,从而进行维护。 现在我就讲解一下滑动块验证码的实现方式: 这个是前端代码,我使用的是vue,在使用的时候注意&am…...
NOTEBOOK_11 汽车电子设备分享(工作经验)
汽车电子设备分享 摘要 本文主要列出汽车电子应用的一些实验设备和生产设备,部分会给予一定推荐。目录 摘要一、通用工具:二、测量与测试仪器2.1测量仪器2.2无线通讯测量仪器2.3元器件测试仪2.4安规测试仪2.5电源供应器2.6电磁兼容测试设备2.7可靠性环境…...
Spring Mvc面试题(常见)
1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…...
javaEE--计算机是如何工作的-1
目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...
【Mysql】函数有哪些
mysql函数有哪些? MySQL 提供了许多内置函数,用于执行各种操作,包括字符串处理、日期时间操作、数学计算、数据转换等。以下是一些常用的 MySQL 函数分类及其示例: 字符串函数 CONCAT(str1, str2, ...):将多个字符串…...
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。 关键词 UI互动应用评分统计状态管理数据处理多目标评分 一、功能说明 评分统计工具允许用…...
实验13 C语言连接和操作MySQL数据库
一、安装MySQL 1、使用包管理器安装MySQL sudo apt update sudo apt install mysql-server2、启动MySQL服务: sudo systemctl start mysql3、检查MySQL服务状态: sudo systemctl status mysql二、安装MySQL开发库 sudo apt-get install libmysqlcli…...
Azure虚拟机非托管磁盘大小调整
想要扩容一个Azure VM 的磁盘空间,门户里面竟然无法扩展,点点鼠标就完事的时代在离去,微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空,根本没有返回磁盘。 不过使…...
MySQL数据库下载及安装教程
链接:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客 亲测安装成功了💕 把这个路径放到系统环境变量里头 MD!我这安到C盘去了,就很烦🤬😡 在CMD登录试一下 mysql -h localhos…...
使用 UniApp 在微信小程序中实现 SSE 流式响应
概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…...
基础数据结构---栈
顺序表实现 一、栈类的声明 栈是一种特殊的线性表,可以由顺序表来实现,也可以由链表来实现,这节课,我们采用顺序表来实现栈。 #include <iostream>#include <stdexcept>using namespace std;template<typename …...
Redis 最佳实践
这是以前写下来的文章,发出来备份一下 Redis 在企业中的最佳实践可以帮助提高性能、可用性和数据管理效率。以下是一些推荐的做法: 选择合适的数据结构: 根据需求选择适当的 Redis 数据结构(如 Strings、Lists、Sets、Hashes、So…...
前端零基础学习Day-Eight
CSS字体和文本样式 CSS文字样式 字体:font-family 语法:font-family:[字体1][,字体2][,…] p{font-family:“微软雅黑”,“宋体”,“黑体”;} 含空格字体名和中文,用英文引号括起 属性值:具体字体名,字体集 字体集&…...
在Vue3中实现文件上传功能,结合后端API
随着现代Web应用程序的不断发展,文件上传成为了用户交互中不可或缺的一部分。在本篇博客中,我们将深入讨论如何在Vue3中实现一个文件上传功能,并与后端API进行交互。我们将使用Vue3的Composition API(setup语法糖)来构…...
智慧商城:点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳 + 发请求渲染加入购物车数量的角标
点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳 按需引入需要的 Dialog 组件并进行全局注册 Vue.use( )仅仅在Vue组件的上下文中起作用,所以在Vue组件中通过 this.$ 来使用 在 js 文件中则还要导入,然后直接使用,并不需要 this…...
植物大战僵尸杂交版v3.0.2最新版本(附下载链接)
B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.0.2版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/5c…...
后端统一接口返回状态【初步模板】
后端统一接口返回状态【模板】 文章目录 后端统一接口返回状态【模板】1 .Result类编写2 .Constants类编写3 .更改Controller层下的类return格式 开发过程中,每个接口的返回格式设计都是一样的,这样可以大大提高开发效率。 项目结构如下图:分…...
QML Text组件
文章目录 前言主体基本文本显示字体和样式富文本支持长文本的处理文本样式与效果超链接Label 元素总结 前言 在 QML 中,Text 和 Label 是常用的文本显示元素,它们在显示文本方面具有相似性,但在功能和定制性上也存在一些差异。Text 元素用于…...
cv2.addWeighted用法详解
cv2.addWeighted 是 OpenCV 中用于图像加权叠加的函数,常用于将两张图像按一定比例融合在一起。它通过对两张图像的像素进行加权和求和的操作,可以实现透明度调整、图像混合、图像融合等效果。 函数定义 cv2.addWeighted(src1, alpha, src2, beta, gam…...
基于微信小程序的消防隐患在线举报系统
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...
牛客网 SQL36查找后排序
SQL36查找后排序 select device_id,age from user_profile order by age asc #select [字段1,字段2] from [表名] order by [字段1] [升序(asc)/降序(desc)],[字段2] [升序(asc)/降序(desc)] #select:查询 #order by 排序 每日问题 如何实现对象的克隆࿱…...
Dart 中的构造函数
在 Dart 中,类的构造函数用于初始化类的对象。当你创建一个类的实例时,构造函数被自动调用。Dart 支持多种构造函数的写法,包括常规构造函数、命名构造函数、工厂构造函数等。 一、传统构造函数 默认构造函数是没有名字的构造函数ÿ…...
实现 WebSocket 接入文心一言
目录 什么是 WebSocket? 为什么需要 WebSocket? HTTP 的局限性 WebSocket 的优势 总结:HTTP 和 WebSocket 的区别 WebSocket 的劣势 WebSocket 常见应用场景 WebSocket 握手过程 WebSocket 事件处理和生命周期 WebSocket 心跳机制 …...
GO--堆(have TODO)
堆 堆(Heap)是一种特殊的数据结构。它是一棵完全二叉树(完全二叉树是指除了最后一层外,每一层上的节点数都是满的,并且最后一层的节点都集中在左边),结放在数组(切片)中…...
【Python随笔】Enigma密码机的原理及python代码实现
最近笔者接触到了Cypher这款游戏,玩法很简单,就是通过文字、图片等各种表达手段组成的谜面,猜一段英文,算是初步接触了密码学的一些知识。游戏中提到了很多类型的密码,其中Enigma密码机就是单独一种,在电影…...
二叉树 -- 堆(详解)
目录 1、堆的概念及结构 2、堆的实现(附代码) 2.1、向下调整算法建堆 3、堆的应用(附代码) 3.1、堆排序 3.2、TOP-K问题 1、堆的概念及结构 如果有一个关键码的集合K { k0,k1 ,k2 ,…,k(n-1) },把它的所有元素…...
gradle项目下载依赖报错
报错信息 Cannot resolve external dependency org.projectlombok:lombok:1.18.36 because no repositories are defined. Required by:project :Possible solution:- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/…...
WPS怎么都无法删除空白页_插入空白页一次插入两张?_插入横屏空白页_横屏摆放图片_这样解决_显示隐藏段落标记---WPS工作笔记001
在wps使用的过程中你们有没有碰到过这种问题,就是,我贴图,因为图片太大,我需要把图片,横屏显示,这个时候我需要插入一个空白页,那么,在空白菜单下,点击,有时候会点击插入空白页,会一下子自动插入两张空白页.而且,怎么删除都删除不掉. 都快疯掉了. 网上搜索也没有找到好的方法,后…...
flask before_request 请求拦截器返回无值则放行,有值则拦截
环境 Python 3.11.5 Flask 2.2.2完整代码如下: from flask import Flask, make_response, Blueprintapp Flask(__name__) user_blue Blueprint(user, __name__, url_prefix/api/user) user_blue.before_request def befor…...
前端XMLHttpRequest get请求能不能在body中传参数?
文档 查看mdn文档,文档XMLHttpRequest.send()有提到: XMLHttpRequest.send() 方法接受一个可选的参数,其作为请求主体;如果请求方法是 GET 或者 HEAD,则应将请求主体设置为 null。 测试 一个简单的nodejs服务器 var…...
C语言的函数指针
介绍案例 什么是函数指针? 函数指针 是指向函数的指针变量,它可以用来间接调用函数。在 C/C 中,函数指针允许程序在运行时选择调用不同的函数,这使得代码更加灵活和动态。函数指针广泛应用于回调函数、事件处理、动态选择算法等…...
网络安全的学习方向和路线是怎么样的?
石器时代 第一个阶段——石器时代,针对的是纯新手小白刚刚入场。在这个阶段,主要是打基础,需要学习的有五部分内容: Windows Windows上基础的一些命令、PowerShell的使用和简单脚本编写,以及Windows以后经常会打交道…...
酒蒙子骰子小程序系统
酒蒙子流量变现小程序小游戏 后端tp8 前端uniapp 会员变现 分销推广 流量主 …...
html+css网页设计 美食 餐饮杰12个页面
htmlcss网页设计 美食 餐饮杰12个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1ÿ…...
【济大期末数据库】SQL语法速成
目录 SQL分类 DDL 概念 语法 操作数据库: 1.查询所有数据库 2.查询当前数据库 3.创建数据库 4.删除数据库 5.切换数据库 操作数据库内的表: 1.查询当前数据库所有表 2.查看指定表结构 3.创建表 DML 概念 语法 增(INSERT&am…...
WeakAuras NES Script(lua)
WeakAuras NES Script 修星脚本字符串 脚本1:NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…...
国内网络在Ubuntu 22.04中在线安装Ollama并配置Open-WebuiDify
配置docker科技网络 登录后复制 创建或编辑 Docker 配置文件 让docker使用代理: sudo mkdir /etc/systemd/system/docker.service.d -p sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf 文件,并添加以下内容: [Service] En…...
SQL 插入数据详解
本文介绍如何利用 SQL 的 INSERT 语句将数据插入表中。 1. 数据插入 顾名思义,INSERT 用来将行插入(或添加)到数据库表。插入有几种方式: 插入完整的行;插入行的一部分;插入某些查询的结果。 下面逐一介…...
中小学教室多媒体电脑安全登录解决方案
中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…...
Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能
背景:现在有一个新需求,需要借助树结构来实现词库的分类管理,树的节点是不同的分类,不同的分类可以有自己的词库,所以父子节点是互不影响的;同样为了选择的方便性,提出了新需求,选择…...