更改了邮件中的smartform布局。

2020-09-03 13:06发布

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

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


嗨,专家

大家好吗?希望一切都好吗?

我创建了一个自定义程序和smartform,以将工资单发送给多名员工。 当我执行smartform时,布局将按照我的要求出现,但是当我通过邮件发送薪水单时,smartform的布局就会更改。 如果我在邮件中看到其显示的格式不同,并且在下载时显示的是以下附件中的唯一文本。

我发送邮件的代码是:

呼叫功能'CONVERT_OTF'
导出
格式='PDF'
* MAX_LINEWIDTH = 132
* ARCHIVE_INDEX =''
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG =''
* PDF_DELETE_OTFTAB =''
* PDF_USERNAME =''
* PDF_PREVIEW =''
* USE_CASCADING =''
* MODIFIED_PARAM_TABLE =
导入
BIN_FILESIZE = V_BIN_FILESIZE
* BIN_FILE =
表格
OTF = iT_otf []
线= IT_LINES
例外情况
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF
OTHERS = 5

IF SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

"附件(pdf-附件)
W_PACKING_LIST-transf_bin ='X'。
W_PACKING_LIST-head_start =1。
W_PACKING_LIST-head_num =0。
W_PACKING_LIST-body_start = 1.

描述表I_ATTACHMENT LINES W_PACKING_LIST-BODY_NUM。

将表I_ATTACHMENT读入W_PACKING_LIST索引W_PACKING_LIST-BODY_NUM。
W_PACKING_LIST-doc_size = W_PACKING_LIST -BODY_NUM * 255。
W_PACKING_LIST-body_num = W_PACKING_LIST-BODY_NUM。
W_PACKING_LIST-doc_type ='PDF'。
W_PACKING_LIST-obj_name ='smart'。
W_PACKING_LIST-obj_descr ='PDF'。< br>
将W_PACKING_LIST附加到I_PACKING_LIST。
清除W_PACKING_LIST。

将T_MAIL插入W_MAIL,其中PERNR = LS_RESULT-EMP_CODE。
WA_MAIL = W_MAIL-USRID_LONG。
ENDLOOP。 >
*接收者列表。
W_RECEIVERS-REC_TYPE ='U'。 " Internet地址
W_RECEIVERS-RECEIVER = WA_MAIL。
W_RECEIVERS-COM_TYPE ='INT'。
W_RECEIVERS-NOTIF_DEL ='X'。
W_RECEIVERS-NOTIF_NDEL ='X'。
APPEND W_RECEIVERS 到I_RECEIVERS。
CLEAR:W_RECEIVERS。



呼叫功能'SO_DOCUMENT_SEND_API1'
导出
DOCUMENT_DATA = W_DOCUMENT_DATA
* PUT_IN_OUTBOX =''
SENDER_ADDRESS = WA_SENDER" SY-UNAME
SENDER_ADDRESS_TYPE ='B'
COMMIT_WORK ='X'
* IP_ENCRYPT =
* IP_SIGN =
* IV_VSI_PROFILE =
*导入
* SENT_TO_ALL =
* NEW_OBJECT_ID =
* SENDER_ID =
表格
PACKING_LIST = I_PACKING_LIST
* OBJECT_HEADER =
CONTENTS_BIN = I_ATTACHMENT
CONTENTS_TXT = I_BODY_MSG
* CONTENTS_HEX = OBJECT_PARA =
* OBJECT_PARB =
接收者= I_RECEIVERS
* ET_VSI_ERROR =
例外情况
TOO_MANY_RECEIVERS = 1
记录文件_NOT_SENT = 2
记录文件类型_NOT_EXIST = 3 > PARAMETER_ERROR = 5
X_ERROR = 6
ENQU EUE_ERROR = 7
其他= 8

如果SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

(114.2 kB)

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

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


嗨,专家

大家好吗?希望一切都好吗?

我创建了一个自定义程序和smartform,以将工资单发送给多名员工。 当我执行smartform时,布局将按照我的要求出现,但是当我通过邮件发送薪水单时,smartform的布局就会更改。 如果我在邮件中看到其显示的格式不同,并且在下载时显示的是以下附件中的唯一文本。

我发送邮件的代码是:

