Advertisement
yaramohamed78

Untitled

Mar 15th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.67 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report ZDISPOSAL_REQ_INQ
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8. *-------------------- EJADA -------------------------------------------*
  9. * Author : <Mohamed sherif /Developer user ID>
  10. * Creation Date : <10-5-2015>
  11. * Transaction : <ZDREQ_INQ>
  12. * Technical design: <Assets disposal request inquiry>
  13. * Description : <Assets disposal request inquiry>
  14. *----------------------------------------------------------------------*
  15. * Modification Information
  16. *----------------------------------------------------------------------*
  17. * Date : <10-5-2015>
  18. * Author : <Mohamed sherif>
  19. * Change request : <IDSK900097>
  20. * Transport number: <Transport number>
  21. * Description : <first release>
  22. *----------------------------------------------------------------------*
  23.  
  24. REPORT ZDISPOSAL_REQ_INQ.
  25.  
  26. tables ZFI_DISPOSAL_REQ.
  27.  
  28. *============= Global CODES ========================
  29. DATA : INITIAL_ID type ZEJD_ID VALUE 4,
  30. INITIAL_CODE type ZEJD_CODE VALUE 'INIT'.
  31.  
  32. DATA : ERR_ID type ZEJD_ID VALUE 105,
  33. ERR_CODE type ZEJD_CODE VALUE 'ERR'.
  34.  
  35. DATA : REJ_ID type ZEJD_ID VALUE 106,
  36. REJ_CODE type ZEJD_CODE VALUE 'REJCT'.
  37.  
  38. DATA : RTRN_ID type ZEJD_ID VALUE 108,
  39. RTRN_CODE type ZEJD_CODE VALUE 'RTRN'.
  40.  
  41. *------------------------------------------------------
  42. DATA : RES_COUNT type i. " count result rows
  43. DATA : RES_COUNT_MSG type char30.
  44. DATA : RESET_IS_PRESSED TYPE ABAP_BOOL VALUE ABAP_FALSE.
  45. DATA : SINGLETONE_IS_CHECKED TYPE ABAP_BOOL VALUE ABAP_FALSE.
  46.  
  47. *============= Global variables ========================
  48. *DATA : WA_SC_REQ LIKE ZFI_DISPOSAL_REQ . " for screen fields
  49. DATA : sc_service_code type ZEJD_CODE,
  50. sc_status_code type ZEJD_CODE,
  51. sc_service_desc type ZEJD_DESC_S,
  52. sc_status_desc type ZEJD_DESC_S.
  53.  
  54. DATA CURSORFIELD(50). "focused field
  55.  
  56. DATA HAS_ERROR type ABAP_BOOL.
  57. *------------------- Disposal Requests data ------------------------
  58.  
  59. DATA : IT_REQ type TABLE OF ZFI_DISP_REQ_STRUCT, "DISPOSAL REQUEST internal table for alv
  60. WA_REQ LIKE LINE OF IT_REQ. "
  61.  
  62. DATA : IT_FCAT_REQ TYPE lvc_t_fcat, "field catalog
  63. WA_FCAT_REQ TYPE lvc_s_fcat.
  64.  
  65. DATA : C_REQ_CONTAINER TYPE REF TO cl_gui_custom_container , "ALV container
  66. R_REQ_GRID TYPE REF TO cl_gui_alv_grid. "ALV GRID
  67.  
  68. DATA : SELECTED_DOCS TYPE TABLE OF LVC_S_ROW.
  69. *=========== End Global variables =======================
  70.  
  71.  
  72. *----------------------------------------------------------------------*
  73. * CLASS event_class DEFINITION
  74. *----------------------------------------------------------------------*
  75. CLASS event_class DEFINITION.
  76. PUBLIC SECTION.
  77. METHODS:
  78. handle_double_click
  79. FOR EVENT double_click OF cl_gui_alv_grid
  80. IMPORTING e_row,
  81. handle_hotspot_click
  82. FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING e_row_id.
  83. ENDCLASS. "event_class DEFINITION
  84.  
  85.  
  86. *----------------------------------------------------------------------*
  87. * CLASS event_class IMPLEMENTATION
  88. *----------------------------------------------------------------------*
  89. CLASS event_class IMPLEMENTATION.
  90. METHOD handle_hotspot_click.
  91. CLEAR WA_REQ.
  92.  
  93. *& Reading the selected data into the variable
  94. READ TABLE IT_REQ INDEX e_row_id-index INTO WA_REQ.
  95.  
  96. *==================== handle event here ========================================
  97. * MESSAGE 'HOT spot' && WA_REQ-ZZSR_NUMBER type 'I'.
  98. ENDMETHOD. "handle_hotspot_click
  99.  
  100. METHOD HANDLE_DOUBLE_CLICK.
  101. CLEAR WA_REQ.
  102. *& Reading the selected data into the variable
  103. READ TABLE IT_REQ INDEX E_ROW-INDEX INTO WA_REQ.
  104. IF WA_REQ IS INITIAL.
  105. RETURN.
  106. ENDIF.
  107.  
  108. CALL METHOD R_REQ_GRID->GET_SELECTED_ROWS
  109. IMPORTING
  110. et_index_rows = SELECTED_DOCS.
  111. "UPDATE CURRENT STATE
  112. DATA : S1 TYPE ZEJD_ID,
  113. S2 TYPE ZEJD_ID,
  114. S1_DESC TYPE ZEJD_DESC_S,
  115. S2_DESC TYPE ZEJD_DESC_S.
  116.  
  117. S1 = WA_REQ-ZZRQSTTS.
  118. S1_DESC = WA_REQ-ZZSTATUS_DESC.
  119.  
  120. SELECT SINGLE ZZRQSTTS from ZFI_DISPOSAL_REQ INTO WA_REQ-ZZRQSTTS WHERE ZZID = WA_REQ-ZZID.
  121. S2 = WA_REQ-ZZRQSTTS.
  122. S2_DESC = WA_REQ-ZZSTATUS_DESC.
  123.  
  124. " if state was changed update ALV Table
  125. IF S1 <> S2.
  126. MESSAGE 'Request Status Was Changed By WorkFlow' type 'I'.
  127. PERFORM set_ids.
  128. IF HAS_ERROR = abap_false.
  129. PERFORM search.
  130. else.
  131. CLEAR IT_REQ. "empty alv table
  132. ENDIF.
  133. perform refresh.
  134. " Set selected row again
  135. CALL METHOD R_REQ_GRID->SET_SELECTED_ROWS
  136. EXPORTING
  137. It_index_rows = SELECTED_DOCS.
  138. ENDIF.
  139.  
  140.  
  141. *==================== handle event here =================================
  142. DATA : IS_OPEN type ABAP_BOOL value ABAP_FALSE.
  143. PERFORM CHECK_T_CODE
  144. USING
  145. 'ZDREQ'
  146. IS_OPEN.
  147. IF IS_OPEN = ABAP_FALSE .
  148.  
  149. set parameter id 'SELECTED_REQ_ID' field WA_REQ-ZZID ." SEND ID OF SELECTED REQUEST
  150.  
  151. IF WA_REQ-ZZRQSTTS = INITIAL_ID . "INITIAL STAT -> UPDATE MODE FOR MASTER AND DETAILS IF WA_REQ-ZZRQSTTS = INITIAL_ID OR WA_REQ-ZZRQSTTS = ERR_ID OR WA_REQ-ZZRQSTTS = REJ_ID.
  152. set parameter id 'OP_SC1' FIELD 'U'." update operation
  153. set parameter id 'OP_SC2' FIELD 'U'." update operation
  154. set parameter id 'OP_SC3' FIELD 'U'." update operation
  155. set parameter id 'OP_SC4' FIELD 'U'." update operation
  156. set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen
  157.  
  158. ELSEIF WA_REQ-ZZRQSTTS = RTRN_ID OR WA_REQ-ZZRQSTTS = ERR_ID OR WA_REQ-ZZRQSTTS = REJ_ID. "INITIAL STAT -> UPDATE MODE FOR MASTER AND DETAILS
  159. set parameter id 'OP_SC1' FIELD 'S'." DISPLAY operation
  160. set parameter id 'OP_SC2' FIELD 'S'." DISPLAY operation
  161. set parameter id 'OP_SC3' FIELD 'U'." UPDATE operation
  162. set parameter id 'OP_SC4' FIELD 'S'." DISPLAY operation
  163. set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen button are opened
  164.  
  165. ELSE. "DISPLAY FOR MASTER AND UPDATE FOR DETAILS
  166. set parameter id 'OP_SC1' FIELD 'S'." DISPLAY operation
  167. set parameter id 'OP_SC2' FIELD 'S'." DISPLAY operation
  168. set parameter id 'OP_SC3' FIELD 'S'." DISPLAY operation
  169. set parameter id 'OP_SC4' FIELD 'S'." DISPLAY operation
  170. set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen
  171. ENDIF.
  172.  
  173. * LEAVE TO TRANSACTION 'ZDREQ'.
  174. PERFORM CALL_WEB_DYNPROW ">>>>> 20/7/2015
  175. USING
  176. WA_REQ-ZZID.
  177. CALL TRANSACTION 'ZDREQ'.
  178. *** " refersh again after return 9.6.2015
  179. ***
  180. *** PERFORM set_ids.
  181. *** IF HAS_ERROR = abap_false.
  182. *** PERFORM search.
  183. *** else.
  184. *** CLEAR IT_REQ. "empty alv table
  185. *** ENDIF.
  186. *** perform refresh.
  187. *** " Set selected row again
  188. *** CALL METHOD R_REQ_GRID->SET_SELECTED_ROWS
  189. *** EXPORTING
  190. *** It_index_rows = SELECTED_DOCS.
  191.  
  192. "28/6/2015 >>>>>>>>>>>>>>>>
  193. CLEAR IT_REQ. "empty alv table
  194. CLEAR RES_COUNT_MSG.
  195. PERFORM refresh.
  196. cl_gui_cfw=>set_new_ok_code( new_code = 'REFR' ).
  197. "28/6/2015 <<<<<<<<<<<<<<<<
  198.  
  199.  
  200. * MESSAGE 'double click->' && WA_REQ-ZZID type 'I'.
  201. ENDIF.
  202.  
  203. ENDMETHOD. "handle_hotspot_click
  204.  
  205.  
  206. ENDCLASS. "event_class IMPLEMENTATION
  207.  
  208.  
  209.  
  210. INCLUDE zdisposal_pbo_screen1.
  211.  
  212. INCLUDE zdisposal_pai_screen1.
  213.  
  214. *====================== subroutines =====================================
  215.  
  216. FORM fill_field_cat.
  217. WA_FCAT_REQ-col_pos = '1'.
  218. WA_FCAT_REQ-fieldname = 'ZZSR_NUMBER'.
  219. WA_FCAT_REQ-coltext = 'Serial Number'.
  220. WA_FCAT_REQ-outputlen = 19 .
  221. WA_FCAT_REQ-just = 'L'. "23-6-15
  222. WA_FCAT_REQ-DATATYPE = 'NUMC'.
  223. * WA_FCAT_REQ-hotspot = 'X'.
  224.  
  225. * WA_FCAT_REQ-COL_OPT = 'X'.
  226. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  227. CLEAR WA_FCAT_REQ.
  228.  
  229. WA_FCAT_REQ-col_pos = '2'.
  230. WA_FCAT_REQ-fieldname = 'ZZCOMPANY_CODE'.
  231. WA_FCAT_REQ-coltext = 'Company Code'.
  232. * WA_FCAT_REQ-hotspot = 'X'.
  233. * WA_FCAT_REQ-COL_OPT = 'X'.
  234. WA_FCAT_REQ-DATATYPE = 'NUMC'.
  235. WA_FCAT_REQ-outputlen = 16 .
  236. WA_FCAT_REQ-just = 'L'. "23-6-15
  237. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  238. CLEAR WA_FCAT_REQ.
  239.  
  240. WA_FCAT_REQ-col_pos = '3'.
  241. WA_FCAT_REQ-fieldname = 'ZZCOST_CENTER'.
  242. WA_FCAT_REQ-coltext = 'Cost Center'.
  243. * WA_FCAT_REQ-hotspot = 'X'.
  244. * WA_FCAT_REQ-COL_OPT = 'X'.
  245. WA_FCAT_REQ-DATATYPE = 'NUMC'.
  246. WA_FCAT_REQ-outputlen = 14 .
  247. WA_FCAT_REQ-just = 'L'. "23-6-15
  248. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  249. CLEAR WA_FCAT_REQ.
  250.  
  251. WA_FCAT_REQ-col_pos = '4'.
  252. WA_FCAT_REQ-fieldname = 'ZZDATE'.
  253. WA_FCAT_REQ-coltext = 'Date'.
  254. * WA_FCAT_REQ-hotspot = 'X'.
  255. * WA_FCAT_REQ-COL_OPT = 'X'.
  256. WA_FCAT_REQ-outputlen = 14 .
  257. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  258. CLEAR WA_FCAT_REQ.
  259.  
  260. * WA_FCAT_REQ-col_pos = '5'.
  261. * WA_FCAT_REQ-fieldname = 'ZZSERVICE_TYPE'.
  262. * WA_FCAT_REQ-coltext = 'Service ID'.
  263. * WA_FCAT_REQ-hotspot = 'X'.
  264. * WA_FCAT_REQ-COL_OPT = 'X'.
  265. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  266. * CLEAR WA_FCAT_REQ.
  267.  
  268. WA_FCAT_REQ-col_pos = '6'.
  269. WA_FCAT_REQ-fieldname = 'ZZSERVICE_DESC'.
  270. WA_FCAT_REQ-coltext = 'Service Type'.
  271. * WA_FCAT_REQ-hotspot = 'X'.
  272. * WA_FCAT_REQ-COL_OPT = 'X'.
  273. WA_FCAT_REQ-outputlen = 30 .
  274. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  275. CLEAR WA_FCAT_REQ.
  276.  
  277.  
  278. * WA_FCAT_REQ-col_pos = '7'.
  279. * WA_FCAT_REQ-fieldname = 'ZZRQSTTS'.
  280. * WA_FCAT_REQ-coltext = 'Status ID'.
  281. * WA_FCAT_REQ-hotspot = 'X'.
  282. * WA_FCAT_REQ-COL_OPT = 'X'.
  283. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  284. * CLEAR WA_FCAT_REQ.
  285.  
  286. WA_FCAT_REQ-col_pos = '8'.
  287. WA_FCAT_REQ-fieldname = 'ZZSTATUS_DESC'.
  288. WA_FCAT_REQ-coltext = 'Request Status'.
  289. * WA_FCAT_REQ-hotspot = 'X'.
  290. * WA_FCAT_REQ-COL_OPT = 'X'.
  291. WA_FCAT_REQ-outputlen = 35 .
  292. APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  293. CLEAR WA_FCAT_REQ.
  294.  
  295. "Removed 23-6-2015 Omar El Halawany
  296.  
  297. * WA_FCAT_REQ-col_pos = '9'.
  298. * WA_FCAT_REQ-fieldname = 'CREA_USER'.
  299. * WA_FCAT_REQ-coltext = 'CREATE USER'.
  300. ** WA_FCAT_REQ-hotspot = 'X'.
  301. ** WA_FCAT_REQ-COL_OPT = 'X'.
  302. * WA_FCAT_REQ-outputlen = 12 .
  303. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  304. * CLEAR WA_FCAT_REQ.
  305. *
  306. *
  307. * WA_FCAT_REQ-col_pos = '10'.
  308. * WA_FCAT_REQ-fieldname = 'CREA_TIME'.
  309. * WA_FCAT_REQ-coltext = 'CREATE TIME'.
  310. ** WA_FCAT_REQ-hotspot = 'X'.
  311. ** WA_FCAT_REQ-COL_OPT = 'X'.
  312. * WA_FCAT_REQ-outputlen = 18 .
  313. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  314. * CLEAR WA_FCAT_REQ.
  315. *
  316. * WA_FCAT_REQ-col_pos = '11'.
  317. * WA_FCAT_REQ-fieldname = 'CHNG_USER'.
  318. * WA_FCAT_REQ-coltext = 'CHANGE USER'.
  319. ** WA_FCAT_REQ-hotspot = 'X'.
  320. ** WA_FCAT_REQ-COL_OPT = 'X'.
  321. * WA_FCAT_REQ-outputlen = 12 .
  322. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  323. * CLEAR WA_FCAT_REQ.
  324. *
  325. * WA_FCAT_REQ-col_pos = '12'.
  326. * WA_FCAT_REQ-fieldname = 'CHNG_TIME'.
  327. * WA_FCAT_REQ-coltext = 'CHANGE TIME'.
  328. ** WA_FCAT_REQ-hotspot = 'X'.
  329. ** WA_FCAT_REQ-COL_OPT = 'X'.
  330. * WA_FCAT_REQ-outputlen = 18.
  331. * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
  332. * CLEAR WA_FCAT_REQ.
  333.  
  334.  
  335. ENDFORM.
  336.  
  337.  
  338. FORM refresh.
  339. CALL METHOD R_REQ_GRID->refresh_table_display
  340. * EXPORTING
  341. * is_stable = i_stable.
  342. * I_SOFT_REFRESH =
  343. * EXCEPTIONS
  344. * FINISHED = 1
  345. * others = 2
  346. .
  347. ENDFORM.
  348.  
  349.  
  350. FORM reset .
  351. CLEAR IT_REQ.
  352. CLEAR : ZFI_DISPOSAL_REQ-ZZCOST_CENTER,
  353. ZFI_DISPOSAL_REQ-ZZSR_NUMBER,
  354. ZFI_DISPOSAL_REQ-ZZDATE,
  355. ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE,
  356. ZFI_DISPOSAL_REQ-ZZRQSTTS,
  357. SC_SERVICE_CODE,
  358. SC_SERVICE_DESC,
  359. SC_STATUS_CODE,
  360. SC_STATUS_DESC. "ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
  361.  
  362. ENDFORM.
  363.  
  364.  
  365. FORM search.
  366.  
  367. DATA :R_ZZCOMPANY_CODE TYPE TABLE OF SELOPT WITH HEADER LINE,
  368. R_ZZCOST_CENTER TYPE TABLE OF SELOPT WITH HEADER LINE,
  369. R_ZZSR_NUMBER TYPE TABLE OF SELOPT WITH HEADER LINE,
  370. R_ZZDATE TYPE TABLE OF SELOPT WITH HEADER LINE,
  371. R_ZZSERVICE_TYPE TYPE TABLE OF SELOPT WITH HEADER LINE,
  372. R_ZZRQSTTS TYPE TABLE OF SELOPT WITH HEADER LINE.
  373.  
  374. PERFORM ADD_ZEROS_REQ.
  375.  
  376. IF NOT ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE IS INITIAL .
  377. R_ZZCOMPANY_CODE-SIGN = 'I'.
  378. R_ZZCOMPANY_CODE-OPTION = 'EQ'.
  379. R_ZZCOMPANY_CODE-LOW = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
  380. APPEND R_ZZCOMPANY_CODE.
  381. CLEAR R_ZZCOMPANY_CODE.
  382. ENDIF.
  383.  
  384.  
  385. IF NOT ZFI_DISPOSAL_REQ-ZZCOST_CENTER IS INITIAL .
  386. R_ZZCOST_CENTER-SIGN = 'I'.
  387. R_ZZCOST_CENTER-OPTION = 'EQ'.
  388. R_ZZCOST_CENTER-LOW = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
  389. APPEND R_ZZCOST_CENTER.
  390. CLEAR R_ZZCOST_CENTER.
  391. ENDIF.
  392.  
  393. IF NOT ZFI_DISPOSAL_REQ-ZZSR_NUMBER IS INITIAL .
  394. R_ZZSR_NUMBER-SIGN = 'I'.
  395. R_ZZSR_NUMBER-OPTION = 'EQ'.
  396. R_ZZSR_NUMBER-LOW = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
  397. APPEND R_ZZSR_NUMBER.
  398. CLEAR R_ZZSR_NUMBER.
  399. ENDIF.
  400.  
  401. IF NOT ZFI_DISPOSAL_REQ-ZZDATE IS INITIAL .
  402. R_ZZDATE-SIGN = 'I'.
  403. R_ZZDATE-OPTION = 'EQ'.
  404. R_ZZDATE-LOW = ZFI_DISPOSAL_REQ-ZZDATE.
  405. APPEND R_ZZDATE.
  406. CLEAR R_ZZDATE.
  407. ENDIF.
  408.  
  409. IF NOT ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE IS INITIAL .
  410. R_ZZSERVICE_TYPE-SIGN = 'I'.
  411. R_ZZSERVICE_TYPE-OPTION = 'EQ'.
  412. R_ZZSERVICE_TYPE-LOW = ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE.
  413. APPEND R_ZZSERVICE_TYPE.
  414. CLEAR R_ZZSERVICE_TYPE.
  415. ENDIF.
  416.  
  417. IF NOT ZFI_DISPOSAL_REQ-ZZRQSTTS IS INITIAL .
  418. R_ZZRQSTTS-SIGN = 'I'.
  419. R_ZZRQSTTS-OPTION = 'EQ'.
  420. R_ZZRQSTTS-LOW = ZFI_DISPOSAL_REQ-ZZRQSTTS.
  421. APPEND R_ZZRQSTTS.
  422. CLEAR R_ZZRQSTTS.
  423. ENDIF.
  424.  
  425. CALL FUNCTION 'ZFI_DISPOSAL_REQ_INQUERY'
  426. TABLES
  427. REQ = IT_REQ
  428. ZZCOMPANY_CODE = R_ZZCOMPANY_CODE[]
  429. ZZCOST_CENTER = R_ZZCOST_CENTER[]
  430. ZZSR_NUMBER = R_ZZSR_NUMBER[]
  431. ZZDATE = R_ZZDATE[]
  432. ZZSERVICE_TYPE = R_ZZSERVICE_TYPE[]
  433. ZZRQSTTS = R_ZZRQSTTS[]
  434. .
  435.  
  436. DESCRIBE TABLE IT_REQ LINES RES_COUNT .
  437. IF RES_COUNT = 0.
  438. RES_COUNT_MSG = ' NO DATA FOUND'.
  439. MESSAGE 'No Data Found ' TYPE 'S'.
  440. else.
  441. RES_COUNT_MSG = 'Total Results : '&& RES_COUNT .
  442. ENDIF.
  443.  
  444. ENDFORM.
  445.  
  446.  
  447. FORM ADD_ZEROS_REQ.
  448. "compony code
  449. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  450. EXPORTING
  451. INPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
  452. IMPORTING
  453. OUTPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
  454.  
  455. "cost center
  456. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  457. EXPORTING
  458. INPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER
  459. IMPORTING
  460. OUTPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
  461.  
  462. "serial number
  463. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  464. EXPORTING
  465. INPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER
  466. IMPORTING
  467. OUTPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
  468.  
  469. ENDFORM.
  470.  
  471. FORM REMOVE_ZEROS_REQ."ADD AT THE END OF PBO
  472.  
  473. "compony code
  474. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  475. EXPORTING
  476. INPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
  477. IMPORTING
  478. OUTPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
  479.  
  480. "cost center
  481. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  482. EXPORTING
  483. INPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER
  484. IMPORTING
  485. OUTPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
  486.  
  487. "serial number
  488. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  489. EXPORTING
  490. INPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER
  491. IMPORTING
  492. OUTPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
  493.  
  494. ENDFORM.
  495.  
  496. FORM set_ids.
  497. HAS_ERROR = ABAP_FALSE.
  498. *** "28/6/2015 >>>>>>>>>>>>>>
  499. *** CLEAR RES_COUNT_MSG.
  500. *** "28/6/2015 <<<<<<<<<<<<<
  501.  
  502. PERFORM ADD_ZEROS_REQ.
  503.  
  504. DATA : wa_ccd type CSKS, " for cost center check
  505. wa_serv type ZFI_LOOKUP,
  506. wa_stat type ZFI_LOOKUP.
  507.  
  508.  
  509. " check Cost center
  510. select SINGLE * from CSKS into WA_CCD where KOSTL = ZFI_DISPOSAL_REQ-ZZCOST_CENTER and BUKRS = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE. "ZZTYPE = '4' service type
  511. IF sy-SUBRC = 0.
  512. "DO no THING :D
  513. else.
  514. IF ZFI_DISPOSAL_REQ-ZZCOST_CENTER is NOT INITIAL.
  515. HAS_ERROR = ABAP_TRUE.
  516. message i003(zfi_Disposal_req_inq).
  517. ENDIF.
  518. ENDIF.
  519.  
  520.  
  521. " check service type
  522. select SINGLE * from ZFI_LOOKUP into WA_SERV where ZZTYPE = '4' and ZZCODE = SC_SERVICE_CODE and ZZISDEL = 'N'. "ZZTYPE = '4' service type
  523. IF sy-SUBRC = 0.
  524. ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE = wa_serv-ZZLKUPID.
  525. SC_SERVICE_DESC = wa_serv-ZZDESC.
  526. else.
  527. * clear SC_SERVICE_CODE.
  528. clear ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE.
  529. clear SC_SERVICE_DESC.
  530. IF SC_SERVICE_CODE is NOT INITIAL.
  531. HAS_ERROR = ABAP_TRUE.
  532. CURSORFIELD = 'SC_SERVICE_CODE'.
  533. SET CURSOR FIELD CURSORFIELD.
  534. message i001(zfi_Disposal_req_inq).
  535. ENDIF.
  536. ENDIF.
  537.  
  538. " check request status
  539. select SINGLE * from ZFI_LOOKUP into WA_STAT where ZZTYPE = '1' and ZZCODE = SC_STATUS_CODE and ZZISDEL = 'N'."ZZTYPE = '1' status
  540. IF sy-SUBRC = 0.
  541. ZFI_DISPOSAL_REQ-ZZRQSTTS = WA_STAT-ZZLKUPID.
  542. SC_STATUS_DESC = WA_STAT-ZZDESC.
  543. else.
  544. * CLEAR SC_STATUS_CODE.
  545. clear ZFI_DISPOSAL_REQ-ZZRQSTTS.
  546. clear SC_STATUS_DESC.
  547. IF SC_STATUS_CODE is NOT INITIAL.
  548. HAS_ERROR = ABAP_TRUE.
  549. CURSORFIELD = 'SC_STATUS_CODE'.
  550. SET CURSOR FIELD CURSORFIELD.
  551. message i002(zfi_Disposal_req_inq).
  552. ENDIF.
  553. ENDIF.
  554. ENDFORM.
  555.  
  556. INCLUDE zdisposal_req_inq_hide_fields.
  557.  
  558. INCLUDE zreq_inq_service_type_sh.
  559.  
  560. INCLUDE zreq_inq_status_sh.
  561.  
  562.  
  563.  
  564. FORM ENFORCE_SINGLE_TONE.
  565. SINGLETONE_IS_CHECKED = ABAP_TRUE.
  566. DATA: SESSION_LIST TYPE SSI_SESSION_LIST,
  567. WA_SESSION_LIST TYPE SSI_SESSION_INFO,
  568. SERVER_INFO TYPE REF TO CL_SERVER_INFO.
  569.  
  570. DATA CUR_CD TYPE SSI_APPLICATION.
  571.  
  572. CUR_CD = SY-TCODE.
  573. TRY.
  574. CREATE OBJECT SERVER_INFO.
  575. SESSION_LIST = SERVER_INFO->get_session_list( )."( tenant = sy-mandt with_application_info = '1' )
  576.  
  577. " loop at T-codes for specific 'user-name' and 'client-name'
  578. LOOP AT SESSION_LIST INTO WA_SESSION_LIST WHERE USER_NAME = SY-UNAME AND TENANT = SY-MANDT.
  579.  
  580. " current oppened T-codes
  581. DATA : TM type SSI_APPLICATION. " temp variable
  582. TM = WA_SESSION_LIST-APPLICATION.
  583. CONDENSE TM NO-GAPS. " remove gaps and spaces from string
  584.  
  585. IF TM = CUR_CD .
  586. Message 'You Already Opened This T-code Before' TYPE 'I'.
  587. LEAVE PROGRAM.
  588. RETURN.
  589. ENDIF.
  590. ENDLOOP.
  591.  
  592. CATCH CX_SSI_NO_AUTH.
  593. MESSAGE 'Unable To Check Authorization' Type 'I'.
  594. ENDTRY.
  595.  
  596. SORT SESSION_LIST BY tenant user_name.
  597. ENDFORM.
  598.  
  599.  
  600. FORM CHECK_T_CODE USING T_CD IS_OPENED TYPE ABAP_BOOL. " T-code
  601.  
  602. DATA: SESSION_LIST TYPE SSI_SESSION_LIST,
  603. WA_SESSION_LIST TYPE SSI_SESSION_INFO,
  604. SERVER_INFO TYPE REF TO CL_SERVER_INFO,
  605. COUNT TYPE I value 0,
  606. OP_SC1_B TYPE char1.
  607.  
  608.  
  609. TRY.
  610. CREATE OBJECT SERVER_INFO.
  611. SESSION_LIST = SERVER_INFO->get_session_list( )."( tenant = sy-mandt with_application_info = '1' )
  612.  
  613. LOOP AT SESSION_LIST INTO WA_SESSION_LIST WHERE USER_NAME = SY-UNAME AND TENANT = SY-MANDT.
  614. " current oppened T-codes
  615. DATA : TM type SSI_APPLICATION.
  616. TM = WA_SESSION_LIST-APPLICATION.
  617. CONDENSE TM NO-GAPS.
  618.  
  619. IF TM = T_CD .
  620. COUNT = COUNT + 1.
  621. ENDIF.
  622. ENDLOOP.
  623.  
  624. get parameter id 'OP_SC1_B' field OP_SC1_B .
  625.  
  626. IF count > 0.
  627. IS_OPENED = ABAP_TRUE.
  628. IF OP_SC1_B = 'S' .
  629. MESSAGE 'YOU Opened Assets Disposal Request (Maintenance screen)In Display Mode, Close It First' type 'I'.
  630. else.
  631. MESSAGE 'YOU Opened Assets Disposal Request (Maintenance screen), Close It First' type 'I'.
  632. ENDIF.
  633. else.
  634. IS_OPENED = ABAP_FALSE.
  635. ENDIF.
  636.  
  637. CATCH CX_SSI_NO_AUTH.
  638. MESSAGE 'Unable To Check Authorization' Type 'I'.
  639. ENDTRY.
  640.  
  641. SORT SESSION_LIST BY tenant user_name.
  642. ENDFORM.
  643.  
  644. *---------------------------*
  645. *& Form add_field
  646. *&------------------------------------------------------*
  647. * Add field info to fieldtab given its table name and
  648. * field name
  649. *-------------------------------------------------------*
  650. * -->TABNAME text
  651. * -->FIELDNAME text
  652. *-------------------------------------------------------*
  653. form add_field
  654. tables p_fields
  655. using tabname type tabname
  656. fieldname type fieldname.
  657.  
  658.  
  659. data: ls_field type dfies,
  660. lt_fields type standard table of dfies.
  661.  
  662. call function 'DDIF_FIELDINFO_GET'
  663. exporting
  664. tabname = tabname
  665. fieldname = fieldname
  666. tables
  667. dfies_tab = lt_fields
  668. exceptions
  669. not_found = 1
  670. internal_error = 2
  671. others = 3
  672. .
  673. if sy-subrc <> 0.
  674. message id sy-msgid type sy-msgty number sy-msgno
  675. with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  676. endif.
  677.  
  678. append lines of lt_fields to p_fields.
  679.  
  680. endform. "add_field
  681.  
  682. *&------------------------------------------------------*
  683. *& Form append_mapping
  684. *&------------------------------------------------------*
  685. * Append field mapping to mapping table
  686. *-------------------------------------------------------*
  687. * -->P_MAPPING Mapping table
  688. * -->P_FIELD Field in Itab
  689. * -->P_DYNPRO_FIELD Field in screen
  690. *-------------------------------------------------------*
  691. form append_mapping
  692. tables p_mapping
  693. using p_field
  694. p_dynpro_field.
  695.  
  696. data:
  697. ls_mapping type dselc.
  698.  
  699. ls_mapping-fldname = p_field.
  700. ls_mapping-dyfldname = p_dynpro_field.
  701. append ls_mapping to p_mapping.
  702.  
  703. endform. "append_mapping
  704.  
  705. INCLUDE zdisposal_req_inq_exiti01.
  706.  
  707. form call_web_dynprow USING REQ_ID.
  708.  
  709. DATA : p TYPE TIHTTPNVP,
  710. p_wa Type IHTTPNVP.
  711.  
  712. P_WA-NAME = 'ID'.
  713. P_WA-VALUE = REQ_ID.
  714.  
  715. APPEND P_WA TO P.
  716.  
  717.  
  718. CALL FUNCTION 'WDY_EXECUTE_IN_PLACE'
  719. EXPORTING
  720. * PROTOCOL =
  721. INTERNALMODE = ' '
  722. PARAMETERS = p
  723. * SMARTCLIENT =
  724. APPLICATION = 'ZDISPOSAL_REQ_MAINT'
  725. .
  726. IF SY-SUBRC <> 0.
  727. * Implement suitable error handling here
  728. MESSAGE 'can not open webdynpro :(' TYPE 'I'.
  729. ENDIF.
  730. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement