Make E-mail Sender of PO the PO Creators Name

Make E-mail Sender of PO the PO Creators Name

ABAP Code Needed to Make E-mail Sender of PO the PO Creators Name

1) Do the config and user email data setup as noted elsewhere this is supplemental ABAP help ONLY. 

2) Apply OSS note 561593, this is a release independent note.

3) on SE37, edit function module RV_MESSAGES_MAINTENANCE, this is custom programming logic.

Look for this context block:

context begin
* Änderung prüfen 
------------------------------------------------------
  CLEAR MEX_UPDAT.
  READ TABLE WNAST INDEX 1.
  IF SY-TFILL = 0.
* emtpy WNAST -> no existing output in the database
    READ TABLE VNAST INDEX 1.
    IF SY-TFILL > 0.
* filled VNAST -> new output added
      MEX_UPDAT = 'X'.
    ELSE.
      READ TABLE XNAST INDEX 1.
      IF SY-TFILL > 0.
* filled XNAST -> new output added
        MEX_UPDAT = 'X'.
      ENDIF.
    ENDIF.
  ELSE.
context end
insert this logic:
insert begin
*if external e-mail get created by name
*note: vstat=0 means this item has not been sent yet, even if it is a 
repeat output
*      nacha=5 means that the medium is 5-external send
  tables: ekko.
  loop at vnast where vstat = 0 and nacha = '5'.
    select single * from ekko into ekko
     where ebeln eq vnast-objky.
    if sy-subrc = 0.
      vnast-usnam = ekko-ernam.
      modify vnast.
    endif.
  endloop.
insert end 
context begin
* non-empty WNAST -> output existed before
    LOOP AT VNAST.
      IF VNAST-UPDAT NE SPACE.
        MEX_UPDAT = 'X'.
        EXIT.
      ENDIF.
      NAST_KEY = VNAST.
      READ TABLE WNAST WITH KEY
        MANDT      =    NAST_KEY-MANDT ...
context end 
The PO being sent must use the SMTP communication strategy, a 1 in the Number of Messages field, and the Print immediately box checked on.       *-- By DF

Enhancement for sending mail when the purchase order is releaed

When we release any object in me29n transaction then mail has to be send to vendor that the puchase order has been 
released.  The code that is to be written in the enhacement for the same is:

*&---------------------------------------------------------------------*
*&  Include           ZXM06U44
*&---------------------------------------------------------------------*
*Data Declaration
DATA : rel_ind LIKE i_ekko-frgke.
rel_ind = i_ekko-frgke.
*Release PO when final authorized person process PO
IF sy-tcode EQ 'ME29N' AND rel_ind EQ 2.

*Internal table to get vendor name and address number
  DATA : BEGIN OF it_vname OCCURS 0,
         name1 LIKE lfa1-name1,
         adrnr LIKE lfa1-adrnr,
         END OF it_vname.
*Internal table to get email_if with address number
  DATA : BEGIN OF it_vemail OCCURS 0,
         email LIKE adr6-smtp_addr,
         END OF it_vemail.
*Emiail subject
  DATA : psubject(40) TYPE c .

*Data declaration for mail FM
  DATA:   it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
          it_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
          it_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_cnt TYPE i,
          gd_sent_all(1) TYPE c,
          gd_doc_data LIKE sodocchgi1,
          gd_error TYPE sy-subrc.

*Internal table for message body
  DATA:   it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                  WITH HEADER LINE,
          it_messagewa LIKE LINE OF it_message        .

  psubject = 'PO Regarding'.

*Accessing name and address number of a vendor
  SELECT SINGLE name1 adrnr FROM lfa1 INTO it_vname WHERE lifnr EQ 
i_ekko-lifnr.

*Accessing mail id of a vendor
  SELECT SINGLE smtp_addr FROM adr6 INTO it_vemail WHERE addrnumber EQ 
it_vname-adrnr.

* Mail Text
  clear it_message.
  REFRESH it_message.
  CONCATENATE 'Dear' it_vname-name1 ',' INTO it_messagewa SEPARATED BY 
