批量解压上传SAP Note

莱莱  金牌会员 | 2023-7-12 18:49:19 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 780|帖子 780|积分 2340

最近在做印度GST相关的东西,需要手动给系统实施上百个SAP Note,十分繁琐。
标准事务代码SNOTE只支持每次上传一个Note,逐个上传大量Note会很麻烦,为此摸索出一个批量解压上传的流程,下面是细节。
 
0,去SAP网站下载Note文件
1,准备好SAR文件,如 '0002407980_00.SAR',把所有SAR文件放到同一个目录下。
2,在相同目录内,放置SAPCAR.EXE解压程序。新建批处理程序xxx.bat,写入以下代码并运行:
  1. @echo off
  2. setlocal
  3. for %%f in (*.SAR) do (
  4.     SAPCAR -xvf "%%f"
  5. )
  6. for %%f in (*.ZIP) do (
  7.     tar -xf "%%f"
  8. )
  9. endlocal
复制代码
 
这是ChatGPT提供的代码,可以解压当前目录下的SAR文件,具体功能解释如下,

  • @echo off 命令用于关闭命令的回显,使输出更清晰。
  • setlocal和endlocal命令用于限制变量的范围,防止它们影响到其他的脚本和环境。
  • for %%f in (*.SAR) do这一行是一个for循环,它会遍历当前目录中所有的.SAR文件。每次迭代中,%%f变量都会包含一个文件名。
  • SAPCAR -xvf "%%f"这一行调用SAPCAR命令,并将当前文件名作为参数。%%f将被替换为实际的文件名。
  • 同理,下一个for遍历目录中所有的.ZIP文件并解压。
(注意,旧版windows可能不支持tar,但这并不要紧,只需要手动全选ZIP文件并解压即可。)
3,步骤2完成后,目录中出现解压得到的TXT文件,可以用于上传。
4,登陆你希望实施Note的SAP系统,运行程序 ZSCWN_NOTES_UPLOAD,选择上文中存放Note的目录,选择全部TXT文件,上传。
如果Note数量多的话,需要耐心等待一段时间,直到程序运行结束。之后,进入事务代码SNOTE,就可以看到批量上传的全部Note已经被加载到SNOTE中。
 
