CO02工单组件,新增/删除/修改
REPORT zpp153.
- 事务代码: ZPP153-整散车生产订单自动调整
- 程序名称:ZPP153-整散车生产订单自动调整
- 程序目的:ZPP153-整散车生产订单自动调整
- 开发人员:
*(修改日志)-------------------------------------------------------- - 日志号 修改人 修改时间 修改说明 传输号码
-
- 001
======================================================================
- INCLUDE
======================================================================
INCLUDE zpp153_top.
INCLUDE zpp153_f01.
======================================================================
- AT SELECTION-SCREEN.
======================================================================
AT SELECTION-SCREEN OUTPUT.
======================================================================
- INITIALIZATION
======================================================================
INITIALIZATION.
======================================================================
- START-OF-SELECTION.
======================================================================
START-OF-SELECTION.
PERFORM frm_get_data."获取数据
PERFORM frm_alv_fieldcat."修改设置字段属性
PERFORM frm_alv_layout."设置输出格式
PERFORM frm_alv_display."ALV显示
======================================================================
- END-OF-SELECTION.
======================================================================
END-OF-SELECTION.
&---------------------------------------------------------------------
*& 包含 ZPP153_TOP
&---------------------------------------------------------------------
TABLES:aufk,afko,afpo.
TYPES:BEGIN OF ty_alv,
box TYPE c, "选择
led TYPE string, "指示灯
werks TYPE aufk-werks, "工厂
aufnr TYPE aufk-aufnr, "生产订单
gstrp TYPE afko-gstrp, "开始日期
gamng TYPE afko-gamng, "生产数量
fevor TYPE afko-fevor, "生产线
matnr TYPE afpo-matnr, "物料号
maktx TYPE makt-maktx, "描述
matnr_ct TYPE afpo-matnr, "成套件料号
maktx_ct TYPE makt-maktx, "描述
ylgort TYPE afpo-lgort, "原入库库位
lgort TYPE afpo-lgort, "新入库库位
msg TYPE char100, "消息
END OF ty_alv.
DATA:gt_alv TYPE STANDARD TABLE OF ty_alv.
DATA:gs_alv TYPE ty_alv.
TYPES:BEGIN OF ty_stb.
INCLUDE TYPE stpox.
TYPES:aufnr TYPE afpo-aufnr.
TYPES:labor TYPE mara-labor.
TYPES:END OF ty_stb.
DATA:gt_stb TYPE TABLE OF ty_stb,
gs_stb TYPE ty_stb,
gt_matcat TYPE TABLE OF cscmat.
DATA:gt_fieldcat TYPE lvc_t_fcat, "字段目录内表
gs_fieldcat TYPE lvc_s_fcat, "字段目录工作区
gs_layout TYPE lvc_s_layo. "用于定义ALV表单的相关格式、属性
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_werks FOR aufk-werks OBLIGATORY, "工厂
s_matnr FOR afpo-matnr, "物料号
s_aufnr FOR aufk-aufnr, "生产订单
s_gstrp FOR afko-gstrp OBLIGATORY. "开始日期
PARAMETERS:
p_lgort TYPE afpo-lgort DEFAULT ‘S049’ OBLIGATORY, "入库库位
p_matct TYPE afpo-matnr. "成套件料号
SELECTION-SCREEN END OF BLOCK b1.
&---------------------------------------------------------------------
*& 包含 ZPP153_F01
&---------------------------------------------------------------------
&---------------------------------------------------------------------
*& Form frm_fieldcat_alv
&---------------------------------------------------------------------
-
设置ALV字段属性
----------------------------------------------------------------------
FORM frm_alv_fieldcat .
REFRESH gt_fieldcat.
DEFINE init_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = &1.
gs_fieldcat-coltext = &2.
gs_fieldcat-datatype = &3.
gs_fieldcat-ref_table = &4.
gs_fieldcat-ref_field = &5.
gs_fieldcat-inttype = &6.
gs_fieldcat-ICON = &7.
gs_fieldcat-EDIT = &8.
gs_fieldcat-CHECKBOX = &9.
APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.
init_fieldcat ‘BOX’ ‘选择’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘X’ ‘X’.
init_fieldcat ‘LED’ ‘指示灯’ ‘’ ‘’ ‘’ ‘’ ‘X’ ‘’ ‘’.
init_fieldcat ‘MSG’ ‘消息’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'WERKS ’ ‘工厂’ ‘’ ‘AUFK’ ‘WERKS’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'AUFNR ’ ‘生产订单’ ‘’ ‘AFKO’ ‘AUFNR’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'GSTRP ’ ‘开始日期’ ‘’ ‘AFKO’ ‘GSTRP’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'GAMNG ’ ‘生产数量’ ‘’ ‘AFKO’ ‘GAMNG’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'FEVOR ’ ‘生产线’ ‘’ ‘AFPO’ ‘FEVOR’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'MATNR ’ ‘物料号’ ‘’ ‘MAKT’ ‘MATNR’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'MAKTX ’ ‘物料号描述’ ‘’ ‘AFPO’ ‘MAKTX’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat ‘MATNR_CT’ ‘成套件料号’ ‘’ ‘MAKT’ ‘MATNR’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat ‘MAKTX_CT’ ‘成套件料号描述’ ‘’ ‘AFPO’ ‘MAKTX’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'YLGORT ’ ‘原入库库位’ ‘’ ‘AFPO’ ‘LGORT’ ‘’ ‘’ ‘’ ‘’ .
init_fieldcat 'LGORT ’ ‘新入库库位’ ‘’ ‘AFPO’ ‘LGORT’ ‘’ ‘’ ‘’ ‘’ .
ENDFORM.
&---------------------------------------------------------------------
*& Form frm_layout_alv
&---------------------------------------------------------------------
*& 设置ALV输出格式
&---------------------------------------------------------------------
FORM frm_alv_layout .
CLEAR gs_layout.
gs_layout-zebra = ‘X’ . " 使ALV界面呈现颜色交替
gs_layout-sel_mode = ‘D’ . " 选择模式,"A"在最左端有选择按钮
gs_layout-cwidth_opt = ‘X’ . " 自动优化列宽
ENDFORM.
&---------------------------------------------------------------------
*& Form frm_alv_display
&---------------------------------------------------------------------
*& ALV显示
&---------------------------------------------------------------------
FORM frm_alv_display .
-
DATA: i_grid_settings TYPE lvc_s_glay.
DATA ls_title TYPE lvc_title.
DESCRIBE TABLE gt_alv LINES DATA(li_lines).
ls_title = ‘条目数:’ && li_lines. -
i_grid_settings-edt_cll_cb = ‘X’."ALV 控制: 退出可编辑单元格时回调
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
i_save = ‘A’
i_callback_program = sy-repid "当前程序
is_layout_lvc = gs_layout “界面格式”
it_fieldcat_lvc = gt_fieldcat “字段属性”
i_callback_pf_status_set = ‘FRM_SET_PF_STATUS’ "状态
i_callback_user_command = ‘FRM_USER_COMMAND_ALV’ "控制指令
-
it_event_exit = gt_event_exit i_grid_title = ls_title -
TABLESi_grid_settings = i_grid_settings
t_outtab = gt_alv
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE ‘S’ NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE ‘E’.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM.
&---------------------------------------------------------------------
*& Form frm_set_pf_status
&---------------------------------------------------------------------
-
ALV状态
----------------------------------------------------------------------
FORM frm_set_pf_status USING extab TYPE slis_t_extab.
SET PF-STATUS ‘ZPP153_STATUS’. "EXCLUDING FCODE.
- SET TITLEBAR ‘XXXXX’.
ENDFORM. "frm_set_pf_status
&---------------------------------------------------------------------
*& Form frm_user_command_alv
&---------------------------------------------------------------------
-
ALV按钮功能
----------------------------------------------------------------------
FORM frm_user_command_alv USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
开始******** 这段代码加上之后,才能对数据进行实时更新
DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid->check_changed_data.
rs_selfield-refresh = ‘X’.
rs_selfield-col_stable = ‘X’.
rs_selfield-row_stable = ‘X’.
结束******** 这段代码加上之后,才能对数据进行实时更新
CASE r_ucomm.
WHEN 'ZZC'."整车PERFORM frm_zzc_xz."整车新增BOM组件WHEN 'ZSC'."散车PERFORM frm_zsc_sc."散车删除BOM组件WHEN 'ZALL'."全选PERFORM frm_all_data.WHEN 'ZSAL'."取消全选PERFORM frm_sal_data.WHEN '&IC1'."双击显示工单PERFORM frm_dis_co03 USING rs_selfield.WHEN OTHERS.
ENDCASE.
- DATA ls_title TYPE lvc_title.
- DESCRIBE TABLE gt_alv LINES DATA(li_lines).
- ls_title = ‘条目数:’ && li_lines.
- CALL METHOD lr_grid->set_gridtitle
- EXPORTING
-
i_gridtitle = ls_title.
ENDFORM. "frm_user_command_alv
&---------------------------------------------------------------------
*& Form FRM_GET_DATA
&---------------------------------------------------------------------
-
获取数据
----------------------------------------------------------------------
FORM frm_get_data .
DATA:lt_alv TYPE STANDARD TABLE OF ty_alv.
DATA:lt_stb TYPE TABLE OF stpox,
lt_matcat TYPE TABLE OF cscmat.
REFRESH gt_alv.
REFRESH gt_stb.
SELECT
aufk~werks,
afko~aufnr,
afko~fevor,
afko~gamng,
afko~gstrp,
afpo~matnr,
afpo~lgort AS ylgort,
makt~maktx
INTO CORRESPONDING FIELDS OF TABLE @lt_alv
FROM afko
INNER JOIN afpo ON afpo~aufnr = afko~aufnr
INNER JOIN aufk ON aufk~aufnr = afko~aufnr
LEFT JOIN makt ON afpo~matnr = makt~matnr
WHERE aufk~loekz = ''AND
( aufk~auart = 'YP01’OR
aufk~auart = ‘YP10’) AND
-
afpo~lgort = p_lgort ANDafko~gstrp IN @s_gstrp ANDaufk~werks IN @s_werks ANDaufk~aufnr IN @s_aufnr ANDafpo~matnr IN @s_matnr ANDmakt~spras = '1'.IF lt_alv[] IS INITIAL.
MESSAGE ‘没有符合条件的数据’ TYPE ‘S’ DISPLAY LIKE ‘E’.
LEAVE LIST-PROCESSING.
ENDIF.LOOP AT lt_alv INTO gs_alv.
REFRESH lt_stb.
CALL FUNCTION ‘CS_BOM_EXPL_MAT_V2’
EXPORTING
capid = ‘PP01’
datuv = gs_alv-gstrp
mktls = ‘X’
mehrs = ‘X’
mtnrv = gs_alv-matnr
stlan = ‘1’
stlal = ‘’
werks = gs_alv-werks -
IMPORTING -
TOPMAT = TOPMAT -
DSTST = DSTST TABLESstb = lt_stbmatcat = lt_matcat EXCEPTIONSalt_not_found = 1call_invalid = 2material_not_found = 3missing_authorization = 4no_bom_found = 5no_plant_data = 6no_suitable_bom_found = 7conversion_error = 8OTHERS = 9.IF sy-subrc <> 0.
-
Implement suitable error handling here
ENDIF.LOOP AT lt_stb INTO DATA(ls_stb).
CLEAR gs_stb. MOVE-CORRESPONDING ls_stb TO gs_stb. gs_stb-aufnr = gs_alv-aufnr. APPEND gs_stb TO gt_stb.ENDLOOP.
gs_alv-lgort = p_lgort.
gs_alv-box = ‘X’.
APPEND gs_alv TO gt_alv.
ENDLOOP.SELECT
matnr,
labor
INTO TABLE @DATA(lt_mara)
FROM mara
FOR ALL ENTRIES IN @gt_stb
WHERE labor = ‘001’
AND matnr = @gt_stb-idnrk.
SORT lt_mara BY matnr.SORT gt_alv BY aufnr.
LOOP AT gt_stb INTO gs_stb.
READ TABLE lt_mara INTO DATA(ls_mara) WITH KEY matnr = gs_stb-idnrk BINARY SEARCH.
IF sy-subrc = 0.READ TABLE gt_alv INTO gs_alv WITH KEY aufnr = gs_stb-aufnr BINARY SEARCH. IF sy-subrc = 0.gs_alv-matnr_ct = ls_mara-matnr.MODIFY gt_alv FROM gs_alv TRANSPORTING matnr_ct WHERE aufnr = gs_stb-aufnr. ENDIF.ENDIF.
MODIFY gt_stb FROM gs_stb.
CLEAR gs_stb.
ENDLOOP.SORT gt_stb BY aufnr.
IF gt_alv[] IS NOT INITIAL.
SELECT
matnr,
maktx
FROM makt
INTO TABLE @DATA(lt_matk)
FOR ALL ENTRIES IN @gt_alv
WHERE spras = ‘1’
AND matnr = @gt_alv-matnr_ct.
SORT lt_matk BY matnr.LOOP AT gt_alv INTO gs_alv.
READ TABLE lt_matk INTO DATA(ls_matk) WITH KEY matnr = gs_alv-matnr_ct BINARY SEARCH.
IF sy-subrc = 0.
gs_alv-maktx_ct = ls_matk-maktx.
ENDIF.
MODIFY gt_alv FROM gs_alv.
ENDLOOP.ENDIF.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_ZZC_XZ
&---------------------------------------------------------------------
-
整车新增BOM组件
----------------------------------------------------------------------
FORM frm_zzc_xz .
"新增组件
DATA: ls_storage_location TYPE coxt_s_storage_location,
ls_storage_locationx TYPE coxt_s_storage_locationx,
ls_requ_quan TYPE coxt_s_quantity,
lv_operation TYPE co_aplzl,
-
lv_batch TYPE coxt_batch, -
lv_batchx TYPE coxt_batchx, -
lv_postp TYPE postp, -
lv_sequence TYPE plnfolge, -
lv_material TYPE matnr,lv_positionno TYPE positionno,lv_numc TYPE numc4."重新刷新订单行号使用
TYPES: BEGIN OF ty_resb_bt.
INCLUDE TYPE resbb.
TYPES: indold TYPE syst_tabix.
TYPES: no_req_upd TYPE syst_datar.
TYPES: END OF ty_resb_bt.
TYPES tt_resb_bt TYPE TABLE OF ty_resb_bt.
FIELD-SYMBOLS: <ft_resb_bt> TYPE tt_resb_bt,
<fs_resb_bt> TYPE ty_resb_bt.DATA:et_bapireturn TYPE coxt_bapireturn OCCURS 0.
DATA:lt_resb LIKE TABLE OF resb WITH HEADER LINE.
DATA:ls_return TYPE bapiret2.
DATA lv_error TYPE c.LOOP AT gt_alv INTO gs_alv WHERE box = ‘X’.
PERFORM frm_change_logrt."修改工厂库位
IF gs_alv-led <> icon_led_red.
REFRESH lt_resb.READ TABLE gt_stb INTO gs_stb WITH KEY aufnr = gs_alv-aufnridnrk = gs_alv-matnr_ctBINARY SEARCH. IF sy-subrc = 0."新增需要的组件LOOP AT gt_stb INTO DATA(ls_stb) WHERE vwegx = gs_stb-wegxx.SELECT SINGLErsnum,rspos,matnr,werks,enmng,meinsINTO @DATA(lss_resb)FROM resbWHERE aufnr EQ @gs_alv-aufnrAND matnr EQ @ls_stb-idnrkAND xloek NE 'X'.IF sy-subrc <> 0.CLEAR lt_resb.lt_resb-matnr = ls_stb-idnrk.lt_resb-bdmng = ls_stb-menge * gs_alv-gamng.lt_resb-enmng = ls_stb-menge * gs_alv-gamng.lt_resb-meins = ls_stb-mmein.lt_resb-werks = ls_stb-werks.APPEND lt_resb.ENDIF.ENDLOOP. ENDIF.LOOP AT lt_resb.CLEAR ls_requ_quan.CLEAR lv_operation.CLEAR ls_storage_location.CLEAR ls_storage_locationx.CLEAR lv_positionno.CLEAR ls_return.CLEAR lv_error.ls_requ_quan-quantity = lt_resb-enmng.ls_requ_quan-uom = lt_resb-meins.ls_storage_location-werks = lt_resb-werks.ls_storage_locationx-werks = 'X'. -
IF lt_resb-lgort IS NOT INITIAL. -
ls_storage_location-lgort = lt_resb-lgort."选择屏幕 -
ls_storage_locationx-lgort = 'X'. -
ENDIF.CALL FUNCTION 'CO_XT_COMPONENT_ADD'EXPORTINGis_order_key = gs_alv-aufnri_material = lt_resb-matnris_requ_quan = ls_requ_quani_operation = lv_operationis_storage_location = ls_storage_locationis_storage_locationx = ls_storage_locationxi_postp = 'L'i_posno = lv_positionnoIMPORTINGes_bapireturn = ls_returne_error_occurred = lv_error.IF lv_error = space."对工单行号重新刷ASSIGN ('(SAPLCOBC)RESB_BT[]') TO <ft_resb_bt>.LOOP AT <ft_resb_bt> ASSIGNING <fs_resb_bt>.CLEAR lv_numc.lv_numc = sy-tabix * 10.<fs_resb_bt>-posnr = lv_numc.ENDLOOP. -
Commit transactionCALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'IMPORTINGes_bapireturn = ls_returne_error_occurred = lv_errorTABLESet_bapireturn = et_bapireturn.IF ( ls_return-type = 'S' ORls_return-type = 'W' ORls_return-type = 'I' ) ORls_return IS INITIAL. -
Commit dataCALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.CALL FUNCTION 'CO_XT_ORDER_INITIALIZE'.gs_alv-msg = 'BOM组件新增成功'.gs_alv-led = icon_led_green.ELSE. -
Data Rollback
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.
gs_alv-msg = ‘BOM组件新增失败:’&& ls_return-message.
gs_alv-led = icon_led_red.ENDIF.ELSE. -
Data RollbackCALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.gs_alv-msg = 'BOM组件新增失败:'&& ls_return-message.gs_alv-led = icon_led_red.ENDIF.ENDLOOP. IF sy-subrc <> 0.gs_alv-msg = '没有可以新增的BOM组件'&& ls_return-message.gs_alv-led = icon_led_red. ENDIF.ENDIF.
MODIFY gt_alv FROM gs_alv TRANSPORTING led msg.
ENDLOOP.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_ZSC_SC
&---------------------------------------------------------------------
-
散车删除BOM组件
----------------------------------------------------------------------
FORM frm_zsc_sc .
*删除
DATA:lt_return TYPE coxt_t_bapireturn WITH HEADER LINE.
DATA:ls_return TYPE bapiret2.
DATA it_resb TYPE coxt_t_resbdel WITH HEADER LINE .
DATA:lt_resb LIKE TABLE OF resb WITH HEADER LINE.
DATA:ls_resb LIKE TABLE OF resb WITH HEADER LINE.
DATA lv_error TYPE c.
LOOP AT gt_alv INTO gs_alv WHERE box = ‘X’.
PERFORM frm_change_logrt."修改工厂库位IF gs_alv-led <> icon_led_red.REFRESH it_resb.CLEAR it_resb.REFRESH lt_resb.CLEAR lt_resb.REFRESH lt_return.CLEAR lt_return.CLEAR lv_error.CLEAR ls_return.CLEAR ls_resb.READ TABLE gt_stb INTO gs_stb WITH KEY aufnr = gs_alv-aufnridnrk = gs_alv-matnr_ctBINARY SEARCH.IF sy-subrc = 0."去除需要删除的组件LOOP AT gt_stb INTO DATA(ls_stb) WHERE vwegx = gs_stb-wegxx.SELECT SINGLErsnumrsposmatnrwerksbdmngenmngmeinsINTO CORRESPONDING FIELDS OF ls_resbFROM resbWHERE aufnr EQ gs_alv-aufnrAND matnr EQ ls_stb-idnrkAND xloek NE 'X'.IF sy-subrc = 0.CLEAR lt_resb.APPEND ls_resb TO lt_resb.ENDIF.ENDLOOP.ENDIF.IF lt_resb[] IS NOT INITIAL.it_resb[] = CORRESPONDING #( lt_resb[] ).CALL FUNCTION 'CO_XT_COMPONENTS_DELETE'EXPORTINGit_resbkeys_to_delete = it_resb[]IMPORTINGe_error_occurred = lv_errorTABLESct_bapireturn = lt_returnEXCEPTIONSdelete_failed = 1OTHERS = 2.IF lv_error = space.PERFORM change_flag_set(saplcozv).CALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'IMPORTINGes_bapireturn = ls_returne_error_occurred = lv_error.COMMIT WORK AND WAIT.WAIT UP TO 1 SECONDS .IF ( ls_return-type = 'S'OR ls_return-type = 'W'OR ls_return-type = 'I' )OR ls_return IS INITIAL.
-
DB COMMMIT
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
EXPORTING
wait = ‘X’. -
刷新变量
CALL FUNCTION ‘CO_XT_ORDER_INITIALIZE’.gs_alv-msg = 'BOM组件删除成功'.gs_alv-led = icon_led_green.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.gs_alv-msg = 'BOM组件删除失败:'&& ls_return-message.gs_alv-led = icon_led_red.ENDIF.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.gs_alv-msg = 'BOM组件删除失败:'&& ls_return-message.gs_alv-led = icon_led_red.ENDIF.ELSE.
gs_alv-msg = ‘BOM没有可以组件删除’.
gs_alv-led = icon_led_red.ENDIF.
ENDIF.
MODIFY gt_alv FROM gs_alv TRANSPORTING led msg.
ENDLOOP.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_ALL_DATA
&---------------------------------------------------------------------
-
全选
----------------------------------------------------------------------
FORM frm_all_data .
LOOP AT gt_alv INTO gs_alv.
gs_alv-box = ‘X’.
MODIFY gt_alv FROM gs_alv.
ENDLOOP.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_SAL_DATA
&---------------------------------------------------------------------
-
取消全选
----------------------------------------------------------------------
FORM frm_sal_data .
LOOP AT gt_alv INTO gs_alv.
gs_alv-box = ‘’.
MODIFY gt_alv FROM gs_alv.
ENDLOOP.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_DIS_CO03
&---------------------------------------------------------------------
-
双击显示工单
----------------------------------------------------------------------
FORM frm_dis_co03 USING rs_selfield TYPE slis_selfield.
IF rs_selfield-fieldname = ‘AUFNR’.
READ TABLE gt_alv INTO gs_alv INDEX rs_selfield-tabindex.
IF sy-subrc = 0 .
SET PARAMETER ID ‘ANR’ FIELD gs_alv-aufnr.
CALL TRANSACTION ‘CO03’ AND SKIP FIRST SCREEN.
CLEAR gs_alv.
ENDIF.
ENDIF.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_CHANGE_LOGRT
&---------------------------------------------------------------------
-
修改工厂库位
----------------------------------------------------------------------
FORM frm_change_logrt .
DATA:ls_bapi_pp_order_change LIKE bapi_pp_order_change,
ls_bapi_pp_order_changex LIKE bapi_pp_order_changex,
ls_bapiret2 LIKE bapiret2.
"工单成品物料
SELECT SINGLE matnr
INTO @DATA(lv_mard_matnr)
FROM mard
WHERE matnr = @gs_alv-matnr
AND lgort = @p_lgort.
IF sy-subrc <> 0.
IF gs_alv-msg IS INITIAL.gs_alv-msg = '组件' && gs_alv-matnr && '没有维护库位' && p_lgort.
ELSE.gs_alv-msg = gs_alv-msg && '/' && '组件' && gs_alv-matnr && '没有维护库位' && p_lgort.
ENDIF.gs_alv-led = icon_led_red.
ELSE.
CLEAR:ls_bapi_pp_order_change ,ls_bapi_pp_order_changex,ls_bapiret2 .ls_bapi_pp_order_change-storage_location = p_lgort."修改库存地点
ls_bapi_pp_order_changex-storage_location = 'X'."修改库存地点标志CALL FUNCTION 'BAPI_PRODORD_CHANGE'EXPORTINGnumber = gs_alv-aufnrorderdata = ls_bapi_pp_order_changeorderdatax = ls_bapi_pp_order_changexIMPORTINGreturn = ls_bapiret2.IF ls_bapiret2-type = 'E'OR ls_bapiret2-type = 'A'.ROLLBACK WORK.IF gs_alv-msg IS INITIAL.gs_alv-msg = '工单库存地点修改失败:' && ls_bapiret2-message.ELSE.gs_alv-msg = gs_alv-msg && '/'&&'工单库存地点修改失败:' && ls_bapiret2-message.ENDIF.gs_alv-led = icon_led_red.ELSE.COMMIT WORK AND WAIT.gs_alv-msg = gs_alv-msg && '/' && '工单库存地点修改成功'.gs_alv-led = icon_led_green.ENDIF.
ENDIF.
ENDFORM.
相关文章:
CO02工单组件,新增/删除/修改
REPORT zpp153. 事务代码: ZPP153-整散车生产订单自动调整程序名称:ZPP153-整散车生产订单自动调整程序目的:ZPP153-整散车生产订单自动调整开发人员: *(修改日志)--------------------------------------------------------日志号…...
MIT6.824 lab3AB记录
实验目标:基于raft日志复制算法实现的线性一致性kv存储引擎。 线性一致性: 所有的读操作都能够读取到最近一次写操作的结果。所有节点(或者进程)在同一时刻,看到的数据都是相同的。 简而言之,线性一致性…...
一分钟了解美国棒球体系·棒球1号位
美国棒球体系是一个庞大且复杂的体系,涵盖了从青少年到职业的各个层次。下面是美国棒球体系的主要组成部分: 1. 青少年棒球(Youth Baseball) 美国的青少年棒球体系包括各种地区和全国性的联盟,如Little League、Pony…...
通过ObjectMapper和JsonNode 把JSON字符串转换成树结构数据和获取树节点数据
一.简介 今天同事有个需求,要把一个JSON字符串转换成一个树结构的数据并获取节点数据,鉴于自己不想写递归去转换,于是使用ObjectMapper和JsonNode类去实现。 二.依赖 pom文件引入依赖: <dependency><groupId>com.…...
鉴源论坛 · 观模丨面向界面的图形化测试技术
作者 | 熊一衡 华东师范大学软件工程学院博士 苏亭 华东师范大学软件工程学院教授 版块 | 鉴源论坛 观模 01 什么是面向界面的图形化测试(GUI Testing) 图形用户界面(GUI) 是一种通过图形化方式呈现信息、数据、功能和操作的用户界面,旨在…...
Midjourney以图生图的详细教程(含6种案例介绍)
🏆 文章目标:学习并介绍Midjourney以图生图的详细教程 🍀 Midjourney以图生图的详细教程 ✅ 创作者:熊猫Jay 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,…...
基于单片机的电路特性测试仪的设计
摘 要 当今社会科技的飞速发展,智能和便捷已经成为人们的日常诉求。现在放大电路在使用过程中经常出现故障,并且需要测试电路数据,但是大多数是手动进行测试,一定程度上影响了工作效率。 为了测量数据更安全更便捷,针…...
五一将迎2亿人次出行,君子签助力旅行社合规高效签旅游电子合同
近日,为规范旅游市场秩序,促进旅行社高质量发展,文旅部发布了《文化和旅游部办公厅关于进一步规范旅游市场秩序的通知》(下称《通知》),对旅游业提出了新的要求。 《通知》中规范了旅行社经营行为。旅行社要…...
IAP升级遇到的问题
文章目录 1. app程序在SystemClock_Config中跑飞2. 程序HAL_Delay中卡死3. 通过外部flash模拟的U盘没能被电脑识别4. 将bin文件拷贝到片内flash中失败5、APP程序跳转过后串口不能工作 这几天在STM32G473使用IAP升级的时候踩了不少坑 1. app程序在SystemClock_Config中跑飞 boo…...
简单聊聊k8s,和docker之间的关系
前言 随着云原生和微服务架构的快速发展,Kubernetes和Docker已经成为了两个重要的技术。但是有小伙伴通常对这两个技术的关系产生疑惑: 既然有了docker,为什么又出来一个k8s? 它俩之间是竞品的关系吗? 傻傻分不清。…...
半小时学会HTML5
一、了解几个概念 1、HTML定义 HTML是(Hyper Text Markup Language)超文本标记语言,超文本包含:文字、图片、音频、视频、动画等。 2、W3C 是什么? W3C 即(World Wide Web Consortium) 万维…...
研报精选230421
目录 【行业230421南京证券】氢能行业:地缘政治加速绿色能源转型 【行业230421华安证券】AIGC行业研究框架与投资逻辑 【行业230421信达证券】工控行业深度报告:行业拐点将至,国产品牌加速崛起 【个股230421国信证券_华阳集团】聚焦汽车智能化…...
AI绘图风格对照表/画风样稿详细研究记录及经验总结(分析Midjourney和Stable Diffusion风格提示词实际使用情况)不断更新中...
Midjourney和Stable Diffusion都可以通过输入文本生成出令人惊叹的AI图像。 Midjourney是一个收费的在线服务,通过discord对话的形式来生图,局限性较大,但由于后台官方模型做得好,因此出图效果非常完美; Stable Diffus…...
人工智能论文的风格特点
搞清楚AI领域论文的风格特点是写出一篇高质量AI论文的前提,AI领域的论文有如下显著特点。 1. 论文的架构非常清晰且富有逻辑。一篇高质量的AI论文,读者通过大致扫一眼论文的各级标题就能够对论文的写作思路形成清晰的认识,明白论文各部分之间…...
成功上岸国防科大!
Datawhale干货 作者:王洲烽,太原理工大学,Datawhale成员 写在前面 相比较于一般的经验贴,我更想在这里讲述一下自己的故事。我一开始报考的是北理工,但很遗憾9月份北理改考408了,无缘京爷,所以…...
【C语言】输入输出、字符串操作、内存操作、文件操作函数
三对基本输入输出函数 1.gets(),puts() gets()从标准输入中获取一个字符串,到str(自己创建的char型数组)中,读到换行或输入末尾结束获取r; 成功返回str,失败返回空。 char *gets(char *str)…...
[golang gin框架] 25.Gin 商城项目-配置清除缓存以及前台列表页面数据渲染公共数据
配置清除缓存 当进入前台首页时,会缓存对应的商品相关数据,这时,如果后台修改了商品的相关数据,缓存中的对应数据并没有随之发生改变,这时就需要需改对应的缓存数据,这里有两种方法: 方法一 在管理后台操作直接清除缓存中的所有数据,当再次访问前台首页时,就会先从数据库中获取…...
文件夹改名,如何在改名之后批量复制文件夹名称
在日常时候中会遇到给文件夹改名的时候,那么我们又如何在改名之后批量复制文件夹名称?今天就由小编来给大家分享一下操作办法。 首先第一步,我们要进入文件批量改名高手,并在板块栏里选择“文件夹批量改名”板块。 第二步…...
汇编与内联 x86-64
机器字长 x86是32位系统 64是64位系统 这里的32和64,指的都是机器字长 机器字长是 能直接进行整数/位运算的大小指针的大小(索引内存的范围) 容易与机器字长混淆的概念:字 字 字存储字长 字是MDR寄存器的位数,代表每个主存存储体中的存储…...
OSCP-UT99(IRC、Unreal Tournament 99)
目录 扫描 WEB IRC 提权 扫描 sudo nmap 192.168.142.44 -p- -sS -sV PORT STATE SERVICE VERSION 21/tcp open ftp FileZilla ftpd 80/tcp open http Apache httpd 2.4.16 (OpenSSL/1.0.1p PHP/5.6.12) 44…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
