<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<div><br></div>Hello Ibrahim,<div><br></div><div>I think you have to COMMIT AND WAIT after saving. I'll post the whole code for the FM that gets the sofm table. You can then use the code i sent earlier to extract the keys and create the sofm object which should be bound to the attach_object container element:</div><div><br></div><div><br></div><div>
<span class="L1S52">FUNCTION</span> Z_HR_IS_RESOLUTION_SEND_MAIL.<br>
<span class="L1S31">*"----------------------------------------------------------------------</span><br>
<span class="L1S31">*"*"Local Interface:</span><br>
<span class="L1S31">*" IMPORTING</span><br>
<span class="L1S31">*" REFERENCE(P_NUMBER) TYPE PA9013-IS_NUMBER</span><br>
<span class="L1S31">*" REFERENCE(P_PERNR) TYPE PA9013-PERNR</span><br>
<span class="L1S31">*" EXPORTING</span><br>
<span class="L1S31">*" REFERENCE(E_SOFM) TYPE SOFM</span><br>
<span class="L1S31">*"----------------------------------------------------------------------</span><br>
<br>
<span class="L1S52">DATA</span>: FM_NAME <span class="L1S52">TYPE</span> RS38L_FNAM,<br>
FP_DOCPARAMS <span class="L1S52">TYPE</span> SFPDOCPARAMS,<br>
FP_OUTPUTPARAMS <span class="L1S52">TYPE</span> SFPOUTPUTPARAMS,<br>
IN_FPFORMOUTPUT <span class="L1S52">TYPE</span> FPFORMOUTPUT,<br>
PDF_DATA <span class="L1S52">TYPE</span> XSTRING,<br>
PDF_DATA2 <span class="L1S52">TYPE</span> XSTRING.<br>
<span class="L1S52">DATA</span>: WA_9013 <span class="L1S52">TYPE</span> PA9013.<br>
<span class="L1S52">DATA</span>: RT_MESSAGES <span class="L1S52">TYPE</span> BAPIRETTAB.<br>
<span class="L1S52">DATA</span>: WA_MESSAGES <span class="L1S52">TYPE</span> BAPIRET2.<br>
<span class="L1S52">DATA</span> IT_ITEMS <span class="L1S52">TYPE</span> FITV_ATTA_TTY.<br>
<span class="L1S52">DATA</span> WA_FOLD_OBJ <span class="L1S52">TYPE</span> SWO_TYPEID.<br>
<span class="L1S52">DATA</span> WA_ATTA <span class="L1S52">TYPE</span> FITV_ATTA_STY.<br>
<span class="L1S52">DATA</span> L_OBJ <span class="L1S52">TYPE</span> SIBFLPORB.<br>
<span class="L1S52">DATA</span> UPDATE_DB <span class="L1S52">TYPE</span> <span class="L1S52">C</span>.<br>
UPDATE_DB = <span class="L1S33">'X'</span>.<br>
<span class="L1S31">* GETTING THE DATA</span><br>
<span class="L1S52">SELECT</span> <span class="L1S52">SINGLE</span> * <span class="L1S52">FROM</span> PA9013 <span class="L1S52">INTO</span> WA_9013 <span class="L1S52">WHERE</span> PERNR <span class="L1S52">EQ</span> P_PERNR <span class="L1S52">AND</span> IS_NUMBER <span class="L1S52">EQ</span> P_NUMBER.<br>
<span class="L1S31">* PRINT:</span><br>
<span class="L1S31">* Sets the output parameters and opens the spool job</span><br>
FP_OUTPUTPARAMS-DEST = <span class="L1S33">'HQ18'</span>.<br>
FP_OUTPUTPARAMS-NODIALOG = <span class="L1S33">'X'</span>.<br>
FP_OUTPUTPARAMS-NOPREVIEW = <span class="L1S33">'X'</span>.<br>
FP_OUTPUTPARAMS-NOPRINT = <span class="L1S33">'X'</span>.<br>
FP_OUTPUTPARAMS-GETPDF = <span class="L1S33">'X'</span>.<br>
<span class="L1S52">CALL</span> <span class="L1S52">FUNCTION</span> <span class="L1S33">'FP_JOB_OPEN'</span><br>
<span class="L1S52">CHANGING</span><br>
IE_OUTPUTPARAMS = FP_OUTPUTPARAMS<br>
<span class="L1S52">EXCEPTIONS</span><br>
CANCEL = <span class="L1S32">1</span><br>
USAGE_ERROR = <span class="L1S32">2</span><br>
SYSTEM_ERROR = <span class="L1S32">3</span><br>
INTERNAL_ERROR = <span class="L1S32">4</span><br>
<span class="L1S52">OTHERS</span> = <span class="L1S32">5</span>.<br>
<span class="L1S52">IF</span> SY-SUBRC <> <span class="L1S32">0</span>.<br>
<span class="L1S52">ENDIF</span>.<br>
<br>
<span class="L1S31">* Get the name of the generated function module</span><br>
<span class="L1S52">CALL</span> <span class="L1S52">FUNCTION</span> <span class="L1S33">'FP_FUNCTION_MODULE_NAME'</span><br>
<span class="L1S52">EXPORTING</span><br>
I_NAME = <span class="L1S33">'ZF_HR_ISSUE_RES'</span><br>
<span class="L1S52">IMPORTING</span><br>
E_FUNCNAME = FM_NAME.<br>
<span class="L1S52">IF</span> SY-SUBRC <> <span class="L1S32">0</span>.<br>
<span class="L1S52">ENDIF</span>.<br>
<span class="L1S31">* Language and country setting (here US as an example)</span><br>
<span class="L1S52">CALL</span> <span class="L1S52">FUNCTION</span> FM_NAME <span class="L1S31">"'/1BCDWB/SM00000059'</span><br>
<span class="L1S52">EXPORTING</span><br>
/1BCDWB/DOCPARAMS = FP_DOCPARAMS<br>
I_PA9013 = WA_9013<br>
<span class="L1S31">* EMP_COM =</span><br>
<span class="L1S31">* LEAD_COM =</span><br>
<span class="L1S31">* EMP_RES =</span><br>
<span class="L1S31">* ILC_COM =</span><br>
<span class="L1S31">* HR_COM =</span><br>
<span class="L1S31">* VP_COM =</span><br>
<span class="L1S31">* ILR_COM =</span><br>
<span class="L1S52">IMPORTING</span><br>
/1BCDWB/FORMOUTPUT = IN_FPFORMOUTPUT<br>
<span class="L1S52">EXCEPTIONS</span><br>
USAGE_ERROR = <span class="L1S32">1</span><br>
SYSTEM_ERROR = <span class="L1S32">2</span><br>
INTERNAL_ERROR = <span class="L1S32">3</span><br>
<span class="L1S52">OTHERS</span> = <span class="L1S32">4</span><br>
.<br>
<span class="L1S52">IF</span> SY-SUBRC <> <span class="L1S32">0</span>.<br>
<span class="L1S52">ENDIF</span>.<br>
<span class="L1S52">COMMIT</span> <span class="L1S52">WORK</span> <span class="L1S52">AND</span> <span class="L1S52">WAIT</span>.<br>
<br>
FP_DOCPARAMS-LANGU = <span class="L1S33">'E'</span>.<br>
FP_DOCPARAMS-<span class="L1S52">COUNTRY</span> = <span class="L1S33">'US'</span>.<br>
<span class="L1S52">CALL</span> <span class="L1S52">FUNCTION</span> <span class="L1S33">'FP_JOB_CLOSE'</span><br>
<span class="L1S31">* IMPORTING</span><br>
<span class="L1S31">* E_RESULT =</span><br>
<span class="L1S52">EXCEPTIONS</span><br>
USAGE_ERROR = <span class="L1S32">1</span><br>
SYSTEM_ERROR = <span class="L1S32">2</span><br>
INTERNAL_ERROR = <span class="L1S32">3</span><br>
<span class="L1S52">OTHERS</span> = <span class="L1S32">4</span>.<br>
<span class="L1S52">IF</span> SY-SUBRC <> <span class="L1S32">0</span>.<br>
<span class="L1S52">ENDIF</span>.<br>
PDF_DATA = IN_FPFORMOUTPUT-PDF.<br>
<span class="L1S52">IF</span> PDF_DATA <span class="L1S52">IS</span> <span class="L1S52">NOT</span> <span class="L1S52">INITIAL</span>.<br>
<span class="L1S52">CONCATENATE</span> WA_9013-PERNR WA_9013-SUBTY WA_9013-OBJPS WA_9013-SPRPS<br>
WA_9013-ENDDA WA_9013-BEGDA WA_9013-SEQNR <span class="L1S52">INTO</span> L_OBJ-INSTID RESPECTING BLANKS.<br>
<br>
L_OBJ-TYPEID = <span class="L1S33">'ZOBJ0006'</span>.<br>
L_OBJ-CATID = <span class="L1S33">'BO'</span>.<br>
<span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> CL_FITV_GOS=>GET_LINKS<br>
<span class="L1S52">EXPORTING</span><br>
IS_LPORB = L_OBJ<br>
<span class="L1S52">IMPORTING</span><br>
ET_ITEMS = IT_ITEMS<br>
ET_MESSAGES = RT_MESSAGES.<br>
<br>
<span class="L1S52">READ</span> <span class="L1S52">TABLE</span> IT_ITEMS <span class="L1S52">INTO</span> WA_ATTA <span class="L1S52">INDEX</span> <span class="L1S32">1</span>.<br>
<span class="L1S52">CONCATENATE</span> WA_ATTA-FOLTP WA_ATTA-FOLYR WA_ATTA-FOLNO<br>
WA_ATTA-OBJTP WA_ATTA-OBJYR WA_ATTA-OBJNO <span class="L1S52">INTO</span> WA_FOLD_OBJ RESPECTING BLANKS.<br>
<br>
<span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> CL_FITV_GOS=>DELETE<br>
<span class="L1S52">EXPORTING</span><br>
IS_LPORB = L_OBJ<br>
IV_ATTA_ID = WA_FOLD_OBJ<br>
IV_CREATOR = WA_ATTA-SAPNAM<br>
IV_OBJTP = <span class="L1S33">'EXT'</span><br>
IV_OBJDES = <span class="L1S33">'PDF_ATTACHMENT'</span><br>
<span class="L1S52">IMPORTING</span><br>
ET_MESSAGES = RT_MESSAGES.<br>
<span class="L1S52">COMMIT</span> <span class="L1S52">WORK</span> <span class="L1S52">AND</span> <span class="L1S52">WAIT</span>.<br>
<br>
<span class="L1S52">REFRESH</span> IT_ITEMS.<br>
<span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> CL_FITV_GOS=>GET_LINKS<br>
<span class="L1S52">EXPORTING</span><br>
IS_LPORB = L_OBJ<br>
<span class="L1S52">IMPORTING</span><br>
ET_ITEMS = IT_ITEMS<br>
ET_MESSAGES = RT_MESSAGES.<br>
<br>
<span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> CL_FITV_GOS=>SAVE<br>
<span class="L1S52">EXPORTING</span><br>
IV_NAME = <span class="L1S33">'PDF_ATTACHMENT.PDF'</span><br>
<span class="L1S31">* IV_CONTENT =</span><br>
IV_CONTENT_HEX = PDF_DATA<br>
IS_LPORB = L_OBJ<br>
IV_OBJTP = <span class="L1S33">'EXT'</span><br>
RECEIVING<br>
RT_MESSAGES = RT_MESSAGES .<br>
<br>
<span class="L1S52">COMMIT</span> <span class="L1S52">WORK</span> <span class="L1S52">AND</span> <span class="L1S52">WAIT</span>.<br>
<span class="L1S52">READ</span> <span class="L1S52">TABLE</span> RT_MESSAGES <span class="L1S52">INTO</span> WA_MESSAGES <span class="L1S52">WITH</span> <span class="L1S52">KEY</span> <span class="L1S52">TYPE</span> = <span class="L1S33">'E'</span>.<br>
<span class="L1S52">IF</span> SY-SUBRC = <span class="L1S32">0</span>.<br>
<span class="L1S52">CLEAR</span> UPDATE_DB.<br>
<span class="L1S52">ENDIF</span>.<br>
<span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> CL_FITV_GOS=>GET_LINKS<br>
<span class="L1S52">EXPORTING</span><br>
IS_LPORB = L_OBJ<br>
<span class="L1S52">IMPORTING</span><br>
ET_ITEMS = IT_ITEMS<br>
ET_MESSAGES = RT_MESSAGES.<br>
<br>
<span class="L1S52">READ</span> <span class="L1S52">TABLE</span> IT_ITEMS <span class="L1S52">INTO</span> WA_ATTA <span class="L1S52">INDEX</span> <span class="L1S32">1</span>.<br>
<span class="L1S52">MOVE</span>-CORRESPONDING WA_ATTA <span class="L1S52">TO</span> E_SOFM.<br>
E_SOFM-MANDT = SY-MANDT.<br>
E_SOFM-DOCTP = WA_ATTA-OBJTP .<br>
E_SOFM-DOCYR = WA_ATTA-OBJYR .<br>
E_SOFM-DOCNO = WA_ATTA-OBJNO.<br>
<span class="L1S52">IF</span> UPDATE_DB = <span class="L1S33">'X'</span>.<br>
<span class="L1S52">CONCATENATE</span> E_SOFM-FOLTP E_SOFM-FOLYR E_SOFM-FOLNO E_SOFM-DOCTP E_SOFM-DOCYR E_SOFM-DOCNO E_SOFM-FORNO<br>
<span class="L1S52">INTO</span> WA_9013-FOL_PATH RESPECTING BLANKS.<br>
<span class="L1S52">MODIFY</span> PA9013 <span class="L1S52">FROM</span> WA_9013.<br>
<span class="L1S52">ENDIF</span>.<br>
<span class="L1S52">COMMIT</span> <span class="L1S52">WORK</span> <span class="L1S52">AND</span> <span class="L1S52">WAIT</span>.<br>
<span class="L1S52">ENDIF</span>.<br>
<span class="L1S52">ENDFUNCTION</span>. <br><br>Regards,</div><div>Ali</div><div><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: ikhansap@gmail.com<br>Date: Thu, 5 Jan 2012 14:21:02 +0400<br>Subject: Re: Issue with attaching pdf in work item<br>To: mr_mago40@hotmail.com<br>CC: sap-wug@mit.edu<br><br><div dir="ltr">Hi Ali,<br> I tried out the way you have mentioned, but its not working. Please find the code below, let me know if I am missing something.<br><span style="color:rgb(255,0,0)">When I debugged this code I found that message parameter(</span>t_message.)<span style="color:rgb(255,0,0)"> from SAVE method is empty, but after the GET_LINKS method call the parameter et_items is not returning anything.</span><br>
<br> CALL METHOD cl_fitv_gos=>save<br> EXPORTING<br> iv_name = 'Test.pdf'<br> iv_content_hex = zxstring<br> is_lporb = ls_lprob<br> iv_objtp = 'EXT'<br> RECEIVING<br>
rt_messages = lt_message.<br><br> CALL METHOD cl_fitv_gos=>get_links<br> EXPORTING<br> is_lporb = ls_lprob<br> IMPORTING<br> et_items = lt_attach<br> et_messages = lt_message1.<br>
<br>
Regards<br>IK<br><br><div class="ecxgmail_quote">On Thu, Jan 5, 2012 at 11:59 AM, Ali Husain <span dir="ltr"><<a href="mailto:mr_mago40@hotmail.com">mr_mago40@hotmail.com</a>></span> wrote:<br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">
<div><br></div>Hello,<div><br></div><div>Yeah i forgot to mention the saving part. It should work that way.<br><div class="ecxhm"><br></div><div><div class="ecxhm"><div></div><hr>From: <a href="mailto:ikhansap@gmail.com">ikhansap@gmail.com</a><br>
Date: Thu, 5 Jan 2012 10:15:12 +0400<br>Subject: Re: Issue with attaching pdf in work item<br>To: <a href="mailto:sap-wug@mit.edu">sap-wug@mit.edu</a><br>CC: <a href="mailto:mr_mago40@hotmail.com">mr_mago40@hotmail.com</a></div>
<div><div></div><div class="h5"><br><br><div dir="ltr">Hi Ali,<br> Thanks for your reply. I have a doubt on your approach. Before calling CL_FITV_GOS=>GET_LINKS i think we should use CL_FITV_GOS=>SAVE to save the pdf document(attachment) to GOS and then used GET_LINKS method to get the key of the attachment. Correct me if I am wrong.<br>
<br>Regards<br>Ibrahim<br><br><div>On Wed, Jan 4, 2012 at 1:49 PM, Ali Husain <span dir="ltr"><<a href="mailto:mr_mago40@hotmail.com">mr_mago40@hotmail.com</a>></span> wrote:<br><blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">
<div><br></div>Hello Ibrahim,<div><br></div><div>I've done that in a different way and it was working fine with me. After you convert to pdf, you can call the method CL_FITV_GOS=>GET_LINKS and pass it your BOR object along with the keys. The sofm table reference you get back you can then perform the following: </div>
<div><br></div><div><div>LOOP AT ex_sofm INTO ls_sofm.</div><div> CONCATENATE ls_sofm-foltp ls_sofm-folyr ls_sofm-folno</div><div> ls_sofm-doctp ls_sofm-docyr ls_sofm-docno ls_sofm-fortp</div><div> ls_sofm-foryr ls_sofm-forno INTO lv_key RESPECTING BLANKS.</div>
<div><br></div><div> swc_create_object lr_sofm 'SOFM' lv_key.</div><div> APPEND lr_sofm TO lt_sofm.</div><div> CLEAR: ls_sofm, lv_key,lr_sofm.</div><div>ENDLOOP.</div><div><br></div><div>swc_set_table container 'EX_SOFM' lt_sofm.</div>
</div><div><br></div><div>You can then bind lt_sofm with the attach_objects container element and the attachment should open when displaying the work item.</div><div><br></div><div>Hope this helps,</div><div>Ali</div><div>
<br></div><br><div><div></div>> From: <a href="mailto:sap-wug-request@mit.edu">sap-wug-request@mit.edu</a><br>> Subject: SAP-WUG Digest, Vol 86, Issue 3<br>> To: <a href="mailto:sap-wug@mit.edu">sap-wug@mit.edu</a><br>
> Date: Tue, 3 Jan 2012 12:13:09 -0500<br>> <br>> Send SAP-WUG mailing list submissions to<br>>         <a href="mailto:sap-wug@mit.edu">sap-wug@mit.edu</a><br>> <br>> To subscribe or unsubscribe via the World Wide Web, visit<br>
>         <a href="http://mailman.mit.edu/mailman/listinfo/sap-wug" target="_blank">http://mailman.mit.edu/mailman/listinfo/sap-wug</a><br>> or, via email, send a message with subject or body 'help' to<br>>         <a href="mailto:sap-wug-request@mit.edu">sap-wug-request@mit.edu</a><br>
> <br>> You can reach the person managing the list at<br>>         <a href="mailto:sap-wug-owner@mit.edu">sap-wug-owner@mit.edu</a><br>> <br>> When replying, please edit your Subject line so it is more specific<br>
> than "Re: Contents of SAP-WUG digest..."<br>> <br>> <br>> Today's Topics:<br>> <br>> 1. Issue with attaching pdf in work item (Ibrahim)<br>> <br>> <br>> ----------------------------------------------------------------------<br>
> <br>> Message: 1<br>> Date: Tue, 3 Jan 2012 16:06:34 +0400<br>> From: Ibrahim <<a href="mailto:ikhansap@gmail.com">ikhansap@gmail.com</a>><br>> Subject: Issue with attaching pdf in work item<br>
> To: "SAP Workflow Users' Group" <<a href="mailto:SAP-WUG@mit.edu">SAP-WUG@mit.edu</a>><br>> Message-ID:<br>>         <<a href="mailto:CADb5asq-DCxY0HidihMp9BYmzuCb3BAF6CYJad33W25%2B2yeN-Q@mail.gmail.com">CADb5asq-DCxY0HidihMp9BYmzuCb3BAF6CYJad33W25+2yeN-Q@mail.gmail.com</a>><br>
> Content-Type: text/plain; charset="iso-8859-1"<div><br>> <br>> Dear Friends,<br>> I am trying to attach Adobe form output to a work item and send it in for<br>> approval. I have converted the Adobe form output to binary format inside<br>
> the program and passed it to the workflow container while starting the<br>> workflow and then inside the workflow i used the below method code to<br>> convert the binary to xstring format and then attach it to the workitem.<br>
> But when I open the attachment from business workplace I am getting an<br></div>> error that "*There was an error opening this document, the file is damaged<br>> and could not be repaired*". I tried to debug the method and everything<div>
<div></div><div><br>> seems to be fine, even I check the Adobe output by sending it as an email<br>> attachment and I am able to open the same Adobe form attachment in the<br>> email. So I suspect that I am doing something wrong while converting the<br>
> same in the workflow. Please advise what would be wrong with the below code.<br>> <br>> <br>> DATA: wid TYPE swwwihead-wi_id,<br>> op_len TYPE wsuser-wsuserinstanceno,<br>> it_solix_tab TYPE solix-line OCCURS 0.<br>
> <br>> DATA : zswr_att_header TYPE swr_att_header,<br>> zswr_att_id TYPE swr_att_id,<br>> lo_sofm TYPE swc_object,<br>> zxstring TYPE xstring.<br>> <br>> swc_get_element container 'WID' wid.<br>
> swc_get_element container 'OP_LEN' op_len.<br>> swc_get_table container 'IT_SOLIX_TAB' it_solix_tab.<br>> <br>> CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'<br>> EXPORTING<br>> input_length = op_len<br>
> IMPORTING<br>> buffer = zxstring<br>> TABLES<br>> binary_tab = it_solix_tab.<br>> <br>> zswr_att_header-file_type = 'B'.<br>> zswr_att_header-file_name = 'Attachment.pdf'.<br>
> zswr_att_header-file_extension = 'PDF'.<br>> zswr_att_header-language = 'EN'.<br>> BREAK-POINT.<br>> CALL FUNCTION 'SAP_WAPI_ATTACHMENT_ADD'<br>> EXPORTING<br>> workitem_id = wid<br>
> att_header = zswr_att_header<br>> att_bin = zxstring<br>> IMPORTING<br>> att_id = zswr_att_id.<br>> <br>> swc_create_object lo_sofm 'SOFM' zswr_att_id-doc_id.<br>> swc_set_element container 'SOFM' lo_sofm.<br>
</div></div>> -------------- next part --------------<br>> An HTML attachment was scrubbed...<br>> URL: <a href="http://mailman.mit.edu/pipermail/sap-wug/attachments/20120103/40efd24a/attachment-0001.htm" target="_blank">http://mailman.mit.edu/pipermail/sap-wug/attachments/20120103/40efd24a/attachment-0001.htm</a><br>
> <br>> ------------------------------<br>> <br>> _______________________________________________<br>> SAP-WUG mailing list<br>> <a href="mailto:SAP-WUG@mit.edu">SAP-WUG@mit.edu</a><br>> <a href="http://mailman.mit.edu/mailman/listinfo/sap-wug" target="_blank">http://mailman.mit.edu/mailman/listinfo/sap-wug</a><br>
> <br>> <br>> End of SAP-WUG Digest, Vol 86, Issue 3<br>> **************************************<br></div>                                            </div></div>
<br>_______________________________________________<br>
SAP-WUG mailing list<br>
<a href="mailto:SAP-WUG@mit.edu">SAP-WUG@mit.edu</a><br>
<a href="http://mailman.mit.edu/mailman/listinfo/sap-wug" target="_blank">http://mailman.mit.edu/mailman/listinfo/sap-wug</a><br>
<br></blockquote></div><br></div></div></div></div></div>                                            </div></div>
</blockquote></div><br></div></div></div>                                            </div></body>
</html>