abap 多线程运行demo
SAP 提供多种多线程的方法去优化程序的执行效率
1.分别执行多个job
2.Call function STARTING NEW TASK
3.直接使用SAP 提供的SPTA 框架函数:SPTA_PARA_PROCESS_START_2
本次,我们着重来介绍一下三种方法中函数的使用方法
获取空闲线程数:SPBT_INITIALIZE
*&---------------------------------------------------------------------*
*& Report ZDEMO_TEST_PARALLEL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT zdemo_test_parallel.
TYPE-POOLS:spta.
DATA: gs_head TYPE zsfi_doc_head.
DATA: gt_head TYPE STANDARD TABLE OF zsfi_doc_head.
DATA: gt_out TYPE STANDARD TABLE OF zsfi_doc_head_o.
DATA: gt_item TYPE STANDARD TABLE OF zsfi_doc_item.
DATA: gs_item TYPE zsfi_doc_item.
DATA: ls_head TYPE zsfi_doc_head.
DATA: lt_head TYPE STANDARD TABLE OF zsfi_doc_head.
DATA: lt_item TYPE STANDARD TABLE OF zsfi_doc_item.
DATA: ls_item TYPE zsfi_doc_item.
DATA: lv_int TYPE numc4.
DATA: gs_parallel TYPE zsfi_doc_head_run.
DATA: gt_parallel TYPE ztfi_doc_head_run_t.
DATA: gt_result TYPE ztfi_doc_head_run_t.DATA: gv_start TYPE char10.
DATA: gv_end TYPE char10.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS: p_group TYPE spta_rfcgr OBLIGATORY MEMORY ID spta_rfcgr DEFAULT 'parallel_generators'.
PARAMETERS: p_task LIKE sy-index DEFAULT '10'.
PARAMETERS: p_times TYPE numc4 OBLIGATORY DEFAULT '100'.
PARAMETERS: p_loop TYPE char01 RADIOBUTTON GROUP rd1 DEFAULT 'X'.
PARAMETERS: p_para TYPE char01 RADIOBUTTON GROUP rd1 .SELECTION-SCREEN END OF BLOCK b1.START-OF-SELECTION.lv_int = p_times.SELECT SINGLE *INTO CORRESPONDING FIELDS OF ls_headFROM ztfi_doc_headWHERE zsernr = 'BPM26020240606000003'.SELECT *INTO CORRESPONDING FIELDS OF TABLE lt_itemFROM ztfi_doc_itemWHERE zsernr = 'BPM26020240606000003'.CASE 'X'.WHEN p_loop.PERFORM frm_loop_process.WHEN p_para.PERFORM frm_parallel_process.WHEN OTHERS.ENDCASE.*&---------------------------------------------------------------------*
*& Form FRM_LOOP_PROCESS
*&--