space.
  APPEND  it_messagewa TO it_message.
  APPEND 'Please issue the items for the following PO Number .' TO 
it_message.
  CLEAR it_messagewa.
  CONCATENATE 'PO NUmber : ' i_ekko-ebeln  INTO it_messagewa SEPARATED 
BY space.
  APPEND it_messagewa TO it_message.
  APPEND 'you can view it at www.mindteck/sap/mm/login.' TO it_message.
  APPEND 'Regards,' TO it_message.
  APPEND 'Anand.' TO it_message.

* Fill the document data.
  gd_doc_data-doc_size = 1.

* Populate the subject/generic message attributes
  gd_doc_data-obj_langu = sy-langu.
  gd_doc_data-obj_name  = 'SAPRPT'.
  gd_doc_data-obj_descr = psubject.
  gd_doc_data-sensitivty = 'F'.

* Describe the body of the message
  CLEAR it_packing_list.
  REFRESH it_packing_list.
  it_packing_list-transf_bin = space.
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 0.
  it_packing_list-body_start = 1.
  DESCRIBE TABLE it_message LINES it_packing_list-body_num.
  it_packing_list-doc_type = 'RAW'.
  APPEND it_packing_list.

* Add the recipients email address
  CLEAR it_receivers.
  REFRESH it_receivers.
  it_receivers-receiver = it_vemail-email.
  it_receivers-rec_type = 'U'.
  it_receivers-com_type = 'INT'.
  it_receivers-notif_del = 'X'.
  it_receivers-notif_ndel = 'X'.
  APPEND it_receivers.

* Call the FM to post the message to SAPMAIL
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data                    = gd_doc_data
      put_in_outbox                    = 'X'
      commit_work                      = 'X'
   IMPORTING
     sent_to_all                      = gd_sent_all
*   NEW_OBJECT_ID                    =
    TABLES
      packing_list                     = it_packing_list
*   OBJECT_HEADER                    =
*   CONTENTS_BIN                     =
      contents_txt                     = it_message
*   CONTENTS_HEX                     =
*   OBJECT_PARA                      =
*   OBJECT_PARB                      =
      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                    = 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.

* Store function module return code
  gd_error = sy-subrc.

* Get it_receivers return code
  LOOP AT it_receivers.
  ENDLOOP.
ENDIF.
This we need to write in the mm06e005.  In this enhacement in this enhacement there is a function exit exit_sapmm06e_013 in this I had wrote the code for the same enhacement. 
*-- Praveen Kumar (praveen417@gmail.com)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
在Java中发送和接收电子邮件是非常常见的任务。Java提供了一种方便的方式来管理和操作电子邮件。 要发送电子邮件,我们可以使用JavaMail API。JavaMail API是由Oracle提供的一个用于处理电子邮件的强大工具。它允许我们在Java程序中创建和发送电子邮件。 首先,我们需要设置JavaMail库的依赖项。我们可以通过添加以下Maven依赖项来实现: ``` <dependency> <groupId>javax.mail</groupId> <artifactId>mailapi</artifactId> <version>1.4.7</version> </dependency> ``` 然后,我们可以使用JavaMail API来创建一个邮件会话,并设置SMTP服务器的参数。例如,我们可以设置SMTP服务器的主机名和端口号: Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.example.com"); properties.put("mail.smtp.port", "587"); 接下来,我们需要创建一个邮件会话,使用SMTP服务器的参数: Session session = Session.getInstance(properties, null); 然后,我们可以创建一个带有发件人、收件人、主题和内容的邮件消息: Message message = new MimeMessage(session); message.setFrom(new InternetAddress("sender@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com")); message.setSubject("Hello World"); message.setText("This is the content of the email."); 最后,我们可以使用Transport类的send方法将邮件发送出去: Transport.send(message); 除了发送电子邮件,我们还可以使用JavaMail API来接收和读取电子邮件。我们可以使用IMAP或POP3协议来接收邮件。 在Java中处理电子邮件是非常方便的。JavaMail API提供了一组强大的工具和函数,可以轻松地创建、发送、接收和读取电子邮件。无论是处理商务邮件还是发送验证码,JavaMail API都是一个十分有用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值