Excel附件SO_DOCUMENT_SEND_API1中只有一行

2020-08-22 20:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在使用FM" SO_DOCUMENT_SEND_API1"将数据发送到邮件的附件中。

但是所有数据仅出现在excel文件的第一行。

在上述情况下请提供帮助。

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在使用FM" SO_DOCUMENT_SEND_API1"将数据发送到邮件的附件中。

但是所有数据仅出现在excel文件的第一行。

在上述情况下请提供帮助。

谢谢。

付费偷看设置
发送
5条回答
95年老男孩
1楼-- · 2020-08-22 21:20

"我正在使用FM" SO_DOCUMENT_SEND_API1""

不要。 这些功能模块很麻烦。 使用CL_BCS组的类。 记录完整,易于使用,可靠且包含大量示例。

lukcy2020
2楼-- · 2020-08-22 21:19

如果希望有人给您答案而不是让我们猜测可能的原因,请共享您的代码。

空代码
3楼-- · 2020-08-22 21:05

嗨,

请检查以下几点的代码:

1。 创建附件表时-确保已添加换行符char。 (在您的执行子例程build_xls_data_table中。)

示例:

CONCATENATE XXXX xxxxx INTO it_attach由con_tab分隔。

CONCATENATE con_cret it_attach INTO it_attach。

其中con_tab =

  • con_tab类型c值cl_abap_char_utilities => HORIZONTAL_TAB,
  • con_cret类型c值cl_abap_char_utilities => CR_LF

然后您的数据将显示在单独的行中

此致

Venkat

哎,真难
4楼-- · 2020-08-22 21:16

请检查以下代码。

如果sy-batch不是初始的。
执行POPULATE_EMAIL_MESSAGE_BODY。
执行SEND_FILE_AS_EMAIL_ATTACHMENT
表IT_MESSAGE
IT_ATTACH
使用'供应商主数据'
'xls'
' 文件名'
''
''
''
更改GD_ERROR
GD_RECIEVER。
ENDIF。



格式POPULATE_EMAIL_MESSAGE_BODY。
刷新IT_MESSAGE。
IT_MESSAGE ='请查找随附的供应商主数据。 P_FORMAT
P_FILENAME
P_ATTDESCRIPTION
P_SENDER_ADDRESS
P_SENDER_ADDRES_TYPE
更改P_ERROR
P_RECIEVER。
数据:LD_ERROR类型SY-SUBRC,
LD_RECIEVER类型SY-SUBRC LD_MTITLE像SODOCCHGI1-OBJ_DESCR,
LD_EMAIL像SOMLRECI1-RECEIVER,
LD_FORMAT类型SO_OBJ_TP,
LD_ATTDESCRIPTION类型SO_OBJ_NAM,
LDLDATTFILENAME类型SO_OBJ_ESS,DDR_SEN_DERA,DER_SENA,DER_SENA,DER_SEND _TYPE像SOEXTRECI1-ADR_TYP,
LD_RECEIVER像SY-SUBRC。
* LD_EMAIL = P_EMAIL。
LD_MTITLE = P_MTITLE。
LD_FORMAT = P_FORMAT。
LD_ATTDESCRIPTION = P_ATTSCRIPTION = P_ATTSCRSCRIPTION 。
LD_SENDER_ADDRESS = P_SENDER_ADDRESS。
LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE。
*填写文档数据。
W_DOC_DATA-DOC_SIZE =1。
*填充主题/通用消息属性
W_DOC_DATA_OBJ = SY-LANGU。
W_DOC_DATA-OBJ_NAME ='SAPRPT'。
W_DOC_DATA-OBJ_DESCR = LD_MTITLE。
W_DOC_DATA-SENSITIVTY ='F'。
*填写文档数据并获取附件大小< br> CLEAR W_DOC_DATA。
描述表IT_ATTACH行W_CNT。
读取表IT_ATTACH索引W_CNT。
W_DOC_DATA-DOC_SIZE =
(W_CNT-1)* 255 + STRLEN(IT_ATTACH)。
W_DOC_DATA -OBJ_LANGU = SY-LANGU。
W_DOC_DATA-OBJ_NAME ='SAPRPT'。
W_DOC_DATA-OBJ_DESCR = LD_MTITLE。
W_DOC_DATA-SENSITIVTY ='F'。
清除T_ATTACHMENT。
刷新T_ATTACHMENT。
T_ATT ACHMENT [] = PIT_ATTACH []。
*描述消息的正文
CLEAR T_PACKING_LIST。
REFRESH T_PACKING_LIST。
T_PACKING_LIST-TRANSF_BIN =空格。
T_PACKING_LIST-HEAD_START = 1.
> T_PACKING_LIST-HEAD_NUM =0。
T_PACKING_LIST-BODY_START =1。
描述表IT_MESSAGE行T_PACKING_LIST-BODY_NUM。
T_PACKING_LIST-DOC_TYPE ='RAW'。
APPEND T_PACKING_LIST。
*创建附件 通知
T_PACKING_LIST-TRANSF_BIN ='X'。
T_PACKING_LIST-HEAD_START = 1.
T_PACKING_LIST-HEAD_NUM = 1.
T_PACKING_LIST-BODY_START = 1.
描述表T_ATTACHMENT行T_PACKING_LIST-BODY_NUM。
T_PACKING_LIST-DOC_TYPE = LD_FORMAT。
T_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION。
T_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME。
T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255。 添加收件人的电子邮件地址

清除T_RECEIVERS。
刷新T_RECEIVERS。

选择*从ZTVEN_EMAIL到表@DATA(LT_EM AIL)哪里TYP_PER ='R'。
如果SY-SUBRC处于初始状态。
在LT_EMAIL分配字段LOOP到FIELD-SYMBOL()。
T_RECEIVERS-RECEIVER = -EMAIL_ID。 > T_RECEIVERS-REC_TYPE ='U'。
T_RECEIVERS-COM_TYPE ='INT'。
T_RECEIVERS-NOTIF_DEL ='X'。
T_RECEIVERS-NOTIF_NDEL ='X'。
APPEND T_RECEIVERS。
> ENDLOOP。
ENDIF。

呼叫功能'SO_DOCUMENT_SEND_API1'
导出
DOCUMENT_DATA = W_DOC_DATA
PUT_IN_OUTBOX ='X'
SENDER_ADDRESS = LD_SENDER_ADDRESS SENDER br> COMMIT_WORK ='X'
导入
SENT_TO_ALL = W_SENT_ALL
表格
PACKING_LIST = T_PACKING_LIST
CONTENTS_BIN = T_ATTACHMENT
CONTENTS_TXT = IT_MESSAGE
接收者= T_RECEIVERS br> 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
其他= 8。 > *填充zerror返回码
LD_ER ROR = SY-SUBRC。
*填充zreceiver返回代码
LOOP AT T_RECEIVERS。
LD_RECEIVER = T_RECEIVERS-RETRN_CODE。
ENDLOOP。

路亽曱_Ryan
5楼-- · 2020-08-22 21:08

您的代码 不会帮助我们理解您的问题。 您说附件仅包含一行,但是您的代码从未知的输入参数PIT_ATTACH中获取了附件。 您了解没有最少的信息量就不可能为您提供帮助吗?

一周热门 更多>