04-08-2008 4:39 AM
Hi Experts,
I am trying to send the inforamtion to my customers whenever the purchase order is crearted to intimate the PO information to customer's mail . For this i am using Badi ME_PURCHDOC_POSTED. But it is not going to customer'sl id. Please check my code & correct it. Any other settings i have to do for this?
Inside of method i have coded like this
DATA : W_DOCUMENT TYPE SODOCCHGI1,
LW_MARA TYPE MARA,
LW_MAKT TYPE MAKT,
IT_USER TYPE TABLE OF somlreci1,
IT_YUSER LIKE LINE OF IT_USER.
IT_YUSER-RECEIVER = ' '.
APPEND IT_YUSER to it_user.
IT_YUSER-RECEIVER = ' '.
APPEND IT_YUSER to it_user.
DATA : LT_TXT TYPE TABLE OF SOLISTI1,
LW_TXT LIKE LINE OF LT_TXT.
DATA : LT_PACK TYPE TABLE OF SOPCKLSTI1,
LW_PACK LIKE LINE OF LT_PACK.
DATA : LW_EKPO LIKE LINE OF IM_EKPO.
LOOP AT IM_EKPO INTO LW_EKPO.
SELECT SINGLE * FROM MARA INTO LW_MARA
WHERE MATNR = LW_EKPO-MATNR.
IF SY-SUBRC IS INITIAL.
SELECT SINGLE * FROM MAKT INTO LW_MAKT
WHERE MATNR = LW_EKPO-MATNR
AND SPRAS = SY-LANGU.
CONCATENATE LW_EKPO-MATNR '-' LW_MAKT-MAKTX
INTO LW_TXT
SEPARATED BY SPACE.
APPEND LW_TXT TO LT_TXT.
ENDIF.
ENDLOOP.
IF LT_TXT IS INITIAL. RETURN. ENDIF.
CONCATENATE 'The Purchase Order No.'
IM_EKKO-EBELN
'for the following'
'materials has been posted:'
INTO LW_TXT
SEPARATED BY SPACE.
INSERT LW_TXT INTO LT_TXT INDEX 1.
INSERT SPACE INTO LT_TXT INDEX 2.
CONCATENATE 'P.O. No.' IM_EKKO-EBELN 'Posted'
INTO W_DOCUMENT-OBJ_DESCR
SEPARATED BY SPACE.
W_DOCUMENT-SENSITIVTY = 'O'.
W_DOCUMENT-OBJ_LANGU = SY-LANGU.
LW_PACK-HEAD_START = 1.
LW_PACK-HEAD_NUM = 0.
LW_PACK-BODY_START = 1.
LW_PACK-BODY_NUM = LINES( LT_TXT ).
LW_PACK-DOC_TYPE = 'RAW'.
APPEND LW_PACK TO LT_PACK.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = W_DOCUMENT
TABLES
PACKING_LIST = LT_PACK
CONTENTS_TXT = LT_TXT
RECEIVERS = it_user
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.
04-08-2008 5:08 AM
Hi kelvin
Use 'commit work' at the end of FM
Reward if useful
Regards.
Talwinder