Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.92 KB | None | 0 0
  1. FUNCTION z_o2ce211_s2_get_user_status.
  2. *"----------------------------------------------------------------------
  3. *"*"Локальный интерфейс:
  4. *"  IMPORTING
  5. *"     REFERENCE(IM_OBJNR) TYPE  OBJNR
  6. *"     REFERENCE(IM_AUART) TYPE  AUART OPTIONAL
  7. *"  EXPORTING
  8. *"     REFERENCE(EX_ESTAT) TYPE  J_ESTAT
  9. *"  EXCEPTIONS
  10. *"      ERROR_STSMA_NOT_FOUND
  11. *"      ERROR_ESTAT_NOT_FOUND
  12. *"----------------------------------------------------------------------
  13.   DATA:
  14.       l_auart TYPE auart,
  15.       l_stsma TYPE j_stsma,
  16.       l_objnr TYPE j_objnr,
  17.       ls_jstat TYPE jstat,
  18.       ls_tj30 TYPE tj30,
  19.       lt_tj30 TYPE TABLE OF tj30,
  20.       lt_jstat TYPE TABLE OF jstat.
  21.  
  22.   IF im_auart IS INITIAL.
  23.     SELECT SINGLE auart INTO l_auart FROM vbak WHERE objnr EQ im_objnr.
  24.     IF sy-subrc NE 0.
  25.       MESSAGE e004(zo2ce211) RAISING error_stsma_not_found.
  26.     ENDIF.
  27.   ELSE.
  28.     l_auart = im_auart.
  29.   ENDIF.
  30.   SELECT SINGLE stsma  INTO  l_stsma FROM tvak WHERE auart EQ l_auart.
  31.   IF sy-subrc EQ 0.
  32.     MESSAGE e004(zo2ce211) RAISING error_stsma_not_found.
  33.   ENDIF.
  34.   SELECT * INTO TABLE lt_tj30 FROM tj30 WHERE stsma EQ l_stsma.
  35.   IF sy-subrc NE 0.
  36.     MESSAGE e002(zo2ce211) WITH l_stsma RAISING error_estat_not_found.
  37.   ENDIF.
  38.   CALL FUNCTION 'STATUS_READ'
  39.     EXPORTING
  40.       objnr            = l_objnr
  41.       only_active      = 'X'
  42.     TABLES
  43.       status           = lt_jstat
  44.     EXCEPTIONS
  45.       object_not_found = 1
  46.       OTHERS           = 2.
  47.   IF sy-subrc <> 0.
  48.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  49.             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_estat_not_found.
  50.   ENDIF.
  51.   LOOP AT  lt_jstat INTO ls_jstat.
  52.     READ TABLE lt_tj30 INTO ls_tj30 WITH KEY estat = ls_jstat-stat.
  53.     IF sy-subrc EQ 0 AND ls_tj30-stonr IS NOT INITIAL.
  54.       ex_estat = ls_jstat-stat.
  55.       EXIT.
  56.     ENDIF.
  57.   ENDLOOP.
  58.   MESSAGE e003(zo2ce211) RAISING error_estat_not_found.
  59. ENDFUNCTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement