abap

Sending email to a SAP inbox and an ordinary email inbox

筅森魡賤 提交于 2019-12-07 20:21:08
问题 I needed a function to send an email to an ordinary email address and to send on too to an SAP Inbox. I found this function: CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = gd_doc_data put_in_outbox = 'X' commit_work = 'X' TABLES packing_list = it_packing_list contents_txt = it_message receivers = it_receivers 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

ABAP学习(15):邮件发送实例

六眼飞鱼酱① 提交于 2019-12-06 14:59:29
ABAP邮件 使用ABAP程式可以发送外部邮件。  Tcode:SOST可以查看邮件发送队列以及邮件发送状态。 1、使用类对象发送邮件 类CL_BCS:发送邮件功能类,创建发送邮件请求,添加发送人,添加收件人,添加发送内容等; 类CL_DOCUMENT_BCS:邮件内容类; 类CX_BCS:发送异常类; 接口IF_RECIPIENT_BCS:邮件地址接口; 邮件发送过程: 1、使用CL_BCS=>CREATE_PERSISTENT( )创建邮件发送请求,cl_send_mail保存对象; 2、使用CL_DOCUMENT_BCS=>CREATE_DOCUMENT( ),创建发送内容对象,cl_content保存类对象; 3、添加附件,使用cl_content->add_attachment,调用内容对象方法add_attachment; 4、将发送邮件内容添加到请求对象,cl_send_mail的SET_DOCUMENT方法; 5、调用发送请求的SET_SENDER方法设置发件人; 6、调用发送请求对象的ADD_RECIPIENT方法设置收件人; 7、调用发送请求对象的SEND方法发送邮件; 附件生成: 使用XML文本,最后保存为excel,获得excel类型附件。实际上就是构建一个EXCEL的XML文档。可以将一个EXCEL保存成XML格式文件

2019.12.05【ABAP随笔】 分组循环(LOOP AT Group) / REDUCE

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 14:25:11
ABAP 7.40新语法 LOOP AT Group 和 REDUCE 1 *LOOP AT itab result [cond] GROUP BY key ( key1 = dobj1 key2 = dobj2 … 2 * [gs = GROUP SIZE] [gi = GROUP INDEX] ) 3 * [ASCENDING|DESCENDING [AS TEXT]] 4 * [WITHOUT MEMBERS] 5 * [{INTO group}|{ASSIGNING <group>}] 6 * … 7 * [LOOP AT GROUP group|<group> 8 * … 9 * ENDLOOP.] 10 * … 11 *ENDLOOP. 12 * 13 *… REDUCE type( 14 *INIT result = start_value 15 * … 16 *FOR for_exp1 17 *FOR for_exp2 18 *… 19 *NEXT … 20 * result = iterated_value 21 *… ) 22 23 24 "首先创建一个内表 25 TYPES:BEGIN OF ty_data, 26 id TYPE i, "人员ID 27 name TYPE char10, "人员名称 28 country TYPE char10, "国家

Finding duplicates in ABAP internal table via grouping

一个人想着一个人 提交于 2019-12-06 14:23:31
问题 We all know these excellent ABAP statements which allows finding unique values in one-liner: it_unique = VALUE #( FOR GROUPS value OF <line> IN it_itab GROUP BY <line>-field WITHOUT MEMBERS ( value ) ). But what about extracting duplicates? Can one utilize GROUP BY syntax for that task or, maybe, table comprehensions are more useful here? The only (though not very elegant) way I found is: LOOP AT lt_marc ASSIGNING FIELD-SYMBOL(<fs_marc>) GROUP BY ( matnr = <fs_marc>-matnr werks = <fs_marc>

2-level column headings in ALV list

﹥>﹥吖頭↗ 提交于 2019-12-06 14:13:05
I want to add a header row grouping the column headers. Departure Arrival <-- This row is what I want to add Airport Gate Date Airport Gate Date -------- ----- ----- -------- ----- ------- O'Hare A10 10Mar Atlanta G19 10Mar DFW K98 11Mar Denver Z76 11Mar Note that I'm using an ALV List , not an ALV Grid. I've looked at the sample program BALVBT01 which has a 2-level header but it turns out it's because they are displaying parent/child data. My data has only one level, I just want to group the columns. Found my solution here . Use the top_of_list event to add custom header info before the

ABAP之Module pool program

