Advertisement
ezecasti18

Untitled

Apr 13th, 2022
1,546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.53 KB | None | 0 0
  1. FUNCTION ZSD_MX_IDOC_FILENAME_CHANGE_CA.
  2. *"--------------------------------------------------------------------
  3. *"*"Local Interface:
  4. *"  IMPORTING
  5. *"     REFERENCE(DATATYPE) TYPE  EDIPO-ACTRIG
  6. *"     REFERENCE(DIRECTORY) TYPE  EDIPO-OUTPUTDIR
  7. *"     REFERENCE(FILENAME) TYPE  EDIPO-OUTPUTFILE
  8. *"     REFERENCE(CONTROL) TYPE  EDIDC
  9. *"  EXPORTING
  10. *"     REFERENCE(PATHNAME) TYPE  EDI_PATH-PTHNAM
  11. *"--------------------------------------------------------------------
  12. DATA: lv_key               TYPE string.
  13. DATA: path                   TYPE string.
  14. DATA: lv_objky               TYPE nast-objky.
  15. DATA: l_sdata                TYPE edid4-sdata.
  16. DATA: l_dtint2               TYPE edid4-dtint2.
  17. DATA lv_search_string        TYPE string.
  18. DATA lv_key_length           TYPE i.
  19. DATA lv_parval               TYPE zmx_cfdi_param-parval.
  20. DATA: ls_classname           TYPE string.
  21. DATA lv_field                TYPE string.
  22. DATA dataref                 TYPE REF TO data.
  23. DATA: ls_canc_req TYPE ZMX_CFDI_CANC_REQ.
  24. DATA ls_edic_msg_par         TYPE zmx_cfdi_param.
  25. DATA: lo_segment_type TYPE REF TO cl_abap_structdescr,
  26.         lo_segment_data TYPE REF TO data.
  27. CONCATENATE directory filename INTO path.
  28. FIELD-SYMBOLS <f_data> TYPE any.
  29. FIELD-SYMBOLS <fs_field> TYPE any.
  30.  
  31. SELECT SINGLE * INTO ls_edic_msg_par FROM zmx_cfdi_param
  32. WHERE mestyp = control-mestyp
  33. AND parid = 'KEY_SIZE'
  34. AND active = 'X'.
  35. IF sy-subrc IS NOT INITIAL.
  36. SELECT SINGLE * INTO ls_edic_msg_par FROM zmx_cfdi_param
  37. WHERE mestyp = control-mestyp
  38. AND parid = 'FILE_KEY'
  39. AND active = 'X'.
  40.  
  41.     lo_segment_type ?= cl_abap_structdescr=>describe_by_name( ls_edic_msg_par-segtyp ).
  42. CREATE DATA lo_segment_data TYPE HANDLE lo_segment_type.
  43. ASSIGN lo_segment_data->* TO <f_data>.
  44. ELSE.
  45.     lv_key_length = ls_edic_msg_par-parval.
  46. ENDIF.
  47. SELECT SINGLE dtint2 sdata INTO (l_dtint2,l_sdata)
  48. FROM edid4
  49. WHERE docnum = control-docnum
  50. AND segnum = 1.
  51. IF sy-subrc IS INITIAL AND <f_data> IS ASSIGNED.
  52. MOVE l_sdata TO <f_data>.
  53. CONCATENATE '<f_data>-' ls_edic_msg_par-parval INTO lv_field.
  54. ASSIGN (lv_field) TO <fs_field>.
  55.     lv_key = <fs_field>.
  56.     lv_key_length = 18.
  57. ELSE.
  58. MOVE l_sdata TO ls_canc_req.
  59. MOVE ls_canc_req-source_key TO lv_key.
  60. *    lv_key = l_sdata(lv_key_length).
  61. ENDIF.
  62.  
  63.  
  64.   lv_search_string = '000000000000000000000000000000'.
  65.  
  66.   lv_search_string = lv_search_string(lv_key_length).
  67.  
  68.  
  69.  
  70. REPLACE lv_search_string INTO path WITH lv_key.
  71. REPLACE '$SYSID$' INTO path WITH sy-sysid.
  72.  
  73. CONDENSE path NO-GAPS.
  74. MOVE path TO pathname.
  75. MOVE lv_key TO lv_objky.
  76. ENDFUNCTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement