<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ALE FM in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321776#M795705</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     Can any one help me how to create FM for Idoc posting whith ex.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 23 Jan 2008 07:41:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-23T07:41:01Z</dc:date>
    <item>
      <title>ALE FM</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321776#M795705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     Can any one help me how to create FM for Idoc posting whith ex.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2008 07:41:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321776#M795705</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-23T07:41:01Z</dc:date>
    </item>
    <item>
      <title>Re: ALE FM</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321777#M795706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;These blogs will help u...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/people/ravikumar.allampallam/blog/2005/02/23/configuration-steps-required-for-posting-idocsxi&lt;/P&gt;&lt;P&gt;/people/swaroopa.vishwanath/blog/2007/01/22/ale-configuration-for-pushing-idocs-from-sap-to-xi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;plzz reward if those threads are usefull to u...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2008 07:44:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321777#M795706</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-23T07:44:39Z</dc:date>
    </item>
    <item>
      <title>Re: ALE FM</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321778#M795707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt; Create Function Module in this way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example parameters&lt;/P&gt;&lt;P&gt;Import parameters	Reference field	Opt Y/N&lt;/P&gt;&lt;P&gt;INPUT_METHOD	BDWFAP_PAR-INPUTMETHD	N&lt;/P&gt;&lt;P&gt;MASS_PROCESSING	BDWFAP_PAR-MASS_PROC	N&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Export Parameters	Reference field	Opt Y/N&lt;/P&gt;&lt;P&gt;WORKFLOW_RESULT	BDWFAP_PAR-RESULT	N&lt;/P&gt;&lt;P&gt;APPLICATION_VARIABLE	BDWFAP_PAR-APPL_VAR	N&lt;/P&gt;&lt;P&gt;IN_UPDATE_TASK	BDWFAP_PAR-UPDATETASK	N&lt;/P&gt;&lt;P&gt;CALL_TRANSACTION_DONE	BDWFAP_PAR-CALLTRANS	N&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table Parameters	Reference field	Optional Y/N&lt;/P&gt;&lt;P&gt;IDOC_CONTRL	EDIDC	&lt;/P&gt;&lt;P&gt;IDOC_DATA     	EDIDD	&lt;/P&gt;&lt;P&gt;IDOC_STATUS	BDIDOCSTAT	&lt;/P&gt;&lt;P&gt;RETURN_VARIABLES	BDWFRETVAR	&lt;/P&gt;&lt;P&gt;SERIALIZATION_INFO	BDI_SER	&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exceptions&lt;/P&gt;&lt;P&gt;WRONG_FUNCTION_CALLED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;populates a BDC table with the IDoc info;&lt;/P&gt;&lt;P&gt;calls the transaction via a BDC call; and&lt;/P&gt;&lt;P&gt;updates the IDoc status according to the BDC error status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXTRACT FROM: Z_IDOC_INPUT_ZINVRV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Declaration of local variables&lt;/P&gt;&lt;P&gt;DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Loop through the IDOCs&lt;/P&gt;&lt;P&gt;LOOP AT IDOC_CONTRL.&lt;/P&gt;&lt;P&gt;*---Loop through the data for the IDOC&lt;/P&gt;&lt;P&gt;	LOOP AT IDOC_DATA WHERE DOCNUM = IDOC_CONTRL-DOCNUM.&lt;/P&gt;&lt;P&gt;		CASE IDOC_DATA-SEGNAM.&lt;/P&gt;&lt;P&gt;			WHEN C_SEGNAM.&lt;/P&gt;&lt;P&gt;*				Here we get the info from the idoc table&lt;/P&gt;&lt;P&gt;				IT_Z1INVRV = IDOC_DATA-SDATA.&lt;/P&gt;&lt;P&gt;		ENDCASE.&lt;/P&gt;&lt;P&gt;		PERFORM REV_INV.&lt;/P&gt;&lt;P&gt;	ENDLOOP.&lt;/P&gt;&lt;P&gt;	PERFORM UPDATE_IDOC_STATUS.&lt;/P&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM REV_INV			"Reverse invoice form&lt;/P&gt;&lt;P&gt;*--- Local variables &amp;amp; constants&lt;/P&gt;&lt;P&gt;DATA: C_TCODE LIKE BKPF-TCODE VALUE 'VF11'.  "BDC transaction code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Now we can build the bdc table to call the reversal transaction start of screen 109&lt;/P&gt;&lt;P&gt;CLEAR BDC_TAB.&lt;/P&gt;&lt;P&gt;BDC_TAB-PROGRAM  = 'SAPMV60A'.&lt;/P&gt;&lt;P&gt;BDC_TAB-DYNPRO   = '109'.&lt;/P&gt;&lt;P&gt;BDC_TAB-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;APPEND BDC_TAB.&lt;/P&gt;&lt;P&gt;*--- Document number&lt;/P&gt;&lt;P&gt;CLEAR BDC_TAB.&lt;/P&gt;&lt;P&gt;BDC_TAB-FNAM = 'KOMFK-VBELN(01)'.&lt;/P&gt;&lt;P&gt;BDC_TAB-FVAL = IT_Z1INVRV-XBLNR.     "Billing document number&lt;/P&gt;&lt;P&gt;APPEND BDC_TAB.&lt;/P&gt;&lt;P&gt;*--- OK Code for screen 109&lt;/P&gt;&lt;P&gt;CLEAR BDC_TAB.&lt;/P&gt;&lt;P&gt;BDC_TAB-FNAM = 'BDC_OKCODE'.&lt;/P&gt;&lt;P&gt;BDC_TAB-FVAL = 'SICH'.&lt;/P&gt;&lt;P&gt;APPEND BDC_TAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Now we can call transaction 'VF11' with the populated bdc table. The transaction is called inside the idoc-contrl loop, so a transaction will be called for every idoc (journal). the transaction is called in no-display mode ('N') because this code runs in background as it is called by ale.  The update is specified to be synchronous ('S') because we have to wait for the result to update the idoc status correctly.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION C_TCODE USING BDC_TAB MODE 'N' UPDATE 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Store the return code for use in another form (status update)&lt;/P&gt;&lt;P&gt;RETURN_CODE = SY-SUBRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Here we check the return code, if there was an error, we put the transaction in a bdc session for the user to review and correct.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;	CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;		EXPORTING&lt;/P&gt;&lt;P&gt;			CLIENT = SY-MANDT&lt;/P&gt;&lt;P&gt;			GROUP  = 'ZINVRV'&lt;/P&gt;&lt;P&gt;			USER   = C_ALE_USER&lt;/P&gt;&lt;P&gt;			KEEP   = 'X'.&lt;/P&gt;&lt;P&gt;	CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;		EXPORTING&lt;/P&gt;&lt;P&gt;			TCODE     = C_TCODE&lt;/P&gt;&lt;P&gt;		TABLES&lt;/P&gt;&lt;P&gt;			DYNPROTAB = BDC_TAB.&lt;/P&gt;&lt;P&gt;	CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;		EXCEPTIONS&lt;/P&gt;&lt;P&gt;			NOT_OPEN    = 1&lt;/P&gt;&lt;P&gt;			QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;			OTHERS      = 3.&lt;/P&gt;&lt;P&gt;ELSE.						"No problems&lt;/P&gt;&lt;P&gt;	C_EXISTS = 'N'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Select from the billing document table to get sales doc number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;	SELECT * FROM VBRP WHERE VBELN = IT_Z1INVRV-XBLNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Select from the sales document table to get user status number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;		SELECT SINGLE * FROM VBAP WHERE VBELN = VBRP-AUBEL AND&lt;/P&gt;&lt;P&gt;			POSNR = VBRP-AUPOS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Select from the status table to change the user status to pending&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;		SELECT * FROM JEST WHERE OBJNR = VBAP-OBJNR AND&lt;/P&gt;&lt;P&gt;			STAT LIKE C_USER_STATUS.&lt;/P&gt;&lt;P&gt;			IF JEST-STAT = C_US_PENDING.   "User status is pending&lt;/P&gt;&lt;P&gt;				JEST-INACT = C_UNCHECKED.    "Make pending the active status&lt;/P&gt;&lt;P&gt;				UPDATE JEST.&lt;/P&gt;&lt;P&gt;				C_EXISTS = 'Y'.            "I.E. An entry is already in table&lt;/P&gt;&lt;P&gt;			ELSEIF JEST-INACT = C_UNCHECKED AND JEST-STAT NE C_US_PENDING.&lt;/P&gt;&lt;P&gt;				JEST-INACT = C_CHECKED.      "Make everything else inactive&lt;/P&gt;&lt;P&gt;				UPDATE JEST.&lt;/P&gt;&lt;P&gt;			ENDIF.&lt;/P&gt;&lt;P&gt;		ENDSELECT.&lt;/P&gt;&lt;P&gt;		IF C_EXISTS = 'N'.    "I.E. Pending has never been a status before&lt;/P&gt;&lt;P&gt;			JEST-OBJNR = VBAP-OBJNR.&lt;/P&gt;&lt;P&gt;			JEST-STAT  = C_US_PENDING.&lt;/P&gt;&lt;P&gt;			JEST-INACT = C_UNCHECKED.      "Make pending the active status&lt;/P&gt;&lt;P&gt;			INSERT JEST.&lt;/P&gt;&lt;P&gt;		ENDIF.&lt;/P&gt;&lt;P&gt;	ENDSELECT.       "Select from VBRP (Billing document table)&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " REV_INV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM UPDATE_IDOC_STATUS.                                               &lt;/P&gt;&lt;P&gt;*--- Now we check the CALL TRANSACTION return code and set IDOC status &lt;/P&gt;&lt;P&gt;	CLEAR IDOC_STATUS.                                                   &lt;/P&gt;&lt;P&gt;	IF RETURN_CODE = 0.                                                  &lt;/P&gt;&lt;P&gt;		WORKFLOW_RESULT = '0'.                                             &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.                           &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-STATUS = '53'.                                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-UNAME = SY-UNAME.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-REPID = SY-REPID.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGTY = SY-MSGTY.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGID = SY-MSGID.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGNO = SY-MSGNO.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV1 = SY-MSGV1.                                      &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV2 = SY-MSGV2.&lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV3 = SY-MSGV3.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV4 = SY-MSGV4.                         &lt;/P&gt;&lt;P&gt;		RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.        &lt;/P&gt;&lt;P&gt;		RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.     &lt;/P&gt;&lt;P&gt;		APPEND RETURN_VARIABLES.                              &lt;/P&gt;&lt;P&gt;	ELSE.                                                   &lt;/P&gt;&lt;P&gt;		WORKFLOW_RESULT = '99999'.                            &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.              &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-STATUS = '51'.                            &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-UNAME = SY-UNAME.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-REPID = SY-REPID.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGTY = SY-MSGTY.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGID = SY-MSGID.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGNO = SY-MSGNO.                         &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV1 = SY-MSGV1.&lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV2 = SY-MSGV2.                          &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV3 = SY-MSGV3.                          &lt;/P&gt;&lt;P&gt;		IDOC_STATUS-MSGV4 = SY-MSGV4.                          &lt;/P&gt;&lt;P&gt;		RETURN_VARIABLES-WF_PARAM = 'ERROR_IDOCS'.             &lt;/P&gt;&lt;P&gt;		RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.      &lt;/P&gt;&lt;P&gt;		APPEND RETURN_VARIABLES.                               &lt;/P&gt;&lt;P&gt;	ENDIF.                                                   &lt;/P&gt;&lt;P&gt;	APPEND IDOC_STATUS.                                      &lt;/P&gt;&lt;P&gt;ENDFORM.                               " UPDATE_IDOC_STATUS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2008 07:58:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/ale-fm/m-p/3321778#M795707</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-23T07:58:27Z</dc:date>
    </item>
  </channel>
</rss>

