Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 5.05 KB | None | 0 0
  1. REPORT zprocess_ordertrigger_queue.
  2. TABLES: nast.
  3.  
  4. DATA: gv_returncode TYPE sysubrc,
  5.       ls_queue      TYPE zorderqueue,
  6.       cv_returncode TYPE sysubrc,
  7.       gv_end(1).
  8.  
  9.  
  10. DATA:lt_orderqueue      TYPE TABLE OF zorderqueue,
  11.      lt_aubel           TYPE TABLE OF vbrp,
  12.  
  13.      lv_time            TYPE time12,
  14.  
  15.      ls_orderqueue      TYPE zorderqueue,
  16.      ls_vbup            TYPE vbup,
  17.  
  18.      lv_task(10)        TYPE c,
  19.      ls_task            TYPE zorderqueue,
  20.      lv_tabix           TYPE i,
  21.  
  22.      lv_runtime         TYPE i,
  23.      lv_rtime           TYPE time12,
  24.  
  25.      lv_index           TYPE syst_tabix,
  26.  
  27.      lv_message_type    TYPE kschl,
  28.      lv_message_partner TYPE nast-parnr,
  29.      ls_comwa           TYPE vbco3,
  30.      lv_spras           TYPE na_spras,
  31.      lv_vbeln           TYPE vbeln_vf.
  32.  
  33. *SELECT SINGLE low FROM tvarvc INTO lv_time WHERE name = 'ZOrderTriggerQueueOffsetMin'.
  34.  
  35. SELECT * FROM zorderqueue INTO TABLE lt_orderqueue WHERE status NE 'X' ORDER BY PRIMARY KEY. " AND Time > lv_time.
  36.  
  37. IF sy-subrc = 0.
  38.   LOOP AT lt_orderqueue INTO ls_orderqueue.
  39.  
  40.     IF ls_orderqueue-vbeln <> lv_vbeln.
  41.  
  42.       IF nast IS INITIAL.
  43.         SELECT SINGLE spras FROM nast INTO lv_spras WHERE objky = ls_orderqueue-vbeln.
  44.       ELSE.
  45.         lv_spras = nast-spras.
  46.       ENDIF.
  47.       IF lv_spras IS INITIAL.
  48.         lv_spras = 'E'.
  49.       ENDIF.
  50.  
  51.  
  52.       DATA(lv_msg_v1) = CONV sy-msgv1( text-001 ).
  53.       DATA(lv_msg_v2) = CONV sy-msgv2( ls_orderqueue-vbeln ).
  54.       DATA(lv_msg_v3) = CONV sy-msgv2( ls_orderqueue-aubel ).
  55.  
  56.       PERFORM add_message_to_log USING 'I' lv_msg_v1 lv_msg_v2 lv_msg_v3 space.
  57.  
  58.       lv_task = ls_orderqueue-vbeln.
  59.  
  60.       ls_task = ls_orderqueue.
  61.       lv_message_type = 'ZOCN'.
  62.       lv_message_partner = 'RADIUSAN'.
  63.       gv_end = 0.
  64.       CALL FUNCTION 'Z_CREATE_MESSAGE'
  65.         STARTING NEW TASK ls_task
  66.         DESTINATION 'NONE'
  67.         PERFORMING f_cal ON END OF TASK
  68.         EXPORTING
  69.           iv_vbeln              = ls_orderqueue-vbeln
  70.           iv_message_type       = lv_message_type
  71.           iv_message_partner    = lv_message_partner
  72.           iv_spras              = lv_spras
  73.           iv_partner_function   = 'LS'
  74.         EXCEPTIONS
  75.           system_failure        = 1
  76.           communication_failure = 2
  77.           resource_failure      = 3.
  78.  
  79.       WAIT UNTIL gv_end = 1
  80.       UP TO 20 SECONDS.
  81.       IF gv_end = 1.
  82.         cv_returncode = gv_returncode.
  83.       ELSE.
  84. *   KM 21/02/2019: add logging
  85.         lv_msg_v1 = CONV sy-msgv1( text-002 ).
  86.         PERFORM add_message_to_log USING 'I' lv_msg_v1 space space space.
  87.         cv_returncode = 8.
  88.       ENDIF.
  89.  
  90.       lv_vbeln = ls_orderqueue-vbeln.
  91.     ENDIF.
  92.  
  93.   ENDLOOP.
  94. ENDIF.
  95.  
  96.  
  97. FORM add_message_to_log USING uv_msg_ty TYPE sy-msgty
  98.                              uv_msg_v1 TYPE sy-msgv1
  99.                              uv_msg_v2 TYPE sy-msgv2
  100.                              uv_msg_v3 TYPE sy-msgv3
  101.                              uv_msg_v4 TYPE sy-msgv4.
  102.  
  103.   CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
  104.     EXPORTING
  105.       msg_arbgb              = 'ZSD_SO_PRINT_CONF'
  106.       msg_nr                 = '001'
  107.       msg_ty                 = uv_msg_ty
  108.       msg_v1                 = uv_msg_v1
  109.       msg_v2                 = uv_msg_v2
  110.       msg_v3                 = uv_msg_v3
  111.       msg_v4                 = uv_msg_v4
  112.     EXCEPTIONS
  113.       message_type_not_valid = 1
  114.       no_sy_message          = 2
  115.       OTHERS                 = 3.
  116.   IF sy-subrc <> 0.
  117.     RETURN.
  118.   ENDIF.
  119.  
  120. ENDFORM.
  121.  
  122. FORM f_cal USING lv_task.
  123.  
  124.   DATA: lt_messages TYPE bapiret2_t,
  125.         lt_nast     TYPE TABLE OF nast,
  126.         ls_nast     TYPE nast,
  127.         lt_queue    TYPE TABLE OF zorderqueue. " KM 09/01/2019: add logging
  128.  
  129.   RECEIVE RESULTS FROM FUNCTION 'Z_CREATE_MESSAGE'
  130.            IMPORTING rv_subrc = gv_returncode
  131.                      et_messages = lt_messages
  132.            EXCEPTIONS
  133.            system_failure        = 1
  134.            communication_failure = 2
  135.            resource_failure      = 3.
  136.   IF NOT sy-subrc IS INITIAL.
  137.     gv_returncode = 8.
  138.  
  139. *--------#981361------
  140.   ELSEIF sy-subrc = 0.
  141.     SELECT * FROM zorderqueue INTO TABLE lt_queue WHERE vbeln = ls_task-vbeln. " AND aubel = ls_task-aubel.
  142.     IF sy-subrc = 0.
  143.       LOOP AT lt_queue INTO ls_queue.
  144.         CLEAR lt_nast.
  145.         SELECT * FROM nast INTO TABLE lt_nast WHERE objky = ls_queue-aubel AND kschl = 'ZOCN' AND kappl = 'V1'.
  146.         IF sy-subrc = 0.
  147.           DATA(lv_line) = lines( lt_nast ).
  148.           READ TABLE lt_nast INDEX lv_line INTO ls_nast.
  149.  
  150.           IF sy-subrc = 0 AND ls_nast-vstat = '1'.
  151.  
  152.             ls_queue-status = 'X'.
  153.  
  154.             MODIFY zorderqueue FROM ls_queue.
  155.           ENDIF.
  156.         ENDIF.
  157.       ENDLOOP.
  158.     ENDIF.
  159.   ENDIF.
  160. *----------------------
  161. * KM 09/01/2019: add logging
  162.   LOOP AT lt_messages ASSIGNING FIELD-SYMBOL(<lf_message>).
  163.  
  164.     <lf_message>-type = 'S'.
  165.     PERFORM add_message_to_log USING <lf_message>-type <lf_message>-message_v1 <lf_message>-message_v2 <lf_message>-message_v3 <lf_message>-message_v4.
  166.   ENDLOOP.
  167.  
  168.   gv_end = 1.
  169.  
  170. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement