打印系统里所有不包含任何错误的order list

106 阅读1分钟

Created by Jerry Wang, last modified on May 29, 2015

执行report,如下输入说明要显示系统里所有类型为OPPT的前100个opportunity:
clipboard1
report会打印系统所有类型为OPPT的document个数和不包含错误的order个数,以及每个order的id:
clipboard2
从list里选择一个进行double check:确实没有error:
clipboard3

report source code:

REPORT ZORDER_LIST_WITHOUT_ERRORS.
PARAMETERS: protype TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPPT',
 
            num TYPE int4 OBLIGATORY default 100.
 
INCLUDE CRM_STATUS_CON.
 
 
data: lt_order TYPE STANDARD TABLE OF crmd_orderadm_h,
 
      lv_count TYPE int4 value 0.
 
 
SELECT * INTO TABLE lt_order FROM crmd_orderadm_h where process_type = 'OPPT'.
 
 
IF sy-subrc <> 0.
 
   WRITE: / 'invalid process type: '.
 
   RETURN.
 
ENDIF.
 
 
DATA(lv_total) = lines( lt_order ).
 
 
LOOP AT lt_order ASSIGNING FIELD-SYMBOL(<order>).
 
     CALL FUNCTION 'CRM_STATUS_CHECK'
 
        EXPORTING
 
          objnr             = <order>-guid
 
          status            = gc_status-error
 
        EXCEPTIONS
 
          object_not_found  = 1
 
          status_not_active = 2
 
          OTHERS            = 3.
 
     IF sy-subrc = 2.
 
        ADD 1 TO lv_count.
 
        IF lv_count <= num.
 
          WRITE: / 'order id: ' , <order>-object_id, ' : ', <order>-description.
 
        ENDIF.
 
     ENDIF.
 
ENDLOOP.
 
 
WRITE: / 'total order: ', lv_total.
 
WRITE: / 'order without error: ' , lv_count.