上传附件/URL到SAP 会计凭证或采购订单
1 DATA: lt_load TYPE TABLE OF ty_data, 2 ls_load TYPE ty_data. 3 4 DATA: lt_url TYPE TABLE OF ty_data, 5 ls_url TYPE ty_data. 6 7 DATA lt_objhead TYPE STANDARD TABLE OF soli. 8 DATA lt_objcont TYPE STANDARD TABLE OF soli. 9 DATA ls_objcont TYPE soli. 10 DATA lt_urltab TYPE STANDARD TABLE OF sood-objdes. 11 DATA l_tab_size TYPE i. 12 DATA l_url_id TYPE so_url. 13 DATA ls_obj_id TYPE soodk. 14 DATA l_obj_data TYPE sood1. 15 DATA: ls_fol_id TYPE soodk, 16 ls_folmem_k TYPE sofmk. 17 18 19 DATA: ls_object TYPE borident, 20 ls_note TYPE borident. 21 22 23 LOOP AT gt_data ASSIGNING <fs_data> WHERE msgty = 'S' AND zsel = 'X'. 24 MOVE-CORRESPONDING <fs_data> TO ls_load. 25 APPEND ls_load TO lt_load. 26 ENDLOOP. 27 28 IF lt_load IS NOT INITIAL. 29 SELECT zbxdh zywlx zxh zfpdz 30 FROM ztfi023_dz 31 INTO CORRESPONDING FIELDS OF TABLE lt_url 32 FOR ALL ENTRIES IN lt_load 33 WHERE zbxdh = lt_load-zbxdh 34 AND zywlx = lt_load-zdjlx . 35 ENDIF. 36 *汇总发票清单数据 37 SORT lt_load BY zbxdh zdjlx. 38 LOOP AT lt_url INTO ls_url. 39 READ TABLE lt_load INTO ls_load WITH KEY zbxdh = ls_url-zbxdh zdjlx = ls_url-zywlx BINARY SEARCH. 40 41 IF sy-subrc = 0. 42 ls_url-zsel = ls_load-zsel. 43 ls_url-zbxdh = ls_load-zbxdh. 44 ls_url-gjahr = ls_load-zgjahr. 45 ls_url-zstatus = ls_load-zstatus. 46 ls_url-bukrs = ls_load-bukrs. 47 ls_url-saknr = ls_load-saknr. 48 ls_url-belnr = ls_load-belnr. 49 ls_url-msgty = ls_load-msgty. 50 ls_url-msg_text = ls_load-msg_text. 51 ls_url-zstatustxt = ls_load-zstatustxt. 52 ENDIF. 53 MODIFY lt_url FROM ls_url. 54 ENDLOOP. 55 56 57 LOOP AT lt_url INTO ls_url. 58 59 60 CLEAR:l_url_id, 61 ls_objcont, 62 lt_objcont, 63 l_obj_data, 64 ls_object, 65 ls_folmem_k, 66 ls_note. 67 68 69 70 71 l_url_id = ls_url-zfpdz. 72 73 WHILE NOT l_url_id IS INITIAL. 74 CONCATENATE '&KEY&' l_url_id(250) INTO ls_objcont. 75 APPEND ls_objcont TO lt_objcont. 76 SHIFT l_url_id LEFT BY 250 PLACES. 77 ENDWHILE. 78 79 l_obj_data-objsns = 'O'. 80 l_obj_data-objla = sy-langu. 81 l_obj_data-objdes = ls_url-zfpdz."附件名称 82 83 ls_object-objkey = ls_url-bukrs && ls_url-belnr && ls_url-gjahr."对象 84 ls_object-objtype = 'BKPF'. 85 86 CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET' 87 EXPORTING 88 region = 'B' 89 IMPORTING 90 folder_id = ls_fol_id 91 EXCEPTIONS 92 OTHERS = 1. 93 94 CALL FUNCTION 'SO_OBJECT_INSERT' 95 EXPORTING 96 folder_id = ls_fol_id 97 object_type = 'URL' 98 object_hd_change = l_obj_data 99 IMPORTING 100 object_id = ls_obj_id 101 TABLES 102 objhead = lt_objhead 103 objcont = lt_objcont 104 EXCEPTIONS 105 active_user_not_exist = 35 106 folder_not_exist = 6 107 object_type_not_exist = 17 108 owner_not_exist = 22 109 parameter_error = 23 110 OTHERS = 1000. 111 112 113 IF sy-subrc = 0. 114 COMMIT WORK AND WAIT. 115 116 ls_folmem_k-foltp = ls_fol_id-objtp. 117 ls_folmem_k-folyr = ls_fol_id-objyr. 118 ls_folmem_k-folno = ls_fol_id-objno. 119 ls_folmem_k-doctp = ls_obj_id-objtp. 120 ls_folmem_k-docyr = ls_obj_id-objyr. 121 ls_folmem_k-docno = ls_obj_id-objno. 122 123 124 DATA(lv_ep_note) = ls_folmem_k. 125 126 ls_note-objtype = 'MESSAGE'. 127 ls_note-objkey = lv_ep_note. 128 129 CALL FUNCTION 'BINARY_RELATION_CREATE' 130 EXPORTING 131 obj_rolea = ls_object 132 obj_roleb = ls_note 133 relationtype = 'URL' 134 EXCEPTIONS 135 OTHERS = 1. 136 COMMIT WORK AND WAIT. 137 138 ENDIF. 139 140 ENDLOOP.
这部分为上传URL到附件
会计凭证和采购订单对象号不同主要注意
post SAP-Garson
原文链接:https://www.cnblogs.com/Anyohh233/p/16711161.html文章来自于网络,如果侵犯了您的权益,请联系站长删除!