朋友们好:
我想和大家分享一下我对SD的认识——账单发票应该以PDF格式从SAP环境通过电子邮件发送给多个客户。我知道要实现这一点,可能有多种选择,但我想与大家分享我为满足这一业务需求而进行的工作知识。
业务背景:
在标准SAP环境中,我们可以用标准格式将邮件发送给多个收件人。但是业务需要一个定制程序触发邮件,带有一些额外的列信息以及业务终端用户容易理解的定制消息。
为了克服这个问题,我们需要按照以下步骤进行技术功能配置:
功能配置:
事务代码:NACE
选择V3应用程序并单击"输出类型"按钮。
使用以下设置创建任何自定义输出,如下面的快照所示。
我选择了"发货时间"字段下的选项#3,因为发票将根据业务需求触发,即它将取决于它们的依赖关系。
同时,我还创建了单独的自定义通信策略,并将其分配给我们创建的自定义输出类型。
备注:时间选项卡和排序顺序选项卡不适用于此场景。
在完成所需选项卡下的所有详细信息后,点击"邮件标题和文本"选项。
完成邮件标题和文本结构后,物联网架构,点击"处理例程"结构。
注意:我们已经为我们的输出源创建了一个带有所需编码逻辑的自定义程序ZRLB\ U发票。
在Partner Functions结构中,如上图所示更新数据
完成以上功能配置后,保存
现在,输出类型已创建,现在我们需要在计费输出程序下进行分配,如下面的快照所示。
保存。
维护状态记录:VV31
保存。
技术编码:
*------------------------**通过SAPscript智能窗体打印发票**———————————————————————-*报告ZRLB\ U发票。***************************************************************************课程:销售与分销****************************************************************************表:ADR6.
*数据声明包括RLB\发票\数据\申报。
*表格定义包括RLB\发票\表格01。包括RLB\打印\表格。*———————————————————————**表格条目*———————————————————————*使用返回代码US屏幕填写表格。
数据:LF RETCODE类型SY-SUBRC。清除代码。XSCREEN=US\u屏幕。使用USU屏幕执行处理正在更改LFU代码。如果你重新编码为0。返回代码=1。否则。返回代码=0。ENDIF.
ENDFORM."进入*———————————————————————**表单处理**———————————————————————*使用PROC\u屏幕进行表单处理更改CF\ U RETCODE.
数据:LS\ U PRINT\ U DATA\ U TO\ U READ TYPE LBBIL\ U PRINT\ U DATA\ U TO\ U READ。数据:提单发票类型提单发票。数据:LF\u FM\u NAME TYPE RS38L\u FNAM。数据:LS\控制\参数类型SSFCTRLOP。数据:LS\u COMPOSER\u PARAM TYPE SSFCOMPOP。资料图:LS\ U收件人类型SWOTOBJID。资料图:LS\ U发送器类型SWOTOBJID。数据:LF\u FORMNAME TYPE TDSFNAME。数据:LS\u ADDR\u键类似ADDR\u键。资料图:LS\ U DLV-LAND与VBRK-LAND1相似。数据:LS\u JOB\u INFO TYPE SSFCRESCL,文件信息类型SSFCRESPD,LS\u JOB\u输出类型SSFCRESOP.
*来自定制表TNAPR的SmartForm如果\u FORMNAME=TNAPR-SFORM.
*确定打印数据使用LF\u FORMNAME执行将\u PRINT\u DATA\u设置为\u READ将LS\u PRINT\u DATA\u更改为\u READCF\u RETCODE.
如果CF\u RETCODE=0。*选择打印数据使用LS\u PRINT\u DATA\u TO \u READ执行GET\u DATA更改LS\u ADDR\u键LS\ DLV-LAND公司提单发票CF\U代码。结束。*********************************************类型:从第6天开始,地址编号类型AD\ U ADDRNUM,SMTP地址类型AD\U SMTPADR,第6节结束。数据:WA\ U ADR6类型TY\ U ADR6,它是tyu ADR6的ADR6类型表,带标题行的ADR6-SMTP地址的S\电子邮件类型表。
从ADR6中选择ADDRNUMBER SMTP\ U ADDR到表IT\ U ADR6的相应字段,其中ADDRNUMBER=LS\ U ADDR\ U KEY-ADDRNUMBER。如果SY-SUBRC=0。把它从ADR6循环到WA ADR6。S\电子邮件=WA\ U ADR6-SMTP\地址。附加S\ U电子邮件。结束循环。结束。*************************************************如果CF\u RETCODE=0。使用LS\u ADDR\u键执行SET\u PRINT\u PARAMLS\ DLV-LAND公司更改LS\控制\参数作曲家参数LS\收件人LS\发送器CF\U代码。ENDIF.
如果CF\u RETCODE=0。*确定发票的smartform功能模块调用函数"SSF\u FUNCTION\u MODULE\u NAME"导出FORMNAME=LF\u FORMNAME*变量=""*直接电话=""导入FM\u NAME=LF\u FM\u NAME例外情况表=1无功能模块=2其他=3。如果SY-SUBRC0。*错误处理CF\ RETCODE=SY-SUBRC。执行协议更新。结束。ENDIF.