在工作中,归纳了如下函数,以后将继续补充。
函数名 描述 CONVERSION_EXIT_ALPHA_INPUT 料号前面补0 CONVERSION_EXIT_ALPHA_OUTPUT 料号前面减0 CONVERSION_EXIT_MATN1_INPUT 料号前面补0 CONVERSION_EXIT_MATN1_OUTPUT 料号前面减0 LAST_DAY_OF_MONTHS 查询某日期的在当月的最后一天 CO_SF_CAUFVD_GET 根据工单号查询订单抬头和项目 SO_NEW_DOCUMENT_ATT_SEND_API1 外发邮件 VIEW_MAINTENANCE_CALL 调用数据表的维护视图 SO_OBJECT_SEND 外发邮件
函数名 CONVERSION_EXIT_ALPHA_INPUT 功能:料号前面补0, 实例: CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "料号前面加0” EXPORTING input = matnr_in IMPORTING output = matnr_out.
说明:1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0. 2)只能用’字符型’ CONVERSION_EXIT_MATN1_INPUT 功能:料号前面补0 实例: CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' "料号前面补0” EXPORTING input = matnr_in IMPORTING output = matnr_out EXCEPTIONS length_error = 1 OTHERS = 2. 说明: 1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0. 2)只能用于料号转换 CONVERSION_EXIT_ALPHA_OUTPUT 功能:料号前面去0 实例: CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "料号前面去0. EXPORTING input = wa_ysy1-matnr IMPORTING output = wa_ysy1-matnr.
说明: CONVERSION_EXIT_MATN1_OUTPUT 功能:料号前面去0 实例: CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = t_afpo-matnr IMPORTING output = t_afpo-matnr EXCEPTIONS OTHERS = 1. 说明: LAST_DAY_OF_MONTHS 功能:查询某日期的在当月的最后一天 CALL FUNCTION 'LAST_DAY_OF_MONTHS' EXPORTING day_in = f_date "月任意一天 类型必须为D(要完成日期## IMPORTING last_day_of_month = p_date "月最后一天 类型必须为D(完整日期) EXCEPTIONS day_in_no_date = 1 OTHERS = 2. 说明: CO_SF_CAUFVD_GET 功能: 根据工单号查询订单抬头和项目 实例: DATA: wa_caufvd TYPE caufvd. CALL FUNCTION 'CO_SF_CAUFVD_GET'"取得订单抬头和项目 EXPORTING aufnr_imp = aufnr IMPORTING caufvd_exp = wa_caufvd “订单抬头和项目结构 EXCEPTIONS not_found = 1 OTHERS = 2.
说明: SO_NEW_DOCUMENT_ATT_SEND_API1 功能:邮件发送 SAPoffice: Send new document with attachments using RFC 实例: FORM email_itab. “邮件内容“
WRITE: '编号' TO email_itab-line+0(3), "255个长度的文本字段:文本" '记帐日期' TO email_itab-line+3(10), ENDFORM. " email_itab FORM reset_objpack . it_packing_list-transf_bin = space. "标记将以二进制形式传输对象的标志" it_packing_list-head_start = 0."表头开始行" it_packing_list-head_num = 1. "表头行数" it_packing_list-body_start = 1."内容开始行" it_packing_list-body_num = it_message_lines. "内容行数" it_packing_list-doc_type = 'RAW'. "信息类型" APPEND it_packing_list. ENDFORM. " reset_objpack FORM reset_doc_chng .
DESCRIBE TABLE email_itab LINES it_message_lines. gd_doc_data-doc_size = it_message_lines * 255 + STRLEN( email_itab ). "SAPoffice 文档的大小 " gd_doc_data-obj_langu = sy-langu. "创建文档使用的语言" gd_doc_data-obj_name = 'SAPRPT'. "文档,文件夹或分配清单的名称" gd_doc_data-obj_descr = '邮件标题'. "Email标题" gd_doc_data-sensitivty = 'F'. "对象:灵敏度(个人的,功能的,...) F:功能"
ENDFORM. " reset_doc_chng FORM reset_reclist .
SELECT zmaaddr INTO it_receivers-receiver FROM ziebtemail. it_receivers-rec_type = 'U'. "互联网地址 APPEND it_receivers. CLEAR it_receivers. ENDSELECT.
ENDFORM. " reset_reclist
DATA: gd_doc_data LIKE sodocchgi1, gd_sent_all(1) TYPE c, it_message_lines TYPE sy-tabix, it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE, it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE. DATA: BEGIN OF email_itab OCCURS 10. INCLUDE STRUCTURE soli. DATA: END OF email_itab.
PERFORM email_itab. " TABLES OUTPUT_TAB. PERFORM reset_doc_chng. PERFORM reset_reclist. PERFORM reset_objpack.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = gd_doc_data “新文档的属性” PUT_IN_OUTBOX = 'X' “标志:发送后将文档移到outbox * COMMIT_WORK = ' ' * IMPORTING SENT_TO_ALL = gd_sent_all “Flag: Document sent to all” * NEW_OBJECT_ID = ID of created object (not document!) tables packing_list = it_packing_list “SAPoffice:输入对象组件描述” * OBJECT_HEADER = * CONTENTS_BIN = * CONTENTS_TXT = * CONTENTS_HEX = * OBJECT_PARA = * OBJECT_PARB = receivers = email_itab”SAPoffice:API 收件人清单的结构” * EXCEPTIONS * TOO_MANY_RECEIVERS = 1 * DOCUMENT_NOT_SENT = 2 * DOCUMENT_TYPE_NOT_EXIST = 3 * OPERATION_NO_AUTHORIZATION = 4 * PARAMETER_ERROR = 5 * X_ERROR = 6 * ENQUEUE_ERROR = 7 * OTHERS = 8 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
说明: VIEW_MAINTENANCE_CALL 功能:调用数据表的维护视图 实例: CALL FUNCTION 'VIEW_MAINTENANCE_CALL' EXPORTING action = 'U' “活动(显示/维护/传输)” * CORR_NUMBER = ' ' * GENERATE_MAINT_TOOL_IF_MISSING = ' ' * SHOW_SELECTION_POPUP = ' ' view_name = 'ZIEBTEMAIL' “要处理的视图/表格的名称” * NO_WARNING_FOR_CLIENTINDEP = ' ' * RFC_DESTINATION_FOR_UPGRADE = ' ' * CLIENT_FOR_UPGRADE = ' ' * VARIANT_FOR_SELECTION = ' ' * COMPLEX_SELCONDS_USED = ' ' * CHECK_DDIC_MAINFLAG = ' ' * SUPPRESS_WA_POPUP = ' ' * TABLES * DBA_SELLIST = * EXCL_CUA_FUNCT = * EXCEPTIONS * CLIENT_REFERENCE = 1 * FOREIGN_LOCK = 2 * INVALID_ACTION = 3 * NO_CLIENTINDEPENDENT_AUTH = 4 * NO_DATABASE_FUNCTION = 5 * NO_EDITOR_FUNCTION = 6 * NO_SHOW_AUTH = 7 * NO_TVDIR_ENTRY = 8 * NO_UPD_AUTH = 9 * ONLY_SHOW_ALLOWED = 10 * SYSTEM_FAILURE = 11 * UNKNOWN_FIELD_IN_DBA_SELLIST = 12 * VIEW_NOT_FOUND = 13 * MAINTENANCE_PROHIBITED = 14 * OTHERS = 15 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
说明: SO_OBJECT_SEND 功能:外发邮件 实例: REPORT ztmail02 .
DATA: BEGIN OF itab OCCURS 0, pernr LIKE pa0001-pernr, ename LIKE pa0001-ename, END OF itab.
DATA: message_content LIKE soli OCCURS 10 WITH HEADER LINE, receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE, packing_list LIKE soxpl OCCURS 2 WITH HEADER LINE, listobject LIKE abaplist OCCURS 10, compressed_attachment LIKE soli occurs 100 WITH HEADER LINE, w_object_hd_change LIKE sood1 occurs 100 WITH HEADER LINE, compressed_size LIKE sy-index.
START-OF-SELECTION. SELECT pernr ename INTO CORRESPONDING FIELDS OF TABLE itab FROM pa0001 WHERE pernr < 50.
LOOP AT itab. WRITE: /02 sy-vline, itab-pernr, 15 sy-vline, itab-ename, 50 sy-vline. ENDLOOP.
*receivers receiver_list-recextnam = 'eric.guh@sina.com' . “直接外部地址作为接收方” receiver_list-recesc = ‘U’. “收件人类型的说明; U 互联网地址” receiver_list-sndart = ‘MAIL'. “输出设备; MAIL 邮件” receiver_list-sndpri = '1'. “发送:优先级; 1 最高优先权” APPEND receiver_list.
*general data w_object_hd_change-objla = sy-langu. “创建文档使用的语言” w_object_hd_change-objnam = 'Object name'. “文档,文件夹或分配清单的名称” w_object_hd_change-objsns = 'F'. “对象:灵敏度(个人的,功能的,...)” F: 功能 w_object_hd_change -OBJDES = ‘Message subject’. “Mail的标题” APPEND w_object_hd_change.
*content message_content-line = 'Message content'. “发送的内容” APPEND message_content. CALL FUNCTION 'SO_OBJECT_SEND' EXPORTING object_hd_change = w_object_hd_change “通常头数据” object_type = 'RAW' “对象类型” OUTBOX_FLAG = 'X' “标志:发送后将文档移到outbox owner = sy-uname “负责传送的用户” TABLES objcont = message_content “发送的内容” receivers = receiver_list “接收对象属性” att_cont = compressed_attachment.
说明: