PP生产订单的BADI增强 WORKORDER_UPDATE
生活随笔
收集整理的這篇文章主要介紹了
PP生产订单的BADI增强 WORKORDER_UPDATE
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
METHOD?
if_ex_workorder_update~before_update.
*---------------------->增強1?開始
*??"當生產訂單類型為PP01時,如果該生產訂單有參考相關的銷售訂單,
*??"那么在此生產訂單存盤時,就需要判斷該生產訂單是否已經維護了相關的長文本數據,如果沒有長文本數據,就需要查看
*??"所對應的銷售訂單行項目上是否有長文本數據,如果有則將銷售訂單行項目的長文本帶到該生產訂單長文本中。
*??"反之,如果此生產訂單已經維護有相關的長文本數據,則不需要再去考慮銷售訂單行項目中的長文本
??FIELD-SYMBOLS:?<f1>? TYPE? cobai_t_header,
?????????????????<f2>? TYPE? LINE? OF? cobai_t_header.
?? DATA? v_program(50)? TYPE? c? VALUE? '(SAPLCOBT)CAUFV_BT[]' .
??DATA:?wa_header? TYPE? LINE? OF? cobai_t_header,
????????v_flag.
??DATA:?v_tdname?? TYPE? thead-tdname,
????????lt_lines?? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines0? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines1? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines2? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines3? TYPE? STANDARD? TABLE? OF? tline,
????????ls_line??? TYPE? tline,
????????ls_line1?? TYPE? tline.
??CLEAR:?v_tdname,?lt_lines0,?lt_lines1,?lt_lines2,?lt_lines3,
?????????lt_lines,?ls_line,?ls_line1.
?? CASE? sy-tcode.
???? WHEN? 'CO40'? OR? 'CO08'? OR? 'CO01'? OR? 'CO41' .
?????? READ? TABLE? it_header? INTO? wa_header? INDEX? 1.
?????? "AUART訂單類型、LTEXT長文本標識、KDAUF_AUFK參考銷售訂單號、KDPOS_AUFK參考銷售訂單行項目號
?????? IF? wa_header-auart? EQ? 'PP01'? AND? wa_header-ltext? EQ? space? AND? wa_header-kdauf_aufk? IS? NOT? INITIAL
???????? AND? wa_header-kdpos_aufk? IS? NOT? INITIAL.
???????? CONCATENATE? wa_header-kdauf_aufk?wa_header-kdpos_aufk? INTO? v_tdname.?? "銷售訂單行項目長文本的Name
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'Z002'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBP'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines0
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
????????v_tdname?=?wa_header-kdauf_aufk.
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'ZV06'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBK'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines1
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
???????? CONCATENATE? wa_header-kdauf_aufk?wa_header-kdpos_aufk? INTO? v_tdname.?? "銷售訂單行項目長文本的Name
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'Z001'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBP'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines2
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
*????????CONCATENATE?wa_header-kdauf_aufk?wa_header-kdpos_aufk?INTO?v_tdname.??"銷售訂單行項目長文本的Name
*????????"讀取參考的銷售訂單行項目長文本
*????????CALL?FUNCTION?'READ_TEXT'
*??????????EXPORTING
*????????????id??????????????????????=?'Z002'
*????????????language????????????????=?sy-langu
*????????????name????????????????????=?v_tdname
*????????????object??????????????????=?'VBBP'
*??????????TABLES
*????????????lines???????????????????=?lt_lines3
*??????????EXCEPTIONS
*????????????id??????????????????????=?1
*????????????language????????????????=?2
*????????????name????????????????????=?3
*????????????not_found???????????????=?4
*????????????object??????????????????=?5
*????????????reference_check?????????=?6
*????????????wrong_access_to_archive?=?7
*????????????OTHERS??????????????????=?8.
????????ls_line1-tdline?=? '行項目備注:' .
???????? INSERT? ls_line1? INTO? lt_lines0? INDEX? 1.
????????ls_line1-tdline?=? '此單特殊要求:' .
???????? INSERT? ls_line1? INTO? lt_lines1? INDEX? 1.
????????ls_line1-tdline?=? '開模信息:' .
???????? INSERT? ls_line1? INTO? lt_lines2? INDEX? 1.
*
*????????ls_line1-tdline?=?'行項目備注:'.
*????????INSERT?ls_line1?INTO?lt_lines3?INDEX?1.
???????? LOOP? AT? lt_lines0? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
???????? LOOP? AT? lt_lines1? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
???????? LOOP? AT? lt_lines2? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
*????????LOOP?AT?lt_lines3?INTO?ls_line.
*??????????APPEND?ls_line?TO?lt_lines.
*????????ENDLOOP.
???????? IF? lt_lines? IS? NOT? INITIAL.
?????????? CONCATENATE? sy-mandt?wa_header-aufnr? INTO? v_tdname. "生產訂單行項目長文本的Name
?????????? CALL? FUNCTION? 'CREATE_TEXT'
???????????? EXPORTING
??????????????fid???????=? 'KOPF'
??????????????flanguage?=?sy-langu
??????????????fname?????=?v_tdname
??????????????fobject???=? 'AUFK'
???????????? TABLES
??????????????flines????=?lt_lines
???????????? EXCEPTIONS
??????????????no_init???=? 1
??????????????no_save???=? 2
?????????????? OTHERS???? =? 3.
?????????? IF? sy-subrc?=? 0.
???????????? ASSIGN? (v_program)? TO? <f1>.
???????????? READ? TABLE? <f1>? ASSIGNING? <f2>? INDEX? 1.
????????????<f2>-ltext?=? '1' .
??????????ENDIF.
????????ENDIF.
??????ENDIF.
??ENDCASE.
*--------------------------->增強1結束
ENDMETHOD.???????????????????? "if_ex_workorder_update~before_update
**&---------------------------------------------------------------------*
**&??????Form??frm_set_tdname
**&---------------------------------------------------------------------*
**???????text
**----------------------------------------------------------------------*
**??????-->P_TDNAME???text
**??????-->P_TDLINES??text
**??????-->OF?????????text
**??????-->TLINE??????text
**----------------------------------------------------------------------*
*FORM?frm_set_tdname?USING?p_tdname?TYPE?string
*?????????????????????CHANGING?p_tdlines?TYPE?table?of?tline.
*
*
*??CLEAR:?ls_tline1.
*
**??ls_tline1-TDFORMAT?=?'*'.
*
*??ls_tline1-tdline?=?p_tdname.
*
*??INSERT?ls_tline1?INTO?p_tdlines?INDEX?1.
*
*ENDFORM.????????????????????"frm_set_tdname
*---------------------->增強1?開始
*??"當生產訂單類型為PP01時,如果該生產訂單有參考相關的銷售訂單,
*??"那么在此生產訂單存盤時,就需要判斷該生產訂單是否已經維護了相關的長文本數據,如果沒有長文本數據,就需要查看
*??"所對應的銷售訂單行項目上是否有長文本數據,如果有則將銷售訂單行項目的長文本帶到該生產訂單長文本中。
*??"反之,如果此生產訂單已經維護有相關的長文本數據,則不需要再去考慮銷售訂單行項目中的長文本
??FIELD-SYMBOLS:?<f1>? TYPE? cobai_t_header,
?????????????????<f2>? TYPE? LINE? OF? cobai_t_header.
?? DATA? v_program(50)? TYPE? c? VALUE? '(SAPLCOBT)CAUFV_BT[]' .
??DATA:?wa_header? TYPE? LINE? OF? cobai_t_header,
????????v_flag.
??DATA:?v_tdname?? TYPE? thead-tdname,
????????lt_lines?? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines0? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines1? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines2? TYPE? STANDARD? TABLE? OF? tline,
????????lt_lines3? TYPE? STANDARD? TABLE? OF? tline,
????????ls_line??? TYPE? tline,
????????ls_line1?? TYPE? tline.
??CLEAR:?v_tdname,?lt_lines0,?lt_lines1,?lt_lines2,?lt_lines3,
?????????lt_lines,?ls_line,?ls_line1.
?? CASE? sy-tcode.
???? WHEN? 'CO40'? OR? 'CO08'? OR? 'CO01'? OR? 'CO41' .
?????? READ? TABLE? it_header? INTO? wa_header? INDEX? 1.
?????? "AUART訂單類型、LTEXT長文本標識、KDAUF_AUFK參考銷售訂單號、KDPOS_AUFK參考銷售訂單行項目號
?????? IF? wa_header-auart? EQ? 'PP01'? AND? wa_header-ltext? EQ? space? AND? wa_header-kdauf_aufk? IS? NOT? INITIAL
???????? AND? wa_header-kdpos_aufk? IS? NOT? INITIAL.
???????? CONCATENATE? wa_header-kdauf_aufk?wa_header-kdpos_aufk? INTO? v_tdname.?? "銷售訂單行項目長文本的Name
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'Z002'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBP'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines0
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
????????v_tdname?=?wa_header-kdauf_aufk.
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'ZV06'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBK'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines1
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
???????? CONCATENATE? wa_header-kdauf_aufk?wa_header-kdpos_aufk? INTO? v_tdname.?? "銷售訂單行項目長文本的Name
???????? "讀取參考的銷售訂單行項目長文本
???????? CALL? FUNCTION? 'READ_TEXT'
?????????? EXPORTING
???????????? id?????????????????????? =? 'Z001'
???????????? language???????????????? =?sy-langu
????????????name????????????????????=?v_tdname
????????????object??????????????????=? 'VBBP'
?????????? TABLES
???????????? lines??????????????????? =?lt_lines2
?????????? EXCEPTIONS
???????????? id?????????????????????? =? 1
???????????? language???????????????? =? 2
????????????name????????????????????=? 3
????????????not_found???????????????=? 4
????????????object??????????????????=? 5
????????????reference_check?????????=? 6
????????????wrong_access_to_archive?=? 7
???????????? OTHERS?????????????????? =? 8.
*????????CONCATENATE?wa_header-kdauf_aufk?wa_header-kdpos_aufk?INTO?v_tdname.??"銷售訂單行項目長文本的Name
*????????"讀取參考的銷售訂單行項目長文本
*????????CALL?FUNCTION?'READ_TEXT'
*??????????EXPORTING
*????????????id??????????????????????=?'Z002'
*????????????language????????????????=?sy-langu
*????????????name????????????????????=?v_tdname
*????????????object??????????????????=?'VBBP'
*??????????TABLES
*????????????lines???????????????????=?lt_lines3
*??????????EXCEPTIONS
*????????????id??????????????????????=?1
*????????????language????????????????=?2
*????????????name????????????????????=?3
*????????????not_found???????????????=?4
*????????????object??????????????????=?5
*????????????reference_check?????????=?6
*????????????wrong_access_to_archive?=?7
*????????????OTHERS??????????????????=?8.
????????ls_line1-tdline?=? '行項目備注:' .
???????? INSERT? ls_line1? INTO? lt_lines0? INDEX? 1.
????????ls_line1-tdline?=? '此單特殊要求:' .
???????? INSERT? ls_line1? INTO? lt_lines1? INDEX? 1.
????????ls_line1-tdline?=? '開模信息:' .
???????? INSERT? ls_line1? INTO? lt_lines2? INDEX? 1.
*
*????????ls_line1-tdline?=?'行項目備注:'.
*????????INSERT?ls_line1?INTO?lt_lines3?INDEX?1.
???????? LOOP? AT? lt_lines0? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
???????? LOOP? AT? lt_lines1? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
???????? LOOP? AT? lt_lines2? INTO? ls_line.
?????????? APPEND? ls_line? TO? lt_lines.
????????ENDLOOP.
*????????LOOP?AT?lt_lines3?INTO?ls_line.
*??????????APPEND?ls_line?TO?lt_lines.
*????????ENDLOOP.
???????? IF? lt_lines? IS? NOT? INITIAL.
?????????? CONCATENATE? sy-mandt?wa_header-aufnr? INTO? v_tdname. "生產訂單行項目長文本的Name
?????????? CALL? FUNCTION? 'CREATE_TEXT'
???????????? EXPORTING
??????????????fid???????=? 'KOPF'
??????????????flanguage?=?sy-langu
??????????????fname?????=?v_tdname
??????????????fobject???=? 'AUFK'
???????????? TABLES
??????????????flines????=?lt_lines
???????????? EXCEPTIONS
??????????????no_init???=? 1
??????????????no_save???=? 2
?????????????? OTHERS???? =? 3.
?????????? IF? sy-subrc?=? 0.
???????????? ASSIGN? (v_program)? TO? <f1>.
???????????? READ? TABLE? <f1>? ASSIGNING? <f2>? INDEX? 1.
????????????<f2>-ltext?=? '1' .
??????????ENDIF.
????????ENDIF.
??????ENDIF.
??ENDCASE.
*--------------------------->增強1結束
ENDMETHOD.???????????????????? "if_ex_workorder_update~before_update
**&---------------------------------------------------------------------*
**&??????Form??frm_set_tdname
**&---------------------------------------------------------------------*
**???????text
**----------------------------------------------------------------------*
**??????-->P_TDNAME???text
**??????-->P_TDLINES??text
**??????-->OF?????????text
**??????-->TLINE??????text
**----------------------------------------------------------------------*
*FORM?frm_set_tdname?USING?p_tdname?TYPE?string
*?????????????????????CHANGING?p_tdlines?TYPE?table?of?tline.
*
*
*??CLEAR:?ls_tline1.
*
**??ls_tline1-TDFORMAT?=?'*'.
*
*??ls_tline1-tdline?=?p_tdname.
*
*??INSERT?ls_tline1?INTO?p_tdlines?INDEX?1.
*
*ENDFORM.????????????????????"frm_set_tdname
總結
以上是生活随笔為你收集整理的PP生产订单的BADI增强 WORKORDER_UPDATE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 固定资产增值和减值操作
- 下一篇: 采购合同新增接口