效果(不同類型的生產訂單結算方式會不一樣):
①將生產訂單建立默認帶出的MAT類型結算規則的結算百分率改成0,
②新增G/L結算類型結算規則
代碼:
*&---------------------------------------------------------------------* *& Report ZPPRTEST *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ZPPRTEST. DATA: lt_cobrb_update LIKE TABLE OF cobrb, ls_cobrb_update LIKE LINE OF lt_cobrb_update, lt_cobrb_insert LIKE TABLE OF cobrb, ls_cobrb_insert LIKE LINE OF lt_cobrb_insert. SELECT * INTO TABLE lt_cobrb_update FROM cobrb WHERE objnr = 'OR000020040327' AND lfdnr = '001'. LOOP AT lt_cobrb_update INTO ls_cobrb_update. ls_cobrb_insert = ls_cobrb_update. "MAT結算規則的結算百分比 = 0 ls_cobrb_update-prozs = 0. MODIFY lt_cobrb_update FROM ls_cobrb_update. ENDLOOP. "新增的結算規則 ls_cobrb_insert-lfdnr = '002'. "順序號碼 ls_cobrb_insert-prozs = 100. "百分比 ls_cobrb_insert-dfreg = space. "預設規則 ls_cobrb_insert-avorg = 'KOAO'. "結算交易 ls_cobrb_insert-konty = 'SK'. "科目指派種類 ls_cobrb_insert-werks = space. "工廠 ls_cobrb_insert-gsber = 'NCIP'. "業務范圍 ls_cobrb_insert-hkont = '6188200007'. "總賬科目 ls_cobrb_insert-prctr = 'PC21'. "利潤中心 ls_cobrb_insert-kostl = 'DR0000'. "成本中心 ls_cobrb_insert-matnr = space. "物料 ls_cobrb_insert-rec_objnr1 = 'SK20006188200007NCIP'. "結算接收者物件號碼 ls_cobrb_insert-extnr = '002'. "分發規則號碼 APPEND ls_cobrb_insert TO lt_cobrb_insert. CALL FUNCTION 'K_SRULE_SAVE_UTASK' TABLES t_cobrb_insert = lt_cobrb_insert t_cobrb_update = lt_cobrb_update EXCEPTIONS SRULE_UTASK_ERROR = 1 OTHERS = 2. IF sy-subrc <> 0. WRITE '修改失敗'. ELSE. WRITE '修改成功'. ENDIF.