呼叫功能'CONVERT_OTF'
导出
格式='PDF'
* MAX_LINEWIDTH = 132
* ARCHIVE_INDEX =''
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG =''
* PDF_DELETE_OTFTAB =''
* PDF_USERNAME =''
* PDF_PREVIEW =''
* USE_CASCADING =''
* MODIFIED_PARAM_TABLE =
导入
BIN_FILESIZE = V_BIN_FILESIZE
* BIN_FILE =
表格
OTF = iT_otf []
线= IT_LINES
例外情况
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF
OTHERS = 5

IF SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

"附件(pdf-附件)
W_PACKING_LIST-transf_bin ='X'。
W_PACKING_LIST-head_start =1。
W_PACKING_LIST-head_num =0。
W_PACKING_LIST-body_start = 1.

描述表I_ATTACHMENT LINES W_PACKING_LIST-BODY_NUM。

将表I_ATTACHMENT读入W_PACKING_LIST索引W_PACKING_LIST-BODY_NUM。
W_PACKING_LIST-doc_size = W_PACKING_LIST -BODY_NUM * 255。
W_PACKING_LIST-body_num = W_PACKING_LIST-BODY_NUM。
W_PACKING_LIST-doc_type ='PDF'。
W_PACKING_LIST-obj_name ='smart'。
W_PACKING_LIST-obj_descr ='PDF'。< br>
将W_PACKING_LIST附加到I_PACKING_LIST。
清除W_PACKING_LIST。

将T_MAIL插入W_MAIL,其中PERNR = LS_RESULT-EMP_CODE。
WA_MAIL = W_MAIL-USRID_LONG。
ENDLOOP。 >
*接收者列表。
W_RECEIVERS-REC_TYPE ='U'。 " Internet地址
W_RECEIVERS-RECEIVER = WA_MAIL。
W_RECEIVERS-COM_TYPE ='INT'。
W_RECEIVERS-NOTIF_DEL ='X'。
W_RECEIVERS-NOTIF_NDEL ='X'。
APPEND W_RECEIVERS 到I_RECEIVERS。
CLEAR:W_RECEIVERS。



呼叫功能'SO_DOCUMENT_SEND_API1'
导出
DOCUMENT_DATA = W_DOCUMENT_DATA
* PUT_IN_OUTBOX =''
SENDER_ADDRESS = WA_SENDER" SY-UNAME
SENDER_ADDRESS_TYPE ='B'
COMMIT_WORK ='X'
* IP_ENCRYPT =
* IP_SIGN =
* IV_VSI_PROFILE =
*导入
* SENT_TO_ALL =
* NEW_OBJECT_ID =
* SENDER_ID =
表格
PACKING_LIST = I_PACKING_LIST
* OBJECT_HEADER =
CONTENTS_BIN = I_ATTACHMENT
CONTENTS_TXT = I_BODY_MSG
* CONTENTS_HEX = OBJECT_PARA =
* OBJECT_PARB =
接收者= I_RECEIVERS
* ET_VSI_ERROR =
例外情况
TOO_MANY_RECEIVERS = 1
记录文件_NOT_SENT = 2
记录文件类型_NOT_EXIST = 3 > PARAMETER_ERROR = 5
X_ERROR = 6
ENQU EUE_ERROR = 7
其他= 8

如果SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

(114.2 kB)
付费偷看设置
发送
2条回答
一只江湖小虾
1楼-- · 2020-09-03 13:39

嗨,

您可以尝试使用此代码吗。