人走茶凉 提交于 2019-12-06 13:49:07
module pool program: screen type: slection dynpro 选择屏幕的屏幕 subscreen 子屏幕 model dialog box 对话框屏幕 element list: 显示屏幕上的元素列表,其中gv_ok_code是不显示的,它是用来获取页面的function code. flow logic PBO: 屏幕显示之前的逻辑 PAI: 屏幕运行之后的输入,例如回车 屏幕创建: 1.SE11/SE80创建M类型程序,之后 create screen. 2. 设置屏幕基本属性 type、desc. 3. 点击layout拖动元素并设置属性。 4. 编辑程序的逻辑流代码 PBO PAI。 数据交换 屏幕数据和程序数据是双向绑定的。 PBO: 将程序中的数据显示屏幕上。 PAI: 将屏幕上的数据赋值给程序中。 屏幕是一个scrren的系统表 通过Loop可以进行 modify screen。当修改完screen系统表会为该 屏幕制作器中所创建的每个元素包含一个屏幕。 (可以设置隐藏、编辑性、等) next dypro/ set screen xxx 静态/动态设置屏幕的下个屏幕。其中leave screen是离开当前屏幕 leave to screen 400. 离开当前屏幕显示400屏幕 call screen xx 插入屏幕

ABAP函数篇1 日期函数

人盡茶涼 提交于 2019-12-06 13:07:36
1. 日期格式字段检查 data:l_date type ekko-bedat. l_date = '20080901'. CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY' EXPORTING DATE = l_date EXCEPTIONS PLAUSIBILITY_CHECK_FAILED = 1 OTHERS = 2 . IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. 2.查询两个日期间的日间间隔 CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS' EXPORTING I_DATE_FROM = '20080101' * I_KEY_DAY_FROM = I_DATE_TO = '20090508' * I_KEY_DAY_TO = * I_FLG_SEPARATE = ' ' IMPORTING * E_DAYS = E_MONTHS = T_MOTH * E_YEARS = . 3.查询某月的最后一天 CALL FUNCTION 'LAST_DAY_OF_MONTHS' EXPORTING DAY_IN =

ABAP函数篇2 测试DATE_CONVERT_TO_FACTORYDATE

≡放荡痞女 提交于 2019-12-06 13:07:32
DATE_CONVERT_TO_FACTORYDATE 根据日期返回工厂日历日期 函数功能说明: 标出工作日的计算方法 输入传输 CORRECT_OPTION = '+' 如果指定的日期不是工作日,返回日期后的第一个工作日。 CORRECT_OPTION = '-“ 如指定日期并非工作天,返回日期前的第一个工作日。 测试效果: Case1. 工厂日历标识 CN, 20191207 是周六 结果是 2019.12.07, 则周六是个工作日 函数测试参数为- 得到结果也是 2019.12.07 但是 , 咱把工厂日历值改为HK 试一下, 结果是 2019.12.09 周一 函数测试 - 的情况 CN是所有日都认为是工作日了,997 , 666 ??? 贴个测试程序代码 ,收工 *&---------------------------------------------------------------------* *& Report YCX_025 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ycx_025

ABAP DEMO33 选择周的搜索帮助

折月煮酒 提交于 2019-12-06 13:07:29
效果图 *&---------------------------------------------------------------------* *& Report YCX_026 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ycx_026 . **结构 ISELLIST TABLES : isellist . SELECT-OPTIONS : s_week FOR isellist -week . AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week -low . PERFORM getweek CHANGING s_week -low . AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week -high . PERFORM getweek CHANGING s_week -high . FORM getweek CHANGING p_week . DATA : begin_date TYPE d . CALL

ABAP之内表

二次信任 提交于 2019-12-06 12:15:07
内表: 可以在程序中使用定义的表, 它是ABAP语言区别与其他语言最显著的特点之一。    它只存在于内存中与DB无关,定义时不会占用内存,向内表中追加数据时其占用的内存也会相应增加。    内表类似于JAVA语言中的LIST<MAP>, 多行数据,每行数据有不同的字段的这种数据结构。 内表的创建(有多种方式创建):   1. 参照表类型创建内表。 表类型可以是局部Types(程序中声明的Table Type) ,也可以是在全局建的Table Type。     eg: data itab type gty_type.   2. 也可以参照数据库表定义内表。data itab type standard table of t001. ** 其中abap中的数据库不是真正的数据库,而是通过sap软件封装过的数据库,sap软件可以去连接oracle、mysql等,   但是abap语言用的数据库指的是封装后数据库。   接下来引入一个费解的概念: 工作区(表头)Header Line. 来源: https://www.cnblogs.com/ives-xu/p/11982553.html