ZSCWN_NOTES_UPLOAD 的作者是Frank Buchholz,原文:Report ZSCWN_NOTES_UPLOAD – Load multiple notes files into SNOTE
为了防止链接失效,在下面贴出代码,
  1.   1 *&---------------------------------------------------------------------*
  2.   2 *& Report  ZSCWN_NOTES_UPLOAD
  3.   3 *& Load multiple notes files into SNOTE
  4.   4 *&---------------------------------------------------------------------*
  5.   5 *&
  6.   6 *& Reference:
  7.   7 *& Security Patch Process FAQ
  8.   8 *& http://scn.sap.com/community/security/blog/2012/03/27/security-patch-process-faq#23_What_should_I_do_if_I_cannot_download_a_note_into_SNOTE
  9.   9 *& 23. What should I do if I cannot download a note into SNOTE?
  10. 10 *&
  11. 11 *& Sometimes you run into trouble while downloading large notes in transaction SNOTE, like for the security note 1826162 from July 2013. (In addition this note requires another large note 1674132, too.)
  12. 12 *&
  13. 13 *& In such a case use the download basket to get the note:
  14. 14 *&
  15. 15 *& 1. Show the note on SMP, e.g. https://service.sap.com/sap/support/notes/1826162
  16. 16 *& 2. Use the button "Download Corrections". You get a new window showing a log.
  17. 17 *& 3. Repeat 1. and 2. for more notes, e.g. note 1826162 requires other note 1674132
  18. 18 *& 4. Use the button "Download Basket" on the log window to show your basket
  19. 19 *& 5. Click on every link for the selected notes to download the file via the internet browser (You could try to use the SAP Download Manager, however, this might not work as it uses the same interface like SNOTE.)
  20. 20 *& 6. Un-zip the archive files which you have downloaded
  21. 21 *& 7. In transaction SNOTE use the menu path Goto->Upload note to load the note(s) one by one
  22. 22 *& 8. Implement the note as usual
  23. 23 *&
  24. 24 *& Another advantage is, that you can use the same files for uploading notes into several development systems
  25. 25 *&
  26. 26 *& 19.08.2013 Initial version based on function SCWN_NOTE_UPLOAD_INTERNAL which allows the upload of a single file
  27. 27 *&
  28. 28 *&---------------------------------------------------------------------*
  29. 29
  30. 30 REPORT  ZSCWN_NOTES_UPLOAD.
  31. 31
  32. 32 constants: c_program_version(15) type c value '19.08.2013'.
  33. 33
  34. 34 selection-screen begin of line.
  35. 35 selection-screen comment 1(32) T_PATH for field s_path.
  36. 36 parameters: s_path type string LOWER CASE.
  37. 37 selection-screen end of line.
  38. 38
  39. 39 SELECTION-SCREEN COMMENT 1(60) ss_vers.
  40. 40
  41. 41 *----------------------------------------------------------------------*
  42. 42
  43. 43 INITIALIZATION.
  44. 44 * Authorization check according to report SCWN_ENTRY_TREE (=SNOTE)
  45. 45   CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
  46. 46     EXPORTING
  47. 47       tcode  = 'SNOTE'
  48. 48     EXCEPTIONS
  49. 49       ok     = 0
  50. 50       not_ok = 1
  51. 51       OTHERS = 2.
  52. 52
  53. 53   IF sy-subrc <> 0.
  54. 54 *     All messages raised from authority_check_tcode means:
  55. 55 *     'This transaction can or should not be started.'
  56. 56     MESSAGE i775(scwn) WITH 'SNOTE'.
  57. 57     LEAVE PROGRAM.
  58. 58   ENDIF.
  59. 59
  60. 60   T_PATH  = 'Local path with text files'(000).
  61. 61
  62. 62   concatenate 'Program version from'(000) c_program_version into SS_VERS
  63. 63     SEPARATED BY SPACE.
  64. 64
  65. 65 * Get default download path
  66. 66   data l_UPLOAD_PATH type string.
  67. 67   CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_UPLOAD_DOWNLOAD_PATH
  68. 68     CHANGING
  69. 69       UPLOAD_PATH                 = l_UPLOAD_PATH
  70. 70       DOWNLOAD_PATH               = s_path
  71. 71     EXCEPTIONS
  72. 72       CNTL_ERROR                  = 1
  73. 73       ERROR_NO_GUI                = 2
  74. 74       NOT_SUPPORTED_BY_GUI        = 3
  75. 75       GUI_UPLOAD_DOWNLOAD_PATH    = 4
  76. 76       UPLOAD_DOWNLOAD_PATH_FAILED = 5
  77. 77       others                      = 6.
  78. 78   IF SY-SUBRC <> 0.
  79. 79 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  80. 80 *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  81. 81   ENDIF.
  82. 82
  83. 83 *----------------------------------------------------------------------*
  84. 84
  85. 85 START-OF-SELECTION.
  86. 86
  87. 87   data: lv_file_filter    TYPE string,
  88. 88         lv_filename       TYPE string,
  89. 89         lv_file_table     TYPE filetable,
  90. 90         lv_rc             TYPE i,
  91. 91         lv_user_action    TYPE i,
  92. 92         lv_file           TYPE LINE OF filetable,
  93. 93         lv_title          TYPE string.
  94. 94   data: lt_cont           LIKE cwbdata OCCURS 0,
  95. 95         lv_FILELENGTH     type i.
  96. 96
  97. 97 * dialog for file
  98. 98   CLASS cl_gui_frontend_services DEFINITION LOAD.
  99. 99 * Definition of file types see text elements of class CL_GUI_FRONTEND_SERVICES
  100. 100   lv_file_filter = cl_gui_frontend_services=>FILETYPE_TEXT.
  101. 101   lv_title = 'Upload SAP Note'(100).
  102. 102
  103. 103 * Ask for list of files
  104. 104   CALL METHOD cl_gui_frontend_services=>file_open_dialog
  105. 105     EXPORTING
  106. 106       window_title      = lv_title
  107. 107       INITIAL_DIRECTORY = s_path
  108. 108 *     default_filename  =  lv_filename
  109. 109       file_filter       = lv_file_filter
  110. 110       multiselection    = 'X'
  111. 111     CHANGING
  112. 112       file_table        = lv_file_table
  113. 113       rc                = lv_rc
  114. 114       user_action       = lv_user_action
  115. 115     EXCEPTIONS
  116. 116       OTHERS            = 1.
  117. 117
  118. 118   IF sy-subrc <> 0 OR lv_rc <= 0.
  119. 119     EXIT.
  120. 120   ENDIF.
  121. 121
  122. 122   IF lv_user_action = cl_gui_frontend_services=>action_cancel.
  123. 123     MESSAGE s020(scwn).
  124. 124     EXIT.
  125. 125   ENDIF.
  126. 126
  127. 127 * process files
  128. 128   data: lv_lines   type i,
  129. 129         lv_percent type i,
  130. 130         lv_message(132).
  131. 131   describe table lv_file_table lines lv_lines.
  132. 132   loop at lv_file_table into lv_filename.
  133. 133
  134. 134     lv_percent = 100 * sy-tabix / lv_lines.
  135. 135     concatenate 'Read file'(002) lv_filename into lv_message SEPARATED BY space.
  136. 136     CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
  137. 137       EXPORTING
  138. 138         PERCENTAGE = lv_percent
  139. 139         TEXT       = lv_message.
  140. 140
  141. 141 *   Read file
  142. 142     CALL FUNCTION 'GUI_UPLOAD'
  143. 143       EXPORTING
  144. 144         filename                = lv_filename
  145. 145         FILETYPE                = 'ASC'
  146. 146       IMPORTING
  147. 147         FILELENGTH              = lv_FILELENGTH
  148. 148       TABLES
  149. 149         data_tab                = lt_cont
  150. 150       EXCEPTIONS
  151. 151         file_open_error         = 1
  152. 152         file_read_error         = 2
  153. 153         no_batch                = 3
  154. 154         gui_refuse_filetransfer = 4
  155. 155         invalid_type            = 5
  156. 156         no_authority            = 6
  157. 157         unknown_error           = 7
  158. 158         bad_data_format         = 8
  159. 159         header_not_allowed      = 9
  160. 160         separator_not_allowed   = 10
  161. 161         header_too_long         = 11
  162. 162         unknown_dp_error        = 12
  163. 163         access_denied           = 13
  164. 164         dp_out_of_memory        = 14
  165. 165         disk_full               = 15
  166. 166         dp_timeout              = 16
  167. 167         OTHERS                  = 17.
  168. 168
  169. 169     IF sy-subrc <> 0.
  170. 170       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  171. 171               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  172. 172     ENDIF.
  173. 173
  174. 174 *   Process file
  175. 175     perform scwn_note_upload_internal
  176. 176       tables lt_cont.
  177. 177
  178. 178   endloop.
  179. 179
  180. 180   message 'Files loaded'(003) type 'S'.
  181. 181
  182. 182 *FUNCTION scwn_note_upload_internal.
  183. 183 *"----------------------------------------------------------------------
  184. 184 *"*"Lokale Schnittstelle:
  185. 185 *"  EXCEPTIONS
  186. 186 *"      INCOMPATIBLE_VERSIONS
  187. 187 *"      CORRUPT_DATA_FILE
  188. 188 *"----------------------------------------------------------------------
  189. 189 constants: true type  BCWBN_BOOL value 'X',
  190. 190            false type BCWBN_BOOL value space.
  191. 191 *
  192. 192 FORM scwn_note_upload_internal
  193. 193     tables lt_cont. "       LIKE cwbdata OCCURS 0.
  194. 194
  195. 195   FIELD-SYMBOLS: <ls_cwbnthead> TYPE cwbnthead.
  196. 196
  197. 197   DATA: lv_cancel,
  198. 198         lv_filetype   LIKE rlgrap-filetype,
  199. 199 *        lt_cont       LIKE cwbdata OCCURS 0,
  200. 200         lt_cwbnthead  LIKE cwbnthead OCCURS 0,
  201. 201         lt_cwbntstxt  LIKE cwbntstxt OCCURS 0,
  202. 202         lt_cwbntdata  TYPE bcwbn_note_text OCCURS 0,
  203. 203         lt_cwbntvalid LIKE cwbntvalid OCCURS 0,
  204. 204         lt_cwbntci    LIKE cwbntci OCCURS 0,
  205. 205         lt_cwbntfixed LIKE cwbntfixed OCCURS 0,
  206. 206         lt_cwbntgattr LIKE cwbntgattr OCCURS 0,
  207. 207         lt_cwbcihead  LIKE cwbcihead OCCURS 0,
  208. 208         lt_cwbcidata  TYPE bcwbn_cinst_delta OCCURS 0,
  209. 209         lt_cwbcivalid LIKE cwbcivalid OCCURS 0,
  210. 210         lt_cwbciinvld LIKE cwbciinvld OCCURS 0,
  211. 211         lt_cwbcifixed LIKE cwbcifixed OCCURS 0,
  212. 212         lt_cwbcidpndc LIKE cwbcidpndc OCCURS 0,
  213. 213         lt_cwbciobj   LIKE cwbciobj OCCURS 0,
  214. 214         lt_cwbcmpnt   LIKE cwbcmpnt OCCURS 0,
  215. 215         lt_cwbcmtext  LIKE cwbcmtext OCCURS 0,
  216. 216         lt_cwbcmlast  LIKE cwbcmlast OCCURS 0,
  217. 217         lt_cwbdehead  LIKE cwbdehead OCCURS 0,
  218. 218         lt_cwbdeprdc  LIKE cwbdeprdc OCCURS 0,
  219. 219         lt_cwbdetrack LIKE cwbdetrack OCCURS 0,
  220. 220         lt_cwbdeequiv LIKE cwbdeequiv OCCURS 0,
  221. 221         lt_cwbcidata_ref TYPE cwb_deltas,
  222. 222 *        lv_file_filter   TYPE string,
  223. 223 *        lv_filename TYPE string,
  224. 224 *        lv_file_table TYPE filetable,
  225. 225 *        lv_rc TYPE i,
  226. 226 *        lv_user_action TYPE i,
  227. 227         lv_file TYPE LINE OF filetable,
  228. 228 *        lv_title TYPE string,
  229. 229         ls_note TYPE bcwbn_note,
  230. 230         lt_notes TYPE bcwbn_notes,
  231. 231         ls_cwbnthead LIKE cwbnthead.
  232. 232
  233. 233   DATA: lv_data_bin        TYPE xstring,
  234. 234         lv_code_delta_bin  TYPE xstring,
  235. 235         lt_object_data_bin TYPE cwbci_t_objdelta,
  236. 236         ls_numm_versno     TYPE cwbntkeyvs.
  237. 237
  238. 238 ** dialog for file
  239. 239 *  CLASS cl_gui_frontend_services DEFINITION LOAD.
  240. 240 *  lv_file_filter = cl_gui_frontend_services=>filetype_all.
  241. 241 *  lv_title = text-100.
  242. 242 *
  243. 243 *  CALL METHOD cl_gui_frontend_services=>file_open_dialog
  244. 244 *    EXPORTING
  245. 245 *      window_title     = lv_title
  246. 246 *      default_filename = lv_filename
  247. 247 *      file_filter      = lv_file_filter
  248. 248 *    CHANGING
  249. 249 *      file_table       = lv_file_table
  250. 250 *      rc               = lv_rc
  251. 251 *      user_action      = lv_user_action
  252. 252 *    EXCEPTIONS
  253. 253 *      OTHERS           = 1.
  254. 254 *
  255. 255 *  IF sy-subrc <> 0 OR lv_rc <= 0.
  256. 256 *    EXIT.
  257. 257 *  ENDIF.
  258. 258 *
  259. 259 *  IF lv_user_action = cl_gui_frontend_services=>action_cancel.
  260. 260 *    MESSAGE s020(scwn).
  261. 261 *    EXIT.
  262. 262 *  ENDIF.
  263. 263 *
  264. 264 ** upload file
  265. 265 *  READ TABLE lv_file_table INTO lv_file INDEX 1.
  266. 266 *  lv_filename = lv_file-filename.
  267. 267 *
  268. 268 *  CALL FUNCTION 'GUI_UPLOAD'
  269. 269 *    EXPORTING
  270. 270 *      filename                = lv_filename
  271. 271 *    TABLES
  272. 272 *      data_tab                = lt_cont_bin
  273. 273 *    EXCEPTIONS
  274. 274 *      file_open_error         = 1
  275. 275 *      file_read_error         = 2
  276. 276 *      no_batch                = 3
  277. 277 *      gui_refuse_filetransfer = 4
  278. 278 *      invalid_type            = 5
  279. 279 *      no_authority            = 6
  280. 280 *      unknown_error           = 7
  281. 281 *      bad_data_format         = 8
  282. 282 *      header_not_allowed      = 9
  283. 283 *      separator_not_allowed   = 10
  284. 284 *      header_too_long         = 11
  285. 285 *      unknown_dp_error        = 12
  286. 286 *      access_denied           = 13
  287. 287 *      dp_out_of_memory        = 14
  288. 288 *      disk_full               = 15
  289. 289 *      dp_timeout              = 16
  290. 290 *      OTHERS                  = 17.
  291. 291 *
  292. 292 *  IF sy-subrc <> 0.
  293. 293 *    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  294. 294 *            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  295. 295 *  ENDIF.
  296. 296
  297. 297   CALL FUNCTION 'SCWN_NOTE_UNPACK'
  298. 298     IMPORTING
  299. 299       ev_data_bin           = lv_data_bin
  300. 300       ev_code_delta_bin     = lv_code_delta_bin
  301. 301       et_object_data_bin    = lt_object_data_bin
  302. 302     TABLES
  303. 303       tt_cont               = lt_cont
  304. 304     EXCEPTIONS
  305. 305       incompatible_versions = 1
  306. 306       corrupt_data_file     = 2
  307. 307       OTHERS                = 3.
  308. 308
  309. 309   IF sy-subrc <> 0.
  310. 310     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  311. 311             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  312. 312   ENDIF.
  313. 313
  314. 314   CALL FUNCTION 'SCWN_NOTE_UNPACK_XML'
  315. 315     EXPORTING
  316. 316       iv_data_bin           = lv_data_bin
  317. 317       iv_code_delta_bin     = lv_code_delta_bin
  318. 318       it_object_data_bin    = lt_object_data_bin
  319. 319     IMPORTING
  320. 320       et_cwbnthead          = lt_cwbnthead
  321. 321       et_cwbntstxt          = lt_cwbntstxt
  322. 322       et_cwbntdata          = lt_cwbntdata
  323. 323       et_cwbntvalid         = lt_cwbntvalid
  324. 324       et_cwbntci            = lt_cwbntci
  325. 325       et_cwbntfixed         = lt_cwbntfixed
  326. 326       et_cwbntgattr         = lt_cwbntgattr
  327. 327       et_cwbcihead          = lt_cwbcihead
  328. 328       et_cwbcidata          = lt_cwbcidata
  329. 329       et_cwbcidata_ref      = lt_cwbcidata_ref
  330. 330       et_cwbcivalid         = lt_cwbcivalid
  331. 331       et_cwbciinvld         = lt_cwbciinvld
  332. 332       et_cwbcifixed         = lt_cwbcifixed
  333. 333       et_cwbcidpndc         = lt_cwbcidpndc
  334. 334       et_cwbciobj           = lt_cwbciobj
  335. 335       et_cwbcmpnt           = lt_cwbcmpnt
  336. 336       et_cwbcmtext          = lt_cwbcmtext
  337. 337       et_cwbcmlast          = lt_cwbcmlast
  338. 338       et_cwbdehead          = lt_cwbdehead
  339. 339       et_cwbdeprdc          = lt_cwbdeprdc
  340. 340       et_cwbdetrack         = lt_cwbdetrack
  341. 341       et_cwbdeequiv         = lt_cwbdeequiv
  342. 342     EXCEPTIONS
  343. 343       corrupt_data_file     = 1
  344. 344       incompatible_versions = 2
  345. 345       OTHERS                = 3.
  346. 346   IF sy-subrc <> 0.
  347. 347     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  348. 348             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
  349. 349             RAISING corrupt_data_file.
  350. 350   ENDIF.
  351. 351
  352. 352 * store note
  353. 353   CALL FUNCTION 'SCWN_NOTE_STORE'
  354. 354     EXPORTING
  355. 355       it_cwbcmpnt      = lt_cwbcmpnt
  356. 356       it_cwbdetrack    = lt_cwbdetrack
  357. 357       it_cwbdehead     = lt_cwbdehead
  358. 358       it_cwbdeequiv    = lt_cwbdeequiv
  359. 359     TABLES
  360. 360       tt_cwbnthead     = lt_cwbnthead
  361. 361       tt_cwbntstxt     = lt_cwbntstxt
  362. 362       tt_cwbntdata     = lt_cwbntdata
  363. 363       tt_cwbntvalid    = lt_cwbntvalid
  364. 364       tt_cwbntci       = lt_cwbntci
  365. 365       tt_cwbntfixed    = lt_cwbntfixed
  366. 366       tt_cwbntgattr    = lt_cwbntgattr
  367. 367       tt_cwbcihead     = lt_cwbcihead
  368. 368       tt_cwbcidata     = lt_cwbcidata
  369. 369       tt_cwbcidata_ref = lt_cwbcidata_ref
  370. 370       tt_cwbcivalid    = lt_cwbcivalid
  371. 371       tt_cwbciinvld    = lt_cwbciinvld
  372. 372       tt_cwbcifixed    = lt_cwbcifixed
  373. 373       tt_cwbcidpndc    = lt_cwbcidpndc
  374. 374       tt_cwbciobj      = lt_cwbciobj
  375. 375     EXCEPTIONS
  376. 376       failure          = 1
  377. 377       OTHERS           = 2.
  378. 378
  379. 379   IF sy-subrc <> 0.
  380. 380     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  381. 381             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  382. 382   ELSE.
  383. 383 *   store each stored note in download history
  384. 384     LOOP AT lt_cwbnthead ASSIGNING <ls_cwbnthead>.
  385. 385       ls_numm_versno-numm = <ls_cwbnthead>-numm.
  386. 386       ls_numm_versno-versno = <ls_cwbnthead>-versno.
  387. 387       CALL FUNCTION 'SCWN_NOTE_DOWNLOAD_HIST'
  388. 388         EXPORTING
  389. 389           is_note_version = ls_numm_versno
  390. 390           iv_mode_write   = true
  391. 391         EXCEPTIONS
  392. 392           OTHERS          = 1.
  393. 393       IF sy-subrc <> 0.
  394. 394         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  395. 395                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  396. 396       ENDIF.
  397. 397     ENDLOOP.
  398. 398   ENDIF.
  399. 399
  400. 400 * update software component if necessary
  401. 401   CALL FUNCTION 'SCWN_UPDATE_SOFTWARE_COMPONENT'
  402. 402     TABLES
  403. 403       tt_cwbcmpnt   = lt_cwbcmpnt
  404. 404       tt_cwbcmtext  = lt_cwbcmtext
  405. 405       tt_cwbcmlast  = lt_cwbcmlast
  406. 406       tt_cwbdehead  = lt_cwbdehead
  407. 407       tt_cwbdeprdc  = lt_cwbdeprdc
  408. 408       tt_cwbdetrack = lt_cwbdetrack
  409. 409       tt_cwbdeequiv = lt_cwbdeequiv
  410. 410     EXCEPTIONS
  411. 411       failure       = 1
  412. 412       OTHERS        = 2.
  413. 413
  414. 414   IF sy-subrc <> 0.
  415. 415     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  416. 416             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  417. 417   ENDIF.
  418. 418
  419. 419 * classify notes
  420. 420   LOOP AT lt_cwbnthead INTO ls_cwbnthead.
  421. 421     ls_note-key-numm = ls_cwbnthead-numm.
  422. 422     ls_note-key-versno = ls_cwbnthead-versno.
  423. 423     APPEND ls_note TO lt_notes.
  424. 424   ENDLOOP.
  425. 425
  426. 426   CALL FUNCTION 'SCWB_NOTES_CLASSIFY'
  427. 427     EXPORTING
  428. 428       it_notes        = lt_notes
  429. 429       iv_set_ntstatus = ' '.
  430. 430
  431. 431 ENDFORM.
  432. 432 *ENDFUNCTION.
复制代码
ZSCWN_NOTES_UPLOAD 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表