안녕하세요..
Production order confirmation을 CBO로 만들어서 BAPI를 통해 confirm을 하고 있습니다.
Confirm을 할때 특정 user에게 confirm한 정보를
SO_DOCUMENT_SEND_API1 function을 통해 메일을 같이 전송하고 있고요..
confirmation을 할 때 file을 attch하여 attach한 파일 정보도 같이 보내려고 합니다.
그래서 이것저것 찾아보다가 Generic Object service라는 파일을 attch하고 메일을 보낼수 있는 common한 기능이 있더라고요..ㅎㅎ
해당 기능을 사용하면 파일을 attach하는건 문제 없을것 같은데 메일을 보낼때 recipient에다가 담당자를 또 입력해서 넣어줘야 하더라고요..
cbo에서 confirmation할 때 이미 메일을 받는 수신자는 internal table에 알고 있을 때 해당 generic object service function에 recipient에다가 수신자를 자동으로 넣어서 같이 메일을 보내고 싶습니다.
이런 기능 구현해보신 분 계세요??
댓글 9
-
버미!
2010.04.26 19:15
-
찬호사랑
2010.04.26 19:33
답변 감사합니다.
해당 펑션 SO_NEW_DOCUMENT_ATT_SEND_API1으로 파일도 첨부해서 메일을 보내는건 적용해봤습니다.ㅎㅎ
제가 궁금한것은 Generic Object service로 document첨부한 것을 SO_NEW_DOCUMENT_ATT_SEND_API1의 table파라미터로 넣어서 해당 document를 같이 보내고 싶습니다.
Generic object service의 method가 필요할 것으로 판단이 되는데요..흠..
가능한지 먼저 검토후에 다시 답변 달께요.ㅎㅎ
-
찬호사랑
2010.04.26 20:36
ㅎㅎ.다시 정리해서 여쭤보겠습니다.
cl_gos_manager class를 이용해서 Generic object service를 Link해서 document첨부가 가능토록 하였습니다.
그럼 CBO에서 Save할 때 document attch한 파일 정보도 같이 SO_NEW_DOCUMENT_ATT_SEND_API1에 넣어서 보낼수 있는 방법이 무엇이 있을까요?
CL_GOS_MANAGER의 Methods를 살펴보니 첨부한 document를 가져와서 SO_NEW_DOCUMENT_ATT_SEND_API1에 넣어줄 펑션이 없는것 같은데요.
-
애불래
2010.04.27 17:59
ㅎㅎ 역시 찬호사랑님 질문은 난이도가 높군요. SO_NEW_DOCUMENT_ATT_SEND_API1 메일 펑션 전에 2개의 펑션을 더 이용해야 합니다.
1.
BDS_GOS_CONNECTIONS_GET // gos에 있는 attachment list를 가져오는 펑션
2. SO_DOCUMENT_READ_API1 // 1번의 attachment list로 가져온 내용을 통해 실제 binary 데이터를 가져오는 펑션.
2번의 펑션을 통해 가져온 파일 정보(사이즈등)을
PACKING_LIST 파라미터에 넣어준뒤 실제 바이너리 내용은
CONTENTS_BIN
파라미터에 넣어주면 됩니다.
여기까지가 힌트고 나머지는 SDN 찾아보면 예제 많이 나오니 함 찾아보세요.ㅎㅎㅎ
-
찬호사랑
2010.04.27 19:45
애불래님 정말 답변 감사합니다.
이제 대략적으로 감이 좀 잡힙니다.
SDN에서 힌트 많이 찾아봐두 좀 안되는 부분이 있어 다시 연락드립니다.
다른게 아니라.
BDS_GOS_CONNECTIONS_GET 펑션으로 return받은 table값에는 말씀하신대로 attach한 정보가 들어있더군요.
그 정보를 다시 SO_DOCUMENT_READ_API1 에 넣어 binary데이터로 만들어야되는데 말입니다.
이때
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
DOCUMENT_ID =
document_id ( SOFOLENTI1-DOC_ID : Folder Entry ID (Obj+Fol+Forwarder Name) )의 값을 어떻게 만들어서 넣어줘야 합니까?
return받은 table의 값으로 조합해서 넣어주는것 같은데 대략 짐작이 안가네요.
SDN에서 찾아봐도 reference를 찾기 힘드네요.ㅎㅎ
부탁드립니다.
-
애불래
2010.04.27 20:16
ㅎㅎ 조금만 더 노력해서 찾아보세요. 저는 이 방법을 찾고 구현하는데 일주일 이상 걸렸습니다.
제가 참고한 reference는 아래 소스입니다. 이걸 참고해서 'SO_DOCUMENT_READ_API1' 펑션사용 방법을 알았습니다.
http://wiki.sdn.sap.com/wiki/display/Snippets/ABAP+-+Sending+GOS+attachments+to+an+email+address
참고로 위 소스에 있는 'SREL_GET_NEXT_RELATIONS'펑션이 4.6C에서만 사용가능하니, 대신 사용하는게 BDS_GOS_CONNECTIONS_GET 입니다.
참고하시길.. .
-
찬호사랑
2010.04.28 01:42
애불래님 정말 감사감사합니다.
BDS_GOS_CONNECTIONS_GET 펑션으로 해당 Object Key로 파일찾아서 binary파일로 만들고 메일 전송 완료했습니다.
'SREL_GET_NEXT_RELATIONS' 펑션으로 계속했는데 안되더라고요..4.6C에서만 가능하구나.ㅎㅎ
암튼 정말 정말 감사합니다. ( 이틀 걸려서 해결했네요. ^^^^ )
그런데 아직 Generic Object Service에 대해서는 정확한 개념은 좀더 찾아봐야겠네요.ㅎㅎ
파일을 Upload하면 DB형태로 저장이 되는것인지 아니면 서버의 어떤 디렉토리에 파일로 생성되는 것인지..등등.
암튼 CBO프로그램에서 별도로 파일 Upload , download관리안해두 되서 정말 좋네요..
그리고 애불래님의 Tip정말 소중했어요. 저랑 비슷한 스타일이신거 같아요..ㅎㅎ( 조금만 더 노력해서 찾아보세요 ^^ ).
저도 이런 스타일이거든요..ㅎㅎ
-
애불래
2010.04.28 17:42
도움이 됬다니 다행이네요( 맘 상하지 않고 직접 찾아서 해결하셔서 다행이구요.)
GOS에 대한 좀 더 상세한 개념은 ,EASY ABAP PLUS 책에 GOS 챕터를 참조하셔도 좋을거 같고,
파일 저장 형태에 대한 내용이나 GOS 내용은 이곳에 ONEPAPER로도 올라온적 있으니 찾아 보심 좋을거 같네요.
그리고 파일저장에 대해선 "SAP Note 904711 - SAPoffice: Where are documents physically stored?,Note 530792 - Storing documents in the generic object services" "도 있으니 참고하시길...
-
파초선
2010.11.05 18:19
제가 원하는 답을 찾았네요..저도
1.
BDS_GOS_CONNECTIONS_GET // gos에 있는 attachment list를 가져오는 펑션
2. SO_DOCUMENT_READ_API1 // 1번의 attachment list로 가져온 내용을 통해 실제 binary 데이터를 가져오는 펑션.
이 펑션을 찾고 있었는데.ㅠ_ㅠ 너무 너무 감사합니다!! 제가 왜!! 검색을 제대로 못해서.ㅠ_ㅠ;;
멋지십니다!!ㅎㅎㅎ
SO_NEW_DOCUMENT_ATT_SEND_API1 쓰세요..이 펑션 첨부파일도 보낼수 있고요..수신자도 지정할 수 있습니다.
사용법도 매우 간단합니다