数据:带有标题行的I_OTF类型ITCOO发生0,
       与标题行类似的I_TLINE TLINE占位0,
       I_RECORD像带标题行的SOLISTI1出现0,
       I_XSTRING TYPE XSTRING,
 *对象发送邮件。
       I_OBJPACK像SOPCKLSTI1一样,以标题行出现了0,
       I_OBJTXT像带标题行的SOLISTI1一样发生0,
       I_OBJBIN像带标题行的SOLIX OCCURS 0,
       I_OBJBIN1像带标题行的SOLIX OCCURS 0,
       I_OBJBIN_F像带标题行的SOLIX OCCURS 0,
       I_RECLIST像SOMLRECI1一样发生在标题行中的0,
 *工作区申报
       WA_OBJHEAD TYPE SOLI_TAB,
       W_CTRLOP TYPE SSFCTRLOP,
       W_COMPOP TYPE SSFCOMPOP,
       W_RETURN TYPE SSFCRESCL,
       WA_BUFFER TYPE STRING。

 通话功能FM_NAME
          出口
 * ARCHIVE_INDEX =
 * ARCHIVE_INDEX_TAB =
 * ARCHIVE_PARAMETERS =
             CONTROL_PARAMETERS = W_CTRLOP
 * MAIL_APPL_OBJ =
 * MAIL_RECIPIENT =
 * MAIL_SENDER =
             OUTPUT_OPTIONS = W_COMPOP
             USER_SETTINGS = ABAP_TRUE"'X'
             BAL_DATE = B_DATE
             LV_FRDT = SO_BUDAT-低
             LV_TODT = SO_BUDAT-高
             LV_OPN = LV_OPN
             LV_BUK = LV_BUK
          输入
 * DOCUMENT_OUTPUT_INFO =
             JOB_OUTPUT_INFO = W_RETURN
 * JOB_OUTPUT_OPTIONS =
           桌子
             GT_KNA1 = GT_KNA1 []
             GT_BSID = GT_FINAL []
      例外情况
        FORMATTING_ERROR = 1
        INTERNAL_ERROR = 2
        SEND_ERROR = 3
        USER_CANCELED = 4
        其他= 5。
         如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
         万一。


         I_OTF [] = W_RETURN-OTFDATA []。

         通话功能'CONVERT_OTF'
           出口
             格式='PDF'"'ASCII'
             MAX_LINEWIDTH = 132
 * ARCHIVE_INDEX =''
 * COPYNUMBER = 0
 * ASCII_BIDI_VIS2LOG =''
 * PDF_DELETE_OTFTAB =''
 * PDF_USERNAME =''
 * PDF_PREVIEW =''
 * USE_CASCADING =''
 * MODIFIED_PARAM_TABLE =
           输入
             BIN_FILESIZE = V_LEN_IN
             BIN_FILE = I_XSTRING
           桌子
             OTF = I_OTF
             线= I_TLINE
           例外情况
             ERR_MAX_LINEWIDTH = 1
             ERR_FORMAT = 2
             ERR_CONV_NOT_POSSIBLE = 3
             ERR_BAD_OTF = 4
             其他= 5。
         如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
         万一。

         通话功能'SCMS_XSTRING_TO_BINARY'
           出口
             缓冲= I_XSTRING
 * APPEND_TO_TABLE =''
 *重要
 * OUTPUT_LENGTH =
           桌子
             BINARY_TAB = I_OBJBIN []。


 数据:对CL_BCS的LO_SEND_REQUEST类型参考,
         LO_DOCUMENT TYPE REF CL_DOCUMENT_BCS,
         LO_SENDER TYPE REF IF_SENDER_BCS,
         LO_RECIPIENT TYPE REF IF_RECIPIENT_BCS VALUE INITIAL,LT_MESSAGE_BODY TYPE BCSY_TEXT,
         LX_DOCUMENT_BCS类型参考CX_DOCUMENT_BCS,
         LV_SENT_TO_ALL类型OS_BOOLEAN。


 尝试。
       LO_DOCUMENT-> ADD_ATTACHMENT(
       出口
       I_ATTACHMENT_TYPE ='PDF'
       I_ATTACHMENT_SUBJECT = SM_NAM
       I_ATT_CONTENT_HEX = I_OBJBIN [])。
     将CX_DOCUMENT_BCS捕捉到LX_DOCUMENT_BCS。
 ENDTRY。

   LO_SEND_REQUEST-> SET_DOCUMENT(LO_DOCUMENT)。
   LO_SENDER = CL_CAM_ADDRESS_BCS => CREATE_INTERNET_ADDRESS(SENDER_MAIL)。
   LO_SEND_REQUEST-> SET_SENDER(LO_SENDER)。
   LO_RECIPIENT = CL_CAM_ADDRESS_BCS => CREATE_INTERNET_ADDRESS(IN_MAILID)。
   LO_SEND_REQUEST-> ADD_RECIPIENT(导出I_RECIPIENT = LO_RECIPIENT I_EXPRESS = ABAP_TRUE)。
   LO_SEND_REQUEST-> ADD_RECIPIENT(LO_RECIPIENT)。
   LO_SEND_REQUEST-> SEND(导出I_WITH_ERROR_SCREEN = ABAP_TRUE接收结果= LV_SENT_TO_ALL)。  

感谢与问候

PR @ $ @ TH


 
一只江湖小虾
2楼-- · 2020-09-03 13:12

谢谢你!

没有oo概念,我该怎么做。

预先感谢

一周热门 更多>